Функция SCardGetProviderIdA (winscard.h)
Функция SCardGetProviderId возвращает идентификатор (GUID) поставщика основной службы для данной карточки.
Вызывающий объект предоставляет имя смарт-карты (ранее введенной в систему) и получает зарегистрированный идентификатор GUID поставщика основных услуг, если он существует.
Синтаксис
LONG SCardGetProviderIdA(
[in] SCARDCONTEXT hContext,
[in] LPCSTR szCard,
[out] LPGUID pguidProviderId
);
Параметры
[in] hContext
Дескриптор, определяющий контекст диспетчера ресурсов для запроса. Контекст диспетчера ресурсов можно задать с помощью предыдущего вызова SCardEstablishContext. Этот параметр не может быть значение NULL.
[in] szCard
Имя карточки, определенной в системе.
[out] pguidProviderId
Идентификатор (GUID) основного поставщика услуг. Этот поставщик может быть активирован с помощью COM и будет предоставлять доступ к другим службам в карточке.
Возвращаемое значение
Эта функция возвращает разные значения в зависимости от того, выполнена ли она успешно или завершается сбоем.
Возвращаемый код | Описание |
---|---|
|
SCARD_S_SUCCESS. |
|
Код ошибки. Дополнительные сведения см. в возвращаемых значений смарт-карт. |
Замечания
Эта функция не перенаправляется, но вызов функции при выполнении сеанса удаленного рабочего стола не приведет к ошибке. Это означает, что результат будет только с удаленного компьютера вместо локального компьютера.
Функция SCardGetProviderId — это функция запроса к базе данных. Дополнительные сведения о других функциях запросов к базе данных см. в функции запросов к базе данных смарт-карт.
Примеры
В следующем примере показано, как получить идентификатор поставщика для указанной карточки. В примере предполагается, что hContext является допустимым дескриптором, полученным из предыдущего вызова функции SCardEstablishContext и что MyCardName был представлен предыдущим вызовом функции SCardIntroduceCardType.
GUID guidProv;
LONG lReturn;
lReturn = SCardGetProviderId(hContext,
L"MyCardName",
&guidProv);
if ( SCARD_S_SUCCESS != lReturn )
printf("Failed SCardGetProviderId - %x\n", lReturn);
else
{
// Use the provider GUID as needed.
// ...
}
Заметка
Заголовок winscard.h определяет SCardGetProviderId как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Windows XP [только классические приложения] |
минимальный поддерживаемый сервер | Windows Server 2003 [только классические приложения] |
целевая платформа | Виндоус |
заголовка | winscard.h |
библиотеки |
Winscard.lib |
DLL | Winscard.dll |