处理 IRP 时出现其他错误
以下是驱动程序在处理 IRP 时有时会发生的其他错误。
丢失或双完成的 IRP
这些问题以及缺少对 IoStartNextPacket 等 I/O 管理器例程的调用,通常发生在错误处理路径中。 快速查看驱动程序路径可以找到此类问题。
聚合公共 IOCTL 和专用 IOCTL 路径
一般规则是,驱动程序应包含公共和专用 IOCTL 的单独执行路径, (或 FSCTL) 。 驱动程序无法通过查看控制代码来确定 IOCTL 或 FSCTL 请求是源自内核模式还是用户模式。 因此,处理同一执行路径中的公共和专用代码 (或执行最小验证,然后调用相同的例程) 可能会使驱动程序出现安全漏洞。 如果专用 IOCTL 或 FSCTL 具有特权,则知道控制代码的无特权用户可能能够访问它。 因此,如果驱动程序支持专用 IOCTL 或 FSCTL 请求,请确保它独立于它必须支持的任何公共 IOCTL 或 FSCL 来处理此类请求。
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈