Partager via


Fonction LookupAccountSidA (winbase.h)

La fonction LookupAccountSid accepte un identificateur de sécurité (SID) comme entrée. Il récupère le nom du compte pour ce SID et le nom du premier domaine sur lequel se trouve ce SID.

Syntaxe

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
);

Paramètres

[in, optional] lpSystemName

Pointeur vers une chaîne de caractèresnull -terminated character string qui spécifie l’ordinateur cible. Cette chaîne peut être le nom d’un ordinateur distant. Si ce paramètre est NULL, la traduction du nom de compte commence sur le système local. Si le nom ne peut pas être résolu sur le système local, cette fonction tente de résoudre le nom à l’aide de contrôleurs de domaine approuvés par le système local. En règle générale, spécifiez une valeur pour lpSystemName uniquement lorsque le compte se trouve dans un domaine non approuvé et que le nom d’un ordinateur de ce domaine est connu.

[in] Sid

Pointeur vers le SID à rechercher.

[out, optional] Name

Pointeur vers une mémoire tampon qui reçoit une chaîne null-terminated qui contient le nom du compte qui correspond au paramètre lpSid.

[in, out] cchName

Lors de l’entrée, spécifie la taille, dans mémoire tampon TCHAR, de la mémoire tampon lpName. Si la fonction échoue, car la mémoire tampon est trop petite ou si cchName est égal à zéro, cchName reçoit la taille de mémoire tampon requise, y compris la fin caractère null.

[out, optional] ReferencedDomainName

Pointeur vers une mémoire tampon qui reçoit une chaîne null-terminated qui contient le nom du domaine où le nom du compte a été trouvé.

Sur un serveur, le nom de domaine retourné pour la plupart des comptes dans la base de données de sécurité de l’ordinateur local est le nom du domaine pour lequel le serveur est un contrôleur de domaine.

Sur une station de travail, le nom de domaine retourné pour la plupart des comptes dans la base de données de sécurité de l’ordinateur local est le nom de l’ordinateur depuis le dernier démarrage du système (les barres obliques inverses sont exclues). Si le nom de l’ordinateur change, l’ancien nom continue d’être retourné en tant que nom de domaine jusqu’à ce que le système soit redémarré.

Certains comptes sont prédéfinis par le système. Le nom de domaine retourné pour ces comptes est BUILTIN.

[in, out] cchReferencedDomainName

Lors de l’entrée, spécifie la taille, dans mémoire tampon TCHAR, de la mémoire tampon lpReferencedDomainName . Si la fonction échoue, car la mémoire tampon est trop petite ou si cchReferencedDomainName est égal à zéro, cchReferencedDomainName reçoit la taille de mémoire tampon requise, y compris la taille de mémoire tampon requise, y compris la fin caractère null.

[out] peUse

Pointeur vers une variable qui reçoit une valeur SID_NAME_USE qui indique le type du compte.

Valeur de retour

Si la fonction réussit, la fonction retourne une valeur différente de zéro.

Si la fonction échoue, elle retourne zéro. Pour obtenir des informations d’erreur étendues, appelez GetLastError.

Remarques

La fonction LookupAccountSid tente de trouver un nom pour le SID spécifié en vérifiant d’abord une liste de SID connus. Si le SID fourni ne correspond pas à un SID bien connu, la fonction vérifie les comptes locaux intégrés et définis par l’administration. Ensuite, la fonction vérifie le domaine principal. identificateurs de sécurité non reconnus par le domaine principal sont vérifiés par rapport aux domaines approuvés qui correspondent à leurs préfixes SID.

Si la fonction ne trouve pas de nom de compte pour le SID, GetLastError retourne ERROR_NONE_MAPPED. Cela peut se produire si un délai d’attente réseau empêche la fonction de trouver le nom. Il se produit également pour les SID qui n’ont aucun nom de compte correspondant, tel qu’un SID d’ouverture de session qui identifie une session d’ouverture de session .

En plus de rechercher des SID pour les comptes locaux, les comptes de domaine local et les comptes de domaine approuvés explicitement, LookupAccountSid pouvez rechercher des SID pour n’importe quel compte dans n’importe quel domaine de la forêt, y compris les SID qui apparaissent uniquement dans le champ SIDhistory d’un compte dans la forêt. Le champ SIDhistory stocke les anciens SID d’un compte qui a été déplacé d’un autre domaine. Pour rechercher un SID, LookupAccountSid interroge le catalogue global de la forêt.

Exemples

Pour obtenir un exemple qui utilise cette fonction, consultez recherche d’un SID dans un jeton d’accès.

Note

L’en-tête winbase.h définit LookupAccountSid comme alias qui sélectionne automatiquement la version ANSI ou Unicode de cette fonction en fonction de la définition de la constante de préprocesseur UNICODE. Le mélange de l’utilisation de l’alias neutre en encodage avec du code qui n’est pas neutre en encodage peut entraîner des incompatibilités qui entraînent des erreurs de compilation ou d’exécution. Pour plus d’informations, consultez Conventions pour les prototypes de fonction.

Exigences

Exigence Valeur
client minimum pris en charge Windows XP [applications de bureau | Applications UWP]
serveur minimum pris en charge Windows Server 2003 [applications de bureau | Applications UWP]
plateforme cible Windows
d’en-tête winbase.h (inclure Windows.h)
bibliothèque Advapi32.lib
DLL Advapi32.dll

Voir aussi

Vue d’ensemble du contrôle d’accès

fonctions de contrôle d’accès de base

equalPrefixSid

LookupAccountName

SID

SID_NAME_USE