Função GetNamedSecurityInfoA (aclapi.h)
A função
Sintaxe
DWORD GetNamedSecurityInfoA(
[in] LPCSTR pObjectName,
[in] SE_OBJECT_TYPE ObjectType,
[in] SECURITY_INFORMATION SecurityInfo,
[out, optional] PSID *ppsidOwner,
[out, optional] PSID *ppsidGroup,
[out, optional] PACL *ppDacl,
[out, optional] PACL *ppSacl,
[out, optional] PSECURITY_DESCRIPTOR *ppSecurityDescriptor
);
Parâmetros
[in] pObjectName
Um ponteiro para uma cadeia de caracteres terminada em nulo que especifica o nome do objeto do qual recuperar informações de segurança. Para obter descrições dos formatos de cadeia de caracteres para os diferentes tipos de objeto, consulte SE_OBJECT_TYPE.
[in] ObjectType
Especifica um valor da enumeração
[in] SecurityInfo
Um conjunto de sinalizadores de bits que indicam o tipo de informações de segurança a serem recuperadas. Esse parâmetro pode ser uma combinação dos sinalizadores de bits SECURITY_INFORMATION.
[out, optional] ppsidOwner
Um ponteiro para uma variável que recebe um ponteiro para o SID proprietário no descritor de segurança retornado em ppSecurityDescriptor ou NULL se o descritor de segurança não tiver sid proprietário. O ponteiro retornado será válido somente se você definir o sinalizador de OWNER_SECURITY_INFORMATION. Além disso, esse parâmetro pode ser NULL se você não precisar do SID do proprietário.
[out, optional] ppsidGroup
Um ponteiro para uma variável que recebe um ponteiro para o SID do grupo primário no descritor de segurança retornado ou NULL se o descritor de segurança não tiver SID de grupo. O ponteiro retornado será válido somente se você definir o sinalizador de GROUP_SECURITY_INFORMATION. Além disso, esse parâmetro pode ser NULL se você não precisar do SID do grupo.
[out, optional] ppDacl
Um ponteiro para uma variável que recebe um ponteiro para a DACL no descritor de segurança retornado ou NULL se o descritor de segurança não tiver DACL. O ponteiro retornado será válido somente se você definir o sinalizador de DACL_SECURITY_INFORMATION. Além disso, esse parâmetro pode ser NULL se você não precisar da DACL.
[out, optional] ppSacl
Um ponteiro para uma variável que recebe um ponteiro para o SACL no descritor de segurança retornado ou NULL se o descritor de segurança não tiver SACL. O ponteiro retornado será válido somente se você definir o sinalizador de SACL_SECURITY_INFORMATION. Além disso, esse parâmetro pode ser NULL se você não precisar do SACL.
[out, optional] ppSecurityDescriptor
Um ponteiro para uma variável que recebe um ponteiro para o descritor de segurança do objeto. Quando terminar de usar o ponteiro, libere o buffer retornado chamando a função LocalFree.
Esse parâmetro será necessário se qualquer um dos parâmetros ppsidOwner, ppsidGroup, ppDaclou ppSacl não for NULL.
Valor de retorno
Se a função for bem-sucedida, o valor retornado será ERROR_SUCCESS.
Se a função falhar, o valor retornado será um código de erro diferente de zero definido em WinError.h.
Observações
Se qualquer um dos parâmetros ppsidOwner, ppsidGroup, ppDaclou ppSacl forem nãoNULL e o parâmetro SecurityInfo especifica que eles serão recuperados do objeto, esses parâmetros apontarão para os parâmetros correspondentes no descritor de segurança retornado em ppSecurityDescriptor. Se o descritor de segurança não contiver as informações solicitadas, o parâmetro correspondente será definido como NULL.
Para ler o proprietário, grupo ou DACL do descritor de segurança do objeto, a DACL do objeto deve conceder READ_CONTROL acesso ao chamador ou o chamador deve ser o proprietário do objeto.
Para ler a lista de controle de acesso do sistema do objeto, o privilégio SE_SECURITY_NAME deve ser habilitado para o processo de chamada. Para obter informações sobre as implicações de segurança da habilitação de privilégios, consulte Em execução com privilégios especiais.
Você pode usar a função
- Arquivos ou diretórios locais ou remotos em um sistema de arquivos NTFS
- Impressoras locais ou remotas
- Serviços locais ou remotos do Windows
- Compartilhamentos de rede
- Chaves do Registro
- Semáforos, eventos, mutexes e temporizadores aguardados
- Objetos de mapeamento de arquivo
- Objetos de serviço de diretório
Essa função transfere informações em texto sem formatação. As informações transferidas por essa função são assinadas, a menos que a assinatura tenha sido desativada para o sistema, mas nenhuma criptografia é executada.
Para obter mais informações sobre como controlar o acesso a objetos por meio de contas de usuário, contas de grupo ou sessões de logon, consulte Como os DACLs controlam o acesso a um objeto.
Exemplos
Para obter um exemplo que usa GetNamedSecurityInfo, consulte Modificando as ACLs de um objeto.
Nota
O cabeçalho aclapi.h define GetNamedSecurityInfo como um alias que seleciona automaticamente a versão ANSI ou Unicode dessa função com base na definição da constante do pré-processador UNICODE. A combinação do uso do alias neutro de codificação com código que não é neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Conventions for Function Prototypes.
Requisitos
Requisito | Valor |
---|---|
de cliente com suporte mínimo | Windows XP [aplicativos da área de trabalho | Aplicativos UWP] |
servidor com suporte mínimo | Windows Server 2003 [aplicativos da área de trabalho | Aplicativos UWP] |
da Plataforma de Destino |
Windows |
cabeçalho | aclapi.h |
biblioteca | Advapi32.lib |
de DLL |
Advapi32.dll |