Partager via


PSERVICE_CALLBACK_ROUTINE fonction de rappel (kbdmou.h)

Un pilote de fonction appelle le rappel de service de classe dans sa routine d’achèvement de la répartition ISR. Le rappel du service de classe transfère les données d’entrée de la mémoire tampon de données d’entrée d’un appareil vers la file d’attente de données de classe.

Syntaxe

PSERVICE_CALLBACK_ROUTINE PserviceCallbackRoutine;

void PserviceCallbackRoutine(
  [in]      PVOID NormalContext,
  [in]      PVOID SystemArgument1,
  [in]      PVOID SystemArgument2,
  [in, out] PVOID SystemArgument3
)
{...}

Paramètres

[in] NormalContext

Pointeur vers l’objet d’appareil de classe.

[in] SystemArgument1

Pointeur vers le premier paquet de données d’entrée du clavier dans la mémoire tampon de données d’entrée du périphérique de port.

[in] SystemArgument2

Pointeur vers le paquet de données d’entrée du clavier qui suit immédiatement le dernier paquet de données dans la mémoire tampon de données d’entrée de l’appareil de port.

[in, out] SystemArgument3

Pointeur vers le nombre de paquets de données d’entrée du clavier transférés par la routine.

Valeur de retour

None

Remarques

Rappel du service de classe clavier

Voici la définition de la routine de rappel du service de classe clavier.

Kbdclass utilise une requête IOCTL_INTERNAL_KEYBOARD_CONNECT pour connecter son rappel de service de classe à un clavier. Dans cet appel, le pilote définit son implémentation dans une structure CONNECT_DATA .


/*
DeviceObject [in] 
Pointer to the class device object.

InputDataStart [in] 
Pointer to the first keyboard input data packet in the input data buffer of the port device.

InputDataEnd [in] 
Pointer to the keyboard input data packet that immediately follows the last data packet in the input data buffer of the port device.

InputDataConsumed [in, out] 
Pointer to the number of keyboard input data packets that are transferred by the routine.

*/
VOID KeyboardClassServiceCallback(
  _In_    PDEVICE_OBJECT       DeviceObject,
  _In_    PKEYBOARD_INPUT_DATA InputDataStart,
  _In_    PKEYBOARD_INPUT_DATA InputDataEnd,
  _Inout_ PULONG               InputDataConsumed
);

KeyboardClassServiceCallback transfère les données d’entrée de la mémoire tampon d’entrée de l’appareil vers la file d’attente de données de classe. Cette routine est appelée par la routine d’achèvement de la répartition ISR du pilote de fonction.

KeyboardClassServiceCallback peut être complété par un rappel de service de filtre fourni par un pilote de filtre de clavier de niveau supérieur. Un rappel de service de filtre filtre les données du clavier qui sont transférées vers la file d’attente de données de classe. Par exemple, le rappel de service de filtre peut supprimer, transformer ou insérer des données. Kbfiltr, l’exemple de pilote de filtre dans la galerie de codes, inclut KbFilter_ServiceCallback, qui est un modèle pour un rappel de service de filtre clavier.

Rappel du service de classe de souris

Voici la routine MouseClassServiceCallback est la routine de rappel de service de classe fournie par Mouclass. Le pilote utilise une demande de IOCTL_INTERNAL_MOUSE_CONNECT pour connecter son rappel de service de classe à un périphérique de souris. Dans cet appel, le pilote définit son implémentation dans une structure CONNECT_DATA .


/*
DeviceObject [in] 
Pointer to the class device object.

InputDataStart [in] 
Pointer to the first mouse input data packet in the input buffer of the port device.

InputDataEnd [in] 
Pointer to the mouse input data packet that immediately follows the last data packet in the input data buffer of the port device.

InputDataConsumed [in, out] 
Pointer to the number of mouse input data packets that are transferred by the routine.

*/
VOID MouseClassServiceCallback(
  _In_    PDEVICE_OBJECT    DeviceObject,
  _In_    PMOUSE_INPUT_DATA InputDataStart,
  _In_    PMOUSE_INPUT_DATA InputDataEnd,
  _Inout_ PULONG            InputDataConsumed
);
);

MouseClassServiceCallback transfère les données d’entrée de la mémoire tampon d’entrée de l’appareil vers la file d’attente de données de classe. Cette routine est appelée par la routine d’achèvement de la répartition ISR du pilote de fonction.

MouseClassServiceCallback peut être complété par un rappel de service de filtre fourni par un pilote de filtre de souris de niveau supérieur. Un rappel de service de filtre peut filtrer les données de souris qui sont transférées vers la file d’attente de données de classe. Par exemple, le rappel de service de filtre peut supprimer, transformer ou insérer des données. Moufiltr, l’exemple de pilote de filtre dans le WDK, inclut MouFilter_ServiceCallback, qui est un modèle pour un rappel de service de filtre.

Configuration requise

Condition requise Valeur
Plateforme cible Desktop (Expérience utilisateur)
En-tête kbdmou.h
IRQL DISPATCH_LEVEL

Voir aussi

CONNECT_DATA

KEYBOARD_INPUT_DATA

MOUSE_INPUT_DATA