Obtaining WDM Information
[Applies to KMDF only]
The framework provides several object methods that enable your driver to obtain WDM-defined information.
Obtaining WDM Information About the Driver and its Devices
To obtain WDM information about a driver and its devices, the driver can call the following methods:
WdfFdoInitWdmGetPhysicalDevice
Retrieves the DEVICE_OBJECT structure that represents a device's physical device object (PDO). A driver can call this method before the driver has created a framework device object for the device.
WdfDeviceWdmGetPhysicalDevice
Retrieves the WDM DEVICE_OBJECT structure that represents a device's PDO. A driver can call this method after it has created a framework device object for the device.
WdfDeviceWdmGetDeviceObject
Returns the WDM device object that is associated with a specified framework device object.
WdfDeviceWdmGetAttachedDevice
Returns the next-lower WDM device object in the device stack.
WdfWdmDeviceGetWdfDeviceHandle
Returns a handle to the framework device object that is associated with a specified WDM device object.
WdfWdmDriverGetWdfDriverHandle
Returns a handle to the framework driver object that is associated with a specified WDM driver object.
Obtaining WDM Information About I/O Requests
To obtain WDM information about I/O requests, a driver can call the following methods:
WdfRequestWdmGetIrp
Returns the WDM IRP structure that is associated with a specified framework request object. (On the other hand, a driver that receives a WDM IRP outside of the framework can create a framework request object for the IRP by calling WdfRequestCreateFromIrp.)
WdfRequestGetParameters
Retrieves the parameters that are associated with a specified framework request object. Most of these parameters come from the request's WDM I/O stack location.)
WdfRequestRetrieveOutputWdmMdl
Retrieves a memory descriptor list (MDL) that represents an I/O request's output buffer.
WdfRequestRetrieveInputWdmMdl
Retrieves an MDL that represents an I/O request's input buffer.
WdfRequestFormatRequestUsingCurrentType
Copies the contents of the calling driver's I/O stack location to the I/O stack location of the driver's local I/O target.
WdfRequestWdmFormatUsingStackLocation
Sets the contents of the I/O stack location for the driver's local I/O target.
Obtaining WDM Information About I/O Targets
To obtain WDM information about I/O targets, a driver can call the following methods:
WdfIoTargetWdmGetTargetDeviceObject
Returns a pointer to the WDM device object that is associated with a local or remote I/O target.
WdfIoTargetWdmGetTargetFileObject
Returns a pointer to the WDM FILE_OBJECT structure that is associated with a remote I/O target.
WdfIoTargetWdmGetTargetFileHandle
Returns a handle to the file that is associated with a remote I/O target.
WdfIoTargetWdmGetTargetPhysicalDevice
Returns a pointer to the WDM physical device object (PDO) that represents a remote I/O target's device.
Obtaining WDM Information About Interrupts and DPCs
To obtain WDM information about interrupts and deferred procedure calls (DPCs), a driver can call the following methods:
WdfInterruptWdmGetInterrupt
Returns a pointer to the WDM KINTERRUPT structure that is associated with a specified framework interrupt object.
WdfDpcWdmGetDpc
Returns a pointer to the WDM KDPC structure that is associated with a specified framework DPC object.
Obtaining WDM Information About USB I/O Targets
To obtain WDM information about USB I/O targets, a driver can call the following method:
WdfUsbTargetPipeWdmGetPipeHandle
Returns the USBD_PIPE_HANDLE-typed handle that is associated with a specified framework pipe object.
Obtaining WDM Information About the Registry
To obtain WDM information about the registry, a driver can call the following method:
WdfRegistryWdmGetHandle
Returns a WDM handle to the registry key that a framework registry-key object represents.
Obtaining WDM Information About File Objects
To obtain WDM information about file objects, a driver can call the following method:
WdfFileObjectWdmGetFileObject
Returns the WDM FILE_OBJECT structure that is associated with a specified framework file object.