функция обратного вызова 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 указателями на следующие функции, реализованные поставщиком:
- PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_GET
- PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_RELEASE
- PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_FREE_PASSWORD
- PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_FREE
- PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_FREE_IDENTIFIER
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 8 [только классические приложения] |
Минимальная версия сервера | Windows Server 2012 [только классические приложения] |
Целевая платформа | Windows |
Header | wincrypt.h |