66 "Enter, WDFDEVICE %p",
Device);
83 "WDFDEVICE 0x%p Config is invalid",
Device);
115 "Could not convert object to handle, %!STATUS!",
156 WDFEXPORT(WdfChildListRetrieveAddressDescription)(
189 "identification description size %d incorrect, expected %d, %!STATUS!",
200 "cannot retrieve an address description from a list" 201 " which was not initialized to use them, %!STATUS!",
212 "description size %d incorrect, expected %d, %!STATUS!",
223 "Exit: WDFCHILDLIST %p, %!STATUS!",
308 "Iterator Size %d not correct, expected %d, %!STATUS!",
318 "Iterator Flags 0x%x not correct, valid mask 0x%x, %!STATUS!",
333 WDFEXPORT(WdfChildListRetrieveNextDevice)(
364 "Iterator Size %d not correct, expected %d, %!STATUS!",
373 "Iterator Flags 0x%x not correct, valid mask 0x%x, %!STATUS!",
383 "Invalid RetrieveInfo Size %d, expected %d, %!STATUS!",
387 if (
Info->IdentificationDescription !=
NULL 390 Info->IdentificationDescription->IdentificationDescriptionSize) {
395 "identification description size %d incorrect, expected %d" 397 Info->IdentificationDescription->IdentificationDescriptionSize,
403 if (
Info->AddressDescription !=
NULL) {
409 "cannot retrieve an address description from a list" 410 " which was not initialized to use them, %!STATUS!",
416 Info->AddressDescription->AddressDescriptionSize) {
421 "address description size %d incorrect, expected %d, %!STATUS!",
422 Info->AddressDescription->AddressDescriptionSize,
461 "Iterator Size %d not correct, expected %d, %!STATUS!",
471 "Iterator Flags 0x%x not correct, valid mask 0x%x, %!STATUS!",
485 WDFEXPORT(WdfChildListAddOrUpdateChildDescriptionAsPresent)(
517 "cannot retrieve an address description from a list" 518 " which was not initialized to use them, %!STATUS!",
status);
528 "address description size %d incorrect, expected %d, %!STATUS!",
541 "Must provide a valid AddressDescription because the" 542 " WDFCHILDLIST 0x%p is configured with AddressDescriptionSize," 555 "identification description size %d incorrect, expected %d, %!STATUS!",
574 WDFEXPORT(WdfChildListUpdateChildDescriptionAsMissing)(
604 "identification description size %d incorrect, expected %d, %!STATUS!",
614 "Exit: WDFCHILDLIST %p, %!STATUS!",
623 WDFEXPORT(WdfChildListUpdateAllChildDescriptionsAsPresent)(
681 "Invalid RetrieveInfo Size %x, expected %d, %!STATUS!",
690 "Invalid ID Description, %!STATUS!",
699 "identification description size %d incorrect, expected %d",
711 "cannot retrieve an address description from a list" 712 " which was not initialized to use them, %!STATUS!",
719 "address description size %d incorrect, expected %d",
740 "Exit: WDFCHILDLIST %p, WDFDEVICE Pdo %p, " 741 "%!WDF_CHILD_LIST_RETRIEVE_DEVICE_STATUS!",
750 WDFEXPORT(WdfChildListRequestChildEject)(
778 "identification description size 0x%x incorrect, expected 0x%x",
792 "found: WDFCHILDLIST %p, WDFDEVICE PDO %p",
801 pdo =
device->GetSafePhysicalDevice();
809 "PDO WDFDEVICE %p not reported yet to pnp, cannot eject!",
PWDF_CHILD_ADDRESS_DESCRIPTION_HEADER pAddr
BOOLEAN HasAddressDescriptions(VOID)
_Must_inspect_result_ NTSTATUS GetNextDevice(__out WDFDEVICE *Device, __inout PWDF_CHILD_LIST_ITERATOR Iterator, __inout_opt PWDF_CHILD_RETRIEVE_INFO Info)
#define STATUS_INFO_LENGTH_MISMATCH
_Must_inspect_result_ NTSTATUS Commit(__in_opt PWDF_OBJECT_ATTRIBUTES Attributes, __out_opt WDFOBJECT *ObjectHandle, __in_opt FxObject *Parent=NULL, __in BOOLEAN AssignDriverAsDefaultParent=TRUE)
#define STATUS_INVALID_PARAMETER
_Must_inspect_result_ __in WDFCHILDLIST __in PWDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER IdentificationDescription
VOID UpdateAllAsPresent(__in_opt PULONG ScanTag=NULL)
#define STATUS_INVALID_DEVICE_REQUEST
WDFDEVICE GetDevice(VOID)
virtual _Must_inspect_result_ NTSTATUS AllocateEnumInfo(VOID)
_Must_inspect_result_ __in WDFCHILDLIST __inout PWDF_CHILD_RETRIEVE_INFO RetrieveInfo
virtual VOID SetDeviceTelemetryInfoFlags(_In_ FxDeviceInfoFlags Flag)
VOID EndIteration(__inout PWDF_CHILD_LIST_ITERATOR Iterator)
_Must_inspect_result_ _In_ WDFCHILDLIST _In_ PWDF_CHILD_LIST_ITERATOR _Out_ WDFDEVICE _Inout_opt_ PWDF_CHILD_RETRIEVE_INFO Info
CfxDevice * GetDeviceFromId(__inout PWDF_CHILD_RETRIEVE_INFO Info)
_Must_inspect_result_ __in WDFDEVICE Device
FORCEINLINE VOID WDF_CHILD_RETRIEVE_INFO_INIT(_Out_ PWDF_CHILD_RETRIEVE_INFO Info, _In_ PWDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER IdentificationDescription)
#define TRACE_LEVEL_VERBOSE
VOID BeginScan(__out_opt PULONG ScanTag=NULL)
VOID EndScan(__inout_opt PULONG ScanTag=NULL)
_Must_inspect_result_ __in WDFCHILDLIST __in PWDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER __inout PWDF_CHILD_ADDRESS_DESCRIPTION_HEADER AddressDescription
_Must_inspect_result_ __in WDFCHILDLIST __in PWDF_CHILD_LIST_ITERATOR __out WDFDEVICE __inout_opt PWDF_CHILD_RETRIEVE_INFO Info
_Inout_ PWDF_CHILD_ADDRESS_DESCRIPTION_HEADER AddressDescription
_Must_inspect_result_ __in WDFDEVICE __in PWDF_CHILD_LIST_CONFIG __in_opt PWDF_OBJECT_ATTRIBUTES __out WDFCHILDLIST * DeviceList
_Must_inspect_result_ __in WDFDEVICE __in PWDF_CHILD_LIST_CONFIG __in_opt PWDF_OBJECT_ATTRIBUTES DeviceListAttributes
__inline NTSTATUS FxVerifierCheckIrqlLevel(__in PFX_DRIVER_GLOBALS FxDriverGlobals, __in KIRQL Irql)
PFX_DRIVER_GLOBALS pFxDriverGlobals
_Must_inspect_result_ __in WDFDEVICE __in PWDF_CHILD_LIST_CONFIG Config
ULONG GetIdentificationDescriptionSize(VOID)
#define NT_SUCCESS(StatCode)
_Must_inspect_result_ NTSTATUS GetAddressDescription(__in PWDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER IdentificationDescription, __out PWDF_CHILD_ADDRESS_DESCRIPTION_HEADER AddressDescription)
_In_ WDFCHILDLIST _In_ PWDF_CHILD_LIST_ITERATOR Iterator
_In_ PWDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER IdentificationDescription
FxPointerNotNull(pFxDriverGlobals, Config)
_Must_inspect_result_ NTSTATUS Add(__in PWDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER IdentificationDescription, __in_opt PWDF_CHILD_ADDRESS_DESCRIPTION_HEADER AddressDescription, __in_opt PULONG ScanTag=NULL)
_Must_inspect_result_ __drv_maxIRQL(PASSIVE_LEVEL) NTSTATUS STDCALL WDFEXPORT(WdfChildListCreate)(__in PWDF_DRIVER_GLOBALS DriverGlobals
_Must_inspect_result_ NTSTATUS FxValidateObjectAttributes(__in PFX_DRIVER_GLOBALS FxDriverGlobals, __in PWDF_OBJECT_ATTRIBUTES Attributes, __in ULONG Flags=FX_VALIDATE_OPTION_NONE_SPECIFIED)
VOID NTAPI IoRequestDeviceEject(IN PDEVICE_OBJECT PhysicalDeviceObject)
#define _Must_inspect_result_
_Must_inspect_result_ _In_ WDFDEVICE Device
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_CHILD_LIST_CONFIG Config
#define TRACE_LEVEL_ERROR
_Must_inspect_result_ _In_ WDFCHILDLIST _Inout_ PWDF_CHILD_RETRIEVE_INFO RetrieveInfo
PWDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER pId
ULONG GetAddressDescriptionSize(VOID)
DoTraceLevelMessage(pFxDriverGlobals, TRACE_LEVEL_VERBOSE, TRACINGPNP, "Enter, WDFDEVICE %p", Device)
_Must_inspect_result_ NTSTATUS UpdateAsMissing(__in PWDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER Description)
__in WDFCHILDLIST __in PWDF_CHILD_LIST_ITERATOR Iterator
static _Must_inspect_result_ NTSTATUS _CreateAndInit(__out FxChildList **ChildList, __in PFX_DRIVER_GLOBALS FxDriverGlobals, __in PWDF_OBJECT_ATTRIBUTES ListAttributes, __in size_t TotalDescriptionSize, __in CfxDevice *Device, __in PWDF_CHILD_LIST_CONFIG ListConfig, __in BOOLEAN Static=FALSE)
VOID DeleteFromFailedCreate(VOID)
FxObjectHandleGetPtrAndGlobals(GetFxDriverGlobals(DriverGlobals), Device, FX_TYPE_DEVICE,(PVOID *)&pDevice, &pFxDriverGlobals)
#define RtlZeroMemory(Destination, Length)
WDF_CHILD_RETRIEVE_INFO info
__inline PFX_DRIVER_GLOBALS GetFxDriverGlobals(__in PWDF_DRIVER_GLOBALS DriverGlobals)
static _Must_inspect_result_ NTSTATUS _ValidateConfig(__in PFX_DRIVER_GLOBALS FxDriverGlobals, __in PWDF_CHILD_LIST_CONFIG Config, __in size_t *TotalDescriptionSize)
VOID BeginIteration(__inout PWDF_CHILD_LIST_ITERATOR Iterator)
FxVerifierDbgBreakPoint(pFxDriverGlobals)
size_t totalDescriptionSize