Функция RpcNsBindingUnexportA (rpcnsi.h)
Функция RpcNsBindingUnexport удаляет дескрипторы привязки для интерфейса и объектов из записи в базе данных службы имен.
Синтаксис
RPC_STATUS RpcNsBindingUnexportA(
unsigned long EntryNameSyntax,
RPC_CSTR 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 позволяет серверным приложениям удалять дескрипторы привязки и идентификаторы UUID объекта ресурсов из записи базы данных службы имен. Серверное приложение может отменитьexport указанный интерфейс и объекты в одном вызове RpcNsBindingUnexport или отменить их отдельно. Неэкспортируются только дескрипторы привязок, соответствующие UUID интерфейса, а также основной и дополнительный номера версий интерфейса, найденные в параметре IfSpec . Используйте функцию RpcNsMgmtBindingUnexport , чтобы удалить несколько версий интерфейса.
В windows 2000 среда выполнения RPC использует Active Directory в качестве базы данных службы имен. Это означает, что авторизованные неэкспортированные записи будут удалены как из локального кэша, так и из Active Directory. Неавторизованные неэкспортированные данные будут удалены только из локального кэша. Дополнительные сведения об контроль доступа авторизации и контроль доступа Списки см. в разделе Безопасность пакета средств разработки программного обеспечения платформы (SDK).
Если RpcNsBindingUnexport не находит дескрипторов привязки для указанного интерфейса, функция возвращает код состояния RPC_S_INTERFACE_NOT_FOUND и не удаляет идентификаторы UUID объекта, если они были указаны.
Если один или несколько дескрипторов привязки для указанного интерфейса найдены и не используются без ошибок, RpcNsBindingUnexport отменяетexport указанные UUID объекта, если таковые имеются.
Если какие-либо из указанных идентификаторов UUID объекта не найдены, RpcNsBindingUnexport возвращает код состояния RPC_S_NOT_ALL_OBJS_UNEXPORTED.
Помимо вызова RpcNsBindingUnexport, сервер должен также вызвать функцию RpcEpUnregister , чтобы отменить регистрацию конечных точек, которые сервер ранее зарегистрировал в локальной базе данных сопоставления конечных точек.
После создания запись сервера сохраняется, даже если удаляются все дескрипторы привязки и идентификаторы UUID. Запись сервера должна иметь по крайней мере один дескриптор привязки. В результате экспорт только идентификаторов UUID в несуществующую запись не оказывает никакого влияния, а отмена всех дескрипторов привязки удаляет запись.
Используйте RpcNsBindingUnexport разумно. Чтобы автоматически активированный сервер был доступен, необходимо оставить его дескрипторы привязки в базе данных службы имен между активацией серверных процессов. Однако при использовании динамических привязок, если вы не отмените дескриптор привязки, Active Directory может стать настолько большим, что станет неуправляемым.
Поэтому перед вызовом этой функции следует помнить, как долго сервер будет недоступен, и тип используемой привязки. Если вы используете статические привязки, зарезервируйте эту функцию, если ожидается, что сервер будет недоступен в течение длительного времени, например, когда он окончательно удаляется из службы.
Примечание
Заголовок rpcnsi.h определяет RpcNsBindingUnexport в качестве псевдонима, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора UNICODE. Сочетание использования псевдонима, не зависящий от кодировки, с кодом, не зависящим от кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Целевая платформа | Windows |
Header | rpcnsi.h (включая Rpc.h) |
Библиотека | Rpcns4.lib |
DLL | Rpcns4.dll |