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) da 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 erro apropriado status.

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 do 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 CONNECT_DATA definida por Kbfiltr.

Comprimento do buffer de saída

O tamanho de uma estrutura CONNECT_DATA .

Bloco de status

O membro Informações é 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

O 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)

Confira também

CONNECT_DATA (Kbdclass)

IOCTL_INTERNAL_I8042_HOOK_KEYBOARD

KeyboardClassServiceCallback