다음을 통해 공유


LSA_GET_CREDENTIALS 콜백 함수(ntsecpkg.h)

로그온 세션과 연결된 자격 증명을 검색합니다.

이 함수는 Kerberos와 같은 최신 인증 패키지에서 사용되지 않습니다.

구문

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

매개 변수

[in] LogonId

자격 증명을 검색할 로그온 세션의 세션 ID를 포함하는 LUID 구조체에 대한 포인터입니다.

[in] AuthenticationPackage

호출 인증 패키지의 인증 패키지 ID입니다. 인증 패키지는 자체 자격 증명만 검색해야 합니다.

[in, out] QueryContext

여러 자격 증명을 검색하기 위해 연속 호출에서 사용되는 서명되지 않은 LONG 값에 대한 포인터입니다. 이 함수를 처음 사용할 때 이 인수가 가리키는 값은 0이어야 합니다. 그 후 이 값은 중단된 위치에서 검색을 계속할 수 있도록 업데이트됩니다. 따라서 이 값은 지정된 쿼리 작업의 모든 자격 증명을 검색할 때까지 변경되지 않아야 합니다.

[in] RetrieveAllCredentials

지정된 로그온 세션에 대한 모든 자격 증명을 검색해야 하는지(TRUE) 또는 지정된 PrimaryKeyValue (FALSE)와 일치하는 자격 증명만 검색해야 하는지 여부를 나타냅니다.

[in, out] PrimaryKeyValue

이 매개 변수는 두 가지 용도로 사용됩니다. RetrieveAllCredentials 매개 변수가 FALSE이면 이 문자열에는 기본 조회 키로 사용할 값이 포함됩니다. 이 경우 이 값과 일치하는 기본 조회 키가 있는 올바른 로그온 세션에 속한 자격 증명만 검색됩니다.

RetrieveAllCredentialsTRUE이면 입력 시 이 문자열의 값이 무시되고 검색된 각 자격 증명의 기본 조회 키가 이 문자열에 반환됩니다.

[out] PrimaryKeyLength

RetrieveAllCredentials 매개 변수가 TRUE이면 이 매개 변수는 PrimaryKeyValue 문자열을 저장하는 데 필요한 길이를 받습니다.

[out] Credentials

검색된 자격 증명을 수신하는 버퍼에 대한 포인터입니다. 각 호출에 대해 하나의 자격 증명만 검색됩니다. 자격 증명은 AllocateLsaHeap 함수를 호출하여 함수가 할당하는 버퍼에 반환됩니다. FreeLsaHeap을 호출하여 더 이상 필요하지 않은 경우 자격 증명 버퍼를 해제하는 것은 호출자의 책임입니다.

반환 값

함수가 성공하면 함수는 자격 증명이 성공적으로 검색되었음을 나타내는 STATUS_SUCCESS NTSTATUS 코드를 반환합니다.

함수가 실패하면 반환 값은 다음 값 중 하나 또는 LSA 정책 함수 반환 값 중 하나일 수 있는 NTSTATUS 코드입니다.

반환 코드 설명
ERROR_GEN_FAILURE
더 이상 자격 증명을 사용할 수 없습니다. 이 코드가 첫 번째 호출에서 반환되는 경우 선택 조건과 일치하는 자격 증명이 없습니다.
STATUS_MORE_ENTRIES
PrimaryKeyValue를 받기 위해 제공된 문자열이 데이터를 저장할 만큼 크지 않았습니다. 이 경우 데이터가 검색되지 않고 QueryContext 값이 수정되지 않습니다. 이렇게 하면 더 큰 문자열 버퍼를 사용하여 동일한 호출을 다시 수행할 수 있습니다.
STATUS_NO_SUCH_LOGON_SESSION
지정된 로그온 세션을 찾을 수 없습니다.
 

LsaNtStatusToWinError 함수는 NTSTATUS 코드를 Windows 오류 코드로 변환합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows XP [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2003 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 ntsecpkg.h

추가 정보

LSA_DISPATCH_TABLE

LSA_SECPKG_FUNCTION_TABLE