絕對和Self-Relative安全性描述元

安全性描述項可以是絕對自我相對格式。 在絕對格式中,安全性描述元包含其資訊的指標,而不是資訊本身。 在自我相對格式中,安全性描述元會將 SECURITY_DESCRIPTOR 結構和相關聯的安全性資訊儲存在連續的記憶體區塊中。 若要判斷安全性描述元是否為自我相對或絕對,請呼叫 GetSecurityDescriptorControl 函式,並檢查SECURITY_DESCRIPTOR_CONTROL參數的 SE_SELF_RELATIVE 旗標。 您可以使用 MakeSelfRelativeSDMakeAbsoluteSD 函式在這兩種格式之間進行轉換。

當您建置安全性描述元並具有所有元件的指標時,例如,當擁有者、群組和任意 ACL 的預設設定可供使用時,絕對格式會很有用。 在此情況下,您可以呼叫 InitializeSecurityDescriptor 函式來初始化 SECURITY_DESCRIPTOR 結構,然後呼叫 SetSecurityDescriptorDacl 等函式,將 ACL 和 SID 指標指派給安全性描述元。

在自我相對格式中,安全性描述元一律會以 SECURITY_DESCRIPTOR 結構開頭,但安全性描述項的其他元件可以依任何順序遵循結構。 安全性描述項的元件會由描述元開頭的位移來識別,而不是使用記憶體位址。 當安全性描述項必須儲存在磁片上、透過通訊協定傳輸或複製到記憶體中時,這個格式非常有用。

除了 MakeAbsoluteSD之外,所有傳回安全描述元的函式都會使用自我相對格式來執行此動作。 傳遞為引數給函式的安全性描述元可以是自我相對或絕對形式。 如需詳細資訊,請參閱 函式的檔。