LPNSPV2LOOKUPSERVICENEXTEX función de devolución de llamada (ws2spi.h)
Se llama a la función NSPv2LookupServiceNextEx
Sintaxis
LPNSPV2LOOKUPSERVICENEXTEX Lpnspv2lookupservicenextex;
void Lpnspv2lookupservicenextex(
[in] HANDLE hAsyncCall,
[in] HANDLE hLookup,
[in] DWORD dwControlFlags,
[in, out] LPDWORD lpdwBufferLength,
[out] LPWSAQUERYSET2W lpqsResults
)
{...}
Parámetros
[in] hAsyncCall
Identificador devuelto de la llamada anterior a NSPv2LookupServiceBegin usado para llamadas asincrónicas.
[in] hLookup
Identificador devuelto de la llamada anterior a NSPv2LookupServiceBegin.
[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 de WSAQUERYSET2.
Valor devuelto
La función debe devolver NO_ERROR (cero) si la rutina se realiza correctamente. Debe devolver SOCKET_ERROR (es decir, 1) si se produce un error en la rutina y debe establecer el código de error adecuado mediante WSASetLastError.
Observaciones
La función NSPv2LookupServiceNextEx se usa como parte de la arquitectura del proveedor de servicios de espacio de nombres versión 2 (NSPv2) disponible en Windows Vista y versiones posteriores.
En Windows Vista y Windows Server 2008, la función NSPv2LookupServiceNextEx solo se puede usar para las operaciones en proveedores de espacios de nombres de NS_EMAIL.
El proveedor pasará una estructura de WSAQUERYSET2 en el búfer de lpqsResults. El cliente debe llamar a la función NSPv2LookupServiceNextEx hasta que devuelva WSA_E_NOMORE, lo que indica que se han devuelto todas las estructuras WSAQUERYSET2.
El
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 NSPv2LookupServiceNextEx, tienen su efecto definido independientemente de la configuración de las mismas marcas en NSPv2LookupServiceBegin.
Por ejemplo, si se especifica LUP_RETURN_VERSION en NSPv2LookupServiceBegin, el proveedor de servicios recupera registros, incluida la versión. Si no se especifica LUP_RETURN_VERSION en NSPv2LookupServiceNextEx, 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 NSPv2LookupServiceBegin, pero se especifica en NSPv2LookupServiceNextEx, la información devuelta no incluye los datos privados. No se genera ningún error.
La función NSPv2LookupServiceNextEx normalmente se llama al menos dos veces. La primera vez que se obtiene el tamaño del búfer necesario para recibir el WSAQUERYSET2 al que apunta el parámetro lpqsResults y la segunda vez para obtener el conjunto de resultados de la consulta real. En la primera llamada, el proveedor NSPv2 debe devolver el tamaño necesario para los resultados de WSAQUERYSET2.
La estructura WSAQUERYSET2 a la que apunta el lpqsResults parámetro que se devuelve solo es útil en el mismo contexto de proceso, ya que varios de los miembros de la estructura WSAQUERYSET2 contienen punteros a los datos reales devueltos. Si el resultado de la consulta debe pasarse a otro proceso (mediante RPC, por ejemplo), será necesario serializar y serializar los datos devueltos en la estructura de WSAQUERYSET2 apuntado por el parámetro lpqsResults, incluidos los datos a los que apuntan los miembros de la estructura de WSAQUERYSET2. Los datos deben serializarse en un formulario que se pueda pasar a través de los límites del proceso. Simplemente pasar una copia de la estructura de WSAQUERYSET2 es insuficiente, ya que solo se pasarán punteros a datos y los datos reales no estarán disponibles para otros procesos.
resultados de la consulta de
En la tabla siguiente se enumeran WSAQUERYSET2 y se describe cómo se representan los resultados de la consulta en la estructura **WSAQUERYSET2**. Para obtener más información, consulte Query-Related Estructuras de datos.WSAQUERYSET2 nombre de miembro | Interpretación de resultados |
---|---|
**dwSize** | Tamaño, en bytes, de WSAQUERYSET2 estructura. Se usa como mecanismo de control de versiones. |
**lpszServiceInstanceName** | Cadena que contiene el nombre del servicio. |
**lpVersion** | Hace referencia al número de versión de la instancia de servicio determinada. |
**lpszComment** | Cadena de comentario proporcionada por la instancia de servicio. Este miembro es opcional, en función de los requisitos del proveedor de servicios NSPv2. |
**dwNameSpace** | Identificador de espacio de nombres en el que se encontró el nombre o la instancia de servicio. |
**lpNSProviderId** | Proveedor de espacio de nombres específico que proporcionó este resultado de la consulta. |
**lpszContext** | Punto de contexto de un espacio de nombres jerárquico en el que se encuentra el servicio. |
**dwNumberOfProtocols** | Este miembro no está definido para los resultados. |
**lpafpProtocols** | Este miembro no está definido para los resultados. Toda la información de protocolo necesaria está 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** | 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. |
**dwOutputFlags** | La marca **RESULT_IS_ALIAS** indica que se trata de un resultado de alias. |
**lpBlob** | Puntero a una entidad específica del proveedor. Este miembro es opcional, en función de los requisitos del proveedor de servicios NSPv2. |
Requisitos
Requisito | Valor |
---|---|
cliente mínimo admitido | Windows Vista [solo aplicaciones de escritorio] |
servidor mínimo admitido | Windows Server 2008 [solo aplicaciones de escritorio] |
de la plataforma de destino de |
Windows |
encabezado de |
ws2spi.h |