Функция SCardGetReaderDeviceInstanceIdW (winscard.h)
Функция SCardGetReaderDeviceInstanceId получает идентификатор экземпляра устройства средства чтения карт для заданного имени средства чтения. Эта функция не влияет на состояние средства чтения.
Синтаксис
LONG SCardGetReaderDeviceInstanceIdW(
[in] SCARDCONTEXT hContext,
[in] LPCWSTR szReaderName,
[out, optional] LPWSTR 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 |