LSA_GET_CREDENTIALS función de devolución de llamada (ntsecpkg.h)

Recupera las credenciales asociadas a una sesión de inicio de sesión.

Los paquetes de autenticación más recientes no usan esta función, como Kerberos.

Sintaxis

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
)
{...}

Parámetros

[in] LogonId

Puntero a una estructura LUID que contiene el identificador de sesión de la sesión de inicio de sesión desde la que se van a recuperar las credenciales.

[in] AuthenticationPackage

Identificador del paquete de autenticación del paquete de autenticación que llama. Los paquetes de autenticación solo deben recuperar sus propias credenciales.

[in, out] QueryContext

Puntero a un valor LONG sin firmar usado en llamadas sucesivas para recuperar varias credenciales. La primera vez que se usa esta función, el valor al que apunta este argumento debe ser cero. A partir de entonces, este valor se actualizará para permitir que la recuperación continúe donde se dejó. Por lo tanto, este valor no se debe cambiar hasta que se hayan recuperado todas las credenciales de una operación de consulta determinada.

[in] RetrieveAllCredentials

Indica si se deben recuperar todas las credenciales de la sesión de inicio de sesión especificada (TRUE) o solo las que coincidan con primaryKeyValue (FALSE).

[in, out] PrimaryKeyValue

Este parámetro tiene dos propósitos. Si el parámetro RetrieveAllCredentials es FALSE, esta cadena contiene el valor que se va a usar como clave de búsqueda principal. En este caso, solo se recuperarán las credenciales que pertenecen a la sesión de inicio de sesión correcta con una clave de búsqueda principal que coincida con este valor.

Si RetrieveAllCredentials es TRUE, se omite el valor de esta cadena en la entrada y se devuelve la clave de búsqueda principal de cada credencial recuperada en esta cadena.

[out] PrimaryKeyLength

Si el parámetro RetrieveAllCredentials es TRUE, este parámetro recibe la longitud necesaria para almacenar la cadena PrimaryKeyValue .

[out] Credentials

Puntero a un búfer que recibe la credencial recuperada. Solo se recupera una credencial para cada llamada realizada. La credencial se devuelve en un búfer que la función asigna mediante una llamada a la función AllocateLsaHeap . Es responsabilidad del autor de la llamada liberar el búfer de credenciales cuando ya no es necesario, llamando a FreeLsaHeap.

Valor devuelto

Si la función se ejecuta correctamente, la función devuelve el código NTSTATUS, STATUS_SUCCESS, lo que indica que las credenciales se recuperaron correctamente.

Si se produce un error en la función, el valor devuelto es un código NTSTATUS, que puede ser uno de los siguientes valores o uno de los valores devueltos de la función de directiva LSA.

Código devuelto Descripción
ERROR_GEN_FAILURE
No hay más credenciales disponibles. Si este código se devuelve en la primera llamada, no hay credenciales que coincidan con los criterios de selección.
STATUS_MORE_ENTRIES
La cadena proporcionada para recibir PrimaryKeyValue no era lo suficientemente grande como para contener los datos. En este caso, no se recupera ningún dato y no se modifica el valor QueryContext . Esto permite que se vuelva a realizar la misma llamada con un búfer de cadena más grande.
STATUS_NO_SUCH_LOGON_SESSION
No se encontró la sesión de inicio de sesión especificada.
 

La función LsaNtStatusToWinError convierte un código NTSTATUS en un código de error de Windows.

Requisitos

Requisito Value
Cliente mínimo compatible Windows XP [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2003 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado ntsecpkg.h

Consulte también

LSA_DISPATCH_TABLE

LSA_SECPKG_FUNCTION_TABLE