BuildCommDCBA-Funktion (winbase.h)

Füllt eine angegebene DCB-Struktur mit Werten aus, die in einer Gerätesteuerungszeichenfolge angegeben sind. Die Gerätesteuerungszeichenfolge verwendet die Syntax des Modusbefehls .

Syntax

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

Parameter

[in] lpDef

Die Gerätesteuerungsinformationen. Die Funktion akzeptiert diese Zeichenfolge, analysiert sie und legt dann die entsprechenden Werte in der DCB-Struktur fest, auf die von lpDCB verwiesen wird.

Die Zeichenfolge muss dieselbe Form wie die Befehlszeilenargumente des Modusbefehls aufweisen:

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}][idsr={on|off}]

Der Gerätename ist optional, muss aber bei Verwendung ein gültiges Gerät angeben.

Die folgende Zeichenfolge gibt beispielsweise eine Baudrate von 1200, keine Parität, 8 Datenbits und 1 Stoppbit an:

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

[out] lpDCB

Ein Zeiger auf eine DCB-Struktur , die die Informationen empfängt.

Rückgabewert

Wenn die Funktion erfolgreich ist, ist der Rückgabewert ungleich Null.

Wenn die Funktion fehlerhaft ist, ist der Rückgabewert null. Um erweiterte Fehlerinformationen zu erhalten, rufen Sie GetLastError auf.

Hinweise

Die BuildCommDCB-Funktion passt nur die Member der DCB-Struktur an, die speziell vom lpDef-Parameter betroffen sind, mit den folgenden Ausnahmen:

  • Wenn die angegebene Baudrate 110 beträgt, legt die Funktion die Stoppbits auf 2 fest, um mit dem Modusbefehl des Systems kompatibel zu bleiben.
  • Standardmäßig deaktiviert BuildCommDCB XON/XOFF und die Steuerung des Hardwareflusses. Um die Flusssteuerung zu aktivieren, müssen Sie die entsprechenden Member der DCB-Struktur explizit festlegen.
Die BuildCommDCB-Funktion füllt nur die Member der DCB-Struktur aus. Verwenden Sie die SetCommState-Funktion , um diese Einstellungen auf einen seriellen Port anzuwenden.

Es gibt ältere und neuere Formen der Modussyntax . Die BuildCommDCB-Funktion unterstützt beide Formulare. Sie können die beiden Formen jedoch nicht miteinander kombinieren.

Mit der neueren Form der Modussyntax können Sie die Werte der Flusssteuerungselemente der DCB-Struktur explizit festlegen. Wenn Sie eine ältere Form der Modussyntax verwenden, legt die BuildCommDCB-Funktion die Flusssteuerungselemente der DCB-Struktur wie folgt fest:

  • Für eine Zeichenfolge, die nicht mit einem x oder einem p endet:
    • fInX, fOutX, fOutXDsrFlow und fOutXCtsFlow sind alle auf FALSE festgelegt.
    • fDtrControl ist auf DTR_CONTROL_ENABLE festgelegt
    • fRtsControl ist auf RTS_CONTROL_ENABLE festgelegt.
  • Für eine Zeichenfolge, die mit einem x endet:
    • fInX und fOutX sind beide auf TRUE festgelegt.
    • fOutXDsrFlow und fOutXCtsFlow sind beide auf FALSE festgelegt.
    • fDtrControl ist auf DTR_CONTROL_ENABLE festgelegt
    • fRtsControl ist auf RTS_CONTROL_ENABLE festgelegt.
  • Für eine Zeichenfolge, die mit einem p endet:
    • fInX und fOutX sind beide auf FALSE festgelegt.
    • fOutXDsrFlow und fOutXCtsFlow sind beide auf TRUE festgelegt.
    • fDtrControl ist auf DTR_CONTROL_HANDSHAKE festgelegt.
    • fRtsControl ist auf RTS_CONTROL_HANDSHAKE festgelegt.

Hinweis

Der winbase.h-Header definiert BuildCommDCB als Alias, der die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante automatisch auswählt. Das Mischen der Verwendung des codierungsneutralen Alias mit Code, der nicht Codierungsneutral ist, kann zu Nichtübereinstimmungen führen, die zu Kompilierungs- oder Laufzeitfehlern führen. Weitere Informationen finden Sie unter Konventionen für Funktionsprototypen.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows XP
Unterstützte Mindestversion (Server) Windows Server 2003
Zielplattform Windows
Kopfzeile winbase.h (Windows.h einschließen)
Bibliothek Kernel32.lib
DLL Kernel32.dll

Siehe auch

Kommunikationsfunktionen

Kommunikationsressourcen

DCB

SetCommState