Función SCardGetCardTypeProviderNameA (winscard.h)
La función
Sintaxis
LONG SCardGetCardTypeProviderNameA(
[in] SCARDCONTEXT hContext,
[in] LPCSTR szCardName,
[in] DWORD dwProviderId,
[out] CHAR *szProvider,
[in, out] LPDWORD pcchProvider
);
Parámetros
[in] hContext
Identificador que identifica el contexto del administrador de recursos de . El contexto del administrador de recursos se puede establecer mediante una llamada anterior a SCardEstablishContext. Este valor puede ser null si la llamada a SCardGetCardTypeProviderName no se dirige a un contexto de específico.
[in] szCardName
Nombre del tipo de tarjeta con el que está asociado este nombre de proveedor.
[in] dwProviderId
Identificador del proveedor asociado a este tipo de tarjeta.
Valor | Significado |
---|---|
|
La función recupera el nombre del proveedor de servicios principal de la tarjeta inteligente como una cadena GUID. |
|
La función recupera el nombre del proveedor de servicios criptográficos . |
|
La función recupera el nombre de la tarjeta inteligente proveedor de almacenamiento de claves (KSP). |
|
La función recupera el nombre del módulo de tarjeta. |
[out] szProvider
Variable de cadena para recibir el nombre del proveedor de tras la finalización correcta de esta función.
[in, out] pcchProvider
Puntero al valor DWORD de
En la salida, este valor representa el número real de caracteres, incluida la terminador de null, en la variable szProvider szProvider.
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.
Tras completar correctamente esta función, el valor de szProvider se puede usar como tercer parámetro en una llamada a CryptAcquireContext.
Ejemplos
En el ejemplo siguiente se muestra cómo recuperar el nombre del proveedor para el contexto de lector especificado. En el ejemplo se supone que hContext es un identificador válido obtenido de una llamada anterior a la función SCardEstablishContext.
LPTSTR szProvider = NULL;
LPTSTR szCardName = _T("WindowsCard");
DWORD chProvider = SCARD_AUTOALLOCATE;
LONG lReturn = SCARD_S_SUCCESS;
// Retrieve the provider name.
// hContext was set by SCardEstablishContext.
lReturn = SCardGetCardTypeProviderName(hContext,
szCardName,
SCARD_PROVIDER_CSP,
(LPTSTR)&szProvider,
&chProvider);
if (SCARD_S_SUCCESS == lReturn)
{
BOOL fSts = TRUE;
HCRYPTPROV hProv = NULL;
// Acquire a Cryptographic operation context.
fSts = CryptAcquireContext(&hProv,
NULL,
szProvider,
PROV_RSA_FULL,
0);
// Perform Cryptographic operations with smart card
// ...
// Free memory allocated by SCardGetCardTypeProviderName.
lReturn = SCardFreeMemory(hContext, szProvider);
}
Nota
El encabezado winscard.h define SCardGetCardTypeProviderName 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 |