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


Функция обратного вызова LPNSPGETSERVICECLASSINFO (ws2spi.h)

Функция NSPGetServiceClassInfo извлекает все соответствующие сведения о классе (схеме), относящиеся к поставщику пространства имен. Этот вызов извлекает все сведения, относящиеся к пространству имен, которые являются общими для всех экземпляров службы, включая сведения о подключении для SAP или сведения о портах для SAP или TCP.

Синтаксис

LPNSPGETSERVICECLASSINFO Lpnspgetserviceclassinfo;

INT Lpnspgetserviceclassinfo(
  [in]      LPGUID lpProviderId,
  [in, out] LPDWORD lpdwBufSize,
  [in, out] LPWSASERVICECLASSINFOW lpServiceClassInfo
)
{...}

Параметры

[in] lpProviderId

Указатель на GUID конкретного поставщика пространства имен, из которого должна быть получена схема класса службы.

[in, out] lpdwBufSize

На входных данных — размер (в байтах) буфера, на который указывает параметр lpServiceClassInfo .

Если в выходных данных функция завершается сбоем и возникает ошибка WSAEFAULT, этот параметр указывает минимальный размер буфера в байтах, указывающего на параметр lpServiceClassInfo , необходимый для получения записи.

[in, out] lpServiceClassInfo

Возвращает указатель на структуру WSASERVICECLASSINFOW , содержащую класс службы для сведений о сопоставлении пространства имен. Параметр lpServiceClassId должен быть заполнен, чтобы указать, какая запись WSASERVICECLASSINFOW должна быть возвращена.

Возвращаемое значение

Если ошибка не возникает, функция NSPGetServiceClassInfo возвращает NO_ERROR (ноль). В противном случае возвращается SOCKET_ERROR (–1), а поставщик пространства имен должен задать соответствующий код ошибки с помощью WSASetLastError.

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

Комментарии

W2_32.dll использует эту функцию для реализации функции WSAGetServiceClassNameByClassId , а также для получения сведений о пространстве имен, передаваемых в функции NSPLookupServiceBegin и NSPSetService .

Требования

   
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header ws2spi.h

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

NSPInstallServiceClass

NSPLookupServiceBegin

NSPRemoveServiceClass

NSPSetService

WSAGetServiceClassInfo

WSAGetServiceClassNameByClassId

WSASERVICECLASSINFOW

WSASetLastError