Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
A rotina RtlSelfRelativeToAbsoluteSD cria um novo descritor de segurança em formato absoluto usando um descritor de segurança em formato auto-relativo como modelo.
Sintaxe
NTSYSAPI NTSTATUS RtlSelfRelativeToAbsoluteSD(
[in] PSECURITY_DESCRIPTOR SelfRelativeSecurityDescriptor,
[out] PSECURITY_DESCRIPTOR AbsoluteSecurityDescriptor,
[in, out] PULONG AbsoluteSecurityDescriptorSize,
[out] PACL Dacl,
[in, out] PULONG DaclSize,
[out] PACL Sacl,
[in, out] PULONG SaclSize,
[out] PSID Owner,
[in, out] PULONG OwnerSize,
[out] PSID PrimaryGroup,
[in, out] PULONG PrimaryGroupSize
);
Parâmetros
[in] SelfRelativeSecurityDescriptor
Ponteiro para um buffer alocado por chamador que contém uma estrutura SECURITY_DESCRIPTOR no formato auto-relativo. RtlSelfRelativeToAbsoluteSD cria uma versão desse descritor de segurança em formato absoluto sem modificar o original.
[out] AbsoluteSecurityDescriptor
Ponteiro para um buffer alocado por chamador que recebe o corpo principal de um descritor de segurança de formato absoluto. Essas informações são formatadas como uma estrutura SECURITY_DESCRIPTOR.
[in, out] AbsoluteSecurityDescriptorSize
Ponteiro para uma variável alocada por chamador que especifica o tamanho, em bytes, do buffer apontado pelo parâmetro AbsoluteSecurityDescriptor. Se o buffer não for grande o suficiente para manter o descritor de segurança, RtlSelfRelativeToAbsoluteSD retornará STATUS_BUFFER_TOO_SMALL e definirá essa variável como o tamanho mínimo necessário.
[out] Dacl
Ponteiro para um buffer alocado pelo chamador que recebe a DACL do descritor de segurança de formato absoluto. O corpo principal do descritor de segurança de formato absoluto faz referência a esse ponteiro.
[in, out] DaclSize
Ponteiro para uma variável alocada por chamador que especifica o tamanho, em bytes, do buffer apontado pelo parâmetro da Dacl. Se o buffer não for grande o suficiente para manter a DACL, RtlSelfRelativeToAbsoluteSD retornará STATUS_BUFFER_TOO_SMALL e definirá essa variável para o tamanho mínimo necessário.
[out] Sacl
Ponteiro para um buffer alocado por chamador que recebe o SACL do descritor de segurança de formato absoluto. O corpo principal do descritor de segurança de formato absoluto faz referência a esse ponteiro.
[in, out] SaclSize
Ponteiro para uma variável alocada por chamador que especifica o tamanho, em bytes, do buffer apontado pelo parâmetro sacl. Se o buffer não for grande o suficiente para manter o SACL, RtlSelfRelativeToAbsoluteSD retornará STATUS_BUFFER_TOO_SMALL e definirá essa variável como o tamanho mínimo necessário.
[out] Owner
Ponteiro para um buffer alocado por chamador que recebe o SID do proprietário do descritor de segurança de formato absoluto. O corpo principal do descritor de segurança de formato absoluto faz referência a esse ponteiro.
[in, out] OwnerSize
Ponteiro para uma variável alocada por chamador que especifica o tamanho, em bytes, do buffer apontado pelo parâmetro proprietário do. Se o buffer não for grande o suficiente para manter o SID, RtlSelfRelativeToAbsoluteSD retornará STATUS_BUFFER_TOO_SMALL e definirá essa variável para o tamanho mínimo necessário.
[out] PrimaryGroup
Ponteiro para um buffer alocado por chamador que recebe o SID do grupo primário do descritor de segurança de formato absoluto. O corpo principal do descritor de segurança de formato absoluto faz referência a esse ponteiro.
[in, out] PrimaryGroupSize
Ponteiro para uma variável alocada por chamador que especifica o tamanho, em bytes, do buffer apontado pelo parâmetro PrimaryGroup. Se o buffer não for grande o suficiente para manter o SID, RtlSelfRelativeToAbsoluteSD retornará STATUS_BUFFER_TOO_SMALL e definirá essa variável para o tamanho mínimo necessário.
Valor de retorno
RtlSelfRelativeToAbsoluteSD retorna STATUS_SUCCESS ou um valor NTSTATUS apropriado, como um dos seguintes:
Código de retorno | Descrição |
---|---|
|
O buffer apontado pelo parâmetro AbsoluteSecurityDescriptor não continha uma estrutura SECURITY_DESCRIPTOR em formato absoluto. STATUS_BAD_DESCRIPTOR_FORMAT é um código de erro. |
|
O buffer apontado pelo parâmetro AbsoluteSecurityDescriptor, Dacl, Sacl, Ownerou PrimaryGroup era muito pequeno. STATUS_BUFFER_TOO_SMALL é um código de erro. |
Observações
Um descritor de segurança em formato absoluto contém ponteiros para as informações, em vez de conter as informações em si. Um descritor de segurança em formato auto-relativo contém as informações em um bloco contíguo de memória. Em um descritor de segurança auto-relativo, uma estrutura SECURITY_DESCRIPTOR sempre inicia as informações, mas outros componentes do descritor de segurança podem seguir a estrutura SECURITY_DESCRIPTOR em qualquer ordem. Em vez de usar endereços de memória, os componentes do descritor de segurança são identificados por deslocamentos desde o início do descritor de segurança. Esse formato é útil quando um descritor de segurança deve ser armazenado em um disquete ou transmitido por meio de um protocolo de comunicação.
Observe que o parâmetro AbsoluteSecurityDescriptor recebe apenas o corpo principal do descritor de segurança absoluto. Todo o descritor de segurança absoluta consiste nesse corpo principal, além de todos os componentes do descritor de segurança retornados nos buffers daDacl, Sacl, Ownere PrimaryGroup buffers. Portanto, o chamador não pode liberar esses buffers depois de chamar RtlSelfRelativeToAbsoluteSD, pois isso invalidaria o descritor de segurança absoluto.
Para criar um descritor de segurança em formato auto-relativo usando um descritor de segurança em formato absoluto como modelo, use RtlAbsoluteToSelfRelativeSD.
Para obter mais informações sobre segurança e controle de acesso, consulte a documentação do SDK do Microsoft Windows.
Requisitos
Requisito | Valor |
---|---|
de cliente com suporte mínimo | Windows Server 2003 SP1 |
da Plataforma de Destino | Universal |
cabeçalho | ntifs.h (inclua Ntifs.h) |
biblioteca | NtosKrnl.lib |
de DLL | NtosKrnl.exe |
IRQL | <= APC_LEVEL |