Compartilhar via


Função BuildCommDCBW (winbase.h)

Preenche uma estrutura DCB especificada com valores especificados em uma cadeia de caracteres de controle de dispositivo. A cadeia de caracteres de controle de dispositivo usa a sintaxe do comando mode .

Sintaxe

BOOL BuildCommDCBW(
  [in]  LPCWSTR lpDef,
  [out] LPDCB   lpDCB
);

Parâmetros

[in] lpDef

As informações de controle de dispositivo. A função usa essa cadeia de caracteres, analisa-a e define os valores apropriados na estrutura dcb apontada por lpDCB.

A cadeia de caracteres deve ter o mesmo formato que os argumentos de linha de comando do comando 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|tg}][idsr={on|off}]

O nome do dispositivo é opcional, mas deve especificar um dispositivo válido, se usado.

Por exemplo, a cadeia de caracteres a seguir especifica uma taxa de baud de 1200, sem paridade, 8 bits de dados e 1 bit de parada:

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

[out] lpDCB

Um ponteiro para uma estrutura DCB que recebe as informações.

Valor retornado

Se a função for bem-sucedida, o valor retornado será diferente de zero.

Se a função falhar, o valor retornado será zero. Para obter informações de erro estendidas, chame GetLastError.

Comentários

A função BuildCommDCB ajusta apenas os membros da estrutura dcb que são especificamente afetados pelo parâmetro lpDef , com as seguintes exceções:

  • Se a taxa de baud especificada for 110, a função definirá os bits de parada como 2 para permanecerem compatíveis com o comando mode do sistema.
  • Por padrão, BuildCommDCB desabilita o XON/XOFF e o controle de fluxo de hardware. Para habilitar o controle de fluxo, você deve definir explicitamente os membros apropriados da estrutura dcb .
A função BuildCommDCB preenche apenas os membros da estrutura dcb . Para aplicar essas configurações a uma porta serial, use a função SetCommState .

Há formas mais antigas e mais recentes da sintaxe de modo . A função BuildCommDCB dá suporte a ambos os formulários. No entanto, você não pode misturar as duas formas.

A forma mais recente da sintaxe de modo permite definir explicitamente os valores dos membros de controle de fluxo da estrutura DCB . Se você usar uma forma mais antiga da sintaxe de modo , a função BuildCommDCB definirá os membros de controle de fluxo da estrutura dcb , da seguinte maneira:

  • Para uma cadeia de caracteres que não termina com um x ou um p:
    • fInX, fOutX, fOutXDsrFlow e fOutXCtsFlow estão definidos como FALSE
    • fDtrControl é definido como DTR_CONTROL_ENABLE
    • fRtsControl está definido como RTS_CONTROL_ENABLE
  • Para uma cadeia de caracteres que termina com um x:
    • fInX e fOutX são definidos como TRUE
    • fOutXDsrFlow e fOutXCtsFlow são definidos como FALSE
    • fDtrControl é definido como DTR_CONTROL_ENABLE
    • fRtsControl está definido como RTS_CONTROL_ENABLE
  • Para uma cadeia de caracteres que termina com um p:
    • fInX e fOutX são definidos como FALSE
    • fOutXDsrFlow e fOutXCtsFlow são definidos como TRUE
    • fDtrControl é definido como DTR_CONTROL_HANDSHAKE
    • fRtsControl está definido como RTS_CONTROL_HANDSHAKE

Observação

O cabeçalho winbase.h define BuildCommDCB como um alias que seleciona automaticamente a versão ANSI ou Unicode dessa função com base na definição da constante de pré-processador UNICODE. Misturar o uso do alias neutro de codificação com código que não seja neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Convenções para protótipos de função.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows XP
Servidor mínimo com suporte Windows Server 2003
Plataforma de Destino Windows
Cabeçalho winbase.h (incluir Windows.h)
Biblioteca Kernel32.lib
DLL Kernel32.dll

Confira também

Funções de comunicação

Recursos de comunicação

DCB

Setcommstate