共用方式為


NCryptCreateProtectionDescriptor 函式 (ncryptprotect.h)

NCryptCreateProtectionDescriptor 函式會擷取保護描述元物件的句柄。

語法

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

參數

[in] pwszDescriptorString

Null 終止的 Unicode 字串,其中包含保護描述項規則字串或規則的已註冊顯示名稱。

如果您指定顯示名稱,而且您希望此函式在登錄中尋找相關聯的保護描述項規則字串,則必須將 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

保護描述項物件句柄的指標。

傳回值

傳回狀態代碼,指出函式的成功或失敗。 可能的傳回碼包括但不限於下列專案。

傳回碼 Description
ERROR_SUCCESS
函式成功。
NTE_INVALID_PARAMETER
phDescriptor 參數不可為 NULL

pwszDescriptorString 參數不可以是 NULL,而且不能是空的 sting。

NTE_BAD_FLAGS
dwFlags 參數必須 NCRYPT_MACHINE_KEY_FLAGNCRYPT_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;;直流;;;WD) 」
  • “LOCAL=user”
  • “LOCAL=machine”
  • “WEBCREDENTIALS=MyPasswordName”
  • “WEBCREDENTIALS=MyPasswordName,myweb.com”
您可以使用 NCryptRegisterProtectionDescriptorName 函式,將顯示名稱與規則字串產生關聯,並將這兩者儲存在登錄中。

規格需求

需求
最低支援的用戶端 Windows 8 [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2012 [僅限傳統型應用程式]
目標平台 Windows
標頭 ncryptprotect.h
程式庫 NCrypt.lib
Dll NCrypt.dll

另請參閱

CNG DPAPI 函式