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 |