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


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

Функция SCardSetSetTypeProviderName указывает имя модуля (библиотеки динамической компоновки), содержащей поставщик для заданного имени карты и типа поставщика.

Синтаксис

LONG SCardSetCardTypeProviderNameW(
  [in] SCARDCONTEXT hContext,
  [in] LPCWSTR      szCardName,
  [in] DWORD        dwProviderId,
  [in] LPCWSTR      szProvider
);

Параметры

[in] hContext

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

[in] szCardName

Имя типа карты, с которым связано имя поставщика .

[in] dwProviderId

Идентификатор поставщика, связанного с этим типом карточки.

Ценность Значение
SCARD_PROVIDER_PRIMARY
1
Функция получает имяосновного поставщика услуг смарт-карты в виде строки GUID.
SCARD_PROVIDER_CSP
2
Функция извлекает имя поставщика криптографических служб (CSP).
SCARD_PROVIDER_KSP
3
Функция получает имя поставщика хранилища ключей смарт-карты (KSP).
SCARD_PROVIDER_CARD_MODULE
0x80000001
Функция получает имя модуля карточки.

[in] szProvider

Строка, содержащая имя поставщика, представляющее CSP.

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

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

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

Замечания

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

Эта функция задает имя поставщика, а для получения имени поставщика можно использовать SCardGetCardTypeProviderName.

Примеры

В следующем примере показано, как указать имя поставщика типа карточки.

LPTSTR            szNewProvName = _T("My Provider Name");
LPTSTR            szCardName = _T("WindowsCard");
LONG              lReturn = SCARD_S_SUCCESS;

// Set the card type provider name.
// hContext was set by SCardEstablishContext.
lReturn = SCardSetCardTypeProviderName(hContext,
                                      szCardName,
                                      SCARD_PROVIDER_CSP,
                                      szNewProvName);
if ( SCARD_S_SUCCESS != lReturn )
{
    printf("Failed SCardSetCardTypeProviderName - %x\n", lReturn);
    exit(1);
}

Заметка

Заголовок winscard.h определяет SCardSetCardTypeProviderName как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows XP [только классические приложения]
минимальный поддерживаемый сервер Windows Server 2003 [только классические приложения]
целевая платформа Виндоус
заголовка winscard.h
библиотеки Winscard.lib
DLL Winscard.dll

См. также

SCardGetCardTypeProviderName