Função SetSecurityInfo (aclapi.h)
A função SetSecurityInfo define informações de segurança especificadas no descritor de segurança de um objeto especificado. O chamador identifica o objeto por um identificador.
Para definir o SACL de um objeto, o chamador deve ter o privilégio SE_SECURITY_NAME habilitado.
Sintaxe
DWORD SetSecurityInfo(
[in] HANDLE handle,
[in] SE_OBJECT_TYPE ObjectType,
[in] SECURITY_INFORMATION SecurityInfo,
[in, optional] PSID psidOwner,
[in, optional] PSID psidGroup,
[in, optional] PACL pDacl,
[in, optional] PACL pSacl
);
Parâmetros
[in] handle
Um identificador para o objeto para o qual definir informações de segurança.
[in] ObjectType
Um membro da enumeração SE_OBJECT_TYPE que indica o tipo de objeto identificado pelo parâmetro handle .
[in] SecurityInfo
Um conjunto de sinalizadores de bits que indicam o tipo de informações de segurança a serem definidas. Esse parâmetro pode ser uma combinação dos sinalizadores de bits SECURITY_INFORMATION .
[in, optional] psidOwner
Um ponteiro para um SID que identifica o proprietário do objeto. O SID deve ser aquele que pode ser atribuído como o SID proprietário de um descritor de segurança. O parâmetro SecurityInfo deve incluir o sinalizador OWNER_SECURITY_INFORMATION. Esse parâmetro poderá ser NULL se você não estiver definindo o SID proprietário.
[in, optional] psidGroup
Um ponteiro para um SID que identifica o grupo primário do objeto. O parâmetro SecurityInfo deve incluir o sinalizador GROUP_SECURITY_INFORMATION. Esse parâmetro poderá ser NULL se você não estiver definindo o SID do grupo primário.
[in, optional] pDacl
Um ponteiro para a nova DACL para o objeto . Esse parâmetro é ignorado, a menos que o valor do parâmetro SecurityInfo inclua o sinalizador DACL_SECURITY_INFORMATION . Se o valor do parâmetro SecurityInfo incluir o sinalizador DACL_SECURITY_INFORMATION e o valor desse parâmetro for definido como NULL, o acesso completo ao objeto será concedido a todos. Para obter informações sobre DACLs nulos , consulte Criando um DACL.
[in, optional] pSacl
Um ponteiro para o novo SACL para o objeto . O parâmetro SecurityInfo deve incluir qualquer um dos seguintes sinalizadores: SACL_SECURITY_INFORMATION, LABEL_SECURITY_INFORMATION, ATTRIBUTE_SECURITY_INFORMATION, SCOPE_SECURITY_INFORMATION ou BACKUP_SECURITY_INFORMATION. Se a configuração SACL_SECURITY_INFORMATION ou SCOPE_SECURITY_INFORMATION, o chamador deverá ter o privilégio SE_SECURITY_NAME habilitado. Esse parâmetro poderá ser NULL se você não estiver definindo o SACL.
Retornar valor
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.
Comentários
Se você estiver definindo a DACL ( lista de controle de acesso discricionário ) ou quaisquer elementos na SACL ( lista de controle de acesso do sistema ) de um objeto, o sistema propagará automaticamente quaisquer ACEs ( entradas de controle de acesso herdadas) para objetos filho existentes, de acordo com as regras de herança ace.
Você pode usar a função SetSecurityInfo com os seguintes tipos de objetos:
- Arquivos ou diretórios locais ou remotos em um NTFS
- Pipes nomeados
- Impressoras locais ou remotas
- Serviços locais ou remotos do Windows
- Compartilhamentos de rede
- Chaves do Registro
- Semáforos, eventos, mutexes e temporizadores de espera
- Processos, threads, trabalhos e objetos de mapeamento de arquivos
- Estações de janela e áreas de trabalho
- Objetos de serviço de diretório
A função SetSecurityInfo não reordena ACEs com acesso permitido ou acesso negado com base na ordem preferencial. Ao propagar ACEs herdáveis para objetos filho existentes, SetSecurityInfo coloca ACEs herdados em ordem após todos os ACEs não herdados nos DACLs dos objetos filho.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows XP [aplicativos da área de trabalho | aplicativos UWP] |
Servidor mínimo com suporte | Windows Server 2003 [aplicativos da área de trabalho | Aplicativos UWP] |
Plataforma de Destino | Windows |
Cabeçalho | aclapi.h |
Biblioteca | Advapi32.lib |
DLL | Advapi32.dll |