Поделиться через


Функция SCardGetProviderIdA (winscard.h)

Функция SCardGetProviderId возвращает идентификатор (GUID) основного поставщика услуг для заданного карта.

Вызывающий объект предоставляет имя смарт-карта (ранее представленного в системе) и получает зарегистрированный идентификатор GUID основного поставщика услуг, если таковой существует.

Синтаксис

LONG SCardGetProviderIdA(
  [in]  SCARDCONTEXT hContext,
  [in]  LPCSTR       szCard,
  [out] LPGUID       pguidProviderId
);

Параметры

[in] hContext

Дескриптор, идентифицирующий контекст Resource Manager для запроса. Контекст диспетчера ресурсов можно задать с помощью предыдущего вызова SCardEstablishContext. Этот параметр не может иметь значение NULL.

[in] szCard

Имя карта, определенное для системы.

[out] pguidProviderId

Идентификатор (GUID) основного поставщика услуг. Этот поставщик может быть активирован с помощью COM и будет предоставлять доступ к другим службам в карта.

Возвращаемое значение

Эта функция возвращает различные значения в зависимости от того, является ли она успешной или неудачной.

Код возврата Описание
Успешно
SCARD_S_SUCCESS.
Failure
Код ошибки. Дополнительные сведения см. в разделе Возвращаемые значения смарт-карты.

Комментарии

Эта функция не перенаправляется, но вызов функции в сеансе удаленного рабочего стола не приведет к ошибке. Это означает только, что результат будет получен с удаленного компьютера, а не с локального компьютера.

Функция 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 [только классические приложения]
Целевая платформа Windows
Header winscard.h
Библиотека Winscard.lib
DLL Winscard.dll

См. также раздел

SCardEstablishContext

SCardListCards

SCardListInterfaces

SCardListReaderGroups

SCardListReaders