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.
Tópicos relacionados