Função MakeAbsoluteSD (securitybaseapi.h)
A função MakeAbsoluteSD cria um descritor de segurança em formato absoluto usando um descritor de segurança no formato auto-relativo como um modelo.
Sintaxe
BOOL MakeAbsoluteSD(
[in] PSECURITY_DESCRIPTOR pSelfRelativeSecurityDescriptor,
[out, optional] PSECURITY_DESCRIPTOR pAbsoluteSecurityDescriptor,
[in, out] LPDWORD lpdwAbsoluteSecurityDescriptorSize,
[out, optional] PACL pDacl,
[in, out] LPDWORD lpdwDaclSize,
[out, optional] PACL pSacl,
[in, out] LPDWORD lpdwSaclSize,
[out, optional] PSID pOwner,
[in, out] LPDWORD lpdwOwnerSize,
[out, optional] PSID pPrimaryGroup,
[in, out] LPDWORD lpdwPrimaryGroupSize
);
Parâmetros
[in] pSelfRelativeSecurityDescriptor
Um ponteiro para uma estrutura SECURITY_DESCRIPTOR no formato auto-relativo. A função cria uma versão de formato absoluto desse descritor de segurança sem modificar o descritor de segurança original.
[out, optional] pAbsoluteSecurityDescriptor
Um ponteiro para um buffer que a função preenche com o corpo main de um descritor de segurança de formato absoluto. Essas informações são formatadas como uma estrutura SECURITY_DESCRIPTOR .
[in, out] lpdwAbsoluteSecurityDescriptorSize
Um ponteiro para uma variável que especifica o tamanho do buffer apontado pelo parâmetro pAbsoluteSD . Se o buffer não for grande o suficiente para o descritor de segurança, a função falhará e definirá essa variável com o tamanho mínimo necessário.
[out, optional] pDacl
Um ponteiro para um buffer que a função preenche com a DACL ( lista de controle de acesso discricionário ) do descritor de segurança de formato absoluto. O corpo main do descritor de segurança de formato absoluto faz referência a esse ponteiro.
[in, out] lpdwDaclSize
Um ponteiro para uma variável que especifica o tamanho do buffer apontado pelo parâmetro pDacl . Se o buffer não for grande o suficiente para a ACL ( lista de controle de acesso ), a função falhará e definirá essa variável com o tamanho mínimo necessário.
[out, optional] pSacl
Um ponteiro para um buffer que a função preenche com a SACL ( lista de controle de acesso do sistema ) do descritor de segurança de formato absoluto. O corpo main do descritor de segurança de formato absoluto faz referência a esse ponteiro.
[in, out] lpdwSaclSize
Um ponteiro para uma variável que especifica o tamanho do buffer apontado pelo parâmetro pSacl . Se o buffer não for grande o suficiente para a ACL, a função falhará e definirá essa variável com o tamanho mínimo necessário.
[out, optional] pOwner
Um ponteiro para um buffer que a função preenche com o SID ( identificador de segurança ) do proprietário do descritor de segurança de formato absoluto. O corpo main do descritor de segurança de formato absoluto faz referência a esse ponteiro.
[in, out] lpdwOwnerSize
Um ponteiro para uma variável que especifica o tamanho do buffer apontado pelo parâmetro pOwner . Se o buffer não for grande o suficiente para o SID, a função falhará e definirá essa variável com o tamanho mínimo necessário.
[out, optional] pPrimaryGroup
Um ponteiro para um buffer que a função preenche com o SID do grupo primário do descritor de segurança de formato absoluto. O corpo main do descritor de segurança de formato absoluto faz referência a esse ponteiro.
[in, out] lpdwPrimaryGroupSize
Um ponteiro para uma variável que especifica o tamanho do buffer apontado pelo parâmetro pPrimaryGroup . Se o buffer não for grande o suficiente para o SID, a função falhará e definirá essa variável com o tamanho mínimo necessário.
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. Os códigos de retorno possíveis incluem, mas não se limitam a, o seguinte.
Valor/código retornado | Descrição |
---|---|
|
Um ou mais buffers são muito pequenos. |
Comentários
Um descritor de segurança em formato absoluto contém ponteiros para as informações presentes nele em vez das informações em si. Um descritor de segurança em formato autorrelativo contém as informações em um bloco de memória contíguo. Em um descritor de segurança auto-relativo, uma estrutura SECURITY_DESCRIPTOR sempre inicia as informações, mas os outros componentes do descritor de segurança podem seguir a estrutura em qualquer ordem. Em vez de usar endereços de memória, os componentes do descritor de segurança autorrelativo 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.
Um servidor que copia objetos protegidos para várias mídias pode usar a função MakeAbsoluteSD para criar um descritor de segurança absoluto de um descritor de segurança auto-relativo e a função MakeSelfRelativeSD para criar um descritor de segurança auto-relativo de um descritor de segurança absoluto.
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 | securitybaseapi.h (inclua Windows.h) |
Biblioteca | Advapi32.lib |
DLL | Advapi32.dll |
Confira também
Controle de Acesso de baixo nível