Compartilhar via


Função WlxLoggedOutSAS (winwlx.h)

[A função WlxLoggedOutSAS não está mais disponível para uso a partir do Windows Server 2008 e do Windows Vista.]

A função WlxLoggedOutSAS deve ser implementada por uma DLL GINA de substituição. O Winlogon chama essa função quando recebe um evento SAS ( sequência de atenção segura ) enquanto nenhum usuário está conectado.

Nota As DLLs GINA são ignoradas no Windows Vista.
 

Sintaxe

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
);

Parâmetros

[in] pWlxContext

Um ponteiro para o contexto GINA associado a esta estação de janela. O GINA retorna esse valor de contexto quando Winlogon chama WlxInitialize para esta estação.

[in] dwSasType

Especifica o tipo de SAS que ocorreu. Os valores de zero a WLX_SAS_TYPE_MAX_MSFT_VALUE são reservados para definir tipos padrão de SAS da Microsoft. Os desenvolvedores gina podem definir tipos SAS adicionais usando valores maiores que WLX_SAS_TYPE_MAX_MSFT_VALUE.

Os seguintes tipos de SAS são predefinidos.

Valor Significado
WLX_SAS_TYPE_CTRL_ALT_DEL
Indica que um usuário digitou o PADRÃO CTRL+ALT+DEL SAS.
WLX_SAS_TYPE_SC_INSERT
Indica que uma cartão inteligente foi inserida em um dispositivo compatível.
WLX_SAS_TYPE_SC_REMOVE
Indica que uma cartão inteligente foi removida de um dispositivo compatível.
WLX_SAS_TYPE_TIMEOUT
Indica que nenhuma entrada de usuário foi recebida dentro do período de tempo limite especificado.

[out] pAuthenticationId

Especifica o identificador de autenticação associado à sessão de logon atual. Você pode obter esse valor chamando GetTokenInformation para obter uma estrutura TOKEN_STATISTICS para o token retornado pela função LogonUser .

[in, out] pLogonSid

Na entrada, esse parâmetro aponta para um SID ( identificador de segurança ) exclusivo para a sessão de logon atual. O Winlogon usa esse SID para alterar a proteção na estação de janela e na área de trabalho do aplicativo para que o novo usuário conectado possa acessá-los.

Na saída, o Winlogon fornece um SID. Você também pode obter o SID usando a função GetTokenInformation para recuperar uma estrutura TOKEN_GROUPS para o token retornado pela função LogonUser . Para fazer isso, pesquise a matriz retornada na estrutura TOKEN_GROUPS para o grupo com o atributo SE_GROUP_LOGON_ID.

[out] pdwOptions

Um ponteiro para um DWORD que contém o conjunto de opções de logon. A opção a seguir é definida.

Valor Significado
WLX_LOGON_OPT_NO_PROFILE
Indica que o Winlogon não deve carregar um perfil para o usuário conectado. A DLL gina cuidará dessa atividade ou o usuário não precisará de um perfil.

[out] phToken

Um ponteiro para uma variável de identificador. Quando a operação de logon for bem-sucedida, defina esse identificador como um token que representa o usuário conectado. Use a função LogonUser para obter esse token e, quando o usuário fizer logoff, o Winlogon fechará esse identificador e chamará a função WlxLogoff .

Se você precisar desse identificador depois de chamar a função WlxLogoff , faça uma duplicata do identificador antes de devolvê-lo ao Winlogon.

[out] pNprNotifyInfo

Um ponteiro para uma estrutura WLX_MPR_NOTIFY_INFO que contém informações de domínio, nome de usuário e senha para o usuário. O Winlogon usará essas informações para fornecer informações de identificação e autenticação aos provedores de rede.

A GINA não é necessária para retornar informações de senha. Todos os campos NULL dentro da estrutura serão ignorados pelo Winlogon. Use LocalAlloc para alocar cada cadeia de caracteres; O Winlogon os liberará quando eles não forem mais necessários.

A GINA deve fornecer valores de domínio, usuário e senha para a funcionalidade completa do Diretório de Sessão. Se a senha não for fornecida, o Diretório de Sessão exigirá que o usuário insira a senha duas vezes antes que o usuário esteja conectado ao servidor.

Para obter informações sobre como proteger senhas, consulte Manipulando senhas.

[out] pProfile

Ao retornar de uma autenticação bem-sucedida, o parâmetro pProfile aponta para uma estrutura de WLX_PROFILE_V1_0 ou WLX_PROFILE_V2_0 . O primeiro DWORD na estrutura indica qual estrutura ela é. O Winlogon usa essa estrutura para carregar o perfil do usuário conectado e libera a memória associada à estrutura quando ela não precisa mais dela.

Valor retornado

Se a função falhar, a função retornará zero.

Se a função for bem-sucedida, ela retornará um dos valores a seguir.

Código de retorno Descrição
WLX_SAS_ACTION_LOGON
Indica que um usuário fez logon.
WLX_SAS_ACTION_NONE
Indica que a tentativa registrada não foi bem-sucedida ou cancelada.
WLX_SAS_ACTION_SHUTDOWN
Indica que o usuário solicitou que o sistema fosse desligado.

Comentários

Antes de chamar WlxLoggedOutSAS, o Winlogon define o estado da área de trabalho para que a área de trabalho atual seja a área de trabalho do Winlogon e defina o estado da estação de trabalho para que a área de trabalho seja bloqueada.

Não ative o programa de shell de usuário no WlxLoggedOutSAS. O programa de shell de usuário sempre deve ser ativado no WlxActivateUserShell.

Requisitos

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

Confira também

WlxActivateUserShell

WlxInitialize