PNRP y WSALookupServiceBegin
PNRP usa la función WSALookupServiceBegin para iniciar el proceso que permite a una aplicación hacer lo siguiente:
Los clientes que intentan realizar una de las funciones usan el WSALookupServiceBegin, WSALookupServiceNexty funciones WSALookupServiceEnd.
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.
El proceso para trabajar con nombres del mismo nivel es diferente de trabajar con nubes. Cada proceso se describe por separado en este tema.
Resolución de un nombre
Una aplicación usa WSALookupServiceBegin para obtener la dirección IP, el puerto y el protocolo de un servicio del mismo nivel registrado en otro equipo. La función WSALookupServiceBegin se usa para iniciar el proceso de resolución de nombres y configurar los parámetros y restricciones. Se devuelve un identificador y se debe usar al llamar a WSALookupServiceNext y WSANSPIoctl.
lpqsRestrictions
Al resolver un nombre del mismo nivel, la estructura LPWSAQUERYSET que las referencias de parámetros de lpqsRestrictions deben contener los siguientes valores:
-
dwSize
-
Especifica el tamaño de esta estructura.
-
lpszServiceInstanceName
-
Especifica un nombre del mismo nivel que se va a resolver.
-
lpServiceClassID
-
Debe ser SVCID_PNRPNAME.
-
lpVersion
-
Reservado, debe ser NULL.
-
lpszComment
-
Reservado, debe ser NULL.
-
dwNameSpace
-
Debe ser NS_PNRPNAME o NS_ALL.
-
lpNSProviderID
-
Debe ser NS_PROVIDER_PNRPNAME o NULL.
-
lpszContext
-
Debe ser un nombre de nube, una cadena vacía o NULL. Si este valor es null o una cadena vacía, se usa la nube predeterminada, "Global_". De lo contrario, debe apuntar a un nombre de nube válido.
-
dwNumberOfProtocols
-
Reservado, debe ser cero (0).
-
lpszQueryString
-
Reservado, debe ser NULL.
-
dwNumberOfCsAddrs
-
Reservado, debe ser cero (0).
-
lpcsaBuffer
-
Reservado, debe ser NULL.
-
dwOutputFlags
-
Reservado, debe ser cero (0).
-
lpBlob
-
Debe ser un puntero a una estructura deBLOB deo NULL. Si es null, se usan los valores predeterminados. Si se establece, lpBlob apunta a una estructura de PNRPINFO y se deben establecer parámetros específicos en la estructura de PNRPINFO. Para obtener más información, vea las descripciones siguientes para la estructura PNRPINFO.
PNRPINFO (estructura)
Si se establece el miembro de lpBlob de la estructura de LPWSAQUERYSET, se deben establecer los siguientes miembros de la estructuraPNRPINFO de:
-
dwSize
-
Especifica el tamaño de esta estructura.
-
lpwszIdentity
-
Reservado, debe ser NULL.
-
nMaxResolve
-
Especifica el número solicitado de resoluciones.
-
dwTimeout
-
Especifica el período de tiempo de espera solicitado para esperar las respuestas. El valor predeterminado es 30 segundos. El máximo es de 600 segundos (10 minutos).
-
dwLifetime
-
Reservado, debe ser cero (0).
-
enResolveCriteria
-
Debe ser uno de los valores permitidos. El valor predeterminado es PNRP_RESOLVE_CRITERIA_NON_CURRENT_PROCESS_PEER_NAME. Los valores válidos se especifican mediante PNRP_RESOLVE_CRITERIA.
-
dwFlags
-
Debe ser cero (0) o PNRPINFO_HINT. El valor predeterminado es cero (0).
-
saHint
-
Especifica la dirección IP de la sugerencia. La sugerencia se usa al intentar encontrar el nombre del mismo nivel más cercano. El formato de la sugerencia es una dirección IPv6. Si no se especifica saHint al buscar el nombre del mismo nivel más cercano, se usa en su lugar una dirección IPv6 del equipo local. Este miembro se omite si no se establece dwFlags.
-
enNameState
-
Reservado, debe ser cero (0).
dwControlFlags
PNRP admite las siguientes marcas LUP_RETURN_*:
Valor | Descripción |
---|---|
LUP_RETURN_NAME | Devuelve un nombre y un contexto. |
LUP_RETURN_COMMENT | Devuelve un comentario asociado a un nombre. |
LUP_RETURN_ADDR | Devuelve una dirección asociada a un nombre. |
Enumeración de nubes de red
lpqsRestrictions
Al enumerar nubes, la estructura de LPWSAQUERYSET que las referencias de parámetro de lpqsRestrictions deben contener los siguientes valores:
-
dwSize
-
Especifica el tamaño de esta estructura.
-
lpszServiceInstanceName
-
Debe ser null.
-
lpServiceClassID
-
Debe ser SVCID_PNRPCLOUD.
-
lpVersion
-
Reservado, debe ser NULL.
-
lpszComment
-
Reservado, debe ser NULL.
-
dwNameSpace
-
Debe ser NS_PNRPCLOUD.
-
lpNSProviderID
-
Debe ser NS_PROVIDER_PNRPCLOUD o null.
-
lpszContext
-
Reservado, debe ser NULL.
-
dwNumberOfProtocols
-
Reservado, debe ser cero (0).
-
lpszQueryString
-
Reservado, debe ser NULL.
-
dwNumberOfCsAddrs
-
Reservado, debe ser cero (0).
-
lpcsaBuffer
-
Reservado, debe ser NULL.
-
dwOutputFlags
-
Reservado, debe ser cero (0).
-
lpBlob
-
Puntero a una estructurablob deque apunta a una estructura dePNRPCLOUDINFO de. Si lpBlob es null, se enumeran todas las nubes.
PNRPCLOUDINFO (estructura)
Al enumerar nubes, se deben establecer los siguientes miembros de la estructura de PNRPCLOUDINFO:
-
dwSize
-
Especifica el tamaño de esta estructura.
-
Cloud
-
Apunta a una estructura que especifica criterios que puede usar para filtrar los resultados de la búsqueda. El miembro Cloud.Scope puede ser PNRP_SCOPE_ANY, PNRP_GLOBAL_SCOPE, PNRP_SITE_LOCAL_SCOPEo PNRP_LINK_LOCAL_SCOPE. Si se especifica PNRP_SCOPE_ANY, se devuelven todas las nubes. De lo contrario, solo se devuelven las nubes que coinciden con el Cloud.Scope.
-
enCloudState
-
Reservado, debe ser cero (0).
dwControlFlags
PNRP admite las siguientes marcas LUP_RETURN_*:
Valor | Descripción |
---|---|
LUP_RETURN_NAME | Devuelve un nombre y un contexto. |
LUP_RETURN_BLOB | Devuelve el blob asociado a esta nube. |
Temas relacionados