ReactOS 0.4.15-dev-7788-g1ad9096
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
35operator new(
36 size_t Size,
38 ULONG Tag);
39
40extern
41"C"
46 IN PIRP Irp);
47
48extern
49"C"
54 IN PIRP Irp);
55
56extern
57"C"
62 IN PIRP Irp);
63
64extern
65"C"
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
104 OUT PPORTCLSVERSION * OutVersion);
105
108 OUT IPortFilterWaveCyclic ** OutFilter);
109
112 OUT IPortPinWaveCyclic ** OutPin);
113
116 OUT IPortFilterWavePci ** OutFilter);
117
120 OUT IPortPinWavePci ** OutPin);
121
124 IPortWavePci* iface);
125
128 IPortWavePci* iface);
129
133
134
137 OUT PPORTFILTERDMUS * OutFilter);
138
139
142 OUT PPORTPINDMUS * OutPin);
143
144VOID
146 IN IPortDMus * iface,
147 IN PMINIPORTDMUS * Miniport,
148 IN PMINIPORTMIDI * MidiMiniport);
149
150#if (NTDDI_VERSION >= NTDDI_VISTA)
151
154 OUT IPortFilterWaveRT ** OutFilter);
155
158 OUT IPortPinWaveRT ** OutPin);
159
162 IN IPortWaveRT* iface);
163
166 IPortWaveRT* iface);
167
168
171 PPORTWAVERTSTREAM *OutStream);
172
175 OUT PPORT* OutPort);
176
177
178#endif
179
182 OUT IPortFilterTopology ** OutFilter);
183
187
189NTAPI
191 IN PIRP Irp,
192 IN IIrpTarget * Target,
193 IN ULONG ObjectCreateItemCount,
194 IN PKSOBJECT_CREATE_ITEM ObjectCreateItem);
195
198 IN IPortWaveCyclic* iface);
199
200PVOID
204 IN ULONG Tag);
205
206VOID
208 IN PVOID Item,
209 IN ULONG Tag);
210
212NTAPI
214 IN IIrpQueue **Queue);
215
217NTAPI
219 IN PIRP Irp,
221 IN OUT PVOID Data);
222
224NTAPI
226 IN PIRP Irp,
228 IN OUT PVOID Data);
229
230extern
231"C"
233NTAPI
237 IN BOOLEAN Dma32BitAddresses,
238 IN BOOLEAN IgnoreCount,
240 IN DMA_WIDTH DmaWidth,
241 IN DMA_SPEED DmaSpeed,
243 IN ULONG DmaPort,
245
246extern
247"C"
249NTAPI
252 IN ULONG DmaIndex,
253 IN BOOLEAN DemandMode,
254 IN BOOLEAN AutoInitialize,
255 IN DMA_SPEED DmaSpeed,
257 IN ULONG DmaPort,
259
260extern
261"C"
263NTAPI
265 OUT SUBDEVICE_DESCRIPTOR ** OutSubdeviceDescriptor,
266 IN ULONG InterfaceCount,
268 IN ULONG IdentifierCount,
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
280extern
281"C"
283NTAPI
285 IN PIRP Irp,
288
290NTAPI
293 IN PIRP Irp);
294
297 IPortWaveCyclic* iface);
298
299VOID
300NTAPI
304
306NTAPI
308 OUT PUNREGISTERSUBDEVICE *OutDevice);
309
311NTAPI
313 OUT PUNREGISTERPHYSICALCONNECTION *OutConnection);
314
316NTAPI
318 IN PIRP Irp,
319 IN ULONG PropertySetCount,
320 IN PKSPROPERTY_SET PropertySet,
322
324NTAPI
326 IN PIRP Irp,
328
330NTAPI
332 IN PIRP Irp,
334
335IIrpTarget *
336NTAPI
338 PIRP Irp);
339
340#define DEFINE_KSPROPERTY_CONNECTIONSET(PinSet,\
341 PropStateHandler, PropDataFormatHandler, PropAllocatorFraming)\
342DEFINE_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)\
359DEFINE_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)\
375DEFINE_KSPROPERTY_TABLE(PinSet) {\
376 DEFINE_KSPROPERTY_ITEM_DRMAUDIOSTREAM_CONTENTID(PropPositionHandler)\
377}
378
379#define DEFINE_KSPROPERTY_PINPROPOSEDATAFORMAT(PinSet,\
380 PropGeneral, PropInstances, PropIntersection)\
381DEFINE_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
399typedef struct
400{
406 IAdapterPowerManagement * AdapterPowerManagement;
408 KSOBJECT_CREATE_ITEM * CreateItems;
409
410 IResourceList* resources;
411
414
417
419
420
421typedef struct
422{
427
428typedef struct
429{
434
435typedef struct
436{
438 IIrpTarget * Target;
439 PKSOBJECT_CREATE_ITEM CreateItem;
441
442template<typename... Interfaces>
443class CUnknownImpl : public Interfaces...
444{
445private:
446 volatile LONG m_Ref;
447protected:
449 m_Ref(0)
450 {
451 }
453 {
454 }
455public:
457 {
459 ASSERT(Ref < 0x10000);
460 return Ref;
461 }
463 {
465 ASSERT(Ref < 0x10000);
466 if (!Ref)
467 {
468 delete this;
469 return 0;
470 }
471 return Ref;
472 }
473};
474
475#endif /* PORTCLS_PRIVATE_H */
unsigned char BOOLEAN
#define __cdecl
Definition: accygwin.h:79
#define InterlockedIncrement
Definition: armddk.h:53
#define InterlockedDecrement
Definition: armddk.h:52
@ Identifier
Definition: asmpp.cpp:95
IPortFilterDMus * PPORTFILTERDMUS
Definition: interfaces.hpp:839
IPortPinDMus * PPORTPINDMUS
Definition: interfaces.hpp:883
LONG NTSTATUS
Definition: precomp.h:26
_In_ BOOLEAN Release
Definition: cdrom.h:920
virtual ~CUnknownImpl()
Definition: private.hpp:452
STDMETHODIMP_(ULONG) Release()
Definition: private.hpp:462
STDMETHODIMP_(ULONG) AddRef()
Definition: private.hpp:456
volatile LONG m_Ref
Definition: private.hpp:446
_In_ PIRP Irp
Definition: csq.h:116
IMiniportDMus * PMINIPORTDMUS
Definition: dmusicks.h:211
ULONG KSPIN_LOCK
Definition: env_spec_w32.h:72
return pDevice GetDeviceObject()
CPPORT Port[4]
Definition: headless.c:35
_In_ PKSPIN_CONNECT Connect
Definition: ks.h:4536
#define Unused(x)
Definition: atlwin.h:28
#define ASSERT(a)
Definition: mode.c:44
static ULONG WINAPI AddRef(IStream *iface)
Definition: clist.c:90
_In_ BOOLEAN Dma64BitAddresses
Definition: ndis.h:4652
enum _DEVICE_POWER_STATE DEVICE_POWER_STATE
enum _SYSTEM_POWER_STATE SYSTEM_POWER_STATE
long LONG
Definition: pedump.c:60
static GUID InterfaceGuids[3]
Definition: port_dmus.cpp:42
IMiniportWaveCyclic * PMINIPORTWAVECYCLIC
Definition: portcls.h:1543
IMiniportWaveRT * PMINIPORTWAVERT
Definition: portcls.h:1983
IMiniportTopology * PMINIPORTTOPOLOGY
Definition: portcls.h:1443
IResourceList * PRESOURCELIST
Definition: portcls.h:442
IPortWaveRTStream * PPORTWAVERTSTREAM
Definition: portcls.h:1847
IUnregisterSubdevice * PUNREGISTERSUBDEVICE
Definition: portcls.h:635
IPortClsVersion * PPORTCLSVERSION
Definition: portcls.h:2263
IUnregisterPhysicalConnection * PUNREGISTERPHYSICALCONNECTION
Definition: portcls.h:677
NTSTATUS(NTAPI * PCPFNSTARTDEVICE)(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp, IN PRESOURCELIST ResourceList)
Definition: portcls.h:2304
IDrmPort2 * PDRMPORT2
Definition: portcls.h:2228
IMiniportWavePci * PMINIPORTWAVEPCI
Definition: portcls.h:1697
IMiniportMidi * PMINIPORTMIDI
Definition: portcls.h:1378
IPortTopology * PPORTTOPOLOGY
Definition: portcls.h:1415
IPort * PPORT
Definition: portcls.h:1105
IPortWavePci * PPORTWAVEPCI
Definition: portcls.h:1248
NTSTATUS NewPortWavePci(OUT PPORT *OutPort)
PMINIPORTWAVERT GetWaveRTMiniport(IN IPortWaveRT *iface)
NTSTATUS NewPortFilterDMus(OUT PPORTFILTERDMUS *OutFilter)
NTSTATUS NTAPI PcValidateConnectRequest(IN PIRP Irp, IN KSPIN_FACTORY *Descriptor, OUT PKSPIN_CONNECT *Connect)
Definition: undoc.cpp:985
NTSTATUS NTAPI PinPropertyHandler(IN PIRP Irp, IN PKSIDENTIFIER Request, IN OUT PVOID Data)
NTSTATUS NewPortPinWaveRT(OUT IPortPinWaveRT **OutPin)
Definition: pin_wavert.cpp:670
struct CLOSESTREAM_CONTEXT * PCLOSESTREAM_CONTEXT
NTSTATUS NewPortDMus(OUT PPORT *OutPort)
Definition: port_dmus.cpp:482
NTSTATUS NTAPI NewDispatchObject(IN PIRP Irp, IN IIrpTarget *Target, IN ULONG ObjectCreateItemCount, IN PKSOBJECT_CREATE_ITEM ObjectCreateItem)
Definition: dispatcher.cpp:234
NTSTATUS NewPortPinWavePci(OUT IPortPinWavePci **OutPin)
NTSTATUS NTAPI PortClsPnp(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
Definition: irp.cpp:36
NTSTATUS NewIDrmPort(OUT PDRMPORT2 *OutPort)
Definition: drm_port.cpp:122
PVOID AllocateItem(IN POOL_TYPE PoolType, IN SIZE_T NumberOfBytes, IN ULONG Tag)
Definition: pool.cpp:12
NTSTATUS NewMiniportDMusUART(OUT PMINIPORT *OutMiniport, IN REFCLSID ClassId)
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:237
PDEVICE_OBJECT GetDeviceObjectFromPortWavePci(IPortWavePci *iface)
NTSTATUS NewPortWaveRT(OUT PPORT *OutPort)
NTSTATUS NTAPI NewIUnregisterSubdevice(OUT PUNREGISTERSUBDEVICE *OutDevice)
Definition: unregister.cpp:119
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:717
struct DISPATCH_CONTEXT * PDISPATCH_CONTEXT
struct TIMER_CONTEXT * PTIMER_CONTEXT
NTSTATUS NewPortFilterTopology(OUT IPortFilterTopology **OutFilter)
NTSTATUS NewPortFilterWaveCyclic(OUT IPortFilterWaveCyclic **OutFilter)
IIrpTarget *NTAPI KsoGetIrpTargetFromIrp(PIRP Irp)
Definition: undoc.cpp:37
PMINIPORTTOPOLOGY GetTopologyMiniport(PPORTTOPOLOGY Port)
NTSTATUS NTAPI PcHandleDisableEventWithTable(IN PIRP Irp, IN PSUBDEVICE_DESCRIPTOR Descriptor)
Definition: undoc.cpp:64
NTSTATUS NewPortClsVersion(OUT PPORTCLSVERSION *OutVersion)
Definition: version.cpp:66
struct PCLASS_DEVICE_EXTENSION * PPCLASS_DEVICE_EXTENSION
NTSTATUS NTAPI PcCreateItemDispatch(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
NTSTATUS NTAPI TopologyPropertyHandler(IN PIRP Irp, IN PKSIDENTIFIER Request, IN OUT PVOID Data)
NTSTATUS NewPortWaveRTStream(PPORTWAVERTSTREAM *OutStream)
NTSTATUS NewPortFilterWaveRT(OUT IPortFilterWaveRT **OutFilter)
PDEVICE_OBJECT GetDeviceObjectFromPortWaveRT(IPortWaveRT *iface)
NTSTATUS NTAPI PortClsPower(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
Definition: irp.cpp:202
NTSTATUS NTAPI NewIrpQueue(IN IIrpQueue **Queue)
Definition: irpstream.cpp:864
NTSTATUS NTAPI NewIUnregisterPhysicalConnection(OUT PUNREGISTERPHYSICALCONNECTION *OutConnection)
Definition: connection.cpp:124
NTSTATUS NewPortPinWaveCyclic(OUT IPortPinWaveCyclic **OutPin)
PMINIPORTWAVECYCLIC GetWaveCyclicMiniport(IN IPortWaveCyclic *iface)
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:206
NTSTATUS NewPortPinDMus(OUT PPORTPINDMUS *OutPin)
Definition: pin_dmus.cpp:606
NTSTATUS NTAPI PortClsCreate(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
Definition: irp.cpp:25
PDEVICE_OBJECT GetDeviceObjectFromWaveCyclic(IPortWavePci *iface)
VOID NTAPI PcIoTimerRoutine(IN PDEVICE_OBJECT DeviceObject, IN PVOID Context)
Definition: api.cpp:46
NTSTATUS NewPortFilterWavePci(OUT IPortFilterWavePci **OutFilter)
NTSTATUS NTAPI PortClsSysControl(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
Definition: irp.cpp:367
NTSTATUS NTAPI PcHandleEnableEventWithTable(IN PIRP Irp, IN PSUBDEVICE_DESCRIPTOR Descriptor)
Definition: undoc.cpp:51
NTSTATUS NewPortWaveCyclic(OUT PPORT *OutPort)
VOID FreeItem(IN PVOID Item, IN ULONG Tag)
Definition: pool.cpp:21
NTSTATUS NewPortTopology(OUT PPORT *OutPort)
NTSTATUS NewMiniportFmSynth(OUT PMINIPORT *OutMiniport, IN REFCLSID ClassId)
VOID GetDMusMiniport(IN IPortDMus *iface, IN PMINIPORTDMUS *Miniport, IN PMINIPORTMIDI *MidiMiniport)
Definition: port_dmus.cpp:503
PMINIPORTWAVEPCI GetWavePciMiniport(PPORTWAVEPCI Port)
NTSTATUS NTAPI PcHandlePropertyWithTable(IN PIRP Irp, IN ULONG PropertySetCount, IN PKSPROPERTY_SET PropertySet, IN PSUBDEVICE_DESCRIPTOR Descriptor)
Definition: undoc.cpp:78
#define REFCLSID
Definition: guiddef.h:117
enum _DMA_SPEED DMA_SPEED
enum _DMA_WIDTH DMA_WIDTH
PULONG MinorVersion OPTIONAL
Definition: CrossNt.h:68
PIO_WORKITEM WorkItem
Definition: private.hpp:424
PKSOBJECT_CREATE_ITEM CreateItem
Definition: private.hpp:439
KSOBJECT_HEADER ObjectHeader
Definition: private.hpp:437
IIrpTarget * Target
Definition: private.hpp:438
IResourceList * resources
Definition: private.hpp:410
KSDEVICE_HEADER KsDeviceHeader
Definition: private.hpp:401
PDEVICE_OBJECT PhysicalDeviceObject
Definition: private.hpp:402
PDEVICE_OBJECT PrevDeviceObject
Definition: private.hpp:403
IAdapterPowerManagement * AdapterPowerManagement
Definition: private.hpp:406
SYSTEM_POWER_STATE SystemPowerState
Definition: private.hpp:416
KSOBJECT_CREATE_ITEM * CreateItems
Definition: private.hpp:408
PCPFNSTARTDEVICE StartDevice
Definition: private.hpp:404
DEVICE_POWER_STATE DevicePowerState
Definition: private.hpp:415
KSPIN_LOCK TimerListLock
Definition: private.hpp:413
LIST_ENTRY Entry
Definition: private.hpp:430
PVOID Context
Definition: private.hpp:432
PIO_TIMER_ROUTINE pTimerRoutine
Definition: private.hpp:431
Definition: typedefs.h:120
INT POOL_TYPE
Definition: typedefs.h:78
#define NTAPI
Definition: typedefs.h:36
ULONG_PTR SIZE_T
Definition: typedefs.h:80
uint32_t ULONG_PTR
Definition: typedefs.h:65
#define IN
Definition: typedefs.h:39
uint32_t ULONG
Definition: typedefs.h:59
#define OUT
Definition: typedefs.h:40
_In_ WDFCOLLECTION _In_ WDFOBJECT Item
_In_ PDEVICE_OBJECT DeviceObject
Definition: wdfdevice.h:2055
_Must_inspect_result_ _In_ WDFDEVICE _In_ BOOLEAN _In_opt_ PVOID Tag
Definition: wdfdevice.h:4065
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ _Strict_type_match_ POOL_TYPE PoolType
Definition: wdfdevice.h:3815
_Must_inspect_result_ _In_ WDFDEVICE _In_ PIRP _In_ WDFQUEUE Queue
Definition: wdfdevice.h:2225
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ DEVPROPTYPE _In_ ULONG Size
Definition: wdfdevice.h:4533
_In_ WDFREQUEST Request
Definition: wdfdevice.h:547
_In_ WDFDMATRANSACTION _In_ size_t MaximumLength
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_ PCUNICODE_STRING DeviceDescription
Definition: wdfpdo.h:432
_In_ WDFIOTARGET Target
Definition: wdfrequest.h:306
_Must_inspect_result_ _In_ WDFIORESREQLIST _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFIORESLIST * ResourceList
Definition: wdfresource.h:309
_Must_inspect_result_ _In_ WDFIORESLIST _In_ PIO_RESOURCE_DESCRIPTOR Descriptor
Definition: wdfresource.h:342
_In_ struct _IRP _In_ struct _SCATTER_GATHER_LIST * ScatterGather
Definition: iotypes.h:2375
IO_TIMER_ROUTINE * PIO_TIMER_ROUTINE
Definition: iotypes.h:2863
_Must_inspect_result_ typedef _In_ PHYSICAL_ADDRESS _Inout_ PLARGE_INTEGER NumberOfBytes
Definition: iotypes.h:1036