WSAProviderCompleteAsyncCall 函数 (ws2spi.h)

WSAProviderCompleteAsyncCall 函数在完成对命名空间版本 2 提供程序的异步调用时通知客户端。

语法

INT WSAAPI WSAProviderCompleteAsyncCall(
  HANDLE hAsyncCall,
  INT    iRetCode
);

参数

hAsyncCall

传递给正在完成的异步调用的句柄。 此句柄由客户端传递到异步函数调用中的命名空间版本 2 提供程序。

iRetCode

对命名空间 version-2 提供程序的异步调用的返回代码。

返回值

如果未发生错误, 则 WSAProviderCompleteAsyncCall 返回零。

如果函数失败,则返回值SOCKET_ERROR。 若要获取扩展错误信息,请调用 WSAGetLastError,这将返回以下扩展错误值之一。

错误代码 含义
WSA_NOT_ENOUGH_MEMORY
内存不足,无法执行该操作。
WSAEFAULT
发生内部错误。
WSAEINVAL
参数无效。 如果 hAsyncCall 参数为 NULL,则返回此错误。
WSANOTINITIALISED
Ws2_32.dll 尚未初始化。 应用程序必须先调用 WSAStartup, 然后才能调用任何 Windows 套接字函数。

注解

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

在 Windows Vista 和 Windows Server 2008 上, WSAUnadvertiseProvider 函数只能用于NS_EMAIL命名空间提供程序上的操作。 Windows Vista 和 Windows Server 2008 不支持对 NSPv2 提供程序的异步调用。 因此 ,WSAProviderCompleteAsyncCall 当前不适用。 当支持对命名空间提供程序的异步调用时,计划将此函数用于更高版本的 Windows。

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

要求

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

另请参阅

NSPV2_ROUTINE

WSAAdvertiseProvider

WSAGetLastError

WSAUnadvertiseProvider