LPNSPGETSERVICECLASSINFO 回调函数 (ws2spi.h)
NSPGetServiceClassInfo 函数检索与命名空间提供程序相关的所有相关的类信息 (架构) 。 此调用检索服务的所有实例通用的任何特定于命名空间的信息,包括 SAP 的连接信息,或 SAP 或 TCP 的端口信息。
语法
LPNSPGETSERVICECLASSINFO Lpnspgetserviceclassinfo;
INT Lpnspgetserviceclassinfo(
[in] LPGUID lpProviderId,
[in, out] LPDWORD lpdwBufSize,
[in, out] LPWSASERVICECLASSINFOW lpServiceClassInfo
)
{...}
参数
[in] lpProviderId
指向要从中检索服务类架构的特定命名空间提供程序的 GUID 的指针。
[in, out] lpdwBufSize
输入时, lpServiceClassInfo 参数指向的缓冲区的大小(以字节为单位)。
在输出时,如果函数失败且错误为 WSAEFAULT,则此参数指定指向检索记录所需的 lpServiceClassInfo 参数的缓冲区的最小大小(以字节为单位)。
[in, out] lpServiceClassInfo
返回指向 WSASERVICECLASSINFOW 结构的指针,该结构包含特定于命名空间的映射信息的服务类。 必须填充 lpServiceClassId 参数,以指示应返回哪个 WSASERVICECLASSINFOW 记录。
返回值
如果未发生错误, NSPGetServiceClassInfo 函数将返回 NO_ERROR ( 零) 。 否则, 将返回SOCKET_ERROR (–1) ,并且命名空间提供程序必须使用 WSASetLastError 设置相应的错误代码。
错误代码 | 含义 |
---|---|
没有足够的内存可用于执行此操作。 | |
调用例程没有足够的权限来访问信息。 | |
lpServiceClass 参数指向的缓冲区太小,无法包含 WSASERVICECLASSINFOW 结构。 应用程序需要传入更大的缓冲区。 | |
指定的服务类标识符或命名空间提供程序标识符无效。 如果 lpProviderId、 lpServiceClassId、 lpdwBufSize 或 lpServiceClassInfo 参数为 NULL,则返回此错误。 | |
此操作不受支持。 如果命名空间提供程序未实现此函数,则返回此错误。 | |
请求的名称有效,但找不到请求的类型的数据。 | |
未找到指定的类。 |
注解
W2_32.dll 使用此函数来实现 WSAGetServiceClassNameByClassId 函数,以及检索传递给 NSPLookupServiceBegin 和 NSPSetService 函数的特定于命名空间的信息。
要求
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | ws2spi.h |