функция обратного вызова PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_INITIALIZE (wincrypt.h)

Функция PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_INITIALIZE инициализирует поставщика. Эту функцию необходимо реализовать как часть пользовательского поставщика.

Синтаксис

PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_INITIALIZE PfnCryptObjectLocatorProviderInitialize;

BOOL PfnCryptObjectLocatorProviderInitialize(
  [in]  PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_FLUSH pfnFlush,
  [in]  LPVOID pContext,
  [out] DWORD *pdwExpectedObjectCount,
  [out] PCRYPT_OBJECT_LOCATOR_PROVIDER_TABLE *ppFuncTable,
  [out] void **ppPluginContext
)
{...}

Параметры

[in] pfnFlush

Указатель на реализацию функции PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_FLUSH .

[in] pContext

Указатель на определенный поставщиком объект, содержащий сведения о поставщике и объектах .

[out] pdwExpectedObjectCount

Указывает количество уникальных объектов, которые поставщик ожидает найти. Это значение сообщает вызывающей объекту объем памяти, выделяемой для хранения объектов. Задайте для этого значения ноль (0), чтобы указать значение по умолчанию в 10 000 объектов.

[out] ppFuncTable

Структура CRYPT_OBJECT_LOCATOR_PROVIDER_TABLE , содержащая указатели на функции, реализованные поставщиком. Никакие указатели в таблице не могут иметь значение NULL. Вызывающий объект не освобождает эту структуру. Ожидается, что поставщик вернет таблицу, которая не выделена в куче.

[out] ppPluginContext

Указатель на необязательный буфер, определенный этим поставщиком. Буфер не изменяется вызывающим объектом. Ваш поставщик может использовать эти данные, чтобы определить, какие действия следует выполнить или сохранить дополнительную информацию. Этому значению может быть присвоено значение NULL.

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

Если функция выполнена успешно, возвращается ненулевое значение (TRUE).

Если функция завершается сбоем, верните ноль (FALSE) и укажите соответствующую ошибку в функции SetLastError . Большинство ошибок передаются через Schannel без изменения, но такое поведение не гарантируется. Некоторые ошибки могут быть сопоставлены с другими.

Комментарии

В настоящее время функция PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_INITIALIZE вызывается только поставщиком службы безопасности (SSP) Secure Channel (Schannel). API шифрования (CAPI) будет внутренне вызывать настраиваемый поставщик, если, начиная с Windows 8, вы укажете имя субъекта безопасности в параметре pszPrincipal функции AcquireCredentialsHandle.

При реализации этой функции не забудьте заполнить таблицу функций CRYPT_OBJECT_LOCATOR_PROVIDER_TABLE указателями на следующие функции, реализованные поставщиком:

Чтобы зарегистрировать поставщика в реестре Windows, необходимо вызвать CryptRegisterDefaultOIDFunction .

Требования

Требование Значение
Минимальная версия клиента Windows 8 [только классические приложения]
Минимальная версия сервера Windows Server 2012 [только классические приложения]
Целевая платформа Windows
Header wincrypt.h

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

CRYPT_OBJECT_LOCATOR_PROVIDER_TABLE

PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_FLUSH