typedef struct _DCB {
    DWORD DCBlength;      /* sizeof(DCB)                     */
    DWORD BaudRate;       /* Baudrate at which running       */
    DWORD fBinary: 1;     /* Binary Mode (skip EOF check)    */
    DWORD fParity: 1;     /* Enable parity checking          */
    DWORD fOutxCtsFlow:1; /* CTS handshaking on output       */
    DWORD fOutxDsrFlow:1; /* DSR handshaking on output       */
    DWORD fDtrControl:3;  /* DTR Flow control                */
    DWORD fDsrSensitivity:1; /* DSR Sensitivity              */
    DWORD fTXContinueOnXoff: 1; /* Continue TX when Xoff sent */
    DWORD fOutX: 1;       /* Enable output X-ON/X-OFF        */
    DWORD fInX: 1;        /* Enable input X-ON/X-OFF         */
    DWORD fErrorChar: 1;  /* Enable Err Replacement          */
    DWORD fNull: 1;       /* Enable Null stripping           */
    DWORD fRtsControl:2;  /* Rts Flow control                */
    DWORD fAbortOnError:1; /* Abort all reads and writes on Error */
    DWORD fDummy2:17;     /* Reserved                        */
    WORD wReserved;       /* Not currently used              */
    WORD XonLim;          /* Transmit X-ON threshold         */
    WORD XoffLim;         /* Transmit X-OFF threshold        */
    BYTE ByteSize;        /* Number of bits/byte, 4-8        */
    BYTE Parity;          /* 0-4=None,Odd,Even,Mark,Space    */
    BYTE StopBits;        /* 0,1,2 = 1, 1.5, 2               */
    char XonChar;         /* Tx and Rx X-ON character        */
    char XoffChar;        /* Tx and Rx X-OFF character       */
    char ErrorChar;       /* Error replacement char          */
    char EofChar;         /* End of Input character          */
    char EvtChar;         /* Received Event character        */
    WORD wReserved1;      /* Fill for now.                   */
} DCB哪个代表 数据流控制,我跟踪了看不出来。
请教!谢谢

解决方案 »

  1.   

    typedef struct _DCB {           // dcb
      DWORD DCBlength;            // sizeof(DCB)
      DWORD BaudRate;             // current baud rate指定当前的波特率
      DWORD fBinary: 1;         // binary mode, no EOF check指定是否允许二进制模式,
                                  // WINDOWS 95中必须为TRUE
      DWORD fParity: 1;          // enable parity checking
                                 // 指定奇偶校验是否允许
      DWORD fOutxCtsFlow:1;       // CTS output flow control
                                  // 指定CTS是否用于检测发送控制。
                                   //当为TRUE是CTS为OFF,发送将被挂起。
      DWORD fOutxDsrFlow:1;         // DSR output flow control
                                  // 指定CTS是否用于检测发送控制。
                                  // 当为TRUE是CTS为OFF,发送将被挂起。
      DWORD fDtrControl:2;        // DTR flow control type
                                 // DTR_CONTROL_DISABLE值将DTR置为OFF,            
                                   // DTR_CONTROL_ENABLE值将DTR置为ON,  
                                   // DTR_CONTROL_HANDSHAKE允许DTR"握手",
        DWORD fDsrSensitivity:1;  // DSR sensitivity 当该值为TRUE时DSR为OFF时
                                   //接收的字节被忽略
      DWORD fTXContinueOnXoff:1; // XOFF continues Tx
                                 //指定当接收缓冲区已满,并且驱动程序已经发
                                 //送出XoffChar字符时发送是否停止。
                                  // TRUE时,在接收缓冲区接收到缓冲区已满的字节
                                  //XoffLim且驱动程序已经发送出XoffChar字符中止
                                  //接收字节之后,发送继续进行。
                                //FALSE时,在接收缓冲区接收到代表缓冲区已空的
                                  //字节XonChar且驱动程序已经发送出恢复发送的
                                  //XonChar之后,发送继续进行。
      DWORD fOutX: 1; // XON/XOFF out flow control
      TRUE时,接收到XoffChar之后便停止发送
      接收到XonChar之后将重新开始
      DWORD fInX: 1; // XON/XOFF in flow control
      TRUE时,接收缓冲区接收到代表缓冲区满的XoffLim之后,XoffChar发送出去
      接收缓冲区接收到代表缓冲区空的XonLim之后,XonChar发送出去
      DWORD fErrorChar: 1; // enable error replacement
      该值为TRUE且fParity为TRUE时,用ErrorChar 成员指定的字符代替奇偶校验错误的接收字符
      DWORD fNull: 1; // enable null stripping
      TRUE时,接收时去掉空(0值)字节
      DWORD fRtsControl:2; // RTS flow control
      RTS_CONTROL_DISABLE时,RTS置为OFF
      RTS_CONTROL_ENABLE时, RTS置为ON
      RTS_CONTROL_HANDSHAKE时,
      当接收缓冲区小于半满时RTS为ON
      当接收缓冲区超过四分之三满时RTS为OFF
      RTS_CONTROL_TOGGLE时,
      当接收缓冲区仍有剩余字节时RTS为ON ,否则缺省为OFF
      DWORD fAbortonError:1; // abort reads/writes on error
      TRUE时,有错误发生时中止读和写操作
      DWORD fDummy2:17; // reserved
      未使用
      WORD wReserved; // not currently used
      未使用,必须为0
      WORD XonLim; // transmit XON threshold
      指定在XON字符发送这前接收缓冲区中可允许的最小字节数
      WORD XoffLim; // transmit XOFF threshold
      指定在XOFF字符发送这前接收缓冲区中可允许的最小字节数
      BYTE ByteSize; // number of bits/byte, 4-8
      指定端口当前使用的数据位
      BYTE Parity; // 0-4=no,odd,even,,space
      指定端口当前使用的奇偶校验方法,可能为:
      EVENPARITY,MARKPARITY,NOPARITY,ODDPARITY
      BYTE StopBits; // 0,1,2 = 1, 1.5, 2
      指定端口当前使用的停止位数,可能为:
      ONESTOPBIT,ONE5STOPBITS,TWOSTOPBITS
      char XonChar; // Tx and Rx XON character
      指定用于发送和接收字符XON的值
      char XoffChar; // Tx and Rx XOFF character
      指定用于发送和接收字符XOFF值
      char ErrorChar; // error replacement character
      本字符用来代替接收到的奇偶校验发生错误时的值
      char EofChar; // end of input character
      当没有使用二进制模式时,本字符可用来指示数据的结束
      char EvtChar; // received event character
      当接收到此字符时,会产生一个事件
      WORD wReserved1; // reserved; do not use 未使用
      } DCB;