GetUserObjectSecurity 函式 (winuser.h)

GetUserObjectSecurity 函式會擷取指定之用戶對象的安全性資訊。

語法

BOOL GetUserObjectSecurity(
  [in]                HANDLE                hObj,
  [in]                PSECURITY_INFORMATION pSIRequested,
  [in, out, optional] PSECURITY_DESCRIPTOR  pSID,
  [in]                DWORD                 nLength,
  [out]               LPDWORD               lpnLengthNeeded
);

參數

[in] hObj

要傳回安全性資訊之用戶物件的句柄。

[in] pSIRequested

指定所要求安全性資訊的 SECURITY_INFORMATION 值的指標。

[in, out, optional] pSID

自我相對格式SECURITY_DESCRIPTOR結構的指標,其中包含函式傳回時所要求的資訊。 此緩衝區必須對齊 4 位元組界限。

[in] nLength

pSD 參數所指向之緩衝區的長度,以位元組為單位。

[out] lpnLengthNeeded

要接收儲存完整 安全性描述元所需位元組數目的變數指標。 如果此變數的值大於函式傳回時 nLength 參數的值,則函式會傳回 FALSE ,而且不會將任何安全性描述元複製到緩衝區。 否則,會複製整個安全性描述元。

傳回值

如果函式成功,函式會傳回非零。

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

備註

若要從用戶物件的安全性描述元讀取擁有者、群組或 任意訪問控制清單 (DACL) ,呼叫 程式 必須在開啟句柄時授與READ_CONTROL存取權。

若要從安全性描述元讀取 系統訪問控制清單 (SACL) ,呼叫程式必須在開啟句柄時授與ACCESS_SYSTEM_SECURITY存取權。 取得此存取權的正確方法是啟用呼叫端目前令牌中的SE_SECURITY_NAME許可權、開啟ACCESS_SYSTEM_SECURITY存取的句柄,然後停用許可權。

範例

如需使用此函式的範例,請參閱 啟動互動式用戶端程式

規格需求

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

另請參閱

CreatePrivateObjectSecurity

GetKernelObjectSecurity

GetPrivateObjectSecurity

低階 存取控制

低階 存取控制 函式

SECURITY_DESCRIPTOR

SECURITY_INFORMATION

SetUserObjectSecurity