LPNSPV2STARTUP回调函数 (ws2spi.h)

NSPv2Startup 函数通知命名空间服务提供程序版本 2 (NSPv2) 提供程序,新客户端进程将开始使用提供程序。

语法

LPNSPV2STARTUP Lpnspv2startup;

INT Lpnspv2startup(
  [in] LPGUID lpProviderId,
  [in] LPVOID *ppvClientSessionArg
)
{...}

参数

[in] lpProviderId

指向要通知的特定命名空间提供程序的 GUID 的指针。

[in] ppvClientSessionArg

指向客户端会话的指针。

返回值

如果例程成功 函数应返回NO_ERROR (零) 。 如果例程失败,它应返回 SOCKET_ERROR (即 1) ,并且必须使用 WSASetLastError 设置相应的错误代码。

错误代码 含义
WSA_NOT_ENOUGH_MEMORY
没有足够的内存可用于执行此操作。
WSAEACCES
调用例程没有足够的权限来初始化服务。
WSAEINVAL
此提供程序的一个或多个参数无效或缺失。
WSAEOPNOTSUPP
此操作不受支持。 如果命名空间提供程序未实现此函数,则返回此错误。
WSASERVICE_NOT_FOUND
服务未知。 在指定的命名空间中找不到该服务。

注解

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

在 Windows Vista 和 Windows Server 2008 上, NSPv2Startup 函数只能用于NS_EMAIL命名空间提供程序上的操作。

每次新的客户端进程开始使用命名空间提供程序时,都会调用 NSPv2Startup 函数。 提供程序可以使用 ppvClientSessionArg 参数指向的客户端会话参数来存储有关此会话的信息。 ppvClientSessionArg 参数中的值将传递给同一会话中的后续 NSPv2 函数调用。 如果命名空间提供程序不需要此信息,则客户端会话参数可以为 NULL

初始化新的客户端会话时,将调用 NSPv2Startup 函数。 NSPv2StartupNSPv2Cleanup 函数必须作为对调用。

在调用 NSPv2Cleanup 函数之前,必须成功调用 NSPv2Startup 函数。 允许进行多个 NSPv2Startup 调用。 但是,对于每个 NSPv2Startup 调用,还必须发出相应的 NSPv2Cleanup 调用。 只有服务提供商的最终 NSPv2Cleanup 执行实际清理;上述调用会减少命名空间服务提供程序中的内部引用计数。

NSPv2StartupNSPv2ClientSessionRundownNSPv2Cleanup 函数是可选的,具体取决于 NSPv2 提供程序的要求。

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

要求

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

另请参阅

NSPV2_ROUTINE

NSPv2Cleanup

NSPv2ClientSessionRundown

NSPv2LookupServiceBegin

NSPv2LookupServiceEnd

NSPv2LookupServiceNextEx

NSPv2SetServiceEx

WSAQUERYSET2

WSASetLastError