IOCTL_INTERNAL_KEYBOARD_CONNECT IOCTL (kbdmou.h)
La demande IOCTL_INTERNAL_KEYBOARD_CONNECT connecte le service Kbdclass au clavier. Kbdclass envoie cette requête vers le bas de la pile du périphérique clavier avant d’ouvrir le périphérique clavier.
Une fois que Kbfiltr a reçu la demande de connexion au clavier, Kbfiltr filtre la demande de connexion de la manière suivante :
- Enregistre une copie de la structure CONNECT_DATA de Kbdclass (Kbdclass) qui est passée au pilote de filtre par Kbdclass
- Remplace ses propres informations de connexion par les informations de connexion du pilote de classe
- Envoie la requête IOCTL_INTERNAL_KEYBOARD_CONNECT vers le bas de la pile d’appareils
Kbfiltr fournit un modèle pour une routine de rappel de service de filtre qui peut compléter l’opération de KeyboardClassServiceCallback, la routine de rappel de service de classe Kbdclass. Le rappel du service de filtrage peut filtrer les données d’entrée transférées de la mémoire tampon d’entrée de l’appareil vers la file d’attente de données de classe.
Pour plus d’informations sur la connexion du service Kbdclass, consultez les rubriques suivantes :
Code principal
IRP_MJ_INTERNAL_DEVICE_CONTROL
Mémoire tampon d'entrée
Le membre Parameters.DeviceIoControl.Type3InputBuffer pointe vers une structure CONNECT_DATA qui est allouée et définie par Kbdclass.
Longueur de la mémoire tampon d’entrée
Le membre Parameters.DeviceIoControl.InputBufferLength est défini sur une valeur supérieure ou égale à la taille, en octets, d’une structure CONNECT_DATA.
Mémoire tampon de sortie
Le membre Parameters.DeviceIoControl.Type3InputBuffer pointe vers une structure CONNECT_DATA définie par Kbfiltr.
Longueur de la mémoire tampon de sortie
Taille d’une structure CONNECT_DATA .
Bloc d’état
Le membre Information est défini sur zéro.
Le membre Status est défini sur l’une des valeurs suivantes :
STATUS_INVALID_PARAMETER
Parameters.DeviceIoControl.InputBufferLength est inférieur à la taille, en octets, d’une structure CONNECT_DATA.
STATUS_SHARING_VIOLATION
Kbfiltr est déjà connecté (le pilote de filtre ne prend en charge qu’une seule demande de connexion).
STATUS_SUCCESS
La demande s’est terminée avec succès.
Configuration requise
Condition requise | Valeur |
---|---|
En-tête | kbdmou.h (inclure Kbdmou.h) |