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


Функция NCryptSetProperty (ncrypt.h)

Функция NCryptSetProperty задает значение именованного свойства для объекта хранилища ключей CNG.

Синтаксис

SECURITY_STATUS NCryptSetProperty(
  [in] NCRYPT_HANDLE hObject,
  [in] LPCWSTR       pszProperty,
  [in] PBYTE         pbInput,
  [in] DWORD         cbInput,
  [in] DWORD         dwFlags
);

Параметры

[in] hObject

Дескриптор объекта хранилища ключей для задания свойства.

[in] pszProperty

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

[in] pbInput

Адрес буфера, содержащего новое значение свойства. Параметр cbInput содержит размер этого буфера.

[in] cbInput

Размер буфера pbInput в байтах.

[in] dwFlags

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

Значение Значение
NCRYPT_PERSIST_FLAG
Свойство должно храниться в хранилище ключей вместе с материалом ключа. Этот флаг можно использовать только в том случае, если параметр hObject является дескриптором сохраняемого ключа. Максимальный размер данных для любого сохраненного свойства составляет NCRYPT_MAX_PROPERTY_DATA байтов.
NCRYPT_PERSIST_ONLY_FLAG
Не перезаписывать встроенные значения для этого свойства и задавать только сохраненные пользователем свойства ключа. Максимальный размер данных для любого сохраненного свойства составляет NCRYPT_MAX_PROPERTY_DATA байтов. Этот флаг нельзя использовать со свойством NCRYPT_SECURITY_DESCR_PROPERTY .
NCRYPT_SILENT_FLAG
Запрашивает, чтобы поставщик служб ключей (KSP) не отображал пользовательский интерфейс. Если поставщик должен отобразить пользовательский интерфейс для работы, вызов завершается ошибкой и KSP должен задать код ошибки NTE_SILENT_CONTEXT в качестве последней ошибки.
 

Для свойства NCRYPT_SECURITY_DESCR_PROPERTY этот параметр также должен содержать одно из следующих значений, которое определяет часть дескриптора безопасности для задания.

Значение Значение
OWNER_SECURITY_INFORMATION
Задайте идентификатор безопасности (SID) владельца объекта. Используйте функцию SetSecurityDescriptorOwner , чтобы задать идентификатор безопасности владельца в структуре SECURITY_DESCRIPTOR .
GROUP_SECURITY_INFORMATION
Задайте идентификатор безопасности основной группы объекта. Используйте функцию SetSecurityDescriptorGroup , чтобы задать идентификатор безопасности группы в структуре SECURITY_DESCRIPTOR .
DACL_SECURITY_INFORMATION
Задайте список управления доступом на уровне пользователей (DACL). Используйте функцию SetSecurityDescriptorDacl , чтобы задать DACL в структуре SECURITY_DESCRIPTOR .
SACL_SECURITY_INFORMATION
Задайте системный список управления доступом (SACL). Используйте функцию SetSecurityDescriptorSacl , чтобы задать saCL в структуре SECURITY_DESCRIPTOR .
LABEL_SECURITY_INFORMATION
Задайте обязательную запись управления доступом меток в SACL объекта . Используйте функцию SetSecurityDescriptorSacl , чтобы задать saCL в структуре SECURITY_DESCRIPTOR . Дополнительные сведения об обязательной записи управления доступом к метки см. в разделе Проектирование механизма целостности Windows.

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

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

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

Код возврата Описание
ERROR_SUCCESS
Функция выполнена успешно.
NTE_BAD_FLAGS
Параметр dwFlags содержит недопустимое значение.
NTE_INVALID_HANDLE
Недопустимый параметр hObject .
NTE_INVALID_PARAMETER
Один или несколько параметров являются недопустимыми.
NTE_NO_MEMORY
Произошел сбой выделения памяти.
NTE_NOT_SUPPORTED
Указанное свойство не поддерживается для объекта .

Комментарии

Служба не должна вызывать эту функцию из функции StartService. Если служба вызывает эту функцию из функции StartService, может возникнуть взаимоблокировка, и служба может перестать отвечать на запросы.

Требования

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