次の方法で共有


WdfRequestRequeue 関数 (wdfrequest.h)

[KMDF と UMDF に適用]

WdfRequestRequeue メソッドは、ドライバーに配信された I/O キューの先頭に I/O 要求を返します。

構文

NTSTATUS WdfRequestRequeue(
  [in] WDFREQUEST Request
);

パラメーター

[in] Request

フレームワーク要求オブジェクトへのハンドル。

戻り値

操作が成功した場合、WdfRequestRequeue はSTATUS_SUCCESSを返します。 それ以外の場合、このメソッドは次のいずれかの値を返す可能性があります。

リターン コード 説明
STATUS_INVALID_PARAMETER
入力パラメーターが無効です。
STATUS_INVALID_DEVICE_REQUEST
この値は、次のいずれかが発生した場合に返されます。
  • 指定された I/O 要求が I/O キューから送信されませんでした。
  • ドライバーは I/O 要求を所有していません。
  • 要求は取り消し可能です。
  • キューのディスパッチ方法は手動ではありません。
 

このメソッドは、他の NTSTATUS 値も返す場合があります。

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

注釈

ドライバーは、I/O キューの手動ディスパッチ メソッドを使用している場合にのみ WdfRequestRequeue を呼び出すことができます。

WdfIoQueuePurge を呼び出した後にドライバーが WdfRequestRequeue を呼び出した場合、消去が完了する前にリキュー試行が成功する可能性があります。 バージョン 1.9 以前の KMDF では、このシーケンスによってオペレーティング システムがクラッシュします。 この問題は、KMDF バージョン 1.11 以降で修正されています。

WdfRequestRequeue の詳細については、「I/O 要求の再キュー」を参照してください。

次のコード例では、ドライバーが要求を受信したキューに指定された I/O 要求を返します。

NTSTATUS status;

status = WdfRequestRequeue(request);

要件

要件
対象プラットフォーム ユニバーサル
最小 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)