共用方式為


IOCTL_INTERNAL_KEYBOARD_CONNECT IOCTL (kbdmou.h)

IOCTL_INTERNAL_KEYBOARD_CONNECT要求會將 Kbdclass 服務連線到鍵盤裝置。 Kbdclass 會在開啟鍵盤裝置之前,先將此要求傳送到鍵盤裝置堆疊。

在 Kbfiltr 收到鍵盤連線要求之後,Kbfiltr 會以下列方式篩選連線要求:

  • 儲存 Kbdclass CONNECT_DATA (Kbdclass) 結構複本,該結構會由 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 結構的大小。

狀態區塊

資訊 成員設定為零。

Status 成員會設定為下列其中一個值:

STATUS_INVALID_PARAMETER

Parameters.DeviceIoControl.InputBufferLength 小於CONNECT_DATA結構的大小,以位元組為單位。

STATUS_SHARING_VIOLATION

Kbfiltr 已連線(篩選驅動程式僅支援一個連線要求)。

STATUS_SUCCESS

要求成功完成。

要求

要求 價值
標頭 kbdmou.h (include Kbdmou.h)

另請參閱

CONNECT_DATA (Kbdclass)

IOCTL_INTERNAL_I8042_HOOK_KEYBOARD

KeyboardClassServiceCallback