Функция GetServiceA (nspapi.h)
Функция GetService извлекает сведения о сетевой службе в контексте набора пространств имен по умолчанию или указанного пространства имен. Сетевая служба указывается по ее типу и имени. Сведения о службе получаются в виде набора NS_SERVICE_INFO структур данных.
Синтаксис
INT GetServiceA(
[in] DWORD dwNameSpace,
[in] LPGUID lpGuid,
[in] LPSTR lpServiceName,
[in] DWORD dwProperties,
[out] LPVOID lpBuffer,
[in, out] LPDWORD lpdwBufferSize,
[in, optional] LPSERVICE_ASYNC_INFO lpServiceAsyncInfo
);
Параметры
[in] dwNameSpace
Пространство имен или набор пространств имен по умолчанию, которые операционная система должна запрашивать для получения сведений об указанной сетевой службе.
Используйте одну из следующих констант, чтобы указать пространство имен.
Большинство вызовов GetService должны использовать специальное значение NS_DEFAULT. Это позволяет клиенту обойтись без сведений о доступных пространствах имен в интернете. Системный администратор определяет доступ к пространству имен. Пространства имен могут приходить и уходить без необходимости знать об изменениях.
[in] lpGuid
Указатель на глобальный уникальный идентификатор (GUID), указывающий тип сетевой службы. Файл заголовка Svcguid.h содержит типы служб GUID из многих известных служб в пространствах имен DNS и SAP.
Файл заголовка Svcguid.h не включается автоматически в файл заголовка Winsock2.h .
[in] lpServiceName
Указатель на строку, завершающуюся с нуля, которая уникально представляет имя службы. Например, "MY SNA SERVER".
[in] dwProperties
Набор битовых флагов, указывающих сведения о службе, извлекаемые функцией. Каждая из этих констант битового флага, кроме PROP_ALL, соответствует определенному члену структуры данных SERVICE_INFO . Если флаг установлен, функция помещает сведения в соответствующий член структур данных, хранящихся в *lpBuffer. Определены следующие битовые флаги.
[out] lpBuffer
Указатель на буфер для получения массива NS_SERVICE_INFO структур и связанных сведений о службе. Каждая структура NS_SERVICE_INFO содержит сведения о службе в контексте определенного пространства имен. Обратите внимание, что если dwNameSpace NS_DEFAULT, функция сохраняет несколько структур в буфере; В противном случае сохраняется только одна структура.
Каждая структура NS_SERVICE_INFO содержит SERVICE_INFO структуру. Члены этих SERVICE_INFO структур будут содержать допустимые данные на основе битовых флагов, заданных в параметре dwProperties . Если соответствующий битовый флаг элемента не задан в dwProperties, значение элемента не определено.
Функция сохраняет NS_SERVICE_INFO структуры в последовательном массиве, начиная с начала буфера. Указатели в структурах SERVICE_INFO указывают на сведения, хранящиеся в буфере между концом NS_SERVICE_INFO структур и концом буфера.
[in, out] lpdwBufferSize
Указатель на переменную, которая на входных данных содержит размер буфера, на который указывает lpBuffer, в байтах. В выходных данных эта переменная содержит количество байтов, необходимых для хранения запрошенной информации. Если это выходное значение больше входного значения, функция завершилась сбоем из-за недостаточного размера буфера.
[in, optional] lpServiceAsyncInfo
Зарезервировано для последующего использования. Необходимо задать значение NULL.
Возвращаемое значение
Если функция выполнена успешно, возвращаемое значение — это количество NS_SERVICE_INFO структур, хранящихся в *lpBuffer. Ноль означает, что структуры не были сохранены.
Если функция завершается сбоем, возвращается значение SOCKET_ERROR ( – 1). Чтобы получить расширенные сведения об ошибке, вызовите Метод GetLastError, который возвращает одно из следующих расширенных значений ошибки.
Код ошибки | Значение |
---|---|
|
Буфер, на который указывает lpBuffer, слишком мал для получения всей запрошенной информации. Вызовите функцию с буфером по крайней мере равным значению, возвращаемого в *lpdwBufferSize. |
|
Указанная служба не найдена или указанное пространство имен не используется. В этом случае возвращаемое значение функции равно нулю. |
Комментарии
Примечание
Заголовок nspapi.h определяет GetService как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОД. Использование псевдонима, не зависящий от кодирования, с кодом, который не является нейтральным для кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или времени выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Целевая платформа | Windows |
Header | nspapi.h |
Библиотека | Mswsock.lib |
DLL | Mswsock.dll |
См. также раздел
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по