RegGetKeySecurity 函式 (winreg.h)

RegGetKeySecurity函式會擷取保護指定之開啟登錄機碼的安全描述元複本。

語法

LSTATUS RegGetKeySecurity(
  [in]            HKEY                 hKey,
  [in]            SECURITY_INFORMATION SecurityInformation,
  [out, optional] PSECURITY_DESCRIPTOR pSecurityDescriptor,
  [in, out]       LPDWORD              lpcbSecurityDescriptor
);

參數

[in] hKey

要為其擷取安全描述元之開啟金鑰的控制碼。

[in] SecurityInformation

SECURITY_INFORMATION值,指出所要求的安全性資訊。

[out, optional] pSecurityDescriptor

緩衝區的指標,接收所要求之安全描述元的複本。

[in, out] lpcbSecurityDescriptor

變數的指標,指定 pSecurityDescriptor 參數所指向緩衝區的大小,以位元組為單位。 當函式傳回時,變數會包含寫入緩衝區的位元組數目。

傳回值

如果函式成功,函式會傳回ERROR_SUCCESS。

如果函式失敗,它會傳回 WinError.h 中定義的非零錯誤碼。 您可以使用 FormatMessage 函式搭配 FORMAT_MESSAGE_FROM_SYSTEM 旗標,以取得錯誤的一般描述。

備註

如果 pSecurityDescriptor 參數指定的緩衝區太小,則函式會傳回ERROR_INSUFFICIENT_BUFFER, 而 lkbSecurityDescriptor 參數包含要求之安全性描述元所需的位元組數目。

若要從金鑰的安全性描述項 (DACL) 讀取擁有者、群組或 任意存取控制清單 ,呼叫 程式 必須在開啟控制碼時授與READ_CONTROL存取權。 若要取得READ_CONTROL存取權,呼叫端必須是金鑰的擁有者,或金鑰的 DACL 必須授與存取權。

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

規格需求

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

另請參閱

FormatMessage

低階存取控制

低階存取控制函式

RegDeleteKey

RegOpenKeyEx

RegSetKeySecurity

SECURITY_INFORMATION