Função SetPrivateObjectSecurity (securitybaseapi.h)
A função SetPrivateObjectSecurity modifica o descritor de segurança de um objeto privado.
Para especificar se o servidor protegido dá suporte à herança automática de ACEs ( entradas de controle de acesso ), use a função SetPrivateObjectSecurityEx .
Sintaxe
BOOL SetPrivateObjectSecurity(
[in] SECURITY_INFORMATION SecurityInformation,
[in] PSECURITY_DESCRIPTOR ModificationDescriptor,
[in, out] PSECURITY_DESCRIPTOR *ObjectsSecurityDescriptor,
[in] PGENERIC_MAPPING GenericMapping,
[in, optional] HANDLE Token
);
Parâmetros
[in] SecurityInformation
Indica as partes do descritor de segurança a ser definido. Esse valor pode ser uma combinação dos sinalizadores de bit SECURITY_INFORMATION.
[in] ModificationDescriptor
Um ponteiro para uma estrutura SECURITY_DESCRIPTOR . As partes desse descritor de segurança indicadas pelo parâmetro SecurityInformation são aplicadas ao descritor de segurança ObjectsSecurityDescriptor .
[in, out] ObjectsSecurityDescriptor
Um ponteiro para um ponteiro para uma estrutura de SECURITY_DESCRIPTOR . Esse descritor de segurança deve estar em forma auto-relativa . A memória do descritor de segurança deve ser alocada do heap de processo (GetProcessHeap) com a função HeapAlloc.
Na entrada, esse é o descritor de segurança atual do objeto privado. A função a modifica para produzir o novo descritor de segurança. Se necessário, a função SetPrivateObjectSecurity aloca memória adicional para produzir um descritor de segurança maior.
[in] GenericMapping
Um ponteiro para uma estrutura GENERIC_MAPPING que especifica os direitos de acesso específicos e padrão que correspondem a cada um dos direitos de acesso genéricos.
[in, optional] Token
Um identificador para o token de acesso do cliente em cujo nome a segurança do objeto privado está sendo modificada. Esse parâmetro é necessário para garantir que o cliente tenha fornecido um valor legítimo para um novo SID ( identificador de segurança de proprietário). O token deve estar aberto para acesso TOKEN_QUERY.
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
Essa função destina-se apenas ao uso por gerenciadores de recursos. Para implementar a semântica de controle de acesso padrão para atualizar descritores de segurança, um gerenciador de recursos deve verificar se as seguintes condições foram atendidas antes de chamar SetPrivateObjectSecurity:
- Se o proprietário do objeto estiver sendo definido, o processo de chamada deverá ter WRITE_OWNER permissão ou ser o proprietário do objeto.
- Se a DACL ( lista de controle de acesso discricionário ) do objeto estiver sendo definida, o processo de chamada deverá ter WRITE_DAC permissão ou ser o proprietário do objeto.
- Se a SACL ( lista de controle de acesso do sistema ) do objeto estiver sendo definida, o privilégio SE_SECURITY_NAME deverá ser habilitado para o processo de chamada.
O processo que chama essa função não deve representar um cliente porque os clientes normalmente não têm privilégios apropriados necessários para operações de token subjacentes.
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 | securitybaseapi.h (inclua Windows.h) |
Biblioteca | Advapi32.lib |
DLL | Advapi32.dll |
Confira também
Funções de Controle de Acesso de cliente/servidor