共用方式為


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結構的大小。

狀態區塊

Information 成員會設定為零。

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