Compartir a través de


Función SCardGetStatusChangeA (winscard.h)

La función SCardGetStatusChange bloquea la ejecución hasta que cambia la disponibilidad actual de las tarjetas en un conjunto específico de lectores.

El autor de la llamada proporciona una lista de lectores que se van a supervisar mediante una matriz de SCARD_READERSTATE y la cantidad máxima de tiempo (en milisegundos) que está dispuesto a esperar a que se produzca una acción en uno de los lectores enumerados. Tenga en cuenta que SCardGetStatusChange usa el valor proporcionado por el usuario en los miembros dwCurrentState de la matriz rgReaderStatesSCARD_READERSTATE como definición del estado actual de los lectores. La función devuelve cuando hay un cambio en la disponibilidad, después de haber rellenado los miembros dwEventState de rgReaderStates adecuadamente.

Sintaxis

LONG SCardGetStatusChangeA(
  [in]      SCARDCONTEXT         hContext,
  [in]      DWORD                dwTimeout,
  [in, out] LPSCARD_READERSTATEA rgReaderStates,
  [in]      DWORD                cReaders
);

Parámetros

[in] hContext

Identificador que identifica el contexto del administrador de recursos. El contexto del administrador de recursos se establece mediante una llamada anterior a la función SCardEstablishContext .

[in] dwTimeout

Cantidad máxima de tiempo, en milisegundos, para esperar una acción. Un valor de cero hace que la función devuelva inmediatamente. Un valor de INFINITE hace que esta función nunca agote el tiempo de espera.

[in, out] rgReaderStates

Matriz de estructuras de SCARD_READERSTATE que especifican los lectores que se van a watch y que reciben el resultado.

Para recibir una notificación de la llegada de un nuevo lector de tarjetas inteligentes, establezca el miembro szReader de una estructura de SCARD_READERSTATE en "\\? PnP?\Notification" y establezca todos los demás miembros de esa estructura en cero.

Importante Cada miembro de cada estructura de esta matriz debe inicializarse en cero y, a continuación, establecerse en valores específicos según sea necesario. Si no se hace esto, se producirá un error en la función en situaciones que impliquen lectores de tarjetas remotas.
 

[in] cReaders

Número de elementos de la matriz rgReaderStates .

Valor devuelto

Esta función devuelve valores diferentes en función de si se realiza correctamente o no.

Código devuelto Descripción
Success
SCARD_S_SUCCESS.
Error
Código de error. Para obtener más información, consulte Valores devueltos de tarjeta inteligente.

Comentarios

La función SCardGetStatusChange es una función de seguimiento de tarjetas inteligentes . Para obtener más información sobre otras funciones de seguimiento, consulte Funciones de seguimiento de tarjetas inteligentes.

Ejemplos

Para obtener información sobre cómo llamar a esta función, vea el ejemplo de SCardLocateCards.

Nota

El encabezado winscard.h define SCardGetStatusChange 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 [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2003 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado winscard.h
Library Winscard.lib
Archivo DLL Winscard.dll

Consulte también

SCARD_READERSTATE

SCardCancel

SCardEstablishContext

SCardLocateCards