Функция RpcNsBindingUnexportW (rpcnsi.h)
Функция RpcNsBindingUnexport удаляет дескрипторы привязки для интерфейса и объектов из записи в базе данных name-service.
Синтаксис
RPC_STATUS RpcNsBindingUnexportW(
unsigned long EntryNameSyntax,
RPC_WSTR EntryName,
RPC_IF_HANDLE IfSpec,
UUID_VECTOR *ObjectUuidVec
);
Параметры
EntryNameSyntax
Синтаксис EntryName.
Чтобы использовать синтаксис, указанный в записи значения реестра HKEY_LOCAL_MACHINE\Software\Microsoft\Rpc\NameService\DefaultSyntax, укажите значение RPC_C_NS_SYNTAX_DEFAULT.
EntryName
Указатель на имя записи, из которой следует удалить дескрипторы привязки и идентификаторы UUID объекта.
IfSpec
Спецификация интерфейса для дескрипторов привязки, удаляемой из базы данных службы имен. Значение параметра NULL указывает на то, что не следует удалять дескрипторы привязки (только UUID объекта должны быть неэкспортированы).
ObjectUuidVec
Указатель на вектор UUID объектов, которые сервер больше не хочет предлагать. Приложение создает этот вектор. Значение NULL указывает, что не существует идентификаторов UUID объектов, которые можно отменить (только дескрипторы привязки должны быть неэкспортированы).
Возвращаемое значение
Значение | Значение |
---|---|
|
Вызов выполнен успешно. |
|
Недопустимый параметр версии. |
|
Недопустимый синтаксис имени. |
|
Синтаксис имени не поддерживается. |
|
Имя является неполным. |
|
Запись name-service не найдена. |
|
Служба имен недоступна. |
|
Интерфейс не найден. |
|
Не все объекты не поддерживаются. |
Комментарии
Функция RpcNsBindingUnexport позволяет серверным приложениям удалять дескрипторы привязки и пользовательские идентификаторы объектов ресурсов из записи базы данных службы имен. Серверное приложение может отменить импорт указанного интерфейса и объектов в одном вызове RpcNsBindingUnexport или отменить их отдельно. Не поддерживаются только дескрипторы привязки, соответствующие идентификатору UUID интерфейса и номерам основной и дополнительной версий интерфейса, найденным в параметре IfSpec . Используйте функцию RpcNsMgmtBindingUnexport , чтобы удалить несколько версий интерфейса.
В windows 2000 среда выполнения RPC использует Active Directory в качестве базы данных службы имен. Это означает, что авторизованные неэкспортированные записи будут удалены как из локального кэша, так и из Active Directory. Неавторизованные неэкспортированные файлы будут удалены только из локального кэша. Дополнительные сведения об авторизации и контроль доступа Списки см. в контроль доступа в разделе Безопасность пакета средств разработки программного обеспечения платформы (SDK).
Если RpcNsBindingUnexport не находит какие-либо дескрипторы привязки для указанного интерфейса, функция возвращает код состояния RPC_S_INTERFACE_NOT_FOUND и не отменяет удаление идентификаторов UUID объекта, если они были указаны.
Если один или несколько дескрипторов привязки для указанного интерфейса найдены и неиспортированы без ошибок, RpcNsBindingUnexport отключает указанные UUID объекта, если таковые имеются.
Если какие-либо из указанных UID объекта не найдены, RpcNsBindingUnexport возвращает код состояния RPC_S_NOT_ALL_OBJS_UNEXPORTED.
Помимо вызова RpcNsBindingUnexport, сервер также должен вызывать функцию RpcEpUnregister , чтобы отменить регистрацию конечных точек, которые сервер ранее зарегистрировал в локальной базе данных сопоставления конечных точек.
После создания запись сервера сохраняется, даже если удаляются все дескрипторы привязки и идентификаторы UUID. Запись сервера должна иметь по крайней мере один дескриптор привязки. В результате экспорт только идентификаторов UUID в несуществующую запись не оказывает влияния, а отмена экспорта всех дескрипторов привязки приводит к удалению записи.
Используйте RpcNsBindingUnexport разумно. Чтобы автоматически активированный сервер был доступен, необходимо оставить его дескрипторы привязки в базе данных службы имен между активацией процессов сервера. Однако при использовании динамических привязок, если вы не разблокируете дескрипторы привязки, Active Directory может стать настолько большим, что станет неуправляемым.
Поэтому перед вызовом этой функции следует помнить, как долго сервер будет недоступен, и тип используемой привязки. Если вы используете статические привязки, зарезервируйте эту функцию, если ожидается, что сервер будет недоступен в течение длительного времени, например, когда он окончательно удаляется из службы.
Примечание
Заголовок rpcnsi.h определяет RpcNsBindingUnexport в качестве псевдонима, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОД. Использование псевдонима, не зависящий от кодирования, с кодом, который не является нейтральным для кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или времени выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Целевая платформа | Windows |
Header | rpcnsi.h (включая Rpc.h) |
Библиотека | Rpcns4.lib |
DLL | Rpcns4.dll |
См. также раздел
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по