WdfRequestFormatRequestUsingCurrentType 関数 (wdfrequest.h)
[KMDF と UMDF に適用]
WdfRequestFormatRequestUsingCurrentType メソッドは、ドライバーがドライバーのローカル I/O ターゲットに転送できるように、指定された I/O 要求を書式設定します。
構文
void WdfRequestFormatRequestUsingCurrentType(
[in] WDFREQUEST Request
);
パラメーター
[in] Request
ドライバーが I/O キューの 1 つから受信したフレームワーク要求オブジェクトへのハンドル。
戻り値
なし
解説
ドライバーが無効なオブジェクト ハンドルを提供すると、バグ チェックが発生します。
ドライバーが I/O 要求を受信すると、ドライバーが要求を変更されていないローカル I/O ターゲットに転送する必要がある場合があります。 このような要求を転送するには、ドライバーは次の手順を実行する必要があります。
- WdfRequestFormatRequestUsingCurrentType を呼び出して、フレームワークがドライバーのローカル I/O ターゲットに要求を渡すことができるように要求オブジェクトを書式設定します。
- WdfRequestSend を呼び出して、I/O ターゲットに要求を送信します。
例
次のコード例は、 EvtIoDefault コールバック関数で、受信したすべての I/O 要求を変更せずにデバイスのローカル I/O ターゲットに転送します。
VOID
MyEvtIoDefault(
WDFQUEUE Queue,
WDFREQUEST Request
)
{
WDF_REQUEST_SEND_OPTIONS options;
NTSTATUS status;
WdfRequestFormatRequestUsingCurrentType(Request);
WDF_REQUEST_SEND_OPTIONS_INIT(
&options,
WDF_REQUEST_SEND_OPTION_SEND_AND_FORGET
);
ret = WdfRequestSend (
Request,
WdfDeviceGetIoTarget(WdfIoQueueGetDevice(Queue)),
&options
);
if (!ret) {
status = WdfRequestGetStatus(Request);
WdfRequestComplete(
Request,
status
);
}
return;
}
要件
要件 | 値 |
---|---|
対象プラットフォーム | ユニバーサル |
最小 KMDF バージョン | 1.0 |
最小 UMDF バージョン | 2.0 |
Header | wdfrequest.h (Wdf.h を含む) |
Library | Wdf01000.sys (KMDF);WUDFx02000.dll (UMDF) |
IRQL | <=DISPATCH_LEVEL |
DDI コンプライアンス規則 | DriverCreate(kmdf)、 InvalidReqAccess(kmdf)、 InvalidReqAccessLocal(kmdf)、 KmdfIrql(kmdf)、 KmdfIrql2(kmdf)、KmdfIrqlExplicit(kmdf)、 RequestFormattedValid(kmdf) |