次の方法で共有


WdfRequestFormatRequestUsingCurrentType 関数 (wdfrequest.h)

[KMDF と UMDF に適用]

WdfRequestFormatRequestUsingCurrentType メソッドは、ドライバーがドライバーのローカル I/O ターゲットに 転送できるように、指定された I/O 要求を書式設定します。

構文

void WdfRequestFormatRequestUsingCurrentType(
  [in] WDFREQUEST Request
);

パラメーター

[in] Request

ドライバーがその I/O キューの 1 つから受信したフレームワーク要求オブジェクトへのハンドル。

戻り値

何一つ

備考

ドライバーが無効なオブジェクト ハンドルを提供すると、バグ チェックが発生します。

ドライバー が I/O 要求を受信すると、ドライバーが要求を変更されていないローカル I/O ターゲットに転送する必要がある場合があります。 このような要求を転送するには、ドライバーは次の手順を実行する必要があります。

  1. WdfRequestFormatRequestUsingCurrentType 呼び出して、フレームワークがドライバーのローカル I/O ターゲットに要求を渡すことができるように要求オブジェクトを書式設定します。
  2. WdfRequestSend を呼び出して、I/O ターゲットに要求を送信します。
WdfRequestFormatRequestUsingCurrentTypeの詳細については、「転送 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
ヘッダー wdfrequest.h (Wdf.h を含む)
ライブラリ Wdf01000.sys (KMDF);WUDFx02000.dll (UMDF)
IRQL <=DISPATCH_LEVEL
DDI コンプライアンス規則 する DriverCreate(kmdf), InvalidReqAccess(kmdf), InvalidReqAccessLocal(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf), RequestFormattedValid(kmdf)

関連項目

WdfRequestSend

WdfRequestWdmFormatUsingStackLocation