共用方式為


序列 I/O 要求介面

若要控制連接到序列控制器上端口的周邊裝置,用戶端應用程式或周邊設備磁碟機會將 I/O 要求傳送至埠。 用戶端會使用 IRP_MJ_WRITEIRP_MJ_READ 要求,將資料傳送至序列埠,以及從序列埠接收資料。 此外,Windows 會定義一組序列 I/O 控制要求, (IOCTLs) 用戶端可用來設定序列埠。

序列IRP_MJ_XXX要求和序列 IOCTL 一起形成序列 I/O 要求介面,可跨序列控制器裝置支援。 此介面支援Serial.sys驅動程式,以及 SerCx2 或 SerCx 和擴充功能型序列控制器驅動程式的組合。

SerCx2、SerCx 和 Serial.sys支援許多相同的序列 IOCTLs。 不過,SerCx2、SerCx 和 Serial.sys支援 序列設備控制要求中指定的不同 IOCTL 子集。 下表摘要說明 SerCx2、SerCx 和 Serial.sys所支援的 IOCTL 子集。 資料表中的 [是 ] 專案表示序列架構延伸模組或驅動程式支援對應的 IOCTL,而 [否 ] 專案表示它沒有。

序列 IOCTL SerCx2 SerCx Serial.sys

IOCTL_SERIAL_APPLY_DEFAULT_CONFIGURATION

Yes

IOCTL_SERIAL_CLEAR_STATS

No

Yes

Yes

IOCTL_SERIAL_CLR_DTR

請參閱注意 1。

Yes

IOCTL_SERIAL_CLR_RTS

IOCTL_SERIAL_CONFIG_SIZE

No

No

Yes

IOCTL_SERIAL_GET_BAUD_RATE

Yes

IOCTL_SERIAL_GET_CHARS

請參閱附注 2。

Yes

IOCTL_SERIAL_GET_COMMSTATUS

Yes

Yes

IOCTL_SERIAL_GET_DTRRTS

Yes

IOCTL_SERIAL_GET_HANDFLOW

請參閱注意 1。

IOCTL_SERIAL_GET_LINE_CONTROL

Yes

IOCTL_SERIAL_GET_MODEM_CONTROL (請參閱附注 4.)

Yes

IOCTL_SERIAL_GET_MODEMSTATUS

No

IOCTL_SERIAL_GET_PROPERTIES

IOCTL_SERIAL_GET_STATS

IOCTL_SERIAL_GET_TIMEOUTS

IOCTL_SERIAL_GET_WAIT_MASK

IOCTL_SERIAL_IMMEDIATE_CHAR

Yes

IOCTL_SERIAL_LSRMST_INSERT

No

Yes

IOCTL_SERIAL_PURGE

Yes

Yes

IOCTL_SERIAL_RESET_DEVICE (請參閱附注 5.)

No

IOCTL_SERIAL_SET_BAUD_RATE

Yes

Yes

Yes

IOCTL_SERIAL_SET_BREAK_OFF

Yes

Yes

IOCTL_SERIAL_SET_BREAK_ON

Yes

Yes

Yes

IOCTL_SERIAL_SET_CHARS

請參閱附注 2。

Yes

IOCTL_SERIAL_SET_DTR

請參閱注意 1。

Yes

Yes

IOCTL_SERIAL_SET_FIFO_CONTROL

請參閱注意 1。

IOCTL_SERIAL_SET_HANDFLOW (請參閱附注 3.)

Yes

IOCTL_SERIAL_SET_LINE_CONTROL

IOCTL_SERIAL_SET_MODEM_CONTROL (請參閱附注 4.)

Yes

IOCTL_SERIAL_SET_QUEUE_SIZE

Yes

Yes

IOCTL_SERIAL_SET_RTS

Yes

IOCTL_SERIAL_SET_TIMEOUTS

Yes

Yes

IOCTL_SERIAL_SET_WAIT_MASK

Yes

IOCTL_SERIAL_SET_XOFF

Yes

IOCTL_SERIAL_SET_XON

Yes

IOCTL_SERIAL_WAIT_ON_MASK

IOCTL_SERIAL_XOFF_COUNTER

No

**筆記**
  1. SerCx2 可能或可能不支援此 IOCTL,視串列控制器驅動程式的實作和序列控制器硬體的功能而定。

  2. SerCx2 不支援特殊字元。 SerCx2 一律會以 STATUS_SUCCESS 狀態碼完成IOCTL_SERIAL_SET_CHARS要求,但不會設定任何特殊字元或執行任何其他作業來回應此要求。 針對 IOCTL_SERIAL_GET_CHARS 要求,SerCx2 會將 SERIAL_CHARS 結構中的所有字元值設定為 null,並以STATUS_SUCCESS狀態碼完成要求。

  3. SerCx2 和 SerCx 僅支援針對 SERIAL_HANDFLOW結構之 FlowReplaceControlHandShake成員所定義的旗標子集。 Serial.sys支援所有這些旗標。 如需詳細資訊,請參閱 SERIAL_HANDFLOW

  4. IOCTL_SERIAL_GET_MODEM_CONTROLIOCTL_SERIAL_SET_MODEM_CONTROL要求主要用於硬體測試。 數據機控制作業未定義標準暫存器配置。 使用數據機控制 IOCTLs 的周邊驅動程式會自行依賴特定序列控制器的硬體功能。

  5. Serial.sys驅動程式一律會以 STATUS_SUCCESS 完成IOCTL_SERIAL_RESET_DEVICE 要求,但不會執行任何作業來回應此要求。 SerCx2 和 SerCx 不支援IOCTL_SERIAL_RESET_DEVICE要求,而且一律使用 STATUS_NOT_IMPLEMENTED 完成這些要求。

如需有關串列控制器IOCTL_SERIAL_XXX要求和讀取和寫入要求的詳細資訊,請參閱ntddser.h標頭。