Функция NCryptCreateProtectionDescriptor (ncryptprotect.h)

Функция NCryptCreateProtectionDescriptor извлекает дескриптор защиты в объект дескриптора защиты.

Синтаксис

SECURITY_STATUS NCryptCreateProtectionDescriptor(
  [in]  LPCWSTR                  pwszDescriptorString,
  [in]  DWORD                    dwFlags,
  [out] NCRYPT_DESCRIPTOR_HANDLE *phDescriptor
);

Параметры

[in] pwszDescriptorString

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

Если вы указываете отображаемое имя и хотите, чтобы эта функция просматривала в реестре строку связанного правила дескриптора защиты, необходимо задать параметру dwFlagsзначение NCRYPT_NAMED_DESCRIPTOR_FLAG.

[in] dwFlags

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

  • Чтобы указать, что значение, заданное в параметре pwszDescriptorString , является полной строкой правила дескриптора защиты, а не отображаемого имени, задайте для параметра dwFlags нулевое значение (0).
  • Чтобы указать, что строка является отображаемым именем и что она сохраняется вместе со связанной строкой правила дескриптора в кусте реестра HKEY_LOCAL_MACHINE , побитовое или значение NCRYPT_NAMED_DESCRIPTOR_FLAG и значение NCRYPT_MACHINE_KEY_FLAG .
  • Чтобы указать, что строка является отображаемым именем и что она сохранена вместе со связанным правилом строки дескриптора, задайте в кусте реестра HKEY_CURRENT_USER только значение NCRYPT_NAMED_DESCRIPTOR_FLAG . То есть нет уникального флага для указания куста текущего пользовательского реестра.
Примечание Чтобы связать правило дескриптора с отображаемым именем и сохранить их в реестре, вызовите функцию NCryptRegisterProtectionDescriptorName .
 

[out] phDescriptor

Указатель на дескриптор дескриптора защиты.

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

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

Код возврата Описание
ERROR_SUCCESS
Функция выполнена успешно.
NTE_INVALID_PARAMETER
Параметр phDescriptor не может иметь значение NULL.

Параметр pwszDescriptorString не может иметь значение NULL и не может быть пустым sting.

NTE_BAD_FLAGS
Параметр dwFlags должен быть NCRYPT_MACHINE_KEY_FLAG или NCRYPT_NAMED_DESCRIPTOR_FLAG.
NTE_NO_MEMORY
Не удалось выделить память для получения строки зарегистрированного дескриптора защиты.
NTE_NOT_FOUND
Не удалось найти имя дескриптора защиты, указанного в параметре pwszDescriptorString .

Комментарии

Объект дескриптора защиты, созданный этой функцией, представляет собой внутреннюю структуру данных, содержащую сведения о дескрипторе. Его нельзя использовать напрямую. Однако приложение может использовать возвращенный дескриптор в следующих функциях:

В следующих примерах показаны строки правил дескриптора защиты:
  • "SID=S-1-5-21-4392301 AND SID=S-1-5-21-3101812"
  • "SDDL=O:S-1-5-5-0-290724G:SYD:(A;; CCDC;; S-1-5-5-0-290724)(A;; DC;;; WD)"
  • "LOCAL=user"
  • "LOCAL=machine"
  • "WEBCREDENTIALS=MyPasswordName"
  • "WEBCREDENTIALS=MyPasswordName,myweb.com"
Функцию NCryptRegisterProtectionDescriptorName можно использовать для связывания отображаемого имени со строкой правила и сохранения в реестре.

Требования

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

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

Функции DPAPI CNG