Работа с критическими секциями. Структура RTL_CRITICAL_SECTION. Классы-обертки для критических секций. Отадка критических секций. Ошибки, связанные с реализацией. Архитектурные ошибки. Способы обнаружения ошибок....
Определение Двоичного Дерева Поиска (Binary Search Tree, BST). Свойство упорядоченности двоичного дерева поиска. Способы обхода ДДП. Поиск вершины в ДДП. Поиск вершины с минимальным и максимальным значением ключа....
Особенности организации памяти в Windows. Локальный перехват. Локальный перехват с использованием раздела импорта. Локальный перехват посредством изменения перехватываемой функции (только WinNT). Глобальный перехват....
Техника перехвата вызовов. Подход ATL. Замена указателей в vtbl. Перехватчик с постобработкой. CoGetInterceptor, CoGetInterceptorFromTypeInfo. Прямые/синхронные вызовы. Косвенные и асинхронные/отложенные вызовы....
Что такое «перехват API-функций». Метод 1. Перехват API непосредственной записью в код системной функции.. Метод 2. Перехват API через таблицу импорта.. Внедрение кода в чужой процесс в Windows NT....
Проблемы взаимодействия. Алгоритмы создания VC-совместимой dll и ее использование. Алгоритм с явной загрузкой dll. Алгоритм с неявным связыванием для экспорта (импорта) __cdecl-функций. Использование псевдонимов....
Что такое ADAM и для чего он нужен? Установка и начальная настройка. Средства администрирования. Работа с ADAM. Понятие раздела. Работа с данными в ADAM. Расширение схемы. Управление пользователями и группами пользователей....
Краткая предыстория. Требования к библиотеке, реализующей механизм Delay load. Предлагаемая реализация библиотеки. Класс, инкапсулирующий работу с модулями. Реализация динамического поиска функций и глобальной таблицы импорта....
Постановка задачи. Метод решения задачи. Описание логического представления данных. Схема данных. Структура программы. Спецификация на функциональные модули. Технические требования для использования....