要求處理常式

如果您的驅動程式已指定 i/o 佇列的連續或平行 分派方法 ,則此架構會在每次準備好將其中一個佇列要求傳遞至驅動程式時,呼叫驅動程式所提供的回呼函數。

針對每個 i/o 佇列,驅動程式可以提供下列一或多個回呼函式,這些函式稱為 要求處理常式

EvtIoRead
當佇列中有讀取要求時,架構會呼叫 i/o 佇列的 EvtIoRead 回呼函數。

EvtIoWrite
當佇列中有寫入要求時,架構會呼叫 i/o 佇列的 EvtIoWrite 回呼函數。

EvtIoDeviceControl
當佇列中有可用的裝置 i/o 控制項要求時,架構會呼叫 i/o 佇列的 EvtIoDeviceControl 回呼函式。

EvtIoInternalDeviceControl
當佇列中有內部裝置 i/o 控制項要求時,架構會呼叫 i/o 佇列的 EvtIoInternalDeviceControl 回呼函式。

EvtIoDefault
當有任何可用的要求時,架構會呼叫 i/o 佇列的 EvtIoDefault 回呼函式,如果驅動程式未提供相關聯的要求類型特定回呼函數。

驅動程式會在呼叫 WdfIoQueueCreate 來建立裝置的 i/o 佇列時,註冊回呼函數。

這些回呼函式每一個都會收到兩個輸入引數:架構傳遞給驅動程式的 i/o 要求控制碼,以及持有要求的 i/o 佇列控制碼。 回呼函數可以藉由呼叫 WdfIoQueueGetDevice來判斷目標裝置。

架構會在任意執行緒內容中呼叫您的驅動程式要求處理常式。 在任意執行緒內容中執行時,驅動程式不應等候一段很長的時間。 在某些情況下,您的驅動程式可能會使用核心發送器物件作為同步處理機制。 如需您的驅動程式何時可以等候發送器物件的相關資訊,以及無法完成的動作,請參閱 核心發送器物件簡介