Función SCardIntroduceCardTypeA (winscard.h)
La función
Sintaxis
LONG SCardIntroduceCardTypeA(
[in] SCARDCONTEXT hContext,
[in] LPCSTR szCardName,
[in, optional] LPCGUID pguidPrimaryProvider,
[in, optional] LPCGUID rgguidInterfaces,
[in] DWORD dwInterfaceCount,
[in] LPCBYTE pbAtr,
[in] LPCBYTE pbAtrMask,
[in] DWORD cbAtrLen
);
Parámetros
[in] hContext
Identificador que identifica el contexto del administrador de recursos de . El contexto del administrador de recursos se establece mediante una llamada anterior a SCardEstablishContext. Este parámetro no puede ser NULL.
[in] szCardName
Nombre por el que el usuario puede reconocer la tarjeta.
[in, optional] pguidPrimaryProvider
Puntero al identificador (GUID) de la tarjeta inteligente proveedor de servicios principal.
[in, optional] rgguidInterfaces
Matriz de identificadores (GUID) que identifican las interfaces compatibles con la tarjeta inteligente.
[in] dwInterfaceCount
Número de identificadores de la matriz rgguidInterfaces.
[in] pbAtr
cadena ATR que se pueden usar con fines coincidentes al consultar la base de datos de tarjetas inteligentes (para obtener más información, vea SCardListCards). La longitud de esta cadena viene determinada por el análisis normal de ATR.
[in] pbAtrMask
Máscara de bits opcional que se usará al comparar las ATR de tarjetas inteligentes con el ATR proporcionado en pbAtr. Si este valor no esNULL, debe apuntar a una cadena de bytes la misma longitud que la cadena ATR proporcionada en pbAtr. Cuando una cadena ATR determinada A se compara con el ATR proporcionado en pbAtr, coincide si y solo si A & M = pbAtr, donde M es la máscara proporcionada y & representa AND bit a bit.
[in] cbAtrLen
Longitud de ATR y máscara ATR opcional. Si este valor es cero, la longitud del ATR viene determinada por el análisis normal de ATR. Este valor no puede ser cero si se proporciona un valor pbAtr de
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. |
Observaciones
Esta función no se redirige, pero llamar a la función cuando se encuentra dentro de una sesión de Escritorio remoto no producirá un error. Solo significa que el resultado será del equipo remoto en lugar del equipo local.
La función
Para quitar una tarjeta inteligente, use SCardForgetCardType.
Ejemplos
En el ejemplo siguiente se muestra cómo introducir un tipo de tarjeta. En el ejemplo se supone que hContext es un identificador válido obtenido de una llamada anterior a la función SCardEstablishContext.
GUID MyGuid = { 0xABCDEF00,
0xABCD,
0xABCD,
0xAA, 0xBB, 0xCC, 0xDD,
0xAA, 0xBB, 0xCC, 0xDD };
static const BYTE MyATR[] = { 0xaa, 0xbb, 0xcc, 0x00, 0xdd };
static const BYTE MyATRMask[] = { 0xff, 0xff, 0xff, 0x00, 0xff};
LONG lReturn;
lReturn = SCardIntroduceCardType(hContext,
L"MyCardName",
&MyGuid,
NULL, // No interface array
0, // Interface count = 0
MyATR,
MyATRMask,
sizeof(MyATR));
if ( SCARD_S_SUCCESS != lReturn )
printf("Failed SCardIntroduceCardType\n");
Nota
El encabezado winscard.h define SCardIntroduceCardType 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 |