Función WSAGetServiceClassInfoA (winsock2.h)
La función WSAGetServiceClassInfo recupera la información de clase (esquema) que pertenece a una clase de servicio especificada de un proveedor de espacios de nombres especificado.
Sintaxis
INT WSAAPI WSAGetServiceClassInfoA(
[in] LPGUID lpProviderId,
[in] LPGUID lpServiceClassId,
[in, out] LPDWORD lpdwBufSize,
[out] LPWSASERVICECLASSINFOA lpServiceClassInfo
);
Parámetros
[in] lpProviderId
Puntero a un GUID que identifica un proveedor de espacio de nombres específico.
[in] lpServiceClassId
Puntero a un GUID que identifica la clase de servicio.
[in, out] lpdwBufSize
En la entrada, el número de bytes contenidos en el búfer al que apunta el parámetro lpServiceClassInfo .
En la salida, si se produce un error en la función y el error es WSAEFAULT, este parámetro especifica el tamaño mínimo, en bytes, del búfer al que apunta lpServiceClassInfo necesario para recuperar el registro.
[out] lpServiceClassInfo
Puntero a una estructura WSASERVICECLASSINFO que contiene la información de clase de servicio del proveedor de espacio de nombres indicado para la clase de servicio especificada.
Valor devuelto
El valor devuelto es cero si WSAGetServiceClassInfo se realizó correctamente. De lo contrario, se devuelve el valor SOCKET_ERROR y se puede recuperar un número de error específico llamando a WSAGetLastError.
Código de error | Significado |
---|---|
No había memoria suficiente para realizar la operación. | |
La rutina de llamada no tiene privilegios suficientes para acceder a la información. | |
El búfer al que apunta el parámetro lpServiceClassInfo es demasiado pequeño para contener un WSASERVICECLASSINFOW. La aplicación debe pasar un búfer más grande. | |
El identificador de clase de servicio o el identificador del proveedor del espacio de nombres especificados no son válidos. Este error se devuelve si los parámetros lpProviderId, lpServiceClassId, lpdwBufSize o lpServiceClassInfo son NULL. | |
La operación no se admite para el tipo de objeto al que se hace referencia. Algunos proveedores de espacios de nombres que no admiten la obtención de información de clase de servicio devuelven este error. | |
El nombre solicitado es válido, pero no se ha encontrado ningún dato del tipo solicitado. | |
No se ha inicializado el WS2_32.DLL. La aplicación debe llamar primero a WSAStartup antes de llamar a cualquier función de Windows Sockets. | |
No se encontró la clase especificada. |
Comentarios
La función WSAGetServiceClassInfo recupera información de clase de servicio de un proveedor de espacios de nombres. Es posible que la información de clase de servicio recuperada de un proveedor de espacios de nombres determinado no sea el conjunto completo de información de clase que se especificó cuando se instaló la clase de servicio. Los proveedores de espacios de nombres individuales solo son necesarios para conservar la información de clase de servicio que se aplica a los espacios de nombres que admiten. Consulte la sección Estructuras de datos de clase de servicio para obtener más información.
Nota
El encabezado winsock2.h define WSAGetServiceClassInfo 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
Cliente mínimo compatible | Windows 2000 Professional [aplicaciones de escritorio | Aplicaciones para UWP] |
Servidor mínimo compatible | Windows 2000 Server [aplicaciones de escritorio | Aplicaciones para UWP] |
Plataforma de destino | Windows |
Encabezado | winsock2.h |
Library | Ws2_32.lib |
Archivo DLL | Ws2_32.dll |