次の方法で共有


IOCTL_INTERNAL_I8042_HOOK_KEYBOARD IOCTL (ntdd8042.h)

IOCTL_INTERNAL_I8042_HOOK_KEYBOARD要求では、次の処理が行われます。

  • I8042prt キーボード初期化ルーチンに初期化コールバック ルーチンを追加します
  • I8042prt キーボード ISR に ISR コールバック ルーチンを追加します
初期化コールバックと ISR コールバックは省略可能であり、PS/2 スタイルのキーボード デバイス用の上位レベルのフィルター ドライバーによって提供されます。

I8042prt は 、IOCTL_INTERNAL_KEYBOARD_CONNECT 要求を受信すると、同期IOCTL_INTERNAL_I8042_HOOK_KEYBOARD要求をキーボード デバイス スタックの先頭に送信します。

Kbfiltr がフック キーボード要求を受け取った後、Kbfiltr は次のように要求をフィルター処理します。

  • Kbfiltr に渡される上位レベルの情報を保存します。これには、上位レベルのデバイス オブジェクトのコンテキスト、初期化コールバックへのポインター、ISR コールバックへのポインターが含まれます。
  • 上位レベルの情報を独自の情報に置き換えます。
  • I8042prt のコンテキストと、Kbfiltr ISR コールバックで使用できるコールバックへのポインターを保存します
この要求とコールバックの詳細については、次のトピックを参照してください。

I8042prt コールバック ルーチン

Kbfiltr コールバック ルーチン

メジャー コード

IRP_MJ_INTERNAL_DEVICE_CONTROL

[入力バッファー]

Parameters.DeviceIoControl.Type3InputBuffer は、INTERNAL_I8042_HOOK_KEYBOARD構造体を指します。 この構造体には、次のメンバーが含まれます。

入力バッファーの長さ

Parameters.DeviceIoControl.InputBufferLength メンバーは、INTERNAL_I8042_HOOK_KEYBOARD構造体のサイズ (バイト単位) 以上の値に設定されます。

出力バッファー

なし

出力バッファーの長さ

なし

ステータス ブロック

Status メンバーは、次のいずれかの値に設定されます。

STATUS_INVALID_PARAMETER

Parameters.DeviceIoControl.InputBufferLength は、INTERNAL_I8042_HOOK_KEYBOARD構造体のサイズ (バイト単位) 未満です。

STATUS_SUCCESS

要求が正常に完了しました。

要件

要件
Header ntdd8042.h (Ntddd8042.h を含む)

こちらもご覧ください

INTERNAL_I8042_HOOK_KEYBOARD

IOCTL_INTERNAL_KEYBOARD_CONNECT