WdfDeviceWdmGetAttachedDevice function (wdfdevice.h)
[Applies to KMDF only]
The WdfDeviceWdmGetAttachedDevice method returns the next-lower WDM device object in the device stack.
Syntax
PDEVICE_OBJECT WdfDeviceWdmGetAttachedDevice(
[in] WDFDEVICE Device
);
Parameters
[in] Device
A handle to a framework device object.
Return value
WdfDeviceWdmGetAttachedDevice returns a pointer to a WDM DEVICE_OBJECT structure. If the specified object handle represents a physical device object (PDO), the method returns NULL.
A bug check occurs if the driver supplies an invalid object handle.
Remarks
The pointer that the WdfDeviceWdmGetAttachedDevice method returns is valid until the framework device object is deleted. If the driver provides an EvtCleanupCallback function for the framework device object, the pointer is valid until the callback function returns.
Examples
The following code example creates a tracing message that contains pointers to the WDM device objects that represent a device's PDO, FDO, and next-lower device.
TraceEvents(
TRACE_LEVEL_INFORMATION,
DBG_PNP,
"PDO(0x%p) FDO(0x%p), Lower(0x%p)\n",
WdfDeviceWdmGetPhysicalDevice(device),
WdfDeviceWdmGetDeviceObject(device),
WdfDeviceWdmGetAttachedDevice(device)
);
Requirements
Requirement | Value |
---|---|
Target Platform | Universal |
Minimum KMDF version | 1.0 |
Header | wdfdevice.h (include Wdf.h) |
Library | Wdf01000.sys (see Framework Library Versioning.) |
IRQL | <= DISPATCH_LEVEL |
DDI compliance rules | DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |