ConvertStringSecurityDescriptorToSecurityDescriptorA 函式 (sddl.h)

ConvertStringSecurityDescriptorToSecurityDescriptor 函式會將字串格式的安全性描述元轉換成有效的功能安全性描述元。 此函式會擷取 ConvertSecurityDescriptorToStringSecurityDescriptor 函式轉換成字元串格式的安全性描述元。

語法

BOOL ConvertStringSecurityDescriptorToSecurityDescriptorA(
  [in]  LPCSTR               StringSecurityDescriptor,
  [in]  DWORD                StringSDRevision,
  [out] PSECURITY_DESCRIPTOR *SecurityDescriptor,
  [out] PULONG               SecurityDescriptorSize
);

參數

[in] StringSecurityDescriptor

Null 終止字串的指標,其中包含要轉換的 字串格式安全性描述元

[in] StringSDRevision

指定 StringSecurityDescriptor 字串的修訂層級。 目前此值必須是SDDL_REVISION_1。

[out] SecurityDescriptor

接收已轉換之安全性描述元指標之變數的指標。 傳回的安全性描述項是 自我相對的。 若要釋放傳回的緩衝區,請呼叫 LocalFree 函式。 若要將安全性描述元轉換為 絕對安全性描述元,請使用 MakeAbsoluteSD 函式。

[out] SecurityDescriptorSize

接收已轉換安全性描述元之大小之變數的指標,以位元組為單位。 此參數可以是 NULL。

傳回值

如果函式成功,則傳回非零的值。

如果此函式失敗,則傳回值為零。 若要取得擴充的錯誤資訊,請呼叫 GetLastErrorGetLastError 可能會傳回下列其中一個錯誤碼。

傳回碼 Description
ERROR_INVALID_PARAMETER
參數無效。
ERROR_UNKNOWN_REVISION
SDDL 修訂層級無效。
ERROR_NONE_MAPPED
在帳戶查閱作業中找不到輸入安全性描述元字串中 (SID) 的安全性識別碼

備註

如果 ace_type ACCESS_ALLOWED_OBJECT_ACE_TYPE ,而且object_guidinherit_object_guid 都未指定 GUID ,則 ConvertStringSecurityDescriptorToSecurityDescriptor 會將 ace_type 轉換為ACCESS_ALLOWED_ACE_TYPE。 如需 ace_typeobject_guidinherit_object_guid 欄位的相關信息,請參閱 Ace 字串

注意

sddl.h 標頭會根據 UNICODE 預處理器常數的定義,將 ConvertStringSecurityDescriptorToSecurityDescriptor 定義為別名,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱 函式原型的慣例

規格需求

需求
最低支援的用戶端 Windows XP [傳統型應用程式 |UWP 應用程式]
最低支援的伺服器 Windows Server 2003 [傳統型應用程式 |UWP 應用程式]
目標平台 Windows
標頭 sddl.h
程式庫 Advapi32.lib
Dll Advapi32.dll

另請參閱

存取控制 概觀

基本 存取控制 函式

ConvertSecurityDescriptorToStringSecurityDescriptor

ConvertSidToStringSid

ConvertStringSidToSid

MakeAbsoluteSD

SECURITY_DESCRIPTOR