Partager via


Fonctionnalités des pilotes de contrôleur série SerCx2-Based

SerCx2 est une extension du Kernel-Mode Driver Framework (KMDF) qui dispose de fonctionnalités spéciales pour prendre en charge les pilotes de contrôleur série. Pour plus d’informations sur KMDF, consultez Utilisation de WDF pour développer un pilote de contrôleur série SerCx2 est un pilote KMDF qui utilise les méthodes et les rappels dans KMDF pour effectuer des opérations de pilote génériques, et qui communique avec SerCx2 pour effectuer des opérations spécifiques aux pilotes de contrôleur série.

En règle générale, les contrôleurs série sont compatibles au niveau matériel avec 16550 appareils UART (Universal Asynchrone Receiver/Transmetteur). Les UART ont été utilisés depuis les premiers jours de l’informatique personnelle pour contrôler les ports série situés sur les cas des PC de bureau. Plus récemment, les contrôleurs série sont contenus dans les circuits intégrés Système sur une puce (SoC) pour fournir une communication à faible nombre de broches avec d’autres circuits intégrés. Dans une plateforme matérielle basée sur SoC, le « port série » auquel un client envoie des demandes d’E/S est simplement un ensemble de broches d’interface série sur la puce SoC. Pour plus d’informations, consultez Vue d’ensemble des pilotes de contrôleur série.

Microsoft peut fournir le pilote de contrôleur série pour une famille de contrôleurs série qui ont des fonctionnalités matérielles similaires. Ou bien, le fournisseur de matériel d’un contrôleur série doté de fonctionnalités spéciales peut fournir un pilote de contrôleur série personnalisé pour prendre en charge ces fonctionnalités.

Un pilote de contrôleur série communique avec SerCx2 via une interface de pilote de périphérique (DDI). Le DDI SerCx2 comprend deux parties :

  • Ensemble de méthodes de prise en charge des pilotes implémentées par SerCx2 et appelées par le pilote de contrôleur série.
  • Ensemble de fonctions de rappel d’événements implémentées par le pilote de contrôleur série et appelées par SerCx2.

Pour obtenir des descriptions détaillées des méthodes et des rappels dans le DDI SerCx2, consultez La version 2 De référence sur l’extension serial framework (SerCx2) dans les rubriques d’en-tête sercx.h .

Bien qu’un fournisseur de matériel ait la possibilité d’écrire un pilote de contrôleur série autonome, un effort important est nécessaire pour ce faire. Par comparaison, le développement d’un pilote de contrôleur série qui utilise SerCx2 est plus facile et aboutit généralement à un pilote beaucoup plus petit et plus fiable.

SerCx2 gère les tâches suivantes pour le compte du pilote de contrôleur :

  • Opérations de lecture et d’écriture
  • Détection du délai d’expiration des E/S série
  • Événements matériels
  • Transferts DMA système (si les transactions DMA système sont prises en charge)
  • Transitions vers et depuis les états d’appareil à faible consommation d’énergie
  • Annulations de demandes d’E/S (sauf pendant les transactions d’E/S personnalisées)

Pour gérer les opérations de lecture et d’écriture, SerCx2 transforme IRP_MJ_READ et IRP_MJ_WRITE demandes des clients en transactions d’E/S relativement simples que le pilote de contrôleur série doit traiter. Pour plus d’informations, consultez Transactions d’E/S SerCx2.

SerCx2 est inclus dans Windows en tant que composant nommé Sercx2.sys. Le pilote de contrôleur série est lié statiquement à la bibliothèque SerCx2, Sercxstubs.lib (version 2.0) et, au moment de l’exécution, communique avec Sercx2.sys. Le DDI SerCx2 est défini dans le fichier d’en-tête 2.0\Sercx.h. Sercxstubs.lib et Sercx.h sont disponibles dans le Kit de pilotes Windows pour Windows 8.1.