Быстрый параметр привязки для операций записи и изменения пакетной службы

При привязке объекта службы каталогов ADSI создает COM-объект, представляющий указанный объект каталога. При привязке ADSI обычно извлекает атрибут objectClass , чтобы ADSI могли предоставлять com-интерфейсы, подходящие для этого класса объекта. Например, объект пользователя предоставляет интерфейс IADsUser в дополнение к базовым интерфейсам ADSI, поддерживаемым для всех объектов. Для одной операции это не должно влиять на производительность. Однако если пакетные операции выполняются, для которых требуются сотни или тысячи привязок по медленному подключению, и эти операции записывают данные в службу каталогов, может потребоваться обмен полной поддержкой объектов для более быстрой привязки. Это называется быстрой привязкой и выполняется путем указания флага ADS_FAST_BIND при вызове ADsOpenObject или IADsOpenDSObject::OpenDSObject.

Быстрая привязка имеет следующие ограничения:

  • Операция привязки должна выполняться с помощью функции ADsOpenObject или метода IADsOpenDSObject::OpenDSObject. Операция привязки переходит на сервер каталогов один раз, а не дважды. ADSI не извлекает атрибут objectClass , поэтому предоставляет только базовые интерфейсы ADSI для объекта.

  • Для COM-объекта поддерживаются следующие интерфейсы:

  • Если метод IADsContainer::GetObject используется для привязки к дочерним объектам, дочерний объект имеет те же характеристики быстрой привязки, что и родительский объект.

  • Существование объекта, привязанного к ней, не проверяется во время операции привязки, поэтому последующие вызовы метода завершаются ошибкой, если объект не существует. Из-за этого быстрая привязка должна использоваться только для объектов, которые, как известно, существуют, например, непосредственно после выполнения запроса, возвращающего различающиеся имена объектов, к которым привязаны.

  • Расширения ADSI предоставляются для объектов верхнего класса. Поэтому предоставляются только расширения для базовых интерфейсов ADSI, перечисленных выше.