Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygensysaudio.h
Go to the documentation of this file.
00001 #include <ntifs.h> 00002 #include <ntddk.h> 00003 #include <portcls.h> 00004 #include <ks.h> 00005 #include <ksmedia.h> 00006 #include <math.h> 00007 #define NDEBUG 00008 #include <debug.h> 00009 #include <stdio.h> 00010 00011 typedef struct 00012 { 00013 HANDLE PinHandle; // handle to audio irp pin 00014 ULONG References; // number of clients having a reference to this audio irp pin 00015 }PIN_INFO; 00016 00017 typedef struct 00018 { 00019 LIST_ENTRY Entry; // device entry for KsAudioDeviceList 00020 UNICODE_STRING DeviceName; // symbolic link of audio device 00021 00022 HANDLE Handle; // handle to audio device 00023 PFILE_OBJECT FileObject; // file objecto to audio device 00024 00025 //PIN_INFO * Pins; // array of PIN_INFO 00026 }KSAUDIO_DEVICE_ENTRY, *PKSAUDIO_DEVICE_ENTRY; 00027 00028 typedef struct 00029 { 00030 KSDEVICE_HEADER KsDeviceHeader; // ks streaming header - must always be first item in device extension 00031 PDEVICE_OBJECT PhysicalDeviceObject; // pdo 00032 PDEVICE_OBJECT NextDeviceObject; // lower device object 00033 ULONG NumberOfKsAudioDevices; // number of audio devices 00034 00035 LIST_ENTRY KsAudioDeviceList; // audio device list 00036 PVOID KsAudioNotificationEntry; // ks audio notification hook 00037 PVOID EchoCancelNotificationEntry; // ks echo cancel notification hook 00038 KSPIN_LOCK Lock; // audio device list mutex 00039 00040 PFILE_OBJECT KMixerFileObject; // mixer file object 00041 HANDLE KMixerHandle; // mixer file handle 00042 00043 }SYSAUDIODEVEXT, *PSYSAUDIODEVEXT; 00044 00045 // struct DISPATCH_CONTEXT 00046 // 00047 // This structure is used to dispatch read / write / device io requests 00048 // It is stored in the file object FsContext2 member 00049 // Note: FsContext member is reserved for ks object header 00050 00051 typedef struct 00052 { 00053 KSOBJECT_HEADER ObjectHeader; // pin object header 00054 HANDLE Handle; // audio irp pin handle 00055 ULONG PinId; // pin id of device 00056 PKSAUDIO_DEVICE_ENTRY AudioEntry; // pointer to audio device entry 00057 00058 HANDLE hMixerPin; // handle to mixer pin 00059 }DISPATCH_CONTEXT, *PDISPATCH_CONTEXT; 00060 00061 NTSTATUS 00062 SysAudioAllocateDeviceHeader( 00063 IN SYSAUDIODEVEXT *DeviceExtension); 00064 00065 NTSTATUS 00066 SysAudioRegisterDeviceInterfaces( 00067 IN PDEVICE_OBJECT DeviceObject); 00068 00069 NTSTATUS 00070 SysAudioRegisterNotifications( 00071 IN PDRIVER_OBJECT DriverObject, 00072 IN PDEVICE_OBJECT DeviceObject); 00073 00074 NTSTATUS 00075 SysAudioHandleProperty( 00076 PDEVICE_OBJECT DeviceObject, 00077 PIRP Irp); 00078 00079 NTSTATUS 00080 SysAudioOpenKMixer( 00081 IN SYSAUDIODEVEXT *DeviceExtension); 00082 00083 NTSTATUS 00084 OpenDevice( 00085 IN PUNICODE_STRING DeviceName, 00086 IN PHANDLE HandleOut, 00087 IN PFILE_OBJECT * FileObjectOut); 00088 00089 PKSAUDIO_DEVICE_ENTRY 00090 GetListEntry( 00091 IN PLIST_ENTRY Head, 00092 IN ULONG Index); 00093 00094 NTSTATUS 00095 NTAPI 00096 DispatchCreateSysAudioPin( 00097 IN PDEVICE_OBJECT DeviceObject, 00098 IN PIRP Irp); 00099 00100 ULONG 00101 GetDeviceCount( 00102 PSYSAUDIODEVEXT DeviceExtension, 00103 BOOL WaveIn); 00104 00105 NTSTATUS 00106 GetPinInstanceCount( 00107 PKSAUDIO_DEVICE_ENTRY Entry, 00108 PKSPIN_CINSTANCES PinInstances, 00109 PKSPIN_CONNECT PinConnect); 00110 00111 NTSTATUS 00112 ComputeCompatibleFormat( 00113 IN PKSAUDIO_DEVICE_ENTRY Entry, 00114 IN ULONG PinId, 00115 IN PKSDATAFORMAT_WAVEFORMATEX ClientFormat, 00116 OUT PKSDATAFORMAT_WAVEFORMATEX MixerFormat); 00117 00118 PVOID 00119 AllocateItem( 00120 IN POOL_TYPE PoolType, 00121 IN SIZE_T NumberOfBytes); 00122 00123 VOID 00124 FreeItem( 00125 IN PVOID Item); 00126 Generated on Sat May 26 2012 04:27:15 for ReactOS by
1.7.6.1
|