ReactOS 0.4.15-dev-7788-g1ad9096
wdffdo.h
Go to the documentation of this file.
1/*++
2
3Copyright (c) Microsoft Corporation. All rights reserved.
4
5_WdfVersionBuild_
6
7Module Name:
8
9 WdfFdo.h
10
11Abstract:
12
13 This is the interface to the FDO functionality in the framework. This also
14 covers filters.
15
16Environment:
17
18 kernel mode only
19
20Revision History:
21
22--*/
23
24//
25// NOTE: This header is generated by stubwork. Please make any
26// modifications to the corresponding template files
27// (.x or .y) and use stubwork to regenerate the header
28//
29
30#ifndef _WDFFDO_H_
31#define _WDFFDO_H_
32
33#ifndef WDF_EXTERN_C
34 #ifdef __cplusplus
35 #define WDF_EXTERN_C extern "C"
36 #define WDF_EXTERN_C_START extern "C" {
37 #define WDF_EXTERN_C_END }
38 #else
39 #define WDF_EXTERN_C
40 #define WDF_EXTERN_C_START
41 #define WDF_EXTERN_C_END
42 #endif
43#endif
44
46
47
48
49#if (NTDDI_VERSION >= NTDDI_WIN2K)
50
51
52
53typedef
54_Function_class_(EVT_WDF_DEVICE_FILTER_RESOURCE_REQUIREMENTS)
59EVT_WDF_DEVICE_FILTER_RESOURCE_REQUIREMENTS(
60 _In_
61 WDFDEVICE Device,
62 _In_
64 );
65
66typedef EVT_WDF_DEVICE_FILTER_RESOURCE_REQUIREMENTS *PFN_WDF_DEVICE_FILTER_RESOURCE_REQUIREMENTS;
67
68typedef
69_Function_class_(EVT_WDF_DEVICE_REMOVE_ADDED_RESOURCES)
74EVT_WDF_DEVICE_REMOVE_ADDED_RESOURCES(
75 _In_
76 WDFDEVICE Device,
77 _In_
78 WDFCMRESLIST ResourcesRaw,
79 _In_
81 );
82
83typedef EVT_WDF_DEVICE_REMOVE_ADDED_RESOURCES *PFN_WDF_DEVICE_REMOVE_ADDED_RESOURCES;
84
86 //
87 // Size of this structure in bytes
88 //
90
92
94
96
98
100VOID
103 )
104{
106 Callbacks->Size = sizeof(WDF_FDO_EVENT_CALLBACKS);
107}
108
109
110//
111// WDF Function: WdfFdoInitWdmGetPhysicalDevice
112//
113typedef
115WDFAPI
117(STDCALL *PFN_WDFFDOINITWDMGETPHYSICALDEVICE)(
118 _In_
120 _In_
122 );
123
127WdfFdoInitWdmGetPhysicalDevice(
128 _In_
130 )
131{
132 return ((PFN_WDFFDOINITWDMGETPHYSICALDEVICE) WdfFunctions[WdfFdoInitWdmGetPhysicalDeviceTableIndex])(WdfDriverGlobals, DeviceInit);
133}
134
135//
136// WDF Function: WdfFdoInitOpenRegistryKey
137//
138typedef
141WDFAPI
143(STDCALL *PFN_WDFFDOINITOPENREGISTRYKEY)(
144 _In_
146 _In_
148 _In_
150 _In_
154 _Out_
155 WDFKEY* Key
156 );
157
162WdfFdoInitOpenRegistryKey(
163 _In_
165 _In_
167 _In_
171 _Out_
172 WDFKEY* Key
173 )
174{
176}
177
178//
179// WDF Function: WdfFdoInitQueryProperty
180//
181typedef
184WDFAPI
186(STDCALL *PFN_WDFFDOINITQUERYPROPERTY)(
187 _In_
189 _In_
191 _In_
193 _In_
197 _Out_
199 );
200
205WdfFdoInitQueryProperty(
206 _In_
208 _In_
210 _In_
214 _Out_
216 )
217{
219}
220
221//
222// WDF Function: WdfFdoInitAllocAndQueryProperty
223//
224typedef
227WDFAPI
229(STDCALL *PFN_WDFFDOINITALLOCANDQUERYPROPERTY)(
230 _In_
232 _In_
234 _In_
236 _In_
241 _Out_
242 WDFMEMORY* PropertyMemory
243 );
244
249WdfFdoInitAllocAndQueryProperty(
250 _In_
252 _In_
254 _In_
259 _Out_
260 WDFMEMORY* PropertyMemory
261 )
262{
264}
265
266//
267// WDF Function: WdfFdoInitQueryPropertyEx
268//
269typedef
272WDFAPI
274(STDCALL *PFN_WDFFDOINITQUERYPROPERTYEX)(
275 _In_
277 _In_
279 _In_
281 _In_
283 _Out_
285 _Out_
287 _Out_
289 );
290
295WdfFdoInitQueryPropertyEx(
296 _In_
298 _In_
300 _In_
302 _Out_
304 _Out_
306 _Out_
308 )
309{
311}
312
313//
314// WDF Function: WdfFdoInitAllocAndQueryPropertyEx
315//
316typedef
319WDFAPI
321(STDCALL *PFN_WDFFDOINITALLOCANDQUERYPROPERTYEX)(
322 _In_
324 _In_
326 _In_
328 _In_
333 _Out_
334 WDFMEMORY* PropertyMemory,
335 _Out_
337 );
338
343WdfFdoInitAllocAndQueryPropertyEx(
344 _In_
346 _In_
348 _In_
353 _Out_
354 WDFMEMORY* PropertyMemory,
355 _Out_
357 )
358{
360}
361
362//
363// WDF Function: WdfFdoInitSetEventCallbacks
364//
365typedef
367WDFAPI
368VOID
369(STDCALL *PFN_WDFFDOINITSETEVENTCALLBACKS)(
370 _In_
372 _In_
374 _In_
376 );
377
380VOID
381WdfFdoInitSetEventCallbacks(
382 _In_
384 _In_
386 )
387{
389}
390
391//
392// WDF Function: WdfFdoInitSetFilter
393//
394typedef
396WDFAPI
397VOID
398(STDCALL *PFN_WDFFDOINITSETFILTER)(
399 _In_
401 _In_
403 );
404
407VOID
408WdfFdoInitSetFilter(
409 _In_
411 )
412{
414}
415
416//
417// WDF Function: WdfFdoInitSetDefaultChildListConfig
418//
419typedef
421WDFAPI
422VOID
423(STDCALL *PFN_WDFFDOINITSETDEFAULTCHILDLISTCONFIG)(
424 _In_
426 _Inout_
428 _In_
432 );
433
436VOID
437WdfFdoInitSetDefaultChildListConfig(
438 _Inout_
440 _In_
444 )
445{
447}
448
449//
450// WDF Function: WdfFdoQueryForInterface
451//
452typedef
455WDFAPI
457(STDCALL *PFN_WDFFDOQUERYFORINTERFACE)(
458 _In_
460 _In_
461 WDFDEVICE Fdo,
462 _In_
464 _Out_
466 _In_
468 _In_
472 );
473
478WdfFdoQueryForInterface(
479 _In_
480 WDFDEVICE Fdo,
481 _In_
483 _Out_
485 _In_
486 USHORT Size,
487 _In_
491 )
492{
494}
495
496//
497// WDF Function: WdfFdoGetDefaultChildList
498//
499typedef
501WDFAPI
502WDFCHILDLIST
503(STDCALL *PFN_WDFFDOGETDEFAULTCHILDLIST)(
504 _In_
506 _In_
507 WDFDEVICE Fdo
508 );
509
512WDFCHILDLIST
513WdfFdoGetDefaultChildList(
514 _In_
515 WDFDEVICE Fdo
516 )
517{
518 return ((PFN_WDFFDOGETDEFAULTCHILDLIST) WdfFunctions[WdfFdoGetDefaultChildListTableIndex])(WdfDriverGlobals, Fdo);
519}
520
521//
522// WDF Function: WdfFdoAddStaticChild
523//
524typedef
527WDFAPI
529(STDCALL *PFN_WDFFDOADDSTATICCHILD)(
530 _In_
532 _In_
533 WDFDEVICE Fdo,
534 _In_
535 WDFDEVICE Child
536 );
537
542WdfFdoAddStaticChild(
543 _In_
544 WDFDEVICE Fdo,
545 _In_
546 WDFDEVICE Child
547 )
548{
549 return ((PFN_WDFFDOADDSTATICCHILD) WdfFunctions[WdfFdoAddStaticChildTableIndex])(WdfDriverGlobals, Fdo, Child);
550}
551
552//
553// WDF Function: WdfFdoLockStaticChildListForIteration
554//
555typedef
557WDFAPI
558VOID
559(STDCALL *PFN_WDFFDOLOCKSTATICCHILDLISTFORITERATION)(
560 _In_
562 _In_
563 WDFDEVICE Fdo
564 );
565
568VOID
569WdfFdoLockStaticChildListForIteration(
570 _In_
571 WDFDEVICE Fdo
572 )
573{
574 ((PFN_WDFFDOLOCKSTATICCHILDLISTFORITERATION) WdfFunctions[WdfFdoLockStaticChildListForIterationTableIndex])(WdfDriverGlobals, Fdo);
575}
576
577//
578// WDF Function: WdfFdoRetrieveNextStaticChild
579//
580typedef
583WDFAPI
584WDFDEVICE
585(STDCALL *PFN_WDFFDORETRIEVENEXTSTATICCHILD)(
586 _In_
588 _In_
589 WDFDEVICE Fdo,
591 WDFDEVICE PreviousChild,
592 _In_
594 );
595
599WDFDEVICE
600WdfFdoRetrieveNextStaticChild(
601 _In_
602 WDFDEVICE Fdo,
604 WDFDEVICE PreviousChild,
605 _In_
607 )
608{
609 return ((PFN_WDFFDORETRIEVENEXTSTATICCHILD) WdfFunctions[WdfFdoRetrieveNextStaticChildTableIndex])(WdfDriverGlobals, Fdo, PreviousChild, Flags);
610}
611
612//
613// WDF Function: WdfFdoUnlockStaticChildListFromIteration
614//
615typedef
617WDFAPI
618VOID
619(STDCALL *PFN_WDFFDOUNLOCKSTATICCHILDLISTFROMITERATION)(
620 _In_
622 _In_
623 WDFDEVICE Fdo
624 );
625
628VOID
629WdfFdoUnlockStaticChildListFromIteration(
630 _In_
631 WDFDEVICE Fdo
632 )
633{
634 ((PFN_WDFFDOUNLOCKSTATICCHILDLISTFROMITERATION) WdfFunctions[WdfFdoUnlockStaticChildListFromIterationTableIndex])(WdfDriverGlobals, Fdo);
635}
636
637
638
639#endif // (NTDDI_VERSION >= NTDDI_WIN2K)
640
641
643
644#endif // _WDFFDO_H_
645
Type
Definition: Type.h:7
#define VOID
Definition: acefi.h:82
LONG NTSTATUS
Definition: precomp.h:26
const struct winhelp_callbacks Callbacks
Definition: callback.c:161
ULONG * PDEVPROPTYPE
Definition: devpropdef.h:24
#define NTSTATUS
Definition: precomp.h:21
#define _IRQL_requires_same_
Definition: driverspecs.h:232
#define PASSIVE_LEVEL
Definition: env_spec_w32.h:693
struct _DEVICE_OBJECT * PDEVICE_OBJECT
#define DISPATCH_LEVEL
Definition: env_spec_w32.h:696
DriverGlobals
#define _Function_class_(x)
Definition: ms_sal.h:2946
#define _Inout_
Definition: ms_sal.h:378
#define _Must_inspect_result_
Definition: ms_sal.h:558
#define _Out_
Definition: ms_sal.h:345
#define _Strict_type_match_
Definition: ms_sal.h:2954
#define _In_
Definition: ms_sal.h:308
#define _In_opt_
Definition: ms_sal.h:309
ULONG ACCESS_MASK
Definition: nt_native.h:40
unsigned short USHORT
Definition: pedump.c:61
PFN_WDF_DEVICE_FILTER_RESOURCE_REQUIREMENTS EvtDeviceFilterAddResourceRequirements
Definition: wdffdo.h:91
PFN_WDF_DEVICE_REMOVE_ADDED_RESOURCES EvtDeviceRemoveAddedResources
Definition: wdffdo.h:95
PFN_WDF_DEVICE_FILTER_RESOURCE_REQUIREMENTS EvtDeviceFilterRemoveResourceRequirements
Definition: wdffdo.h:93
uint32_t * PULONG
Definition: typedefs.h:59
INT POOL_TYPE
Definition: typedefs.h:78
#define RtlZeroMemory(Destination, Length)
Definition: typedefs.h:262
uint32_t ULONG
Definition: typedefs.h:59
#define STDCALL
Definition: wdf.h:45
#define WdfFunctions
Definition: wdf.h:66
_Must_inspect_result_ _In_ WDFDEVICE Device
Definition: wdfchildlist.h:474
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_CHILD_LIST_CONFIG Config
Definition: wdfchildlist.h:476
_In_ PWDFDEVICE_INIT DeviceInit
Definition: wdfcontrol.h:113
_Must_inspect_result_ _In_ WDFDEVICE _In_ ULONG _In_ ACCESS_MASK _In_opt_ PWDF_OBJECT_ATTRIBUTES KeyAttributes
Definition: wdfdevice.h:2660
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ _Strict_type_match_ POOL_TYPE _In_opt_ PWDF_OBJECT_ATTRIBUTES PropertyMemoryAttributes
Definition: wdfdevice.h:3817
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ _Strict_type_match_ POOL_TYPE _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFMEMORY * PropertyMemory
Definition: wdfdevice.h:3820
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ ULONG _Out_ PULONG ResultLength
Definition: wdfdevice.h:3776
_Must_inspect_result_ _In_ WDFDEVICE _In_ ULONG _In_ ACCESS_MASK DesiredAccess
Definition: wdfdevice.h:2658
_In_ WDFCMRESLIST _In_ WDFCMRESLIST ResourcesTranslated
Definition: wdfdevice.h:891
_Must_inspect_result_ _In_ WDFDEVICE _In_ ULONG DeviceInstanceKeyType
Definition: wdfdevice.h:2656
_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_ PWDF_DEVICE_PROPERTY_DATA _In_ ULONG _Out_ PVOID PropertyBuffer
Definition: wdfdevice.h:4437
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ DEVPROPTYPE _In_ ULONG Size
Definition: wdfdevice.h:4533
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY DeviceProperty
Definition: wdfdevice.h:3769
_In_ WDFCMRESLIST ResourcesRaw
Definition: wdfdevice.h:888
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ ULONG BufferLength
Definition: wdfdevice.h:3771
_Inout_ PWDFDEVICE_INIT _In_ PWDF_CHILD_LIST_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES DefaultChildListAttributes
Definition: wdffdo.h:432
_Must_inspect_result_ _In_ WDFDEVICE _In_opt_ WDFDEVICE _In_ ULONG Flags
Definition: wdffdo.h:594
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_ DEVICE_REGISTRY_PROPERTY _In_ _Strict_type_match_ POOL_TYPE PoolType
Definition: wdffdo.h:238
_Must_inspect_result_ _In_ WDFDEVICE Fdo
Definition: wdffdo.h:461
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_ DEVICE_REGISTRY_PROPERTY _In_ ULONG BufferLength
Definition: wdffdo.h:194
_Must_inspect_result_ _In_ WDFDEVICE _In_ LPCGUID _Out_ PINTERFACE Interface
Definition: wdffdo.h:465
_Must_inspect_result_ _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI NTSTATUS(STDCALL *PFN_WDFFDOINITOPENREGISTRYKEY)(_In_ PWDF_DRIVER_GLOBALS DriverGlobals
Definition: wdffdo.h:140
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_ ULONG _In_ ACCESS_MASK DesiredAccess
Definition: wdffdo.h:151
#define WDF_EXTERN_C_END
Definition: wdffdo.h:41
struct _WDF_FDO_EVENT_CALLBACKS * PWDF_FDO_EVENT_CALLBACKS
_Must_inspect_result_ _In_ WDFDEVICE _In_ LPCGUID InterfaceType
Definition: wdffdo.h:463
_Must_inspect_result_ _In_ WDFDEVICE _In_ LPCGUID _Out_ PINTERFACE _In_ USHORT _In_ USHORT Version
Definition: wdffdo.h:469
_In_ PWDFDEVICE_INIT _In_ PWDF_FDO_EVENT_CALLBACKS FdoEventCallbacks
Definition: wdffdo.h:376
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_ ULONG _In_ ACCESS_MASK _In_opt_ PWDF_OBJECT_ATTRIBUTES KeyAttributes
Definition: wdffdo.h:153
_Must_inspect_result_ _In_ WDFDEVICE _In_ LPCGUID _Out_ PINTERFACE _In_ USHORT _In_ USHORT _In_opt_ PVOID InterfaceSpecificData
Definition: wdffdo.h:472
_Must_inspect_result_ _In_ WDFDEVICE _In_ LPCGUID _Out_ PINTERFACE _In_ USHORT Size
Definition: wdffdo.h:467
FORCEINLINE VOID WDF_FDO_EVENT_CALLBACKS_INIT(_Out_ PWDF_FDO_EVENT_CALLBACKS Callbacks)
Definition: wdffdo.h:101
EVT_WDF_DEVICE_REMOVE_ADDED_RESOURCES * PFN_WDF_DEVICE_REMOVE_ADDED_RESOURCES
Definition: wdffdo.h:83
#define WDF_EXTERN_C_START
Definition: wdffdo.h:40
_Must_inspect_result_ _In_ WDFDEVICE _In_opt_ WDFDEVICE PreviousChild
Definition: wdffdo.h:591
_Inout_ PWDFDEVICE_INIT _In_ PWDF_CHILD_LIST_CONFIG Config
Definition: wdffdo.h:429
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_ PWDF_DEVICE_PROPERTY_DATA _In_ ULONG _Out_ PVOID PropertyBuffer
Definition: wdffdo.h:284
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_ DEVICE_REGISTRY_PROPERTY _In_ _Strict_type_match_ POOL_TYPE _In_opt_ PWDF_OBJECT_ATTRIBUTES PropertyMemoryAttributes
Definition: wdffdo.h:240
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_ DEVICE_REGISTRY_PROPERTY DeviceProperty
Definition: wdffdo.h:192
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_ DEVICE_REGISTRY_PROPERTY _In_ ULONG _Out_writes_bytes_all_opt_(BufferLength) PVOID PropertyBuffer
Definition: wdffdo.h:195
struct _WDF_FDO_EVENT_CALLBACKS WDF_FDO_EVENT_CALLBACKS
EVT_WDF_DEVICE_FILTER_RESOURCE_REQUIREMENTS * PFN_WDF_DEVICE_FILTER_RESOURCE_REQUIREMENTS
Definition: wdffdo.h:66
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_ DEVICE_REGISTRY_PROPERTY _In_ _Strict_type_match_ POOL_TYPE _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFMEMORY * PropertyMemory
Definition: wdffdo.h:243
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_ ULONG _In_ ACCESS_MASK _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFKEY * Key
Definition: wdffdo.h:156
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_ PWDF_DEVICE_PROPERTY_DATA _In_ ULONG _Out_ PVOID _Out_ PULONG _Out_ PDEVPROPTYPE Type
Definition: wdffdo.h:289
_In_ PWDFDEVICE_INIT DeviceInit
Definition: wdffdo.h:122
_Must_inspect_result_ _In_ WDFDEVICE _In_ WDFDEVICE Child
Definition: wdffdo.h:536
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_ ULONG DeviceInstanceKeyType
Definition: wdffdo.h:149
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_ DEVICE_REGISTRY_PROPERTY _In_ ULONG _Out_ PULONG ResultLength
Definition: wdffdo.h:199
PWDF_DRIVER_GLOBALS WdfDriverGlobals
@ WdfFdoInitSetDefaultChildListConfigTableIndex
Definition: wdffuncenum.h:155
@ WdfFdoGetDefaultChildListTableIndex
Definition: wdffuncenum.h:157
@ WdfFdoInitAllocAndQueryPropertyExTableIndex
Definition: wdffuncenum.h:462
@ WdfFdoLockStaticChildListForIterationTableIndex
Definition: wdffuncenum.h:159
@ WdfFdoInitOpenRegistryKeyTableIndex
Definition: wdffuncenum.h:150
@ WdfFdoInitWdmGetPhysicalDeviceTableIndex
Definition: wdffuncenum.h:149
@ WdfFdoInitQueryPropertyExTableIndex
Definition: wdffuncenum.h:461
@ WdfFdoAddStaticChildTableIndex
Definition: wdffuncenum.h:158
@ WdfFdoInitSetFilterTableIndex
Definition: wdffuncenum.h:154
@ WdfFdoInitAllocAndQueryPropertyTableIndex
Definition: wdffuncenum.h:152
@ WdfFdoRetrieveNextStaticChildTableIndex
Definition: wdffuncenum.h:160
@ WdfFdoInitQueryPropertyTableIndex
Definition: wdffuncenum.h:151
@ WdfFdoInitSetEventCallbacksTableIndex
Definition: wdffuncenum.h:153
@ WdfFdoUnlockStaticChildListFromIterationTableIndex
Definition: wdffuncenum.h:161
@ WdfFdoQueryForInterfaceTableIndex
Definition: wdffuncenum.h:156
_In_ WDFIORESREQLIST IoResourceRequirementsList
Definition: wdfpdo.h:78
#define WDFAPI
Definition: wdftypes.h:53
#define FORCEINLINE
Definition: wdftypes.h:67
_Must_inspect_result_ _In_ ULONG Flags
Definition: wsk.h:170
DEVICE_REGISTRY_PROPERTY
Definition: iotypes.h:1194