PNRP y WSANSPIoctl
PNRP usa la función de WSANSPIoctl para recibir notificaciones sobre los cambios en lo siguiente:
- Una lista de nube de red
- Disponibilidad de los resultados de una solicitud de resolución de nombres
La primera llamada a WSALookupServiceBegin define el tipo de información sobre la que se notifica a un cliente. Un cliente puede recibir una notificación con un mensaje de Windows, una rutina de finalización, un identificador de un objeto WSAEVENT o un puerto. Para obtener más información sobre las opciones y establecer el parámetro lpCompletion, vea WSANSPIoctl.
Para seguir recibiendo notificaciones después de una llamada a WSALookupServiceNext, una aplicación debe llamar a WSANSPIoctl de nuevo.
La funciónWSALookupServiceNext se bloquea incluso si se llama a WSANSPIoctl. Antes de llamar a WSALookupServiceNext, una aplicación debe esperar hasta que reciba una notificación, si el bloqueo es un problema.
Al llamar a esta función, los parámetros deben tener los siguientes valores:
-
hLookup
-
Especifica el identificador que devuelve WSALookupServiceBegin.
-
dwControlCode
-
Debe ser SIO_NSP_NOTIFY_CHANGE.
-
lpvInBuffer
-
Debe ser null.
-
cbInBuffer
-
Debe ser cero (0).
-
lpvOutBuffer
-
Debe ser null.
-
cbOutBuffer
-
Debe ser cero (0).
-
lpcbBytesReturned
-
Debe ser null.
-
lpCompletion
-
Especifica NULL o un puntero a una estructura deWSACOMPLETION de.
Después de recibir una notificación, llame a WSALookupServiceNext una vez para obtener los resultados.
Para finalizar una búsqueda, llame a WSALookupServiceEnd.
Notificaciones de resolución
Un cliente puede recibir una notificación cada vez que se agrega una entrada de resolución de nombres. A continuación, el cliente llama a WSALookupServiceNext para obtener los datos de resolución.
Si el cliente no usa esta técnica, se puede bloquear una llamada a WSALookupServiceNext hasta que se produzca el tiempo de espera especificado.
Notificaciones de lista en la nube
Un cliente puede recibir una notificación cada vez que haya un cambio en un conjunto de nubes.
La funciónWSALookupServiceNextdevuelve WSA_E_NO_MORE como delimitador set. La aplicación cliente debe enumerar las nubes existentes hasta que se devuelva este mensaje y, a continuación, usar un esquema de notificación para recuperar los cambios posteriores a medida que se produzcan. Una aplicación cliente también puede llamar a WSALookupServiceNext, pero la llamada se bloquea hasta que se produzca un cambio.
La funciónWSALookupServiceNextdevuelve una nube en una estructura WSAQUERYSET. Se devuelve una de las marcas siguientes en el miembro dwOutputFlags.
Valor | Descripción |
---|---|
RESULT_IS_ADDED | Se agrega la nube que se devuelve. |
RESULT_IS_CHANGED | Se cambia la nube que se devuelve. |
RESULT_IS_DELETED | La nube que se devuelve se elimina y no es válida. |
Temas relacionados
-
WSALookupServiceBegin
-
WSALookupServiceEnd
-
WSAQUERYSET