SERIAL_COMMPROP-Struktur (ntddser.h)
Die SERIAL_COMMPROP-Struktur gibt die Eigenschaften eines seriellen Ports an.
Syntax
typedef struct _SERIAL_COMMPROP {
USHORT PacketLength;
USHORT PacketVersion;
ULONG ServiceMask;
ULONG Reserved1;
ULONG MaxTxQueue;
ULONG MaxRxQueue;
ULONG MaxBaud;
ULONG ProvSubType;
ULONG ProvCapabilities;
ULONG SettableParams;
ULONG SettableBaud;
USHORT SettableData;
USHORT SettableStopParity;
ULONG CurrentTxQueue;
ULONG CurrentRxQueue;
ULONG ProvSpec1;
ULONG ProvSpec2;
WCHAR ProvChar[1];
} SERIAL_COMMPROP, *PSERIAL_COMMPROP;
Member
PacketLength
Die Größe des Datenpakets in Bytes, das mit dieser Struktur beginnt und die angeforderten Eigenschaftendaten enthält. Diese Größe umfasst die SERIAL_COMMPROP-Struktur und alle zusätzlichen ProvChar-Arrayelemente , die dieser Struktur folgen.
PacketVersion
Die Version dieser Struktur. Die aktuelle Versionsnummer ist 2.
ServiceMask
Eine Bitmaske, die angibt, welche Dienste von diesem Kommunikationsanbieter implementiert werden. Dieser Member wird von seriellen Kommunikationsanbietern, einschließlich Modemanbietern, immer auf SERIAL_SP_SERIALCOMM festgelegt. Das ProvSubType-Element gibt den spezifischen Typ der seriellen Kommunikation an, die implementiert werden (z. B. Modem).
Reserved1
Wird nicht verwendet.
MaxTxQueue
Maximale Übertragungswarteschlangengröße. Die maximale Größe des internen Ausgabepuffers des seriellen Controllertreibers in Bytes. Der Wert 0 (null) gibt an, dass vom seriellen Anbieter kein Maximalwert festgelegt wird.
MaxRxQueue
Maximale Empfangswarteschlangengröße. Die maximale Größe des internen Eingabepuffers des seriellen Controllertreibers in Bytes. Der Wert 0 (null) gibt an, dass vom seriellen Anbieter kein Maximalwert festgelegt wird.
MaxBaud
Die maximal zulässige Baudrate. Ein erweiterungsbasierter serieller Controllertreiber legt diesen Member auf eine Baudrate fest, die in Bits pro Sekunde (bps) ausgedrückt wird. Wenn der serielle Controller beispielsweise eine maximale Baudrate von 115.200 Bps unterstützt, legt der Treiber MaxBaud = 115200 fest.
Allerdings legen Serial.sys und viele ältere serielle Controllertreiber MaxBaud auf eines der SERIAL_BAUD_XXX-Flagbits fest, die in der Headerdatei "Ntddser.h" definiert sind. Die folgenden Werte werden für diesen Member definiert.
Wert | BESCHREIBUNG |
---|---|
SERIAL_BAUD_075 | 75 Bps |
SERIAL_BAUD_110 | 110 Bps |
SERIAL_BAUD_134_5 | 134,5 Bps |
SERIAL_BAUD_150 | 150 Bps |
SERIAL_BAUD_300 | 300 Bps |
SERIAL_BAUD_600 | 600 Bps |
SERIAL_BAUD_1200 | 1.200 Bps |
SERIAL_BAUD_1800 | 1.800 Bps |
SERIAL_BAUD_2400 | 2.400 Bps |
SERIAL_BAUD_4800 | 4.800 Bps |
SERIAL_BAUD_7200 | 7.200 Bps |
SERIAL_BAUD_9600 | 9.600 Bps |
SERIAL_BAUD_14400 | 14.400 Bps |
SERIAL_BAUD_19200 | 19.200 Bps |
SERIAL_BAUD_38400 | 38.400 Bps |
SERIAL_BAUD_56K | 56.000 Bps |
SERIAL_BAUD_57600 | 57.600 Bps |
SERIAL_BAUD_115200 | 115.200 Bps |
SERIAL_BAUD_128K | 128.000 Bps |
SERIAL_BAUD_USER | Programmierbare Baudraten sind verfügbar. |
ProvSubType
Der spezifische Kommunikationsanbietertyp. Wenn das ServiceMask-Element auf SERIAL_SP_SERIALCOMM festgelegt ist, wird ProvSubType auf einen der folgenden Werte festgelegt.
Wert | Bedeutung |
---|---|
SERIAL_SP_UNSPECIFIED | Nicht angegeben. |
SERIAL_SP_RS232 | Serieller RS-232-Anschluss |
SERIAL_SP_PARALLEL | Paralleler Port |
SERIAL_SP_RS422 | Serieller RS-422-Anschluss |
SERIAL_SP_RS423 | Serieller RS-423-Anschluss |
SERIAL_SP_RS449 | Serieller RS-449-Anschluss |
SERIAL_SP_MODEM | Modemgerät |
SERIAL_SP_FAX | FAX-Gerät |
SERIAL_SP_SCANNER | Scanner |
SERIAL_SP_BRIDGE | Nicht angegebene Netzwerkbrücke |
SERIAL_SP_LAT | LAT-Protokoll |
SERIAL_SP_TELNET | TCP/IP Telnet-Protokoll® |
SERIAL_SP_X25 | X.25-Standards |
ProvCapabilities
Die vom Anbieter angebotenen Funktionen. Dieser Member wird auf null oder auf das bitweise OR eines oder mehrerer der folgenden Flagbits festgelegt.
Wert | BESCHREIBUNG |
---|---|
SERIAL_PCF_DTRDSR | DTR (Datenterminal bereit) und DSR (Dataset bereit) werden unterstützt. |
SERIAL_PCF_RTSCTS | RTS (Request to Send) und CTS (clear to send) werden unterstützt. |
SERIAL_PCF_CD | CD (Carrier Detect) wird unterstützt. |
SERIAL_PCF_PARITY_CHECK | Die Überprüfung der Parität wird unterstützt. |
SERIAL_PCF_XONXOFF | Die Ablaufsteuerung für XON (ein) und XOFF (transmit off) wird unterstützt. |
SERIAL_PCF_SETXCHAR | Die Zeichen XON und XOFF können festgelegt werden. |
SERIAL_PCF_TOTALTIMEOUTS | Timeouts insgesamt werden unterstützt. |
SERIAL_PCF_INTTIMEOUTS | Intervalltimeouts werden unterstützt. |
SERIAL_PCF_SPECIALCHARS | Sonderzeichen werden unterstützt. |
SERIAL_PCF_16BITMODE | Ein spezieller 16-Bit-Modus wird unterstützt. |
SettableParams
Eine Bitmaske, die den Kommunikationsparameter angibt, der geändert werden kann. Dieser Member wird auf null oder auf das bitweise OR eines oder mehrerer der folgenden Flagbits festgelegt.
Wert | BESCHREIBUNG |
---|---|
SERIAL_SP_PARITY | Paritätstyp (gerade oder ungerade) |
SERIAL_SP_BAUD | Baudrate |
SERIAL_SP_DATABITS | Datenbits |
SERIAL_SP_STOPBITS | Stoppbits |
SERIAL_SP_HANDSHAKING | Handshaking (Flusssteuerung) |
SERIAL_SP_PARITY_CHECK | Paritätsprüfung |
SERIAL_SP_CARRIER_DETECT | Carrier-Erkennung |
SettableBaud
Eine Bitmaske, die die baud-Raten angibt, die verwendet werden können. Eine Tabelle, die die SERIAL_BAUD_XXX-Flagbits beschreibt, die für dieses Element definiert sind, finden Sie in der Beschreibung des MaxBaud-Elements . SettableBaud wird auf null oder auf das bitweise OR oder mindestens eins dieser Flagbits festgelegt.
Serielle Controllertreiber legen das SERIAL_BAUD_USER Flagbit im Bitmaskenwert SettableBaud fest, um anzugeben, dass sie höhere Baudraten unterstützen als diejenigen, die durch die anderen SERIAL_BAUD_XXX-Flagbits ausgedrückt werden können. Beispielsweise setzt ein Treiber, der Baudraten von 57600, 115200, 230400 und 460800 bps unterstützt, SettableBaud = (SERIAL_BAUD_57600 | SERIAL_BAUD_115200 | SERIAL_BAUD_USER).
SettableData
Die Anzahl der Datenbits, die festgelegt werden können. Dieser Member wird auf null oder auf das bitweise OR eines oder mehrerer der folgenden Flagbits festgelegt.
Wert | BESCHREIBUNG |
---|---|
SERIAL_DATABITS_5 | 5 Datenbits |
SERIAL_DATABITS_6 | 6 Datenbits |
SERIAL_DATABITS_7 | 7 Datenbits |
SERIAL_DATABITS_8 | 8 Datenbits |
SERIAL_DATABITS_16 | 16 Datenbits |
SERIAL_DATABITS_16X | Spezieller breiter Weg durch serielle Hardwareleitungen |
SettableStopParity
Die Stop-Bit- und Paritätseinstellungen, die ausgewählt werden können. Dieser Member wird auf null oder auf das bitweise OR eines oder mehrerer der folgenden Flagbits festgelegt.
Wert | BESCHREIBUNG |
---|---|
SERIAL_STOPBITS_10 | 1 Stoppbit. |
SERIAL_STOPBITS_15 | Anderthalb Stoppbits. |
SERIAL_STOPBITS_20 | Zwei Stoppbits. |
SERIAL_PARITY_NONE | Es wird kein Paritätsbit verwendet. |
SERIAL_PARITY_ODD | Ungerade Parität. Das Paritätsbit ist 1, wenn die Anzahl von 1 im Zeichenwert gerade ist. Andernfalls ist das Paritätsbit 0. |
SERIAL_PARITY_EVEN | Sogar Parität. Das Paritätsbit ist 1, wenn die Anzahl von 1s im Zeichenwert ungerade ist. Andernfalls ist das Paritätsbit 0. |
SERIAL_PARITY_MARK | Das Paritätsbit ist immer auf 1 festgelegt. |
SERIAL_PARITY_SPACE | Das Paritätsbit ist immer auf 0 festgelegt. |
CurrentTxQueue
Übertragungswarteschlangengröße. Dieses Element gibt die Größe des internen Ausgabepuffers des seriellen Controllertreibers in Bytes an. Der Wert 0 (null) gibt an, dass die Puffergröße nicht verfügbar ist.
Für SerCx2 und SerCx legt der zugeordnete serielle Controllertreiber diesen Member in der Regel auf 0 (null) fest. Serial.sys legt diesen Member auf einen Wert ungleich null fest, der die Ausgabepuffergröße angibt.
CurrentRxQueue
Größe der Empfangswarteschlange. Dieser Member gibt die Größe des internen Eingabepuffers des seriellen Controllertreibers in Bytes an. Der Wert 0 (null) gibt an, dass die Puffergröße nicht verfügbar ist.
Für SerCx2 und SerCx wird dieser Member vom zugeordneten seriellen Controllertreiber festgelegt. Für SerCx2 legt der Treiber diesen Member in der Regel auf 0 (null) fest. Für SerCx legt der Treiber diesen Member in der Regel auf die Größe des Ringpuffers fest, den SerCx zum Puffern empfangener Daten verwendet. Dieser Treiber kann die SerCxGetRingBufferUtilization-Methode aufrufen, um die Ringpuffergröße von SerCx abzurufen.
Serial.sys legt diesen Member auf einen Wert ungleich Null fest, der die Größe des Eingabepuffers angibt.
ProvSpec1
Anbieterspezifische Daten. Anwendungen sollten dieses Element ignorieren, es sei denn, anbieterspezifische Daten über das für den seriellen Port erforderliche Datenformat sind verfügbar.
ProvSpec2
Anbieterspezifische Daten. Anwendungen sollten dieses Element ignorieren, es sei denn, anbieterspezifische Daten über das für den seriellen Port erforderliche Datenformat sind verfügbar.
ProvChar[1]
Anbieterspezifische Daten. Anwendungen sollten dieses Element ignorieren, es sei denn, anbieterspezifische Daten über das für den seriellen Port erforderliche Datenformat sind verfügbar. Dieses Element ist das erste Element in einem Breitzeichenarray aus einem oder mehreren Elementen. Alle zusätzlichen Elemente folgen sofort diesem Member. Das PacketLength-Element gibt die Größe der SERIAL_COMMPROP-Struktur sowie alle zusätzlichen ProvChar-Arrayelemente an, die dieser Struktur folgen.
Hinweise
Diese Struktur wird von der IOCTL_SERIAL_GET_PROPERTIES-Anforderung verwendet.
Anforderungen
Anforderung | Wert |
---|---|
Header | ntddser.h |