ReactOS  0.4.14-dev-337-gf981a68
mmixer.h
Go to the documentation of this file.
1 #pragma once
2 
3 typedef enum
4 {
13 
14 
16 
17 
18 typedef PVOID (*PMIXER_ALLOC)(
20 
21 typedef VOID (*PMIXER_FREE)(
22  IN PVOID Block);
23 
25  IN PVOID EnumContext,
26  IN ULONG DeviceIndex,
28  OUT PHANDLE OutHandle,
29  OUT PHANDLE OutDevInterfaceKey);
30 
34  IN PVOID lpInBuffer,
35  IN ULONG nInBufferSize,
36  OUT PVOID lpOutBuffer,
37  ULONG nOutBufferSize,
39 
41  IN LPWSTR DevicePath,
42  OUT PHANDLE hDevice);
43 
45  IN HANDLE hDevice);
46 
48  IN HANDLE hKey);
49 
51  IN PVOID MixerEventContext,
53  IN ULONG NotificationType,
54  IN ULONG Value);
55 
56 typedef VOID (*PMIXER_COPY)(
57  IN PVOID Dst,
58  IN PVOID Src,
59  IN ULONG Length);
60 
62  IN HANDLE hKey,
66  OUT PULONG KeyType);
67 
69  IN HANDLE hKey,
70  IN LPWSTR SubKey,
72  OUT PHANDLE OutKey);
73 
75  IN ULONG ExtraBytes);
76 
78  IN PVOID EventData);
79 
82  IN ULONG DeviceId,
83  IN ULONG PinId,
84  IN HANDLE hFilter,
85  IN PKSPIN_CONNECT PinConnect,
87  OUT PHANDLE PinHandle);
88 
89 typedef struct
90 {
93 
106 
110  IN PMIXER_ENUM EnumFunction,
111  IN PVOID EnumContext);
112 
113 ULONG
116 
117 ULONG
120 
121 ULONG
124 
125 ULONG
128 
129 ULONG
132 
133 
134 
138  IN ULONG MixerIndex,
139  OUT LPMIXERCAPSW MixerCaps);
140 
142 MMixerOpen(
144  IN ULONG MixerId,
145  IN PVOID MixerEventContext,
146  IN PMIXER_EVENT MixerEventRoutine,
147  OUT PHANDLE MixerHandle);
148 
152  IN ULONG MixerId,
153  IN PVOID MixerEventContext,
154  IN PMIXER_EVENT MixerEventRoutine);
155 
159  IN HANDLE MixerHandle,
160  IN ULONG MixerId,
161  IN ULONG Flags,
162  OUT LPMIXERLINEW MixerLine);
163 
167  IN HANDLE MixerHandle,
168  IN ULONG MixerId,
169  IN ULONG Flags,
170  OUT LPMIXERLINECONTROLSW MixerLineControls);
171 
175  IN HANDLE MixerHandle,
176  IN ULONG MixerId,
177  IN ULONG Flags,
178  OUT LPMIXERCONTROLDETAILS MixerControlDetails);
179 
183  IN HANDLE MixerHandle,
184  IN ULONG MixerId,
185  IN ULONG Flags,
186  OUT LPMIXERCONTROLDETAILS MixerControlDetails);
187 
191  IN ULONG DeviceIndex,
192  OUT LPWAVEOUTCAPSW Caps);
193 
197  IN ULONG DeviceIndex,
198  OUT LPWAVEINCAPSW Caps);
199 
203  IN ULONG DeviceIndex,
204  IN ULONG bWaveIn,
205  IN LPWAVEFORMATEX WaveFormat,
206  IN PIN_CREATE_CALLBACK CreateCallback,
207  IN PVOID Context,
208  OUT PHANDLE PinHandle);
209 
213  IN HANDLE PinHandle,
214  IN KSSTATE State);
215 
219  IN HANDLE PinHandle,
220  IN ULONG bBegin);
221 
225  IN ULONG bWaveIn,
226  IN ULONG DeviceId,
227  OUT LPWSTR * DevicePath);
228 
232  IN ULONG DeviceIndex,
233  OUT LPMIDIOUTCAPSW Caps);
234 
238  IN ULONG DeviceIndex,
239  OUT LPMIDIINCAPSW Caps);
240 
244  IN ULONG bMidiIn,
245  IN ULONG DeviceId,
246  OUT LPWSTR * DevicePath);
247 
251  IN HANDLE PinHandle,
252  IN KSSTATE State);
253 
257  IN ULONG DeviceIndex,
258  IN ULONG bMidiIn,
259  IN PIN_CREATE_CALLBACK CreateCallback,
260  IN PVOID Context,
261  OUT PHANDLE PinHandle);
MIXER_STATUS MMixerGetMidiDevicePath(IN PMIXER_CONTEXT MixerContext, IN ULONG bMidiIn, IN ULONG DeviceId, OUT LPWSTR *DevicePath)
Definition: midi.c:380
IN CINT OUT PVOID IN ULONG OUT PULONG ResultLength
Definition: conport.c:47
_In_opt_ ULONG _Out_ PULONG Value
Definition: rtlfuncs.h:2343
MIXER_STATUS(* PMIXER_ENUM)(IN PVOID EnumContext, IN ULONG DeviceIndex, OUT LPWSTR *DeviceName, OUT PHANDLE OutHandle, OUT PHANDLE OutDevInterfaceKey)
Definition: mmixer.h:24
MIXER_STATUS MMixerOpenWave(IN PMIXER_CONTEXT MixerContext, IN ULONG DeviceIndex, IN ULONG bWaveIn, IN LPWAVEFORMATEX WaveFormat, IN PIN_CREATE_CALLBACK CreateCallback, IN PVOID Context, OUT PHANDLE PinHandle)
Definition: wave.c:436
ULONG MMixerGetMidiOutCount(IN PMIXER_CONTEXT MixerContext)
Definition: midi.c:524
VOID(* PMIXER_FREE)(IN PVOID Block)
Definition: mmixer.h:21
MIXER_STATUS MMixerOpenMidi(IN PMIXER_CONTEXT MixerContext, IN ULONG DeviceIndex, IN ULONG bMidiIn, IN PIN_CREATE_CALLBACK CreateCallback, IN PVOID Context, OUT PHANDLE PinHandle)
Definition: midi.c:454
_Must_inspect_result_ _Out_ PNDIS_STATUS _In_ NDIS_HANDLE _In_ ULONG _Out_ PNDIS_STRING KeyName
Definition: ndis.h:4711
#define IN
Definition: typedefs.h:38
ULONG MMixerGetWaveInCount(IN PMIXER_CONTEXT MixerContext)
Definition: wave.c:563
MIXER_STATUS(* PMIXER_CLOSE)(IN HANDLE hDevice)
Definition: mmixer.h:44
ULONG MMixerGetCount(IN PMIXER_CONTEXT MixerContext)
Definition: mixer.c:15
MIXER_STATUS MMixerOpen(IN PMIXER_CONTEXT MixerContext, IN ULONG MixerId, IN PVOID MixerEventContext, IN PMIXER_EVENT MixerEventRoutine, OUT PHANDLE MixerHandle)
Definition: mixer.c:77
MIXER_STATUS MMixerGetControlDetails(IN PMIXER_CONTEXT MixerContext, IN HANDLE MixerHandle, IN ULONG MixerId, IN ULONG Flags, OUT LPMIXERCONTROLDETAILS MixerControlDetails)
Definition: mixer.c:566
VOID(* PMIXER_FREE_EVENT_DATA)(IN PVOID EventData)
Definition: mmixer.h:77
#define CALLBACK
Definition: compat.h:27
MIXER_STATUS(* PMIXER_CLOSEKEY)(IN HANDLE hKey)
Definition: mmixer.h:47
ULONG SizeOfStruct
Definition: mmixer.h:91
VOID(CALLBACK * PMIXER_EVENT)(IN PVOID MixerEventContext, IN HANDLE hMixer, IN ULONG NotificationType, IN ULONG Value)
Definition: mmixer.h:50
PMIXER_OPEN_KEY OpenKey
Definition: mmixer.h:100
MIXER_STATUS MMixerGetLineControls(IN PMIXER_CONTEXT MixerContext, IN HANDLE MixerHandle, IN ULONG MixerId, IN ULONG Flags, OUT LPMIXERLINECONTROLSW MixerLineControls)
Definition: mixer.c:332
WCHAR DeviceName[]
Definition: adapter.cpp:21
ULONG MMixerGetMidiInCount(IN PMIXER_CONTEXT MixerContext)
Definition: midi.c:502
PMIXER_CLOSE Close
Definition: mmixer.h:98
_Must_inspect_result_ _In_ ULONG Flags
Definition: wsk.h:170
MIXER_STATUS MMixerSetMidiStatus(IN PMIXER_CONTEXT MixerContext, IN HANDLE PinHandle, IN KSSTATE State)
Definition: midi.c:437
MIXER_CONTEXT MixerContext
Definition: mmixer.c:46
PMIXER_DEVICE_CONTROL Control
Definition: mmixer.h:95
HMIXER hMixer
Definition: test.c:10
MIXER_STATUS MMixerSetControlDetails(IN PMIXER_CONTEXT MixerContext, IN HANDLE MixerHandle, IN ULONG MixerId, IN ULONG Flags, OUT LPMIXERCONTROLDETAILS MixerControlDetails)
Definition: mixer.c:496
MIXER_STATUS MMixerClose(IN PMIXER_CONTEXT MixerContext, IN ULONG MixerId, IN PVOID MixerEventContext, IN PMIXER_EVENT MixerEventRoutine)
Definition: mixer.c:116
void * PVOID
Definition: retypes.h:9
PMIXER_ALLOC_EVENT_DATA AllocEventData
Definition: mmixer.h:103
PMIXER_FREE_EVENT_DATA FreeEventData
Definition: mmixer.h:104
MIXER_STATUS MMixerMidiInCapabilities(IN PMIXER_CONTEXT MixerContext, IN ULONG DeviceIndex, OUT LPMIDIINCAPSW Caps)
Definition: midi.c:344
MIXER_STATUS MMixerSetWaveStatus(IN PMIXER_CONTEXT MixerContext, IN HANDLE PinHandle, IN KSSTATE State)
Definition: wave.c:607
PMIXER_FREE Free
Definition: mmixer.h:96
PMIXER_QUERY_KEY_VALUE QueryKeyValue
Definition: mmixer.h:101
MIXER_STATUS MMixerGetWaveDevicePath(IN PMIXER_CONTEXT MixerContext, IN ULONG bWaveIn, IN ULONG DeviceId, OUT LPWSTR *DevicePath)
Definition: wave.c:659
MIXER_STATUS MMixerWaveInCapabilities(IN PMIXER_CONTEXT MixerContext, IN ULONG DeviceIndex, OUT LPWAVEINCAPSW Caps)
Definition: wave.c:491
_In_ ULONG _In_ ULONG _In_ ULONG Length
Definition: ntddpcm.h:101
MIXER_STATUS MMixerGetLineInfo(IN PMIXER_CONTEXT MixerContext, IN HANDLE MixerHandle, IN ULONG MixerId, IN ULONG Flags, OUT LPMIXERLINEW MixerLine)
Definition: mixer.c:149
PVOID(* PMIXER_ALLOC)(IN ULONG NumberOfBytes)
Definition: mmixer.h:18
MIXER_STATUS MMixerGetCapabilities(IN PMIXER_CONTEXT MixerContext, IN ULONG MixerIndex, OUT LPMIXERCAPSW MixerCaps)
Definition: mixer.c:38
MIXER_STATUS(* PMIXER_OPEN)(IN LPWSTR DevicePath, OUT PHANDLE hDevice)
Definition: mmixer.h:40
MIXER_STATUS MMixerWaveOutCapabilities(IN PMIXER_CONTEXT MixerContext, IN ULONG DeviceIndex, OUT LPWAVEOUTCAPSW Caps)
Definition: wave.c:527
PVOID *typedef PHANDLE
Definition: ntsecpkg.h:414
#define VOID
Definition: acefi.h:82
PMIXER_ALLOC Alloc
Definition: mmixer.h:94
MIXER_STATUS(* PIN_CREATE_CALLBACK)(IN PVOID Context, IN ULONG DeviceId, IN ULONG PinId, IN HANDLE hFilter, IN PKSPIN_CONNECT PinConnect, IN ACCESS_MASK DesiredAccess, OUT PHANDLE PinHandle)
Definition: mmixer.h:80
#define Dst
Definition: mesh.h:153
KSSTATE
Definition: ks.h:1214
MIXER_STATUS(* PMIXER_DEVICE_CONTROL)(IN HANDLE hMixer, IN ULONG dwIoControlCode, IN PVOID lpInBuffer, IN ULONG nInBufferSize, OUT PVOID lpOutBuffer, ULONG nOutBufferSize, PULONG lpBytesReturned)
Definition: mmixer.h:31
struct MIXER_CONTEXT * PMIXER_CONTEXT
MIXER_STATUS MMixerSetWaveResetState(IN PMIXER_CONTEXT MixerContext, IN HANDLE PinHandle, IN ULONG bBegin)
Definition: wave.c:634
MIXER_STATUS
Definition: mmixer.h:3
PVOID MixerContext
Definition: mmixer.h:92
_In_ PIO_STACK_LOCATION _Inout_ PFILE_OBJECT _Inout_ PVCB _Outptr_result_maybenull_ PDCB _In_ PDCB _In_ PDIRENT _In_ ULONG _In_ ULONG _In_ PUNICODE_STRING _In_ PACCESS_MASK DesiredAccess
Definition: create.c:4157
unsigned int * PULONG
Definition: retypes.h:1
PVOID(* PMIXER_ALLOC_EVENT_DATA)(IN ULONG ExtraBytes)
Definition: mmixer.h:74
_In_ DWORD _In_ DWORD _In_ DWORD _Out_ LPDWORD lpBytesReturned
Definition: winddi.h:1704
PMIXER_CLOSEKEY CloseKey
Definition: mmixer.h:102
MIXER_STATUS(* PMIXER_QUERY_KEY_VALUE)(IN HANDLE hKey, IN LPWSTR KeyName, OUT PVOID *ResultBuffer, OUT PULONG ResultLength, OUT PULONG KeyType)
Definition: mmixer.h:61
#define OUT
Definition: typedefs.h:39
_Must_inspect_result_ typedef _In_ PHYSICAL_ADDRESS _Inout_ PLARGE_INTEGER NumberOfBytes
Definition: iotypes.h:998
struct tagContext Context
Definition: acpixf.h:1024
unsigned int ULONG
Definition: retypes.h:1
MIXER_STATUS(* PMIXER_OPEN_KEY)(IN HANDLE hKey, IN LPWSTR SubKey, IN ULONG DesiredAccess, OUT PHANDLE OutKey)
Definition: mmixer.h:68
MIXER_STATUS MMixerMidiOutCapabilities(IN PMIXER_CONTEXT MixerContext, IN ULONG DeviceIndex, OUT LPMIDIOUTCAPSW Caps)
Definition: midi.c:308
WCHAR * LPWSTR
Definition: xmlstorage.h:184
PMIXER_COPY Copy
Definition: mmixer.h:99
VOID(* PMIXER_COPY)(IN PVOID Dst, IN PVOID Src, IN ULONG Length)
Definition: mmixer.h:56
PKMT_RESULTBUFFER ResultBuffer
ULONG ACCESS_MASK
Definition: nt_native.h:40
MIXER_STATUS MMixerInitialize(IN PMIXER_CONTEXT MixerContext, IN PMIXER_ENUM EnumFunction, IN PVOID EnumContext)
Definition: mixer.c:770
ULONG MMixerGetWaveOutCount(IN PMIXER_CONTEXT MixerContext)
Definition: wave.c:585
_In_ DWORD dwIoControlCode
Definition: winddi.h:1700
PMIXER_OPEN Open
Definition: mmixer.h:97