NSPV2_ROUTINE 结构 (ws2spi.h)

NSPV2_ROUTINE 结构包含有关命名空间服务提供程序版本 2 (NSPv2) 提供程序实现的函数的信息。

注意Ws2spi.h 头文件结构包含所有 NSPV2 函数指针的完整原型。

 

语法

typedef struct _NSPV2_ROUTINE {
  DWORD                       cbSize;
  DWORD                       dwMajorVersion;
  DWORD                       dwMinorVersion;
  LPNSPV2STARTUP              NSPv2Startup;
  LPNSPV2CLEANUP              NSPv2Cleanup;
  LPNSPV2LOOKUPSERVICEBEGIN   NSPv2LookupServiceBegin;
  LPNSPV2LOOKUPSERVICENEXTEX  NSPv2LookupServiceNextEx;
  LPNSPV2LOOKUPSERVICEEND     NSPv2LookupServiceEnd;
  LPNSPV2SETSERVICEEX         NSPv2SetServiceEx;
  LPNSPV2CLIENTSESSIONRUNDOWN NSPv2ClientSessionRundown;
} NSPV2_ROUTINE, *PNSPV2_ROUTINE, *LPNSPV2_ROUTINE;

成员

cbSize

类型:DWORD

结构的大小(以字节为单位)。

dwMajorVersion

类型:DWORD

此提供程序支持的服务提供商规范的主版本。

dwMinorVersion

类型:DWORD

此提供程序支持的服务提供商规范的次要版本。

NSPv2Startup

类型:** LPNSPV2STARTUP**

指向此 NSPv2 提供程序的 NSPv2Startup 函数的指针。

NSPv2Cleanup

类型: LPNSPV2CLEANUP

指向此 NSPv2 提供程序的 NSPv2Cleanup 函数的指针。

NSPv2LookupServiceBegin

类型: LPNSPV2LOOKUPSERVICEBEGIN

指向此 NSPv2 提供程序的 NSPv2LookupServiceBegin 函数的指针。

NSPv2LookupServiceNextEx

类型: LPNSPV2LOOKUPSERVICENEXTEX

指向此 NSPv2 提供程序的 NSPv2LookupServiceNextEx 函数的指针。

NSPv2LookupServiceEnd

类型: LPNSPV2LOOKUPSERVICEEND

指向此 NSPv2 提供程序的 NSPv2LookupServiceEnd 函数的指针。

NSPv2SetServiceEx

类型: LPNSPV2SETSERVICEEX

指向此 NSPv2 提供程序的 NSPv2SetServiceEx 函数的指针。

NSPv2ClientSessionRundown

类型: LPNSPV2CLIENTSESSIONRUNDOWN

指向此 NSPv2 提供程序的 NSPv2ClientSessionRundown 函数的指针。

注解

NSPV2_ROUTINE结构用作命名空间服务提供程序版本 2 的一部分, (Windows Vista 及更高版本上可用的 NSPv2) 体系结构。

在 Windows Vista 和 Windows Server 2008 上, NSPV2_ROUTINE 结构只能用于对NS_EMAIL命名空间提供程序执行的操作。

WSAAdvertiseProvider 函数播发 NSPv2 提供程序的实例,供客户端查找。 WSAAdvertiseProvider 调用方将指针传递到 pNSPv2Routine 参数中的NSPV2_ROUTINE结构,其中包含提供程序支持的 NSPv2 入口点。

实现以下函数需要 NSPv2 提供程序:

NSPv2LookupServiceBegin

- NSPv2LookupServiceNextEx

- NSPv2LookupServiceEnd

所有其他函数都是可选的,具体取决于 NSPv2 提供程序的要求。

如果未实现函数,则返回 WSAEOPNOTSUPP 的存根函数应截获对该函数的调用。 指向 NSPV2_ROUTINE 结构中未实现的函数的 NSPv2 函数指针应指向存根函数。

通常,NSPv2 提供程序是在调用应用程序以外的进程中实现的。 NSPv2 提供程序不会由于客户端活动而激活。 每个托管应用程序的提供程序通过调用 WSAAdvertiseProviderWSAUnadvertiseProvider 函数来决定何时使特定提供程序可用或不可用。 客户端活动仅导致尝试联系提供程序(如果可用 () 播发命名空间提供程序时)。

一个进程可以同时实现和播发多个提供程序。 Windows 套接字将通过调度对正确命名空间的调用来管理命名空间提供程序。 它还将隐藏 RPC 接口详细信息,并将跨进程调用转换为进程内调用。 因此,NSPv2 提供程序只需实现类似于 NSPv1 提供程序使用的 NSP_ROUTINE 结构的入口点函数表。 NSPv2 提供程序无需担心 RPC 特定要求 (数据封送和序列化,例如) 。

WSAUnadvertiseProvider 函数使特定的命名空间提供程序不再可用于客户端。

要求

要求
最低受支持的客户端 Windows Vista [仅限桌面应用]
最低受支持的服务器 Windows Server 2008 [仅限桌面应用]
标头 ws2spi.h

另请参阅

NSP_ROUTINE

NSPv2Cleanup

NSPv2ClientSessionRundown

NSPv2LookupServiceBegin

NSPv2LookupServiceEnd

NSPv2LookupServiceNextEx

NSPv2SetServiceEx

NSPv2Startup

WSAAdvertiseProvider

WSAProviderCompleteAsyncCall

WSAQUERYSET2

WSAUnadvertiseProvider