ReactOS  0.4.14-dev-77-gd9e7c48
private.hpp
Go to the documentation of this file.
1 /*
2  PortCls FDO Extension
3 
4  by Andrew Greenwood
5 */
6 
7 #ifndef PORTCLS_PRIVATE_H
8 #define PORTCLS_PRIVATE_H
9 
10 #include <stdio.h>
11 
12 //#define _KS_NO_ANONYMOUS_STRUCTURES_
13 #define PC_IMPLEMENTATION
14 #define COM_STDMETHOD_CAN_THROW
15 #define PC_NO_IMPORTS
16 
17 #include <ntddk.h>
18 #include <portcls.h>
19 #include <dmusicks.h>
20 #include <kcom.h>
21 
22 #include "interfaces.hpp"
23 
24 #define TAG_PORTCLASS 'SLCP'
25 
26 #define PC_ASSERT(exp) \
27  (VOID)((!(exp)) ? \
28  RtlAssert((PVOID) #exp, (PVOID)__FILE__, __LINE__, NULL ), FALSE : TRUE)
29 
30 #define PC_ASSERT_IRQL(x) PC_ASSERT(KeGetCurrentIrql() <= (x))
31 #define PC_ASSERT_IRQL_EQUAL(x) PC_ASSERT(KeGetCurrentIrql()==(x))
32 
33 PVOID
34 __cdecl
35 operator new(
36  size_t Size,
38  ULONG Tag);
39 
40 extern
41 "C"
43 NTAPI
46  IN PIRP Irp);
47 
48 extern
49 "C"
51 NTAPI
54  IN PIRP Irp);
55 
56 extern
57 "C"
59 NTAPI
62  IN PIRP Irp);
63 
64 extern
65 "C"
67 NTAPI
70  IN PIRP Irp);
71 
74  OUT PMINIPORT* OutMiniport,
75  IN REFCLSID ClassId);
76 
79  OUT PMINIPORT* OutMiniport,
80  IN REFCLSID ClassId);
81 
84  OUT PPORT* OutPort);
85 
88  OUT PPORT* OutPort);
89 
92  OUT PPORT* OutPort);
93 
96  OUT PPORT* OutPort);
97 
100  OUT PDRMPORT2 *OutPort);
101 
102 NTSTATUS
104  OUT PPORTCLSVERSION * OutVersion);
105 
106 NTSTATUS
108  OUT IPortFilterWaveCyclic ** OutFilter);
109 
110 NTSTATUS
112  OUT IPortPinWaveCyclic ** OutPin);
113 
114 NTSTATUS
116  OUT IPortFilterWavePci ** OutFilter);
117 
118 NTSTATUS
120  OUT IPortPinWavePci ** OutPin);
121 
124  IPortWavePci* iface);
125 
128  IPortWavePci* iface);
129 
133 
134 
135 NTSTATUS
137  OUT PPORTFILTERDMUS * OutFilter);
138 
139 
140 NTSTATUS
142  OUT PPORTPINDMUS * OutPin);
143 
144 VOID
146  IN IPortDMus * iface,
147  IN PMINIPORTDMUS * Miniport,
148  IN PMINIPORTMIDI * MidiMiniport);
149 
150 #if (NTDDI_VERSION >= NTDDI_VISTA)
151 
152 NTSTATUS
154  OUT IPortFilterWaveRT ** OutFilter);
155 
156 NTSTATUS
158  OUT IPortPinWaveRT ** OutPin);
159 
162  IN IPortWaveRT* iface);
163 
166  IPortWaveRT* iface);
167 
168 
169 NTSTATUS
171  PPORTWAVERTSTREAM *OutStream);
172 
173 NTSTATUS
175  OUT PPORT* OutPort);
176 
177 
178 #endif
179 
180 NTSTATUS
182  OUT IPortFilterTopology ** OutFilter);
183 
187 
188 NTSTATUS
189 NTAPI
191  IN PIRP Irp,
192  IN IIrpTarget * Target,
193  IN ULONG ObjectCreateItemCount,
194  IN PKSOBJECT_CREATE_ITEM ObjectCreateItem);
195 
198  IN IPortWaveCyclic* iface);
199 
200 PVOID
204  IN ULONG Tag);
205 
206 VOID
207 FreeItem(
208  IN PVOID Item,
209  IN ULONG Tag);
210 
211 NTSTATUS
212 NTAPI
214  IN IIrpQueue **Queue);
215 
216 NTSTATUS
217 NTAPI
219  IN PIRP Irp,
221  IN OUT PVOID Data);
222 
223 NTSTATUS
224 NTAPI
226  IN PIRP Irp,
228  IN OUT PVOID Data);
229 
230 extern
231 "C"
232 NTSTATUS
233 NTAPI
237  IN BOOLEAN Dma32BitAddresses,
238  IN BOOLEAN IgnoreCount,
240  IN DMA_WIDTH DmaWidth,
241  IN DMA_SPEED DmaSpeed,
243  IN ULONG DmaPort,
245 
246 extern
247 "C"
248 NTSTATUS
249 NTAPI
252  IN ULONG DmaIndex,
253  IN BOOLEAN DemandMode,
254  IN BOOLEAN AutoInitialize,
255  IN DMA_SPEED DmaSpeed,
257  IN ULONG DmaPort,
259 
260 extern
261 "C"
262 NTSTATUS
263 NTAPI
265  OUT SUBDEVICE_DESCRIPTOR ** OutSubdeviceDescriptor,
266  IN ULONG InterfaceCount,
268  IN ULONG IdentifierCount,
269  IN KSIDENTIFIER *Identifier,
270  IN ULONG FilterPropertiesCount,
271  IN KSPROPERTY_SET * FilterProperties,
272  IN ULONG Unknown1,
273  IN ULONG Unknown2,
274  IN ULONG PinPropertiesCount,
275  IN KSPROPERTY_SET * PinProperties,
276  IN ULONG EventSetCount,
277  IN KSEVENT_SET * EventSet,
278  IN PPCFILTER_DESCRIPTOR FilterDescription);
279 
280 extern
281 "C"
282 NTSTATUS
283 NTAPI
285  IN PIRP Irp,
288 
289 NTSTATUS
290 NTAPI
293  IN PIRP Irp);
294 
297  IPortWaveCyclic* iface);
298 
299 VOID
300 NTAPI
303  IN PVOID Context);
304 
305 NTSTATUS
306 NTAPI
308  OUT PUNREGISTERSUBDEVICE *OutDevice);
309 
310 NTSTATUS
311 NTAPI
313  OUT PUNREGISTERPHYSICALCONNECTION *OutConnection);
314 
315 NTSTATUS
316 NTAPI
318  IN PIRP Irp,
319  IN ULONG PropertySetCount,
320  IN PKSPROPERTY_SET PropertySet,
322 
323 NTSTATUS
324 NTAPI
326  IN PIRP Irp,
328 
329 NTSTATUS
330 NTAPI
332  IN PIRP Irp,
334 
335 IIrpTarget *
336 NTAPI
338  PIRP Irp);
339 
340 #define DEFINE_KSPROPERTY_CONNECTIONSET(PinSet,\
341  PropStateHandler, PropDataFormatHandler, PropAllocatorFraming)\
342 DEFINE_KSPROPERTY_TABLE(PinSet) {\
343  DEFINE_KSPROPERTY_ITEM_CONNECTION_STATE(PropStateHandler, PropStateHandler),\
344  DEFINE_KSPROPERTY_ITEM_CONNECTION_DATAFORMAT(PropDataFormatHandler, PropDataFormatHandler),\
345  DEFINE_KSPROPERTY_ITEM_CONNECTION_ALLOCATORFRAMING(PropAllocatorFraming)\
346 }
347 
348 #define DEFINE_KSPROPERTY_ITEM_AUDIO_POSITION(GetHandler, SetHandler)\
349  DEFINE_KSPROPERTY_ITEM(\
350  KSPROPERTY_AUDIO_POSITION,\
351  (GetHandler),\
352  sizeof(KSPROPERTY),\
353  sizeof(KSAUDIO_POSITION),\
354  (SetHandler),\
355  NULL, 0, NULL, NULL, 0)
356 
357 #define DEFINE_KSPROPERTY_AUDIOSET(PinSet,\
358  PropPositionHandler)\
359 DEFINE_KSPROPERTY_TABLE(PinSet) {\
360  DEFINE_KSPROPERTY_ITEM_AUDIO_POSITION(PropPositionHandler, PropPositionHandler)\
361 }
362 
363 
364 #define DEFINE_KSPROPERTY_ITEM_DRMAUDIOSTREAM_CONTENTID(SetHandler)\
365  DEFINE_KSPROPERTY_ITEM(\
366  KSPROPERTY_DRMAUDIOSTREAM_CONTENTID,\
367  NULL,\
368  sizeof(KSPROPERTY),\
369  sizeof(ULONG),\
370  (SetHandler),\
371  NULL, 0, NULL, NULL, 0)
372 
373 #define DEFINE_KSPROPERTY_DRMSET(PinSet,\
374  PropPositionHandler)\
375 DEFINE_KSPROPERTY_TABLE(PinSet) {\
376  DEFINE_KSPROPERTY_ITEM_DRMAUDIOSTREAM_CONTENTID(PropPositionHandler)\
377 }
378 
379 #define DEFINE_KSPROPERTY_PINPROPOSEDATAFORMAT(PinSet,\
380  PropGeneral, PropInstances, PropIntersection)\
381 DEFINE_KSPROPERTY_TABLE(PinSet) {\
382  DEFINE_KSPROPERTY_ITEM_PIN_CINSTANCES(PropInstances),\
383  DEFINE_KSPROPERTY_ITEM_PIN_CTYPES(PropGeneral),\
384  DEFINE_KSPROPERTY_ITEM_PIN_DATAFLOW(PropGeneral),\
385  DEFINE_KSPROPERTY_ITEM_PIN_DATARANGES(PropGeneral),\
386  DEFINE_KSPROPERTY_ITEM_PIN_DATAINTERSECTION(PropIntersection),\
387  DEFINE_KSPROPERTY_ITEM_PIN_INTERFACES(PropGeneral),\
388  DEFINE_KSPROPERTY_ITEM_PIN_MEDIUMS(PropGeneral),\
389  DEFINE_KSPROPERTY_ITEM_PIN_COMMUNICATION(PropGeneral),\
390  DEFINE_KSPROPERTY_ITEM_PIN_GLOBALCINSTANCES(PropGeneral),\
391  DEFINE_KSPROPERTY_ITEM_PIN_NECESSARYINSTANCES(PropGeneral),\
392  DEFINE_KSPROPERTY_ITEM_PIN_PHYSICALCONNECTION(PropGeneral),\
393  DEFINE_KSPROPERTY_ITEM_PIN_CATEGORY(PropGeneral),\
394  DEFINE_KSPROPERTY_ITEM_PIN_NAME(PropGeneral),\
395  DEFINE_KSPROPERTY_ITEM_PIN_CONSTRAINEDDATARANGES(PropGeneral),\
396  DEFINE_KSPROPERTY_ITEM_PIN_PROPOSEDATAFORMAT(PropGeneral)\
397 }
398 
399 typedef struct
400 {
406  IAdapterPowerManagement * AdapterPowerManagement;
408  KSOBJECT_CREATE_ITEM * CreateItems;
409 
410  IResourceList* resources;
411 
414 
417 
419 
420 
421 typedef struct
422 {
427 
428 typedef struct
429 {
434 
435 typedef struct
436 {
438  IIrpTarget * Target;
439  PKSOBJECT_CREATE_ITEM CreateItem;
441 
442 #endif /* PORTCLS_PRIVATE_H */
PDEVICE_OBJECT PrevDeviceObject
Definition: private.hpp:403
IPortWaveRTStream * PPORTWAVERTSTREAM
Definition: portcls.h:1791
NTSTATUS NewPortFilterWaveRT(OUT IPortFilterWaveRT **OutFilter)
PDEVICE_OBJECT GetDeviceObjectFromPortWaveRT(IPortWaveRT *iface)
NTSTATUS NTAPI PinPropertyHandler(IN PIRP Irp, IN PKSIDENTIFIER Request, IN OUT PVOID Data)
CPPORT Port[4]
Definition: headless.c:34
_Must_inspect_result_ typedef _In_ PVOID Unused
Definition: iotypes.h:1129
#define IN
Definition: typedefs.h:38
NTSTATUS NTAPI PortClsSysControl(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
Definition: irp.cpp:391
NTSTATUS NTAPI PcHandlePropertyWithTable(IN PIRP Irp, IN ULONG PropertySetCount, IN PKSPROPERTY_SET PropertySet, IN PSUBDEVICE_DESCRIPTOR Descriptor)
Definition: undoc.cpp:81
IPortFilterDMus * PPORTFILTERDMUS
Definition: interfaces.hpp:838
NTSTATUS NewPortFilterWavePci(OUT IPortFilterWavePci **OutFilter)
PVOID Context
Definition: private.hpp:432
NTSTATUS NewPortDMus(OUT PPORT *OutPort)
Definition: port_dmus.cpp:510
struct TIMER_CONTEXT * PTIMER_CONTEXT
_In_ PKSPIN_CONNECT Connect
Definition: ks.h:4536
IPortTopology * PPORTTOPOLOGY
Definition: portcls.h:1403
IMiniportTopology * PMINIPORTTOPOLOGY
Definition: portcls.h:1431
#define __cdecl
Definition: accygwin.h:79
NTSTATUS NewPortFilterDMus(OUT PPORTFILTERDMUS *OutFilter)
NTSTATUS NewMiniportDMusUART(OUT PMINIPORT *OutMiniport, IN REFCLSID ClassId)
struct PCLASS_DEVICE_EXTENSION * PPCLASS_DEVICE_EXTENSION
_In_ PIRP Irp
Definition: csq.h:116
IPortPinDMus * PPORTPINDMUS
Definition: interfaces.hpp:884
#define REFCLSID
Definition: guiddef.h:117
PDEVICE_OBJECT GetDeviceObject(IPortWaveCyclic *iface)
PIO_TIMER_ROUTINE pTimerRoutine
Definition: private.hpp:431
LONG NTSTATUS
Definition: precomp.h:26
IResourceList * resources
Definition: private.hpp:410
NTSTATUS NewPortPinWaveCyclic(OUT IPortPinWaveCyclic **OutPin)
static GUID InterfaceGuids[3]
Definition: port_dmus.cpp:64
enum _DMA_WIDTH DMA_WIDTH
VOID FreeItem(IN PVOID Item, IN ULONG Tag)
Definition: pool.cpp:32
NTSTATUS NewPortWaveRTStream(PPORTWAVERTSTREAM *OutStream)
IUnregisterSubdevice * PUNREGISTERSUBDEVICE
Definition: portcls.h:633
PCPFNSTARTDEVICE StartDevice
Definition: private.hpp:404
const MUI_LANGUAGE_RESOURCE ResourceList[]
Definition: muilanguages.h:414
NTSTATUS NewPortPinWaveRT(OUT IPortPinWaveRT **OutPin)
Definition: pin_wavert.cpp:686
enum _SYSTEM_POWER_STATE SYSTEM_POWER_STATE
VOID GetDMusMiniport(IN IPortDMus *iface, IN PMINIPORTDMUS *Miniport, IN PMINIPORTMIDI *MidiMiniport)
Definition: port_dmus.cpp:533
IMiniportWaveRT * PMINIPORTWAVERT
Definition: portcls.h:1927
uint32_t ULONG_PTR
Definition: typedefs.h:63
struct _CLASS_DEVICE_EXTENSION * PCLASS_DEVICE_EXTENSION
NTSTATUS NTAPI PcCreateItemDispatch(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
_In_ NDIS_HANDLE _In_ PNDIS_REQUEST Request
Definition: ndis.h:5173
IIrpTarget * Target
Definition: private.hpp:438
DEVICE_POWER_STATE DevicePowerState
Definition: private.hpp:415
PDEVICE_OBJECT GetDeviceObjectFromPortWavePci(IPortWavePci *iface)
NTSTATUS(* NTAPI)(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
Definition: IoEaTest.cpp:117
NTSTATUS NTAPI NewDispatchObject(IN PIRP Irp, IN IIrpTarget *Target, IN ULONG ObjectCreateItemCount, IN PKSOBJECT_CREATE_ITEM ObjectCreateItem)
Definition: dispatcher.cpp:242
NTSTATUS NewPortWaveCyclic(OUT PPORT *OutPort)
NTSTATUS NTAPI PcHandleDisableEventWithTable(IN PIRP Irp, IN PSUBDEVICE_DESCRIPTOR Descriptor)
Definition: undoc.cpp:67
PMINIPORTWAVECYCLIC GetWaveCyclicMiniport(IN IPortWaveCyclic *iface)
NTSTATUS NTAPI PcDmaSlaveDescription(IN PRESOURCELIST ResourceList OPTIONAL, IN ULONG DmaIndex, IN BOOLEAN DemandMode, IN BOOLEAN AutoInitialize, IN DMA_SPEED DmaSpeed, IN ULONG MaximumLength, IN ULONG DmaPort, OUT PDEVICE_DESCRIPTION DeviceDescription)
Definition: api.cpp:244
NTSTATUS NTAPI PortClsPower(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
Definition: irp.cpp:209
PMINIPORTTOPOLOGY GetTopologyMiniport(PPORTTOPOLOGY Port)
_In_ BOOLEAN Dma64BitAddresses
Definition: ndis.h:4652
IPort * PPORT
Definition: portcls.h:1093
unsigned char BOOLEAN
NTSTATUS NTAPI PcCreateSubdeviceDescriptor(OUT SUBDEVICE_DESCRIPTOR **OutSubdeviceDescriptor, IN ULONG InterfaceCount, IN GUID *InterfaceGuids, IN ULONG IdentifierCount, IN KSIDENTIFIER *Identifier, IN ULONG FilterPropertiesCount, IN KSPROPERTY_SET *FilterProperties, IN ULONG Unknown1, IN ULONG Unknown2, IN ULONG PinPropertiesCount, IN KSPROPERTY_SET *PinProperties, IN ULONG EventSetCount, IN KSEVENT_SET *EventSet, IN PPCFILTER_DESCRIPTOR FilterDescription)
Definition: undoc.cpp:730
KSPIN_LOCK TimerListLock
Definition: private.hpp:413
IMiniportWavePci * PMINIPORTWAVEPCI
Definition: portcls.h:1660
NTSTATUS NTAPI NewIUnregisterPhysicalConnection(OUT PUNREGISTERPHYSICALCONNECTION *OutConnection)
Definition: connection.cpp:148
IUnregisterPhysicalConnection * PUNREGISTERPHYSICALCONNECTION
Definition: portcls.h:675
NTSTATUS(NTAPI * PCPFNSTARTDEVICE)(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp, IN PRESOURCELIST ResourceList)
Definition: portcls.h:2231
enum _DEVICE_POWER_STATE DEVICE_POWER_STATE
_Must_inspect_result_ _In_ PDEVICE_DESCRIPTION DeviceDescription
Definition: iofuncs.h:1015
struct DISPATCH_CONTEXT * PDISPATCH_CONTEXT
KSDEVICE_HEADER KsDeviceHeader
Definition: private.hpp:401
NTSTATUS NTAPI PortClsPnp(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
Definition: irp.cpp:41
IDrmPort2 * PDRMPORT2
Definition: portcls.h:2172
INT POOL_TYPE
Definition: typedefs.h:76
PDEVICE_OBJECT PhysicalDeviceObject
Definition: private.hpp:402
NTSTATUS NewPortWaveRT(OUT PPORT *OutPort)
NTSTATUS NTAPI TopologyPropertyHandler(IN PIRP Irp, IN PKSIDENTIFIER Request, IN OUT PVOID Data)
_Must_inspect_result_ typedef _In_ ULONG _In_ BOOLEAN Target
Definition: iotypes.h:1068
PDEVICE_OBJECT GetDeviceObjectFromWaveCyclic(IPortWavePci *iface)
NTSTATUS NewPortWavePci(OUT PPORT *OutPort)
NTSTATUS NTAPI NewIUnregisterSubdevice(OUT PUNREGISTERSUBDEVICE *OutDevice)
Definition: unregister.cpp:143
NTSTATUS NewIDrmPort(OUT PDRMPORT2 *OutPort)
Definition: drm_port.cpp:145
Definition: typedefs.h:117
PIO_WORKITEM WorkItem
Definition: private.hpp:424
NTSTATUS NTAPI NewIrpQueue(IN IIrpQueue **Queue)
Definition: irpstream.cpp:808
IN PVOID IN PVOID IN USHORT IN USHORT Size
Definition: pci.h:359
enum _DMA_SPEED DMA_SPEED
IResourceList * PRESOURCELIST
Definition: portcls.h:442
PMINIPORTWAVEPCI GetWavePciMiniport(PPORTWAVEPCI Port)
KSOBJECT_CREATE_ITEM * CreateItems
Definition: private.hpp:408
UnicodeString MaximumLength
Definition: rtlfuncs.h:2982
IN PDEVICE_OBJECT DeviceObject
Definition: fatprocs.h:1560
ULONG_PTR SIZE_T
Definition: typedefs.h:78
NTSTATUS NewPortTopology(OUT PPORT *OutPort)
IMiniportWaveCyclic * PMINIPORTWAVECYCLIC
Definition: portcls.h:1524
IAdapterPowerManagement * AdapterPowerManagement
Definition: private.hpp:406
PVOID AllocateItem(IN POOL_TYPE PoolType, IN SIZE_T NumberOfBytes, IN ULONG Tag)
Definition: pool.cpp:18
NTSTATUS NTAPI PcValidateConnectRequest(IN PIRP Irp, IN KSPIN_FACTORY *Descriptor, OUT PKSPIN_CONNECT *Connect)
Definition: undoc.cpp:998
NTSTATUS NewPortClsVersion(OUT PPORTCLSVERSION *OutVersion)
Definition: version.cpp:93
IMiniportDMus * PMINIPORTDMUS
Definition: dmusicks.h:209
IPortWavePci * PPORTWAVEPCI
Definition: portcls.h:1236
NTSTATUS NTAPI PortClsCreate(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
Definition: irp.cpp:29
IIrpTarget *NTAPI KsoGetIrpTargetFromIrp(PIRP Irp)
Definition: undoc.cpp:40
ULONG KSPIN_LOCK
Definition: env_spec_w32.h:72
IMiniportMidi * PMINIPORTMIDI
Definition: portcls.h:1366
NTSTATUS NewPortFilterTopology(OUT IPortFilterTopology **OutFilter)
_In_ struct _IRP _In_ struct _SCATTER_GATHER_LIST * ScatterGather
Definition: iotypes.h:2259
VOID NTAPI PcIoTimerRoutine(IN PDEVICE_OBJECT DeviceObject, IN PVOID Context)
Definition: api.cpp:49
NTSTATUS NTAPI PcDmaMasterDescription(IN PRESOURCELIST ResourceList OPTIONAL, IN BOOLEAN ScatterGather, IN BOOLEAN Dma32BitAddresses, IN BOOLEAN IgnoreCount, IN BOOLEAN Dma64BitAddresses, IN DMA_WIDTH DmaWidth, IN DMA_SPEED DmaSpeed, IN ULONG MaximumLength, IN ULONG DmaPort, OUT PDEVICE_DESCRIPTION DeviceDescription)
Definition: api.cpp:213
NTSTATUS NewMiniportFmSynth(OUT PMINIPORT *OutMiniport, IN REFCLSID ClassId)
IN ULONG IN ULONG Tag
Definition: evtlib.h:159
LIST_ENTRY Entry
Definition: private.hpp:430
SYSTEM_POWER_STATE SystemPowerState
Definition: private.hpp:416
#define OUT
Definition: typedefs.h:39
NTSTATUS NewPortPinDMus(OUT PPORTPINDMUS *OutPin)
struct CLOSESTREAM_CONTEXT * PCLOSESTREAM_CONTEXT
_Must_inspect_result_ typedef _In_ PHYSICAL_ADDRESS _Inout_ PLARGE_INTEGER NumberOfBytes
Definition: iotypes.h:998
IO_TIMER_ROUTINE * PIO_TIMER_ROUTINE
Definition: iotypes.h:2508
unsigned int ULONG
Definition: retypes.h:1
KSOBJECT_HEADER ObjectHeader
Definition: private.hpp:437
NTSTATUS NewPortPinWavePci(OUT IPortPinWavePci **OutPin)
PMINIPORTWAVERT GetWaveRTMiniport(IN IPortWaveRT *iface)
_Must_inspect_result_ _In_ FLT_CONTEXT_TYPE _In_ SIZE_T _In_ POOL_TYPE PoolType
Definition: fltkernel.h:1444
NTSTATUS NewPortFilterWaveCyclic(OUT IPortFilterWaveCyclic **OutFilter)
PKSOBJECT_CREATE_ITEM CreateItem
Definition: private.hpp:439
NTSTATUS NTAPI PcHandleEnableEventWithTable(IN PIRP Irp, IN PSUBDEVICE_DESCRIPTOR Descriptor)
Definition: undoc.cpp:54
_In_ PSTORAGE_PROPERTY_ID _Outptr_ PSTORAGE_DESCRIPTOR_HEADER * Descriptor
Definition: classpnp.h:966
PULONG MinorVersion OPTIONAL
Definition: CrossNt.h:68
IPortClsVersion * PPORTCLSVERSION
Definition: portcls.h:2209