IOCTL_INTERNAL_I8042_HOOK_KEYBOARD IOCTL (ntdd8042.h)
A solicitação IOCTL_INTERNAL_I8042_HOOK_KEYBOARD faz o seguinte:
- Adiciona uma rotina de retorno de chamada de inicialização à rotina de inicialização do teclado I8042prt
- Adiciona uma rotina de retorno de chamada ISR ao ISR do teclado I8042prt
Depois que o I8042prt recebe uma solicitação de IOCTL_INTERNAL_KEYBOARD_CONNECT , ele envia uma solicitação de IOCTL_INTERNAL_I8042_HOOK_KEYBOARD síncrona para a parte superior da pilha de dispositivos de teclado.
Depois que kbfiltr recebe a solicitação de teclado de gancho, Kbfiltr filtra a solicitação da seguinte maneira:
- Salva as informações de nível superior passadas para Kbfiltr, que inclui o contexto de um objeto de dispositivo de nível superior, um ponteiro para um retorno de chamada de inicialização e um ponteiro para um retorno de chamada isr
- Substitui as informações de nível superior por suas próprias
- Salva o contexto de I8042prt e ponteiros para retornos de chamada que o retorno de chamada isr Kbfiltr pode usar
Código principal
IRP_MJ_INTERNAL_DEVICE_CONTROL
Buffer de entrada
O Parameters.DeviceIoControl.Type3InputBuffer aponta para uma estrutura INTERNAL_I8042_HOOK_KEYBOARD. Essa estrutura inclui os seguintes membros:
Comprimento do buffer de entrada
O membro Parameters.DeviceIoControl.InputBufferLength é definido como um valor maior ou igual ao tamanho, em bytes, de uma estrutura INTERNAL_I8042_HOOK_KEYBOARD .
Buffer de saída
Nenhum
Comprimento do buffer de saída
Nenhum
Bloco de status
O membro Status é definido como um dos seguintes valores:
STATUS_INVALID_PARAMETER
Parameters.DeviceIoControl.InputBufferLength é menor que o tamanho, em bytes, de uma estrutura INTERNAL_I8042_HOOK_KEYBOARD.
STATUS_SUCCESS
A solicitação foi concluída com êxito.
Requisitos
Requisito | Valor |
---|---|
Cabeçalho | ntdd8042.h (include Ntdd8042.h) |