Função GetUserObjectSecurity (winuser.h)

A função GetUserObjectSecurity recupera informações de segurança para o objeto de usuário especificado.

Sintaxe

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

Parâmetros

[in] hObj

Um identificador para o objeto de usuário para o qual retornar informações de segurança.

[in] pSIRequested

Um ponteiro para um valor SECURITY_INFORMATION que especifica as informações de segurança que estão sendo solicitadas.

[in, out, optional] pSID

Um ponteiro para uma estrutura SECURITY_DESCRIPTOR no formato auto-relativo que contém as informações solicitadas quando a função retorna. Esse buffer deve ser alinhado em um limite de 4 bytes.

[in] nLength

O comprimento, em bytes, do buffer apontado pelo parâmetro pSD .

[out] lpnLengthNeeded

Um ponteiro para uma variável para receber o número de bytes necessários para armazenar o descritor de segurança completo. Se o valor dessa variável for maior que o valor do parâmetro nLength quando a função retornar, a função retornará FALSE e nenhum descritor de segurança será copiado para o buffer. Caso contrário, todo o descritor de segurança será copiado.

Retornar valor

Se a função for bem-sucedida, a função retornará diferente de zero.

Se a função falhar, ela retornará zero. Para obter informações de erro estendidas, chame GetLastError.

Comentários

Para ler o proprietário, o grupo ou a DACL ( lista de controle de acesso discricionário ) do descritor de segurança do objeto de usuário, o processo de chamada deve ter sido concedido READ_CONTROL acesso quando o identificador foi aberto.

Para ler a SACL ( lista de controle de acesso do sistema ) do descritor de segurança, o processo de chamada deve ter recebido acesso ACCESS_SYSTEM_SECURITY quando o identificador foi aberto. 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.

Exemplos

Para obter um exemplo que usa essa função, consulte Iniciando um processo de cliente interativo.

Requisitos

Requisito Valor
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 winuser.h (inclua Windows.h)
Biblioteca User32.lib
DLL User32.dll

Confira também

CreatePrivateObjectSecurity

GetKernelObjectSecurity

GetPrivateObjectSecurity

Controle de Acesso de baixo nível

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

SECURITY_DESCRIPTOR

SECURITY_INFORMATION

SetUserObjectSecurity