PNRP and WSANSPIoctl
PNRP uses the WSANSPIoctl function to receive notifications about changes to the following:
- A network cloud list
- Availability of results of a name resolution request
The first call to WSALookupServiceBegin defines the type of information that a client is notified about. A client can be notified with a Windows message, a completion routine, a handle to a WSAEVENT object, or a port. For more information about options and setting the lpCompletion parameter, see WSANSPIoctl.
To continue receiving notifications after a call to WSALookupServiceNext, an application must call WSANSPIoctl again.
The WSALookupServiceNext function blocks even if WSANSPIoctl is called. Before calling WSALookupServiceNext, an application must wait until it receives a notification—if blocking is an issue.
When calling this function, the parameters must have the following values:
-
hLookup
-
Specifies the handle that WSALookupServiceBegin returns.
-
dwControlCode
-
Must be SIO_NSP_NOTIFY_CHANGE.
-
lpvInBuffer
-
Must be NULL.
-
cbInBuffer
-
Must be zero (0).
-
lpvOutBuffer
-
Must be NULL.
-
cbOutBuffer
-
Must be zero (0).
-
lpcbBytesReturned
-
Must be NULL.
-
lpCompletion
-
Specifies either NULL or a pointer to a WSACOMPLETION structure.
After a notification is received, call WSALookupServiceNext one time to obtain the results.
To end a search, call WSALookupServiceEnd.
Resolution Notifications
A client can be notified any time that a name resolution entry is added. The client then calls WSALookupServiceNext to obtain the resolution data.
If the client does not use this technique, a call to WSALookupServiceNext can be blocked until the specified timeout occurs.
Cloud List Notifications
A client can be notified any time there is a change to a set of clouds.
The WSALookupServiceNext function returns WSA_E_NO_MORE as a set delimiter. The client application must enumerate existing clouds until this message is returned, and then use a notification scheme to retrieve subsequent changes as they occur. A client application can also call WSALookupServiceNext, but the call is blocked until a change occurs.
The WSALookupServiceNext function returns a cloud in a WSAQUERYSET structure. One of the following flags is returned in the dwOutputFlags member.
Value | Description |
---|---|
RESULT_IS_ADDED | The cloud that is returned is added. |
RESULT_IS_CHANGED | The cloud that is returned is changed. |
RESULT_IS_DELETED | The cloud that is returned is deleted and is not valid. |
Related topics
-
WSALookupServiceBegin
-
WSALookupServiceEnd
-
WSAQUERYSET