IRP 処理に関するその他のエラー

ドライバーが IRP を処理するときに発生するその他のエラーを次に示します。

損失 または 2 重完了 IRP

これらの問題は、 IoStartNextPacket などのI/O マネージャー ルーチンの呼び出しの消失と共に、エラー処理パスで頻繁に発生します。 このような問題は、ドライバー パスのクイック レビューで確認できます。

パブリック IOCTL パスとプライベート IOCTL パスの収束

一般的な規則として、ドライバーにはパブリック IOCTL とプライベート IOCTL (または FSCTL) の個別の実行パスが含まれている必要があります。 ドライバーは、制御コードを見て、IOCTL または FSCTL 要求がカーネル モードまたはユーザー モードで発生するかどうかを判断できません。 そのため、パブリック コードとプライベート コードの両方を同じ実行パスで処理する (または最小限の検証を実行してから同じルーチンを呼び出す) と、セキュリティ侵害に対するドライバーを開くことができます。 プライベート IOCTL または FSCTL が特権を持っている場合は、制御コードを知っている特権のないユーザーがアクセスできる可能性があります。 そのため、ドライバーがプライベート IOCTL または FSCTL 要求をサポートしている場合は、サポートする必要があるパブリック IOCTL または FSCTL とは別にこのような要求を処理することを確認します。