Personalizando o Winlogon
Personalize o comportamento do Winlogon implementando um Provedor de Credenciais. Para obter informações sobre provedores de credenciais, consulte Interface ICredentialProvider.
Windows Server 2003 e Windows XP: Não há suporte para provedores de credenciais.
As seções a seguir descrevem maneiras de personalizar o Winlogon em versões do Windows antes do Windows Vista.
Observação
As DLLs GINA e os pacotes de notificação do Winlogon são ignorados no Windows Vista.
Pacotes de notificação do Winlogon
Um pacote de notificação do Winlogon é uma DLL que exporta funções que lidam com eventos do Winlogon. Por exemplo, quando um usuário faz logon no sistema, o Winlogon chama cada pacote de notificação para fornecer informações sobre o evento. Para obter mais informações, consulte Pacotes de notificação do Winlogon.
GINA Stubs
Um stub gina é uma DLL GINA personalizada que usa as implementações de função de exportação de uma DLL GINA instalada anteriormente (normalmente MsGina.dll). Um stub gina obtém ponteiros para cada função exportada pela DLL GINA instalada anteriormente. Cada função stub gina usa o ponteiro de função apropriado para chamar a função correspondente na DLL GINA instalada anteriormente.
Importante
Cada função stub gina deve chamar a função correspondente na GINA instalada anteriormente.
Uma função stub GINA pode implementar funcionalidades adicionais em uma ou mais de suas funções de exportação. Por exemplo, a função WlxLoggedOutSAS de um stub gina pode marcar a hora atual antes de chamar a função WlxLoggedOutSAS do MsGina.dll. Se a hora atual estiver dentro de um intervalo específico, a função stub poderá exibir uma mensagem que indica que o logon não é permitido durante esse período de tempo e retornar WLX_SAS_ACTION_NONE ao Winlogon. A função WlxLoggedOutSAS do MsGina.dll seria chamada somente durante o período de tempo permitido.
O aplicativo stub gina obtém uma tabela de expedição para funções de suporte do Winlogon por meio do parâmetro pWinlogonFunctions da função WlxInitialize . O aplicativo stub GINA pode usar essa tabela de expedição para chamar funções de suporte do Winlogon. Por exemplo, um aplicativo stub gina pode chamar a função WlxSasNotify para causar um evento SAS (sequência de atenção segura) quando um cartão inteligente é inserido em um leitor.
Para obter mais informações sobre como criar um stub gina, consulte o exemplo Gina Stubs no diretório \Samples\Security\Gina\GinaStub de uma instalação do SDK (Platform Software Development Kit).
Observação
Todas as chamadas entre gina e Winlogon devem estar dentro de um único thread.
Ganchos GINA
Um gancho GINA é um stub gina que, em sua implementação da função WlxInitialize , substitui o ponteiro para a função de suporte WlxDialogBoxParam na tabela de expedição com um ponteiro para sua própria implementação da função WlxDialogBoxParam . Como resultado, cada vez que a GINA instalada anteriormente (normalmente MsGina.dll) chama a função WlxDialogBoxParam , a função implementada pelo gancho GINA é chamada.
A função WlxDialogBoxParam implementada pelo gancho GINA pode substituir o procedimento de retorno de chamada DialogProc que responde a um evento de caixa de diálogo específico.
Isso dá ao gancho GINA controle total sobre a aparência e o comportamento de todas as caixas de diálogo que MsGina.dll cria.
Para obter mais informações sobre como criar um gancho GINA, consulte o exemplo Gina Hooks no diretório \Samples\Security\Gina\GinaHook de uma instalação do SDK da Plataforma.
Observação
Todas as chamadas entre gina e Winlogon devem estar dentro de um único thread.