IOCTL_INTERNAL_KEYBOARD_CONNECT IOCTL (kbdmou.h)

La solicitud de IOCTL_INTERNAL_KEYBOARD_CONNECT conecta el servicio Kbdclass al dispositivo de teclado. Kbdclass envía esta solicitud a la pila de dispositivos del teclado antes de abrir el dispositivo de teclado.

Después de que Kbfiltr recibió la solicitud de conexión del teclado, Kbfiltr filtra la solicitud de conexión de la siguiente manera:

  • Guarda una copia de la estructura CONNECT_DATA (Kbdclass) de Kbdclass que se pasa al controlador de filtro por Kbdclass.
  • Sustituye su propia información de conexión para la información de conexión del controlador de clase.
  • Envía la solicitud de IOCTL_INTERNAL_KEYBOARD_CONNECT a la pila del dispositivo.
Si la solicitud no se realiza correctamente, Kbfiltr completa la solicitud con un estado de error adecuado.

Kbfiltr proporciona una plantilla para una rutina de devolución de llamada de servicio de filtro que puede complementar el funcionamiento de KeyboardClassServiceCallback, la rutina de devolución de llamada del servicio de clase Kbdclass. La devolución de llamada del servicio de filtro puede filtrar los datos de entrada que se transfieren desde el búfer de entrada del dispositivo a la cola de datos de clase.

Para obtener más información sobre la conexión del servicio Kbdclass, consulte los temas siguientes:

Rutina de devolución de llamada del servicio kbdclass

Rutinas de devolución de llamada de Kbfiltr

Código principal

IRP_MJ_INTERNAL_DEVICE_CONTROL

Búfer de entrada

El miembro Parameters.DeviceIoControl.Type3InputBuffer apunta a una estructura de CONNECT_DATA asignada y establecida por Kbdclass.

Longitud del búfer de entrada

El miembro Parameters.DeviceIoControl.InputBufferLength se establece en un valor mayor o igual que el tamaño, en bytes, de una estructura CONNECT_DATA.

Búfer de salida

El miembro Parameters.DeviceIoControl.Type3InputBuffer apunta a una estructura de CONNECT_DATA establecida por Kbfiltr.

Longitud del búfer de salida

Tamaño de una estructura de CONNECT_DATA .

Bloque de estado

El miembro Information se establece en cero.

El miembro Status se establece en uno de los valores siguientes:

STATUS_INVALID_PARAMETER

Parameters.DeviceIoControl.InputBufferLength es menor que el tamaño, en bytes, de una estructura de CONNECT_DATA.

STATUS_SHARING_VIOLATION

Kbfiltr ya está conectado (el controlador de filtro solo admite una solicitud de conexión).

STATUS_SUCCESS

La solicitud se completó correctamente.

Requisitos

Requisito Valor
Header kbdmou.h (incluye Kbdmou.h)

Consulte también

CONNECT_DATA (Kbdclass)

IOCTL_INTERNAL_I8042_HOOK_KEYBOARD

KeyboardClassServiceCallback