ReactOS  0.4.15-dev-2329-g3ad573f
wdfchildlist.h
Go to the documentation of this file.
1 /*++
2 
3 Copyright (c) Microsoft Corporation. All rights reserved.
4 
5 _WdfVersionBuild_
6 
7 Module Name:
8 
9  WdfChildList.hpp
10 
11 Abstract:
12 
13  This module defines the set of APIs to manipulate a WDFCHILDLIST handle. A
14  WDFCHILDLIST handle maintains a list of descriptions representing
15  dynamically enumerated child devices.
16 
17 Environment:
18 
19  kernel mode only
20 
21 Revision History:
22 
23 --*/
24 
25 //
26 // NOTE: This header is generated by stubwork. Please make any
27 // modifications to the corresponding template files
28 // (.x or .y) and use stubwork to regenerate the header
29 //
30 
31 #ifndef _WDFCHILDLIST_H_
32 #define _WDFCHILDLIST_H_
33 
34 #ifndef WDF_EXTERN_C
35  #ifdef __cplusplus
36  #define WDF_EXTERN_C extern "C"
37  #define WDF_EXTERN_C_START extern "C" {
38  #define WDF_EXTERN_C_END }
39  #else
40  #define WDF_EXTERN_C
41  #define WDF_EXTERN_C_START
42  #define WDF_EXTERN_C_END
43  #endif
44 #endif
45 
47 
48 
49 
50 #if (NTDDI_VERSION >= NTDDI_WIN2K)
51 
58 
67 
68 
69 
71  //
72  // Size in bytes of the entire description, including this header.
73  //
74  // Same value as WDF_CHILD_LIST_CONFIG::IdentificationDescriptionSize
75  // Used as a sanity check.
76  //
80 
82 VOID
86  )
87 {
89  Header->IdentificationDescriptionSize = IdentificationDescriptionSize;
90 }
91 
93  //
94  // Size in bytes of the entire description, including this header.
95  //
96  // Same value as WDF_CHILD_LIST_CONFIG::AddressDescriptionSize
97  // Used as a sanity check.
98  //
102 
104 VOID
107  _In_ ULONG AddressDescriptionSize
108  )
109 {
110  RtlZeroMemory(Header, AddressDescriptionSize);
111  Header->AddressDescriptionSize = AddressDescriptionSize;
112 }
113 
114 typedef
115 _Function_class_(EVT_WDF_CHILD_LIST_CREATE_DEVICE)
118 NTSTATUS
119 STDCALL
120 EVT_WDF_CHILD_LIST_CREATE_DEVICE(
121  _In_
122  WDFCHILDLIST ChildList,
123  _In_
125  _In_
127  );
128 
129 typedef EVT_WDF_CHILD_LIST_CREATE_DEVICE *PFN_WDF_CHILD_LIST_CREATE_DEVICE;
130 
131 typedef
132 _Function_class_(EVT_WDF_CHILD_LIST_SCAN_FOR_CHILDREN)
135 VOID
136 STDCALL
137 EVT_WDF_CHILD_LIST_SCAN_FOR_CHILDREN(
138  _In_
139  WDFCHILDLIST ChildList
140  );
141 
142 typedef EVT_WDF_CHILD_LIST_SCAN_FOR_CHILDREN *PFN_WDF_CHILD_LIST_SCAN_FOR_CHILDREN;
143 
144 typedef
145 _Function_class_(EVT_WDF_CHILD_LIST_IDENTIFICATION_DESCRIPTION_COPY)
148 VOID
149 STDCALL
150 EVT_WDF_CHILD_LIST_IDENTIFICATION_DESCRIPTION_COPY(
151  _In_
152  WDFCHILDLIST ChildList,
153  _In_
155  _Out_
157  );
158 
159 typedef EVT_WDF_CHILD_LIST_IDENTIFICATION_DESCRIPTION_COPY *PFN_WDF_CHILD_LIST_IDENTIFICATION_DESCRIPTION_COPY;
160 
161 typedef
162 _Function_class_(EVT_WDF_CHILD_LIST_IDENTIFICATION_DESCRIPTION_DUPLICATE)
165 NTSTATUS
166 STDCALL
167 EVT_WDF_CHILD_LIST_IDENTIFICATION_DESCRIPTION_DUPLICATE(
168  _In_
169  WDFCHILDLIST ChildList,
170  _In_
172  _Out_
174  );
175 
176 typedef EVT_WDF_CHILD_LIST_IDENTIFICATION_DESCRIPTION_DUPLICATE *PFN_WDF_CHILD_LIST_IDENTIFICATION_DESCRIPTION_DUPLICATE;
177 
178 typedef
179 _Function_class_(EVT_WDF_CHILD_LIST_IDENTIFICATION_DESCRIPTION_COMPARE)
182 BOOLEAN
183 STDCALL
184 EVT_WDF_CHILD_LIST_IDENTIFICATION_DESCRIPTION_COMPARE(
185  _In_
186  WDFCHILDLIST ChildList,
187  _In_
189  _In_
191  );
192 
193 typedef EVT_WDF_CHILD_LIST_IDENTIFICATION_DESCRIPTION_COMPARE *PFN_WDF_CHILD_LIST_IDENTIFICATION_DESCRIPTION_COMPARE;
194 
195 typedef
196 _Function_class_(EVT_WDF_CHILD_LIST_IDENTIFICATION_DESCRIPTION_CLEANUP)
199 VOID
200 STDCALL
201 EVT_WDF_CHILD_LIST_IDENTIFICATION_DESCRIPTION_CLEANUP(
202  _In_
203  WDFCHILDLIST ChildList,
204  _Inout_
206  );
207 
208 typedef EVT_WDF_CHILD_LIST_IDENTIFICATION_DESCRIPTION_CLEANUP *PFN_WDF_CHILD_LIST_IDENTIFICATION_DESCRIPTION_CLEANUP;
209 
210 typedef
211 _Function_class_(EVT_WDF_CHILD_LIST_ADDRESS_DESCRIPTION_COPY)
214 VOID
215 STDCALL
216 EVT_WDF_CHILD_LIST_ADDRESS_DESCRIPTION_COPY(
217  _In_
218  WDFCHILDLIST ChildList,
219  _In_
221  _Out_
223  );
224 
225 typedef EVT_WDF_CHILD_LIST_ADDRESS_DESCRIPTION_COPY *PFN_WDF_CHILD_LIST_ADDRESS_DESCRIPTION_COPY;
226 
227 typedef
228 _Function_class_(EVT_WDF_CHILD_LIST_ADDRESS_DESCRIPTION_DUPLICATE)
231 NTSTATUS
232 STDCALL
233 EVT_WDF_CHILD_LIST_ADDRESS_DESCRIPTION_DUPLICATE(
234  _In_
235  WDFCHILDLIST ChildList,
236  _In_
238  _Out_
240  );
241 
242 typedef EVT_WDF_CHILD_LIST_ADDRESS_DESCRIPTION_DUPLICATE *PFN_WDF_CHILD_LIST_ADDRESS_DESCRIPTION_DUPLICATE;
243 
244 typedef
245 _Function_class_(EVT_WDF_CHILD_LIST_ADDRESS_DESCRIPTION_CLEANUP)
248 VOID
249 STDCALL
250 EVT_WDF_CHILD_LIST_ADDRESS_DESCRIPTION_CLEANUP(
251  _In_
252  WDFCHILDLIST ChildList,
253  _Inout_
255  );
256 
257 typedef EVT_WDF_CHILD_LIST_ADDRESS_DESCRIPTION_CLEANUP *PFN_WDF_CHILD_LIST_ADDRESS_DESCRIPTION_CLEANUP;
258 
259 typedef
260 _Function_class_(EVT_WDF_CHILD_LIST_DEVICE_REENUMERATED)
263 BOOLEAN
264 STDCALL
265 EVT_WDF_CHILD_LIST_DEVICE_REENUMERATED(
266  _In_
267  WDFCHILDLIST ChildList,
268  _In_
269  WDFDEVICE OldDevice,
270  _In_
272  _Out_
274  );
275 
276 typedef EVT_WDF_CHILD_LIST_DEVICE_REENUMERATED *PFN_WDF_CHILD_LIST_DEVICE_REENUMERATED;
277 
278 typedef struct _WDF_CHILD_RETRIEVE_INFO {
279  //
280  // Size of the structure in bytes
281  //
283 
284  //
285  // Must be a valid pointer when passed in, copied into upon success
286  //
288 
289  //
290  // Optional pointer when passed in, copied into upon success
291  //
293 
294  //
295  // Status of the returned device
296  //
298 
299  //
300  // If provided, will be used for searching through the list of devices
301  // instead of the default list ID compare function
302  //
304 
306 
308 VOID
312  )
313 {
315 
316  Info->Size = sizeof(WDF_CHILD_RETRIEVE_INFO);
317  Info->IdentificationDescription = IdentificationDescription;
318 }
319 
320 typedef struct _WDF_CHILD_LIST_CONFIG {
321  //
322  // Size of this structure in bytes
323  //
325 
326  //
327  // The size in bytes of an identificaiton description to be used with the
328  // created WDFCHILDLIST handle
329  //
331 
332  //
333  // Optional size in bytes of an address description to be used with the
334  // created WDFCHILDLIST handle.
335  //
337 
338  //
339  // Required callback to be invoked when a description on the device list
340  // needs to be converted into a real WDFDEVICE handle.
341  //
343 
344  //
345  // Optional callback to be invoked when the device list needs to be
346  // rescanned. This function will be called after the device has entered D0
347  // and been fully initialized but before I/O has started.
348  //
350 
351  //
352  // Optional callback to be invoked when an identification description needs
353  // to be copied from one location to another.
354  //
355  // If left NULL, RtlCopyMemory will be used to copy the description.
356  //
358 
359  //
360  // Optional callback to be invoked when an identification description needs
361  // to be duplicated. As opposed to EvtChildListIdentificationDescriptionCopy,
362  // EvtChildListIdentificationDescriptionDuplicate can fail.
363  //
365 
366  //
367  // Optional callback to be invoked when an identification description needs
368  // to be cleaned up. This function should *NOT* free the description passed
369  // to it, just free any associated resources.
370  //
372 
373  //
374  // Optional callback to be invoked when an identification description needs
375  // to be compared with another identificaiton description.
376  //
377  // If left NULL, RtlCompareMemory will be used to compare the two
378  // descriptions.
379  //
381 
382  //
383  // Optional callback to be invoked when an address description needs
384  // to be copied from one location to another.
385  //
386  // If left NULL, RtlCopyMemory will be used to copy the description.
387  //
389 
390  //
391  // Optional callback to be invoked when an address description needs to be
392  // duplicated. As opposed to EvtChildListAddressDescriptionCopy,
393  // EvtChildListAddressDescriptionDuplicate can fail.
394  //
396 
397  //
398  // Optional callback to be invoked when an address description needs to be
399  // cleaned up. This function should *NOT* free the description passed to
400  // it, just free any associated resources.
401  //
403 
404  //
405  // If provided, will be called when the child's stack requests that the
406  // child be reenumerated. Returning TRUE allows for the reenumeration to
407  // proceed. FALSE will no reenumerate the stack.
408  //
410 
412 
414 VOID
418  _In_ PFN_WDF_CHILD_LIST_CREATE_DEVICE EvtChildListCreateDevice
419  )
420 {
422 
423  Config->Size = sizeof(WDF_CHILD_LIST_CONFIG);
424  Config->IdentificationDescriptionSize = IdentificationDescriptionSize;
425  Config->EvtChildListCreateDevice = EvtChildListCreateDevice;
426 }
427 
428 typedef struct _WDF_CHILD_LIST_ITERATOR {
429  //
430  // Size of this structure in bytes
431  //
433 
434  //
435  // What type of devices to return, see WDF_RETRIEVE_CHILD_FLAGS for
436  // flag values
437  //
438  //
440 
441  //
442  // For internal use, treat this field as opaque
443  //
445 
447 
449 VOID
453  )
454 {
456 
457  Iterator->Size = sizeof(WDF_CHILD_LIST_ITERATOR);
458  Iterator->Flags = Flags;
459 }
460 
461 
462 //
463 // WDF Function: WdfChildListCreate
464 //
465 typedef
468 WDFAPI
469 NTSTATUS
470 (STDCALL *PFN_WDFCHILDLISTCREATE)(
471  _In_
473  _In_
474  WDFDEVICE Device,
475  _In_
477  _In_opt_
479  _Out_
480  WDFCHILDLIST* ChildList
481  );
482 
486 NTSTATUS
487 WdfChildListCreate(
488  _In_
489  WDFDEVICE Device,
490  _In_
492  _In_opt_
494  _Out_
495  WDFCHILDLIST* ChildList
496  )
497 {
499 }
500 
501 //
502 // WDF Function: WdfChildListGetDevice
503 //
504 typedef
506 WDFAPI
507 WDFDEVICE
508 (STDCALL *PFN_WDFCHILDLISTGETDEVICE)(
509  _In_
511  _In_
512  WDFCHILDLIST ChildList
513  );
514 
517 WDFDEVICE
518 WdfChildListGetDevice(
519  _In_
520  WDFCHILDLIST ChildList
521  )
522 {
523  return ((PFN_WDFCHILDLISTGETDEVICE) WdfFunctions[WdfChildListGetDeviceTableIndex])(WdfDriverGlobals, ChildList);
524 }
525 
526 //
527 // WDF Function: WdfChildListRetrievePdo
528 //
529 typedef
532 WDFAPI
533 WDFDEVICE
534 (STDCALL *PFN_WDFCHILDLISTRETRIEVEPDO)(
535  _In_
537  _In_
538  WDFCHILDLIST ChildList,
539  _Inout_
541  );
542 
546 WDFDEVICE
547 WdfChildListRetrievePdo(
548  _In_
549  WDFCHILDLIST ChildList,
550  _Inout_
552  )
553 {
554  return ((PFN_WDFCHILDLISTRETRIEVEPDO) WdfFunctions[WdfChildListRetrievePdoTableIndex])(WdfDriverGlobals, ChildList, RetrieveInfo);
555 }
556 
557 //
558 // WDF Function: WdfChildListRetrieveAddressDescription
559 //
560 typedef
563 WDFAPI
564 NTSTATUS
565 (STDCALL *PFN_WDFCHILDLISTRETRIEVEADDRESSDESCRIPTION)(
566  _In_
568  _In_
569  WDFCHILDLIST ChildList,
570  _In_
572  _Inout_
574  );
575 
579 NTSTATUS
580 WdfChildListRetrieveAddressDescription(
581  _In_
582  WDFCHILDLIST ChildList,
583  _In_
585  _Inout_
587  )
588 {
590 }
591 
592 //
593 // WDF Function: WdfChildListBeginScan
594 //
595 typedef
597 WDFAPI
598 VOID
599 (STDCALL *PFN_WDFCHILDLISTBEGINSCAN)(
600  _In_
602  _In_
603  WDFCHILDLIST ChildList
604  );
605 
608 VOID
609 WdfChildListBeginScan(
610  _In_
611  WDFCHILDLIST ChildList
612  )
613 {
615 }
616 
617 //
618 // WDF Function: WdfChildListEndScan
619 //
620 typedef
622 WDFAPI
623 VOID
624 (STDCALL *PFN_WDFCHILDLISTENDSCAN)(
625  _In_
627  _In_
628  WDFCHILDLIST ChildList
629  );
630 
633 VOID
634 WdfChildListEndScan(
635  _In_
636  WDFCHILDLIST ChildList
637  )
638 {
640 }
641 
642 //
643 // WDF Function: WdfChildListBeginIteration
644 //
645 typedef
647 WDFAPI
648 VOID
649 (STDCALL *PFN_WDFCHILDLISTBEGINITERATION)(
650  _In_
652  _In_
653  WDFCHILDLIST ChildList,
654  _In_
656  );
657 
660 VOID
661 WdfChildListBeginIteration(
662  _In_
663  WDFCHILDLIST ChildList,
664  _In_
666  )
667 {
669 }
670 
671 //
672 // WDF Function: WdfChildListRetrieveNextDevice
673 //
674 typedef
677 WDFAPI
678 NTSTATUS
679 (STDCALL *PFN_WDFCHILDLISTRETRIEVENEXTDEVICE)(
680  _In_
682  _In_
683  WDFCHILDLIST ChildList,
684  _In_
686  _Out_
687  WDFDEVICE* Device,
690  );
691 
695 NTSTATUS
696 WdfChildListRetrieveNextDevice(
697  _In_
698  WDFCHILDLIST ChildList,
699  _In_
701  _Out_
702  WDFDEVICE* Device,
705  )
706 {
707  return ((PFN_WDFCHILDLISTRETRIEVENEXTDEVICE) WdfFunctions[WdfChildListRetrieveNextDeviceTableIndex])(WdfDriverGlobals, ChildList, Iterator, Device, Info);
708 }
709 
710 //
711 // WDF Function: WdfChildListEndIteration
712 //
713 typedef
715 WDFAPI
716 VOID
717 (STDCALL *PFN_WDFCHILDLISTENDITERATION)(
718  _In_
720  _In_
721  WDFCHILDLIST ChildList,
722  _In_
724  );
725 
728 VOID
729 WdfChildListEndIteration(
730  _In_
731  WDFCHILDLIST ChildList,
732  _In_
734  )
735 {
737 }
738 
739 //
740 // WDF Function: WdfChildListAddOrUpdateChildDescriptionAsPresent
741 //
742 typedef
745 WDFAPI
746 NTSTATUS
747 (STDCALL *PFN_WDFCHILDLISTADDORUPDATECHILDDESCRIPTIONASPRESENT)(
748  _In_
750  _In_
751  WDFCHILDLIST ChildList,
752  _In_
754  _In_opt_
756  );
757 
761 NTSTATUS
762 WdfChildListAddOrUpdateChildDescriptionAsPresent(
763  _In_
764  WDFCHILDLIST ChildList,
765  _In_
767  _In_opt_
769  )
770 {
772 }
773 
774 //
775 // WDF Function: WdfChildListUpdateChildDescriptionAsMissing
776 //
777 typedef
780 WDFAPI
781 NTSTATUS
782 (STDCALL *PFN_WDFCHILDLISTUPDATECHILDDESCRIPTIONASMISSING)(
783  _In_
785  _In_
786  WDFCHILDLIST ChildList,
787  _In_
789  );
790 
794 NTSTATUS
795 WdfChildListUpdateChildDescriptionAsMissing(
796  _In_
797  WDFCHILDLIST ChildList,
798  _In_
800  )
801 {
803 }
804 
805 //
806 // WDF Function: WdfChildListUpdateAllChildDescriptionsAsPresent
807 //
808 typedef
810 WDFAPI
811 VOID
812 (STDCALL *PFN_WDFCHILDLISTUPDATEALLCHILDDESCRIPTIONSASPRESENT)(
813  _In_
815  _In_
816  WDFCHILDLIST ChildList
817  );
818 
821 VOID
822 WdfChildListUpdateAllChildDescriptionsAsPresent(
823  _In_
824  WDFCHILDLIST ChildList
825  )
826 {
827  ((PFN_WDFCHILDLISTUPDATEALLCHILDDESCRIPTIONSASPRESENT) WdfFunctions[WdfChildListUpdateAllChildDescriptionsAsPresentTableIndex])(WdfDriverGlobals, ChildList);
828 }
829 
830 //
831 // WDF Function: WdfChildListRequestChildEject
832 //
833 typedef
835 WDFAPI
836 BOOLEAN
837 (STDCALL *PFN_WDFCHILDLISTREQUESTCHILDEJECT)(
838  _In_
840  _In_
841  WDFCHILDLIST ChildList,
842  _In_
844  );
845 
848 BOOLEAN
849 WdfChildListRequestChildEject(
850  _In_
851  WDFCHILDLIST ChildList,
852  _In_
854  )
855 {
857 }
858 
859 
860 
861 #endif // (NTDDI_VERSION >= NTDDI_WIN2K)
862 
863 
864 
866 
867 #endif // _WDFCHILDLIST_H_
868 
PFN_WDF_CHILD_LIST_ADDRESS_DESCRIPTION_COPY EvtChildListAddressDescriptionCopy
Definition: wdfchildlist.h:388
EVT_WDF_CHILD_LIST_ADDRESS_DESCRIPTION_CLEANUP * PFN_WDF_CHILD_LIST_ADDRESS_DESCRIPTION_CLEANUP
Definition: wdfchildlist.h:257
EVT_WDF_CHILD_LIST_IDENTIFICATION_DESCRIPTION_CLEANUP * PFN_WDF_CHILD_LIST_IDENTIFICATION_DESCRIPTION_CLEANUP
Definition: wdfchildlist.h:208
#define _Must_inspect_result_
Definition: no_sal2.h:62
PFN_WDF_CHILD_LIST_IDENTIFICATION_DESCRIPTION_COMPARE EvtChildListIdentificationDescriptionCompare
Definition: wdfchildlist.h:303
EVT_WDF_CHILD_LIST_SCAN_FOR_CHILDREN * PFN_WDF_CHILD_LIST_SCAN_FOR_CHILDREN
Definition: wdfchildlist.h:142
PFN_WDF_CHILD_LIST_CREATE_DEVICE EvtChildListCreateDevice
Definition: wdfchildlist.h:342
struct _WDF_CHILD_LIST_ITERATOR * PWDF_CHILD_LIST_ITERATOR
PWDF_CHILD_ADDRESS_DESCRIPTION_HEADER AddressDescription
Definition: wdfchildlist.h:292
struct _WDF_CHILD_RETRIEVE_INFO * PWDF_CHILD_RETRIEVE_INFO
PFN_WDF_CHILD_LIST_IDENTIFICATION_DESCRIPTION_DUPLICATE EvtChildListIdentificationDescriptionDuplicate
Definition: wdfchildlist.h:364
_In_ PWDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER _In_ PWDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER SecondIdentificationDescription
Definition: wdfchildlist.h:188
_Must_inspect_result_ _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI NTSTATUS(STDCALL *PFN_WDFCHILDLISTCREATE)(_In_ PWDF_DRIVER_GLOBALS DriverGlobals
Definition: wdfchildlist.h:467
struct _WDF_CHILD_LIST_CONFIG * PWDF_CHILD_LIST_CONFIG
_WDF_RETRIEVE_CHILD_FLAGS
Definition: wdfchildlist.h:59
LONG NTSTATUS
Definition: precomp.h:26
struct _WDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER * PWDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER
struct _WDF_CHILD_ADDRESS_DESCRIPTION_HEADER WDF_CHILD_ADDRESS_DESCRIPTION_HEADER
typedef _Function_class_(EVT_WDF_CHILD_LIST_CREATE_DEVICE) _IRQL_requires_same_ _IRQL_requires_max_(PASSIVE_LEVEL) NTSTATUS STDCALL EVT_WDF_CHILD_LIST_CREATE_DEVICE(_In_ WDFCHILDLIST ChildList
DriverGlobals
FORCEINLINE VOID WDF_CHILD_ADDRESS_DESCRIPTION_HEADER_INIT(_Out_ PWDF_CHILD_ADDRESS_DESCRIPTION_HEADER Header, _In_ ULONG AddressDescriptionSize)
Definition: wdfchildlist.h:105
#define _In_opt_
Definition: no_sal2.h:212
#define WdfFunctions
Definition: wdf.h:66
_In_ PWDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER SourceIdentificationDescription
Definition: wdfchildlist.h:154
_Must_inspect_result_ _In_ WDFCHILDLIST _In_ PWDF_CHILD_LIST_ITERATOR _Out_ WDFDEVICE _Inout_opt_ PWDF_CHILD_RETRIEVE_INFO Info
Definition: wdfchildlist.h:683
FORCEINLINE VOID WDF_CHILD_LIST_ITERATOR_INIT(_Out_ PWDF_CHILD_LIST_ITERATOR Iterator, _In_ ULONG Flags)
Definition: wdfchildlist.h:450
PFN_WDF_CHILD_LIST_SCAN_FOR_CHILDREN EvtChildListScanForChildren
Definition: wdfchildlist.h:349
FORCEINLINE VOID WDF_CHILD_RETRIEVE_INFO_INIT(_Out_ PWDF_CHILD_RETRIEVE_INFO Info, _In_ PWDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER IdentificationDescription)
Definition: wdfchildlist.h:309
PFN_WDF_CHILD_LIST_IDENTIFICATION_DESCRIPTION_COPY EvtChildListIdentificationDescriptionCopy
Definition: wdfchildlist.h:357
Definition: Header.h:8
#define WDFAPI
Definition: wdftypes.h:53
EVT_WDF_CHILD_LIST_CREATE_DEVICE * PFN_WDF_CHILD_LIST_CREATE_DEVICE
Definition: wdfchildlist.h:129
struct _WDF_CHILD_LIST_ITERATOR WDF_CHILD_LIST_ITERATOR
EVT_WDF_CHILD_LIST_ADDRESS_DESCRIPTION_COPY * PFN_WDF_CHILD_LIST_ADDRESS_DESCRIPTION_COPY
Definition: wdfchildlist.h:225
_Inout_ PWDF_CHILD_ADDRESS_DESCRIPTION_HEADER AddressDescription
Definition: wdfchildlist.h:255
unsigned char BOOLEAN
#define _Out_
Definition: no_sal2.h:160
struct _WDF_CHILD_LIST_CONFIG WDF_CHILD_LIST_CONFIG
FORCEINLINE VOID WDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER_INIT(_Out_ PWDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER Header, _In_ ULONG IdentificationDescriptionSize)
Definition: wdfchildlist.h:83
#define _IRQL_requires_same_
Definition: driverspecs.h:215
_Reserved_ PVOID Reserved
Definition: winddi.h:3974
PFN_WDF_CHILD_LIST_IDENTIFICATION_DESCRIPTION_COMPARE EvtChildListIdentificationDescriptionCompare
Definition: wdfchildlist.h:380
PWDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER IdentificationDescription
Definition: wdfchildlist.h:287
_In_ PWDF_CHILD_ADDRESS_DESCRIPTION_HEADER _Out_ PWDF_CHILD_ADDRESS_DESCRIPTION_HEADER DestinationAddressDescription
Definition: wdfchildlist.h:220
WDF_CHILD_LIST_RETRIEVE_DEVICE_STATUS Status
Definition: wdfchildlist.h:297
PWDF_DRIVER_GLOBALS WdfDriverGlobals
WDF_EXTERN_C_START enum _WDF_CHILD_LIST_RETRIEVE_DEVICE_STATUS WDF_CHILD_LIST_RETRIEVE_DEVICE_STATUS
struct _WDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER WDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER
_Must_inspect_result_ _In_ ULONG Flags
Definition: wsk.h:170
#define STDCALL
Definition: wdf.h:45
PFN_WDF_CHILD_LIST_DEVICE_REENUMERATED EvtChildListDeviceReenumerated
Definition: wdfchildlist.h:409
_In_ WDFCHILDLIST _In_ PWDF_CHILD_LIST_ITERATOR Iterator
Definition: wdfchildlist.h:653
_In_ WDFDEVICE _In_ PWDF_CHILD_ADDRESS_DESCRIPTION_HEADER OldAddressDescription
Definition: wdfchildlist.h:269
EVT_WDF_CHILD_LIST_DEVICE_REENUMERATED * PFN_WDF_CHILD_LIST_DEVICE_REENUMERATED
Definition: wdfchildlist.h:276
_In_ PWDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER IdentificationDescription
Definition: wdfchildlist.h:124
#define _Inout_
Definition: no_sal2.h:162
_In_ PWDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER _In_ PWDFDEVICE_INIT ChildInit
Definition: wdfchildlist.h:124
_WDF_CHILD_LIST_RETRIEVE_DEVICE_STATUS
Definition: wdfchildlist.h:52
_In_ PWDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER _Out_ PWDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER DestinationIdentificationDescription
Definition: wdfchildlist.h:154
#define NTSTATUS
Definition: precomp.h:20
_In_ PWDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER FirstIdentificationDescription
Definition: wdfchildlist.h:188
#define VOID
Definition: acefi.h:82
EVT_WDF_CHILD_LIST_ADDRESS_DESCRIPTION_DUPLICATE * PFN_WDF_CHILD_LIST_ADDRESS_DESCRIPTION_DUPLICATE
Definition: wdfchildlist.h:242
#define PASSIVE_LEVEL
Definition: env_spec_w32.h:693
_Must_inspect_result_ _In_ WDFDEVICE Device
Definition: wdfchildlist.h:474
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_CHILD_LIST_CONFIG Config
Definition: wdfchildlist.h:474
_In_ WDFDEVICE OldDevice
Definition: wdfchildlist.h:269
_Must_inspect_result_ _In_ WDFCHILDLIST _Inout_ PWDF_CHILD_RETRIEVE_INFO RetrieveInfo
Definition: wdfchildlist.h:538
EVT_WDF_CHILD_LIST_IDENTIFICATION_DESCRIPTION_DUPLICATE * PFN_WDF_CHILD_LIST_IDENTIFICATION_DESCRIPTION_DUPLICATE
Definition: wdfchildlist.h:176
#define DISPATCH_LEVEL
Definition: env_spec_w32.h:696
#define _In_
Definition: no_sal2.h:158
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_CHILD_LIST_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFCHILDLIST * ChildList
Definition: wdfchildlist.h:474
PFN_WDF_CHILD_LIST_ADDRESS_DESCRIPTION_DUPLICATE EvtChildListAddressDescriptionDuplicate
Definition: wdfchildlist.h:395
enum _WDF_RETRIEVE_CHILD_FLAGS WDF_RETRIEVE_CHILD_FLAGS
#define FORCEINLINE
Definition: wdftypes.h:67
_In_ PWDF_CHILD_ADDRESS_DESCRIPTION_HEADER SourceAddressDescription
Definition: wdfchildlist.h:220
PFN_WDF_CHILD_LIST_IDENTIFICATION_DESCRIPTION_CLEANUP EvtChildListIdentificationDescriptionCleanup
Definition: wdfchildlist.h:371
WDF_EXTERN_C_START enum _WDF_CHILD_LIST_RETRIEVE_DEVICE_STATUS * PWDF_CHILD_LIST_RETRIEVE_DEVICE_STATUS
#define BOOLEAN
Definition: pedump.c:73
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_CHILD_LIST_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES ChildListAttributes
Definition: wdfchildlist.h:474
unsigned int ULONG
Definition: retypes.h:1
#define WDF_EXTERN_C_START
Definition: wdfchildlist.h:41
struct _WDF_CHILD_ADDRESS_DESCRIPTION_HEADER * PWDF_CHILD_ADDRESS_DESCRIPTION_HEADER
#define RtlZeroMemory(Destination, Length)
Definition: typedefs.h:262
#define WDF_EXTERN_C_END
Definition: wdfchildlist.h:42
struct _WDF_CHILD_RETRIEVE_INFO WDF_CHILD_RETRIEVE_INFO
EVT_WDF_CHILD_LIST_IDENTIFICATION_DESCRIPTION_COMPARE * PFN_WDF_CHILD_LIST_IDENTIFICATION_DESCRIPTION_COMPARE
Definition: wdfchildlist.h:193
_In_ WDFDEVICE _In_ PWDF_CHILD_ADDRESS_DESCRIPTION_HEADER _Out_ PWDF_CHILD_ADDRESS_DESCRIPTION_HEADER NewAddressDescription
Definition: wdfchildlist.h:269
EVT_WDF_CHILD_LIST_IDENTIFICATION_DESCRIPTION_COPY * PFN_WDF_CHILD_LIST_IDENTIFICATION_DESCRIPTION_COPY
Definition: wdfchildlist.h:159
PFN_WDF_CHILD_LIST_ADDRESS_DESCRIPTION_CLEANUP EvtChildListAddressDescriptionCleanup
Definition: wdfchildlist.h:402
description Header IdentificationDescriptionSize
#define _Inout_opt_
Definition: no_sal2.h:216
FORCEINLINE VOID WDF_CHILD_LIST_CONFIG_INIT(_Out_ PWDF_CHILD_LIST_CONFIG Config, _In_ ULONG IdentificationDescriptionSize, _In_ PFN_WDF_CHILD_LIST_CREATE_DEVICE EvtChildListCreateDevice)
Definition: wdfchildlist.h:415