次の方法で共有


BuildCommDCBA 関数 (winbase.h)

指定した DCB 構造体に、デバイス制御文字列で指定された値を入力します。 device-control 文字列は mode コマンドの構文を使用します。

構文

BOOL BuildCommDCBA(
  [in]  LPCSTR lpDef,
  [out] LPDCB  lpDCB
);

パラメーター

[in] lpDef

デバイス制御情報。 この関数は、この文字列を受け取って解析し、lpDCB が指す DCB 構造体に適切な値を設定します。

文字列は、 mode コマンドのコマンド ライン引数と同じ形式である必要があります。

COMx[:][baud=b][parity=p][data=d][stop=s][to={on|off}][xon={on|off}][odsr={on|off}][octs={on|off}][dtr={on|off|hs}][rts={on|off|hs}][idsr={on|off}]

デバイス名は省略可能ですが、使用する場合は有効なデバイスを指定する必要があります。

たとえば、次の文字列は、ボー レート 1200、パリティなし、8 データ ビット、および 1 ストップ ビットを指定します。

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

[out] lpDCB

情報を受け取る DCB 構造体へのポインター。

戻り値

関数が成功すると、戻り値は 0 以外になります。

関数が失敗した場合は、0 を返します。 詳細なエラー情報を得るには、GetLastError を呼び出します。

解説

BuildCommDCB 関数は、lpDef パラメーターの影響を特に受ける DCB 構造体のメンバーのみを調整しますが、次の例外があります。

  • 指定されたボー レートが 110 の場合、関数はストップ ビットを 2 に設定して、システムの モード コマンドとの互換性を維持します。
  • 既定では、 BuildCommDCB は XON/XOFF およびハードウェア フロー制御を無効にします。 フロー制御を有効にするには、 DCB 構造体の適切なメンバーを明示的に設定する必要があります。
BuildCommDCB 関数は、DCB 構造体のメンバーのみを入力します。 これらの設定をシリアル ポートに適用するには、 SetCommState 関数を使用します。

モード構文には、古い形式と新しい形式があります。 BuildCommDCB 関数は、両方のフォームをサポートしています。 ただし、2 つのフォームを混在させることはできません。

モード構文の新しい形式では、DCB 構造体のフロー制御メンバーの値を明示的に設定できます。 モード 構文の 古い形式を使用する場合、 BuildCommDCB 関数は、 次のように DCB 構造体のフロー制御メンバーを設定します。

  • x または p で終わらない文字列の場合:
    • fInXfOutXfOutXDsrFlowおよび fOutXCtsFlow はすべて FALSE に設定されます
    • fDtrControl が DTR_CONTROL_ENABLE に設定されている
    • fRtsControl が RTS_CONTROL_ENABLE に設定されている
  • x で終わる文字列の場合:
    • fInXfOutX の両方が TRUE に設定されている
    • fOutXDsrFlowfOutXCtsFlow の両方が FALSE に設定されている
    • fDtrControl が DTR_CONTROL_ENABLE に設定されている
    • fRtsControl が RTS_CONTROL_ENABLE に設定されている
  • p で終わる文字列の場合:
    • fInXfOutX の両方が FALSE に設定されている
    • fOutXDsrFlowfOutXCtsFlow の両方が TRUE に設定されている
    • fDtrControl が DTR_CONTROL_HANDSHAKE に設定されている
    • fRtsControl が RTS_CONTROL_HANDSHAKE に設定されている

注意

winbase.h ヘッダーは、Unicode プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして BuildCommDCB を定義します。 encoding-neutral エイリアスの使用を encoding-neutral ではないコードと混在すると、コンパイル エラーまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。

要件

要件
サポートされている最小のクライアント Windows XP
サポートされている最小のサーバー Windows Server 2003
対象プラットフォーム Windows
ヘッダー winbase.h (Windows.h を含む)
Library Kernel32.lib
[DLL] Kernel32.dll

関連項目

通信関数

通信リソース

DCB

SetCommState