WDF_REQUEST_SEND_OPTIONS_FLAGS列舉 (wdfrequest.h)
[適用於 KMDF 和 UMDF]
WDF_REQUEST_SEND_OPTIONS_FLAGS列舉類型會定義驅動程式WDF_REQUEST_SEND_OPTIONS結構中使用的旗標。
Syntax
typedef enum _WDF_REQUEST_SEND_OPTIONS_FLAGS {
WDF_REQUEST_SEND_OPTION_TIMEOUT = 0x00000001,
WDF_REQUEST_SEND_OPTION_SYNCHRONOUS = 0x00000002,
WDF_REQUEST_SEND_OPTION_IGNORE_TARGET_STATE = 0x00000004,
WDF_REQUEST_SEND_OPTION_SEND_AND_FORGET = 0x00000008,
WDF_REQUEST_SEND_OPTION_IMPERSONATE_CLIENT = 0x00010000,
WDF_REQUEST_SEND_OPTION_IMPERSONATION_IGNORE_FAILURE = 0x00020000
} WDF_REQUEST_SEND_OPTIONS_FLAGS;
常數
WDF_REQUEST_SEND_OPTION_TIMEOUT 值: 0x00000001 如果驅動程式設定此旗標,則WDF_REQUEST_SEND_OPTIONS結構的 Timeout 成員有效。 |
WDF_REQUEST_SEND_OPTION_SYNCHRONOUS 值: 0x00000002 如果驅動程式設定此旗標,架構會同步處理相關聯的 I/O 要求。 (如果驅動程式呼叫名稱以 「Synchronously」 結尾的物件方法,例如 WdfIoTargetSendReadSynchronously.) ,則驅動程式不需要設定此旗標 |
WDF_REQUEST_SEND_OPTION_IGNORE_TARGET_STATE 值: 0x00000004 如果驅動程式設定此旗標,架構會將 I/O 要求傳送至 I/O 目標,而不論 I/O 目標的狀態為何。 如果未設定,架構會在目標停止時將要求排入佇列。 設定此旗標可讓驅動程式在驅動程式呼叫 WdfIoTargetStop 之後,將要求傳送至裝置,例如重設 USB 管道的要求。 |
WDF_REQUEST_SEND_OPTION_SEND_AND_FORGET 值: 0x00000008 如果驅動程式設定此旗標,驅動程式會以異步方式傳送要求,而且不需要在要求完成或取消時收到通知。 不論 I/O 目標的狀態為何,架構都會將 I/O 要求傳送至 I/O 目標。 驅動程式不會設定 CompletionRoutine 回呼函式,或呼叫 要求的 WdfRequestComplete 。 如果驅動程式設定此旗標,它就無法設定任何其他旗標。 如需此旗標的詳細資訊,請參閱下列一節。 |
WDF_REQUEST_SEND_OPTION_IMPERSONATE_CLIENT 值: 0x00010000 此旗標僅適用於UMDF。 如果設定,且 I/O 要求類型為 WdfRequestTypeCreate,WdfRequestSend 方法會嘗試將用戶端的模擬層級傳遞至驅動程式的 I/O 目標。 WdfRequestSend 方法會在模擬嘗試失敗時傳回錯誤碼,除非驅動程式也會設定WDF_REQUEST_SEND_OPTION_IMPERSONATION_IGNORE_FAILURE旗標。 |
WDF_REQUEST_SEND_OPTION_IMPERSONATION_IGNORE_FAILURE 值: 0x00020000 此旗標僅適用於UMDF。 如果設定,架構仍會傳送要求,即使模擬失敗也一樣。 您只能搭配 WDF_REQUEST_SEND_OPTION_IMPERSONATE_CLIENT使用此值。 |
備註
設定WDF_REQUEST_SEND_OPTION_SEND_AND_FORGET旗標的驅動程式在呼叫 WdfRequestSend 以將要求傳送至 I/O 目標之前,通常不會格式化 I/O 要求。 事實上,設定此旗標的驅動程式在呼叫 WdfRequestSend 之前,不得先呼叫任何 WdfIoTargetFormatRequestForXxx 方法。 驅動程式只能使用 WdfRequestFormatRequestUsingCurrentType 或 WdfRequestWdmFormatUsingStackLocation 方法來格式化要求。
在下列情況下,驅動程式 無法 設定WDF_REQUEST_SEND_OPTION_SEND_AND_FORGET旗標:
- 驅動程式會呼叫 WdfRequestCreate 來建立要求物件。
- 驅動程式正在將 I/O 要求傳送至遠端 I/O 目標,而驅動程式在呼叫 WdfIoTargetOpen 時指定了 WdfIoTargetOpenByName 旗標。
- 驅動程式正在將 I/O 要求傳送至遠端 I/O 目標,而驅動程式在呼叫 WdfIoTargetOpen 時同時指定了 WdfIoTargetOpenUseExistingDevice 旗標和 TargetFileObject 指標。
- 要求類型為 WdfRequestTypeCreate ,而且驅動程式尚未設定 WdfFileObjectNotRequired 旗標 。 (如需這種情況的詳細資訊,請參閱 Framework File Objects.)
規格需求
需求 | 值 |
---|---|
最低 KMDF 版本 | 1.0 |
最低UMDF版本 | 2.0 |
標頭 | wdfrequest.h (包含 Wdf.h) |