Fonction BuildCommDCBA (winbase.h)

Remplit une structure DCB spécifiée avec les valeurs spécifiées dans une chaîne de contrôle d’appareil. La chaîne de contrôle d’appareil utilise la syntaxe de la commande mode .

Syntaxe

BOOL BuildCommDCBA(
  [in]  LPCSTR lpDef,
  [out] LPDCB  lpDCB
);

Paramètres

[in] lpDef

Informations de contrôle de l’appareil. La fonction prend cette chaîne, l’analyse, puis définit les valeurs appropriées dans la structure DCB pointée par lpDCB.

La chaîne doit avoir le même formulaire que les arguments de ligne de commande de la commande mode :

COMx[ :][baud=b][parity=p][data=d][stop=s][to={on|off}][xon={on|off}][odsr={on|off}][octs={on|off}][dtr={on|off|hs}][rts={on|off|hs|tg}][idsr={on|off}]

Le nom de l’appareil est facultatif, mais il doit spécifier un appareil valide s’il est utilisé.

Par exemple, la chaîne suivante spécifie un débit en bauds de 1200, aucune parité, 8 bits de données et 1 bit stop :

baud=1200 parity=N data=8 stop=1

[out] lpDCB

Pointeur vers une structure DCB qui reçoit les informations.

Valeur retournée

Si la fonction réussit, la valeur de retour est différente de zéro.

Si la fonction échoue, la valeur de retour est égale à zéro. Pour obtenir des informations détaillées sur l’erreur, appelez GetLastError.

Remarques

La fonction BuildCommDCB ajuste uniquement les membres de la structure DCB qui sont spécifiquement affectés par le paramètre lpDef , avec les exceptions suivantes :

  • Si le débit en bauds spécifié est de 110, la fonction définit les bits d’arrêt sur 2 pour rester compatibles avec la commande de mode du système.
  • Par défaut, BuildCommDCB désactive XON/XOFF et le contrôle de flux matériel. Pour activer le contrôle de flux, vous devez définir explicitement les membres appropriés de la structure DCB .
La fonction BuildCommDCB remplit uniquement les membres de la structure DCB . Pour appliquer ces paramètres à un port série, utilisez la fonction SetCommState .

Il existe des formes plus anciennes et plus récentes de la syntaxe du mode . La fonction BuildCommDCB prend en charge les deux formulaires. Toutefois, vous ne pouvez pas mélanger les deux formes.

La forme la plus récente de la syntaxe de mode vous permet de définir explicitement les valeurs des membres de contrôle de flux de la structure DCB . Si vous utilisez une forme antérieure de la syntaxe de mode , la fonction BuildCommDCB définit les membres de contrôle de flux de la structure DCB , comme suit :

  • Pour une chaîne qui ne se termine pas par un x ou un p :
    • fInX, fOutX, fOutXDsrFlow et fOutXCtsFlow sont tous définis sur FALSE
    • fDtrControl est défini sur DTR_CONTROL_ENABLE
    • fRtsControl est défini sur RTS_CONTROL_ENABLE
  • Pour une chaîne qui se termine par un x :
    • fInX et fOutX sont tous deux définis sur TRUE
    • fOutXDsrFlow et fOutXCtsFlow sont tous deux définis sur FALSE
    • fDtrControl est défini sur DTR_CONTROL_ENABLE
    • fRtsControl est défini sur RTS_CONTROL_ENABLE
  • Pour une chaîne qui se termine par un p :
    • fInX et fOutX sont tous deux définis sur FALSE
    • fOutXDsrFlow et fOutXCtsFlow sont tous deux définis sur TRUE
    • fDtrControl est défini sur DTR_CONTROL_HANDSHAKE
    • fRtsControl est défini sur RTS_CONTROL_HANDSHAKE

Notes

L’en-tête winbase.h définit BuildCommDCB comme un alias qui sélectionne automatiquement la version ANSI ou Unicode de cette fonction en fonction de la définition de la constante de préprocesseur UNICODE. Le mélange de l’utilisation de l’alias neutre en encodage avec du code qui n’est pas neutre en encodage peut entraîner des incompatibilités qui entraînent des erreurs de compilation ou d’exécution. Pour plus d’informations, consultez Conventions pour les prototypes de fonction.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows XP
Serveur minimal pris en charge Windows Server 2003
Plateforme cible Windows
En-tête winbase.h (inclure Windows.h)
Bibliothèque Kernel32.lib
DLL Kernel32.dll

Voir aussi

Fonctions de communication

Ressources de communication

DCB

SetCommState