Поделиться через


Функция 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или параметры lpServiceClassInfoNULL.
WSAEOPNOTSUPP
Операция не поддерживается для типа объекта, на который ссылается ссылка. Эта ошибка возвращается некоторыми поставщиками пространств имен, которые не поддерживают получение сведений о классе службы.
WSANO_DATA
Запрошенное имя допустимо, но данные запрошенного типа не найдены.
WSANOTINITIALISED
WS2_32.DLL не инициализирована. Приложение должно сначала вызвать WSAStartup перед вызовом функций сокетов Windows.
WSATYPE_NOT_FOUND
Указанный класс не найден.

Замечания

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

Заметка

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

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows 2000 Профессиональный [классические приложения | Приложения UWP]
минимальный поддерживаемый сервер Windows 2000 Server [классические приложения | Приложения UWP]
целевая платформа Виндоус
заголовка winsock2.h
библиотеки Ws2_32.lib
DLL Ws2_32.dll

См. также

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

WSAInstallServiceClass

WSASERVICECLASSINFOW

WSAStartup

Функции Winsock

Справочник Winsock