Función de devolución de llamada LPNSPLOOKUPSERVICENEXT (ws2spi.h)
Se llama a la función NSPLookupServiceNext
El proveedor pasará una estructura
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 |
---|---|
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. |
|
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. |
|
El identificador de búsqueda especificado no es válido. | |
No hay suficiente memoria disponible para realizar esta operación. | |
El búfer de lpqsResults de |
|
Uno o varios parámetros no son válidos o faltan para este proveedor. | |
No se admite la operación. Este error se devuelve si el proveedor de espacios de nombres no implementa esta función. | |
El nombre se encontró en la base de datos, pero no se encontraron datos que coincidan con las restricciones especificadas. | |
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 enumeranNombre 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 |