Função RegGetKeySecurity (winreg.h)
A função RegGetKeySecurity recupera uma cópia do descritor de segurança que protege a chave do Registro aberta especificada.
Sintaxe
LSTATUS RegGetKeySecurity(
[in] HKEY hKey,
[in] SECURITY_INFORMATION SecurityInformation,
[out, optional] PSECURITY_DESCRIPTOR pSecurityDescriptor,
[in, out] LPDWORD lpcbSecurityDescriptor
);
Parâmetros
[in] hKey
Um identificador para uma chave aberta para a qual recuperar o descritor de segurança.
[in] SecurityInformation
Um valor SECURITY_INFORMATION que indica as informações de segurança solicitadas.
[out, optional] pSecurityDescriptor
Um ponteiro para um buffer que recebe uma cópia do descritor de segurança solicitado.
[in, out] lpcbSecurityDescriptor
Um ponteiro para uma variável que especifica o tamanho, em bytes, do buffer apontado pelo parâmetro pSecurityDescriptor . Quando a função retorna, a variável contém o número de bytes gravados no buffer.
Valor retornado
Se a função for bem-sucedida, a função retornará ERROR_SUCCESS.
Se a função falhar, ela retornará um código de erro diferente de zero definido em WinError.h. Você pode usar a função FormatMessage com o sinalizador FORMAT_MESSAGE_FROM_SYSTEM para obter uma descrição genérica do erro.
Comentários
Se o buffer especificado pelo parâmetro pSecurityDescriptor for muito pequeno, a função retornará ERROR_INSUFFICIENT_BUFFER e o parâmetro lpcbSecurityDescriptor conterá o número de bytes necessários para o descritor de segurança solicitado.
Para ler o proprietário, o grupo ou a DACL ( lista de controle de acesso discricionário ) do descritor de segurança da chave, o processo de chamada deve ter sido concedido READ_CONTROL acesso quando o identificador foi aberto. Para obter acesso READ_CONTROL, o chamador deve ser o proprietário da chave ou a DACL da chave deve conceder o acesso.
Para ler a SACL ( lista de controle de acesso do sistema ) do descritor de segurança, o processo de chamada deve ter sido concedido ACCESS_SYSTEM_SECURITY acesso quando a chave foi aberta. A maneira correta de obter esse acesso é habilitar o privilégio SE_SECURITY_NAME no token atual do chamador, abrir o identificador para acesso ACCESS_SYSTEM_SECURITY e desabilitar o privilégio.
Requisitos
Cliente mínimo com suporte | Windows XP [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows Server 2003 [somente aplicativos da área de trabalho] |
Plataforma de Destino | Windows |
Cabeçalho | winreg.h (inclua Windows.h) |
Biblioteca | Advapi32.lib |
DLL | Advapi32.dll |
Confira também
Controle de Acesso de baixo nível