WdfIoQueueRetrieveNextRequest 関数 (wdfio.h)
[KMDF と UMDF に適用]
WdfIoQueueRetrieveNextRequest メソッドは、指定された I/O キューから次に使用可能な I/O 要求を取得します。
構文
NTSTATUS WdfIoQueueRetrieveNextRequest(
[in] WDFQUEUE Queue,
[out] WDFREQUEST *OutRequest
);
パラメーター
[in] Queue
フレームワーク キュー オブジェクトへのハンドル。
[out] OutRequest
フレームワーク要求オブジェクトへのハンドルを受け取る場所へのポインター。 キューが空であるか、最後の要求が取得された場合、このパラメーターは NULL を受け取ります。
戻り値
操作が成功した場合、WdfIoQueueRetrieveNextRequest はSTATUS_SUCCESSを返します。 それ以外の場合、このメソッドは次のいずれかの値を返す可能性があります。
リターン コード | 説明 |
---|---|
|
ドライバーが無効なハンドルを指定しました。 |
|
フレームワークが I/O キューの末尾に達しました。 |
|
指定された I/O キューは、並列ディスパッチ方式用に構成されます。 |
|
指定された I/O キューが 電源管理 され、そのデバイスが低電力状態であるか、指定されたキューが停止しています。 |
このメソッドは、他の NTSTATUS 値を返す場合もあります。
ドライバーが無効なオブジェクト ハンドルを提供すると、バグ チェックが発生します。
注釈
ドライバーが I/O 要求を手動でディスパッチするために I/O キューを構成する場合、ドライバーは通常 、WdfIoQueueRetrieveNextRequest を呼び出してキューから要求を取得します。 順次ディスパッチ用に I/O キューを構成したドライバーは 、WdfIoQueueRetrieveNextRequest を呼び出すこともできます。 手動または順次ディスパッチ メソッドで WdfIoQueueRetrieveNextRequest を使用する方法の詳細については、「 I/O 要求のメソッドのディスパッチ」を参照してください。
WdfIoQueueRetrieveNextRequest を呼び出して I/O 要求を取得した後、ドライバーは要求を所有し、何らかの方法で I/O 要求を処理する必要があります。
WdfIoQueueRetrieveNextRequest メソッドの詳細については、「I/O キューの管理」を参照してください。
例
次のコード例では、デバイスの I/O キューに格納されている次の要求オブジェクトへのハンドルを取得します。
NTSTATUS status;
WDFREQUEST request;
status = WdfIoQueueRetrieveNextRequest(
pDeviceContext->ReadQueue,
&request
);
要件
要件 | 値 |
---|---|
対象プラットフォーム | ユニバーサル |
最小 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)、wdfioqueueretrievenextrequest、 WdfIoQueueRetrieveNextRequest(kmdf) |