服务查询
名称服务查询涉及一系列调用: NSPLookupServiceBegin,后跟对 NSPLookupServiceNext 的一个或多个调用,以对 NSPLookupServiceEnd 的调用结束。 NSPLookupServiceBegin 采用 WSAQUERYSET 结构作为输入,以便定义查询参数以及一组标志,以提供对搜索操作的额外控制。 它返回一个查询句柄,该句柄用于对 NSPLookupServiceNext 和 NSPLookupServiceEnd 的后续调用。
命名空间 SPI 客户端调用 NSPLookupServiceNext 以获取查询结果,结果在客户端提供的 WSAQUERYSET 缓冲区中提供。 客户端继续调用 NSPLookupServiceNext ,直到返回错误代码WSA_E_NO_MORE指示已检索所有结果。 然后,通过调用 NSPLookupServiceEnd 终止搜索。 当从另一个线程调用时, NSPLookupServiceEnd 函数还可用于取消当前挂起的 NSPLookupServiceNext 。
在 Windows 套接字 2 中,为 WSAENOMORE (10102) 和 WSA_E_NO_MORE (10110) 定义了冲突错误代码。 错误代码 WSAENOMORE 将在将来的版本中删除,并且仅保留WSA_E_NO_MORE。 命名空间提供程序应尽快切换到使用 WSA_E_NO_MORE 错误代码,以保持与最广泛的应用程序的兼容性。