LPNSPV2CLEANUP回调函数 (ws2spi.h)

NSPv2Cleanup 函数通知命名空间服务提供程序版本 2 (NSPv2) 提供程序客户端会话已终止。

语法

LPNSPV2CLEANUP Lpnspv2cleanup;

INT Lpnspv2cleanup(
  [in] LPGUID lpProviderId,
  [in] LPVOID pvClientSessionArg
)
{...}

参数

[in] lpProviderId

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

[in] pvClientSessionArg

指向客户端会话的指针。

返回值

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

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

注解

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

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

每次新客户端进程开始使用命名空间提供程序时,都会调用 NSPv2Startup 函数。 提供程序可以使用 ppvClientSessionArg 参数指向的客户端会话参数来存储有关此会话的信息。 如果在调用 NSPv2Startup 函数时为客户端会话参数指定了值,则可以在 pvClientSessionArg 参数中将此相同的客户端会话参数传递给 NSPv2Cleanup 函数,以通知命名空间提供程序客户端会话已终止。

当应用程序使用 Windows 套接字命名空间服务提供程序完成时,将调用 NSPv2Cleanup 函数。 NSPv2Cleanup 允许命名空间提供程序释放为客户端会话分配的任何命名空间提供程序资源。

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

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

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

要求

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

另请参阅

NSPV2_ROUTINE

NSPv2ClientSessionRundown

NSPv2LookupServiceBegin

NSPv2LookupServiceEnd

NSPv2LookupServiceNextEx

NSPv2SetServiceEx

NSPv2Startup

WSAQUERYSET2

WSASetLastError