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