Функция 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 не равен NULL или не является пустой строкой, можно задать для параметра dwInterface значение 0, чтобы функция вывела интерфейс.
[in, optional] pszFunction
Указатель на строку Юникода, завершающуюся null, которая содержит алгоритм или идентификатор функции, который должен поддерживать поставщик. Это может быть один из стандартных идентификаторов алгоритма CNG или идентификатор для другого зарегистрированного алгоритма. Если для dwInterface задано ненулевое значение, то pszFunction может иметь значение NULL , чтобы включить все алгоритмы и функции.
[in, optional] pszProvider
Указатель на строку Юникода, завершающуюся null, которая содержит имя извлекаемого поставщика. Если этот параметр имеет значение NULL, будут включены все поставщики.
Этот параметр позволяет указать конкретный поставщик для получения в случае, если несколько поставщиков соответствуют другим критериям.
[in] dwMode
Указывает тип извлекаемого поставщика. Это может быть одно из следующих значений.
Значение | Значение |
---|---|
|
Получение поставщиков пользовательского режима. |
|
Получение поставщиков режима ядра. |
|
Получение поставщиков пользовательского режима и режима ядра. |
[in] dwFlags
Набор флагов, которые изменяют поведение этой функции.
Это может быть ноль или сочетание одного или нескольких из следующих значений.
[in, out] pcbBuffer
Указатель на значение DWORD , которое в записи содержит размер буфера, на который указывает параметр ppBuffer , в байтах. При выходе это значение получает либо количество байтов, скопированных в буфер, либо требуемый размер (в байтах) буфера.
[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 [только классические приложения] |
Целевая платформа | Windows |
Header | bcrypt.h |
Библиотека | Bcrypt.lib |
DLL | Bcrypt.dll |
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по