Функция BCryptResolveProviders (bcrypt.h)
Функция BCryptResolveProviders получает коллекцию всех поставщиков, отвечающих указанным критериям.
Синтаксис
NTSTATUS BCryptResolveProviders(
[in, optional] LPCWSTR pszContext,
[in, optional] ULONG dwInterface,
[in, optional] LPCWSTR pszFunction,
[in, optional] LPCWSTR pszProvider,
[in] ULONG dwMode,
[in] ULONG dwFlags,
[in, out] ULONG *pcbBuffer,
[in, out] PCRYPT_PROVIDER_REFS *ppBuffer
);
Параметры
[in, optional] pszContext
Указатель на строку Юникода, завершающую значение NULL, которая содержит идентификатор контекста, для которого необходимо получить поставщиков. Если для этого задано значение NULL или пустую строку, предполагается контекст по умолчанию.
[in, optional] dwInterface
Идентификатор интерфейса, который должен поддерживать поставщик. Это должен быть один из идентификаторов интерфейса CNG. Если параметр pszFunction
[in, optional] pszFunction
Указатель на строку Юникода, завершающую значение NULL, которая содержит идентификатор алгоритма или функции, который должен поддерживать поставщик. Это может быть один из стандартных идентификаторов алгоритма CNG или идентификатор другого зарегистрированного алгоритма. Если dwInterface имеет значение, отличное от нуля, pszFunction можно null, чтобы включить все алгоритмы и функции.
[in, optional] pszProvider
Указатель на строку Юникода, завершающую значение NULL, которая содержит имя поставщика для извлечения. Если этот параметр null, все поставщики будут включены.
Этот параметр позволяет указать конкретный поставщик для получения в случае, если несколько поставщиков соответствуют другим критериям.
[in] dwMode
Указывает тип извлекаемого поставщика. Это может быть одно из следующих значений.
Ценность | Значение |
---|---|
|
Получение поставщиков пользовательского режима. |
|
Получение поставщиков режима ядра. |
|
Получение поставщиков режима пользователя и режима ядра. |
[in] dwFlags
Набор флагов, изменяющих поведение этой функции.
Это может быть ноль или сочетание одного или нескольких следующих значений.
[in, out] pcbBuffer
Указатель на значение DWORD
[in, out] ppBuffer
Адрес указателя CRYPT_PROVIDER_REFS, который получает коллекцию поставщиков, удовлетворяющих указанным критериям.
Если этот параметр null, эта функция вернет STATUS_SUCCESS и поместит значение, указанное параметром pcbBuffer, требуемым размером в байтах всех данных.
Если этот параметр является адресом указателя NULL, эта функция выделяет необходимую память, заполняет память сведениями о поставщиках и помещается указатель на эту память в этом параметре. Завершив использование этой памяти, освободив его, передав этот указатель на функцию BCryptFreeBuffer.
Если этот параметр является адресом указателя, отличного отNULL, эта функция будет копировать сведения о поставщике в этот буфер. Параметр pcbBuffer должен содержать размер в байтах всего буфера. Если буфер недостаточно велик для хранения всех сведений поставщика, эта функция вернет STATUS_BUFFER_TOO_SMALL.
Возвращаемое значение
Возвращает код состояния, указывающий на успешность или сбой функции.
Возможные коды возврата включают в себя, но не ограничиваются следующими.
Возвращаемый код | Описание |
---|---|
|
Функция была успешной. |
|
Размер, указанный параметром pcbBuffer, недостаточно велик для хранения всех данных. |
|
Один или несколько параметров недопустимы. |
|
Поставщик не может быть найден, соответствующий всем указанным критериям. |
Замечания
BCryptResolveProviders можно вызывать из пользовательского режима или режима ядра. Вызывающие вызовы режима ядра должны выполняться в PASSIVE_LEVELIRQL.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Windows Vista [только классические приложения] |
минимальный поддерживаемый сервер | Windows Server 2008 [только классические приложения] |
целевая платформа | Виндоус |
заголовка | bcrypt.h |
библиотеки |
Bcrypt.lib |
DLL | Bcrypt.dll |