Функция 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.

Код ошибки Значение
WSA_NOT_ENOUGH_MEMORY
Недостаточно памяти для выполнения операции.
WSAEACCES
Вызывающая подпрограмма не имеет достаточных привилегий для доступа к информации.
WSAEFAULT
Буфер, на который указывает параметр lpServiceClassInfo , слишком мал, чтобы содержать WSASERVICECLASSINFOW. Приложение должно передать буфер большего размера.
WSAEINVAL
Указанный идентификатор класса службы или идентификатор поставщика пространства имен недопустим. Эта ошибка возвращается, если параметры lpProviderId, lpServiceClassId, lpdwBufSize или lpServiceClassInfo имеют значение NULL.
WSAEOPNOTSUPP
Операция не поддерживается для типа объекта, на который ссылается ссылка. Эта ошибка возвращается некоторыми поставщиками пространств имен, которые не поддерживают получение сведений о классе службы.
WSANO_DATA
Запрошенное имя является допустимым, но данные запрошенного типа не найдены.
WSANOTINITIALISED
WS2_32.DLL не инициализирована. Приложение должно сначала вызвать WSAStartup , прежде чем вызывать какие-либо функции windows Sockets.
WSATYPE_NOT_FOUND
Указанный класс не найден.

Комментарии

Функция WSAGetServiceClassInfo извлекает сведения о классе службы из поставщика пространства имен. Сведения о классе службы, полученные от определенного поставщика пространства имен, могут не быть полным набором сведений о классе, который был указан при установке класса службы. Отдельные поставщики пространств имен должны хранить только сведения о классе службы, применимые к пространствам имен, которые они поддерживают. Дополнительные сведения см. в разделе Структуры данных класса службы .

Примечание

Заголовок winsock2.h определяет WSAGetServiceClassInfo как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Использование псевдонима, не зависящий от кодирования, с кодом, который не является нейтральным для кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или времени выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.

Требования

   
Минимальная версия клиента Windows 2000 Профессиональная [классические приложения | Приложения UWP]
Минимальная версия сервера Windows 2000 Server [классические приложения | Приложения UWP]
Целевая платформа Windows
Header winsock2.h
Библиотека Ws2_32.lib
DLL Ws2_32.dll

См. также раздел

Структуры данных класса службы

WSAInstallServiceClass

WSASERVICECLASSINFOW

WSAStartup

Функции Winsock

Справочник по Winsock