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


Функция BCryptQueryProviderRegistration (bcrypt.h)

Функция BCryptQueryProviderRegistration извлекает сведения о поставщике CNG.

Синтаксис

NTSTATUS BCryptQueryProviderRegistration(
  [in]      LPCWSTR             pszProvider,
  [in]      ULONG               dwMode,
  [in]      ULONG               dwInterface,
  [in, out] ULONG               *pcbBuffer,
  [in, out] PCRYPT_PROVIDER_REG *ppBuffer
);

Параметры

[in] pszProvider

Указатель на строку Юникода, завершающуюся null, которая содержит имя поставщика для получения сведений.

[in] dwMode

Указывает тип извлекаемой информации. Это может быть одно из следующих значений.

Значение Значение
CRYPT_ANY
Получение любых сведений о поставщике.
CRYPT_UM
Получение сведений о пользовательском режиме для поставщика.
CRYPT_KM
Получение сведений о режиме ядра для поставщика.
CRYPT_MM
Получение сведений о пользовательском режиме и режиме ядра для поставщика.

[in] dwInterface

Указывает интерфейс, для которого требуется получить сведения. Это может быть одно из следующих значений.

Значение Значение
BCRYPT_ASYMMETRIC_ENCRYPTION_INTERFACE
Получите интерфейс асимметричного шифрования.
BCRYPT_CIPHER_INTERFACE
Получите интерфейс шифра.
BCRYPT_HASH_INTERFACE
Получите хэш-интерфейс.
NCRYPT_KEY_STORAGE_INTERFACE
Получите интерфейс хранилища ключей.
BCRYPT_RNG_INTERFACE
Получение интерфейса генератора случайных чисел.
NCRYPT_SCHANNEL_INTERFACE
Получите интерфейс Schannel.
BCRYPT_SECRET_AGREEMENT_INTERFACE
Получите интерфейс секретного соглашения.
BCRYPT_SIGNATURE_INTERFACE
Получите интерфейс сигнатуры.

[in, out] pcbBuffer

Указатель на значение ULONG , которое при входе содержит размер буфера, на который указывает параметр ppBuffer , в байтах. При выходе это значение получает либо количество байтов, скопированных в буфер, либо требуемый размер (в байтах) буфера.

Примечание Это общий размер всего буфера в байтах, а не только размер CRYPT_PROVIDER_REG структуры. Буфер должен содержать другие данные для поставщиков в дополнение к структуре CRYPT_PROVIDER_REG .
 

[in, out] ppBuffer

Указатель на указатель буфера, который получает структуру CRYPT_PROVIDER_REG и другие данные, описывающие поставщика.

Если этот параметр имеет значение NULL, эта функция вернет STATUS_BUFFER_TOO_SMALL и поместит в значение, указанное параметром pcbBuffer , требуемый размер всех данных в байтах.

Если этот параметр является адресом указателя NULL , эта функция выделяет необходимую память, заполняет ее сведениями о поставщике и помещет указатель на эту память в этом параметре. Завершив использование этой памяти, освободите ее, передав указатель на функцию BCryptFreeBuffer .

Если этот параметр является адресом указателя, отличного от NULL , эта функция будет копировать сведения о поставщике в этот буфер. Параметр pcbBuffer должен содержать размер всего буфера в байтах. Если буфер недостаточно велик для хранения всех сведений о поставщике, эта функция вернет STATUS_BUFFER_TOO_SMALL.

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

Возвращает код состояния, указывающий на успешное или неудачное выполнение функции.

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

Код возврата Описание
STATUS_SUCCESS
Функция выполнена успешно.
STATUS_INVALID_PARAMETER
Один или несколько параметров являются недопустимыми.
STATUS_BUFFER_TOO_SMALL
Размер, заданный параметром pcbBuffer , недостаточно велик для хранения всех данных.
STATUS_NOT_FOUND
Не удалось найти поставщиков, соответствующих указанным критериям.

Комментарии

BCryptQueryProviderRegistration можно вызывать только в пользовательском режиме.

Требования

Требование Значение
Минимальная версия клиента Windows Vista [только классические приложения]
Минимальная версия сервера Windows Server 2008 [только классические приложения]
Целевая платформа Windows
Header bcrypt.h
Библиотека Bcrypt.lib
DLL Bcrypt.dll

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

BCryptFreeBuffer

CRYPT_PROVIDER_REG