Функция SCardGetReaderDeviceInstanceIdA (winscard.h)
Функция SCardGetReaderDeviceInstanceId получает идентификатор экземпляра устройства карта средства чтения для заданного имени средства чтения. Эта функция не влияет на состояние средства чтения.
Синтаксис
LONG SCardGetReaderDeviceInstanceIdA(
[in] SCARDCONTEXT hContext,
[in] LPCSTR szReaderName,
[out, optional] LPSTR szDeviceInstanceId,
[in, out] LPDWORD pcchDeviceInstanceId
);
Параметры
[in] hContext
Дескриптор, идентифицирующий контекст Resource Manager для запроса. Контекст диспетчера ресурсов можно задать с помощью предыдущего вызова функции 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 [только классические приложения] |
Целевая платформа | Windows |
Header | winscard.h |