Compartilhar via


IOCTL_INTERNAL_KEYBOARD_CONNECT IOCTL (kbdmou.h)

A solicitação IOCTL_INTERNAL_KEYBOARD_CONNECT conecta o serviço Kbdclass ao dispositivo de teclado. O Kbdclass envia essa solicitação para baixo na pilha do dispositivo de teclado antes de abrir o dispositivo de teclado.

Depois que kbfiltr recebeu a solicitação de conexão de teclado, Kbfiltr filtra a solicitação de conexão da seguinte maneira:

  • Salva uma cópia da estrutura de CONNECT_DATA (Kbdclass) do Kbdclass que é passada para o driver de filtro por Kbdclass
  • Substitui suas próprias informações de conexão para as informações de conexão do driver de classe
  • Envia a solicitação IOCTL_INTERNAL_KEYBOARD_CONNECT para baixo na pilha do dispositivo
Se a solicitação não for bem-sucedida, kbfiltr concluirá a solicitação com um status de erro apropriado.

O Kbfiltr fornece um modelo para uma rotina de retorno de chamada de serviço de filtro que pode complementar a operação de KeyboardClassServiceCallback, a rotina de retorno de chamada do serviço de classe Kbdclass. O retorno de chamada do serviço de filtro pode filtrar os dados de entrada transferidos do buffer de entrada do dispositivo para a fila de dados de classe.

Para obter mais informações sobre a conexão do serviço Kbdclass, consulte os seguintes tópicos:

rotina de retorno de chamada do serviço de classe Kbdclass

rotinas de retorno de chamada Kbfiltr

Código principal

IRP_MJ_INTERNAL_DEVICE_CONTROL

Buffer de entrada

O membro Parameters.DeviceIoControl.Type3InputBuffer aponta para uma estrutura CONNECT_DATA alocada e definida por Kbdclass.

Comprimento do buffer de entrada

O membro Parameters.DeviceIoControl.InputBufferLength é definido como um valor maior ou igual ao tamanho, em bytes, de uma estrutura CONNECT_DATA.

Buffer de saída

O membro Parameters.DeviceIoControl.Type3InputBuffer aponta para uma estrutura de CONNECT_DATA definida pelo Kbfiltr.

Comprimento do buffer de saída

O tamanho de uma estrutura CONNECT_DATA.

Bloco de status

O membro de Informações do está definido como zero.

O membro status é definido como um dos seguintes valores:

STATUS_INVALID_PARAMETER

Parameters.DeviceIoControl.InputBufferLength é menor que o tamanho, em bytes, de uma estrutura CONNECT_DATA.

STATUS_SHARING_VIOLATION

Kbfiltr já está conectado (o driver de filtro dá suporte a apenas uma solicitação de conexão).

STATUS_SUCCESS

A solicitação foi concluída com êxito.

Requisitos

Requisito Valor
cabeçalho kbdmou.h (inclua Kbdmou.h)

Consulte também

CONNECT_DATA (Kbdclass)

IOCTL_INTERNAL_I8042_HOOK_KEYBOARD

KeyboardClassServiceCallback