WDF_IO_TARGET_OPEN_TYPE enumeration (wdfiotarget.h)

[Applies to KMDF and UMDF]

The WDF_IO_TARGET_OPEN_TYPE enumeration specifies how a driver identifies a remote I/O target when the driver calls WdfIoTargetOpen.

Syntax

typedef enum _WDF_IO_TARGET_OPEN_TYPE {
  WdfIoTargetOpenUndefined = 0,
  WdfIoTargetOpenUseExistingDevice = 1,
  WdfIoTargetOpenByName = 2,
  WdfIoTargetOpenReopen = 3,
  WdfIoTargetOpenLocalTargetByFile = 4
} WDF_IO_TARGET_OPEN_TYPE;

Constants

 
WdfIoTargetOpenUndefined
Value: 0
Reserved for system use.
WdfIoTargetOpenUseExistingDevice
Value: 1
This value is supported by KMDF only.

The driver is identifying a remote I/O target by supplying a pointer to a Windows Driver Model (WDM) DEVICE_OBJECT structure.
WdfIoTargetOpenByName
Value: 2
The driver is opening a remote I/O target by supplying a Unicode name string that represents an object name. This name can identify a device, file, or device interface.
WdfIoTargetOpenReopen
Value: 3
The driver is reopening a remote I/O target after previously calling WdfIoTargetCloseForQueryRemove. For more information, see the following Remarks section.
WdfIoTargetOpenLocalTargetByFile
Value: 4
This value is supported by UMDF only.

UMDF The driver is opening a file handle that represents the lower stack (just like a local target), so that it can send a driver-created request down to the lower stack. A UMDF driver specifies this value when it calls WDF_IO_TARGET_OPEN_PARAMS_INIT_OPEN_BY_FILE.

Remarks

The WDF_IO_TARGET_OPEN_TYPE enumeration is used in the Type member of the WDF_IO_TARGET_OPEN_PARAMS structure.

The driver can specify WdfIoTargetOpenReopen only if it specified WdfIoTargetOpenByName when it originally opened the remote I/O target.

If WdfIoTargetOpenReopen is set, the framework ignores all other members of the WDF_IO_TARGET_OPEN_PARAMS structure and uses the values that the driver specified when it originally called WdfIoTargetOpen to open a remote I/O target.

By default (unless the driver specifies UmdfFileObjectPolicy=AllowNullAndUnknownFileObjects in its INF file), UMDF doesn’t allow processing of I/O requests that are not associated with a file object. Also, some driver stacks, such as HIDclass-enumerated collection PDOs, fail requests that have no associated file object.

Unlike app-created requests, driver-created requests sent to a local I/O target have no associated file object. As a result, the framework or the lower driver might fail those requests.

In this situation, you can use WdfIoTargetOpenLocalTargetByFile to cause driver-created requests sent to a local target to be associated with the file object corresponding to that target.

Requirements

Requirement Value
Minimum KMDF version 1.0
Minimum UMDF version 2.0
Header wdfiotarget.h (include Wdf.h)

See also

DEVICE_OBJECT

WDF_IO_TARGET_OPEN_PARAMS

WDF_IO_TARGET_OPEN_PARAMS_INIT_OPEN_BY_FILE

WdfIoTargetCloseForQueryRemove

WdfIoTargetOpen