PNRP e WSANSPIoctl
O PNRP usa a função WSANSPIoctl para receber notificações sobre as alterações a seguir:
- Uma lista de nuvem de rede
- Disponibilidade dos resultados de uma solicitação de resolução de nomes
A primeira chamada para WSALookupServiceBegin define o tipo de informação sobre a qual um cliente é notificado. Um cliente pode ser notificado com uma mensagem do Windows, uma rotina de conclusão, um identificador para um objeto WSAEVENT ou uma porta. Para obter mais informações sobre opções e definir o parâmetro lpCompletion , consulte WSANSPIoctl.
Para continuar recebendo notificações após uma chamada para WSALookupServiceNext, um aplicativo deve chamar WSANSPIoctl novamente.
A função WSALookupServiceNext bloqueia mesmo se WSANSPIoctl for chamado. Antes de chamar WSALookupServiceNext, um aplicativo deve aguardar até receber uma notificação se o bloqueio for um problema.
Ao chamar essa função, os parâmetros devem ter os seguintes valores:
-
Proch
-
Especifica o identificador que WSALookupServiceBegin retorna.
-
dwControlCode
-
Deve ser SIO_NSP_NOTIFY_CHANGE.
-
Lpvinbuffer
-
Deve ser NULL.
-
Cbinbuffer
-
Deve ser zero (0).
-
Lpvoutbuffer
-
Deve ser NULL.
-
cbOutBuffer
-
Deve ser zero (0).
-
Lpcbbytesreturned
-
Deve ser NULL.
-
lpCompletion
-
Especifica NULL ou um ponteiro para uma estrutura WSACOMPLETION .
Depois que uma notificação for recebida, chame WSALookupServiceNext uma vez para obter os resultados.
Para encerrar uma pesquisa, chame WSALookupServiceEnd.
Notificações de resolução
Um cliente pode ser notificado sempre que uma entrada de resolução de nomes é adicionada. Em seguida, o cliente chama WSALookupServiceNext para obter os dados de resolução.
Se o cliente não usar essa técnica, uma chamada para WSALookupServiceNext poderá ser bloqueada até que o tempo limite especificado ocorra.
Notificações da Lista de Nuvem
Um cliente pode ser notificado sempre que houver uma alteração em um conjunto de nuvens.
A função WSALookupServiceNext retorna WSA_E_NO_MORE como um delimitador de conjunto. O aplicativo cliente deve enumerar nuvens existentes até que essa mensagem seja retornada e, em seguida, usar um esquema de notificação para recuperar alterações subsequentes conforme elas ocorrem. Um aplicativo cliente também pode chamar WSALookupServiceNext, mas a chamada é bloqueada até que ocorra uma alteração.
A função WSALookupServiceNext retorna uma nuvem em uma estrutura WSAQUERYSET . Um dos sinalizadores a seguir é retornado no membro dwOutputFlags .
Valor | Descrição |
---|---|
RESULT_IS_ADDED | A nuvem retornada é adicionada. |
RESULT_IS_CHANGED | A nuvem retornada é alterada. |
RESULT_IS_DELETED | A nuvem retornada é excluída e não é válida. |
Tópicos relacionados
-
Wsalookupservicebegin
-
Wsalookupserviceend
-
WSAQUERYSET