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 aux 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 de contrôleur GPIO. Pour plus d’informations sur les mémoires tampons d’entrée pour METHOD_BUFFERED irPs, 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 irPs, 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 membre 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 suffisamment grande pour contenir les paramètres d’entrée ou si la mémoire tampon de sortie n’est pas suffisamment grande pour contenir les paramètres de sortie de l’opération spécifique au contrôleur, le membre Status est défini sur STATUS_BUFFER_TOO_SMALL.

Si cette requête é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 particulières ou aux fonctionnalités d’un contrôleur GPIO sur une plateforme matérielle particulière.

Seul un pilote de périphérique prenant en charge 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 du contrôleur utilise ce code de contrôle pour permettre aux pilotes de périphérique 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 à la demande de 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 fichier 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.

Exigences

Exigence Valeur
client minimum pris en charge Prise en charge à partir de Windows 8.
d’en-tête gpio.h

Voir aussi

FILE_OBJECT