服务查询

名称服务查询涉及一系列调用: NSPLookupServiceBegin,后跟一个或多个对 NSPLookupServiceNext 的调用,以调用 NSPLookupServiceEnd 结尾NSPLookupServiceBegin 采用 WSAQUERYSET 结构作为输入,以便定义查询参数以及一组标志,以提供对搜索操作的其他控制。 它返回查询句柄,该句柄用于后续调用 NSPLookupServiceNextNSPLookupServiceEnd

命名空间 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错误代码,以保持与最广泛的应用程序的兼容性。