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 |