Share via


LSA_GET_CREDENTIALS fonction de rappel (ntsecpkg.h)

Récupère les informations d’identification associées à une session d’ouverture de session.

Cette fonction n’est pas utilisée par les packages d’authentification plus récents, tels que Kerberos.

Syntaxe

LSA_GET_CREDENTIALS LsaGetCredentials;

NTSTATUS LsaGetCredentials(
  [in]      PLUID LogonId,
  [in]      ULONG AuthenticationPackage,
  [in, out] PULONG QueryContext,
  [in]      BOOLEAN RetrieveAllCredentials,
  [in, out] PLSA_STRING PrimaryKeyValue,
  [out]     PULONG PrimaryKeyLength,
  [out]     PLSA_STRING Credentials
)
{...}

Paramètres

[in] LogonId

Pointeur vers une structure LUID contenant l’ID de session de la session de connexion à partir de laquelle les informations d’identification doivent être récupérées.

[in] AuthenticationPackage

ID de package d’authentification du package d’authentification appelant. Les packages d’authentification doivent récupérer uniquement leurs propres informations d’identification.

[in, out] QueryContext

Pointeur vers une valeur LONG non signée utilisée dans les appels successifs pour récupérer plusieurs informations d’identification. La première fois que cette fonction est utilisée, la valeur pointée par cet argument doit être égale à zéro. Par la suite, cette valeur sera mise à jour pour permettre à la récupération de continuer là où elle s’est arrêté. Cette valeur ne doit donc pas être modifiée tant que toutes les informations d’identification d’une opération de requête donnée n’ont pas été récupérées.

[in] RetrieveAllCredentials

Indique si toutes les informations d’identification de la session d’ouverture de session spécifiée doivent être récupérées (TRUE), ou uniquement celles correspondant à la valeur PrimaryKeyValue (FALSE) spécifiée.

[in, out] PrimaryKeyValue

Ce paramètre remplit deux fonctions. Si le paramètre RetrieveAllCredentials a la valeur FALSE, cette chaîne contient la valeur à utiliser comme clé de recherche primaire. Dans ce cas, seules les informations d’identification appartenant à la session d’ouverture de session correcte avec une clé de recherche primaire correspondant à cette valeur sont récupérées.

Si RetrieveAllCredentials a la valeur TRUE, la valeur de cette chaîne en entrée est ignorée et la clé de recherche primaire de chaque informations d’identification récupérées est retournée dans cette chaîne.

[out] PrimaryKeyLength

Si le paramètre RetrieveAllCredentials a la valeur TRUE, ce paramètre reçoit la longueur nécessaire pour stocker la chaîne PrimaryKeyValue .

[out] Credentials

Pointeur vers une mémoire tampon qui reçoit les informations d’identification récupérées. Une seule information d’identification est récupérée pour chaque appel effectué. Les informations d’identification sont retournées dans une mémoire tampon que la fonction alloue en appelant la fonction AllocateLsaHeap . Il est de la responsabilité de l’appelant de libérer la mémoire tampon d’informations d’identification quand elle n’est plus nécessaire, en appelant FreeLsaHeap.

Valeur retournée

Si la fonction réussit, la fonction retourne le code NTSTATUS, STATUS_SUCCESS, indiquant que les informations d’identification ont été récupérées 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
ERROR_GEN_FAILURE
Aucune autre information d’identification n’est disponible. Si ce code est retourné lors du premier appel, aucune information d’identification ne correspond aux critères de sélection.
STATUS_MORE_ENTRIES
La chaîne fournie pour recevoir le PrimaryKeyValue n’était pas assez grande pour contenir les données. Dans ce cas, aucune donnée n’est récupérée et la valeur QueryContext n’est pas modifiée. Cela permet de refaire le même appel avec une mémoire tampon de chaîne plus grande.
STATUS_NO_SUCH_LOGON_SESSION
La session d’ouverture de session spécifiée est introuvable.
 

La fonction LsaNtStatusToWinError convertit un code NTSTATUS en code d’erreur Windows.

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 ntsecpkg.h

Voir aussi

LSA_DISPATCH_TABLE

LSA_SECPKG_FUNCTION_TABLE