WDF_REQUEST_SEND_OPTIONS_FLAGS列挙 (wdfrequest.h)
[KMDF と UMDF に適用]
WDF_REQUEST_SEND_OPTIONS_FLAGS列挙型は、ドライバーのWDF_REQUEST_SEND_OPTIONS構造体で使用されるフラグを定義します。
構文
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 要求を同期的に処理します。 (ドライバーは、名前が "同期的" で終わるオブジェクト メソッド ( 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 ターゲットに渡そうとします。 ドライバーもWDF_REQUEST_SEND_OPTION_IMPERSONATION_IGNORE_FAILURE フラグを設定しない限り、偽装の試行が失敗した場合、WdfRequestSend メソッドはエラー コードを返します。 |
WDF_REQUEST_SEND_OPTION_IMPERSONATION_IGNORE_FAILURE 値: 0x00020000 このフラグは UMDF にのみ適用されます。 設定した場合でも、偽装が失敗した場合でも、フレームワークは要求を送信します。 この値は 、WDF_REQUEST_SEND_OPTION_IMPERSONATE_CLIENTでのみ使用できます。 |
注釈
通常、WDF_REQUEST_SEND_OPTION_SEND_AND_FORGET フラグを設定するドライバーは、要求を I/O ターゲットに送信するために WdfRequestSend を呼び出す前に I/O 要求を書式設定しません。 実際、このフラグを設定するドライバーは、WdfRequestSend を呼び出す前に WdfIoTargetFormatRequestForXxx メソッドを呼び出す必要があります。 ドライバーは、 WdfRequestFormatRequestUsingCurrentType メソッドまたは WdfRequestWdmFormatUsingStackLocation メソッドのみを使用して要求を書式設定できます。
ドライバー は、 次の状況では、WDF_REQUEST_SEND_OPTION_SEND_AND_FORGET フラグを設定できません。
- ドライバーは 、WdfRequestCreate を呼び出して要求オブジェクトを作成しました。
- ドライバーは I/O 要求をリモート I/O ターゲットに送信しており、ドライバーは WdfIoTargetOpen を呼び出したときに WdfIoTargetOpenByName フラグを指定しました。
- ドライバーは I/O 要求をリモート I/O ターゲットに送信しており、ドライバーは WdfIoTargetOpenExistingDevice フラグと TargetFileObject ポインターの両方を WdfIoTargetOpen と呼び出したときに指定しました。
- 要求の種類は WdfRequestTypeCreate で、ドライバーは WdfFileObjectNotRequired フラグを 設定していません。 (この状況の詳細については、「 フレームワーク ファイル オブジェクト」を参照してください)。
要件
要件 | 値 |
---|---|
最小 KMDF バージョン | 1.0 |
最小 UMDF バージョン | 2.0 |
Header | wdfrequest.h (Wdf.h を含む) |