Compartilhar via


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.

 

PNRP e WSALookupServiceBegin

PNRP e WSALookupServiceEnd

PNRP e WSAQUERYSET

Códigos de erro NSP PNRP

WSANSPIoctl

Wsalookupservicebegin

Wsalookupserviceend

WSAQUERYSET