Compartir a través de


Función SCardGetReaderDeviceInstanceIdA (winscard.h)

La función SCardGetReaderDeviceInstanceId obtiene el identificador de instancia de dispositivo del lector de tarjetas para el nombre de lector especificado. Esta función no afecta al estado del lector.

Sintaxis

LONG SCardGetReaderDeviceInstanceIdA(
  [in]            SCARDCONTEXT hContext,
  [in]            LPCSTR       szReaderName,
  [out, optional] LPSTR        szDeviceInstanceId,
  [in, out]       LPDWORD      pcchDeviceInstanceId
);

Parámetros

[in] hContext

Identificador que identifica el contexto del administrador de recursos para la consulta. Puede establecer el contexto del administrador de recursos mediante una llamada anterior a la función SCardEstablishContext. Este parámetro no puede ser NULL.

[in] szReaderName

Nombre del lector. Puede obtener este valor llamando a la función SCardListReaders.

[out, optional] szDeviceInstanceId

Búfer que recibe el identificador de instancia del dispositivo del lector. Si este valor es null, la función omite la longitud del búfer proporcionada en parámetro cchDeviceInstanceId, escribe la longitud del búfer que se habría devuelto si no se hubiera null a cchDeviceInstanceIdy devuelve un código correcto.

[in, out] pcchDeviceInstanceId

Longitud, en caracteres, del búfer de szDeviceInstanceId de , incluido el terminador de NULL . Si la longitud del búfer se especifica como SCARD_AUTOALLOCATE, el parámetro szDeviceInstanceId se convierte en un puntero a un puntero de bytes y recibe la dirección de un bloque de memoria que contiene el identificador de instancia. Este bloque de memoria debe desasignarse con la función SCardFreeMemory.

Valor devuelto

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

Código devuelto Descripción
correcto
SCARD_S_SUCCESS.
error de
Un código de error. Para obtener más información, consulte valores devueltos de tarjeta inteligente.

Observaciones

Esta función no se redirige. Al llamar a la función SCardGetReaderDeviceInstanceId cuando se produce un error en una sesión de Escritorio remoto con el código de error SCARD_E_READER_UNAVAILABLE.

Ejemplos


LONG     lReturn;
LPTSTR   szReaderName = "USB Smart Card Reader 0";
WCHAR    szDeviceInstanceId[256];
DWORD    cchDeviceInstanceId = 256;

// Retrieve the reader's device instance ID.
// hContext was set by a previous call to SCardEstablishContext.
lReturn = SCardGetReaderDeviceInstanceId (hContext,
                         szReaderName,
                         szDeviceInstanceId,
                         &cchDeviceInstanceId);

if ( SCARD_S_SUCCESS != lReturn )
{
    printf("Failed SCardGetReaderDeviceInstanceId - %x\n", lReturn);
    // Take appropriate action.
}



Nota

El encabezado winscard.h define SCardGetReaderDeviceInstanceId 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 8 [solo aplicaciones de escritorio]
servidor mínimo admitido Windows Server 2012 [solo aplicaciones de escritorio]
de la plataforma de destino de Windows
encabezado de winscard.h