フレームワークは、I/O キューに対して次の状態を定義します。
遊休
I/O キューに I/O 要求が含まれていないため、ドライバーは I/O キューから受信した要求を処理していません。
準備完了
I/O キューはフレームワークから I/O 要求を受信でき、ドライバーに I/O 要求を配信できます。
停止
I/O キューはフレームワークから I/O 要求を受信できますが、ドライバーに I/O 要求を配信することはできません。また、ドライバーは I/O キューから受信した要求を処理していません。
排出済み
I/O キューが空で、フレームワークから新しい I/O 要求を受信できず、I/O キューに含まれるすべての I/O 要求がドライバーに配信されています。
削除
I/O キューが空で、フレームワークから新しい I/O 要求を受信できず、I/O キューに含まれるすべての I/O 要求が取り消されました。
フレームワークは、ドライバーが WdfIoQueueCreate を呼び出した後、新しい I/O キューを準備完了状態に設定できます。 ただし、 電源管理 I/O キュー は、デバイスが動作 (D0) 状態の場合にのみ、準備完了状態になります。
ドライバーは、次の方法で I/O キューの状態を変更できます。
WdfIoQueueStop または WdfIoQueueStopSynchronously を呼び出して、キューを停止状態にします。
WdfIoQueueDrain または WdfIoQueueDrainSynchronously を呼び出して、キューをドレイン状態にします。
WdfIoQueuePurge または WdfIoQueuePurgeSynchronously を呼び出して、キューを消去された状態にします。
キューを準備完了状態に戻すために WdfIoQueueStart を呼び出します。
I/O キューの現在の状態を取得するには、ドライバーは WdfIoQueueGetState を呼び出すことができます。