Função WSAAdvertiseProvider (ws2spi.h)
A função WSAAdvertiseProvider disponibiliza um provedor de namespace específico versão 2 para todos os clientes qualificados.
Sintaxe
INT WSAAPI WSAAdvertiseProvider(
[in] const GUID *puuidProviderId,
[in] const LPCNSPV2_ROUTINE pNSPv2Routine
);
Parâmetros
[in] puuidProviderId
Um ponteiro para a ID do provedor de namespace a ser anunciado.
[in] pNSPv2Routine
Um ponteiro para uma estrutura NSPV2_ROUTINE com os pontos de entrada do provedor de serviços de namespace versão 2 com suporte do provedor.
Valor retornado
Se nenhum erro ocorrer, WSAProviderCompleteAsyncCall retornará zero.
Se a função falhar, o valor retornado será SOCKET_ERROR. Para obter informações de erro estendidas, chame WSAGetLastError, que retorna um dos seguintes valores de erro estendidos.
Código do erro | Significado |
---|---|
Não havia memória suficiente para executar a operação. | |
Ocorreu um erro interno. | |
Um parâmetro não era válido. Esse erro será retornado se os parâmetros puuidProviderId ou pNSPv2Routine forem **NULL**.
Esse erro também será retornado se os membros NSPv2LookupServiceBegin, NSPv2LookupServiceNextEx ou NSPv2LookupServiceEnd da estrutura NSPV2_ROUTINE apontada pelo parâmetro pNSPv2Routine forem NULL. Um provedor de namespace versão 2 deve pelo menos dar suporte à resolução de nomes que esse conjunto mínimo de funções. |
|
Não foi possível encontrar o provedor de namespace para o parâmetro puuidProviderId especificado. | |
O Ws2_32.dll não foi inicializado. O aplicativo deve primeiro chamar WSAStartup antes de chamar qualquer função do Windows Sockets. |
Comentários
A função WSAAdvertiseProvider é usada como parte da arquitetura do provedor de serviços de namespace versão 2 (NSPv2) disponível no Windows Vista e posterior.
No Windows Vista e no Windows Server 2008, a função WSAAdvertiseProvider só pode ser usada para operações em provedores de namespace NS_EMAIL.
A função WSAAdvertiseProvider anuncia uma instância de um provedor NSPv2 para que os clientes encontrem. Se a instância a ser anunciada for uma instância de um provedor do tipo aplicativo (um provedor de namespace em que o membro dwProvideType da estrutura NAPI_PROVIDER_INSTALLATION_BLOB está ProviderType_Application), a instância de provedor anunciada ficará visível para todos os processos de cliente em execução no mesmo usuário e na mesma sessão que o chamador de WSAAdvertiseProvider.
Em geral, os provedores NSPv2 são implementados em processos diferentes dos aplicativos de chamada. Os provedores NSPv2 não são ativados como resultado da atividade do cliente. Cada aplicativo de hospedagem do provedor decide quando disponibilizar ou não um provedor específico chamando as funções WSAAdvertiseProvider e WSAUnadvertiseProvider . A atividade do cliente só resulta em tentativas de entrar em contato com o provedor, quando disponível (quando o provedor de namespace é anunciado).
A função WSAAdvertiseProvider é chamada por qualquer aplicativo que queira disponibilizar um provedor específico para todos os clientes qualificados (atualmente, todos os aplicativos em execução com as mesmas credenciais que o aplicativo de hospedagem e na mesma sessão de usuário).
Um processo pode implementar e anunciar vários provedores ao mesmo tempo. O Windows Sockets gerenciará os provedores de namespace expedindo chamadas para o correto. Ele também ocultará os detalhes da interface RPC e converterá chamadas entre processos em chamadas em processo. Para que o provedor NSPv2 só precise implementar uma tabela de funções de ponto de entrada semelhante à estrutura de NSP_ROUTINE usada por um provedor NSPv1. Um provedor NSPv2 não precisa se preocupar com requisitos específicos de RPC (marshalling de dados e serialização, por exemplo).
O chamador WSAAdvertiseProvider passa um ponteiro para uma estrutura NSPV2_ROUTINE no parâmetro pNSPv2Routine com os pontos de entrada NSPv2 compatíveis com o provedor.
A função WSAUnadvertiseProvider torna um provedor de namespace específico não mais disponível para clientes.
Requisitos
Cliente mínimo com suporte | Windows Vista [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows Server 2008 [somente aplicativos da área de trabalho] |
Plataforma de Destino | Windows |
Cabeçalho | ws2spi.h |
Biblioteca | Ws2_32.lib |
DLL | Ws2_32.dll |