Функция SCardIntroduceReaderA (winscard.h)
Функция
Синтаксис
LONG SCardIntroduceReaderA(
[in] SCARDCONTEXT hContext,
[in] LPCSTR szReaderName,
[in] LPCSTR szDeviceName
);
Параметры
[in] hContext
Дескриптор, определяющий контекст диспетчера ресурсов . Контекст диспетчера ресурсов задается предыдущим вызовом SCardEstablishContext. Этот параметр не может быть значение NULL.
[in] szReaderName
Отображаемое имя для чтения.
[in] szDeviceName
Имя системы средства чтения смарт-карт, например MyReader 01.
Возвращаемое значение
Эта функция возвращает разные значения в зависимости от того, выполнена ли она успешно или завершается сбоем.
Возвращаемый код | Описание |
---|---|
|
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 |