次の方法で共有


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

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

失われた IRP または二重に完了された IRP

これらの問題は、 IoStartNextPacket などの I/O マネージャー ルーチンの呼び出しが見つからないと共に、エラー処理パスでよく発生します。 ドライバー パスのクイック レビューでは、このような問題を見つけることができます。

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

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