Partager via


IOCTL_GPIO_CONTROLLER_SPECIFIC_FUNCTION IOCTL (gpio.h)

Le code de contrôle d’E /S IOCTL_GPIO_CONTROLLER_SPECIFIC_FUNCTION permet à un client du contrôleur d’E/S à usage général (GPIO) de demander une opération de contrôle d’appareil spécifique au contrôleur. En règle générale, les clients d’un contrôleur GPIO sont des pilotes pour les périphériques qui se connectent à des broches GPIO.

Code principal

IRP_MJ_DEVICE_CONTROL

Mémoire tampon d'entrée

Les exigences de mémoire tampon d’entrée pour ce code de contrôle d’E/S sont définies par le développeur du pilote du contrôleur GPIO. Pour plus d’informations sur les mémoires tampons d’entrée pour METHOD_BUFFERED LES IRP, consultez Descriptions des mémoires tampons pour les codes de contrôle d’E/S.

Mémoire tampon de sortie

Les exigences de mémoire tampon de sortie pour ce code de contrôle d’E/S sont définies par le développeur du pilote de contrôleur GPIO. Pour plus d’informations sur les mémoires tampons de sortie pour METHOD_BUFFERED LES IRP, consultez Descriptions des mémoires tampons pour les codes de contrôle d’E/S.

Bloc d’état

Si l’opération réussit, le pilote du contrôleur GPIO définit le membre Status sur STATUS_SUCCESS et définit le membre Information sur le nombre total d’octets écrits dans la mémoire tampon de sortie. Si une opération ne produit pas de données de sortie ou si le pointeur de données de sortie a la valeur NULL, le membre Information est défini sur zéro.

Si la mémoire tampon d’entrée n’est pas assez grande pour contenir les paramètres d’entrée ou si la mémoire tampon de sortie n’est pas assez grande pour contenir les paramètres de sortie pour l’opération spécifique au contrôleur, le membre Status est défini sur STATUS_BUFFER_TOO_SMALL.

Si cette demande échoue, le membre Status est défini sur un code d’erreur et le membre Information est défini sur zéro.

Si le pilote du contrôleur GPIO ne prend pas en charge les opérations spécifiques au contrôleur, le membre Status est défini sur STATUS_NOT_IMPLEMENTED. Si le pilote du contrôleur GPIO prend en charge les opérations spécifiques au contrôleur, mais ne reconnaît pas le contenu de la mémoire tampon d’entrée comme valide, le membre Status est défini sur STATUS_NOT_SUPPORTED.

Remarques

Les contrôleurs GPIO classiques ne prennent pas en charge les requêtes IOCTL_GPIO_CONTROLLER_SPECIFIC_FUNCTION . Toutefois, un développeur de pilotes de contrôleur a la possibilité de définir une ou plusieurs opérations spécifiques au contrôleur pour répondre aux exigences ou fonctionnalités particulières d’un contrôleur GPIO sur une plateforme matérielle particulière.

Seul un pilote de périphérique qui connaît les opérations spécifiques au contrôleur prises en charge par un type particulier de matériel de contrôleur GPIO peut utiliser IOCTL_GPIO_CONTROLLER_SPECIFIC_FUNCTION demandes pour effectuer ces opérations. Un pilote de périphérique qui utilise ces demandes pour effectuer des opérations spécifiques au contrôleur sur une plateforme matérielle risque de perdre la compatibilité avec d’autres plateformes qui ne prennent pas en charge ces opérations.

La signification du code de contrôle IOCTL_GPIO_CONTROLLER_SPECIFIC_FUNCTION est définie par le développeur du pilote de contrôleur GPIO. En règle générale, le pilote de contrôleur utilise ce code de contrôle pour permettre aux pilotes de périphériques d’effectuer des opérations spécifiques au matériel sur les broches GPIO auxquelles leurs appareils sont connectés.

Par exemple, la mémoire tampon d’entrée de la requête IOCTL_GPIO_CONTROLLER_SPECIFIC_FUNCTION peut contenir un code de commande défini par le contrôleur et un certain nombre de paramètres d’entrée. Le pilote du contrôleur GPIO peut ou non écrire des données dans la mémoire tampon de sortie, en fonction du code de commande.

Le pilote de périphérique envoie cette demande de contrôle d’E/S à l’objet de fichier pour l’appareil GPIO cible. L’objet file est une structure FILE_OBJECT qui représente une connexion ouverte à un ensemble de broches sur le contrôleur GPIO. Les pilotes KMDF (Kernel-Mode Driver Framework) utilisent un handle WDFIOTARGET pour faire référence à cet objet de fichier.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Pris en charge à partir de Windows 8.
En-tête gpio.h

Voir aussi

FILE_OBJECT