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 には、 KeyboardClassServiceCallback (Kbdclass クラス サービス コールバック ルーチン) の操作を補完できるフィルター サービス コールバック ルーチンのテンプレートが用意されています。 フィルター サービス コールバックでは、デバイス入力バッファーからクラス データ キューに転送される入力データをフィルター処理できます。
Kbdclass サービスの接続の詳細については、次のトピックを参照してください。
メジャー コード
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 を含む) |