ReactOS 0.4.15-dev-7788-g1ad9096
wdfchildlist.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 WdfChildList.hpp
10
11Abstract:
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
17Environment:
18
19 kernel mode only
20
21Revision 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
82VOID
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
104VOID
107 _In_ ULONG AddressDescriptionSize
108 )
109{
110 RtlZeroMemory(Header, AddressDescriptionSize);
111 Header->AddressDescriptionSize = AddressDescriptionSize;
112}
113
114typedef
115_Function_class_(EVT_WDF_CHILD_LIST_CREATE_DEVICE)
120EVT_WDF_CHILD_LIST_CREATE_DEVICE(
121 _In_
122 WDFCHILDLIST ChildList,
123 _In_
125 _In_
127 );
128
129typedef EVT_WDF_CHILD_LIST_CREATE_DEVICE *PFN_WDF_CHILD_LIST_CREATE_DEVICE;
130
131typedef
132_Function_class_(EVT_WDF_CHILD_LIST_SCAN_FOR_CHILDREN)
135VOID
137EVT_WDF_CHILD_LIST_SCAN_FOR_CHILDREN(
138 _In_
139 WDFCHILDLIST ChildList
140 );
141
142typedef EVT_WDF_CHILD_LIST_SCAN_FOR_CHILDREN *PFN_WDF_CHILD_LIST_SCAN_FOR_CHILDREN;
143
144typedef
145_Function_class_(EVT_WDF_CHILD_LIST_IDENTIFICATION_DESCRIPTION_COPY)
148VOID
150EVT_WDF_CHILD_LIST_IDENTIFICATION_DESCRIPTION_COPY(
151 _In_
152 WDFCHILDLIST ChildList,
153 _In_
155 _Out_
157 );
158
159typedef EVT_WDF_CHILD_LIST_IDENTIFICATION_DESCRIPTION_COPY *PFN_WDF_CHILD_LIST_IDENTIFICATION_DESCRIPTION_COPY;
160
161typedef
162_Function_class_(EVT_WDF_CHILD_LIST_IDENTIFICATION_DESCRIPTION_DUPLICATE)
167EVT_WDF_CHILD_LIST_IDENTIFICATION_DESCRIPTION_DUPLICATE(
168 _In_
169 WDFCHILDLIST ChildList,
170 _In_
172 _Out_
174 );
175
176typedef EVT_WDF_CHILD_LIST_IDENTIFICATION_DESCRIPTION_DUPLICATE *PFN_WDF_CHILD_LIST_IDENTIFICATION_DESCRIPTION_DUPLICATE;
177
178typedef
179_Function_class_(EVT_WDF_CHILD_LIST_IDENTIFICATION_DESCRIPTION_COMPARE)
184EVT_WDF_CHILD_LIST_IDENTIFICATION_DESCRIPTION_COMPARE(
185 _In_
186 WDFCHILDLIST ChildList,
187 _In_
189 _In_
191 );
192
193typedef EVT_WDF_CHILD_LIST_IDENTIFICATION_DESCRIPTION_COMPARE *PFN_WDF_CHILD_LIST_IDENTIFICATION_DESCRIPTION_COMPARE;
194
195typedef
196_Function_class_(EVT_WDF_CHILD_LIST_IDENTIFICATION_DESCRIPTION_CLEANUP)
199VOID
201EVT_WDF_CHILD_LIST_IDENTIFICATION_DESCRIPTION_CLEANUP(
202 _In_
203 WDFCHILDLIST ChildList,
204 _Inout_
206 );
207
208typedef EVT_WDF_CHILD_LIST_IDENTIFICATION_DESCRIPTION_CLEANUP *PFN_WDF_CHILD_LIST_IDENTIFICATION_DESCRIPTION_CLEANUP;
209
210typedef
211_Function_class_(EVT_WDF_CHILD_LIST_ADDRESS_DESCRIPTION_COPY)
214VOID
216EVT_WDF_CHILD_LIST_ADDRESS_DESCRIPTION_COPY(
217 _In_
218 WDFCHILDLIST ChildList,
219 _In_
221 _Out_
223 );
224
225typedef EVT_WDF_CHILD_LIST_ADDRESS_DESCRIPTION_COPY *PFN_WDF_CHILD_LIST_ADDRESS_DESCRIPTION_COPY;
226
227typedef
228_Function_class_(EVT_WDF_CHILD_LIST_ADDRESS_DESCRIPTION_DUPLICATE)
233EVT_WDF_CHILD_LIST_ADDRESS_DESCRIPTION_DUPLICATE(
234 _In_
235 WDFCHILDLIST ChildList,
236 _In_
238 _Out_
240 );
241
242typedef EVT_WDF_CHILD_LIST_ADDRESS_DESCRIPTION_DUPLICATE *PFN_WDF_CHILD_LIST_ADDRESS_DESCRIPTION_DUPLICATE;
243
244typedef
245_Function_class_(EVT_WDF_CHILD_LIST_ADDRESS_DESCRIPTION_CLEANUP)
248VOID
250EVT_WDF_CHILD_LIST_ADDRESS_DESCRIPTION_CLEANUP(
251 _In_
252 WDFCHILDLIST ChildList,
253 _Inout_
255 );
256
257typedef EVT_WDF_CHILD_LIST_ADDRESS_DESCRIPTION_CLEANUP *PFN_WDF_CHILD_LIST_ADDRESS_DESCRIPTION_CLEANUP;
258
259typedef
260_Function_class_(EVT_WDF_CHILD_LIST_DEVICE_REENUMERATED)
265EVT_WDF_CHILD_LIST_DEVICE_REENUMERATED(
266 _In_
267 WDFCHILDLIST ChildList,
268 _In_
269 WDFDEVICE OldDevice,
270 _In_
272 _Out_
274 );
275
276typedef EVT_WDF_CHILD_LIST_DEVICE_REENUMERATED *PFN_WDF_CHILD_LIST_DEVICE_REENUMERATED;
277
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
308VOID
312 )
313{
315
316 Info->Size = sizeof(WDF_CHILD_RETRIEVE_INFO);
317 Info->IdentificationDescription = IdentificationDescription;
318}
319
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
414VOID
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
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
449VOID
453 )
454{
456
457 Iterator->Size = sizeof(WDF_CHILD_LIST_ITERATOR);
458 Iterator->Flags = Flags;
459}
460
461
462//
463// WDF Function: WdfChildListCreate
464//
465typedef
468WDFAPI
470(STDCALL *PFN_WDFCHILDLISTCREATE)(
471 _In_
473 _In_
474 WDFDEVICE Device,
475 _In_
479 _Out_
480 WDFCHILDLIST* ChildList
481 );
482
487WdfChildListCreate(
488 _In_
489 WDFDEVICE Device,
490 _In_
494 _Out_
495 WDFCHILDLIST* ChildList
496 )
497{
499}
500
501//
502// WDF Function: WdfChildListGetDevice
503//
504typedef
506WDFAPI
507WDFDEVICE
508(STDCALL *PFN_WDFCHILDLISTGETDEVICE)(
509 _In_
511 _In_
512 WDFCHILDLIST ChildList
513 );
514
517WDFDEVICE
518WdfChildListGetDevice(
519 _In_
520 WDFCHILDLIST ChildList
521 )
522{
523 return ((PFN_WDFCHILDLISTGETDEVICE) WdfFunctions[WdfChildListGetDeviceTableIndex])(WdfDriverGlobals, ChildList);
524}
525
526//
527// WDF Function: WdfChildListRetrievePdo
528//
529typedef
532WDFAPI
533WDFDEVICE
534(STDCALL *PFN_WDFCHILDLISTRETRIEVEPDO)(
535 _In_
537 _In_
538 WDFCHILDLIST ChildList,
539 _Inout_
541 );
542
546WDFDEVICE
547WdfChildListRetrievePdo(
548 _In_
549 WDFCHILDLIST ChildList,
550 _Inout_
552 )
553{
555}
556
557//
558// WDF Function: WdfChildListRetrieveAddressDescription
559//
560typedef
563WDFAPI
565(STDCALL *PFN_WDFCHILDLISTRETRIEVEADDRESSDESCRIPTION)(
566 _In_
568 _In_
569 WDFCHILDLIST ChildList,
570 _In_
572 _Inout_
574 );
575
580WdfChildListRetrieveAddressDescription(
581 _In_
582 WDFCHILDLIST ChildList,
583 _In_
585 _Inout_
587 )
588{
590}
591
592//
593// WDF Function: WdfChildListBeginScan
594//
595typedef
597WDFAPI
598VOID
599(STDCALL *PFN_WDFCHILDLISTBEGINSCAN)(
600 _In_
602 _In_
603 WDFCHILDLIST ChildList
604 );
605
608VOID
609WdfChildListBeginScan(
610 _In_
611 WDFCHILDLIST ChildList
612 )
613{
615}
616
617//
618// WDF Function: WdfChildListEndScan
619//
620typedef
622WDFAPI
623VOID
624(STDCALL *PFN_WDFCHILDLISTENDSCAN)(
625 _In_
627 _In_
628 WDFCHILDLIST ChildList
629 );
630
633VOID
634WdfChildListEndScan(
635 _In_
636 WDFCHILDLIST ChildList
637 )
638{
640}
641
642//
643// WDF Function: WdfChildListBeginIteration
644//
645typedef
647WDFAPI
648VOID
649(STDCALL *PFN_WDFCHILDLISTBEGINITERATION)(
650 _In_
652 _In_
653 WDFCHILDLIST ChildList,
654 _In_
656 );
657
660VOID
661WdfChildListBeginIteration(
662 _In_
663 WDFCHILDLIST ChildList,
664 _In_
666 )
667{
669}
670
671//
672// WDF Function: WdfChildListRetrieveNextDevice
673//
674typedef
677WDFAPI
679(STDCALL *PFN_WDFCHILDLISTRETRIEVENEXTDEVICE)(
680 _In_
682 _In_
683 WDFCHILDLIST ChildList,
684 _In_
686 _Out_
687 WDFDEVICE* Device,
690 );
691
696WdfChildListRetrieveNextDevice(
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//
713typedef
715WDFAPI
716VOID
717(STDCALL *PFN_WDFCHILDLISTENDITERATION)(
718 _In_
720 _In_
721 WDFCHILDLIST ChildList,
722 _In_
724 );
725
728VOID
729WdfChildListEndIteration(
730 _In_
731 WDFCHILDLIST ChildList,
732 _In_
734 )
735{
737}
738
739//
740// WDF Function: WdfChildListAddOrUpdateChildDescriptionAsPresent
741//
742typedef
745WDFAPI
747(STDCALL *PFN_WDFCHILDLISTADDORUPDATECHILDDESCRIPTIONASPRESENT)(
748 _In_
750 _In_
751 WDFCHILDLIST ChildList,
752 _In_
756 );
757
762WdfChildListAddOrUpdateChildDescriptionAsPresent(
763 _In_
764 WDFCHILDLIST ChildList,
765 _In_
769 )
770{
772}
773
774//
775// WDF Function: WdfChildListUpdateChildDescriptionAsMissing
776//
777typedef
780WDFAPI
782(STDCALL *PFN_WDFCHILDLISTUPDATECHILDDESCRIPTIONASMISSING)(
783 _In_
785 _In_
786 WDFCHILDLIST ChildList,
787 _In_
789 );
790
795WdfChildListUpdateChildDescriptionAsMissing(
796 _In_
797 WDFCHILDLIST ChildList,
798 _In_
800 )
801{
803}
804
805//
806// WDF Function: WdfChildListUpdateAllChildDescriptionsAsPresent
807//
808typedef
810WDFAPI
811VOID
812(STDCALL *PFN_WDFCHILDLISTUPDATEALLCHILDDESCRIPTIONSASPRESENT)(
813 _In_
815 _In_
816 WDFCHILDLIST ChildList
817 );
818
821VOID
822WdfChildListUpdateAllChildDescriptionsAsPresent(
823 _In_
824 WDFCHILDLIST ChildList
825 )
826{
827 ((PFN_WDFCHILDLISTUPDATEALLCHILDDESCRIPTIONSASPRESENT) WdfFunctions[WdfChildListUpdateAllChildDescriptionsAsPresentTableIndex])(WdfDriverGlobals, ChildList);
828}
829
830//
831// WDF Function: WdfChildListRequestChildEject
832//
833typedef
835WDFAPI
837(STDCALL *PFN_WDFCHILDLISTREQUESTCHILDEJECT)(
838 _In_
840 _In_
841 WDFCHILDLIST ChildList,
842 _In_
844 );
845
849WdfChildListRequestChildEject(
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
unsigned char BOOLEAN
#define VOID
Definition: acefi.h:82
LONG NTSTATUS
Definition: precomp.h:26
Definition: Header.h:9
#define NTSTATUS
Definition: precomp.h:21
#define _IRQL_requires_same_
Definition: driverspecs.h:232
#define PASSIVE_LEVEL
Definition: env_spec_w32.h:693
#define DISPATCH_LEVEL
Definition: env_spec_w32.h:696
description Header IdentificationDescriptionSize
DriverGlobals
#define _Function_class_(x)
Definition: ms_sal.h:2946
#define _Inout_
Definition: ms_sal.h:378
#define _Inout_opt_
Definition: ms_sal.h:379
#define _Must_inspect_result_
Definition: ms_sal.h:558
#define _Out_
Definition: ms_sal.h:345
#define _In_
Definition: ms_sal.h:308
#define _In_opt_
Definition: ms_sal.h:309
#define BOOLEAN
Definition: pedump.c:73
PFN_WDF_CHILD_LIST_IDENTIFICATION_DESCRIPTION_DUPLICATE EvtChildListIdentificationDescriptionDuplicate
Definition: wdfchildlist.h:364
PFN_WDF_CHILD_LIST_SCAN_FOR_CHILDREN EvtChildListScanForChildren
Definition: wdfchildlist.h:349
PFN_WDF_CHILD_LIST_ADDRESS_DESCRIPTION_DUPLICATE EvtChildListAddressDescriptionDuplicate
Definition: wdfchildlist.h:395
PFN_WDF_CHILD_LIST_ADDRESS_DESCRIPTION_COPY EvtChildListAddressDescriptionCopy
Definition: wdfchildlist.h:388
PFN_WDF_CHILD_LIST_IDENTIFICATION_DESCRIPTION_COMPARE EvtChildListIdentificationDescriptionCompare
Definition: wdfchildlist.h:380
PFN_WDF_CHILD_LIST_IDENTIFICATION_DESCRIPTION_COPY EvtChildListIdentificationDescriptionCopy
Definition: wdfchildlist.h:357
PFN_WDF_CHILD_LIST_IDENTIFICATION_DESCRIPTION_CLEANUP EvtChildListIdentificationDescriptionCleanup
Definition: wdfchildlist.h:371
PFN_WDF_CHILD_LIST_DEVICE_REENUMERATED EvtChildListDeviceReenumerated
Definition: wdfchildlist.h:409
PFN_WDF_CHILD_LIST_CREATE_DEVICE EvtChildListCreateDevice
Definition: wdfchildlist.h:342
PFN_WDF_CHILD_LIST_ADDRESS_DESCRIPTION_CLEANUP EvtChildListAddressDescriptionCleanup
Definition: wdfchildlist.h:402
PWDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER IdentificationDescription
Definition: wdfchildlist.h:287
PFN_WDF_CHILD_LIST_IDENTIFICATION_DESCRIPTION_COMPARE EvtChildListIdentificationDescriptionCompare
Definition: wdfchildlist.h:303
PWDF_CHILD_ADDRESS_DESCRIPTION_HEADER AddressDescription
Definition: wdfchildlist.h:292
WDF_CHILD_LIST_RETRIEVE_DEVICE_STATUS Status
Definition: wdfchildlist.h:297
#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
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
_In_ WDFCHILDLIST _In_ PWDF_CHILD_LIST_ITERATOR Iterator
Definition: wdfchildlist.h:656
_Must_inspect_result_ _In_ WDFCHILDLIST _Inout_ PWDF_CHILD_RETRIEVE_INFO RetrieveInfo
Definition: wdfchildlist.h:541
_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:690
struct _WDF_CHILD_LIST_ITERATOR * PWDF_CHILD_LIST_ITERATOR
_Must_inspect_result_ _In_ WDFDEVICE Device
Definition: wdfchildlist.h:474
struct _WDF_CHILD_LIST_CONFIG * PWDF_CHILD_LIST_CONFIG
struct _WDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER * PWDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER
_WDF_RETRIEVE_CHILD_FLAGS
Definition: wdfchildlist.h:59
@ WdfRetrieveUnspecified
Definition: wdfchildlist.h:60
@ WdfRetrievePendingChildren
Definition: wdfchildlist.h:63
@ WdfRetrieveAddedChildren
Definition: wdfchildlist.h:64
@ WdfRetrieveMissingChildren
Definition: wdfchildlist.h:62
@ WdfRetrievePresentChildren
Definition: wdfchildlist.h:61
@ WdfRetrieveAllChildren
Definition: wdfchildlist.h:65
#define WDF_EXTERN_C_END
Definition: wdfchildlist.h:42
struct _WDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER WDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER
_In_ WDFDEVICE OldDevice
Definition: wdfchildlist.h:269
_In_ PWDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER _In_ PWDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER SecondIdentificationDescription
Definition: wdfchildlist.h:191
struct _WDF_CHILD_RETRIEVE_INFO WDF_CHILD_RETRIEVE_INFO
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_CHILD_LIST_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES ChildListAttributes
Definition: wdfchildlist.h:478
_In_ PWDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER IdentificationDescription
Definition: wdfchildlist.h:124
struct _WDF_CHILD_LIST_ITERATOR WDF_CHILD_LIST_ITERATOR
struct _WDF_CHILD_RETRIEVE_INFO * PWDF_CHILD_RETRIEVE_INFO
FORCEINLINE VOID WDF_CHILD_ADDRESS_DESCRIPTION_HEADER_INIT(_Out_ PWDF_CHILD_ADDRESS_DESCRIPTION_HEADER Header, _In_ ULONG AddressDescriptionSize)
Definition: wdfchildlist.h:105
EVT_WDF_CHILD_LIST_ADDRESS_DESCRIPTION_COPY * PFN_WDF_CHILD_LIST_ADDRESS_DESCRIPTION_COPY
Definition: wdfchildlist.h:225
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_CHILD_LIST_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFCHILDLIST * ChildList
Definition: wdfchildlist.h:481
EVT_WDF_CHILD_LIST_SCAN_FOR_CHILDREN * PFN_WDF_CHILD_LIST_SCAN_FOR_CHILDREN
Definition: wdfchildlist.h:142
EVT_WDF_CHILD_LIST_CREATE_DEVICE * PFN_WDF_CHILD_LIST_CREATE_DEVICE
Definition: wdfchildlist.h:129
EVT_WDF_CHILD_LIST_IDENTIFICATION_DESCRIPTION_COPY * PFN_WDF_CHILD_LIST_IDENTIFICATION_DESCRIPTION_COPY
Definition: wdfchildlist.h:159
_In_ WDFDEVICE _In_ PWDF_CHILD_ADDRESS_DESCRIPTION_HEADER OldAddressDescription
Definition: wdfchildlist.h:271
#define WDF_EXTERN_C_START
Definition: wdfchildlist.h:41
WDF_EXTERN_C_START enum _WDF_CHILD_LIST_RETRIEVE_DEVICE_STATUS * PWDF_CHILD_LIST_RETRIEVE_DEVICE_STATUS
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_CHILD_LIST_CONFIG Config
Definition: wdfchildlist.h:476
struct _WDF_CHILD_ADDRESS_DESCRIPTION_HEADER * PWDF_CHILD_ADDRESS_DESCRIPTION_HEADER
_In_ PWDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER _Out_ PWDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER DestinationIdentificationDescription
Definition: wdfchildlist.h:157
_In_ PWDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER FirstIdentificationDescription
Definition: wdfchildlist.h:188
EVT_WDF_CHILD_LIST_ADDRESS_DESCRIPTION_CLEANUP * PFN_WDF_CHILD_LIST_ADDRESS_DESCRIPTION_CLEANUP
Definition: wdfchildlist.h:257
_WDF_CHILD_LIST_RETRIEVE_DEVICE_STATUS
Definition: wdfchildlist.h:52
@ WdfChildListRetrieveDeviceNotYetCreated
Definition: wdfchildlist.h:55
@ WdfChildListRetrieveDeviceUndefined
Definition: wdfchildlist.h:53
@ WdfChildListRetrieveDeviceNoSuchDevice
Definition: wdfchildlist.h:56
@ WdfChildListRetrieveDeviceSuccess
Definition: wdfchildlist.h:54
EVT_WDF_CHILD_LIST_IDENTIFICATION_DESCRIPTION_DUPLICATE * PFN_WDF_CHILD_LIST_IDENTIFICATION_DESCRIPTION_DUPLICATE
Definition: wdfchildlist.h:176
_In_ PWDF_CHILD_ADDRESS_DESCRIPTION_HEADER SourceAddressDescription
Definition: wdfchildlist.h:220
_In_ WDFDEVICE _In_ PWDF_CHILD_ADDRESS_DESCRIPTION_HEADER _Out_ PWDF_CHILD_ADDRESS_DESCRIPTION_HEADER NewAddressDescription
Definition: wdfchildlist.h:274
EVT_WDF_CHILD_LIST_IDENTIFICATION_DESCRIPTION_CLEANUP * PFN_WDF_CHILD_LIST_IDENTIFICATION_DESCRIPTION_CLEANUP
Definition: wdfchildlist.h:208
struct _WDF_CHILD_LIST_CONFIG WDF_CHILD_LIST_CONFIG
EVT_WDF_CHILD_LIST_ADDRESS_DESCRIPTION_DUPLICATE * PFN_WDF_CHILD_LIST_ADDRESS_DESCRIPTION_DUPLICATE
Definition: wdfchildlist.h:242
EVT_WDF_CHILD_LIST_DEVICE_REENUMERATED * PFN_WDF_CHILD_LIST_DEVICE_REENUMERATED
Definition: wdfchildlist.h:276
WDF_EXTERN_C_START enum _WDF_CHILD_LIST_RETRIEVE_DEVICE_STATUS WDF_CHILD_LIST_RETRIEVE_DEVICE_STATUS
struct _WDF_CHILD_ADDRESS_DESCRIPTION_HEADER WDF_CHILD_ADDRESS_DESCRIPTION_HEADER
_Inout_ PWDF_CHILD_ADDRESS_DESCRIPTION_HEADER AddressDescription
Definition: wdfchildlist.h:255
FORCEINLINE VOID WDF_CHILD_LIST_ITERATOR_INIT(_Out_ PWDF_CHILD_LIST_ITERATOR Iterator, _In_ ULONG Flags)
Definition: wdfchildlist.h:450
enum _WDF_RETRIEVE_CHILD_FLAGS WDF_RETRIEVE_CHILD_FLAGS
FORCEINLINE VOID WDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER_INIT(_Out_ PWDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER Header, _In_ ULONG IdentificationDescriptionSize)
Definition: wdfchildlist.h:83
_In_ PWDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER _In_ PWDFDEVICE_INIT ChildInit
Definition: wdfchildlist.h:127
_In_ PWDF_CHILD_ADDRESS_DESCRIPTION_HEADER _Out_ PWDF_CHILD_ADDRESS_DESCRIPTION_HEADER DestinationAddressDescription
Definition: wdfchildlist.h:223
EVT_WDF_CHILD_LIST_IDENTIFICATION_DESCRIPTION_COMPARE * PFN_WDF_CHILD_LIST_IDENTIFICATION_DESCRIPTION_COMPARE
Definition: wdfchildlist.h:193
_Must_inspect_result_ _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI NTSTATUS(STDCALL *PFN_WDFCHILDLISTCREATE)(_In_ PWDF_DRIVER_GLOBALS DriverGlobals
Modifies some information data about a security descriptor.
Definition: wdfchildlist.h:467
FORCEINLINE VOID WDF_CHILD_RETRIEVE_INFO_INIT(_Out_ PWDF_CHILD_RETRIEVE_INFO Info, _In_ PWDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER IdentificationDescription)
Definition: wdfchildlist.h:309
PWDF_DRIVER_GLOBALS WdfDriverGlobals
@ WdfChildListRetrievePdoTableIndex
Definition: wdffuncenum.h:27
@ WdfChildListBeginIterationTableIndex
Definition: wdffuncenum.h:31
@ WdfChildListRetrieveNextDeviceTableIndex
Definition: wdffuncenum.h:32
@ WdfChildListEndIterationTableIndex
Definition: wdffuncenum.h:33
@ WdfChildListRetrieveAddressDescriptionTableIndex
Definition: wdffuncenum.h:28
@ WdfChildListRequestChildEjectTableIndex
Definition: wdffuncenum.h:37
@ WdfChildListCreateTableIndex
Definition: wdffuncenum.h:25
@ WdfChildListGetDeviceTableIndex
Definition: wdffuncenum.h:26
@ WdfChildListUpdateAllChildDescriptionsAsPresentTableIndex
Definition: wdffuncenum.h:36
@ WdfChildListAddOrUpdateChildDescriptionAsPresentTableIndex
Definition: wdffuncenum.h:34
@ WdfChildListUpdateChildDescriptionAsMissingTableIndex
Definition: wdffuncenum.h:35
@ WdfChildListEndScanTableIndex
Definition: wdffuncenum.h:30
@ WdfChildListBeginScanTableIndex
Definition: wdffuncenum.h:29
#define WDFAPI
Definition: wdftypes.h:53
#define FORCEINLINE
Definition: wdftypes.h:67
_Reserved_ PVOID Reserved
Definition: winddi.h:3974
_Must_inspect_result_ _In_ ULONG Flags
Definition: wsk.h:170