BuildCommDCBAndTimeoutsW 関数 (winbase.h)
デバイス定義文字列を適切なデバイス制御ブロック コードに変換し、デバイス制御ブロックに配置します。 この関数は、デバイスのタイムアウトの可能性を含め、タイムアウト値を設定することもできます。この点に関する関数の動作は、デバイス定義文字列の内容によって異なります。
構文
BOOL BuildCommDCBAndTimeoutsW(
[in] LPCWSTR lpDef,
[out] LPDCB lpDCB,
[out] LPCOMMTIMEOUTS lpCommTimeouts
);
パラメーター
[in] lpDef
デバイス制御情報。 この関数は、この文字列を受け取って解析し、lpDCB が指す DCB 構造体に適切な値を設定します。
文字列は、 mode コマンドのコマンド ライン引数と同じ形式である必要があります。
COMx[:][baud={11|110|15|30|30||60 60 60||12 1200||24 2400||484800||96 969600||19 19200|}][パリティ={n |e 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}][dtr={on| off |hs}][rts={on|off|hs|tg}][idsr={on|off}]
"ボー" 部分文字列には、一覧表示されている値のうち、ペアの値を指定できます。 2 桁の値は、それらが表す関連付けられた値の最初の 2 桁です。 たとえば、11 は 110 ボー、19 は 19,200 ボーを表します。
"parity" 部分文字列は、パリティ ビットを使用して伝送エラーを検出する方法を示します。
値は"none"、"even"、"odd"、
"mark"、および "space"
詳細については、TechNet の Mode コマンド リファレンスを参照してください。
たとえば、次の文字列は、ボー レート 1200、パリティなし、8 データ ビット、および 1 ストップ ビットを指定します。
baud=1200 parity=N data=8 stop=1
[out] lpDCB
lpDef が指すデバイス制御情報文字列から情報を受け取る DCB 構造体へのポインター。 この DCB 構造体は、通信デバイスの制御設定を定義します。
[out] lpCommTimeouts
タイムアウト情報を受け取る COMMTIMEOUTS 構造体へのポインター。
戻り値
関数が成功すると、戻り値は 0 以外になります。
関数が失敗した場合は、0 を返します。 詳細なエラー情報を得るには、GetLastError を呼び出します。
解説
BuildCommDCBAndTimeouts 関数は、lpDef の "to={on|off}" 部分文字列の有無に基づいて、タイムアウト設定の動作を変更します。
- その文字列に部分文字列 "to=on" が含まれている場合、関数は COMMTIMEOUTS 構造体の WriteTotalTimeoutConstant メンバーを 60000 に、他のすべてのメンバーを 0 に設定します。
- その文字列にサブ文字列 "to=off" が含まれている場合、関数は COMMTIMEOUTS のメンバーを 0 に設定します。
- その文字列で "to={on|off}" 部分文字列が指定されていない場合、この関数は lpCommTimeouts の COMMTIMEOUTS 構造体を無視します。
注意
winbase.h ヘッダーは、Unicode プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして BuildCommDCBAndTimeouts を定義します。 encoding-neutral エイリアスの使用を encoding-neutral ではないコードと混在すると、コンパイル エラーまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows XP |
サポートされている最小のサーバー | Windows Server 2003 |
対象プラットフォーム | Windows |
ヘッダー | winbase.h (Windows.h を含む) |
Library | Kernel32.lib |
[DLL] | Kernel32.dll |