다음을 통해 공유


WlxLoggedOutSAS 함수(winwlx.h)

[WlxLoggedOutSAS 함수는 Windows Server 2008 및 Windows Vista를 기준으로 더 이상 사용할 수 없습니다.]

WlxLoggedOutSAS 함수는 대체 GINA DLL에 의해 구현되어야 합니다. Winlogon 은 사용자가 로그온되지 않은 동안 SAS( 보안 주의 시퀀스 ) 이벤트를 수신할 때 이 함수를 호출합니다.

참고 GINA DLL은 Windows Vista에서 무시됩니다.
 

구문

int WlxLoggedOutSAS(
  [in]      PVOID                pWlxContext,
  [in]      DWORD                dwSasType,
  [out]     PLUID                pAuthenticationId,
  [in, out] PSID                 pLogonSid,
  [out]     PDWORD               pdwOptions,
  [out]     PHANDLE              phToken,
  [out]     PWLX_MPR_NOTIFY_INFO pNprNotifyInfo,
  [out]     PVOID                *pProfile
);

매개 변수

[in] pWlxContext

이 창 스테이션과 연결된 GINA 컨텍스트에 대한 포인터입니다. Winlogon이 이 스테이션에 대해 WlxInitialize 를 호출하면 GINA는 이 컨텍스트 값을 반환합니다.

[in] dwSasType

발생한 SAS 유형을 지정합니다. 0에서 WLX_SAS_TYPE_MAX_MSFT_VALUE 값은 표준 Microsoft SAS 형식을 정의하기 위해 예약되어 있습니다. GINA 개발자는 WLX_SAS_TYPE_MAX_MSFT_VALUE보다 큰 값을 사용하여 추가 SAS 형식을 정의할 수 있습니다.

다음 SAS 형식이 미리 정의되어 있습니다.

의미
WLX_SAS_TYPE_CTRL_ALT_DEL
사용자가 표준 CTRL+ALT+DEL SAS를 입력했음을 나타냅니다.
WLX_SAS_TYPE_SC_INSERT
스마트 카드 호환되는 디바이스에 삽입되었음을 나타냅니다.
WLX_SAS_TYPE_SC_REMOVE
스마트 카드 호환되는 디바이스에서 제거되었음을 나타냅니다.
WLX_SAS_TYPE_TIMEOUT
지정된 제한 시간 내에 사용자 입력이 수신되지 않음을 나타냅니다.

[out] pAuthenticationId

현재 로그온 세션과 연결된 인증 식별자를 지정합니다. GetTokenInformation을 호출하여 LogonUser 함수에서 반환된 토큰에 대한 TOKEN_STATISTICS 구조를 가져와 이 값을 가져올 수 있습니다.

[in, out] pLogonSid

입력 시 이 매개 변수는 현재 로그온 세션에 고유한 SID( 보안 식별자 )를 가리킵니다. Winlogon 은 이 SID를 사용하여 새 로그온한 사용자가 액세스할 수 있도록 창 스테이션 및 애플리케이션 데스크톱에서 보호를 변경합니다.

출력에서 Winlogon은 SID를 제공합니다. GetTokenInformation 함수를 사용하여 LogonUser 함수에서 반환된 토큰에 대한 TOKEN_GROUPS 구조를 검색하여 SID를 가져올 수도 있습니다. 이렇게 하려면 SE_GROUP_LOGON_ID 특성을 사용하여 그룹의 TOKEN_GROUPS 구조에서 반환된 배열을 검색합니다.

[out] pdwOptions

로그온 옵션 집합이 포함된 DWORD 에 대한 포인터입니다. 다음 옵션이 정의되어 있습니다.

의미
WLX_LOGON_OPT_NO_PROFILE
Winlogon이 로그온한 사용자에 대한 프로필을 로드해서는 안 됨을 나타냅니다. GINA DLL이 이 작업을 처리하거나 사용자에게 프로필이 필요하지 않습니다.

[out] phToken

핸들 변수에 대한 포인터입니다. 로그온 작업이 성공하면 이 핸들을 로그온한 사용자를 나타내는 토큰으로 설정합니다. LogonUser 함수를 사용하여 이 토큰을 가져옵니다. 그런 다음, 사용자가 로그오프하면 Winlogon이 이 핸들을 닫고 WlxLogoff 함수를 호출합니다.

WlxLogoff 함수를 호출한 후 이 핸들이 필요한 경우 Winlogon으로 반환하기 전에 핸들을 복제합니다.

[out] pNprNotifyInfo

사용자의 도메인, 사용자 이름 및 암호 정보를 포함하는 WLX_MPR_NOTIFY_INFO 구조에 대한 포인터입니다. Winlogon은 이 정보를 사용하여 네트워크 공급자에게 식별 및 인증 정보를 제공합니다.

GINA는 암호 정보를 반환할 필요가 없습니다. 구조체 내의 모든 NULL 필드는 Winlogon에서 무시됩니다. LocalAlloc을 사용하여 각 문자열을 할당합니다. Winlogon은 더 이상 필요하지 않을 때 이를 해제합니다.

GINA는 전체 세션 디렉터리 기능을 위해 도메인, 사용자 및 암호 값을 제공해야 합니다. 암호를 제공하지 않으면 세션 디렉터리에서 사용자가 서버에 연결되기 전에 암호를 두 번 입력해야 합니다.

암호 보호에 대한 자세한 내용은 암호 처리를 참조하세요.

[out] pProfile

성공적인 인증에서 반환되면 pProfile 매개 변수는 WLX_PROFILE_V1_0 또는 WLX_PROFILE_V2_0 구조를 가리킵니다. 구조체의 첫 번째 DWORD 는 구조체를 나타냅니다. Winlogon은 이 구조를 사용하여 로그온한 사용자의 프로필을 로드하고 더 이상 필요하지 않을 때 구조와 연결된 메모리를 해제합니다.

반환 값

함수가 실패하면 함수는 0을 반환합니다.

함수가 성공하면 다음 값 중 하나를 반환합니다.

반환 코드 설명
WLX_SAS_ACTION_LOGON
사용자가 로그온했음을 나타냅니다.
WLX_SAS_ACTION_NONE
기록된 시도가 실패했거나 취소되었음을 나타냅니다.
WLX_SAS_ACTION_SHUTDOWN
사용자가 시스템을 종료해 달라고 요청했음을 나타냅니다.

설명

WlxLoggedOutSAS를 호출하기 전에 Winlogon은 현재 데스크톱이 Winlogon 데스크톱이 되도록 데스크톱 상태를 설정하고 데스크톱이 잠기도록 워크스테이션 상태를 설정합니다.

WlxLoggedOutSAS에서 사용자 셸 프로그램을 활성화하지 마세요. 사용자 셸 프로그램은 항상 WlxActivateUserShell에서 활성화되어야 합니다.

요구 사항

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

참고 항목

WlxActivateUserShell

WlxInitialize