Acceso al registro de estado del módem (MSR) en Windows

Seleccione idioma Seleccione idioma
Id. de artículo: 101417 - Ver los productos a los que se aplica este artículo
Este artículo se ha archivado. Se ofrece "tal cual" y no se volverá a actualizar.
Expandir todo | Contraer todo

Resumen

En el entorno de gráfico de Microsoft Windows, versiones 3.0 y 3.1 del controlador de comunicaciones (Comm.drv) no proporcionan los estados de las siguientes líneas de control absolutos:
   CTS     Clear To Send
   DSR     Data Set Ready
   RI      Ring Indicator
   RLSD    Receive Line Signal Detect; Carrier Detect (CD)
				
RLSD la señal es probablemente el más importante (para el software de módem) y, a menudo es necesario. En este artículo proporciona un método para obtener esta información. Aunque este método es no documentado, serán compatibles en versiones futuras de Windows de 16 bits.

Más información

La documentación del Kit de desarrollo de software (SDK) de Windows indica que SetCommEventMask() puede utilizarse para determinar el estado absoluto de estas señales, uso de los eventos EV_CTSS, EV_DSRS, EV_RING y EV_RLSDS. Sin embargo, en todos los casos, los bits EV_ * son o d en la EvtWord sin borrar el valor anterior de la EvtWord. Si un estado del módem registra (MSR) se ha establecido bits, no se borrará hasta que se llama a GetCommEventMask(). Por lo tanto, si un bit está establecido, pero cambia el estado, el EvtWord todavía indicará que se establece hasta que se llama a GetcommEventMask(). (Observe, sin embargo, que nunca se establecerá EV_RLSDS. Éste es un error en las versiones 3.0 y 3.1 de Windows Comm.drv.)

Una forma de obtener la información de estado es leer el registro de estado de módem directamente desde el universal asíncrono receptor transmisor (UART). Sin embargo, este método borra los bits de delta de la partición MSR ponerlas a estar disponible de Comm.drv. Por lo tanto, NOT esto!

Esta información también puede obtenerse de Comm.drv. Comm.drv mantiene un control de datos extendidos Block (DCB) denominado la DEB. Dentro de esta estructura es un campo denomina el MSRShadow. Se trata de una sombra (copia) de la partición MSR en el UART.

El código siguiente proporcionan acceso directo al byte MSRShadow. NO MODIFIQUE ESTA UBICACIÓN!
   #define COMM_MSRSHADOW 35
   #define MSR_CTS              0x10  /* Absolute CTS state in MSR  */ 
   #define MSR_DSR              0x20  /* Absolute DSR state in MSR  */ 
   #define MSR_RI               0x40  /* Absolute RI state in MSR   */ 
   #define MSR_RLSD             0x80  /* Absolute RLSD state in MSR */ 

   LPBYTE GetCommMSRShadow(short nCid)
   {
      /* Return far pointer to MSR shadow byte */ 

      return (((LPBYTE)SetCommEventMask(nCid, 0)) + COMM_MSRSHADOW);

   } /* GetCommMSRShadow */ 
				
cuando el puntero this disponible, se puede utilizar como sigue:
      lpMSRShadow = GetCommMSRShadow(nCid);
      bRLSD = (*lpMSRShadow) & MSR_RLSD;

      if (bRLSD)
          /** RLSD is high **/ 
      else
          /** RLSD is low **/ 
				
aunque este método se admite en una aplicación basada en Win32, debe utilizar GetCommModemStatus() en su lugar.

Propiedades

Id. de artículo: 101417 - Última revisión: miércoles, 12 de febrero de 2014 - Versión: 2.0
La información de este artículo se refiere a:
  • Microsoft Windows Software Development Kit 3.1
Palabras clave: 
kbnosurvey kbarchive kbmt kb16bitonly KB101417 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 101417

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com