Побегайло системное windows pdf

СИСТЕМНОЕ ПРОГРАММИРОВАНИЕ В WINDOWS

1 СИСТЕМНОЕ ПРОГРАММИРОВАНИЕ В WINDOWS Побегайло А. П. Системное программирование в Windows. СПб.: БХВ- Петербург, с: ил. ISBN Подробно рассматриваются вопросы системного программирования с использованием интерфейса Win 32 API. Описываются управление потоками и процессами, включая их диспетчеризацию; синхронизация потоков; передача данных между процессами, с использованием анонимных и именованных каналов, а также почтовых ящиков; структурная обработка исключений; управление виртуальной памятью; управление файлами и каталогами; асинхронная обработка данных; создание динамически подключаемых библиотек; разработка сервисов. Отдельная часть книги посвящена управлению безопасностью объектов в Windows. Каждая тема снабжена практическими примерами использования функций Win 32 API, которые представлены работающими листингами. Это позволяет использовать книгу в качестве пособия по системному программированию или справочника для систем ного программиста. Прилагаемый компакт-диск содержит листинги и проекты всех программ, рассмотренных в книге. Оглавление Предисловие. 15 Глава 1. Операционные системы и их интерфейсы Назначение операционной системы Типы операционных систем Интерфейс программирования приложений Win 32 API Типы данных в Win 32 API Объекты и их дескрипторы в Windows 24 ЧАСТЬ I. УПРАВЛЕНИЕ ПОТОКАМИ И ПРОЦЕССАМИ 27 Глава 2. Потоки и процессы Определение потока Контекст потока Состояния потока Диспетчеризация и планирование потоков Определение процесса 40 Глава 3. Потоки в Windows Определение потока Создание потоков Завершение потоков Приостановка и возобновление потоков Псевдодескрипторы потоков Обработка ошибок в Windows 53 Глава 4. Процессы в Windows Определение процесса Создание процессов Завершение процессов Наследование дескрипторов Дублирование дескрипторов Псевдодескрипторы процессов Обслуживание потоков Динамическое изменение приоритетов потоков 88 ЧАСТЬ II. СИНХРОНИЗАЦИЯ ПОТОКОВ И ПРОЦЕССОВ 93 Глава 5. Синхронизация Непрерывные действия и команды Определение синхронизации Программная реализация синхронизации Аппаратная реализация синхронизации Примитивы синхронизации 104 Глава 6. Синхронизация потоков в Windows Критические секции Объекты синхронизации и функции ожидания Мыотексы События Семафоры 137 Глава 7. Взаимоисключающий доступ к переменным 143

2 7.1.Атомарные операции Замена значения переменной Условная замена значения переменной Инкремент и декремент переменной Изменение значения переменной 150 Глава 8. Тупики Определение тупиков Классификация системных ресурсов Обнаружение тупиков Восстановление заблокированного процесса Предотвращение тупиков Безопасное завершение потоков в Windows 161 ЧАСТЬ III. ПРОГРАММИРОВАНИЕ КОНСОЛЬНЫХ ПРИЛОЖЕНИЙ 165 Глава 9. Структура консольного приложения Структура консоли Входной буфер консоли Буфер экрана 171 Глава 10. Работа с консолью Создание консоли Освобождение консоли Стандартные дескрипторы ввода-вывода 178 Глава 11. Работа с окном консоли Получение дескриптора окна консоли Получение и изменение заголовка консоли Определение максимального размера окна Установка координат окна 184 Глава 12. Работа с буфером экрана Создание и активация буфера экрана Определение и установка параметров буфера экрана Функции для работы с курсором Чтение и установка атрибутов консоли 197 Глава 13. Ввод-вывод на консоль Ввод-вывод высокого уровня Ввод низкого уровня Вывод низкого уровня Режимы ввода-вывода консоли Прокрутка буфера экрана 229 ЧАСТЬ IV. ОБМЕН ДАННЫМИ МЕЖДУ ПАРАЛЛЕЛЬНЫМИ ПРОЦЕССАМИ 235 Глава 14. Передача данных Способы передачи данных между процессами Связи между процессами Передача сообщений Синхронный и асинхронный обмен данными Буферизация 242 Глава 15. Работа с анонимными каналами в Windows Анонимные каналы Создание анонимных каналов Соединение клиентов с анонимным каналом Обмен данными по анонимному каналу Примеры работы с анонимными каналами Перенаправление стандартного ввода-вывода 257 Глава 16. Работа с именованными каналами в Windows Именованные каналы Создание именованных каналов Соединение сервера с клиентом Соединение клиентов с именованным каналом Обмен данными по именованному каналу Копирование данных из именованного канала Передача транзакций по именованному каналу Определение и изменение состояния именованного канала Получение информации об именованном канале 303 Глава 17. Работа с почтовыми ящиками в Windows Концепция почтовых ящиков Создание почтовых ящиков Соединение клиентов с почтовым ящиком Обмен данными через почтовый ящик Получение информации о почтовом ящике 315

Читайте также:  All the mac os names

3 17.6.Изменение времени ожидания сообщения 321 ЧАСТЬ V. СТРУКТУРНАЯ ОБРАБОТКА ИСКЛЮЧЕНИЙ 325 Глава 18. Фреймовая обработка исключений Исключения и их обработчики Получение кода исключения Функции фильтра Получение информации об исключении Генерация программных исключений Необработанные исключения Обработка исключений с плавающей точкой Обработка вложенных исключений Передача управления и выход из фрейма Встраивание SEH в механизм исключений C Глава 19. Финальная обработка исключений Финальные блоки фрейма Проверка завершения фрейма Обработка вложенных финальных блоков 354 ЧАСТЬ VI. РАБОТА С ВИРТУАЛЬНОЙ ПАМЯТЬЮ 357 Глава 20. Виртуальная память Концепция виртуальной памяти Организация виртуальной памяти Алгоритмы замещения страниц Рабочее множество процесса Организация виртуальной памяти в Windows 363 Глава 21. Работа с виртуальной памятью в Windows Состояния виртуальной памяти процесса Резервирование, распределение и освобождение 368 виртуальной памяти 21.3.Блокирование виртуальных страниц в реальной памяти Изменение атрибутов доступа к виртуальной странице Управление рабочим множеством страниц процесса Инициализация и копирование блоков виртуальной памяти Определение состояния памяти Работа с виртуальной памятью в другом процессе 388 Глава 22. Работа с кучей в Windows Создание и удаление кучи Распределение и освобождение памяти из кучи Перераспределение памяти из кучи Блокирование и разблокирование кучи Проверка состояния кучи Уплотнение кучи 411 ЧАСТЬ VII. УПРАВЛЕНИЕ ФАЙЛАМИ 415 Глава 23. Общие концепции Накопители на жестких магнитных дисках Секторы и кластеры Форматирование дисков Функции файловой системы Каталоги Буферизация ввода-вывода Кэширование ввода-вывода 421 Глава 24. Работа с файлами в Windows Именование файлов в Windows Создание и открытие файлов Закрытие и удаление файлов Запись данных в файл Освобождение буферов файла Чтение данных из файла Копирование файла Перемещение файла Замещение файла Работа с указателем позиции файла Определение и изменение атрибутов файла Определение и изменение размеров файла Блокирование файла Получение информации о файле 459 Глава 25. Работа с каталогами (папками) в Windows Создание каталога Поиск файлов в каталоге Удаление каталога 473

Читайте также:  Форматирование жесткого диска через командную строку windows 10 пошагово

4 25.4. Перемещение каталога Определение и установка текущего каталога Наблюдение за изменениями в каталоге 479 ЧАСТЬ VIII. АСИНХРОННАЯ ОБРАБОТКА ДАННЫХ 483 Глава 26. Асинхронный вызов процедур Механизм асинхронного вызова процедур Установка асинхронных процедур Приостановка потока Ожидание события Оповещение и ожидание события 494 Глава 27. Асинхронный доступ к данным Концепция асинхронного ввода-вывода Асинхронная запись данных Асинхронное чтение данных Блокирование файлов Определение состояния асинхронной операции ввода-вывода Отмена асинхронной операции ввода-вывода Процедуры завершения ввода-вывода Асинхронная запись данных с процедурами завершения Асинхронное чтение данных с процедурами завершения 532 Глава 28. Порты завершения Концепция порта завершения Создание порта завершения Получение пакета из порта завершения Посылка пакета в порт завершения 539 Глава 29. Работа с ожидающим таймером Ожидающий таймер Создание ожидающего таймера Установка ожидающего таймера Отмена ожидающего таймера Открытие существующего ожидающего таймера Процедуры завершения ожидания 555 ЧАСТЬ IX. ДИНАМИЧЕСКИ ПОДКЛЮЧАЕМЫЕ БИБЛИОТЕКИ 559 Глава 30.Отображение файлов в память Концепция механизма отображения файлов в память Создание и открытие объекта, отображающего файл Отображение файла в память Обмен данными между процессами через отображаемый 569 в память файл Сброс вида в файл 573 Глава 31. Динамически подключаемые библиотеки L. Концепция динамически подключаемых библиотек Создание DLL Динамическая загрузка и отключение DLL Использование DLL Использование файла определений Статическая загрузка DLL 592 Глава 32. Локальная память потока Динамическая локальная память потока Распределение и освобождение локальной памяти потока Запись и чтение из локальной памяти потока Статическая локальная память потока 602 ЧАСТЬ X. РАЗРАБОТКА СЕРВИСОВ В WINDOWS 605 Глава 33. Сервисы в Windows Концепция сервиса Структура сервиса Организация функции main Организация функции ServiceMain Организация обработчика управляющих команд 617 Глава 34. Работа с сервисами в Windows Открытие доступа к базе данных сервисов Установка сервиса Открытие доступа к сервису Запуск сервиса Определение и изменение состояния сервиса Определение и изменение конфигурации сервиса Определение имени сервиса Управление сервисом 646

5 34.9. Удаление сервисов Блокирование базы данных сервисов 653 ЧАСТЬ XI. УПРАВЛЕНИЕ БЕЗОПАСНОСТЬЮ В WINDOWS 659 Глава 35. Система информационной безопасности Контроль доступа к ресурсам Политика безопасности Модель безопасности Дискреционная политика безопасности Дискреционная модель безопасности Реализация дискреционной модели безопасности 668 Глава 36. Управление безопасностью в Windows Модель безопасности в Windows Учетные записи Домены Группы Идентификаторы безопасности Дескрипторы безопасности Списки управления доступом ACL Маркеры доступа Создание новых объектов Контроль доступа к охраняемому объекту Аудит доступа к охраняемому объекту Структура системы безопасности 696 Глава 37. Управление пользователями Создание учетной записи пользователя Получение информации о пользователе Перечисление пользователей Перечисление групп, которым принадлежит пользователь Изменение учетной записи пользователя Изменение пароля пользователя Удаление учетной записи пользователя 721 Глава 38. Управление группами Создание локальной группы Получение информации о локальной группе Перечисление локальных групп Изменение информации о локальной группе Добавление членов локальной группы Установка членов локальной группы Перечисление членов локальной группы Удаление членов локальной группы Удаление локальной группы 754 Глава 39. Работа с идентификаторами безопасности Структура идентификатора безопасности Создание идентификатора безопасности Определение учетной записи по идентификатору безопасности Определение идентификатора безопасности по имени учетной записи Получение характеристик идентификатора безопасности Копирование и сравнение идентификаторов безопасности Строковое представление идентификатора безопасности 782 Глава 40. Работа с дескрипторами безопасности Форматы дескрипторов безопасности Создание нового дескриптора безопасности Определение длины дескриптора безопасности Получение дескриптора безопасности по имени объекта Получение дескриптора безопасности по дескриптору объекта Получение данных из дескриптора безопасности Получение состояния управляющих флагов дескриптора безопасности Изменение дескриптора безопасности по имени объекта Изменение дескриптора безопасности по дескриптору объекта Изменение состояния управляющих флагов дескриптора безопасности Строковое представление дескрипторов безопасности 831 Глава 41. Работа со списками управления доступом на высоком 840 уровне Структура TRUSTEE Инициализация структуры TRUSTE Структура EXPLICIT _ ACCESS Инициализация структуры EXPLICIT _ ACCESS Создание нового списка управления доступом 850

Читайте также:  Kali linux не устанавливается virtualbox

6 41.6. Модификация списка управления доступом Получение элементов из списка управления доступом Получение информации из структуры TRUSTEE Получение прав доступа из списка управления доступом Получение из списка управления доступом прав, которые подвергаются аудиту 878 Глава 42. Работа с привилегиями Локальные идентификаторы привилегий Инициализация локального идентификатора Получение локального идентификатора привилегии Получение имени привилегии Получение имени привилегии для отображения 891 Глава 43. Работа с маркерами доступа Открытие маркера доступа процесса Открытие маркера доступа потока Структуры, используемые для работы с маркером доступа Получение информации из маркера доступа Изменение информации в маркере доступа Настройка привилегий Настройка групп Создание маркера ограниченного доступа Дублирование маркеров доступа Замещение маркеров доступа потока Проверка идентификатора безопасности на принадлежность маркеру доступа 932 Глава 44. Работа со списками управления доступом па низком уровне Структура списка управления доступом Структура элемента списка управления доступом Инициализация списка управления доступом Проверка достоверности списка управления доступом Добавление элементов в список управления доступом Получение элементов из списка управления доступом Удаление элементов из списка управления доступом Получение информации о списке управления доступом Установка версии списка управления доступом Определение доступной памяти 986 Глава 45. Управление безопасностью объектов на низком уровне Доступ к информации о владельце объекта Доступ к информации о первичной группе владельца объекта Доступ к списку DACL Доступ к списку SACL Защита файлов и каталогов Защита объектов ядра Защита сервисов Защита ключей реестра Защита объектов пользователя 1037 Приложение. Описание компакт-диска 1045 Предметный указатель 1047

Оцените статью