Compartir a través de


PNRP y WSANSPIoctl

PNRP usa la función WSANSPIoctl para recibir notificaciones sobre los cambios en lo siguiente:

  • Una lista de la 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 notificaciones 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ón WSALookupServiceNext 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 valores siguientes:

hLookup

Especifica el identificador que WSALookupServiceBegin devuelve.

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 WSACOMPLETION .

Una vez recibida una notificación, llame a WSALookupServiceNext una vez para obtener los resultados.

Para finalizar una búsqueda, llame a WSALookupServiceEnd.

Notificaciones de resolución

Se puede notificar a un cliente 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

Se puede notificar a un cliente cada vez que haya un cambio en un conjunto de nubes.

La función WSALookupServiceNext devuelve WSA_E_NO_MORE como delimitador establecido. 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ón WSALookupServiceNext devuelve una nube en una estructura WSAQUERYSET . Se devuelve una de las marcas siguientes en el miembro dwOutputFlags .

Value 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.

 

PNRP y WSALookupServiceBegin

PNRP y WSALookupServiceEnd

PNRP y WSAQUERYSET

Códigos de error de NSP de PNRP

WSANSPIoctl

WSALookupServiceBegin

WSALookupServiceEnd

WSAQUERYSET