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 佇列中的所有 I/O 要求。
架構可以在驅動程式呼叫 WdfIoQueueCreate之後,將新的 I/O 佇列設定為就緒狀態。 不過,只有在裝置處於其運作 (D0) 狀態時, 電源管理的 I/O 佇列 才會進入就緒狀態。
您的驅動程式可以變更 I/O 佇列的狀態,方法是:
呼叫 WdfIoQueueStop 或 WdfIoQueueStopSynchronously 以將佇列置於其停止狀態。
呼叫 WdfIoQueueDrain 或 WdfIoQueueDrainSynchronously 以將佇列置於已清空的狀態。
呼叫 WdfIoQueuePurge 或 WdfIoQueuePurgeSynchronously 以將佇列置於其清除狀態。
呼叫 WdfIoQueueStart 以將佇列傳回其就緒狀態。
若要取得 I/O 佇列的目前狀態,您的驅動程式可以呼叫 WdfIoQueueGetState。