Función GetServiceA (nspapi.h)
La función GetService recupera información sobre un servicio de red en el contexto de un conjunto de espacios de nombres predeterminados o un espacio de nombres especificado. El servicio de red se especifica por su tipo y nombre. La información sobre el servicio se obtiene como un conjunto de estructuras de datos de NS_SERVICE_INFO .
Sintaxis
INT GetServiceA(
[in] DWORD dwNameSpace,
[in] LPGUID lpGuid,
[in] LPSTR lpServiceName,
[in] DWORD dwProperties,
[out] LPVOID lpBuffer,
[in, out] LPDWORD lpdwBufferSize,
[in, optional] LPSERVICE_ASYNC_INFO lpServiceAsyncInfo
);
Parámetros
[in] dwNameSpace
Espacio de nombres, o un conjunto de espacios de nombres predeterminados, que el sistema operativo debe consultar para obtener información sobre el servicio de red especificado.
Use una de las siguientes constantes para especificar un espacio de nombres.
La mayoría de las llamadas a GetService deben usar el valor especial NS_DEFAULT. Esto permite a un cliente obtener sin conocer los espacios de nombres disponibles en un trabajo de Internet. El administrador del sistema determina el acceso al espacio de nombres. Los espacios de nombres pueden venir y pasar sin que el cliente tenga que tener en cuenta los cambios.
[in] lpGuid
Puntero a un identificador único global (GUID) que especifica el tipo del servicio de red. El archivo de encabezado Svcguid.h incluye tipos de servicio GUID de muchos servicios conocidos dentro de los espacios de nombres DNS y SAP.
El archivo de encabezado Svcguid.h no se incluye automáticamente en el archivo de encabezado Winsock2.h .
[in] lpServiceName
Puntero a una cadena terminada en cero que representa de forma única el nombre del servicio. Por ejemplo, "MY SNA SERVER".
[in] dwProperties
Conjunto de marcas de bits que especifican la información del servicio que recupera la función. Cada una de estas constantes de marca de bits, distintas de PROP_ALL, corresponde a un miembro determinado de la estructura de datos de SERVICE_INFO . Si se establece la marca, la función coloca información en el miembro correspondiente de las estructuras de datos almacenadas en *lpBuffer. Se definen las marcas de bits siguientes.
[out] lpBuffer
Puntero a un búfer para recibir una matriz de estructuras de NS_SERVICE_INFO e información de servicio asociada. Cada estructura de NS_SERVICE_INFO contiene información de servicio en el contexto de un espacio de nombres determinado. Tenga en cuenta que si dwNameSpace es NS_DEFAULT, la función almacena más de una estructura en el búfer; de lo contrario, solo se almacena una estructura.
Cada estructura de NS_SERVICE_INFO contiene una estructura de SERVICE_INFO . Los miembros de estas estructuras de SERVICE_INFO contendrán datos válidos basados en las marcas de bits que se establecen en el parámetro dwProperties . Si la marca de bits correspondiente de un miembro no se establece en dwProperties, el valor del miembro no está definido.
La función almacena las estructuras de NS_SERVICE_INFO en una matriz consecutiva, comenzando al principio del búfer. Los punteros de las estructuras SERVICE_INFO contenidas apuntan a información almacenada en el búfer entre el final de las estructuras de NS_SERVICE_INFO y el final del búfer.
[in, out] lpdwBufferSize
Puntero a una variable que, en la entrada, contiene el tamaño, en bytes, del búfer al que apunta lpBuffer. En la salida, esta variable contiene el número de bytes necesarios para almacenar la información solicitada. Si este valor de salida es mayor que el valor de entrada, se produjo un error en la función debido a un tamaño de búfer insuficiente.
[in, optional] lpServiceAsyncInfo
Reservado para uso futuro. Debe establecerse en NULL.
Valor devuelto
Si la función se ejecuta correctamente, el valor devuelto es el número de estructuras de NS_SERVICE_INFO almacenadas en *lpBuffer. Cero indica que no se almacenaron estructuras.
Si se produce un error en la función, el valor devuelto es SOCKET_ERROR ( – 1). Para obtener información de error extendida, llame a GetLastError, que devuelve uno de los siguientes valores de error extendidos.
Código de error | Significado |
---|---|
|
El búfer al que apunta lpBuffer es demasiado pequeño para recibir toda la información solicitada. Llame a la función con un búfer al menos tan grande como el valor devuelto en *lpdwBufferSize. |
|
No se encontró el servicio especificado o el espacio de nombres especificado no está en uso. El valor devuelto de la función es cero en este caso. |
Comentarios
Nota
El encabezado nspapi.h define GetService como alias que selecciona automáticamente la versión ANSI o Unicode de esta función en función de la definición de la constante de preprocesador UNICODE. La combinación del uso del alias neutro de codificación con código que no es neutral de codificación puede provocar discrepancias que dan lugar a errores de compilación o en tiempo de ejecución. Para obtener más información, vea Convenciones para prototipos de función.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows 2000 Professional [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows 2000 Server [solo aplicaciones de escritorio] |
Plataforma de destino | Windows |
Encabezado | nspapi.h |
Library | Mswsock.lib |
Archivo DLL | Mswsock.dll |
Consulte también
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de