BuildCommDCBAndTimeoutsA 函式 (winbase.h)
將裝置定義字串轉譯為適當的裝置控制區塊代碼,並將其放在裝置控制區塊中。 函式也可以設定逾時值,包括裝置沒有逾時的可能性;此函式的行為取決於裝置定義字串的內容。
語法
BOOL BuildCommDCBAndTimeoutsA(
[in] LPCSTR 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 結構。
注意
winbase.h 標頭會根據 UNICODE 預處理器常數的定義,將 BuildCommDCBAndTimeouts 定義為別名,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱 函式原型的慣例。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows XP |
最低支援的伺服器 | Windows Server 2003 |
目標平台 | Windows |
標頭 | winbase.h (包含 Windows.h) |
程式庫 | Kernel32.lib |
DLL | Kernel32.dll |