LSA_GET_CREDENTIALS função de retorno de chamada (ntsecpkg.h)
Recupera credenciais associadas a uma sessão de logon.
Essa função não é usada por pacotes de autenticação mais recentes, como Kerberos.
Sintaxe
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
Ponteiro para uma estrutura LUID que contém a ID da sessão de logon da qual as credenciais devem ser recuperadas.
[in] AuthenticationPackage
ID do pacote de autenticação do pacote de autenticação de chamada. Os pacotes de autenticação devem recuperar apenas suas próprias credenciais.
[in, out] QueryContext
Ponteiro para um valor LONG sem sinal usado em chamadas sucessivas para recuperar várias credenciais. Na primeira vez que essa função é usada, o valor apontado por esse argumento deve ser zero. Depois disso, esse valor será atualizado para permitir que a recuperação continue de onde parou. Portanto, esse valor não deve ser alterado até que todas as credenciais de uma determinada operação de consulta sejam recuperadas.
[in] RetrieveAllCredentials
Indica se todas as credenciais para a sessão de logon especificada devem ser recuperadas (TRUE) ou apenas aquelas que correspondem ao PrimaryKeyValue (FALSE) especificado.
[in, out] PrimaryKeyValue
Esse parâmetro serve a duas finalidades. Se o parâmetro RetrieveAllCredentials for FALSE, essa cadeia de caracteres conterá o valor a ser usado como uma chave de pesquisa primária. Nesse caso, somente as credenciais pertencentes à sessão de logon correta com uma chave de pesquisa primária correspondente a esse valor serão recuperadas.
Se RetrieveAllCredentials for TRUE, o valor dessa cadeia de caracteres na entrada será ignorado e a chave de pesquisa primária de cada credencial recuperada será retornada nesta cadeia de caracteres.
[out] PrimaryKeyLength
Se o parâmetro RetrieveAllCredentials for TRUE, esse parâmetro receberá o comprimento necessário para armazenar a cadeia de caracteres PrimaryKeyValue .
[out] Credentials
Ponteiro para um buffer que recebe a credencial recuperada. Apenas uma credencial é recuperada para cada chamada feita. A credencial é retornada em um buffer que a função aloca chamando a função AllocateLsaHeap . É responsabilidade do chamador liberar o buffer credenciais quando ele não for mais necessário, chamando FreeLsaHeap.
Retornar valor
Se a função for bem-sucedida, a função retornará o código NTSTATUS, STATUS_SUCCESS, indicando que as credenciais foram recuperadas com êxito.
Se a função falhar, o valor retornado será um código NTSTATUS, que pode ser um dos valores a seguir ou um dos valores retornados da função de política LSA.
Código de retorno | Descrição |
---|---|
|
Não há mais credenciais disponíveis. Se esse código for retornado na primeira chamada, não haverá credenciais que correspondam aos critérios de seleção. |
|
A cadeia de caracteres fornecida para receber o PrimaryKeyValue não era grande o suficiente para manter os dados. Nesse caso, nenhum dado é recuperado e o valor QueryContext não é modificado. Isso permite que a mesma chamada seja feita novamente com um buffer de cadeia de caracteres maior. |
|
Não foi possível encontrar a sessão de logon especificada. |
A função LsaNtStatusToWinError converte um código NTSTATUS em um código de erro do Windows.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows XP [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows Server 2003 [somente aplicativos da área de trabalho] |
Plataforma de Destino | Windows |
Cabeçalho | ntsecpkg.h |