Compartir a través de


Función de devolución de llamada LPNSPLOOKUPSERVICENEXT (ws2spi.h)

Se llama a la función NSPLookupServiceNext después de obtener un identificador de una llamada anterior a NSPLookupServiceBegin para recuperar la información de servicio solicitada.

El proveedor pasará una estructura WSAQUERYSET en el búfer de lpqsResults. El cliente debe llamar a esta función hasta que devuelva WSA_E_NOMORE, lo que indica que se han devuelto todos los WSAQUERYSET.

Sintaxis

LPNSPLOOKUPSERVICENEXT Lpnsplookupservicenext;

INT Lpnsplookupservicenext(
  [in]      HANDLE hLookup,
  [in]      DWORD dwControlFlags,
  [in, out] LPDWORD lpdwBufferLength,
  [out]     LPWSAQUERYSETW lpqsResults
)
{...}

Parámetros

[in] hLookup

Identificador devuelto de la llamada anterior a WSALookupServiceBegin.

[in] dwControlFlags

Marcas usadas para controlar la siguiente operación. Actualmente, solo LUP_FLUSHPREVIOUS se define como un medio para controlar un conjunto de resultados demasiado grande. Si una aplicación no puede proporcionar un búfer suficientemente grande, establecer LUP_FLUSHPREVIOUS indica al proveedor que descarte el último conjunto de resultados, que era demasiado grande y pasar al siguiente conjunto para esta llamada.

[in, out] lpdwBufferLength

El tamaño, en bytes, en la entrada, que se encuentra en el búfer al que apunta lpqsResults. En la salida, si se produce un error en la función y el error es WSAEFAULT, contiene el tamaño mínimo, en bytes para pasar para el lpqsResults recuperar el registro.

[out] lpqsResults

Puntero a un bloque de memoria que contendrá, al devolver, un conjunto de resultados en una estructura WSAQUERYSET.

Valor devuelto

La función debe devolver NO_ERROR (cero) si la rutina se realiza correctamente. Debe devolver SOCKET_ERROR (–1) si se produce un error en la rutina y debe establecer el código de error adecuado mediante WSASetLastError.

Código de error Significado
WSA_E_CANCELLED
Se realizó una llamada a NSPLookupServiceEnd mientras esta llamada seguía procesando. Se ha cancelado la llamada. Los datos del búfer de lpqsResults no están definidos.

En Windows Sockets 2, los códigos de error en conflicto se definen para WSAECANCELLED (10103) y WSA_E_CANCELLED (10111). El código de error WSAECANCELLED se quitará en una versión futura y solo permanecerán WSA_E_CANCELLED. Namespace proveedores deben usar el código de error WSA_E_CANCELLED para mantener la compatibilidad con la gama más amplia posible de aplicaciones.

WSA_E_NO_MORE
No hay más datos disponibles.

En Windows Sockets 2, los códigos de error en conflicto se definen para WSAENOMORE (10102) y WSA_E_NO_MORE (10110). El código de error WSAENOMORE se quitará en una versión futura y solo permanecerá WSA_E_NO_MORE. Namespace proveedores deben usar el código de error WSA_E_NO_MORE para mantener la compatibilidad con la gama más amplia posible de aplicaciones.

WSA_INVALID_HANDLE
El identificador de búsqueda especificado no es válido.
WSA_NOT_ENOUGH_MEMORY
No hay suficiente memoria disponible para realizar esta operación.
WSAEFAULT
El búfer de lpqsResults de era demasiado pequeño para contener un conjunto de WSAQUERYSET .
WSAEINVAL
Uno o varios parámetros no son válidos o faltan para este proveedor.
WSAEOPNOTSUPP
No se admite la operación. Este error se devuelve si el proveedor de espacios de nombres no implementa esta función.
WSANO_DATA
El nombre se encontró en la base de datos, pero no se encontraron datos que coincidan con las restricciones especificadas.
WSASERVICE_NOT_FOUND
El servicio es desconocido. No se encuentra el servicio en el espacio de nombres especificado.

Observaciones

El dwControlFlags especificado en esta función y los especificados en el momento de NSPLookupServiceBegin se controlan como "restricciones" para la combinación. Las restricciones se combinan entre las de NSPLookupServiceBegin y las de NSPLookupServiceNext hora. Por lo tanto, las marcas de NSPLookupServiceNext nunca pueden aumentar la cantidad de datos devueltos más allá de lo que se solicitó en NSPLookupServiceBegin, aunque no es un error especificar más o menos marcas. Las marcas especificadas en un NSPLookupServiceNext solo se aplican a esa llamada.

El dwControlFlagsLUP_FLUSHPREVIOUS y LUP_RES_SERVICE son excepciones a la regla de restricciones combinadas (porque son marcas de comportamiento en lugar de marcas de "restricción"). Si se usa alguna marca en NSPLookupServiceNext, tienen su efecto definido independientemente de la configuración de las mismas marcas en NSPLookupServiceBegin.

Por ejemplo, si se especifica LUP_RETURN_VERSION en NSPLookupServiceBegin, el proveedor de servicios recupera registros, incluida la versión. Si no se especifica LUP_RETURN_VERSION en NSPLookupServiceNext, la información devuelta no incluye la versión, aunque estuviera disponible. No se genera ningún error.

Por ejemplo, si no se especifica LUP_RETURN_BLOB en NSPLookupServiceBegin, pero se especifica en NSPLookupServiceNext, la información devuelta no incluye los datos privados. No se genera ningún error.

resultados de la consulta de

En la tabla siguiente se enumeran WSAQUERYSET y se describe cómo se representan los resultados de la consulta en la estructura WSAQUERYSET . Para obtener más información, consulte Query-Related Estructuras de datos.
Nombre del miembro WSAQUERYSET Interpretación de resultados
**dwSize** Se establecerá en sizeof(WSAQUERYSET). Se usa como mecanismo de control de versiones.
**dwOutputFlags** **RESULT_IS_ALIAS** marca indica que se trata de un resultado de alias.
**lpszServiceInstanceName** Hace referencia a la cadena que contiene el nombre del servicio.
**lpServiceClassId** GUID correspondiente a la clase de servicio.
**lpVersion** Hace referencia al número de versión de la instancia de servicio determinada.
**lpszComment** Opcional. Cadena de comentario proporcionada por la instancia de servicio.
**dwNameSpace** Namespace en el que se encontró la instancia de servicio.
**lpNSProviderId** Identifica el proveedor de espacio de nombres específico que proporcionó este resultado de consulta.
**lpszContext** Especifica el punto de contexto en un espacio de nombres jerárquico en el que se encuentra el servicio.
**dwNumberOfProtocols** Sin definir para los resultados.
**lpafpProtocols** Sin definir para los resultados, toda la información de protocolo necesaria se encuentra en las estructuras de CSADDR_INFO.
**lpszQueryString** Cuando dwControlFlags incluye **LUP_RETURN_QUERY_STRING**, este miembro devuelve el resto no preparado de **lpszServiceInstanceName** especificado en la consulta original. Por ejemplo, en un espacio de nombres que identifica los servicios por nombres jerárquicos que especifican un nombre de host y una ruta de acceso de archivo dentro de ese host, la dirección devuelta podría ser la dirección de host y el resto sin análisis podría ser la ruta de acceso del archivo. Si se analiza completamente **lpszServiceInstanceName** y se usa **LUP_RETURN_QUERY_STRING**, este miembro es null o apunta a una cadena de longitud cero.
**dwNumberOfCsAddrs** Indica el número de elementos de la matriz de estructuras de CSADDR_INFO.
**lpcsaBuffer** Puntero a una matriz de estructuras de CSADDR_INFO, con una dirección de transporte completa contenida en cada elemento.
**lpBlob** Opcional. Puntero a una entidad específica del proveedor.

Requisitos

Requisito Valor
cliente mínimo admitido Windows 2000 Professional [solo aplicaciones de escritorio]
servidor mínimo admitido Windows 2000 Server [solo aplicaciones de escritorio]
de la plataforma de destino de Windows
encabezado de ws2spi.h

Consulte también

CSADDR_INFO

NSPLookupServiceBegin

NSPLookupServiceEnd

NSP_ROUTINE

WSAQUERYSET

WSASetLastError