WDF_IO_TARGET_OPEN_TYPE列舉 (wdfiotarget.h)

[適用於 KMDF 和 UMDF]

WDF_IO_TARGET_OPEN_TYPE列舉會指定驅動程式呼叫 WdfIoTargetOpen 時,驅動程式如何識別遠端 I/O 目標。

Syntax

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