Compartilhar via


Função LookupAccountSidA (winbase.h)

A função LookupAccountSid aceita um SID ( identificador de segurança) como entrada. Ele recupera o nome da conta para esse SID e o nome do primeiro domínio no qual esse SID é encontrado.

Sintaxe

BOOL LookupAccountSidA(
  [in, optional]  LPCSTR        lpSystemName,
  [in]            PSID          Sid,
  [out, optional] LPSTR         Name,
  [in, out]       LPDWORD       cchName,
  [out, optional] LPSTR         ReferencedDomainName,
  [in, out]       LPDWORD       cchReferencedDomainName,
  [out]           PSID_NAME_USE peUse
);

Parâmetros

[in, optional] lpSystemName

Um ponteiro para um cadeia de caracteresterminada nulo que especifica o computador de destino. Essa cadeia de caracteres pode ser o nome de um computador remoto. Se esse parâmetro for NULL, a tradução do nome da conta começará no sistema local. Se o nome não puder ser resolvido no sistema local, essa função tentará resolver o nome usando controladores de domínio confiáveis pelo sistema local. Geralmente, especifique um valor para lpSystemName somente quando a conta estiver em um domínio não confiável e o nome de um computador nesse domínio for conhecido.

[in] Sid

Um ponteiro para o SID para pesquisar.

[out, optional] Name

Um ponteiro para um buffer que recebe um cadeia de caracteresterminada nula que contém o nome da conta que corresponde ao parâmetro lpSid.

[in, out] cchName

Na entrada, especifica o tamanho, em TCHAR, do buffer lpName . Se a função falhar porque o buffer é muito pequeno ou se cchName for zero, cchName receberá o tamanho do buffer necessário, incluindo o caractere de nulo terminação.

[out, optional] ReferencedDomainName

Um ponteiro para um buffer que recebe um cadeia de caracteresterminada nula que contém o nome do domínio em que o nome da conta foi encontrado.

Em um servidor, o nome de domínio retornado para a maioria das contas no banco de dados de segurança do computador local é o nome do domínio para o qual o servidor é um controlador de domínio.

Em uma estação de trabalho, o nome de domínio retornado para a maioria das contas no banco de dados de segurança do computador local é o nome do computador a partir do último início do sistema (os backslashes são excluídos). Se o nome do computador for alterado, o nome antigo continuará a ser retornado como o nome de domínio até que o sistema seja reiniciado.

Algumas contas são predefinidas pelo sistema. O nome de domínio retornado para essas contas é BUILTIN.

[in, out] cchReferencedDomainName

Na entrada, especifica o tamanho, em TCHAR, do buffer lpReferencedDomainName. Se a função falhar porque o buffer é muito pequeno ou se cchReferencedDomainName for zero, cchReferencedDomainName receberá o tamanho do buffer necessário, incluindo o caractere de nulo.

[out] peUse

Um ponteiro para uma variável que recebe um valor SID_NAME_USE que indica o tipo da conta.

Valor de retorno

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.

Observações

A função LookupAccountSid tenta encontrar um nome para o SID especificado verificando primeiro uma lista de SIDs conhecidos. Se o SID fornecido não corresponder a um SID conhecido, a função verificará contas locais internas e definidas administrativamente. Em seguida, a função verifica o domínio primário. Identificadores de segurança não reconhecidos pelo domínio primário são verificados em relação aos domínios confiáveis que correspondem aos prefixos sid.

Se a função não conseguir encontrar um nome de conta para o SID, GetLastError retornará ERROR_NONE_MAPPED. Isso pode ocorrer se um tempo limite de rede impedir que a função localize o nome. Também ocorre para SIDs que não têm nenhum nome de conta correspondente, como um SID de logon que identifica uma sessão de logon .

Além de procurar SIDs para contas locais, contas de domínio local e contas de domínio explicitamente confiáveis, LookupAccountSid pode procurar SIDs para qualquer conta em qualquer domínio na floresta, incluindo SIDs que aparecem apenas no campo SIDhistory de uma conta na floresta. O campo SIDhistory armazena SIDs antigos de uma conta que foi movida de outro domínio. Para pesquisar um SID, LookupAccountSid consulta o catálogo global da floresta.

Exemplos

Para obter um exemplo que usa essa função, consulte Pesquisando um SID em um token de acesso.

Nota

O cabeçalho winbase.h define LookupAccountSid 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 winbase.h (inclua Windows.h)
biblioteca Advapi32.lib
de DLL Advapi32.dll

Consulte também

Visão geral do controle de acesso

funções básicas de controle de acesso

EqualPrefixSid

LookupAccountName

SID

SID_NAME_USE