共用方式為


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 終止 Unicode 字串的指標,其中包含要設定的屬性名稱。 這可以是其中一個預先定義的 密鑰儲存屬性識別碼 或自定義屬性識別碼。

[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) 不會顯示任何使用者介面。 如果提供者必須顯示要運作的UI,呼叫會失敗,KSP應該將 NTE_SILENT_CONTEXT 錯誤碼設定為最後一個錯誤。
 

對於 NCRYPT_SECURITY_DESCR_PROPERTY 屬性,此參數也必須包含下列其中一個值,這個值會識別要設定的安全性描述元部分。

意義
OWNER_SECURITY_INFORMATION
設定物件擁有者 (SID) 的安全性識別碼 。 使用 SetSecurityDescriptorOwner 函 式,在 SECURITY_DESCRIPTOR 結構中設定擁有者 SID。
GROUP_SECURITY_INFORMATION
設定物件主要群組的 SID。 使用 SetSecurityDescriptorGroup 函式,在 SECURITY_DESCRIPTOR 結構中設定群組 SID。
DACL_SECURITY_INFORMATION
設定 DACL) (任意存取控制清單 。 使用 SetSecurityDescriptorDacl 函式,在 SECURITY_DESCRIPTOR 結構中設定 DACL。
SACL_SECURITY_INFORMATION
設定 系統訪問控制清單 (SACL) 。 使用 SetSecurityDescriptorSacl 函式,在 SECURITY_DESCRIPTOR 結構中設定 SACL。
LABEL_SECURITY_INFORMATION
在物件的 SACL 中設定強制標籤存取控制專案。 使用 SetSecurityDescriptorSacl 函式,在 SECURITY_DESCRIPTOR 結構中設定 SACL。 如需強制標籤訪問控制專案的詳細資訊,請參閱 Windows 完整性機制設計

傳回值

傳回狀態代碼,指出函式的成功或失敗。

可能的傳回碼包括但不限於下列專案。

傳回碼 Description
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
標頭 ncrypt.h
程式庫 Ncrypt.lib
Dll Ncrypt.dll