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