Partager via


GPIO_CLIENT_QUERY_CONTROLLER_BASIC_INFORMATION fonction de rappel (gpioclx.h)

La fonction de rappel d’événements 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 du contrôleur GPIO.

[out] Information

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

Valeur retournée

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

Remarques

Cette fonction de rappel est implémentée par le pilote du contrôleur GPIO. L’extension d’infrastructure 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 membres Version et Taille . GpioClx n’initialise pas le membre Size avant d’appeler cette fonction, mais la mémoire tampon vers laquelle pointe le paramètre Information est garantie d’être suffisamment grande pour contenir la version de cette structure utilisée par le pilote de 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 fonction de rappel aide l’analyse du code pour les pilotes, le vérificateur de pilotes statique (SDV) et d’autres outils de vérification à la recherche d’erreurs. Il s’agit d’une exigence pour l’écriture de 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 indiqué 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 lors de l’exécution des 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 Annotating Function Behavior.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Pris en charge à partir de Windows 8.
Plateforme cible Desktop (Expérience utilisateur)
En-tête gpioclx.h
IRQL Appelé à PASSIVE_LEVEL.

Voir aussi

CLIENT_CONTROLLER_BASIC_INFORMATION

GPIO_CLIENT_REGISTRATION_PACKET

GPIO_CLX_RegisterClient