ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

wdmaud.h
Go to the documentation of this file.
00001 #include <pseh/pseh2.h>
00002 #include <ntddk.h>
00003 #include <portcls.h>
00004 #include <ks.h>
00005 #define NDEBUG
00006 #include <debug.h>
00007 #include <ksmedia.h>
00008 #include <mmreg.h>
00009 #include <mmsystem.h>
00010 #include <stdlib.h>
00011 #include <stdio.h>
00012 #include <wchar.h>
00013 #include "mmixer.h"
00014 
00015 #include "interface.h"
00016 
00017 typedef struct
00018 {
00019     PMDL Mdl;
00020     ULONG Length;
00021     ULONG Function;
00022 }WDMAUD_COMPLETION_CONTEXT, *PWDMAUD_COMPLETION_CONTEXT;
00023 
00024 
00025 typedef struct
00026 {
00027     HANDLE Handle;
00028     SOUND_DEVICE_TYPE Type;
00029     ULONG FilterId;
00030     ULONG PinId;
00031     PRKEVENT NotifyEvent;
00032 }WDMAUD_HANDLE, *PWDMAUD_HANDLE;
00033 
00034 typedef struct
00035 {
00036     LIST_ENTRY Entry;
00037     HANDLE hProcess;
00038     ULONG NumPins;
00039     WDMAUD_HANDLE * hPins;
00040 
00041     LIST_ENTRY MixerEventList;
00042 }WDMAUD_CLIENT, *PWDMAUD_CLIENT;
00043 
00044 typedef struct
00045 {
00046     LIST_ENTRY Entry;
00047     ULONG NotificationType;
00048     ULONG Value;
00049     HANDLE hMixer;
00050 }EVENT_ENTRY, *PEVENT_ENTRY;
00051 
00052 typedef struct
00053 {
00054     LIST_ENTRY Entry;
00055     UNICODE_STRING SymbolicLink;
00056 }SYSAUDIO_ENTRY, *PSYSAUDIO_ENTRY;
00057 
00058 typedef struct
00059 {
00060     KSDEVICE_HEADER DeviceHeader;
00061     PVOID SysAudioNotification;
00062 
00063     BOOL DeviceInterfaceSupport;
00064 
00065     KSPIN_LOCK Lock;
00066     ULONG NumSysAudioDevices;
00067     LIST_ENTRY SysAudioDeviceList;
00068     HANDLE hSysAudio;
00069     PFILE_OBJECT FileObject;
00070 
00071     LIST_ENTRY WdmAudClientList;
00072 }WDMAUD_DEVICE_EXTENSION, *PWDMAUD_DEVICE_EXTENSION;
00073 
00074 typedef struct
00075 {
00076     PWDMAUD_CLIENT ClientInfo;
00077     PWDMAUD_DEVICE_EXTENSION DeviceExtension;
00078     SOUND_DEVICE_TYPE DeviceType;
00079 }PIN_CREATE_CONTEXT, *PPIN_CREATE_CONTEXT;
00080 
00081 
00082 NTSTATUS
00083 NTAPI
00084 OpenWavePin(
00085     IN PWDMAUD_DEVICE_EXTENSION DeviceExtension,
00086     IN ULONG FilterId,
00087     IN ULONG PinId,
00088     IN LPWAVEFORMATEX WaveFormatEx,
00089     IN ACCESS_MASK DesiredAccess,
00090     OUT PHANDLE PinHandle);
00091 
00092 NTSTATUS
00093 WdmAudRegisterDeviceInterface(
00094     IN PDEVICE_OBJECT PhysicalDeviceObject,
00095     IN PWDMAUD_DEVICE_EXTENSION DeviceExtension);
00096 
00097 NTSTATUS
00098 WdmAudOpenSysAudioDevices(
00099     IN PDEVICE_OBJECT DeviceObject,
00100     IN PWDMAUD_DEVICE_EXTENSION DeviceExtension);
00101 
00102 NTSTATUS
00103 WdmAudOpenSysaudio(
00104     IN PDEVICE_OBJECT DeviceObject,
00105     IN PWDMAUD_CLIENT *pClient);
00106 
00107 NTSTATUS
00108 NTAPI
00109 WdmAudDeviceControl(
00110     IN  PDEVICE_OBJECT DeviceObject,
00111     IN  PIRP Irp);
00112 
00113 NTSTATUS
00114 NTAPI
00115 WdmAudReadWrite(
00116     IN  PDEVICE_OBJECT DeviceObject,
00117     IN  PIRP Irp);
00118 
00119 NTSTATUS
00120 NTAPI
00121 WdmAudWrite(
00122     IN  PDEVICE_OBJECT DeviceObject,
00123     IN  PIRP Irp);
00124 
00125 NTSTATUS
00126 WdmAudControlOpenMixer(
00127     IN  PDEVICE_OBJECT DeviceObject,
00128     IN  PIRP Irp,
00129     IN  PWDMAUD_DEVICE_INFO DeviceInfo,
00130     IN  PWDMAUD_CLIENT ClientInfo);
00131 
00132 NTSTATUS
00133 WdmAudControlOpenWave(
00134     IN  PDEVICE_OBJECT DeviceObject,
00135     IN  PIRP Irp,
00136     IN  PWDMAUD_DEVICE_INFO DeviceInfo,
00137     IN  PWDMAUD_CLIENT ClientInfo);
00138 
00139 NTSTATUS
00140 WdmAudControlOpenMidi(
00141     IN  PDEVICE_OBJECT DeviceObject,
00142     IN  PIRP Irp,
00143     IN  PWDMAUD_DEVICE_INFO DeviceInfo,
00144     IN  PWDMAUD_CLIENT ClientInfo);
00145 
00146 ULONG
00147 GetNumOfMixerDevices(
00148     IN  PDEVICE_OBJECT DeviceObject);
00149 
00150 NTSTATUS
00151 SetIrpIoStatus(
00152     IN PIRP Irp,
00153     IN NTSTATUS Status,
00154     IN ULONG Length);
00155 
00156 NTSTATUS
00157 WdmAudOpenSysAudioDevice(
00158     IN LPWSTR DeviceName,
00159     OUT PHANDLE Handle);
00160 
00161 NTSTATUS
00162 FindProductName(
00163     IN LPWSTR PnpName,
00164     IN ULONG ProductNameSize,
00165     OUT LPWSTR ProductName);
00166 
00167 NTSTATUS
00168 WdmAudMixerCapabilities(
00169     IN PDEVICE_OBJECT DeviceObject,
00170     IN  PWDMAUD_DEVICE_INFO DeviceInfo,
00171     IN  PWDMAUD_CLIENT ClientInfo,
00172     IN PWDMAUD_DEVICE_EXTENSION DeviceExtension);
00173 
00174 NTSTATUS
00175 WdmAudWaveCapabilities(
00176     IN PDEVICE_OBJECT DeviceObject,
00177     IN  PWDMAUD_DEVICE_INFO DeviceInfo,
00178     IN  PWDMAUD_CLIENT ClientInfo,
00179     IN PWDMAUD_DEVICE_EXTENSION DeviceExtension);
00180 
00181 NTSTATUS
00182 WdmAudMidiCapabilities(
00183     IN PDEVICE_OBJECT DeviceObject,
00184     IN PWDMAUD_DEVICE_INFO DeviceInfo,
00185     IN PWDMAUD_CLIENT ClientInfo,
00186     IN PWDMAUD_DEVICE_EXTENSION DeviceExtension);
00187 
00188 NTSTATUS
00189 NTAPI
00190 WdmAudFrameSize(
00191     IN  PDEVICE_OBJECT DeviceObject,
00192     IN  PIRP Irp,
00193     IN  PWDMAUD_DEVICE_INFO DeviceInfo,
00194     IN  PWDMAUD_CLIENT ClientInfo);
00195 
00196 NTSTATUS
00197 NTAPI
00198 WdmAudGetLineInfo(
00199     IN  PDEVICE_OBJECT DeviceObject,
00200     IN  PIRP Irp,
00201     IN  PWDMAUD_DEVICE_INFO DeviceInfo,
00202     IN  PWDMAUD_CLIENT ClientInfo);
00203 
00204 NTSTATUS
00205 NTAPI
00206 WdmAudGetLineControls(
00207     IN  PDEVICE_OBJECT DeviceObject,
00208     IN  PIRP Irp,
00209     IN  PWDMAUD_DEVICE_INFO DeviceInfo,
00210     IN  PWDMAUD_CLIENT ClientInfo);
00211 
00212 NTSTATUS
00213 NTAPI
00214 WdmAudSetControlDetails(
00215     IN  PDEVICE_OBJECT DeviceObject,
00216     IN  PIRP Irp,
00217     IN  PWDMAUD_DEVICE_INFO DeviceInfo,
00218     IN  PWDMAUD_CLIENT ClientInfo);
00219 
00220 NTSTATUS
00221 NTAPI
00222 WdmAudGetMixerEvent(
00223     IN  PDEVICE_OBJECT DeviceObject,
00224     IN  PIRP Irp,
00225     IN  PWDMAUD_DEVICE_INFO DeviceInfo,
00226     IN  PWDMAUD_CLIENT ClientInfo);
00227 
00228 NTSTATUS
00229 NTAPI
00230 WdmAudGetControlDetails(
00231     IN  PDEVICE_OBJECT DeviceObject,
00232     IN  PIRP Irp,
00233     IN  PWDMAUD_DEVICE_INFO DeviceInfo,
00234     IN  PWDMAUD_CLIENT ClientInfo);
00235 
00236 NTSTATUS
00237 WdmAudMixerInitialize(
00238     IN PDEVICE_OBJECT DeviceObject);
00239 
00240 NTSTATUS
00241 NTAPI
00242 WdmAudWaveInitialize(
00243     IN PDEVICE_OBJECT DeviceObject);
00244 
00245 ULONG
00246 ClosePin(
00247     IN  PWDMAUD_CLIENT ClientInfo,
00248     IN  ULONG FilterId,
00249     IN  ULONG PinId,
00250     IN  SOUND_DEVICE_TYPE DeviceType);
00251 
00252 NTSTATUS
00253 InsertPinHandle(
00254     IN  PWDMAUD_CLIENT ClientInfo,
00255     IN  ULONG FilterId,
00256     IN  ULONG PinId,
00257     IN  SOUND_DEVICE_TYPE DeviceType,
00258     IN  HANDLE PinHandle,
00259     IN  ULONG FreeIndex);
00260 
00261 NTSTATUS
00262 GetSysAudioDevicePnpName(
00263     IN  PDEVICE_OBJECT DeviceObject,
00264     IN  ULONG DeviceIndex,
00265     OUT LPWSTR * Device);
00266 
00267 NTSTATUS
00268 OpenSysAudioDeviceByIndex(
00269     IN  PDEVICE_OBJECT DeviceObject,
00270     IN  ULONG DeviceIndex,
00271     IN  PHANDLE DeviceHandle,
00272     IN  PFILE_OBJECT * FileObject);
00273 
00274 NTSTATUS
00275 OpenDevice(
00276     IN LPWSTR Device,
00277     OUT PHANDLE DeviceHandle,
00278     OUT PFILE_OBJECT * FileObject);
00279 
00280 ULONG
00281 WdmAudGetMixerDeviceCount(VOID);
00282 
00283 ULONG
00284 WdmAudGetWaveInDeviceCount(VOID);
00285 
00286 ULONG
00287 WdmAudGetWaveOutDeviceCount(VOID);
00288 
00289 ULONG
00290 WdmAudGetMidiInDeviceCount(VOID);
00291 
00292 ULONG
00293 WdmAudGetMidiOutDeviceCount(VOID);
00294 
00295 NTSTATUS
00296 WdmAudGetPnpNameByIndexAndType(
00297     IN ULONG DeviceIndex, 
00298     IN SOUND_DEVICE_TYPE DeviceType, 
00299     OUT LPWSTR *Device);
00300 
00301 
00302 /* sup.c */
00303 
00304 ULONG
00305 GetSysAudioDeviceCount(
00306     IN  PDEVICE_OBJECT DeviceObject);
00307 
00308 
00309 PVOID
00310 AllocateItem(
00311     IN POOL_TYPE PoolType,
00312     IN SIZE_T NumberOfBytes);
00313 
00314 VOID
00315 FreeItem(
00316     IN PVOID Item);
00317 

Generated on Sat May 26 2012 04:25:23 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.