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

FormatMessage

Controle de Acesso de baixo nível

Funções de Controle de Acesso de baixo nível

RegDeleteKey

RegOpenKeyEx

RegSetKeySecurity

SECURITY_INFORMATION