NSPV2_ROUTINE结构 (ws2spi.h)

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

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

 

Syntax

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;

Members

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结构用作 Windows Vista 及更高版本上提供的命名空间服务提供程序版本 2 (NSPv2) 体系结构的一部分。

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

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

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

NSPv2LookupServiceBegin

- NSPv2LookupServiceNextEx

- NSPv2LookupServiceEnd

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

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

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

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

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

要求

Requirement 价值
最低支持的客户端 Windows Vista [仅限桌面应用]
支持的最低服务器 Windows Server 2008 [仅限桌面应用]
Header ws2spi.h

另请参阅

NSP_ROUTINE

NSPv2Cleanup

NSPv2ClientSessionRundown

NSPv2LookupServiceBegin

NSPv2LookupServiceEnd

NSPv2LookupServiceNextEx

NSPv2SetServiceEx

NSPv2Startup

WSAAdvertiseProvider

WSAProviderCompleteAsyncCall

WSAQUERYSET2

WSAUnadvertiseProvider