處理架構不支援的 IRP

[僅適用於 KMDF]

此架構不支援具有下列主要 IRP 代碼的 I/O 要求:

如果架構收到包含下列其中一個 I/O 函式代碼的 IRP,架構就不會處理 IRP。 如果您的驅動程式是篩選驅動程式,架構會將 IRP 傳遞至驅動程式堆疊中的下一個較低驅動程式。 如果您的驅動程式不是篩選驅動程式,架構會呼叫 IoCompleteRequest ,以STATUS_INVALID_DEVICE_REQUEST狀態值完成IRP。

如果您的驅動程式必須處理包含上述任何 I/O 函式代碼的 IRP,驅動程式必須呼叫 WdfDeviceInitAssignWdmIrpPreprocessCallback 來註冊 I/O 函式程式代碼的 EvtDeviceWdmIrpPreprocess 事件回呼函式。

當驅動程式收到包含驅動程式已註冊 EvtDeviceWdmIrpPreprocess 回呼函式的 I/O 函式程式代碼的 IRP 時,架構會將 IRP 傳遞至回呼函式。 然後,回呼函式必須遵循 WDM 規則來處理 IRP,以處理 IRP。 驅動程式必須呼叫 IoCompleteRequest 來完成 IRP,或者必須呼叫 IoCallDriver ,才能將 IRP 傳遞至下一個較低的驅動程式。

如需處理架構不支援之 IRP 的 EvtDeviceWdmIrpPreprocess 回呼函式範例,請參閱 序列 範例驅動程式。