Função CreatePrivateObjectSecurity (securitybaseapi.h)
A função CreatePrivateObjectSecurity aloca e inicializa um descritor de segurança auto-relativo para um novo objeto privado. Um servidor protegido chama essa função quando cria um novo objeto privado.
Para especificar o GUID do tipo de objeto do novo objeto ou controlar como as ACEs (entradas de controle de acesso ) são herdadas, use a função CreatePrivateObjectSecurityEx .
Sintaxe
BOOL CreatePrivateObjectSecurity(
[in, optional] PSECURITY_DESCRIPTOR ParentDescriptor,
[in, optional] PSECURITY_DESCRIPTOR CreatorDescriptor,
[out] PSECURITY_DESCRIPTOR *NewDescriptor,
[in] BOOL IsDirectoryObject,
[in, optional] HANDLE Token,
[in] PGENERIC_MAPPING GenericMapping
);
Parâmetros
[in, optional] ParentDescriptor
Um ponteiro para o descritor de segurança para o diretório pai no qual um novo objeto está sendo criado. Se não houver nenhum diretório pai, esse parâmetro poderá ser NULL.
[in, optional] CreatorDescriptor
Um ponteiro para um descritor de segurança fornecido pelo criador do objeto. Se o criador do objeto não passar explicitamente informações de segurança para o novo objeto, esse parâmetro se destina a ser NULL.
[out] NewDescriptor
Um ponteiro para uma variável que recebe um ponteiro para o descritor de segurança auto-relativo recém-alocado. O chamador deve chamar a função DestroyPrivateObjectSecurity para liberar esse descritor de segurança.
[in] IsDirectoryObject
Especifica se o novo objeto é um contêiner. Um valor true indica que o objeto contém outros objetos, como um diretório.
[in, optional] Token
Um identificador para o token de acesso para o processo do cliente em cujo nome o objeto está sendo criado. Se esse for um token de representação, ele deverá estar no nível securityIdentification ou superior. Para obter uma descrição completa do nível de representação SecurityIdentification, consulte o SECURITY_IMPERSONATION_LEVEL tipo enumerado.
Um token de cliente é usado para recuperar informações de segurança padrão para o novo objeto, como seu proprietário padrão, grupo primário e lista de controle de acesso discricionário. O token deve estar aberto para acesso TOKEN_QUERY .
Se todas as condições a seguir forem verdadeiras, o identificador deverá ser aberto para acesso TOKEN_DUPLICATE além de acesso TOKEN_QUERY .
- O identificador de token refere-se a um token primário.
- O descritor de segurança do token contém um ou mais ACEs com o SID OwnerRights .
- Um descritor de segurança é especificado para o parâmetro CreatorDescriptor .
- O chamador dessa função não define o sinalizador SEF_AVOID_OWNER_RESTRICTION no parâmetro AutoInheritFlags .
[in] GenericMapping
Um ponteiro para uma estrutura GENERIC_MAPPING que especifica o mapeamento de cada direito genérico para direitos específicos para o objeto.
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
Se uma SACL ( lista de controle de acesso do sistema ) for especificada na SECURITY_DESCRIPTOR especificada pelo parâmetro CreatorDescriptor , o parâmetro Token deverá ter o privilégio SE_SECURITY_NAME habilitado. A função CreatePrivateObjectSecurity verifica esse privilégio e pode gerar auditorias durante o processo.
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 cliente/servidor