PNRP y WSALookupServiceNext
PNRP usa la función WSALookupServiceNext para buscar coincidencias con las consultas especificadas en una llamada anterior a WSALookupServiceBegin. Los resultados de la función WSALookupServiceNext se determinan mediante la configuración de la estructura WSAQUERYSET pasada en la llamada de función WSALookupServiceBegin inicial. Esta función se usa para realizar las dos funciones siguientes:
- Resolución de un nombre del mismo nivel en una lista de direcciones
- Enumeración de nubes de red
Mediante WSANSPIoctl, el servicio de búsqueda se puede usar de forma asincrónica. Para obtener información sobre cómo usar las funciones del servicio de búsqueda de forma asincrónica, consulte PNRP y WSANSPIoctl.
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.
Resolución de un nombre del mismo nivel en una lista de direcciones
Al resolver un nombre del mismo nivel en una lista de direcciones, la estructura LPWSAQUERYSET devuelta en el parámetro lpqsResults contiene los valores siguientes:
-
dwSize
-
Devuelve el tamaño de la estructura.
-
lpszServiceInstanceName
-
Devuelve un nombre del mismo nivel, si se especifican LUP_RETURN_NAME, LUP_RETURN_ALL o NULL .
-
lpServiceClassID
-
Devuelve SVCID_PNRPNAME.
-
lpVersion
-
Devuelve NULL.
-
lpszComment
-
Devuelve un comentario, si se especifican LUP_RETURN_COMMENT, LUP_RETURN_ALL o NULL .
-
dwNameSpace
-
Devuelve NS_PNRPNAME.
-
lpNSProviderID
-
Devuelve NS_PROVIDER_PNRPNAME.
-
lpszContext
-
Devuelve el nombre de la nube si se especifican LUP_RETURN_NAME, LUP_RETURN_ALL o NULL .
-
dwNumberOfProtocols
-
Devuelve cero (0).
-
lpszQueryString
-
Devuelve NULL.
-
dwNumberOfCsAddrs
-
Devuelve el número de entradas de la matriz CSADDR_INFO si se especifican LUP_RETURN_ADDR, LUP_RETURN_ALL o NULL . Este valor y la información de lpcsaBuffer son los bits clave de información devuelta en esta estructura.
-
lpcsaBuffer
-
Devuelve un puntero a una matriz de estructuras de CSADDR_INFO si se especifican LUP_RETURN_ADDR, LUP_RETURN_ALL o NULL . Este búfer y el valor de dwNumberOfCsAddrs son los bits de información clave devueltos en esta estructura.
-
dwOutputFlags
-
Devuelve cero (0).
-
lpBlob
-
Devuelve NULL.
Enumeración de nubes de red
Al enumerar nubes, la estructura LPWSAQUERYSET devuelta en el parámetro lpqsResults contiene los valores siguientes:
-
dwSize
-
Devuelve el tamaño de la estructura.
-
lpszServiceInstanceName
-
Devuelve un nombre de nube, si se especifican LUP_RETURN_NAME, LUP_RETURN_ALL o NULL .
-
lpServiceClassID
-
Devuelve SVCID_PNRPCLOUD.
-
lpVersion
-
Devuelve NULL.
-
lpszComment
-
Devuelve NULL.
-
dwNameSpace
-
Devuelve NS_PNRPCLOUD.
-
lpNSProviderID
-
Devuelve NS_PROVIDER_PNRPCLOUD.
-
lpszContext
-
Devuelve NULL.
-
dwNumberOfProtocols
-
Devuelve cero (0).
-
lpszQueryString
-
Devuelve NULL.
-
dwNumberOfCsAddrs
-
Devuelve cero (0).
-
lpcsaBuffer
-
Devuelve NULL.
-
dwOutputFlags
-
Devuelve cero (0).
-
lpBlob
-
Devuelve un puntero a una estructura BLOB que apunta a una estructura PNRPCLOUDINFO , si se especifican LUP_RETURN_BLOB, LUP_RETURN_ALL o NULL .
Estructura PNRPCLOUDINFO
Al enumerar nombres en la nube, se devuelven los valores siguientes en la estructura PNRPCLOUDINFO :
-
dwSize
-
Tamaño de esta estructura.
-
Nube
-
Valor real de la nube.
-
enCloudState
-
Estado actual de una nube. PNRP_CLOUD_STATE especifica los valores válidos.
-
enCloudFlags
-
Indica que un nombre de nube es válido en una red o solo es válido en un equipo actual. PNRP_CLOUD_FLAGS especifica los valores válidos. Algunos nombres de nube son válidos en cualquier equipo de la misma red. Otros nombres de nube solo son válidos en un equipo actual y pueden ser válidos solo durante un período de tiempo.
- Si enCloudFlags se establece en PNRP_CLOUD_NAME_LOCAL, el nombre solo es válido localmente.
- Si no se establece enCloudFlags , el nombre de la nube se puede transferir a otros equipos.
Temas relacionados