I/O キューの状態

フレームワークは、I/O キューに対して次の状態を定義します:

Idle
I/O キューに I/O リクエストが含まれておらず、ドライバーは I/O キューから受信したリクエストを処理していません。

準備完了
I/O キューはフレームワークから I/O リクエストを受信でき、ドライバーに I/O リクエストを配信できます。

停止
I/O キューはフレームワークから I/O リクエストを受信できますが、ドライバーに I/O リクエストを配信することはできません。また、ドライバーは I/O キューから受信したリクエストを処理していません。

Drained
I/O キューが空であり、フレームワークから新しい I/O リクエストを受信できず、I/O キューに含まれるすべての I/O リクエストがドライバーに配信されています。

Purged
I/O キューが空であり、フレームワークから新しい I/O リクエストを受信できず、I/O キューに含まれるすべての I/O リクエストがキャンセルされました。

ドライバーがWdfIoQueueCreateを呼び出した後、フレームワークは新しい I/O キューを準備完了状態に設定できます。 ただし、power-managed I/O queuesは、デバイスが動作 (D0)状態にある場合にのみ、準備完了状態になります。

ドライバーは、次の方法で I/O キューの状態を変更できます:

I/O キューの現在の状態を取得するには、ドライバーは WdfIoQueueGetStateを呼び出すことができます。