共用方式為


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 旗標位。 這個成員定義了下列值。

價值 描述
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 FAX 裝置
SERIAL_SP_SCANNER 掃描器裝置
SERIAL_SP_BRIDGE 未指定的網路網橋
SERIAL_SP_LAT LAT 通訊協定
SERIAL_SP_TELNET TCP/IP Telnet® 通訊協定
SERIAL_SP_X25 X.25 標準

ProvCapabilities

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

價值 描述
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。

價值 描述
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。

價值 描述
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。

價值 描述
SERIAL_STOPBITS_10 一個停止位。
SERIAL_STOPBITS_15 一個半停止位。
SERIAL_STOPBITS_20 兩個停止位。
SERIAL_PARITY_NONE 不使用同位位。
SERIAL_PARITY_ODD 奇數同位。 如果字元值中的 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