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


Функция RpcNsMgmtBindingUnexportW (rpcnsi.h)

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

Примечание Эта функция не поддерживается в windows Vista и более поздних операционных системах.
 

Синтаксис

RPC_STATUS RpcNsMgmtBindingUnexportW(
  unsigned long EntryNameSyntax,
  RPC_WSTR      EntryName,
  RPC_IF_ID     *IfId,
  unsigned long VersOption,
  UUID_VECTOR   *ObjectUuidVec
);

Параметры

EntryNameSyntax

Синтаксис EntryName.

Чтобы использовать синтаксис, указанный в записи значения реестра HKEY_LOCAL_MACHINE\Software\Microsoft\Rpc\NameService\DefaultSyntax, укажите значение RPC_C_NS_SYNTAX_DEFAULT.

EntryName

Указатель на имя записи, из которой удаляются маркеры привязки и идентификаторы UUID объектов.

IfId

Указатель на идентификацию интерфейса. Значение null-параметра указывает, что дескрипторы привязки не должны быть несоотвложены. Не следует использовать только объекты UUID.

VersOption

Указывает, как функция RpcNsMgmtBindingUnexport использует VersMajor и VersMinor членов структуры, на которую указывает параметр ifId IfId.

В следующей таблице описываются допустимые значения параметра VersOption.

Значения VersOption Значение
RPC_C_VERS_ALL
Отменяет все привязки для идентификатора UUID интерфейса в IfIdнезависимо от номеров версий. Для этого значения укажите значение 0 для основных и дополнительных версий в IfId.
RPC_C_VERS_IF_ID
Отменяет привязки для совместимого интерфейса UUID в IfId с той же основной версией и с дополнительной версией, большей или равной дополнительной версии в IfId.
RPC_C_VERS_EXACT
Отменяет привязки для идентификатора UUID интерфейса в IfId с теми же основными и дополнительными версиями, что и в IfId.
RPC_C_VERS_MAJOR_ONLY
Отменяет привязки для идентификатора UUID интерфейса в IfId с той же основной версией, что и в IfId (игнорирует дополнительную версию). Для этого значения укажите значение 0 для дополнительной версии в IfId.
RPC_C_VERS_UPTO
Отменяет привязки, которые предлагают версию указанного интерфейса UUID меньше или равно указанной основной и дополнительной версии. (Например, если IfId содержит версию 2.0, а запись службы имен — базу данных содержит дескриптор привязки с дескрипторами привязки версий 1.3, 2.0 и 2.1, функция RpcNsMgmtBindingUnexport не будет включать дескриптор привязки с дескрипторами привязки версии 1.3 и 2.0.)

ObjectUuidVec

Указатель на вектор UUID объекта, который сервер больше не хочет предложить. Приложение создает этот вектор. Значение NULL указывает, что не существует идентификаторов UUID объекта для отмены использования. Только дескриптор привязки должен быть несоотвлен.

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

Ценность Значение
RPC_S_OK
Вызов выполнен успешно.
RPC_S_INVALID_VERS_OPTION
Недопустимый параметр версии.
RPC_S_INVALID_NAME_SYNTAX
Недопустимый синтаксис имени.
RPC_S_UNSUPPORTED_NAME_SYNTAX
Синтаксис имени не поддерживается.
RPC_S_INCOMPLETE_NAME
Имя является неполным.
RPC_S_ENTRY_NOT_FOUND
Запись службы имен не найдена.
RPC_S_NAME_SERVICE_UNAVAILABLE
Служба имен недоступна.
RPC_S_INTERFACE_NOT_FOUND
Интерфейс не найден.
RPC_S_NOT_ALL_OBJS_UNEXPORTED
Не все объекты не поддерживаются.
 
Примечание Список допустимых кодов ошибок см. в разделе возвращаемых значений RPC.
 

Замечания

Функция RpcNsMgmtBindingUnexport позволяет приложению управления удалить одно из следующих элементов из записи службы имен— базы данных:

  • Все дескрипторы привязки для указанного интерфейса UUID, квалифицированные номерами версий интерфейса (основными и дополнительными)
  • Один или несколько объектов UUID ресурсов
  • Как дескриптор привязки, так и идентификаторы UUID ресурсов
Приложение управления может неэкспортировать интерфейсы и объекты в одном вызове RpcNsMgmtBindingUnexport, или оно может отсоединить их отдельно. Если RpcNsMgmtBindingUnexport не находит ни одного дескриптора привязки для указанного интерфейса, функция возвращает код состояния RPC_S_INTERFACE_NOT_FOUND и не отменяет использование идентификаторов UUID объекта, если они были указаны.

Если один или несколько дескрипторов привязки для указанного интерфейса найдены и не поддерживаются без ошибок, RpcNsMgmtBindingUnexport неподдерживает все указанные объекты UUID. Если ни один из указанных объектов UUID не найден, RpcNsMgmtBindingUnexport возвращает RPC_S_NOT_ALL_OBJS_UNEXPORTED.

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

базах данных службы имен предназначены для относительно стабильной работы. В реплицированных службах имен частое использование функций RpcNsBindingExport и функции RpcNsBindingUnexport приводит к повторному удалению и замене одной и той же записи службы имен, что может привести к проблемам с производительностью.
 

Заметка

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

Требования

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

См. также

RpcMgmtEpUnregister

RpcNsBindingExport

RpcNsBindingUnexport