Compartilhar via


PNRP e WSALookupServiceNext

O PNRP usa a função WSALookupServiceNext para corresponder às consultas especificadas em uma chamada anterior para WSALookupServiceBegin. Os resultados da função WSALookupServiceNext são determinados pelas configurações na estrutura WSAQUERYSET passadas na chamada inicial da função WSALookupServiceBegin . Essa função é usada para executar as duas funções a seguir:

  • Resolvendo um nome de par para uma lista de endereços
  • Enumerando nuvens de rede

Usando WSANSPIoctl, o serviço de pesquisa pode ser usado de forma assíncrona. Para obter informações sobre como usar as funções de serviço de pesquisa de forma assíncrona, consulte PNRP e WSANSPIoctl.

A função WSALookupServiceNext é bloqueada mesmo se WSANSPIoctl for chamado. Antes de chamar WSALookupServiceNext, um aplicativo deve aguardar até receber uma notificação se o bloqueio for um problema.

Resolvendo um nome de par para uma lista de endereços

Ao resolver um nome de par para uma lista de endereços, a estrutura LPWSAQUERYSET retornada no parâmetro lpqsResults contém os seguintes valores:

Dwsize

Retorna o tamanho da estrutura.

Lpszserviceinstancename

Retorna um nome de par– se LUP_RETURN_NAME, LUP_RETURN_ALL ou NULL forem especificados.

lpServiceClassID

Retorna SVCID_PNRPNAME.

lpVersion

Retorna NULL.

lpszComment

Retorna um comentário se LUP_RETURN_COMMENT, LUP_RETURN_ALL ou NULL forem especificados.

Dwnamespace

Retorna NS_PNRPNAME.

lpNSProviderID

Retorna NS_PROVIDER_PNRPNAME.

lpszContext

Retorna o nome da nuvem se LUP_RETURN_NAME, LUP_RETURN_ALL ou NULL forem especificados.

dwNumberOfProtocols

Retorna zero (0).

lpszQueryString

Retorna NULL.

dwNumberOfCsAddrs

Retorna o número de entradas na matriz CSADDR_INFO se LUP_RETURN_ADDR, LUP_RETURN_ALL ou NULL forem especificados. Esse valor e as informações em lpcsaBuffer são os principais bits de informações retornados nessa estrutura.

Lpcsabuffer

Retorna um ponteiro para uma matriz de estruturas de CSADDR_INFO se LUP_RETURN_ADDR, LUP_RETURN_ALL ou NULL forem especificados. Esse buffer e o valor em dwNumberOfCsAddrs são os principais bits de informações retornados nessa estrutura.

dwOutputFlags

Retorna zero (0).

Lpblob

Retorna NULL.

Enumerando nuvens de rede

Ao enumerar nuvens, a estrutura LPWSAQUERYSET retornada no parâmetro lpqsResults contém os seguintes valores:

Dwsize

Retorna o tamanho da estrutura.

Lpszserviceinstancename

Retorna um nome de nuvem– se LUP_RETURN_NAME, LUP_RETURN_ALL ou NULL forem especificados.

lpServiceClassID

Retorna SVCID_PNRPCLOUD.

lpVersion

Retorna NULL.

lpszComment

Retorna NULL.

Dwnamespace

Retorna NS_PNRPCLOUD.

lpNSProviderID

Retorna NS_PROVIDER_PNRPCLOUD.

lpszContext

Retorna NULL.

dwNumberOfProtocols

Retorna zero (0).

lpszQueryString

Retorna NULL.

dwNumberOfCsAddrs

Retorna zero (0).

Lpcsabuffer

Retorna NULL.

dwOutputFlags

Retorna zero (0).

Lpblob

Retorna um ponteiro para uma estrutura BLOB que aponta para uma estrutura PNRPCLOUDINFO , se LUP_RETURN_BLOB, LUP_RETURN_ALL ou NULL forem especificados.

Estrutura PNRPCLOUDINFO

Ao enumerar nomes de nuvem, os seguintes valores são retornados na estrutura PNRPCLOUDINFO :

Dwsize

O tamanho desta estrutura.

Nuvem

O valor real da nuvem.

enCloudState

O estado atual de uma nuvem. PNRP_CLOUD_STATE especifica os valores válidos.

enCloudFlags

Indica que um nome de nuvem é válido em uma rede ou válido apenas em um computador atual. PNRP_CLOUD_FLAGS especifica os valores válidos. Alguns nomes de nuvem são válidos em qualquer computador na mesma rede. Outros nomes de nuvem são válidos apenas em um computador atual e podem ser válidos apenas por um período de tempo.

  • Se enCloudFlags estiver definido como PNRP_CLOUD_NAME_LOCAL, o nome será válido apenas localmente.
  • Se enCloudFlags não estiver definido, o nome da nuvem poderá ser transferido para outros computadores.

PNRP e BLOB

PNRP e WSALookupServiceEnd

PNRP e WSANSPIoctl

PNRP e WSAQUERYSET

PNRPCLOUDINFO

PNRPINFO

Códigos de erro NSP PNRP

Wsalookupservicebegin