Функция WSAGetServiceClassInfoA (winsock2.h)
Функция WSAGetServiceClassInfo извлекает сведения о классе (схему), относящиеся к указанному классу службы, из указанного поставщика пространства имен.
Синтаксис
INT WSAAPI WSAGetServiceClassInfoA(
[in] LPGUID lpProviderId,
[in] LPGUID lpServiceClassId,
[in, out] LPDWORD lpdwBufSize,
[out] LPWSASERVICECLASSINFOA lpServiceClassInfo
);
Параметры
[in] lpProviderId
Указатель на GUID, который идентифицирует конкретный поставщик пространства имен.
[in] lpServiceClassId
Указатель на GUID, определяющий класс службы.
[in, out] lpdwBufSize
На входных данных — количество байтов, содержащихся в буфере, на который указывает параметр lpServiceClassInfo .
Если в выходных данных функция завершается сбоем и возникает ошибка WSAEFAULT, этот параметр указывает минимальный размер буфера, указывающего на lpServiceClassInfo , необходимого для получения записи, в байтах.
[out] lpServiceClassInfo
Указатель на структуру WSASERVICECLASSINFO , содержащую сведения о классе службы из указанного поставщика пространства имен для указанного класса службы.
Возвращаемое значение
Возвращаемое значение равно нулю, если WSAGetServiceClassInfo выполнен успешно. В противном случае возвращается значение SOCKET_ERROR, а конкретный номер ошибки можно получить, вызвав WSAGetLastError.
Код ошибки | Значение |
---|---|
Недостаточно памяти для выполнения операции. | |
Вызывающая подпрограмма не имеет достаточных привилегий для доступа к информации. | |
Буфер, на который указывает параметр lpServiceClassInfo , слишком мал, чтобы содержать WSASERVICECLASSINFOW. Приложение должно передать буфер большего размера. | |
Указанный идентификатор класса службы или идентификатор поставщика пространства имен недопустим. Эта ошибка возвращается, если параметры lpProviderId, lpServiceClassId, lpdwBufSize или lpServiceClassInfo имеют значение NULL. | |
Операция не поддерживается для типа объекта, на который ссылается ссылка. Эта ошибка возвращается некоторыми поставщиками пространств имен, которые не поддерживают получение сведений о классе службы. | |
Запрошенное имя является допустимым, но данные запрошенного типа не найдены. | |
WS2_32.DLL не инициализирована. Приложение должно сначала вызвать WSAStartup , прежде чем вызывать какие-либо функции windows Sockets. | |
Указанный класс не найден. |
Комментарии
Функция WSAGetServiceClassInfo извлекает сведения о классе службы из поставщика пространства имен. Сведения о классе службы, полученные от определенного поставщика пространства имен, могут не быть полным набором сведений о классе, который был указан при установке класса службы. Отдельные поставщики пространств имен должны хранить только сведения о классе службы, применимые к пространствам имен, которые они поддерживают. Дополнительные сведения см. в разделе Структуры данных класса службы .
Примечание
Заголовок winsock2.h определяет WSAGetServiceClassInfo как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Использование псевдонима, не зависящий от кодирования, с кодом, который не является нейтральным для кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или времени выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.
Требования
Минимальная версия клиента | Windows 2000 Профессиональная [классические приложения | Приложения UWP] |
Минимальная версия сервера | Windows 2000 Server [классические приложения | Приложения UWP] |
Целевая платформа | Windows |
Header | winsock2.h |
Библиотека | Ws2_32.lib |
DLL | Ws2_32.dll |