Funções de autenticação

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

Funções SSPI

As funções da Interface do Provedor de Suporte de Segurança (SSPI) se enquadram nas seguintes categorias principais.

Gerenciamento de Pacotes

As funções de gerenciamento de pacotes SSPI iniciam um pacote de segurança, enumeram os 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 despacho do provedor de suporte de segurança (SSP).
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. 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 feitas por meio do identificador do objeto e o pacote de segurança desreferencia o identificador para acessar as especificações das credenciais. Um identificador de credenciais é 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 credenciais e consultam os atributos das credenciais. Atualmente, o nome associado a uma credencial é o único atributo que pode ser consultado.

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

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

Gerenciamento de contexto

As funções de gerenciamento de contexto 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 de mensagens para garantir a integridade e a privacidade da mensagem durante a conexão.

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 desreferencia 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 gerenciamento de contexto.

Função Descrição
AcceptSecurityContext (Geral) Usado por um servidor para criar um contexto de segurança baseado em uma mensagem opaca recebida de um cliente.
ApplyControlToken Aplica uma mensagem de segurança suplementar a um contexto de segurança existente.
CompleteAuthToken Conclui um token de autenticação. Esta função é utilizada por protocolos, como DCE, que precisam revisar as informações de segurança após o aplicativo de transporte atualizar alguns parâmetros da 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 Personifica o contexto de segurança para aparecer como o cliente do 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 utiliza diretamente.
SetContextAttributes Permite que um aplicativo de transporte configure atributos de um contexto de segurança para um pacote de segurança. Esta função é compatível apenas com o pacote de segurança Schannel.
RevertSecurityContext Permite que um pacote de segurança interrompa 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 violações e criptografe e descriptografe mensagens. Estas 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 dependendo se uma conexão, datagrama ou contexto de fluxo está em uso. Para uma descrição dessas diferenças, consulte Semântica de contexto 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 Provedor de Suporte à Segurança/Pacotes de autenticação (SSP/APs).

Nas tabelas a seguir, o primeiro conjunto de funções é implementado pelos 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 Autoridade de Segurança Local (LSA) 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 Autoridade de Segurança Local (LSA) quando um aplicativo de logon com uma conexão confiável com o LSA chama a função LsaCallAuthenticationPackage e especifica o identificador do pacote de autenticação.
LsaApCallPackagePassthrough A função de expedição para solicitações de logon de passagem enviadas para a função LsaCallAuthenticationPackage
LsaApCallPackageUntrusted Chamado pela Autoridade de Segurança Local (LSA) quando um aplicativo com uma conexão não confiável com o LSA chama a função LsaCallAuthenticationPackage e especifica o identificador do pacote de autenticação.
LsaApInitializePackage Chamado uma vez pela Autoridade de Segurança Local (LSA) 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 termina. 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 do usuário são retornadas.

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

Função Descrição
SpAcceptCredentials Chamado pela Autoridade de Segurança Local (LSA) para transmitir ao pacote de segurança quaisquer credenciais armazenadas para a entidade de segurança autenticada.
SpAcceptLsaModeContext Função de despacho do 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.
SpAddCredentials Usado para adicionar credenciais para uma entidade de segurança.
SpApplyControlToken Aplica um token de controle a um contexto de segurança. Esta função não é atualmente chamada pela Autoridade de Segurança Local (LSA).
SpDeleteContext Exclui um contexto de segurança.
SpDeleteCredentials Exclui credenciais da lista de credenciais primárias ou suplementares de um pacote de segurança.
SpFreeCredentialsHandle Libera credenciais adquiridas ao chamar 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 nome e recursos.
SpGetUserInfo Recupera informações sobre uma sessão de logon.
SPInitialize É chamado uma vez pela Autoridade de Segurança Local (LSA) para fornecer um pacote de segurança com informações gerais de segurança e uma tabela de despacho de funções de suporte.
SpInitLsaModeContext A função de expedição de 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 do SSP/AP ser descarregado.
SslCrackCertificate Retorna uma estrutura X509Certificate com as informações contidas no certificado BLOB especificado.
SslEmptyCache Remove a cadeia de caracteres especificada do cache Schannel.
SslFreeCertificate Libera um certificado que foi alocado por uma chamada anterior à função SslCrackCertificate.

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

As seguintes funções são implementadas pelo Provedor de Suporte à Segurança//pacotes de autenticação (SSP/APs) que podem ser carregados em aplicativos cliente/servidor.

Um SSP/AP indica que implementa as funções do modo de usuário retornando o parâmetro TRUE in the 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.

O carregamento de um SSP/AP no processo do cliente ou no processo do servidor é tratado pela DLL do provedor de segurança, 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. Esta 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 cliente ou servidor, a Autoridade de Segurança Local (LSA) 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á a função SpInitUserModeContext do pacote de segurança.

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

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

Funções LSA chamadas por SSP/APs

A Autoridade de Segurança Local (LSA) fornece as seguintes funções para pacotes de segurança implantados em Provedor de Suporte de Segurança//pacotes de autenticação (SSP/APs). 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 do LSA. As seguintes funções 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 repassadas ao LSA sejam alocadas usando esta função.
CopyFromClientBuffer Copia informações do espaço de endereço de um processo 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 cliente.
CreateLogonSession Cria sessões de logon.
DeleteCredential Exclui 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 memória heap previamente alocada 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 logon.
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 notificação para eventos especiais.
ClientCallback Permite que um pacote de segurança invoque uma função no processo do cliente.
Para um protótipo de função ClientCallback, consulte Protótipo de função ClientCallback.
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 da memória compartilhada.
DuplicateHandle Duplica um identificador.
FreeReturnBuffer Libera um buffer alocado pelo 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 no espaço de endereço do Provedor de Suporte à Segurança//pacote de autenticação (SSP/AP).
OpenSamUser Recupera um identificador para uma conta de usuário no banco de dados do Gerenciador de Contas de Segurança (SAM).
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 um Provedor de Suporte à Segurança//pacote de autenticação (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 de modo de usuário

Um pacote de segurança em um Provedor de Suporte de Segurança//pacote de autenticação (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 Status do PSDK
AllocateHeap Aloca memória para buffers que são retornados ao Autoridade de Segurança Local (LSA).
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 seguintes funções.

Observação

DLLs GINA são ignoradas no Windows Vista.

Função Descrição
WlxActivateUserShell Ativa o programa shell do usuário.
WlxDisplayLockedNotice Permite que o GINA exiba informações sobre o bloqueio, como quem bloqueou a estação de trabalho e quando ela foi bloqueada.
WlxDisplaySASNotice Winlogon chama essa função quando nenhum usuário está conectado.
WlxDisplayStatusMessage Winlogon chama essa função quando a DLL GINA deve exibir uma mensagem.
WlxGetConsoleSwitchCredentials 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 Winlogon chama essa função para obter a mensagem de status exibida pela DLL GINA.
WlxInitialize Winlogon chama essa função uma vez para cada estação de janela presente no computador. Atualmente, o sistema operacional permite uma estação de janela por estação de trabalho.
WlxIsLockOk Winlogon chama essa função antes de tentar bloquear a estação de trabalho.
WlxIsLogoffOk Winlogon chama essa função quando o usuário inicia uma operação de logoff.
WlxLoggedOnSAS Winlogon chama essa função quando recebe um evento Secure Attention Sequence (SAS) enquanto o usuário está conectado e a estação de trabalho não está bloqueada.
WlxLoggedOutSAS Winlogon chama essa função quando recebe um evento Secure Attention Sequence (SAS) enquanto nenhum usuário está conectado.
WlxLogoff Winlogon chama essa função para notificar GINA sobre uma operação de logoff nesta estação de trabalho, permitindo que GINA execute quaisquer operações de logoff que possam ser necessárias.
WlxNegotiate A função WlxNegotiate deve ser implementada por uma DLL GINA de substituição. Esta é a primeira chamada feita por Winlogon para a DLL GINA. WlxNegotiate permite que GINA verifique se é compatível com a versão instalada do Winlogon.
WlxNetworkProviderLoad Winlogon chama essa função para coletar informações válidas de autenticação e identificação.
WlxRemoveStatusMessage Winlogon chama essa função para informar à DLL GINA para parar de exibir a mensagem de status.
WlxScreenSaverNotify Winlogon chama essa função imediatamente antes de um protetor de tela ser ativado, permitindo que o GINA interaja com o programa de proteção de tela.
WlxShutdown Winlogon chama esta função pouco antes de desligar, permitindo que o GINA execute qualquer tarefa de desligamento, como ejetar um cartão inteligente de um leitor.
WlxStartApplication Winlogon chama essa função quando o sistema precisa que um aplicativo seja iniciado no contexto do usuário.
WlxWkstaLockedSAS Winlogon chama essa função quando recebe um Secure Attention Sequence (SAS) e a estação de trabalho está bloqueada.

Funções de logon do usuário

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

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

Funções de suporte Winlogon

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

Observação

DLLs GINA são ignoradas no Windows Vista.

Função Chamado por GINA
WlxAssignShellProtection Chamado por GINA para atribuir proteção ao programa shell de um usuário recém-logado.
WlxChangePasswordNotify Chamado por GINA para indicar que a senha foi alterada.
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 limpar depois que a área de trabalho for fechada.
WlxCreateUserDesktop Chamado por GINA para criar áreas de trabalho de aplicativos alternativas para o usuário.
WlxDialogBox Chamado por GINA para criar uma caixa de diálogo modal a partir 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 os controles da caixa de diálogo e depois 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 os controles da caixa de diálogo e depois 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 substituta 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 de Winlogon alternado 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 substituta 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 de 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 substituta se os Serviços de terminal estiverem habilitados. GINA chama esta função para determinar se o servidor de terminal está usando o licenciamento do conector da Internet e para recuperar informações de credenciais.
WlxQueryTerminalServicesData Chamado por GINA para recuperar informações de configuração do usuário dos Serviços de terminal após o logon do usuário.
WlxSasNotify Chamado por GINA para notificar Winlogon sobre um evento de Secure Attention Sequence (SAS).
WlxSetContextPointer Chamado por GINA para especificar o ponteiro de contexto passado por 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 alternativa do aplicativo para a qual Winlogon alternará quando a função de processamento de eventos Secure Attention Sequence (SAS) 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 mudar para a área de trabalho do aplicativo.
WlxSwitchDesktopToWinlogon Permite que a DLL GINA mude para a área de trabalho Winlogon.
WlxUseCtrlAltDel Chamado por GINA para informar ao Winlogon para usar a combinação de teclas CTRL+ALT+DEL padrão como Secure Attention Sequence (SAS).
WlxWin31Migrate Chamado por uma DLL GINA substituta se os Serviços de terminal estiverem habilitados. GINA chama essa função para concluir a configuração do cliente de 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 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 funções que são implementadas por aplicativos que precisam receber notificação do Multiple Provider Router (MPR) quando um recurso de rede é conectado ou desconectado.

Funções implementadas por provedores de rede

As seguintes funções podem ser implementadas pelos provedores de rede. A única função que os provedores de rede são obrigados a apoiar é 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. Esta janela possui todas as caixas de diálogo originadas no dispositivo.
NPDirectoryNotify Notifica o provedor de rede sobre 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 são compatíveis com a 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 que esteja conectado no momento.
NPGetDirectoryType Determina o tipo de um diretório de rede.
NPGetPropertyText Recupera os nomes dos botões para adicionar a uma caixa de diálogo de propriedades de um recurso de rede.
NPGetResourceInformation Separa a parte de um recurso de rede acessada por meio da API WNet da parte acessada por meio de APIs específicas ao 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 arquivos e diretórios.
NPSearchDialog Permite que os fornecedores de rede forneçam sua própria forma de navegação e pesquisa, além da visã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 Multiple Provider Router (MPR) quando um recurso de rede é conectado ou desconectado. Para obter mais informações sobre como escrever um aplicativo que receba tais notificações, consulte Recebimento de 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 cancelamento de conexão (WNetCancelConnection ou WNetCancelConnection2).

Funções de logon LSA

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

Função Descrição
LsaCallAuthenticationPackage Solicita um serviço específico de pacote de um pacote de autenticação.
LsaConnectUntrusted Estabelece uma conexão não confiável com o LSA.
LsaDeregisterLogonProcess Desconecta do LSA e libera recursos alocados ao contexto do chamador.
LsaEnumerateLogonSessions Recupera identificadores locais exclusivos (LUIDs) 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 os dados de logon do usuário em relação às credenciais armazenadas. Se for bem-sucedido, ele cria uma sessão de logon e retorna 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 da floresta para o objeto especificado TrustedDomain da Autoridade de Segurança Local.
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 especificado TrustedDomain da Autoridade de Segurança Local.

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

Pacotes de autenticação personalizados devem implementar essas funções, que são chamadas pela Autoridade de Segurança Local (LSA). 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.
Esta função fornece uma maneira para os aplicativos de logon se comunicarem diretamente com os 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 que está usando uma conexão não confiável. Esta função é utilizada para comunicação com processos que não possuem 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 quaisquer recursos alocados para a sessão de logon.
LsaApLogonUser Chamado quando o pacote de autenticação foi especificado em uma chamada para LsaLogonUser. Esta função autentica os dados de logon de uma entidade de segurança.
LsaApLogonUserEx Idêntico a LsaApLogonUser, exceto que retorna o nome da estação de trabalho para fins de auditoria.
Um pacote de autenticação pode implementar LsaApLogonUser, LsaApLogonUserEx ou LsaApLogonUserEx2. Não é necessário implementar todos eles.
LsaApLogonUserEx2 Idêntico a LsaApLogonUserEx , exceto que ele retorna as credenciais primárias e complementares da entidade de segurança. Um pacote de autenticação pode implementar LsaApLogonUser, LsaApLogonUserEx ou LsaApLogonUserEx2. Não é necessário implementar todos eles.

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

As seguintes funções da Autoridade de Segurança Local (LSA) podem ser chamadas a partir de um pacote de autenticação personalizado. Quando o LSA chama LsaApInitializePackage para inicializar o pacote, ele 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 o LSA.
CopyFromClientBuffer Copia o conteúdo de um buffer no espaço de endereço do cliente para 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 todas as sessões de logon criadas enquanto determina se as informações de autenticação de um usuário são legítimas.
FreeClientBuffer Libera um buffer de cliente previamente alocado com a função AllocateClientBuffer.
FreeLsaHeap Libera buffers previamente alocados usando a função AllocateLsaHeap.
GetCredentials Recupera credenciais previamente armazenadas em cache por AddCredential.

Funções de subautenticação

As seguintes funções de subautenticação 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 autenticação específica de 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 da IU de gerenciamento de credenciais Funções detalhadas usadas para IU de gerenciamento de credenciais.
Funções de gerenciamento de credenciais de baixo nível Funções detalhadas usadas para gerenciamento de credenciais de baixo nível.
Funções de notificação de gerenciamento de credenciais Detalha funções que são implementadas por gerenciadores de credenciais para receber notificações quando as informações de autenticação são alteradas.

Funções da IU de gerenciamento de credenciais

Veja a seguir as funções da IU de gerenciamento de credenciais.

Função Descrição
CredUICmdLinePromptForCredentials Solicita e aceita informações de credenciais de um usuário que esteja trabalhando em um programa de linha de comando.
CredUIConfirmCredentials Confirme a validade das credenciais retornadas por CredUIPromptForCredentials ou CredUICmdLinePromptForCredentials.
CredUIParseUserName Extraia o domínio e o nome da conta de usuário de um nome de usuário totalmente qualificado.
CredUIPromptForCredentials Exiba 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 aos usuários fornecer informações de credenciais 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 no banco de dados Credentials Management (CredMan) 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 permitida pela sessão de logon atual.
CredGetTargetInfo Recupere todas as informações de nome de destino conhecidas para um recurso nomeado.
CredIsMarshaledCredential Determina se uma sequência de nome de usuário especificada é uma credencial empacotada anteriormente por CredMarshalCredential.
CredIsProtected Especifica se as credenciais especificadas são criptografadas por uma chamada anterior à função CredProtect.
CredMarshalCredential Transforme uma credencial em uma cadeia de caracteres de texto.
CredPackAuthenticationBuffer Converte uma cadeia de caracteres de nome de usuário e senha em um buffer de autenticação.
CredProtect Criptografa as credenciais especificadas para que somente 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 credenciais empacotada novamente em sua forma não empacotada.
CredUnPackAuthenticationBuffer Converte um buffer de autenticação retornado por uma chamada à função CredUIPromptForWindowsCredentials em uma cadeira de caracteres de nome de usuário e senha.
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 Grave 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 gerenciadores de credenciais para receber notificações quando as informações de autenticação são alteradas.

Função Descrição
NPLogonNotify 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 MPR chama essa função para notificar o gerenciador de credenciais sobre 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 a caixa de diálogo Selecionar cartão do cartão inteligente.
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 eventos no log de aplicativos do Windows Microsoft-Windows-SmartCard-Audit/Authentication.
SCardBeginTransaction Inicia uma transação.
SCardCancel Encerra todas as ações pendentes dentro de 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 controle direto do leitor após SCardConnect ser 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 de gerenciador de recursos para acessar o banco de dados do cartão inteligente.
SCardForgetCardType Remove um cartão inteligente definido anteriormente no subsistema de cartão inteligente.
SCardForgetReader Remove um leitor previamente definido no subsistema de cartão inteligente.
SCardForgetReaderGroup Remove um grupo de leitores previamente definido no subsistema de cartão inteligente.
SCardFreeMemory Libera memória alocada pelo gerenciador de recursos.
SCardGetAttrib Obtém os atributos do leitor atual de determinado leitor, driver ou cartão inteligente.
SCardGetCardTypeProviderName Obtém o nome do provedor com base no nome do cartão e no tipo de provedor.
SCardGetDeviceTypeId Obtém o identificador do tipo de dispositivo do leitor de cartão para o nome do leitor fornecido. Esta função não afeta o estado do leitor.
SCardGetProviderId Obtém o identificador (GUID) do provedor de serviços principal de um cartão inteligente.
SCardGetReaderDeviceInstanceId Obtém o identificador da instância do dispositivo do leitor de cartão para o nome do leitor fornecido. Esta função não afeta o estado do leitor.
SCardGetReaderIcon Obtém um ícone do leitor de cartão inteligente para o nome de determinado leitor.
SCardGetStatusChange Bloqueia a execução até que o status dos leitores seja alterado.
SCardGetTransmitCount Recupera o número de operações de transmissão concluídas desde que o leitor de cartão especificado foi inserido.
SCardIntroduceCardType Introduz um novo cartão inteligente no subsistema de cartão inteligente.
SCardIntroduceReader Apresenta um novo leitor ao subsistema de cartão inteligente.
SCardIntroduceReaderGroup Introduz um novo grupo de leitores no subsistema de cartão inteligente.
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 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. Esta função não afeta o estado do leitor.
SCardLocateCards Localiza os cartões que correspondem a determinada cadeia de ATR.
SCardLocateCardsByATR Localiza os cartões que correspondem a determinada cadeia de ATR.
SCardReadCache Recupera a parte do valor de um par nome-valor do cache global mantido pelo Gerenciador de recursos de cartão inteligente.
SCardReconnect Restabelece uma conexão existente do aplicativo de chamada com 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 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 um cartão inteligente.
SCardUIDlgSelectCard Exibe a caixa de diálogo Selecionar cartão do cartão inteligente.
SCardWriteCache Grava um par nome-valor de um cartão inteligente no cache global mantido pelo Gerenciador de recursos de cartão inteligente.

Funções SASL

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

Funções Descrição
SaslAcceptSecurityContext Envolve uma chamada padrão para a função AcceptSecurityContext (General) de 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 de negociação que corresponde ao buffer de negociação SASL especificado.
SaslInitializeSecurityContext Encapsula uma chamada padrão para a função InitializeSecurityContext (General) de 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 à Segurança à lista de provedores com suporte do Microsoft Negotiate.
ChangeAccountPassword Altera a senha de uma conta de domínio do Windows usando o Provedor de Suporte à Segurança especificado.
CredMarshalTargetInfo Serializa o destino especificado em uma matriz de valores de bytes.
DeleteSecurityPackage Exclui um Provedor de Suporte à Segurança da lista de provedores com suporte do Microsoft Negotiate.
LsaManageSidNameMapping Adiciona ou remove mapeamentos SID/nome do conjunto de mapeamento registrado no LSA Lookup Service.
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 de retorno é uma máscara de bits que indica quais 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ão quando um item de menu Segurança do Gerenciador de arquivos é selecionado e F1 é pressionado.
SeciAllocateAndSetIPAddress Define o endereço IP do chamador para aparecer 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 ao 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 à Segurança (SSP) quando inicia um contexto de segurança.
SpUpdateCredentialsFn Atualiza 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 credenciais como uma estrutura de identidade de autenticação.
SspiEncryptAuthIdentity Criptografa a estrutura de identidade especificada.
SspiExcludePackage Cria uma estrutura de identidade que é uma cópia da estrutura de identidade especificada modificada para excluir o Provedor de Suporte à Segurança (SSP).
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 a partir de uma estrutura de identidade que podem ser passados ​​como valores de parâmetros em uma chamada à função CredWrite.
SspiPromptForCredentials Permite que um aplicativo de Interface do Provedor de Suporte de Segurança(SSPI) solicite que um usuário insira credenciais.
SspiUnmarshalAuthIdentity Desserializa a matriz especificada de valores de bytes em uma estrutura de identidade.
SspiUnmarshalCredUIContext Desserializa informações de credenciais obtidas por um provedor de credenciais durante uma chamada anterior ao método ICredentialProvider::SetSerialization.
SspiUpdateCredentials Atualiza 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 substituta para recuperar informações de credenciais se os Serviços de terminal estiverem habilitados. A DLL GINA pode então usar essas informações para preencher uma caixa de logon automaticamente e tentar fazer logon do usuário.