Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Функция SCardGetReaderDeviceInstanceId получает идентификатор экземпляра устройства средства чтения карт для заданного имени средства чтения. Эта функция не влияет на состояние средства чтения.
Синтаксис
LONG SCardGetReaderDeviceInstanceIdA(
[in] SCARDCONTEXT hContext,
[in] LPCSTR szReaderName,
[out, optional] LPSTR szDeviceInstanceId,
[in, out] LPDWORD pcchDeviceInstanceId
);
Параметры
[in] hContext
Дескриптор, определяющий контекст диспетчера ресурсов для запроса. Контекст диспетчера ресурсов можно задать предыдущим вызовом функции SCardEstablishContext. Этот параметр не может быть значение NULL.
[in] szReaderName
Имя читателя. Это значение можно получить, вызвав функцию SCardListReaders.
[out, optional] szDeviceInstanceId
Буфер, который получает идентификатор экземпляра устройства средства чтения. Если это значение равно NULL, функция игнорирует длину буфера, указанную в параметре cchDeviceInstanceId, записывает длину буфера, который был бы возвращен, если этот параметр не был NULL для cchDeviceInstanceIdи возвращает код успешного выполнения.
[in, out] pcchDeviceInstanceId
Длина в символах буфера szDeviceInstanceId, включая null конца. Если длина буфера указана как SCARD_AUTOALLOCATE, то параметр szDeviceInstanceId преобразуется в указатель на байтовый указатель и получает адрес блока памяти, содержащего идентификатор экземпляра. Этот блок памяти должен быть освобожден с помощью функции SCardFreeMemory.
Возвращаемое значение
Эта функция возвращает разные значения в зависимости от того, выполнена ли она успешно или завершается сбоем.
Возвращаемый код | Описание |
---|---|
|
SCARD_S_SUCCESS. |
|
Код ошибки. Дополнительные сведения см. в возвращаемых значений смарт-карт. |
Замечания
Эта функция не перенаправляется. Вызов функции SCardGetReaderDeviceInstanceId при сбое в сеансе удаленного рабочего стола с кодом ошибки SCARD_E_READER_UNAVAILABLE.
Примеры
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.
}
Заметка
Заголовок winscard.h определяет SCardGetReaderDeviceInstanceId в качестве псевдонима, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Windows 8 [только классические приложения] |
минимальный поддерживаемый сервер | Windows Server 2012 [только классические приложения] |
целевая платформа | Виндоус |
заголовка | winscard.h |