Функция NCryptEnumKeys (ncrypt.h)
Функция NCryptEnumKeys получает имена ключей, хранимых поставщиком.
Синтаксис
SECURITY_STATUS NCryptEnumKeys(
[in] NCRYPT_PROV_HANDLE hProvider,
[in, optional] LPCWSTR pszScope,
[out] NCryptKeyName **ppKeyName,
[in, out] PVOID *ppEnumState,
[in] DWORD dwFlags
);
Параметры
[in] hProvider
Дескриптор поставщика хранилища ключей для перечисления ключей. Этот дескриптор получается с помощью функции NCryptOpenStorageProvider .
[in, optional] pszScope
Этот параметр в настоящее время не используется и должен иметь значение NULL.
[out] ppKeyName
Адрес указателя на структуру NCryptKeyName , получающую имя полученного ключа. Когда приложение завершит использование этой памяти, освободите ее, вызвав функцию NCryptFreeBuffer .
[in, out] ppEnumState
Адрес указателя VOID , получающего сведения о состоянии перечисления, которые используются в последующих вызовах этой функции. Эта информация имеет значение только для поставщика хранилища ключей и непрозрачна для вызывающего объекта. Поставщик хранилища ключей использует эти сведения, чтобы определить, какой элемент является следующим в перечислении. Если переменная, на которую указывает этот параметр, содержит значение NULL, перечисление запускается с самого начала.
Если эта память больше не требуется, ее необходимо освободить, передав указатель на функцию NCryptFreeBuffer .
[in] dwFlags
Флаги, изменяющие поведение функции. Это может быть ноль или сочетание одного или нескольких из следующих значений.
Возвращаемое значение
Возвращает код состояния, указывающий на успешное или неудачное выполнение функции.
Возможные коды возврата включают, помимо прочего, следующие.
Код возврата | Описание |
---|---|
|
Функция выполнена успешно. |
|
Параметр dwFlags содержит недопустимое значение. |
|
Недопустимый параметр hProvider . |
|
Один или несколько параметров недопустимы. |
|
Произошел сбой выделения памяти. |
|
Достигнут конец перечисления. |
|
Параметр dwFlags содержит флаг NCRYPT_SILENT_FLAG , но перечисляемый ключ требует участия пользователя. |
Комментарии
Эта функция получает только один элемент при каждом вызове. Состояние перечисления хранится в переменной, на которую указывает параметр ppEnumState , поэтому оно должно сохраняться между вызовами этой функции. При извлечении последнего ключа, хранящегося у поставщика, эта функция возвращает NTE_NO_MORE_ITEMS при следующем вызове. Чтобы начать перечисление заново, задайте для переменной, на которую указывает параметр ppEnumState , значение NULL, освободите память, на которую указывает параметр ppKeyName , если она не имеет значение NULL, и снова вызовите эту функцию.
Служба не должна вызывать эту функцию из функции StartService. Если служба вызывает эту функцию из функции StartService, может возникнуть взаимоблокировка, и служба может перестать отвечать.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows Vista [классические приложения | Приложения UWP] |
Минимальная версия сервера | Windows Server 2008 [классические приложения | Приложения UWP] |
Целевая платформа | Windows |
Header | ncrypt.h |
Библиотека | Ncrypt.lib |
DLL | Ncrypt.dll |