PNRP 和 WSANSPIoctl

PNRP 使用 WSANSPIoctl 函数接收有关对以下内容的更改的通知:

  • 网络云列表
  • 名称解析请求结果的可用性

WSALookupServiceBegin 的第一次调用定义通知客户端的信息类型。 可以使用 Windows 消息、完成例程、WSAEVENT 对象的句柄或端口通知客户端。 有关选项和设置 lpCompletion 参数的详细信息,请参阅 WSANSPIoctl

若要在调用 WSALookupServiceNext 后继续接收通知,应用程序必须再次调用 WSANSPIoctl

即使调用 WSANSPIoctlWSALookupServiceNext 函数也会阻止。 在调用 WSALookupServiceNext 之前,应用程序必须等到收到通知(如果阻止是一个问题)。

调用此函数时,参数必须具有以下值:

hLookup

指定 WSALookupServiceBegin 返回的句柄。

dwControlCode

必须 SIO_NSP_NOTIFY_CHANGE

lpvInBuffer

必须为 NULL

cbInBuffer

必须为零 (0) 。

lpvOutBuffer

必须为 NULL

cbOutBuffer

必须为零 (0) 。

lpcbBytesReturned

必须为 NULL

lpCompletion

指定 NULL 或指向 WSACOMPLETION 结构的指针。

收到通知后,请调用 WSALookupServiceNext 一次以获取结果。

若要结束搜索,请调用 WSALookupServiceEnd

解决方法通知

每当添加名称解析条目时,客户端都会收到通知。 然后,客户端调用 WSALookupServiceNext 以获取分辨率数据。

如果客户端不使用此方法,则可以阻止对 WSALookupServiceNext 的调用,直到发生指定的超时。

云列表通知

每当一组云发生更改时,客户端都会收到通知。

WSALookupServiceNext 函数返回WSA_E_NO_MORE作为集分隔符。 在返回此消息之前,客户端应用程序必须枚举现有云,然后使用通知方案在后续更改发生时检索这些更改。 客户端应用程序也可以调用 WSALookupServiceNext,但调用会被阻止,直到发生更改。

WSALookupServiceNext 函数返回 WSAQUERYSET 结构中的云。 在 dwOutputFlags 成员中返回以下标志之一。

说明
RESULT_IS_ADDED 添加返回的云。
RESULT_IS_CHANGED 返回的云已更改。
RESULT_IS_DELETED 返回的云已删除且无效。

 

PNRP 和 WSALookupServiceBegin

PNRP 和 WSALookupServiceEnd

PNRP 和 WSAQUERYSET

PNRP NSP 错误代码

WSANSPIoctl

WSALookupServiceBegin

WSALookupServiceEnd

WSAQUERYSET