Compartir a través de


Función BuildCommDCBA (winbase.h)

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

Sintaxis

BOOL BuildCommDCBA(
  [in]  LPCSTR 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 DCB a la que apunta lpDCB.

La cadena debe tener el mismo formato que los argumentos de la línea de comandos del 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|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 cadena siguiente 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 DCB que recibe la información.

Valor devuelto

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

Si la función no se realiza correctamente, el valor devuelto es cero. Para obtener información de error extendida, llame a GetLastError.

Comentarios

La función BuildCommDCB solo ajusta los miembros de la estructura DCB que se ven específicamente afectados 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 comando mode del sistema.
  • De forma predeterminada, BuildCommDCB deshabilita XON/XOFF y el control de flujo de hardware. Para habilitar el control de flujo, debe establecer explícitamente los miembros adecuados de la estructura DCB .
La función BuildCommDCB solo rellena los miembros de la estructura DCB . Para aplicar esta configuración a un puerto serie, use la función SetCommState .

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

La forma más reciente de la sintaxis del modo permite establecer explícitamente los valores de los miembros del control de flujo de la estructura DCB . 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 , como se indica a continuación:

  • Para una cadena que no termina con una x o p:
    • fInX, fOutX, fOutXDsrFlow y fOutXCtsFlow están establecidos en FALSE
    • fDtrControl se establece en DTR_CONTROL_ENABLE
    • fRtsControl se establece en RTS_CONTROL_ENABLE
  • Para una cadena que termina con una x:
    • fInX y fOutX se establecen en TRUE.
    • fOutXDsrFlow y fOutXCtsFlow se establecen en FALSE.
    • fDtrControl se establece en DTR_CONTROL_ENABLE
    • fRtsControl se establece en RTS_CONTROL_ENABLE
  • Para una cadena que termina con p:
    • fInX y fOutX se establecen en FALSE.
    • fOutXDsrFlow y fOutXCtsFlow se establecen en TRUE.
    • fDtrControl se establece en DTR_CONTROL_HANDSHAKE
    • fRtsControl se establece 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 neutro de codificación con código que no es neutral de codificación puede provocar discrepancias que dan lugar a errores de compilación o en tiempo de ejecución. Para obtener más información, vea Convenciones para prototipos de función.

Requisitos

Requisito Value
Cliente mínimo compatible Windows XP
Servidor mínimo compatible Windows Server 2003
Plataforma de destino Windows
Encabezado winbase.h (incluya Windows.h)
Library Kernel32.lib
Archivo DLL Kernel32.dll

Vea también

Funciones de comunicaciones

Recursos de comunicaciones

DCB

SetCommState