Modification de la Paramètres des ressources de communication

Lorsque la fonction CreateFile ouvre un handle à une ressource de communication série, le système initialise et configure la ressource en fonction des valeurs configurées pour la dernière fois que la ressource a été ouverte. La conservation des paramètres précédents permet à l’utilisateur de conserver les paramètres spécifiés via une commande en mode lorsque l’appareil est rouvert. Les valeurs héritées de l’opération d’ouverture précédente incluent les paramètres de configuration du bloc de contrôle d’appareil (structure DCB ) et les valeurs de délai d’attente utilisées dans les opérations d’E/S. Si l’appareil n’a jamais été ouvert, il est configuré avec les valeurs par défaut du système.

Pour déterminer la configuration initiale d’une ressource de communication série, un processus appelle la fonction GetCommState , qui remplit une structure DCB de port série avec les paramètres de configuration actuels. Pour modifier cette configuration, un processus spécifie une structure DCB dans un appel à la fonction SetCommState .

Les membres de la structure DCB spécifient les paramètres de configuration tels que le taux de baud, le nombre de bits de données par octet et le nombre de bits d’arrêt par octet. D’autres membres DCB spécifient des caractères spéciaux et activent la vérification de la parité et le contrôle de flux. Lorsqu’un processus doit modifier seulement quelques-uns de ces paramètres de configuration, il doit d’abord appeler GetCommState pour remplir une structure DCB avec la configuration actuelle. Ensuite, le processus peut ajuster les valeurs importantes dans la structure DCB et reconfigurer l’appareil en appelant SetCommState et en spécifiant la structure DCB modifiée. Cette procédure garantit que les membres non modifiés de la structure DCB contiennent des valeurs appropriées. Par exemple, une erreur courante consiste à configurer un appareil avec une structure DCB dans laquelle le membre XonChar de la structure est égal au membre XoffChar .

La fonction BuildCommDCB permet de modifier une structure DCB . BuildCommDCB utilise une chaîne avec le même formulaire que les arguments de ligne de commande de la commande en mode pour spécifier le taux de baud, le schéma de parité, le nombre de bits d’arrêt et le nombre de bits de données. Les membres restants de DCB ne sont pas modifiés par cette fonction, sauf que les membres appropriés sont définis pour désactiver XON/XOFF et le contrôle de flux matériel. BuildCommDCB modifie uniquement une structure DCB ; il ne reconfigure pas l’appareil.

Un processus peut reconfigurer une ressource de communication à l’aide de la fonction GetCommProperties pour obtenir des informations à partir d’un pilote de périphérique sur les paramètres de configuration qu’il prend en charge. Le processus peut utiliser ces informations pour éviter de spécifier une configuration qui n’est pas prise en charge.

La fonction SetCommState reconfigure la ressource de communication, mais elle n’affecte pas les mémoires tampons de sortie et d’entrée internes du pilote spécifié. Les mémoires tampons ne sont pas vidées et les opérations de lecture et d’écriture en attente ne sont pas arrêtées prématurément.

Un processus réinitialise une ressource de communication à l’aide de la fonction SetupComm , qui effectue les tâches suivantes :

  • Met fin aux opérations de lecture et d’écriture en attente, même si elles n’ont pas été terminées.
  • Ignore les caractères non lus et libère les mémoires tampons de sortie et d’entrée internes du pilote associé à la ressource spécifiée.
  • Réaffecte les mémoires tampons de sortie et d’entrée internes.

Un processus n’est pas requis pour appeler SetupComm. Si ce n’est pas le cas, le pilote de la ressource initialise l’appareil avec les paramètres par défaut la première fois que le handle de ressource de communication est utilisé.