在架構外部處理 WDM IRP
[僅適用于 KMDF]
當 I/O 管理員將 I/O 要求封包 (IRP) 傳遞至架構型驅動程式時,架構會攔截 IRP,然後執行下列其中一項:
處理 IRP。 例如,架構會處理包含 IRP_MJ_PNP 和 IRP_MJ_POWER 主要 I/O 函式代碼的 IRP。 處理這些 IRP 時,架構可能會藉由呼叫驅動程式的事件回呼函式來與驅動程式通訊。
建立 IRP 的架構要求物件,並將要求物件傳遞給其中一個驅動程式的 I/O 佇列,讓驅動程式可以接收它,通常是在要求處理常式中處理它。 架構會以這種方式處理讀取、寫入和裝置 I/O 控制要求。
如果您的驅動程式是篩選驅動程式) ,請將 IRP 傳遞至下一個較低的驅動程式 (,或者如果您的驅動程式不是篩選驅動程式) ,則以狀態值STATUS_INVALID_DEVICE_REQUEST (完成 IRP,因為 IRP 包含架構不支援的 I/O 函式程式碼。
有時候驅動程式必須處理架構不支援的 I/O 函式程式碼。
很少,驅動程式可能需要在架構處理 IRP 之前預先處理 IRP,或者驅動程式可能需要在架構和較低層級驅動程式完成處理之後處理 IRP。
在前置處理過程中,驅動程式可能需要將 IRP 轉送到特定的 I/O 佇列。
下列主題描述這些情況: