Compartir a través de


Función BuildCommDCBW (winbase.h)

Rellena una estructura DCB especificada con valores especificados en una cadena de control de dispositivo. La cadena de control de dispositivo usa la sintaxis del modo comando.

Sintaxis

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

Parámetros

[in] lpDef

Información del control del dispositivo. La función toma esta cadena, la analiza y, a continuación, establece los valores adecuados en la estructura de DCB apuntada por lpDCB.

La cadena debe tener el mismo formato que el modo argumentos de la línea de comandos del comando:

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}]

El nombre del dispositivo es opcional, pero debe especificar un dispositivo válido si se usa.

Por ejemplo, la siguiente cadena especifica una velocidad de baudios de 1200, sin paridad, 8 bits de datos y 1 bit de detención:

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

[out] lpDCB

Puntero a una estructura de DCB que recibe la información.

Valor devuelto

Si la función se ejecuta correctamente, el valor devuelto es distinto de cero.

Si se produce un error en la función, el valor devuelto es cero. Para obtener información de error extendida, llame a GetLastError.

Observaciones

La función BuildCommDCB ajusta solo los miembros de la estructura de DCB que se ven específicamente afectadas por el parámetro lpDef, con las siguientes excepciones:

  • Si la velocidad de baudios especificada es 110, la función establece los bits de detención en 2 para que permanezcan compatibles con el modo del sistema comando.
  • De forma predeterminada, BuildCommDCB deshabilita el control de flujo de hardware XON/XOFF. Para habilitar el control de flujo, debe establecer explícitamente los miembros adecuados de la estructura de DCB.
La función buildCommDCB de solo rellena los miembros de la estructura dcB de . Para aplicar esta configuración a un puerto serie, use la función SetCommState.

Hay formas más antiguas y recientes del modo sintaxis. La función BuildCommDCB admite ambos formularios. Sin embargo, no se pueden combinar las dos formas.

La forma más reciente del modo sintaxis le permite establecer explícitamente los valores de los miembros del control de flujo de la estructura de DCB de . Si usa una forma anterior de la sintaxis del modo , la función BuildCommDCB establece los miembros del control de flujo de la estructura dcB de , como se indica a continuación:

  • Para una cadena que no termina con una x o una p:
    • fInX, fOutX, fOutXDsrFlowy fOutXCtsFlow están establecidos en FALSE
    • fDtrControl está establecido en DTR_CONTROL_ENABLE
    • fRtsControl está establecido en RTS_CONTROL_ENABLE
  • Para una cadena que termina con una x:
    • fInX y fOutX se establecen en TRUE
    • fOutXDsrFlow y fOutXCtsFlow están establecidos en FALSE
    • fDtrControl está establecido en DTR_CONTROL_ENABLE
    • fRtsControl está establecido en RTS_CONTROL_ENABLE
  • Para una cadena que termina con una p:
    • fInX y fOutX se establecen en FALSE
    • fOutXDsrFlow y fOutXCtsFlow se establecen en TRUE
    • fDtrControl está establecido en DTR_CONTROL_HANDSHAKE
    • fRtsControl está establecido en RTS_CONTROL_HANDSHAKE

Nota

El encabezado winbase.h define BuildCommDCB como alias que selecciona automáticamente la versión ANSI o Unicode de esta función en función de la definición de la constante de preprocesador UNICODE. La combinación del uso del alias neutral de codificación con código que no es neutral de codificación puede dar lugar a errores de coincidencia que dan lugar a errores de compilación o tiempo de ejecución. Para obtener más información, vea Conventions for Function Prototypes.

Requisitos

Requisito Valor
cliente mínimo admitido Windows XP
servidor mínimo admitido Windows Server 2003
de la plataforma de destino de Windows
encabezado de winbase.h (incluya Windows.h)
biblioteca de Kernel32.lib
DLL de Kernel32.dll

Consulte también

funciones de comunicaciones de

recursos de comunicaciones

DCB

SetCommState