getPrivateObjectSecurity 函式 (securitybaseapi.h)

GetPrivateObjectSecurity 函式會從私用對象的安全性描述項擷取資訊。

語法

BOOL GetPrivateObjectSecurity(
  [in]            PSECURITY_DESCRIPTOR ObjectDescriptor,
  [in]            SECURITY_INFORMATION SecurityInformation,
  [out, optional] PSECURITY_DESCRIPTOR ResultantDescriptor,
  [in]            DWORD                DescriptorLength,
  [out]           PDWORD               ReturnLength
);

參數

[in] ObjectDescriptor

SECURITY_DESCRIPTOR 結構的指標。 這是要查詢的安全性描述項。

[in] SecurityInformation

一組位旗標,表示要擷取的安全性描述元部分。 這個參數可以是 SECURITY_INFORMATION 位旗標的組合。

[out, optional] ResultantDescriptor

緩衝區的指標,從指定的安全描述項接收所要求信息的複本。 SECURITY_DESCRIPTOR結構會以自我相對格式傳回。

[in] DescriptorLength

指定 ResultantDescriptor 參數所指向緩衝區的大小,以位元組為單位。

[out] ReturnLength

如果成功複製描述項,則函式設定為零的變數指標。 如果緩衝區對安全性描述元而言太小,這個變數會收到所需的位元元組數目。 如果此變數的值大於函式傳回時 DescriptorLength 參數的值,則函式會傳回 FALSE ,而且不會將任何安全性描述元複製到緩衝區。

傳回值

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

如果此函式失敗,則傳回值為零。 若要取得擴充的錯誤資訊,請呼叫 GetLastError

備註

此函式僅供資源管理員使用。 若要實作更新安全性描述元的標準訪問控制語意,資源管理員應該先確認符合下列條件,再呼叫 GetPrivateObjectSecurity

  • 如果要設定對象的擁有者,呼叫 進程 必須具有WRITE_OWNER許可權,或是對象的擁有者。
  • 如果要設定物件的 任意訪問控制清單 ,呼叫進程必須具有WRITE_DAC許可權,或成為對象的擁有者。
  • 如果設定物件的 系統訪問控制清單 ,則必須為呼叫進程啟用SE_SECURITY_NAME許可權。
如果不符合上述條件,此函式的呼叫不會失敗,但是不會強制執行標準存取原則。

規格需求

需求
最低支援的用戶端 Windows XP [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2003 [僅限桌面應用程式]
目標平台 Windows
標頭 securitybaseapi.h (包含 Windows.h)
程式庫 Advapi32.lib
Dll Advapi32.dll

另請參閱

用戶端/伺服器 存取控制 函式

用戶端/伺服器 存取控制 概觀

CreatePrivateObjectSecurity

DestroyPrivateObjectSecurity

GetFileSecurity

GetKernelObjectSecurity

GetUserObjectSecurity

SECURITY_DESCRIPTOR

SECURITY_INFORMATION

SetPrivateObjectSecurity