Compartir a través de


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.

 

PNRP y BLOB

PNRP y WSALookupServiceEnd

PNRP y WSALookupServiceNext

PNRP y WSANSPIoctl

PNRP y WSAQUERYSET

PNRPCLOUDINFO

PNRPINFO

códigos de error de NSP de PNRP