IOCTL_INTERNAL_KEYBOARD_CONNECT IOCTL (kbdmou.h)

IOCTL_INTERNAL_KEYBOARD_CONNECT要求は、Kbdclass サービスをキーボード デバイスに接続します。 Kbdclass は、キーボード デバイスを開く前に、この要求をキーボード デバイス スタックに送信します。

Kbfiltr がキーボード接続要求を受信した後、Kbfiltr は次のように接続要求をフィルター処理します。

  • Kbdclass によってフィルター ドライバーに渡される Kbdclass のCONNECT_DATA (Kbdclass) 構造体のコピーを保存します
  • クラス ドライバーの接続情報の独自の接続情報を置き換える
  • IOCTL_INTERNAL_KEYBOARD_CONNECT要求をデバイス スタックに送信します
要求が成功しなかった場合、Kbfiltr は適切なエラー状態で要求を完了します。

Kbfiltr には、 KeyboardClassServiceCallback (Kbdclass クラス サービス コールバック ルーチン) の操作を補完できるフィルター サービス コールバック ルーチンのテンプレートが用意されています。 フィルター サービス コールバックでは、デバイス入力バッファーからクラス データ キューに転送される入力データをフィルター処理できます。

Kbdclass サービスの接続の詳細については、次のトピックを参照してください。

Kbdclass クラス サービス コールバック ルーチン

Kbfiltr コールバック ルーチン

メジャー コード

IRP_MJ_INTERNAL_DEVICE_CONTROL

[入力バッファー]

Parameters.DeviceIoControl.Type3InputBuffer メンバーは、Kbdclass によって割り当てられ、設定されるCONNECT_DATA構造体を指します。

入力バッファーの長さ

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

出力バッファー

Parameters.DeviceIoControl.Type3InputBuffer メンバーは、Kbfiltr によって設定されたCONNECT_DATA構造体を指します。

出力バッファーの長さ

CONNECT_DATA構造体のサイズ。

ステータス ブロック

Information メンバーは 0 に設定されます。

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

STATUS_INVALID_PARAMETER

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

STATUS_SHARING_VIOLATION

Kbfiltr は既に接続されています (フィルター ドライバーは 1 つの接続要求のみをサポートします)。

STATUS_SUCCESS

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

要件

要件
Header kbdmou.h (Kbdmou.h を含む)

こちらもご覧ください

CONNECT_DATA (Kbdclass)

IOCTL_INTERNAL_I8042_HOOK_KEYBOARD

KeyboardClassServiceCallback