Compartir a través de


Función SCardControl (winscard.h)

La función SCardControl proporciona control directo del lector. Puede llamarlo en cualquier momento después de una llamada correcta a SCardConnect y antes de una llamada correcta a SCardDisconnect. El efecto en el estado del lector depende del código de control.

Sintaxis

LONG SCardControl(
  [in]  SCARDHANDLE hCard,
  [in]  DWORD       dwControlCode,
  [in]  LPCVOID     lpInBuffer,
  [in]  DWORD       cbInBufferSize,
  [out] LPVOID      lpOutBuffer,
  [in]  DWORD       cbOutBufferSize,
  [out] LPDWORD     lpBytesReturned
);

Parámetros

[in] hCard

Valor de referencia devuelto desde SCardConnect.

[in] dwControlCode

Código de control para la operación. Este valor identifica la operación específica que se va a realizar.

[in] lpInBuffer

Puntero a un búfer que contiene los datos necesarios para realizar la operación. Este parámetro puede ser NULL si el parámetro dwControlCode especifica una operación que no requiere datos de entrada.

[in] cbInBufferSize

Tamaño, en bytes, del búfer al que apunta lpInBuffer.

[out] lpOutBuffer

Puntero a un búfer que recibe los datos de salida de la operación. Este parámetro puede ser NULL si el parámetro dwControlCode especifica una operación que no genera datos de salida.

[in] cbOutBufferSize

Tamaño, en bytes, del búfer al que apunta lpOutBuffer.

[out] lpBytesReturned

Puntero a un DWORD que recibe el tamaño, en bytes, de los datos almacenados en el búfer al que apunta lpOutBuffer.

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 SCardControl es una función de acceso directo a tarjetas. Para obtener más información sobre otras funciones de acceso directo, consulte Funciones de acceso directo a tarjetas.

Ejemplos

En el ejemplo siguiente se emite un código de control. En el ejemplo se supone que hCardHandle es un identificador válido recibido de una llamada anterior a SCardConnect y que dwControlCode es una variable de tipo DWORD inicializada previamente en un código de control válido. Este código de control concreto no requiere datos de entrada y no espera datos de salida.


lReturn = SCardControl( hCardHandle,
                        dwControlCode,
                        NULL,
                        0,
                        NULL,
                        0,
                        0 );
if ( SCARD_S_SUCCESS != lReturn )
    printf("Failed SCardControl\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

SCardConnect

SCardDisconnect