Поделиться через


Функция SCardIntroduceReaderA (winscard.h)

Функция SCardIntroduceReader представляет новое имя существующего средствачтениясмарт-карт.

заметки средства чтения смарт-карт автоматически отображаются в системе; Программа установки средства чтения смарт-карт может также представить средство чтения смарт-карт в систему.
 

Синтаксис

LONG SCardIntroduceReaderA(
  [in] SCARDCONTEXT hContext,
  [in] LPCSTR       szReaderName,
  [in] LPCSTR       szDeviceName
);

Параметры

[in] hContext

Дескриптор, определяющий контекст диспетчера ресурсов . Контекст диспетчера ресурсов задается предыдущим вызовом SCardEstablishContext. Этот параметр не может быть значение NULL.

[in] szReaderName

Отображаемое имя для чтения.

[in] szDeviceName

Имя системы средства чтения смарт-карт, например MyReader 01.

Возвращаемое значение

Эта функция возвращает разные значения в зависимости от того, выполнена ли она успешно или завершается сбоем.

Возвращаемый код Описание
Success
SCARD_S_SUCCESS.
сбоя
Код ошибки. Дополнительные сведения см. в возвращаемых значений смарт-карт.

Замечания

Все средства чтения, установленные в системе, автоматически отображаются по имени системы. Как правило, SCardIntroduceReader вызывается только для изменения имени существующего средства чтения.

Функция SCardIntroduceReader — это функция управления базами данных. Дополнительные сведения о других функциях управления базами данных см. в функциях управления базами данных смарт-карт.

Чтобы удалить средство чтения, используйте SCardForgetReader.

Примеры

В следующем примере показано введение средства чтения смарт-карт.

// This example renames the reader name.
// This is a two-step process (first add the new
// name, then forget the old name).
LPBYTE    pbAttr = NULL;
DWORD     cByte = SCARD_AUTOALLOCATE;
LONG      lReturn;

// Step 1: Add the new reader name.
// The device name attribute is a necessary value.
// hCardHandle was set by a previous call to SCardConnect.
lReturn = SCardGetAttrib(hCardHandle,
                         SCARD_ATTR_DEVICE_SYSTEM_NAME,
                         (LPBYTE)&pbAttr,
                         &cByte);
if ( SCARD_S_SUCCESS != lReturn )
{
    printf("Failed SCardGetAttrib\n");
    exit(1);  // Or other error action
}
// Add the reader name.
// hContext was set earlier by SCardEstablishContext.
lReturn = SCardIntroduceReader(hContext,
                               TEXT("My New Reader Name"),
                               (LPCTSTR)pbAttr );
if ( SCARD_S_SUCCESS != lReturn )
{
    printf("Failed SCardIntroduceReader\n");
    exit(1);  // Or other error action
}

// Step 2: Forget the old reader name.
lReturn = SCardForgetReader(hContext,
                            (LPCTSTR)pbAttr );
if ( SCARD_S_SUCCESS != lReturn )
{
    printf("Failed SCardForgetReader\n");
    exit(1);  // Or other error action
}

// Free the memory when done.
lReturn = SCardFreeMemory( hContext, pbAttr );

Заметка

Заголовок winscard.h определяет SCardIntroduceReader как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows XP [только классические приложения]
минимальный поддерживаемый сервер Windows Server 2003 [только классические приложения]
целевая платформа Виндоус
заголовка winscard.h
библиотеки Winscard.lib
DLL Winscard.dll

См. также

SCardEstablishContext

SCardForgetReader

SCardIntroduceCardType

SCardIntroduceReaderGroup