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


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

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

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

Синтаксис

RPC_STATUS RpcNsMgmtBindingUnexportA(
  unsigned long EntryNameSyntax,
  RPC_CSTR      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 .

В следующей таблице описаны допустимые значения для параметра 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, а запись name service-database содержала дескрипторы привязки с версиями 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
Запись name-service не найдена.
RPC_S_NAME_SERVICE_UNAVAILABLE
Служба имен недоступна.
RPC_S_INTERFACE_NOT_FOUND
Интерфейс не найден.
RPC_S_NOT_ALL_OBJS_UNEXPORTED
Не все объекты не поддерживаются.
 
Примечание Список допустимых кодов ошибок см. в разделе Возвращаемые значения RPC.
 

Комментарии

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

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

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

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

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

Примечание

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

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header rpcnsi.h (включая Rpc.h)
Библиотека Rpcns4.lib
DLL Rpcns4.dll

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

RpcMgmtEpUnregister

RpcNsBindingExport

RpcNsBindingUnexport