WdfIoQueueRetrieveFoundRequest 関数 (wdfio.h)
[KMDF と UMDF に適用]
WdfIoQueueRetrieveFoundRequest メソッドは、ドライバーが要求を処理できるように、指定された要求をドライバーに配信します。
構文
NTSTATUS WdfIoQueueRetrieveFoundRequest(
[in] WDFQUEUE Queue,
[in] WDFREQUEST FoundRequest,
[out] WDFREQUEST *OutRequest
);
パラメーター
[in] Queue
フレームワーク キュー オブジェクトへのハンドル。
[in] FoundRequest
WdfIoQueueFindRequest を呼び出すことによって取得されたフレームワーク要求オブジェクトへのハンドル。
[out] OutRequest
フレームワーク要求オブジェクトへのハンドルを受け取る場所へのポインター。 ドライバーは、要求を処理するときにこのハンドルを使用する必要があります。
戻り値
操作が成功した場合、WdfIoQueueRetrieveFoundRequest はSTATUS_SUCCESSを返します。 それ以外の場合、このメソッドは次のいずれかの値を返す可能性があります。
リターン コード | 説明 |
---|---|
|
ドライバーが無効なハンドルを指定しました。 |
|
FoundRequest パラメーターで識別される要求が I/O キューに見つかりません。 |
|
フレームワークは、検索条件に一致する要求を見つけずに I/O キューの末尾に達しました。 |
このメソッドは、他の NTSTATUS 値を返す場合もあります。
ドライバーが無効なオブジェクト ハンドルを提供すると、バグ チェックが発生します。
注釈
WdfIoQueueRetrieveFoundRequest を呼び出して I/O 要求を取得した後、ドライバーは要求を所有し、何らかの方法で I/O 要求を処理する必要があります。
WdfIoQueueRetrieveFoundRequest を呼び出す前に、ドライバーは WdfIoQueueFindRequest を呼び出す必要があります。これにより、ドライバーが WdfIoQueueRetrieveFoundRequest の FoundRequest パラメーターとして使用できるハンドルを取得します。
ドライバーが KMDF バージョン 1.11 以降でビルドされている場合、ドライバーは WdfIoQueueFindRequest を最初に呼び出さずに WdfIoQueueRetrieveFoundRequest を呼び出すことができます。 この場合、ドライバーは、要求オブジェクトがまだ有効であり、キュー内にあることを確認する必要があります。
WdfIoQueueRetrieveFoundRequest の呼び出しがSTATUS_NOT_FOUNDを返した場合、キューに以前に存在していた要求が削除されました。 要求が取り消された可能性があります。
WdfIoQueueRetrieveFoundRequest メソッドの詳細については、「I/O キューの管理」を参照してください。
例
WdfIoQueueRetrieveFoundRequest を使用するコード例については、「WdfIoQueueFindRequest」を参照してください。
要件
要件 | 値 |
---|---|
対象プラットフォーム | ユニバーサル |
最小 KMDF バージョン | 1.0 |
最小 UMDF バージョン | 2.0 |
Header | wdfio.h (Wdf.h を含む) |
Library | Wdf01000.sys (KMDF);WUDFx02000.dll (UMDF) |
IRQL | <= DISPATCH_LEVEL |
DDI コンプライアンス規則 | DoubleCompletion(kmdf)、 DriverCreate(kmdf)、 KmdfIrql(kmdf)、 KmdfIrql2(kmdf)、KmdfIrqlExplicit(kmdf)、wdfioqueuefindrequestfailed、 WdfIoQueueFindRequestFailed(kmdf)、wdfioqueueretrievefoundrequest、 WdfIoQueueRetrieveFoundRequest(kmdf) |