I/O 制御コードを含む IRP を安全に処理できるかどうかは、IOCTL コードの適切な定義と、ドライバーが IRP で受け取るパラメーターの慎重な調査次第です。 新しい IOCTL コードを定義するときは、次の規則を使用します。 常に、 0x800以上の FunctionCode 値を指定します。 必ず RequiredAccess 値を指定します。 呼び出し元に十分なアクセス権がない場合、I/O マネージャーは IOCTL を送信しません。 呼び出し元にカーネル メモリの非特定領域の読み書きを許可する IOCTL コードは定義しないでください。 ドライバー内で IOCTL コードを処理するときは、次の規則を使用してください。 ドライバーのディスパッチ ルーチンが受信した IOCTL コードをテストするときは、必ず 32 ビット値全体をテストする必要があります。 IoValidateD