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


Функция 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 .

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

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

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

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

Примечание

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

Требования

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

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

RpcMgmtEpUnregister

RpcNsBindingExport

RpcNsBindingUnexport