ОБЖРЕФ
OBJREF — это название структуры маршалируемых интерфейсов в COM и DCOM . Поскольку COM-интерфейсы можно вызывать только непосредственно из контекста (например, потока, процесса или машины), в котором они возникли, когда они необходимы в другом контексте, они маршалируются в этой структуре, которая затем передается в контекст назначения, где она не маршалируется. к прокси-серверу, который обеспечивает необходимую связь, например передачу сообщений или сетевых пакетов или маршалинг других интерфейсов, передаваемых в вызовах. [ 1 ] [ 2 ]
Формат
[ редактировать ]Схема конструкции следующая: [ 3 ] [ 4 ]
Компенсировать | Размер | Описание |
---|---|---|
0 | 4 | Подпись: «МЯУ» |
4 | 4 | Флаг, указывающий тип конструкции |
8 | 16 | Идентификатор интерфейса |
Флаг = 1: стандартный | ||
24 | 4 | Флаги, в основном зарезервированы для системы, но могут использоваться для отключения пингования объектов. [ 5 ] |
28 | 4 | Количество ссылок |
32 | 8 | OXID – идентификатор экспортера объекта [ 6 ] |
40 | 8 | OID – идентификатор объекта [ 6 ] |
48 | 16 | IPID – идентификатор указателя интерфейса [ 7 ] |
64 | переменная | ДВОЙНАЯСТРИНГАРРАЙ |
Флаг = 2: обработчик (расширение стандарта) [ 8 ] | ||
64 | 16 | Идентификатор класса, который будет использоваться в качестве обработчика интерфейса, т.е. находиться между клиентом и прокси. |
80 | переменная | ДВОЙНАЯСТРИНГАРРАЙ |
Флаг = 4: пользовательская сортировка [ 9 ] | ||
24 | 16 | Идентификатор класса пользовательского прокси |
40 | 4 | 0 (зарезервированное значение) |
44 | 4 | Размер данных ниже |
48 | переменная | Пользовательские данные сортировки |
Флаг = 8: расширенный (также расширение стандарта) [ 10 ] | ||
64 | 4 | Подпись «ВИСН» |
68 | переменная | ДВОЙНАЯСТРИНГАРРАЙ |
4 | 1 (исторически количество элементов данных ниже, но всегда есть только один элемент) | |
4 | Подпись «ВИСН» | |
Элемент данных, используемый для идентификации и маршалирования контекста посланника: [ 11 ] [ 12 ] [ 13 ] | ||
16 | Идентификатор контекста [ 14 ] | |
4 | Размер данных ниже, без учета заполнения | |
4 | Размер данных ниже, включая отступы | |
8н | Упорядоченный контекст посланника, дополненный до числа, кратного восьми байтам. |
Компоновка DUALSTRINGARRAY: [ 15 ] [ 16 ]
Компенсировать | Размер | Описание |
---|---|---|
0 | 2 | Общее количество записей в массивах ниже, включая нули |
2 | 2 | Количество записей в массиве, представляющих привязки строк. |
4 | 2н | Строковые и защитные привязки |
Привязки строк представляют собой записи с нулевым завершением, определяющие информацию о соединении, например IP-адреса , а привязки безопасности представляют собой записи с нулевым завершением, определяющие информацию аутентификации. Оба массива также завершаются нулем.
Ссылки
[ редактировать ]- ^ Тим Эвальд (6 марта 2001 г.). «Механика COM+» . Информировать . Pearson Education и Addison-Wesley Professional . Проверено 7 сентября 2008 г.
- ^ Майк Хирн (22 января 2005 г.). «Больше заметок о DCOM» . Список разработчиков вина . Кодовики . Проверено 7 сентября 2008 г.
- ^ "dcom.idl" . Вино . КодВиверс. 2003 . Проверено 6 сентября 2008 г.
- ^ Дхарма Шукла (1998). «ШоуМеМойОБЖРЕФ» . Проверено 7 сентября 2008 г. (Это пример кода для проверки содержимого OBJREF.)
- ^ Эддон, Гай; Эддон, Генри (март 1998 г.). «Понимание проводного протокола DCOM путем анализа пакетов сетевых данных» . Системный журнал Microsoft . Майкрософт . Проверено 7 сентября 2008 г.
- ^ Перейти обратно: а б «Основной глоссарий протоколов Windows: O» . MSDN . Майкрософт . Проверено 6 сентября 2008 г.
идентификатор экспортера объектов (OXID): 64-битное число, которое уникально идентифицирует экспортер объектов на сервере объектов. … идентификатор объекта (OID): (1) В контексте объектного сервера — 64-битное число, которое однозначно идентифицирует объект.
- ^ «Основной глоссарий протоколов Windows: I» . MSDN . Майкрософт . Проверено 6 сентября 2008 г.
идентификатор указателя интерфейса (IPID): 128-битное число, которое уникально идентифицирует интерфейс объекта в экспортере объектов.
- ^ "OBJREF_HANDLER" . MSDN . Майкрософт . Проверено 6 сентября 2008 г.
- ^ "OBJREF_CUSTOM" . MSDN . Майкрософт . Проверено 7 сентября 2008 г.
- ^ "OBJREF_EXTENDED" . MSDN . Майкрософт . Проверено 6 сентября 2008 г.
- ^ «Свойства контекста» . MSDN . Майкрософт . Проверено 7 сентября 2008 г.
- ^ «Свойства контекста и маршалинг» . MSDN . Майкрософт . Проверено 7 сентября 2008 г.
- ^ «Основной глоссарий протоколов Windows: E» . MSDN . Майкрософт . Проверено 7 сентября 2008 г.
Контекст посланника: контекст, который маршалируется и возвращается клиенту в результате получения ссылки на объект.
- ^ «Основной глоссарий протоколов Windows: C» . MSDN . Майкрософт . Проверено 7 сентября 2008 г.
контекст: коллекция свойств контекста, описывающих среду выполнения. кв.кв.
- ^ "ДУАЛСТРИНГАРРЕЙ" . MSDN . Майкрософт . Проверено 6 сентября 2008 г.
- ^ Эддон, Гай; Эддон, Генри (1999). «Маршализованные указатели интерфейса». В Стру, Эрик; Тернер, Алиса; Янг, Марк; Чанг, Ина (ред.). Внутри базовых служб COM+ . Редмонд: Microsoft Press. ISBN 0-7356-0728-1 .