BuildCommDCBAndTimeoutsW 函式 (winbase.h)

將裝置定義字串轉譯為適當的裝置控制區塊代碼,並將其放在裝置控制區塊中。 函式也可以設定逾時值,包括裝置沒有逾時的可能性;此函式的行為取決於裝置定義字串的內容。

語法

BOOL BuildCommDCBAndTimeoutsW(
  [in]  LPCWSTR        lpDef,
  [out] LPDCB          lpDCB,
  [out] LPCOMMTIMEOUTS lpCommTimeouts
);

參數

[in] lpDef

裝置控制資訊。 函式會採用此字串、剖析它,然後在 lpDCB 指向的 DCB 結構中設定適當的值。

字串的格式必須與 mode 命令的命令行自變數相同:

COMx[][bad={11|110|15150||30 300|600|||12|1200|2400 48||4800||96 9600||19|19200}][parity={n| e |o|m|s}][data={5|6|7|8}][stop={11.5||2}][to={on| off}][xon={on off}][odsr={on|off}][octs={|on|off}][dtr={on|off|hs}][rts={on|off|hs|tg}][idsr={on|off}]

“bad” 子字串可以是列出的任何值,這些值會以配對為單位。 兩位數值是它們所代表之相關聯值的前兩位數。 例如,11 代表 110 個傳輸,19 代表 19,200 個傳輸。

「同位」子字串會指出同位如何用來偵測傳輸錯誤。 這些值代表 「none」、「even」、「odd」、
“mark” 和 “space”。

如需詳細資訊,請參閱 TechNet 中的 Mode 命令參考。

例如,下列字串會指定 1200 的傳輸速率、無同位、8 個數據位和 1 個停止位:

baud=1200 parity=N data=8 stop=1

[out] lpDCB

DCB 結構的指標,可從 lpDef 所指向的裝置控件資訊字串接收資訊。 此 DCB 結構會定義通訊裝置的控制設定。

[out] lpCommTimeouts

接收逾時資訊的 COMMTIMEOUTS 結構的指標。

傳回值

如果函式成功,則傳回非零的值。

如果此函式失敗,則傳回值為零。 若要取得擴充的錯誤資訊,請呼叫 GetLastError

備註

BuildCommDCBAndTimeouts 函式會根據 lpDef 中的 “to={on|off}” 子字符串是否存在來修改其逾時設定行為:

  • 如果該字串包含子字串 「to=on」,此函式會將 COMMTIMEOUTS 結構的 WriteTotalTimeoutConstant 成員設定為 60000,而所有其他成員都設定為 0。
  • 如果該字串包含子字串 「to=off」,函式會將 COMMTIMEOUTS 的成員設定為 0。
  • 如果該字串未指定 「to={on|off}」 子字串,函式會忽略 lpCommTimeouts 中的 COMMTIMEOUTS 結構。
如需詳細資訊,請參閱 BuildCommDCB 函式的。

注意

winbase.h 標頭會根據 UNICODE 預處理器常數的定義,將 BuildCommDCBAndTimeouts 定義為別名,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱 函式原型的慣例

規格需求

需求
最低支援的用戶端 Windows XP
最低支援的伺服器 Windows Server 2003
目標平台 Windows
標頭 winbase.h (包含 Windows.h)
程式庫 Kernel32.lib
DLL Kernel32.dll

另請參閱

BuildCommDCB

COMMTIMEOUTS

通訊函式

通訊資源

DCB

GetCommTimeouts

SetCommTimeouts