SERIAL_COMMPROP 結構 (ntddser.h)

SERIAL_COMMPROP 結構會指定序列埠的屬性。

語法

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;

成員

PacketLength

以位元組為單位的數據封包大小,開頭為這個結構,且包含要求的屬性數據。 此大小包括 SERIAL_COMMPROP 結構,以及遵循此結構的任何其他 ProvChar 陣列元素。

PacketVersion

這個結構的版本。 目前的版本號碼是 2。

ServiceMask

位掩碼,指出此通訊提供者所實作的服務。 此成員一律會設定為序列通訊提供者SERIAL_SP_SERIALCOMM,包括數據機提供者。 ProvSubType 成員指出實作的特定序列 (通訊類型,例如數據機) 。

Reserved1

未使用。

MaxTxQueue

傳輸佇列大小上限。 序列控制器驅動程式內部輸出緩衝區的大小上限,以位元組為單位。 值為零表示序列提供者不會加總任何最大值。

MaxRxQueue

接收佇列大小上限。 序列控制器驅動程式內部輸入緩衝區的大小上限,以位元組為單位。 值為零表示序列提供者不會加總任何最大值。

MaxBaud

可接受的速率上限。 擴充型序列控制器驅動程式會將此成員設定為以每秒位表示的傳輸速率, (bps) 。 例如,如果序列控制器支援最大傳輸速率 115,200 bps,則驅動程式會設定 MaxBaud = 115200。

不過,Serial.sys 和許多較舊的序列控制器驅動程式會將 MaxBaud 設定為 Ntddser.h 頭檔中定義的其中一個SERIAL_BAUD_XXX 旗標位。 這個成員定義了下列值。

Description
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 可用的可程式化傳輸速率。

ProvSubType

特定的通訊提供者類型。 當 ServiceMask 成員設定為 SERIAL_SP_SERIALCOMM 時, ProvSubType 會設定為下列其中一個值。

意義
SERIAL_SP_UNSPECIFIED [未指定]
SERIAL_SP_RS232 RS-232 序列埠
SERIAL_SP_PARALLEL 平行埠
SERIAL_SP_RS422 RS-422 序列埠
SERIAL_SP_RS423 RS-423 序列埠
SERIAL_SP_RS449 RS-449 序列埠
SERIAL_SP_MODEM 數據機裝置
SERIAL_SP_FAX 傳真裝置
SERIAL_SP_SCANNER 掃描器裝置
SERIAL_SP_BRIDGE 未指定的網路網橋
SERIAL_SP_LAT LAT 通訊協定
SERIAL_SP_TELNET TCP/IP Telnet® 通訊協定
SERIAL_SP_X25 X.25 標準

ProvCapabilities

提供者所提供的功能。 這個成員設定為零或設定為下列一或多個旗標位的位 OR。

Description
SERIAL_PCF_DTRDSR 支援 DTR (數據終端機就緒) 和 DSR (數據集就緒) 。
SERIAL_PCF_RTSCTS 支援 RTS (要求傳送) 和 CTS (清楚傳送) 。
SERIAL_PCF_CD 支援 CD (電信業者偵測) 。
SERIAL_PCF_PARITY_CHECK 支援同位檢查。
SERIAL_PCF_XONXOFF 支援) 上的 XON (傳輸,而 XOFF (傳輸) 流量控制。
SERIAL_PCF_SETXCHAR XON 和 XOFF 字元是可設定的。
SERIAL_PCF_TOTALTIMEOUTS 支援總耗用逾時。
SERIAL_PCF_INTTIMEOUTS 支持時間間隔逾時。
SERIAL_PCF_SPECIALCHARS 支援特殊字元。
SERIAL_PCF_16BITMODE 支援特殊16位模式。

SettableParams

位掩碼,表示可變更的通訊參數。 這個成員設定為零或設定為下列一或多個旗標位的位 OR。

Description
SERIAL_SP_PARITY 同位類型 (偶數或奇數)
SERIAL_SP_BAUD 傳輸速率
SERIAL_SP_DATABITS 資料位元
SERIAL_SP_STOPBITS 停止位元
SERIAL_SP_HANDSHAKING 交握 (流程控制)
SERIAL_SP_PARITY_CHECK 同位檢查
SERIAL_SP_CARRIER_DETECT 貨運公司偵測

SettableBaud

位掩碼,表示可以使用的傳輸速率。 如需描述為此成員所定義之SERIAL_BAUD_XXX 旗標位的數據表,請參閱 MaxBaud 成員的描述。 SettableBaud 設定為零或位 OR 或一或多個這些旗標位。

序列控制器驅動程式會在 SettableBaud 位掩碼值中設定SERIAL_BAUD_USER旗標位,指出它們支援的傳輸速率高於其他SERIAL_BAUD_XXX 旗標位所能表示的傳輸速率。 例如,支援 57600、115200、230400 和 460800 bps 的驅動程式會設定 SettableBaud = (SERIAL_BAUD_57600 |SERIAL_BAUD_115200 |SERIAL_BAUD_USER) 。

SettableData

可以設定的數據位數目。 這個成員設定為零或設定為下列一或多個旗標位的位 OR。

Description
SERIAL_DATABITS_5 5 個數據位
SERIAL_DATABITS_6 6 個數據位
SERIAL_DATABITS_7 7 個數據位
SERIAL_DATABITS_8 8 資料位元
SERIAL_DATABITS_16 16 個數據位
SERIAL_DATABITS_16X 透過序列硬體線路的特殊寬路徑

SettableStopParity

可以選取的停止位和同位設定。 這個成員設定為零或設定為下列一或多個旗標位的位 OR。

Description
SERIAL_STOPBITS_10 一個停止位元。
SERIAL_STOPBITS_15 一個和一半停止位。
SERIAL_STOPBITS_20 兩個停止位元。
SERIAL_PARITY_NONE 未使用同位位。
SERIAL_PARITY_ODD 奇數同位。 如果字元值中的 1 數目偶數為 1,則同位位為 1。 否則,同位位為0。
SERIAL_PARITY_EVEN 甚至同位。 如果字元值中的 1 數目為奇數,則同位位為 1。 否則,同位位為0。
SERIAL_PARITY_MARK 同位一律設為 1。
SERIAL_PARITY_SPACE 同位位一律設定為 0。

CurrentTxQueue

傳輸佇列大小。 這個成員會指定序列控制器驅動程式內部輸出緩衝區的大小,以位元組為單位。 值為零表示緩衝區大小無法使用。

針對 SerCx2 和 SerCx,相關聯的序列控制器驅動程式通常會將此成員設定為零。 Serial.sys 將此成員設定為指出輸出緩衝區大小的非零值。

CurrentRxQueue

接收佇列大小。 這個成員會指定序列控制器驅動程式內部輸入緩衝區的大小,以位元組為單位。 值為零表示緩衝區大小無法使用。

針對 SerCx2 和 SerCx,此成員是由相關聯的序列控制器驅動程式所設定。 針對 SerCx2,驅動程式通常會將此成員設定為零。 對於 SerCx,驅動程式通常會將此成員設定為 SerCx 用來緩衝接收數據的通道緩衝區大小。 此驅動程式可以呼叫 SerCxGetRingBufferUtilization 方法,以從 SerCx 取得通道緩衝區大小。

Serial.sys 將此成員設定為非零值,表示輸入緩衝區大小。

ProvSpec1

提供者特定的數據。 除非有序列埠所需的數據格式提供者特定數據,否則應用程式應該忽略此成員。

ProvSpec2

提供者特定的數據。 除非有序列埠所需的數據格式提供者特定數據,否則應用程式應該忽略此成員。

ProvChar[1]

提供者特定的數據。 除非有序列埠所需的數據格式提供者特定數據,否則應用程式應該忽略此成員。 這個成員是一或多個元素寬字元數位中的第一個專案。 任何其他元素會緊接在此成員之後。 PacketLength 成員會指定SERIAL_COMMPROP結構的大小,以及遵循此結構的任何其他 ProvChar 陣列元素。

備註

IOCTL_SERIAL_GET_PROPERTIES 要求會 使用此結構。

規格需求

需求
標頭 ntddser.h

另請參閱

IOCTL_SERIAL_GET_PROPERTIES