Export (0) Print
Expand All
Expand Minimize

WdfIoTargetCreate method

[Applies to KMDF and UMDF]

The WdfIoTargetCreate method creates a remote I/O target for a specified device.


NTSTATUS WdfIoTargetCreate(
  [in]            WDFDEVICE Device,
  [in, optional]  PWDF_OBJECT_ATTRIBUTES IoTargetAttributes,
  [out]           WDFIOTARGET *IoTarget


Device [in]

A handle to a framework device object.

IoTargetAttributes [in, optional]

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.

IoTarget [out]

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 codeDescription

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.


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.


For a code example that uses WdfIoTargetCreate, see WdfIoTargetOpen.


Minimum KMDF version


Minimum UMDF version



Wdfiotarget.h (include Wdf.h)


Wdf01000.sys (KMDF);
WUDFx02000.dll (UMDF)



DDI compliance rules

DriverCreate, KmdfIrql, KmdfIrql2

See also




Send comments about this topic to Microsoft

© 2014 Microsoft