Partager via


GPIO_CLIENT_QUERY_CONTROLLER_BASIC_INFORMATION fonction de rappel (gpioclx.h)

La fonction de rappel d’événement CLIENT_QueryControllerBasicInformation récupère les attributs matériels du contrôleur d’E/S à usage général (GPIO).

Syntaxe

GPIO_CLIENT_QUERY_CONTROLLER_BASIC_INFORMATION GpioClientQueryControllerBasicInformation;

NTSTATUS GpioClientQueryControllerBasicInformation(
  [in]  PVOID Context,
  [out] PCLIENT_CONTROLLER_BASIC_INFORMATION Information
)
{...}

Paramètres

[in] Context

Pointeur vers le contexte de périphérique du pilote de contrôleur GPIO.

[out] Information

Pointeur vers une structure CLIENT_CONTROLLER_BASIC_INFORMATION allouée par l’appelant. La fonction CLIENT_QueryControllerBasicInformation écrit les attributs matériels du contrôleur GPIO et les informations de configuration dans cette structure.

Valeur de retour

La fonction CLIENT_QueryControllerBasicInformation retourne STATUS_SUCCESS si l’appel réussit. Sinon, elle retourne un code d’erreur approprié.

Remarques

Cette fonction de rappel est implémentée par le pilote du contrôleur GPIO. L’extension de framework GPIO (GpioClx) appelle cette fonction.

La fonction de rappel CLIENT_QueryControllerBasicInformation doit définir tous les membres de la structure CLIENT_CONTROLLER_BASIC_INFORMATION, y compris les de version et les membres Size. GpioClx n’initialise pas le membre Size avant d’appeler cette fonction, mais la mémoire tampon utilisée par le Informations points de paramètre est garantie d’être suffisamment volumineuse pour contenir la version de cette structure utilisée par le pilote du contrôleur GPIO.

Pour inscrire la fonction de rappel CLIENT_QueryControllerBasicInformation de votre pilote, appelez la méthode GPIO_CLX_RegisterClient. Cette méthode accepte, en tant que paramètre d’entrée, un pointeur vers une structure GPIO_CLIENT_REGISTRATION_PACKET qui contient un pointeur de fonction CLIENT_QueryControllerBasicInformation.

Exemples

Pour définir une fonction de rappel CLIENT_QueryControllerBasicInformation, vous devez d’abord fournir une déclaration de fonction qui identifie le type de fonction de rappel que vous définissez. Windows fournit un ensemble de types de fonctions de rappel pour les pilotes. La déclaration d’une fonction à l’aide des types de fonctions de rappel permet d'Analyse du code pour les pilotes, static Driver Verifier (SDV) et d’autres outils de vérification recherchent des erreurs, et il est nécessaire d’écrire des pilotes pour le système d’exploitation Windows.

Par exemple, pour définir une fonction de rappel CLIENT_QueryControllerBasicInformation nommée MyEvtGpioQueryControllerBasicInformation, utilisez le type de fonction GPIO_CLIENT_QUERY_CONTROLLER_BASIC_INFORMATION, comme illustré dans cet exemple de code :

GPIO_CLIENT_QUERY_CONTROLLER_BASIC_INFORMATION MyEvtGpioQueryDeviceInformation;

Ensuite, implémentez votre fonction de rappel comme suit :

_Use_decl_annotations_
NTSTATUS
  MyEvtGpioQueryDeviceInformation(
    PVOID Context,
    PCLIENT_CONTROLLER_BASIC_INFORMATION Information
    )
{ ... }

Le type de fonction GPIO_CLIENT_QUERY_CONTROLLER_BASIC_INFORMATION est défini dans le fichier d’en-tête Gpioclx.h. Pour identifier plus précisément les erreurs lorsque vous exécutez les outils d’analyse du code, veillez à ajouter l’annotation Use_decl_annotations à votre définition de fonction. L’annotation Use_decl_annotations garantit que les annotations appliquées au type de fonction GPIO_CLIENT_QUERY_CONTROLLER_BASIC_INFORMATION dans le fichier d’en-tête sont utilisées. Pour plus d’informations sur la configuration requise pour les déclarations de fonction, consultez déclaration de fonctions à l’aide de types de rôles de fonction pour les pilotes KMDF. Pour plus d’informations sur Use_decl_annotations, consultez annoter le comportement de la fonction.

Exigences

Exigence Valeur
client minimum pris en charge Prise en charge à partir de Windows 8.
plateforme cible Bureau
d’en-tête gpioclx.h
IRQL Appelé à PASSIVE_LEVEL.

Voir aussi

CLIENT_CONTROLLER_BASIC_INFORMATION

GPIO_CLIENT_REGISTRATION_PACKET

GPIO_CLX_RegisterClient