Compartir a través de


Función WSAAdvertiseProvider (ws2spi.h)

La función WSAAdvertiseProvider hace que un proveedor específico de espacio de nombres version-2 esté disponible para todos los clientes aptos.

Sintaxis

INT WSAAPI WSAAdvertiseProvider(
  [in] const GUID             *puuidProviderId,
  [in] const LPCNSPV2_ROUTINE pNSPv2Routine
);

Parámetros

[in] puuidProviderId

Puntero al identificador de proveedor del proveedor de espacio de nombres que se va a anunciar.

[in] pNSPv2Routine

Puntero a una estructura de NSPV2_ROUTINE con los puntos de entrada de la versión 2 del proveedor de servicios de espacio de nombres admitidos por el proveedor.

Valor devuelto

Si no se produce ningún error, WSAProviderCompleteAsyncCall devuelve cero.

Si se produce un error en la función, el valor devuelto es SOCKET_ERROR. Para obtener información de error extendida, llame a WSAGetLastError, que devuelve uno de los siguientes valores de error extendidos.

Código de error Significado
WSA_NOT_ENOUGH_MEMORY
No había memoria suficiente para realizar la operación.
WSAEFAULT
Se ha producido un error interno.
WSAEINVAL
Un parámetro no era válido. Este error se devuelve si los parámetros puuidProviderId o pNSPv2Routine eran **NULL**.

Este error también se devuelve si los miembros NSPv2LookupServiceBegin, NSPv2LookupServiceNextEx o NSPv2LookupServiceEnd de la estructura NSPV2_ROUTINE a la que apunta el parámetro pNSPv2Routine son NULL. Un proveedor de la versión 2 del espacio de nombres debe admitir al menos la resolución de nombres que este conjunto mínimo de funciones.

WSAEINVALIDPROVIDER
No se encontró el proveedor de espacios de nombres para el parámetro puuidProviderId especificado.
WSANOTINITIALISED
El Ws2_32.dll no se ha inicializado. La aplicación debe llamar primero a WSAStartup antes de llamar a cualquier función de Windows Sockets.

Observaciones

La función WSAAdvertiseProvider se usa como parte de la arquitectura del proveedor de servicios de espacio de nombres versión 2 (NSPv2) disponible en Windows Vista y versiones posteriores.

En Windows Vista y Windows Server 2008, la función WSAAdvertiseProvider solo se puede usar para las operaciones en proveedores de espacio de nombres NS_EMAIL.

La función WSAAdvertiseProvider anuncia una instancia de un proveedor NSPv2 para que los clientes encuentren. Si la instancia que se va a anunciar es una instancia de un proveedor de tipo de aplicación (un proveedor de espacios de nombres donde el miembro dwProvideType de la estructura NAPI_PROVIDER_INSTALLATION_BLOB es ProviderType_Application), la instancia del proveedor anunciada será visible para todos los procesos de cliente que se ejecutan en el mismo usuario y en la misma sesión que el autor de la llamada de WSAAdvertiseProvider.

En general, los proveedores NSPv2 se implementan en procesos distintos de las aplicaciones que llaman. Los proveedores NSPv2 no se activan como resultado de la actividad del cliente. Cada aplicación de hospedaje de proveedor decide cuándo hacer que un proveedor específico esté disponible o no disponible mediante una llamada a las funciones WSAAdvertiseProvider y WSAUnadvertiseProvider . La actividad del cliente solo da como resultado intentos de ponerse en contacto con el proveedor, cuando está disponible (cuando se anuncia el proveedor de espacios de nombres).

Cualquier aplicación que quiera hacer que un proveedor específico esté disponible para todos los clientes aptos (actualmente todas las aplicaciones que se ejecutan con las mismas credenciales que la aplicación de hospedaje y en la misma sesión de usuario llaman a la función WSAAdvertiseProvider ).

Un proceso puede implementar y anunciar varios proveedores al mismo tiempo. Windows Sockets administrará los proveedores de espacios de nombres enviando llamadas a la correcta. También ocultará los detalles de la interfaz RPC y traducirá las llamadas entre procesos en llamadas en proceso. Por lo tanto, el proveedor NSPv2 solo tiene que implementar una tabla de funciones de punto de entrada similares a la estructura de NSP_ROUTINE usada por un proveedor NSPv1. Un proveedor NSPv2 no tiene que preocuparse por los requisitos específicos de RPC (serialización y serialización de datos, por ejemplo).

El llamador WSAAdvertiseProvider pasa un puntero a una estructura de NSPV2_ROUTINE en el parámetro pNSPv2Routine con los puntos de entrada NSPv2 admitidos por el proveedor.

La función WSAUnadvertiseProvider hace que un proveedor de espacios de nombres específico ya no esté disponible para los clientes.

Requisitos

   
Cliente mínimo compatible Windows Vista [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2008 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado ws2spi.h
Library Ws2_32.lib
Archivo DLL Ws2_32.dll

Consulte también

NAPI_PROVIDER_INSTALLATION_BLOB

NAPI_PROVIDER_TYPE

NSPV2_ROUTINE

WSAEnumNameSpaceProviders

WSAEnumNameSpaceProvidersEx

WSAProviderCompleteAsyncCall

WSASetService

WSAUnadvertiseProvider

WSCEnumNameSpaceProvidersEx32