WdfIoTargetCreate function (wdfiotarget.h)
[Applies to KMDF and UMDF]
The WdfIoTargetCreate method creates a remote I/O target for a specified device.
Syntax
NTSTATUS WdfIoTargetCreate(
[in] WDFDEVICE Device,
[in, optional] PWDF_OBJECT_ATTRIBUTES IoTargetAttributes,
[out] WDFIOTARGET *IoTarget
);
Parameters
[in] Device
A handle to a framework device object.
[in, optional] IoTargetAttributes
A pointer to a caller-allocated WDF_OBJECT_ATTRIBUTES structure that specifies object attributes for the I/O target object. This parameter is optional and can be WDF_NO_OBJECT_ATTRIBUTES.
[out] IoTarget
A pointer to a location that receives a handle to an I/O target object.
Return value
WdfIoTargetCreate returns STATUS_SUCCESS if the operation succeeds. Otherwise, this method might return one of the following values:
Return code | Description |
---|---|
|
An invalid parameter was detected. |
|
There was insufficient memory to create a new I/O target object. |
|
The ParentObject member of the WDF_OBJECT_ATTRIBUTES structure that IoTargetAttributes specified did not specify the framework device object that Device specified, or an object whose chain of parents leads to that object. |
For a list of other return values that WdfIoTargetCreate can return, see Framework Object Creation Errors.
This method also might return other NTSTATUS values.
A bug check occurs if the driver supplies an invalid object handle.
Remarks
After a driver calls WdfIoTargetCreate, the driver must call WdfIoTargetOpen before it can send requests to the remote I/O target.
If the driver specifies a parent object in the WDF_OBJECT_ATTRIBUTES structure's ParentObject member, the parent object can be a framework device object or any object whose chain of parents leads to a framework device object. The framework will delete the I/O target object when it (or the driver) deletes the device object.
For more information about WdfIoTargetCreate, see Initializing a General I/O Target.
If your driver provides EvtCleanupCallback or EvtDestroyCallback callback functions for the I/O target object, note that the framework calls these callback functions at IRQL = PASSIVE_LEVEL.
For more information about I/O targets, see Using I/O Targets.
Examples
For a code example that uses WdfIoTargetCreate, see WdfIoTargetOpen.
Requirements
Requirement | Value |
---|---|
Target Platform | Universal |
Minimum KMDF version | 1.0 |
Minimum UMDF version | 2.0 |
Header | wdfiotarget.h (include Wdf.h) |
Library | Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF) |
IRQL | PASSIVE_LEVEL |
DDI compliance rules | DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |