要求處理常式
如果您的驅動程式已指定 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來判斷目標裝置。
架構會在任意執行緒內容中呼叫驅動程式的要求處理常式。 在任意執行緒內容中執行時,驅動程式不應該等候較長的時間。 在某些情況下,驅動程式可能會使用核心發送器物件作為同步處理機制。 如需驅動程式何時可以等候發送器物件,以及當無法執行什麼動作的相關資訊,請參閱 核心發送器物件簡介。