Función SCardConnectA (winscard.h)
La función SCardConnect
Sintaxis
LONG SCardConnectA(
[in] SCARDCONTEXT hContext,
[in] LPCSTR szReader,
[in] DWORD dwShareMode,
[in] DWORD dwPreferredProtocols,
[out] LPSCARDHANDLE phCard,
[out] LPDWORD pdwActiveProtocol
);
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 SCardEstablishContext.
[in] szReader
Nombre del lector que contiene la tarjeta de destino.
[in] dwShareMode
Marca que indica si otras aplicaciones pueden formar conexiones a la tarjeta.
[in] dwPreferredProtocols
Máscara de bits de protocolos aceptables para la conexión. Los valores posibles se pueden combinar con la operación de OR.
Valor | Significado |
---|---|
|
T=0 es un protocolo aceptable. |
|
T=1 es un protocolo aceptable. |
|
Este parámetro solo puede ser cero si dwShareMode está establecido en SCARD_SHARE_DIRECT. En este caso, los controladores no realizarán ninguna negociación de protocolos hasta que se envíe una directiva de control IOCTL_SMARTCARD_SET_PROTOCOL con SCardControl. |
[out] phCard
Identificador que identifica la conexión con la tarjeta inteligente en el lector designado.
[out] pdwActiveProtocol
Marca que indica el protocolo activo establecido.
Valor | Significado |
---|---|
|
T=0 es el protocolo activo. |
|
T=1 es el protocolo activo. |
|
SCARD_SHARE_DIRECT se ha especificado, de modo que no se haya producido ninguna negociación de protocolos. Es posible que no haya ninguna tarjeta en el lector. |
Valor devuelto
Esta función devuelve valores diferentes en función de si se realiza correctamente o no.
Código devuelto | Descripción |
---|---|
|
SCARD_S_SUCCESS. |
|
Un código de error. Para obtener más información, consulte valores devueltos de tarjeta inteligente. |
|
El lector no pudo conectarse a la tarjeta. |
Observaciones
La función
Ejemplos
En el ejemplo siguiente se crea una conexión a un lector. En el ejemplo se supone que hContext es un identificador válido de tipo SCARDCONTEXT recibido de una llamada anterior a SCardEstablishContext.
SCARDHANDLE hCardHandle;
LONG lReturn;
DWORD dwAP;
lReturn = SCardConnect( hContext,
(LPCTSTR)"Rainbow Technologies SCR3531 0",
SCARD_SHARE_SHARED,
SCARD_PROTOCOL_T0 | SCARD_PROTOCOL_T1,
&hCardHandle,
&dwAP );
if ( SCARD_S_SUCCESS != lReturn )
{
printf("Failed SCardConnect\n");
exit(1); // Or other appropriate action.
}
// Use the connection.
// Display the active protocol.
switch ( dwAP )
{
case SCARD_PROTOCOL_T0:
printf("Active protocol T0\n");
break;
case SCARD_PROTOCOL_T1:
printf("Active protocol T1\n");
break;
case SCARD_PROTOCOL_UNDEFINED:
default:
printf("Active protocol unnegotiated or unknown\n");
break;
}
// Remember to disconnect (by calling SCardDisconnect).
// ...
Nota
El encabezado winscard.h define SCardConnect 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 neutral de codificación con código que no es neutral de codificación puede dar lugar a errores de coincidencia que dan lugar a errores de compilación o tiempo de ejecución. Para obtener más información, vea Conventions for Function Prototypes.
Requisitos
Requisito | Valor |
---|---|
cliente mínimo admitido | Windows XP [solo aplicaciones de escritorio] |
servidor mínimo admitido | Windows Server 2003 [solo aplicaciones de escritorio] |
de la plataforma de destino de |
Windows |
encabezado de |
winscard.h |
biblioteca de |
Winscard.lib |
DLL de |
Winscard.dll |
Consulte también
SCardControl de