以下是驅動程式在處理 IRP 時有時會發生的其他錯誤。
遺失或雙重完成的 IRP
這些問題,以及遺漏對 I/O 管理員常式 ( 例如 IoStartNextPacket) 的呼叫,通常會發生在錯誤處理路徑中。 快速查看驅動程序路徑可以發現此類問題。
融合公用 IOCTL 和私人 IOCTL 路徑
一般而言,驅動程式應該包含公用和私人 IOCTL (或 FSCTL) 的個別執行路徑。 驅動程式無法查看控制程式代碼,以判斷 IOCTL 或 FSCTL 要求是否源自核心模式或使用者模式。 因此,在相同的執行路徑中處理公用和私人程式代碼 (或執行最少驗證,然後呼叫相同的常式) 可能會讓驅動程式遭到安全性缺口。 如果私人 IOCTL 或 FSCTL 具有特殊許可權,則知道控制程式代碼的非特殊許可權使用者可能能夠取得它的存取權。 因此,如果您的驅動程式支援私人 IOCTL 或 FSCTL 要求,請確定它會與也必須支援的任何公用 IOCTL 或 FSCTL 分開處理這類要求。