WDF_IO_TARGET_OPEN_TYPE 枚举 (wdfiotarget.h)

[适用于 KMDF 和 UMDF]

WDF_IO_TARGET_OPEN_TYPE 枚举指定当驱动程序调用 WdfIoTargetOpen 时,驱动程序如何标识远程 I/O 目标。

语法

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

常量

 
WdfIoTargetOpenUndefined
值: 0
预留给系统使用。
WdfIoTargetOpenUseExistingDevice
值:1
此值仅受 KMDF 支持。

驱动程序通过提供指向 Windows 驱动程序模型 (WDM) DEVICE_OBJECT 结构的指针来标识远程 I /O 目标。
WdfIoTargetOpenByName
值: 2
驱动程序通过提供表示 对象名称的 Unicode 名称字符串来打开远程 I/O 目标。 此名称可以标识设备、文件或设备接口。
WdfIoTargetOpenReopen
值: 3
驱动程序在之前调用 WdfIoTargetCloseForQueryRemove 后重新打开远程 I/O 目标。 有关更多信息,请参见下面的“备注”部分。
WdfIoTargetOpenLocalTargetByFile
值: 4
此值仅受 UMDF 支持。

UMDF 驱动程序打开一个表示较低堆栈的文件句柄 (就像本地目标) 一样,以便它可以将驱动程序创建的请求向下发送到较低堆栈。 UMDF 驱动程序在调用 WDF_IO_TARGET_OPEN_PARAMS_INIT_OPEN_BY_FILE 时指定此值。

注解

WDF_IO_TARGET_OPEN_TYPE 枚举用于 WDF_IO_TARGET_OPEN_PARAMS 结构的 Type 成员中。

仅当驱动程序在最初打开远程 I/O 目标 时指定 WdfIoTargetOpenByName 时,才能指定 WdfIoTargetOpenReopen

如果设置了 WdfIoTargetOpenReopen ,框架将忽略 WDF_IO_TARGET_OPEN_PARAMS 结构的所有其他成员,并使用驱动程序在最初调用 WdfIoTargetOpen 时指定的值来打开远程 I/O 目标。

默认情况下, (除非驱动程序在其 INF 文件) 中指定 UmdfFileObjectPolicy=AllowNullAndUnknownFileObjects ,否则 UMDF 不允许处理与文件对象不关联的 I/O 请求。 此外,某些驱动程序堆栈(例如 HIDclass 枚举的集合 PDO)会失败,这些请求没有关联的文件对象。

与应用创建的请求不同,发送到本地 I/O 目标的驱动程序创建的请求没有关联的文件对象。 因此,框架或更低版本驱动程序可能会使这些请求失败。

在这种情况下,可以使用 WdfIoTargetOpenLocalTargetByFile 使发送到本地目标的驱动程序创建的请求与对应于该目标的文件对象相关联。

要求

要求
最低 KMDF 版本 1.0
最低 UMDF 版本 2.0
标头 wdfiotarget.h (包括 Wdf.h)

另请参阅

DEVICE_OBJECT

WDF_IO_TARGET_OPEN_PARAMS

WDF_IO_TARGET_OPEN_PARAMS_INIT_OPEN_BY_FILE

WdfIoTargetCloseForQueryRemove

WdfIoTargetOpen