Fonction LsaLookupSids (ntsecapi.h)
[LsaLookupSids est disponible pour une utilisation dans les systèmes d’exploitation spécifiés dans la section Configuration requise. Il sera peut-être modifié ou indisponible dans les versions ultérieures. Utilisez plutôt LsaLookupSids2.]
La fonction LsaLookupSids recherche les noms qui correspondent à un tableau d’identificateurs de sécurité (SID). Si LsaLookupSids ne trouve pas de nom qui correspond à un SID, la fonction retourne le SID sous forme de caractères.
Syntaxe
NTSTATUS LsaLookupSids(
[in] LSA_HANDLE PolicyHandle,
[in] ULONG Count,
[in] PSID *Sids,
[out] PLSA_REFERENCED_DOMAIN_LIST *ReferencedDomains,
[out] PLSA_TRANSLATED_NAME *Names
);
Paramètres
[in] PolicyHandle
Handle d’un objet Policy . Ce handle doit avoir le droit d’accès POLICY_LOOKUP_NAMES. Pour plus d’informations, consultez Ouverture d’un handle d’objet de stratégie.
[in] Count
Spécifie le nombre de SID dans le tableau Sids . Il s’agit également du nombre d’entrées retournées dans le tableau Noms . Cette valeur doit être inférieure ou égale à 20480.
[in] Sids
Pointeur vers un tableau de pointeurs SID à rechercher. Les SID peuvent être des SIDs bien connus, des SID d’utilisateur, de groupe ou de compte de groupe local, ou des SID de domaine.
[out] ReferencedDomains
Reçoit un pointeur vers un pointeur vers une structure LSA_REFERENCED_DOMAIN_LIST . Le membre Domains de cette structure est un tableau qui contient une entrée pour chaque domaine dans lequel un SID a été trouvé. L’entrée de chaque domaine contient le SID et le nom plat du domaine. Pour les domaines Windows, le nom plat est le nom NetBIOS. Pour les liens avec des domaines autres que Windows, le nom plat est le nom d’identification de ce domaine, ou il est NULL.
Lorsque vous n’avez plus besoin des informations, passez le pointeur retourné à LsaFreeMemory. Cette mémoire doit être libérée même lorsque la fonction échoue avec l’un des codes d’erreur STATUS_NONE_MAPPED ou STATUS_SOME_NOT_MAPPED
[out] Names
Reçoit un pointeur vers un tableau de structures LSA_TRANSLATED_NAME . Chaque entrée du tableau Noms contient les informations de nom de l’entrée correspondante dans le tableau Sids . Pour les SID de compte, le membre Name de chaque structure contient le nom isolé du compte. Pour les SID de domaine, le membre Name n’est pas valide.
Le membre DomainIndex de chaque entrée du tableau Names est l’index d’une entrée dans le tableau Domains retourné dans le paramètre ReferencedDomains . L’index identifie le tableau Domains pour le domaine dans lequel le SID a été trouvé.
Lorsque vous n’avez plus besoin des informations, passez le pointeur retourné à LsaFreeMemory. Cette mémoire doit être libérée même lorsque la fonction échoue avec l’un des codes d’erreur STATUS_NONE_MAPPED ou STATUS_SOME_NOT_MAPPED
Valeur retournée
Si la fonction réussit, la valeur de retour est l’une des valeurs NTSTATUS suivantes.
Code de retour | Description |
---|---|
|
Certains SID n’ont pas pu être traduits. Il s’agit d’une valeur de retour de niveau informationnel. |
|
Tous les SID ont été trouvés et traduits avec succès. |
Si la fonction échoue, la valeur de retour est un code NTSTATUS , qui peut être l’une des valeurs suivantes ou l’une des valeurs de retour de la fonction de stratégie LSA.
Code de retour | Description |
---|---|
|
Aucun des SID n’a été traduit. Il s’agit d’une valeur de retour de niveau d’erreur. |
|
Le paramètre de tableau Sids était trop volumineux. |
Vous pouvez utiliser la fonction LsaNtStatusToWinError pour convertir le code NTSTATUS en code d’erreur Windows.
Remarques
Pour les SID de compte, la chaîne retournée dans le membre Name est le nom isolé du compte (par exemple, user_name). Si vous avez besoin du nom composite du compte (par exemple, Acctg\user_name), récupérez le nom de domaine à partir de la mémoire tampon ReferencedDomains et ajoutez une barre oblique inverse et le nom isolé.
Si la fonction LsaLookupSids ne peut pas traduire un SID, la fonction utilise l’algorithme suivant :
- Si le domaine du SID est connu, la mémoire tampon ReferencedDomains contient une entrée pour le domaine, et la chaîne retournée dans le paramètre Names est une représentation Unicode de l’identificateur relatif (RID) du compte à partir du SID.
- Si le domaine du SID n’est pas connu, la chaîne renvoyée dans le paramètre Names est une représentation Unicode de l’ensemble du SID et il n’existe aucun enregistrement de domaine pour ce SID dans la mémoire tampon ReferencedDomains .
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows XP [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows Server 2003 [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | ntsecapi.h |
Bibliothèque | Advapi32.lib |
DLL | Advapi32.dll |