Freigeben über


Änderung der Kommunikationsressourceneinstellungen

Wenn die CreateFile--Funktion ein Handle für eine serielle Kommunikationsressource öffnet, initialisiert und konfiguriert das System die Ressource entsprechend den Werten, die beim letzten Öffnen der Ressource eingerichtet wurden. Durch die Beibehaltung der vorherigen Einstellungen kann der Benutzer die einstellungen beibehalten, die über einen Modus Befehl angegeben werden, wenn das Gerät erneut geöffnet wird. Die vom vorherigen Öffnungsvorgang geerbten Werte umfassen die Konfigurationseinstellungen des Gerätesteuerungsblocks (eine DCB--Struktur) und die Timeoutwerte, die in E/A-Vorgängen verwendet werden. Wenn das Gerät noch nie geöffnet wurde, wird es mit den Standardeinstellungen des Systems konfiguriert.

Um die Anfangskonfiguration einer seriellen Kommunikationsressource zu ermitteln, ruft ein Prozess die GetCommState-Funktion auf, die einen seriellen Anschluss DCB- Struktur mit den aktuellen Konfigurationseinstellungen einfüllt. Um diese Konfiguration zu ändern, gibt ein Prozess eine DCB- Struktur in einem Aufruf der SetCommState--Funktion an.

Elemente der DCB- Struktur geben die Konfigurationseinstellungen wie die Baudrate, die Anzahl der Datenbits pro Byte und die Anzahl der Stoppbits pro Byte an. Andere DCB- Member geben Sonderzeichen an und ermöglichen die Paritätsprüfung und Flusssteuerung. Wenn ein Prozess nur einige dieser Konfigurationseinstellungen ändern muss, sollte zuerst GetCommState- aufgerufen werden, um eine DCB- Struktur mit der aktuellen Konfiguration auszufüllen. Anschließend kann der Prozess die wichtigen Werte in der DCB- Struktur anpassen und das Gerät neu konfigurieren, indem SetCommState- aufgerufen und die geänderte DCB--Struktur angegeben wird. Mit diesem Verfahren wird sichergestellt, dass die unveränderten Member der DCB- Struktur geeignete Werte enthalten. Ein häufiger Fehler besteht beispielsweise darin, ein Gerät mit einer DCB- Struktur zu konfigurieren, in der das XonChar- Element der Struktur dem XoffChar-Element entspricht.

Die BuildCommDCB--Funktion bietet eine weitere Möglichkeit zum Ändern einer DCB- Struktur. BuildCommDCB- verwendet eine Zeichenfolge mit demselben Formular wie die Befehlszeilenargumente des Modus Befehl, um die Baudrate, das Paritätsschema, die Anzahl der Stoppbits und die Anzahl der Datenbits anzugeben. Die übrigen Elemente DCB- werden von dieser Funktion nicht geändert, es sei denn, die entsprechenden Member werden so festgelegt, dass die XON/XOFF- und Hardwareflusssteuerung deaktiviert werden. BuildCommDCB ändert nur eine DCB--Struktur; es konfiguriert das Gerät nicht neu.

Ein Prozess kann eine Kommunikationsressource mithilfe der GetCommProperties--Funktion neu konfigurieren, um Informationen von einem Gerätetreiber zu den unterstützten Konfigurationseinstellungen abzurufen. Der Prozess kann diese Informationen verwenden, um die Angabe einer nicht unterstützten Konfiguration zu vermeiden.

Die SetCommState--Funktion konfiguriert die Kommunikationsressource neu, wirkt sich jedoch nicht auf die internen Ausgabe- und Eingabepuffer des angegebenen Treibers aus. Die Puffer werden nicht geleert, und ausstehende Lese- und Schreibvorgänge werden nicht vorzeitig beendet.

Ein Prozess initialisiert eine Kommunikationsressource mithilfe der SetupComm--Funktion, die die folgenden Aufgaben ausführt:

  • Beendet ausstehende Lese- und Schreibvorgänge, auch wenn sie noch nicht abgeschlossen wurden.
  • Verwirft ungelesene Zeichen und gibt die internen Ausgabe- und Eingabepuffer des Treibers frei, der der angegebenen Ressource zugeordnet ist.
  • Ordnen Sie die internen Ausgabe- und Eingabepuffer neu zu.

Ein Prozess ist nicht erforderlich, um SetupComm-aufzurufen. Wenn dies nicht der Fall ist, initialisiert der Treiber der Ressource das Gerät mit den Standardeinstellungen, wenn das Kommunikationsressourcenhandle zum ersten Mal verwendet wird.