Funções de autenticação

As funções de autenticação são categorizadas de acordo com o uso da seguinte maneira:

Funções SSPI

As funções SSPI (Security Support Provider Interface) se enquadram nas categorias principais a seguir.

Gerenciamento de pacote

As funções de gerenciamento de pacoteSPI iniciam um pacote de segurança, enumeram pacotes disponíveis e consultam os atributos de um pacote de segurança. As funções SSPI a seguir fornecem serviços de gerenciamento para pacotes de segurança.

Função Descrição
EnumerateSecurityPackages Lista os pacotes de segurança disponíveis e seus recursos.
InitSecurityInterface Recupera um ponteiro para uma tabela de expedição do SSP (provedor de suporte de segurança).
QuerySecurityPackageInfo Recupera informações sobre um pacote de segurança especificado. Essas informações incluem os limites de tamanhos de informações de autenticação, credenciais e contextos.

Gerenciamento de Credenciais

As funções de gerenciamento de credenciais SSPI fornecem um identificador de credenciais , uma referência a um objeto de segurança opaco, para acessar uma entidade de segurança. O objeto de segurança é opaco porque o aplicativo tem acesso apenas ao identificador e não ao conteúdo real da estrutura.

Todas as referências ao conteúdo de um contexto de credencial são por meio do identificador do objeto e o pacote de segurança desreferencia o identificador para acessar as especificidades das credenciais. Um identificador de credencial é um valor de 64 bits entre {0x00000000, 0x00000000} e {0xFFFFFFFF, 0xFFFFFFFE}.

Os aplicativos usam o identificador de credenciais com funções de gerenciamento de contexto para criar um contexto de segurança.

As funções de gerenciamento de credenciais também liberam identificadores de credencial e consultam os atributos das credenciais. No momento, o nome associado a uma credencial é o único atributo que pode ser consultado.

As funções a seguir são usadas com o gerenciamento de credenciais.

Função Descrição
AcquireCredentialsHandle (Geral) Adquire um identificador para as credenciais preexistente de uma entidade de segurança especificada.
ExportSecurityContext Exporta um contexto de segurança para um buffer de contexto.
FreeCredentialsHandle Libera um identificador de credencial e recursos associados.
ImportSecurityContext Importa um contexto de segurança exportado usando ExportSecurityContext para o processo atual.
QueryCredentialsAttributes Recupera os atributos de uma credencial, como o nome associado à credencial.

Gerenciamento de Contexto

As funções de gerenciamento de contexto de SSPI criam e usam contextos de segurança.

Em um link de comunicação, o cliente e o servidor cooperam para criar um contexto de segurança compartilhado. O cliente e o servidor usam o contexto de segurança com funções de suporte a mensagens para garantir a integridade e a privacidade da mensagem durante a conexão.

Os contextos de segurança são objetos de segurança opacos. As informações no contexto de segurança não estão disponíveis para o aplicativo. As funções de gerenciamento de contexto criam e usam identificadores de contexto e o pacote de segurança desrefere o identificador de contexto para acessar seu conteúdo de segurança.

Um identificador de contexto é um valor de 64 bits entre {0x00000000, 0x00000000} e {0xFFFFFFFF, 0xFFFFFFFE}.

As funções a seguir são usadas com o gerenciamento de contexto.

Função Descrição
AcceptSecurityContext (Geral) Usado por um servidor para criar um contexto de segurança com base em uma mensagem opaca recebida de um cliente.
ApplyControlToken Aplica uma mensagem de segurança complementar a um contexto de segurança existente.
Completeauthtoken Conclui um token de autenticação. Essa função é usada por protocolos, como dce, que precisam revisar as informações de segurança depois que o aplicativo de transporte atualizou alguns parâmetros de mensagem.
DeleteSecurityContext Libera um contexto de segurança e recursos associados.
Freecontextbuffer Libera um buffer de memória alocado por um pacote de segurança.
ImpersonateSecurityContext Representa o contexto de segurança a ser exibido como o cliente para o sistema.
InitializeSecurityContext (Geral) Usado por um cliente para iniciar um contexto de segurança gerando uma mensagem opaca a ser passada para um servidor.
QueryContextAttributes (Geral) Permite que um aplicativo de transporte consulte um pacote de segurança para determinados atributos de um contexto de segurança.
QuerySecurityContextToken Obtém o token de acesso para um contexto de segurança do cliente e o usa diretamente.
SetContextAttributes Permite que um aplicativo de transporte defina atributos de um contexto de segurança para um pacote de segurança. Essa função tem suporte apenas pelo pacote de segurança Schannel.
RevertSecurityContext Permite que um pacote de segurança descontinue a representação do chamador e restaure seu próprio contexto de segurança.

Suporte a mensagens

As funções de suporte a mensagens SSPI permitem que um aplicativo transmita e receba mensagens resistentes a adulterações e criptografe e descriptografe mensagens. Essas funções funcionam com um ou mais buffers que contêm uma mensagem e com um contexto de segurança criado pelas funções de gerenciamento de contexto . O comportamento das funções difere com base em uma conexão, datagrama ou contexto de fluxo em uso. Para obter uma descrição dessas diferenças, consulte Semântica de Contexto de SSPI.

As funções a seguir fornecem suporte de segurança para mensagens.

Função Descrição
DecryptMessage (Geral) Descriptografa uma mensagem criptografada usando a chave de sessão de um contexto de segurança.
EncryptMessage (Geral) Criptografa uma mensagem usando a chave de sessão de um contexto de segurança.
Makesignature Gera uma soma de verificação criptográfica da mensagem e também inclui informações de sequenciamento para evitar perda ou inserção de mensagens.
VerifySignature Verifica a assinatura de uma mensagem recebida que foi assinada pelo remetente usando a função MakeSignature .

Funções implementadas por SSP/APs

As funções a seguir são implementadas por pacotes de segurança contidos em SSP/APs (Pacotes de Autenticação do Provedor/ de Suporte de Segurança).

Nas tabelas a seguir, o primeiro conjunto de funções é implementado por pacotes de segurança SSP/AP do Windows XP. O segundo conjunto de funções é implementado apenas por pacotes de segurança SSP/AP.

A LSA (Autoridade de Segurança Local ) acessa essas funções usando a estrutura SECPKG_FUNCTION_TABLE fornecida pela função SpLsaModeInitialize do SSP /AP.

As funções a seguir são implementadas por todos os pacotes de autenticação.

Função Descrição
LsaApCallPackage Chamado pela LSA (Autoridade de Segurança Local ) quando um aplicativo de logon com uma conexão confiável com a LSA chama a função LsaCallAuthenticationPackage e especifica o identificador do pacote de autenticação.
LsaApCallPackagePassthrough A função dispatch para solicitações de logon de passagem enviadas para a função LsaCallAuthenticationPackage
LsaApCallPackageUntrusted Chamado pela LSA (Autoridade de Segurança Local ) quando um aplicativo com uma conexão não confiável com a LSA chama a função LsaCallAuthenticationPackage e especifica o identificador do pacote de autenticação.
LsaApInitializePackage Chamado uma vez pela LSA (Autoridade de Segurança Local ) durante a inicialização do sistema para fornecer ao pacote de autenticação uma chance de se inicializar.
LsaApLogonTerminated Usado para notificar um pacote de autenticação quando uma sessão de logon é encerrada. Uma sessão de logon termina quando o último token que faz referência à sessão de logon é excluído.
LsaApLogonUser Autentica as credenciais de logon de um usuário.
LsaApLogonUserEx Autentica as credenciais de logon de um usuário.
LsaApLogonUserEx2 Usado para autenticar uma tentativa de logon do usuário no logon inicial do usuário. Uma nova sessão de logon é estabelecida para o usuário e as informações de validação para o usuário são retornadas.

As funções adicionais a seguir são implementadas por pacotes de segurança SSP/AP.

Função Descrição
SpAcceptCredentials Chamado pela LSA (Autoridade de Segurança Local ) para passar ao pacote de segurança todas as credenciais armazenadas para a entidade de segurança autenticada.
SpAcceptLsaModeContext Função de expedição de servidor usada para criar um contexto de segurança compartilhado por um servidor e um cliente.
SpAcquireCredentialsHandle Chamado para obter um identificador para as credenciais de uma entidade de segurança.
SpAddCredentials Usado para adicionar credenciais para uma entidade de segurança.
SpApplyControlToken Aplica um token de controle a um contexto de segurança. Essa função não é chamada atualmente pela LSA (Autoridade de Segurança Local ).
SpDeleteContext Exclui um contexto de segurança.
SpDeleteCredentials Exclui credenciais da lista de credenciais primárias ou complementares de um pacote de segurança.
SpFreeCredentialsHandle Libera credenciais adquiridas chamando a função SpAcquireCredentialsHandle .
SpGetCredentials Recupera as credenciais do usuário.
SpGetExtendedInformation Fornece informações estendidas sobre um pacote de segurança.
SpGetInfo Fornece informações gerais sobre o pacote de segurança, como seu nome e funcionalidades.
SpGetUserInfo Recupera informações sobre uma sessão de logon.
SPInitialize É chamado uma vez pela LSA (Autoridade de Segurança Local ) para fornecer um pacote de segurança com informações gerais de segurança e uma tabela de expedição de funções de suporte.
SpInitLsaModeContext A função de expedição do cliente usada para estabelecer um contexto de segurança entre um servidor e um cliente.
SpQueryContextAttributes Recupera os atributos de um contexto de segurança.
SpQueryCredentialsAttributes Recupera os atributos de uma credencial.
SpSaveCredentials Salva uma credencial complementar no objeto de usuário.
SpSetExtendedInformation Define informações estendidas sobre o pacote de segurança.
SpShutdown Executa qualquer limpeza necessária antes que o SSP/AP seja descarregado.
SslCrackCertificate Retorna uma estrutura X509Certificate com as informações contidas no BLOB de certificado especificado.
SslEmptyCache Remove a cadeia de caracteres especificada do cache Schannel.
SslFreeCertificate Libera um certificado que foi alocado por uma chamada anterior para a função SslCrackCertificate .

Funções implementadas por SSP/APs no modo de usuário

As funções a seguir são implementadas por SSP/APs (Pacotes de Autenticação do Provedor/ de Suporte de Segurança) que podem ser carregados em aplicativos cliente/servidor.

Um SSP/AP indica que ele implementa as funções de modo de usuário retornando TRUE no parâmetro MappedContext das funções SpInitLsaModeContext e SpAcceptLsaModeContext . A função SpInitLsaModeContext é usada pelo lado do cliente de um aplicativo de nível de transporte, enquanto SpAcceptLsaModeContext é usado pelo lado do servidor.

Carregar um SSP/AP no processo do cliente ou no processo do servidor é tratado pela DLL do provedor de segurança, seja Security.dll ou Secur32.dll. A DLL do provedor de segurança carrega o SSP/AP localizando o endereço da função SpUserModeInitialize implementada pelo SSP/AP e chamando-a. Essa função retorna um conjunto de tabelas que contêm ponteiros para as funções de modo de usuário implementadas em cada pacote de segurança.

Depois que o SSP/AP for carregado no processo de cliente ou servidor, a LSA (Autoridade de Segurança Local ) copiará as informações de contexto de segurança (retornadas por SpInitLsaModeContext ou SpAcceptLsaModeContext) e quaisquer dados adicionais relacionados ao contexto para o processo e chamarão a função SpInitUserModeContext do pacote de segurança.

Os aplicativos cliente/servidor acessam a funcionalidade do modo de usuário chamando funções SSPI ( Security Support Provider Interface ). As funções SSPI são mapeadas pela DLL do provedor de segurança usando o SECPKG_USER_FUNCTION_TABLE fornecido pelo pacote.

Função Descrição
SpCompleteAuthToken Conclui um token de autenticação.
Implementa a função CompleteAuthToken do SSPI.
SpDeleteContext Exclui um contexto de segurança.
Implementa a função DeleteSecurityContext do SSPI.
SpExportSecurityContext Exporta um contexto de segurança para outro processo.
Implementa a função ExportSecurityContext do SSPI.
SpFormatCredentials Formata as credenciais a serem armazenadas em um objeto de usuário.
SpGetContextToken Obtém o token a ser representado.
Usado pela função ImpersonateSecurityContext do SSPI.
SpImportSecurityContext Importa um contexto de segurança de outro processo.
Implementa a função ImportSecurityContext do SSPI.
SpInitUserModeContext Cria um contexto de segurança no modo de usuário a partir de um contexto de modo LSA ( Autoridade de Segurança Local ) empacotado.
SpInstanceInit Inicializa pacotes de segurança no modo de usuário em um SSP/AP.
SpMakeSignature Gera uma assinatura com base na mensagem especificada e no contexto de segurança.
Implementa a função MakeSignature do SSPI .
SpMarshallSupplementalCreds Converte credenciais complementares de um formato público em um formato adequado para chamadas de procedimento local.
SpQueryContextAttributes Recupera os atributos de um contexto de segurança.
Implementa a função QueryContextAttributes (Geral) do SSPI.
SpSealMessage Criptografa uma mensagem trocada entre um cliente e um servidor.
Implementa a função EncryptMessage (Geral) do SSPI.
SpUnsealMessage Descriptografa uma mensagem que foi criptografada anteriormente com a função SpSealMessage .
Implementa a função DecryptMessage (Geral) do SSPI.
SpUserModeInitialize Chamado quando uma DLL de SSP/AP (pacote de autenticaçãodo Provedor/ de Suporte de Segurança) é carregada no espaço de processo de um aplicativo cliente/servidor. Essa função fornece as tabelas SECPKG_USER_FUNCTION_TABLE para cada pacote de segurança na DLL SSP/AP.
SpVerifySignature Verifica se a mensagem recebida está correta de acordo com a assinatura.
Implementa a função VerifySignature do SSPI.

Funções LSA chamadas por SSP/APs

A LSA (Autoridade de Segurança Local) fornece as seguintes funções para pacotes de segurança implantados em SSP/APs (Pacotes de Autenticação do Provedor/ de Suporte de Segurança). As funções estão disponíveis na estrutura LSA_SECPKG_FUNCTION_TABLE e podem ser chamadas enquanto o SSP/AP é carregado no espaço de processo da LSA. As funções a seguir estão disponíveis para todos os APs.

Função Descrição
AddCredential Adiciona credenciais de usuário.
AllocateClientBuffer Aloca memória no espaço de endereço do cliente do pacote.
AllocateLsaHeap Aloca memória no heap. Espera-se que algumas informações passadas de volta para a LSA sejam alocadas usando essa função.
CopyFromClientBuffer Copia informações do espaço de endereço de um processo de cliente em um buffer no processo atual.
CopyToClientBuffer Copia informações de um buffer no processo atual para o espaço de endereço de um processo de cliente.
CreateLogonSession Cria sessões de logon.
DeleteCredential Exclui as credenciais do usuário.
DeleteLogonSession Exclui uma sessão de logon LSA.
FreeClientBuffer Libera memória no espaço de endereço do cliente do pacote.
FreeLsaHeap Desaloca a memória de heap alocada anteriormente por AllocateLsaHeap.
Getcredentials Recupera credenciais associadas a uma sessão de logon.

As funções a seguir estão disponíveis para SSP/APs.

Função Descrição
AllocateSharedMemory Aloca uma seção de memória compartilhada.
AuditAccountLogon Cria registros de auditoria para tentativas de logons.
AuditLogon Cria uma trilha de auditoria para uma sessão de logon.
CallPackage Chama um pacote.
CallPackageEx Chama outro pacote.
CallPackagePassthrough Chama um pacote de segurança de outro.
CancelNotification Cancela a notificação de eventos especiais.
ClientCallback Permite que um pacote de segurança invoque uma função no processo do cliente.
Para obter um protótipo de função ClientCallback , consulte ClientCallback Function Prototype.
CloseSamUser Fecha um identificador para uma entrada de banco de dados do Gerenciador de Contas de Segurança.
ConvertAuthDataToToken Converte dados de autorização em um token de usuário.
CrackSingleName Converte um nome de um formato para outro.
CreateSharedMemory Cria uma seção de memória compartilhada entre clientes e o SSP/AP.
CreateThread Cria um novo thread.
CreateToken Cria um token.
DeleteSharedMemory Exclui uma seção de memória compartilhada.
DuplicateHandle Duplica um identificador.
FreeReturnBuffer Libera um buffer alocado pela LSA.
FreeSharedMemory Libera uma seção de memória compartilhada.
GetAuthDataForUser Recupera dados de autorização para uma conta de usuário.
GetCallInfo Recupera informações sobre a chamada de função mais recente.
GetClientInfo Recupera informações sobre o processo do usuário do pacote de segurança.
GetUserAuthData Retorna os dados de autorização de um usuário.
GetUserCredentials Ainda não implementado.
Impersonateclient Chamado por pacotes de segurança para representar o usuário do pacote.
MapBuffer Mapeia uma estrutura SecBuffer para o espaço de endereço dopacote de autenticação do Provedor/ de Suporte de Segurança (SSP/AP).
OpenSamUser Recupera um identificador para uma conta de usuário no banco de dados SAM ( Gerenciador de Contas de Segurança ).
RegisterNotification Fornece um mecanismo pelo qual o pacote de segurança é notificado. A notificação pode ocorrer em intervalos fixos, quando um objeto de evento é sinalizado ou durante determinados eventos do sistema.
SaveSupplementalCredentials Obsoleto. Não use.
UnloadPackage Descarrega umpacote de autenticação do Provedor/ de Suporte de Segurança (SSP/AP).
UpdateCredentials Fornece um mecanismo para um pacote de segurança notificar outros pacotes de que as credenciais de uma sessão de logon foram alteradas.

Funções LSA chamadas por SSP/APs no modo de usuário

Um pacote de segurança em umpacote de autenticação do Provedor/ de Suporte de Segurança (SSP/AP) em execução em um processo de modo de usuário pode usar os ponteiros na tabela SECPKG_DLL_FUNCTIONS para acessar as funções a seguir.

Função PSDK status
AllocateHeap Aloca memória para buffers que são retornados à LSA ( Autoridade de Segurança Local ).
FreeHeap Libera memória que foi alocada anteriormente usando AllocateHeap.
Registercallback Registra funções de retorno de chamada no modo de usuário.

Funções de exportação gina

Uma DLL GINA deve exportar as funções a seguir.

Observação

As DLLs GINA são ignoradas no Windows Vista.

Função Descrição
WlxActivateUserShell Ativa o programa de shell do usuário.
WlxDisplayLockedNotice Permite que a GINA exiba informações sobre o bloqueio, como quem bloqueou a estação de trabalho e quando ela foi bloqueada.
WlxDisplaySASNotice O Winlogon chama essa função quando nenhum usuário está conectado.
WlxDisplayStatusMessage O Winlogon chama essa função quando a DLL gina deve exibir uma mensagem.
WlxGetConsoleSwitchCredentials O Winlogon chama essa função para ler as credenciais do usuário conectado no momento para transferi-las de forma transparente para uma sessão de destino.
WlxGetStatusMessage O Winlogon chama essa função para obter a mensagem de status que está sendo exibida pela DLL gina.
WlxInitialize O Winlogon chama essa função uma vez para cada estação de janela presente no computador. Atualmente, o sistema operacional dá suporte a uma estação de janela por estação de trabalho.
WlxIsLockOk O Winlogon chama essa função antes de tentar bloquear a estação de trabalho.
WlxIsLogoffOk O Winlogon chama essa função quando o usuário inicia uma operação de logoff.
WlxLoggedOnSAS O Winlogon chama essa função quando recebe um evento SAS (sequência de atenção segura) enquanto o usuário está conectado e a estação de trabalho não está bloqueada.
WlxLoggedOutSAS O Winlogon chama essa função quando recebe um evento SAS (sequência de atenção segura) enquanto nenhum usuário está conectado.
WlxLogoff O Winlogon chama essa função para notificar a GINA de uma operação de logoff nesta estação de trabalho, permitindo que a GINA execute quaisquer operações de logoff que possam ser necessárias.
WlxNegotiate A função WlxNegotiate deve ser implementada por uma DLL GINA substituta. Esta é a primeira chamada feita pelo Winlogon para a DLL gina. O WlxNegotiate permite que a GINA verifique se ela dá suporte à versão instalada do Winlogon.
WlxNetworkProviderLoad O Winlogon chama essa função para coletar informações válidas de autenticação e identificação.
WlxRemoveStatusMessage O Winlogon chama essa função para instruir a DLL gina a parar de exibir a mensagem status.
WlxScreenSaverNotify O Winlogon chama essa função imediatamente antes que um protetor de tela seja ativado, permitindo que a GINA interaja com o programa de salvamento de tela.
WlxShutdown O Winlogon chama essa função pouco antes de desligar, permitindo que a GINA execute qualquer tarefa de desligamento, como ejetar uma cartão inteligente de um leitor.
WlxStartApplication O Winlogon chama essa função quando o sistema precisa que um aplicativo seja iniciado no contexto do usuário.
WlxWkstaLockedSAS O Winlogon chama essa função quando recebe uma SAS ( sequência de atenção segura ) e a estação de trabalho está bloqueada.

Funções de usuário de logon

As funções a seguir fornecem a capacidade de fazer logon em um usuário.

Função Descrição
LogonUser Tenta registrar um usuário no computador local.
LogonUserEx Tenta registrar um usuário no computador local. Essa função é uma versão estendida da função LogonUser e recupera informações sobre os limites de SID ( identificador de segurança ), perfil e cota do usuário conectado.
LogonUserExExW A função LogonUserExExW tenta registrar um usuário no computador local. Essa função não é declarada em um cabeçalho público e não tem nenhuma biblioteca de importação associada. Você deve usar as funções LoadLibrary e GetProcAddress para vincular dinamicamente a Advapi32.dll.

Funções de suporte do Winlogon

GINA As DLLs podem chamar as seguintes funções de suporte do Winlogon .

Observação

As DLLs GINA são ignoradas no Windows Vista.

Função Chamado por GINA
WlxAssignShellProtection Chamado por GINA para atribuir proteção ao programa de shell de um usuário conectado recentemente.
WlxChangePasswordNotify Chamado por GINA para indicar que ele alterou uma senha.
WlxChangePasswordNotifyEx Chamado por GINA para informar a um provedor de rede específico (ou a todos os provedores de rede) que uma senha foi alterada.
WlxCloseUserDesktop Chamado por GINA para fechar uma área de trabalho de usuário alternativa e limpo depois que a área de trabalho for fechada.
WlxCreateUserDesktop Chamado por GINA para criar áreas de trabalho de aplicativo alternativas para o usuário.
WlxDialogBox Chamado pela GINA para criar uma caixa de diálogo modal de um modelo de caixa de diálogo.
WlxDialogBoxIndirect Chamado por GINA para criar uma caixa de diálogo modal a partir de um modelo de caixa de diálogo na memória.
WlxDialogBoxIndirectParam Chamado por GINA para inicializar controles de caixa de diálogo e, em seguida, criar uma caixa de diálogo modal a partir de um modelo de caixa de diálogo na memória.
WlxDialogBoxParam Chamado por GINA para inicializar controles de caixa de diálogo e, em seguida, criar uma caixa de diálogo modal a partir de um recurso de modelo de caixa de diálogo.
WlxDisconnect Chamado por uma DLL GINA de substituição se os Serviços de Terminal estiverem habilitados. GINA chama essa função para se desconectar de uma sessão de rede dos Serviços de Terminal.
WlxGetOption Chamado por GINA para recuperar o valor atual de uma opção.
WlxGetSourceDesktop Chamado por GINA para determinar o nome e o identificador da área de trabalho que era atual antes do Winlogon mudar para a área de trabalho do Winlogon.
WlxMessageBox Chamado por GINA para criar, exibir e operar uma caixa de mensagem.
WlxQueryClientCredentials Chamado por uma DLL GINA de substituição se os Serviços de Terminal estiverem habilitados. GINA chama essa função para recuperar as credenciais de clientes remotos dos Serviços de Terminal que não estão usando uma licença de conector da Internet.
WlxQueryConsoleSwitchCredentials Chamado por GINA para ler as credenciais transferidas do Winlogon da sessão temporária para o Winlogon da sessão de destino.
WlxQueryInetConnectorCredentials Chamado por uma DLL GINA de substituição se os Serviços de Terminal estiverem habilitados. GINA chama essa função para determinar se o servidor terminal está usando o licenciamento do conector da Internet e para recuperar informações de credenciais .
WlxQueryTerminalServicesData Chamado por GINA para recuperar as informações de configuração do usuário dos Serviços de Terminal após o logon de um usuário.
WlxSasNotify Chamado por GINA para notificar o Winlogon de um evento SAS ( sequência de atenção segura ).
WlxSetContextPointer Chamado por GINA para especificar o ponteiro de contexto passado pelo Winlogon como o primeiro parâmetro para todas as chamadas futuras para funções GINA.
WlxSetOption Chamado por GINA para definir o valor de uma opção.
WlxSetReturnDesktop Chamado por GINA para especificar a área de trabalho de aplicativo alternativa para a qual o Winlogon mudará quando a função de processamento de eventos SAS ( sequência de atenção segura ) atual for concluída.
WlxSetTimeout Chamado por GINA para alterar o tempo limite associado a uma caixa de diálogo. O tempo limite padrão é de dois minutos.
WlxSwitchDesktopToUser Chamado por GINA para alternar para a área de trabalho do aplicativo.
WlxSwitchDesktopToWinlogon Permite a opção DLL GINA para a área de trabalho do Winlogon .
WlxUseCtrlAltDel Chamado por GINA para instruir o Winlogon a usar a combinação de teclas CTRL+ALT+DEL padrão como uma SAS ( sequência de atenção segura ).
WlxWin31Migrate Chamado por uma DLL GINA de substituição se os Serviços de Terminal estiverem habilitados. GINA chama essa função para concluir a instalação do cliente dos Serviços de Terminal.

Funções do provedor de rede

Os tópicos a seguir fornecem informações de referência para as funções do provedor de rede.

Tópico Descrição
Funções implementadas por provedores de rede Detalha as funções que podem ser implementadas por provedores de rede.
Funções de suporte Detalha uma função que é implementada pelo sistema operacional e pode ser chamada por provedores de rede.
Funções de notificação de conexão Detalha as funções implementadas por aplicativos que precisam receber notificação do MPR ( Roteador de Vários Provedores ) quando um recurso de rede é conectado ou desconectado.

Funções implementadas por provedores de rede

As funções a seguir podem ser implementadas por provedores de rede. A única função que os provedores de rede são necessários para dar suporte é nPGetCaps.

Função Descrição
NPAddConnection Conecta um dispositivo local a um recurso de rede.
NPAddConnection3 Conecta um dispositivo local a um recurso de rede.
NPCancelConnection Desconecta uma conexão de rede.
NPCloseEnum Fecha uma enumeração.
NPDeviceMode Especifica a janela pai de um dispositivo. Essa janela possui todas as caixas de diálogo originadas do dispositivo.
NPDirectoryNotify Notifica o provedor de rede de determinadas operações de diretório.
NPEnumResource Executa uma enumeração com base em um identificador retornado por NPOpenEnum.
NPFormatNetworkName Formata um nome de rede em um formato específico do provedor para exibição em um controle .
NPGetCaps Retorna informações sobre quais serviços têm suporte na rede.
NPGetConnection Recupera informações sobre uma conexão.
NPGetConnection3 Recupera informações sobre uma conexão de rede, mesmo que ela esteja desconectada no momento.
NPGetConnectionPerformance Retorna informações sobre o desempenho esperado de uma conexão usada para acessar um recurso de rede. A solicitação só pode ser para um recurso de rede conectado no momento.
NPGetDirectoryType Determina o tipo de um diretório de rede.
NPGetPropertyText Recupera os nomes dos botões a serem adicionados a uma caixa de diálogo de propriedade para um recurso de rede.
NPGetResourceInformation Separa a parte de um recurso de rede acessado por meio da API WNet da parte acessada por meio de APIs específicas para o tipo de recurso.
NPGetResourceParent Recupera o pai de um recurso de rede especificado na hierarquia de navegação.
NPGetUniversalName Recupera o nome universal de um recurso de rede. A função NPGetUniversalName pode recuperar esse nome universal no formato UNC ou no formato de nome remoto mais antigo.
NPGetUser Recupera o valor do nome de usuário padrão atual ou o nome de usuário usado para estabelecer uma conexão de rede.
NPOpenEnum Abre uma enumeração de recursos de rede ou conexões existentes. A função NPOpenEnum deve ser chamada para obter um identificador válido para uma enumeração.
NPPropertyDialog Chamado quando o usuário clica em um botão adicionado usando a função NPPropertyDialog . A função NPPropertyDialog é chamada apenas para propriedades de rede de arquivo e diretório.
NPSearchDialog Permite que os fornecedores de rede forneçam sua própria forma de navegação e pesquisa, além da exibição hierárquica apresentada na caixa de diálogo Conexão .

Funções de suporte

A função a seguir é implementada pelo sistema operacional e pode ser chamada por provedores de rede.

Função Descrição
WNetSetLastError Define informações de erro estendidas. Os provedores de rede devem chamar essa função em vez de SetLastError.

Funções de notificação de conexão

As funções a seguir são implementadas por aplicativos que precisam receber notificação do MPR ( Roteador de Vários Provedores ) quando um recurso de rede é conectado ou desconectado. Para obter mais informações sobre como escrever um aplicativo que recebe essas notificações, consulte Recebendo notificações de conexão.

Função Descrição
AddConnectNotify Chamado antes e depois de cada operação de adição de conexão (WNetAddConnection, WNetAddConnection2 e WNetAddConnection3).
CancelConnectNotify Chamado antes e depois de cada operação de conexão de cancelamento (WNetCancelConnection ou WNetCancelConnection2).

Funções de logon LSA

As seguintes funções de autenticação da LSA (Autoridade de Segurança Local ) autenticam e fazem logon dos usuários e fornecem informações de sessão de logon.

Função Descrição
LsaCallAuthenticationPackage Solicita um serviço específico do pacote de um pacote de autenticação.
LsaConnectUntrusted Estabelece uma conexão não confiável com a LSA.
LsaDeregisterLogonProcess Desconecta-se da LSA e libera recursos alocados para o contexto do chamador.
LsaEnumerateLogonSessions Recupera LUIDs ( identificadores exclusivos localmente ) para sessões de logon existentes.
LsaFreeReturnBuffer Libera memória alocada para um buffer retornado a um chamador.
LsaGetLogonSessionData Recupera informações sobre uma sessão de logon especificada.
Lsalogonuser Autentica dados de logon do usuário em credenciais armazenadas. Se tiver êxito, ele criará uma nova sessão de logon e retornará um token de usuário.
LsaLookupAuthenticationPackage Obtém o identificador exclusivo de um pacote de autenticação.
LsaQueryDomainInformationPolicy Recupera informações de domínio do objeto Policy .
LsaQueryForestTrustInformation Recupera informações de confiança de floresta para o objeto TrustedDomain da Autoridade de Segurança Local especificado.
LsaRegisterLogonProcess Estabelece uma conexão com o servidor LSA e verifica se o chamador é um aplicativo de logon.
LsaSetDomainInformationPolicy Define informações de domínio para o objeto Policy .
LsaSetForestTrustInformation define as informações de confiança da floresta para um objeto TrustedDomain da Autoridade de Segurança Local especificado.

Funções implementadas por pacotes de autenticação

Os pacotes de autenticação personalizados devem implementar essas funções, que são chamadas pela LSA ( Autoridade de Segurança Local ). Essas funções são implementadas pelos pacotes de autenticação MSV1_0 e Kerberos fornecidos pela Microsoft.

Função Descrição
LsaApCallPackage Chamado quando o identificador do pacote de autenticação foi especificado em uma chamada para LsaCallAuthenticationPackage por um aplicativo que está usando uma conexão confiável.
Essa função fornece uma maneira de aplicativos de logon se comunicarem diretamente com pacotes de autenticação.
LsaApCallPackagePassthrough Chamado quando o identificador do pacote de autenticação foi especificado em uma chamada para LsaCallAuthenticationPackage para uma solicitação de logon de passagem.
LsaApCallPackageUntrusted Chamado quando o identificador do pacote de autenticação foi especificado em uma chamada para LsaCallAuthenticationPackage por um aplicativo usando uma conexão não confiável. Essa função é usada para se comunicar com processos que não têm o privilégio SeTcbPrivilege.
LsaApInitializePackage Chamado durante a inicialização do sistema para permitir que o pacote de autenticação execute tarefas de inicialização.
LsaApLogonTerminated Chamado quando uma sessão de logon termina para permitir que o pacote de autenticação libere todos os recursos alocados para a sessão de logon.
LsaApLogonUser Chamado quando o pacote de autenticação foi especificado em uma chamada para LsaLogonUser. Essa função autentica os dados de logon de uma entidade de segurança .
LsaApLogonUserEx Idêntico a LsaApLogonUser , exceto que ele retorna o nome da estação de trabalho para fins de auditoria.
Um pacote de autenticação pode implementar LsaApLogonUser, LsaApLogonUserEx ou LsaApLogonUserEx2. Ele não precisa implementá-los todos.
LsaApLogonUserEx2 Idêntico a LsaApLogonUserEx , exceto por retornar as credenciais primárias e complementares da entidade de segurança. Um pacote de autenticação pode implementar LsaApLogonUser, LsaApLogonUserEx ou LsaApLogonUserEx2. Ele não precisa implementá-los todos.

Funções LSA chamadas por pacotes de autenticação

As seguintes funções LSA ( Autoridade de Segurança Local ) podem ser chamadas de um pacote de autenticação personalizado. Quando a LSA chama LsaApInitializePackage para inicializar o pacote, ela passa uma tabela de funções de suporte.

Função Descrição
AddCredential Adiciona credenciais a uma sessão de logon.
AllocateClientBuffer Aloca um buffer no espaço de endereço do cliente.
AllocateLsaHeap Aloca buffers que devem ser retornados do pacote de autenticação para a LSA.
CopyFromClientBuffer Copia o conteúdo de um buffer no espaço de endereço do cliente em um buffer local.
CopyToClientBuffer Copia o conteúdo de um buffer local no espaço de endereço do cliente.
CreateLogonSession Usado por pacotes de autenticação para criar uma sessão de logon.
DeleteCredential Exclui uma credencial existente.
DeleteLogonSession Limpa as sessões de logon criadas ao determinar se as informações de autenticação de um usuário são legítimas.
FreeClientBuffer Libera um buffer de cliente alocado anteriormente com a função AllocateClientBuffer .
FreeLsaHeap Libera buffers alocados anteriormente usando a função AllocateLsaHeap .
Getcredentials Recupera credenciais armazenadas em cache anteriormente por AddCredential.

Funções de sub-autenticação

As funções de subautenticação a seguir podem ser chamadas por pacotes de autenticação fornecidos pela Microsoft para fornecer autenticação de logon adicional criada pelo usuário.

Função Descrição
Msv1_0SubAuthenticationFilter Executa a autenticação de logon do usuário específica para controladores de domínio.
Msv1_0SubAuthenticationRoutine Executa a autenticação específica do cliente/servidor.

Funções de gerenciamento de credenciais

Os tópicos a seguir fornecem informações de referência para as funções de gerenciamento de credenciais.

Tópico Descrição
Funções de interface do usuário de gerenciamento de credenciais Detalhes das funções usadas para a interface do usuário de gerenciamento de credenciais.
Funções de gerenciamento de credenciais de baixo nível Detalhes das funções usadas para o gerenciamento de credenciais de baixo nível.
Funções de notificação de gerenciamento de credenciais Detalha as funções implementadas pelos gerentes de credenciais para receber notificações quando as informações de autenticação forem alteradas.

Funções de interface do usuário de gerenciamento de credenciais

Veja a seguir as funções de interface do usuário de gerenciamento de credenciais.

Função Descrição
CredUICmdLinePromptForCredentials Solicite e aceite informações de credenciais de usuário de um usuário que trabalha em um programa de linha de comando.
CredUIConfirmCredentials Confirme a validade das credenciais retornadas por CredUIPromptForCredentials ou CredUICmdLinePromptForCredentials.
CredUIParseUserName Extraia o nome de conta de usuário e domínio de um nome de usuário totalmente qualificado.
CredUIPromptForCredentials Exibir uma caixa de diálogo que aceita informações de credenciais de um usuário.
CredUIPromptForWindowsCredentials Cria e exibe uma caixa de diálogo configurável que permite que os usuários forneçam informações de credencial usando qualquer provedor de credenciais instalado no computador local.
CredUIReadSSoCredW Recupera o nome de usuário para uma única credencial de logon.
CredUIStoreSSOCredW Armazena uma única credencial de logon.

Funções de gerenciamento de credenciais de baixo nível

Veja a seguir as funções de gerenciamento de credenciais de baixo nível.

Função Descrição
CredDelete Exclua uma credencial do conjunto de credenciais de um usuário.
CredEnumerate Liste as credenciais no conjunto de credenciais de um usuário.
CredFindBestCredential Pesquisa o banco de dados CredMan ( Gerenciamento de Credenciais ) para o conjunto de credenciais genéricas associadas à sessão de logon atual e que melhor correspondem ao recurso de destino especificado.
CredFree Libere a memória usada para um buffer retornado por qualquer uma das funções de gerenciamento de credenciais.
CredGetSessionTypes Recupere a persistência máxima com suporte na sessão de logon atual.
CredGetTargetInfo Recupere todas as informações de nome de destino conhecidas para um recurso nomeado.
CredIsMarshaledCredential Determina se uma cadeia de caracteres de nome de usuário especificada é uma credencial marshalada anteriormente empacotada por CredMarshalCredential.
CredIsProtected Especifica se as credenciais especificadas são criptografadas por uma chamada anterior para a função CredProtect .
CredMarshalCredential Transforme uma credencial em uma cadeia de caracteres de texto.
CredPackAuthenticationBuffer Converte um nome de usuário e uma senha de cadeia de caracteres em um buffer de autenticação.
CredProtect Criptografa as credenciais especificadas para que apenas o contexto de segurança atual possa descriptografá-las.
Credread Leia uma credencial do conjunto de credenciais de um usuário.
CredReadDomainCredentials Leia as credenciais de domínio do conjunto de credenciais de um usuário.
CredRename Renomeie uma credencial do conjunto de credenciais de um usuário.
CredUnmarshalCredential Transforme uma cadeia de caracteres de credencial marshaled novamente em sua forma nãomarsal.
CredUnPackAuthenticationBuffer Converte um buffer de autenticação retornado por uma chamada para a função CredUIPromptForWindowsCredentials em um nome de usuário e senha de cadeia de caracteres.
CredUnprotect Descriptografa credenciais que foram criptografadas anteriormente usando a função CredProtect .
Credwrite Crie uma credencial ou modifique uma credencial existente no conjunto de credenciais de um usuário.
CredWriteDomainCredentials Gravar credenciais de domínio no conjunto de credenciais de um usuário.

Funções de notificação de gerenciamento de credenciais

As funções a seguir são implementadas por gerentes de credenciais para receber notificações quando as informações de autenticação são alteradas.

Função Descrição
NPLogonNotify O MPR chama essa função para notificar o gerenciador de credenciais de que ocorreu um evento de logon, permitindo que o gerenciador de credenciais retorne um script de logon.
NPPasswordChangeNotify O MPR chama essa função para notificar o gerenciador de credenciais de um evento de alteração de senha.

Funções de cartão inteligente

O SDK do Cartão Inteligente fornece as seguintes funções.

Função Descrição
GetOpenCardName Substituído por SCardUIDlgSelectCard, que exibe o smart cartão caixa de diálogo Selecionar Cartão.
SCardAccessStartedEvent Obtém um identificador de evento quando o início de um gerenciador de recursos de cartão inteligente é sinalizado.
SCardAddReaderToGroup Adiciona um leitor a um grupo de leitores.
SCardAudit Grava mensagens de evento no log de aplicativos do Windows Microsoft-Windows-SmartCard-Audit/Authentication.
Scardbegintransaction Inicia uma transação.
SCardCancel Encerra todas as ações pendentes em um contexto.
SCardCancelTransaction Reservado para uso futuro.
Scardconnect Estabelece uma conexão entre o aplicativo de chamada e um cartão inteligente.
SCardControl Obtém o controle direto do leitor depois que SCardConnect é chamado.
SCardDisconnect Encerra uma conexão entre o aplicativo de chamada e um cartão inteligente.
SCardEndTransaction Conclui uma transação.
Scardestablishcontext Estabelece um contexto do gerenciador de recursos para acessar o banco de dados de cartão inteligente.
SCardForgetCardType Remove uma cartão inteligente definida anteriormente do subsistema de cartão inteligente.
SCardForgetReader Remove um leitor definido anteriormente do subsistema smart cartão.
SCardForgetReaderGroup Remove um grupo de leitores definido anteriormente do subsistema smart cartão.
SCardFreeMemory Libera memória alocada pelo gerenciador de recursos.
SCardGetAttrib Obtém os atributos do leitor atual de um determinado leitor, driver ou cartão inteligente.
SCardGetCardTypeProviderName Obtém o nome do provedor dado um nome cartão e um tipo de provedor.
SCardGetDeviceTypeId Obtém o identificador de tipo de dispositivo do leitor de cartão para o nome do leitor fornecido. Essa função não afeta o estado do leitor.
SCardGetProviderId Obtém o identificador (GUID) do provedor de serviços primário para uma cartão inteligente.
SCardGetReaderDeviceInstanceId Obtém o identificador de instância do dispositivo do leitor de cartão para o nome do leitor fornecido. Essa função não afeta o estado do leitor.
SCardGetReaderIcon Obtém um ícone do leitor de cartão inteligente para o nome de um determinado leitor.
SCardGetStatusChange Bloqueia a execução até que status dos leitores sejam alterados.
SCardGetTransmitCount Recupera o número de operações de transmissão concluídas desde que o leitor de cartão especificado foi inserido.
SCardIntroduceCardType Apresenta uma nova cartão inteligente ao subsistema de cartão inteligente.
SCardIntroduceReader Apresenta um novo leitor ao subsistema de cartão inteligente.
SCardIntroduceReaderGroup Apresenta um novo grupo de leitores ao subsistema smart cartão.
SCardIsValidContext Verifica um identificador de contexto de cartão inteligente.
SCardListCards Fornece uma lista de cartões inteligentes já introduzidos no subsistema.
SCardListInterfaces Fornece uma lista de interfaces fornecidas por um determinado cartão inteligente.
SCardListReaderGroups Fornece uma lista de grupos de leitores já introduzidos no subsistema.
SCardListReaders Fornece uma lista de leitores já introduzidos no subsistema.
SCardListReadersWithDeviceInstanceId Obtém a lista de leitores que forneceram um identificador de instância de dispositivo. Essa função não afeta o estado do leitor.
SCardLocateCards Localiza os cartões que correspondem a uma determinada cadeia de caracteres ATR.
SCardLocateCardsByATR Localiza os cartões que correspondem a uma determinada cadeia de caracteres ATR.
SCardReadCache Recupera a parte do valor de um par nome-valor do cache global mantido pela Resource Manager cartão inteligente.
SCardReconnect Restabelece uma conexão existente do aplicativo de chamada para o cartão inteligente.
SCardReleaseContext Fecha um contexto de gerenciador de recursos estabelecido.
SCardReleaseStartedEvent Diminui a contagem de referência para um identificador adquirido usando a função SCardAccessStartedEvent .
SCardRemoveReaderFromGroup Remove um leitor de um grupo de leitores existente.
SCardSetAttrib Define um determinado atributo de leitor.
SCardSetCardTypeProviderName Define o nome do provedor para um nome de cartão e tipo de provedor.
SCardStatus Obtém o estado atual de um leitor.
SCardTransmit Envia uma solicitação de serviço para uma cartão inteligente.
SCardUIDlgSelectCard Exibe a caixa de diálogo Selecionar Cartão cartão inteligente.
SCardWriteCache Grava um par nome-valor de um cartão inteligente no cache global mantido pelo Resource Manager cartão inteligente.

Funções SASL

A SASL (Simple Authentication and Security Layer) fornece as seguintes funções.

Funções Descrição
SaslAcceptSecurityContext Encapsula uma chamada padrão para a função AcceptSecurityContext (Geral) da SSPI e inclui a criação de cookies de servidor SASL.
SaslEnumerateProfiles Lista os pacotes que fornecem uma interface SASL.
SaslGetContextOption Recupera a propriedade especificada do contexto SASL especificado.
SaslGetProfilePackage Retorna as informações do pacote especificado.
SaslIdentifyPackage Retorna o prefixo negotiate que corresponde ao buffer de negociação SASL especificado.
SaslInitializeSecurityContext Encapsula uma chamada padrão para a função InitializeSecurityContext (Geral) do SSPI e processa cookies do servidor SASL do servidor.
SaslSetContextOption Define o valor da propriedade especificada para o contexto SASL especificado.

Outras funções

Aqui estão outras funções usadas para Autenticação.

Função Descrição
AddSecurityPackage Adiciona um Provedor de Suporte de Segurança à lista de provedores compatíveis com o Microsoft Negotiate.
ChangeAccountPassword Altera a senha de uma conta de domínio do Windows usando o Provedor de Suporte de Segurança especificado.
CredMarshalTargetInfo Serializa o destino especificado em uma matriz de valores de bytes.
DeleteSecurityPackage Exclui um Provedor de Suporte de Segurança da lista de provedores compatíveis com o Microsoft Negotiate.
LsaManageSidNameMapping Adiciona ou remove mapeamentos de SID/nome do conjunto de mapeamento registrado com o Serviço de Pesquisa LSA.
LsaOpenPolicy Abre um identificador para o objeto Policy em um sistema local ou remoto.
LsaQueryInformationPolicy Recupera informações sobre um objeto Policy .
LsaSetInformationPolicy Modifica informações em um objeto Policy .
NPFMXEditPerm Permite que os fornecedores de rede forneçam suas próprias caixas de diálogo do editor de permissões.
NPFMXGetPermCaps Recupera os recursos do editor de permissões. O valor retornado é uma máscara de bits que indica quais dos itens de menu Segurança no Gerenciador de Arquivos devem ser habilitados.
NPFMXGetPermHelp Recupera o arquivo de ajuda e o contexto de ajuda das caixas de diálogo do editor de permissões quando um item de menu no menu Segurança do Gerenciador de Arquivos é selecionado e F1 é pressionado.
SeciAllocateAndSetIPAddress Define o endereço IP do chamador a ser exibido em eventos de auditoria de segurança.
SeciFreeCallContext Libera a memória alocada por SeciAllocateAndSetIPAddress.
SpGetCredUIContextFn Recupera informações de contexto de um provedor de credenciais.
SpLsaModeInitialize Fornece à LSA ponteiros para as funções implementadas por cada pacote de segurança na DLL SSP/AP.
SpQueryMetaDataFn Obtém metadados de um Provedor de Suporte de Segurança (SSP) quando ele está iniciando um contexto de segurança.
SpUpdateCredentialsFn Atualizações as credenciais associadas ao contexto especificado.
SspiCompareAuthIdentities Compara as duas credenciais especificadas.
SspiCopyAuthIdentity Cria uma cópia da estrutura de credenciais opaca especificada.
SspiDecryptAuthIdentity Descriptografa a credencial criptografada especificada.
SspiEncodeAuthIdentityAsStrings Codifica a identidade de autenticação especificada como três cadeias de caracteres.
SspiEncodeStringsAsAuthIdentity Codifica um conjunto de três cadeias de caracteres de credencial como uma estrutura de identidade de autenticação.
SspiEncryptAuthIdentity Criptografa a estrutura de identidade especificada.
SspiExcludePackage Cria uma nova estrutura de identidade que é uma cópia da estrutura de identidade especificada modificada para excluir o SSP ( Provedor de Suporte de Segurança ) especificado.
SspiFreeAuthIdentity Libera a memória alocada para a estrutura de identidade especificada.
SspiGetCredUIContext Recupera informações de contexto de um provedor de credenciais.
SspiGetTargetHostName Obtém o nome do host associado ao destino especificado.
SspiIsAuthIdentityEncrypted Indica se a estrutura de identidade especificada está criptografada.
SspiIsPromptingNeeded Indica se um erro retornado após uma chamada para a função InitializeSecurityContext ou AcceptSecurityContext requer uma chamada adicional para a função SspiPromptForCredentials .
SspiLocalFree Libera a memória associada ao buffer especificado.
SspiMarshalAuthIdentity Serializa a estrutura de identidade especificada em uma matriz de bytes.
SspiPrepareForCredRead Gera um nome de destino e um tipo de credencial da estrutura de identidade especificada.
SspiPrepareForCredWrite Gera valores de uma estrutura de identidade que podem ser passados como valores de parâmetros em uma chamada para a função CredWrite .
SspiPromptForCredentials Permite que um aplicativo SSPI ( Interface do Provedor de Suporte de Segurança) solicite que um usuário insira credenciais.
SspiUnmarshalAuthIdentity Desserializa a matriz especificada de valores de bytes em uma estrutura de identidade.
SspiUnmarshalCredUIContext Desserializa as informações de credencial obtidas por um provedor de credenciais durante uma chamada anterior para o método ICredentialProvider::SetSerialization .
SspiUpdateCredentials Atualizações as credenciais associadas ao contexto especificado.
SspiValidateAuthIdentity Indica se a estrutura de identidade especificada é válida.
SspiZeroAuthIdentity Preenche o bloco de memória associado à estrutura de identidade especificada com zeros.
WlxQueryTsLogonCredentials Chamado por uma DLL GINA de substituição para recuperar informações de credenciais se os Serviços de Terminal estiverem habilitados. A DLL gina pode usar essas informações para preencher uma caixa de logon automaticamente e tentar fazer logon do usuário.