BuildCommDCBAndTimeoutsA 函式 (winbase.h)
將裝置定義字串轉譯為適當的裝置控制區塊代碼,並將其放入裝置控制區塊中。 函式也可以設定裝置的逾時值,包括沒有逾時的可能性;函式在這方面的行為取決於裝置定義字串的內容。
語法
BOOL BuildCommDCBAndTimeoutsA(
[in] LPCSTR lpDef,
[out] LPDCB lpDCB,
[out] LPCOMMTIMEOUTS lpCommTimeouts
);
參數
[in] lpDef
裝置控制資訊。 函式會採用此字串、加以剖析,然後在由 lpDCB所指向的 DCB 結構中設定適當的值。
字串的格式必須與命令的命令行自變數
“baud” 子字串可以是列出的任何值,這些值都是成對的。 兩位數值是它們所代表相關聯值的前兩位數。 例如,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」,函式會將 WriteTotalTimeoutConstantCOMMTIMEOUTS 結構的成員設定為 60000,並將所有其他成員設為 0。
- 如果該字串包含子字串 「to=off」,函式會將 COMMTIMEOUT S 的成員設定為 0。
- 如果該字串未指定 「to={on|off}」 子字串,函式會忽略 lpCommTimeouts中 COMMTIMEOUTS 結構。
注意
winbase.h 標頭會根據 UNICODE 預處理器常數的定義,將 BuildCommDCBAndTimeouts 定義為自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱函式原型的
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | Windows XP |
支援的最低伺服器 | Windows Server 2003 |
目標平臺 | 窗戶 |
標頭 | winbase.h (包括 Windows.h) |
連結庫 | Kernel32.lib |
DLL | Kernel32.dll |