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


Функция SetServiceA (nspapi.h)

Функция setService регистрирует или удаляет из реестра сетевую службу в одном или нескольких пространствах имен. Функция также может добавлять или удалять тип сетевой службы в одном или нескольких пространствах имен.

примечание функция set Service устарела. Функции, описанные в Protocol-Independent разрешении имен, обеспечивают эквивалентную функциональность в сокетах Windows 2. Для удобства разработчиков Сокетов Windows 1.1 справочные материалы приведены ниже.
 

Синтаксис

INT SetServiceA(
  [in]           DWORD                dwNameSpace,
  [in]           DWORD                dwOperation,
  [in]           DWORD                dwFlags,
  [in]           LPSERVICE_INFOA      lpServiceInfo,
  [in, optional] LPSERVICE_ASYNC_INFO lpServiceAsyncInfo,
  [out]          LPDWORD              lpdwStatusFlags
);

Параметры

[in] dwNameSpace

Пространство имен или набор пространств имен по умолчанию, в которых будет работать функция.

Используйте одну из следующих констант, чтобы указать пространство имен.

Ценность Значение
NS_DEFAULT
Набор пространств имен по умолчанию. Функция запрашивает каждое пространство имен в этом наборе. Набор пространств имен по умолчанию обычно включает все пространства имен, установленные в системе. Однако системные администраторы могут исключить определенные пространства имен из набора. NS_DEFAULT — это значение, которое большинство приложений должны использовать для dwNameSpace.
NS_DNS
Система доменных имен, используемая в Интернете для разрешения имени узла.
NS_NDS
Поставщик NetWare 4.
NS_NETBT
Уровень NetBIOS по протоколу TCP/IP. Все системы Windows регистрируют имена компьютеров в NetBIOS. Это пространство имен используется для преобразования имени компьютера в IP-адрес, использующий эту регистрацию.
NS_SAP
Протокол рекламы служб NetWare. При необходимости это может получить доступ к привязке NetWare. NS_SAP — это динамическое пространство имен, позволяющее зарегистрировать службы.
NS_TCPIP_HOSTS
Значение подстановки в файле <systemroot>\system32\drivers\etc\post.
NS_TCPIP_LOCAL
Локальные механизмы разрешения имен TCP/IP, включая сравнения с именем локального узла и значением подстановки в кэше узла с сопоставлениями IP-адресов.

[in] dwOperation

Операция, выполняемая функцией. Используйте одно из следующих значений, чтобы указать операцию:

Ценность Значение
SERVICE_REGISTER
Зарегистрируйте сетевую службу в пространстве имен. Эту операцию можно использовать с флагами SERVICE_FLAG_DEFER и SERVICE_FLAG_HARD битами.
SERVICE_DEREGISTER
Удалите из реестра сетевую службу из пространства имен. Эту операцию можно использовать с флагами SERVICE_FLAG_DEFER и SERVICE_FLAG_HARD битами.
SERVICE_FLUSH
Выполните любую операцию, которая была вызвана с помощью флага SERVICE_FLAG_DEFER бита, установленного на один.
SERVICE_ADD_TYPE
Добавьте тип службы в пространство имен.

Для этой операции используйте элемент ServiceSpecificInfo структуры SERVICE_INFO, на которую указывает lpServiceInfo, чтобы передать структуру SERVICE_TYPE_INFO_ABS. Необходимо также задать ServiceType члена структуры SERVICE_INFO. Другие SERVICE_INFO члены игнорируются.

SERVICE_DELETE_TYPE
Удалите тип службы, добавленный предыдущим вызовом, указывающим операцию SERVICE_ADD_TYPE из пространства имен.

[in] dwFlags

Набор битовых флагов, изменяющих операцию функции. Можно задать один или несколько следующих битовых флагов:

Ценность Значение
SERVICE_FLAG_DEFER
Этот битовый флаг действителен, только если операция SERVICE_REGISTER или SERVICE_DEREGISTER.

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

SERVICE_FLAG_HARD
Этот битовый флаг действителен, только если операция SERVICE_REGISTER или SERVICE_DEREGISTER.

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

Например, если операция включает дерегистрацию в пространстве имен, использующего постоянное хранилище, поставщик пространства имен удаляет соответствующие сведения о постоянном хранилище.

[in] lpServiceInfo

Указатель на SERVICE_INFO структуру, содержащую сведения о сетевой службе или типе службы.

[in, optional] lpServiceAsyncInfo

Зарезервировано для дальнейшего использования. Необходимо задать значение NULL.

[out] lpdwStatusFlags

Набор битовых флагов, получающих сведения о состоянии функции. Определен следующий битовый флаг:

Ценность Значение
SET_SERVICE_ PARTIAL_SUCCESS
Один или несколько поставщиков пространств имен не смогли успешно выполнить запрошенную операцию.

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

Если функция завершается ошибкой, возвращаемое значение SOCKET_ERROR. Чтобы получить расширенные сведения об ошибке, вызовите GetLastError. GetLastError может возвращать следующее расширенное значение ошибки.

Код ошибки Значение
зарегистрированные ERROR_ALREADY_
Функция попыталась зарегистрировать службу, которая уже зарегистрирована.

Замечания

Заметка

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

Требования

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

См. также

GetService

SERVICE_INFO

SERVICE_TYPE_INFO_ABS

Функции Winsock

Справочник Winsock