Быстрый поиск:
Интернет магазин книг, книги купить книги, магазин книги Украины, доставка книги почтой, новые книги.
    товаров: 0 шт.
        сумма: 0 грн.
 
Каталог книги | Новые книги | Оплата | Доставка книги | Контакты | Помощь | Подписаться на RSS-новинки
 
 

     Книги по бизнесу
   Книги банки,деньги,кредит
   Книги по бизнесу
   Книги по бухучету
   Книги инвестиционный бизнес
   Книги коммерция и продажи
   Книги по маркетингу и рекламе
   Книги по менеджменту
   Книги по праву
   Книги по предпринимательству
   Книги по финансам
   Книги по экономике
   Книги по экономической теории
     Книги компьютерные
   Книги CAD-ы
   Книги 3d MAX
   Книги ACCESS
   Книги Adobe
   Книги Assembler
   Книги Basic
   Книги C, C++,С#
   Книги Delphi
   Книги EXCEL
   Книги HTML,XML, Dynamic, CSS
   Книги Java
   Книги JavaScript
   Книги Linux
   Книги MAC
   Книги Maya
   Книги OFFICE
   Книги Oracle
   Книги Pascal
   Книги Perl
   Книги PHP
   Книги SQL
   Книги UML
   Книги Unix
   Книги VBA
   Книги Visual Studio
   Книги WEB дизайн
   Книги Windows 2000
   Книги Windows Server
   Книги Windows Vista
   Книги Windows XP
   Книги WORD
   Книги Алгоритмы
   Книги 1C Учет
   Книги Издательские системы
   Книги по информатике
   Книги по компьютерной безопасности
   Книги по компьютерному железу
   Книги компьютерные сети
   Книги мультимедиа
   Книги Нейронные сети
   Книги ООП
   Книги Примочки программирования
   Книги по программированию для WEB
   Книги Прочая графика
   Книги прочая разработка
   Книги прочие CAD
   Книги прочие базы данных
   Книги прочие ОС
   Книги прочие офисное ПО
   Книги самоучители
   Книги Цифровое фото
   Книги электронная коммерция
   Книги Corel
   Книги Windows 7
   Книги Прочее для интернет
   Книги SEO оптимизация и продвижение
   Книги SolidWorks
     Книги по психологии
   Книги по психоанализу
   Книги по психологии
   Книги по психологии бизнеса
   Книги психология женский клуб
   Книги психология НЛП
   Книги психология общая
   Книги психология популярная
   Книги психология прикладная
   Книги психология прочее
   Книги психология психотерапия
   Книги психология социальная
   Книги психология тест
   Книги психология тренинг
     Знаменитые люди
     Книги о детях
     Естественные науки



492-347-068
order#superkniga.com.ua


Принимаем к оплате:
Оплатить WebMoney
Оплатить WebMoney
Оплатить WebMoney
Оплатить WebMoney
Оплатить WebMoney

Реклама
 
  Книги компьютерные - Книги прочая разработка
Купить книгу  Книга Windows Driver Foundation: разработка драйверов. Орвик
 
 
Share |
Купить книгу почтой в интернет магазине Книга Windows Driver Foundation: разработка драйверов. Орвик

248.92 грн.

 Купить Книга Windows Driver Foundation: разработка драйверов. Орвик     Купить Книга Windows Driver Foundation: разработка драйверов. Орвик

880 страниц

Год выпуска: 2008

Книга "Windows Driver Foundation. Разработка драйверов" содержит описания принципов и методик, примеры программирования и подсказки для эффективной разработки драйверов. Представлены инструменты и ресурсы, основные понятия драйверов и операционной системы Windows, обзор модели Windows Driver Foundation (WDF), информация об архитектуре Windows, модели ввода/вывода. Приводятся три основные составляющие модели WDF: инфраструктура драйвера пользовательского режима, инфраструктура драйвера режима ядра и набор инструментов тестирования и верификации, а также шаблоны и рекомендации по выбору. Подробно рассматриваются различия между пользовательским режимом и режимом ядра.

Содержание





Оглавление
Об авторах 1
Предисловие 3
Благодарности 7
Часть I. Начало работы с моделью WDF 11
Глава 1. Введение в WDF 13
Об этой книге 14
Кому адресована эта книга 14
Часть I. Начало работы с моделью WDF 15
Часть II. Изучение инфраструктур 15
Часть III. Применение основ WDF 16
Часть IV. Смотрим глубже - больше о драйверах WDF 18
Часть V. Создание, установка и тестирование драйверов WDF 18
Словарь 19
Условные обозначения 19
Приступая к разработке драйверов 21
Системные требования для разработки драйверов 21
Как приобрести и установить набор WDK 22
Библиотеки WDK 24
Документация WDK 24
Инструменты WDK 25
Образцы WDK 26
Образцы UMDF 26
Образцы KMDF 27
Как приобрести проверочные версии Windows 27
Как приобрести отладочные инструменты 28
Как приобрести устройства обучения OSR 29
Основные источники информации 30
Основные ссылки 32
Глава 2. Основы драйверов под Windows 33
Что такое драйвер? 34
Базовая архитектура Windows 35
Архитектура драйвера 37
Объекты устройств и стек устройства 37
Дерево устройств 39
Объекты и структуры данных ядра 40
Модель ввода/вывода Windows 41
Запросы ввода/вывода 42
Обработка прерываний стеком устройства 42
Буферы данных и типы передачи ввода/вывода 43
Передача и получение данных от устройства 44
Plug and Play и управление энергопотреблением 45
Основы программирования в режиме ядра 45
Прерывания и уровни IRQL 46
Параллелизм и синхронизация 48
Потоки 48
Синхронизация 49
Состояние гонок и взаимоблокировки 50
Память 51
Управление памятью 51
Пулы памяти 52
Стек ядра 52
Списки MDL 53
Советы по программированию в режиме ядра 53
Выделение памяти 53
Использование спин-блокировок 54
Управление ошибками страниц 54
Обращение к памяти пользовательского режима 54
Блокирование потоков 55
Верификация драйверов 55
Использование макросов 55
Основные термины 56
Глава 3. Основы WDF 60
WDF и WDM 60
Что такое WDF? 61
Объектная модель WDF 62
Программный интерфейс 63
Иерархия объектов 63
Параллелизм и синхронизация 64
Модель ввода/вывода 64
Отмена запросов ввода/вывода 65
Исполнители ввода/вывода 65
Обработка некритических ошибок 66
Извещение об ошибках UMDF 67
Извещение об ошибках KMDF 67
Plug and Play и управление энергопотреблением 67
Критерии конструкции WDF для Plug and Play и управления энергопотреблением 68
Безопасность 69
Стандартные безопасные установки 70
Проверка достоверности параметров 70
Поддержка верификации, трассировки и отладки 70
Обслуживаемость и управление версиями 71
Часть II. Изучение инфраструктур 73
Глава 4. Обзор драйверных инфраструктур 75
Обзор драйверных инфраструктур 75
Обзор инфраструктуры UMDF 76
Объекты инфраструктуры UMDF 77
Объекты обратного вызова инфраструктуры UMDF 78
Обзор инфраструктуры KMDF 78
Объекты KMDF 79
Функции обратного вызова инфраструктуры KMDF 80
Архитектура WDF 80
Инфраструктура UMDF 83
Компоненты инфраструктуры UMDF 84
Критические ошибки в драйверах UMDF 86
Типичный запрос ввода/вывода UMDF 87
Инфраструктура KMDF 88
Компоненты инфраструктуры KMDF 88
Критические ошибки в драйверах KMDF 90
Типичный запрос ввода/вывода KMDF 90
Поддержка устройств и драйверов в WDF 91
Устройства, поддерживаемые UMDF 91
Достоинства драйверов UMDF 92
Недостатки драйверов UMDF 93
Устройства, поддерживаемые KMDF 94
Как выбрать правильную инфраструктуру 94
Глава 5. Объектная модель WDF 96
Обзор объектной модели 96
Методы, свойства и события 97
Обратные вызовы по событию 98
Атрибуты объектов 98
Иерархия и время жизни объектов 99
Контекст объекта 99
Реализация объектной модели UMDF 100
Соглашение об именах UMDF 100
Объекты и интерфейсы инфраструктуры UMDF 101
Объекты обратного вызова и интерфейсы драйвера UMDF 103
Пример UMDF: объекты и интерфейсы обратных вызовов 105
Реализация объектной модели KMDF 106
Типы объектов KMDF 107
Соглашение об именах KMDF 109
Создание объектов 110
Создание объектов UMDF 110
Создание объектов KMDF 111
Структура конфигурации объекта KMDF 111
Структура атрибутов объекта KMDF 112
Методы создания объектов KMDF 113
Иерархия и время жизни объектов 114
Удаление, ликвидация, очистка и уничтожение 115
Иерархия объектов UMDF 116
Иерархия объектов KMDF 117
Удаление объектов 118
Обратные вызовы очистки ресурсов 121
Обратные вызовы деструкции 121
Удаление объектов UMDF 122
Удаление объектов KMDF 122
Исключение: завершенные запросы ввода/вывода 124
Область контекста объекта 125
Данные контекста объекта UMDF 126
Информация контекста UMDF в членах данных объекта обратного вызова 127
Область контекста UMDF для объекта инфраструктуры 128
Область контекста объекта KMDF 129
Объявления типа области контекста KMDF 130
Инициализация полей контекста в структуре атрибутов объекта 130
Назначение области контекста KMDF объекту 131
Глава 6. Структура драйвера и его инициализация 132
Обязательные компоненты драйвера 132
Структура драйверов UMDF и требования к ним 133
Структура драйверов KMDF и требования к ним 136
Объект драйвера 138
Создание объекта обратного вызова для драйвера UMDF 138
Создание объекта драйвера KMDF 140
Объекты устройств 142
Типы объектов устройств 142
Драйверы фильтра и объекты устройств фильтра 143
Функциональные драйверы и объекты функциональных устройств 144
Драйверы шины и объекты физических устройств (KMDF) 144
Драйверы унаследованных устройств и объекты устройств управления (KMDF) 146
Драйверы WDF, типы драйверов и типы объектов устройств 147
Свойства устройств 147
Инициализирование объекта устройства 149
Объекты очередей и другие вспомогательные объекты 149
Интерфейсы устройств 150
Интерфейсы устройств и символьные ссылки 151
Создание и инициализирование объекта устройства UMDF 151
Создание объекта обратного вызова устройства 152
Создание и инициализирование инфраструктурного объекта устройства 152
Пример UMDF: интерфейс устройства 154
Создание и инициализирование объекта устройства KMDF 155
Структура инициализации устройства KMDF 155
Инициализация KMDF объектов FDO 156
Инициализация KMDF объектов FiDO 156
Область контекста объекта устройства 157
Создание объектов устройств KMDF 157
Дополнительные задачи, выполняемые функцией EvtDriverDeviceAdd 158
Пример KMDF: функция обратного вызова EvtDriverDeviceAdd 158
Перечисление дочерних устройств (только PDO-объекты KMDF) 160
Статическое и динамическое перечисление в драйверах шины 160
Динамическое перечисление 160
Статическое перечисление 161
Инициализация объектов PDO 161
Способы именования устройства для драйверов KMDF 162
Именованные объекты устройств 162
Дескрипторы безопасности 163
Часть III. Применение основ WDF 165
Глава 7. Plug and Play и управление энергопотреблением 167
Введение в Plug and Play и управление энергопотреблением 168
О механизме Plug and Play 169
О состояниях энергопотребления 170
Политика энергопотребления 172
Plug and Play и управление энергопотреблением в WDF 173
Стандартные настройки Plug and Play и управления энергопотреблением 173
Очереди ввода/вывода и управление энергопотреблением 174
Обратные вызовы функций для событий Plug and Play и управления энергопотреблением 174
Поддержка бездействия и пробуждения (только для KMDF) 176
Энергостраничные и неэнергостраничные драйверы 177
Порядок обратных вызовов функций для событий Plug and Play и управление энергопотреблением 179
Перечисление и запуск устройств 183
Отключение питания и удаление устройства 186
Неожиданное извлечение 190
Последовательность действий при неожиданном удалении для драйверов UMDF 190
Последовательность действий при неожиданном удалении устройства для драйверов KMDF 191
Реализация Plug and Play и управления энергопотреблением в драйверах WDF 192
Чисто программные драйверы Plug and Play и управление энергопотреблением 193
Пример UMDF: чисто программный драйвер фильтра для Plug and Play 194
Пример KMDF: чисто программный драйвер фильтра для Plug and Play 195
Действия инфраструктуры для чисто программных драйверов 197
Plug and Play и управление энергопотреблением в простых аппаратных драйверах 197
Инициализация и деинициализация устройства при включении и выключении 198
Управление энергопотреблением очередей в аппаратных функциональных драйверах 199
Пример UMDF: код для Plug and Play и управления энергопотреблением в протокольном функциональном драйвере 200
Управляемая энергопотреблением очередь для драйвера UMDF 201
Методы интерфейса IPnpCallbackHardware 201
Методы интерфейса IPnpCallback 203
Пример KMDF: код для Plug and Play и управления энергопотреблением в простом аппаратном функциональном драйвере 204
Пример KMDF: регистрация обратных вызовов и организация управляемых энергопотреблением очередей 205
Пример KMDF: обратные вызовы для входа и выхода из состояния D0 207
Действия инфраструктуры для простого аппаратного функционального драйвера 208
KMDF, устройства хранение и гибернация 210
Продвинутые возможности управления энергопотреблением для драйверов KMDF 210
Поддержка бездействия устройства в режиме низкого энергопотребления для драйверов KMDF 210
Настройки и управление бездействием в драйверах KMDF 211
Выбор периода простоя и состояний пониженного энергопотребления в драйверах KMDF 214
Поддержка пробуждения устройства для драйверов KMDF 215
Реализация пробуждения из состояния Sx в драйверах KMDF 217
Реализация пробуждения из состояния S0 в драйверах KMDF 219
Пример KMDF: поддержка бездействия и пробуждения устройств 220
Действия инфраструктуры для поддержки бездействия устройства 223
Действия инфраструктуры, поддерживающие пробуждение устройства 223
Глава 8. Поток и диспетчеризация ввода/вывода 226
Основные типы запросов ввода/вывода 227
Запросы на создание 227
Запросы на очистку и закрытие 227
Запросы на чтение и запись 228
Запросы управления вводом/выводом устройства 228
Обзор типов запросов ввода/вывода 230
Типы передач ввода/вывода 230
Буферизованный ввод/вывод 232
Прямой ввод/вывод 232
Ввод/вывод типа METHOD_NEITHER 232
Тип ввода/вывода METHOD_NEITHER в UMDF 232
Тип ввода/вывода METHOD_NEITHER в KMDF 233
Поток запросов ввода/вывода 234
Путь запроса ввода/вывода через стек устройств UMDF 235
Путь запросов ввода/вывода сквозь драйвер KMDF 237
Обработка завершения запросов ввода/вывода 239
Обработка завершения запросов ввода/вывода UMDF 239
Обработка завершения запросов ввода/вывода KMDF 239
Обработка завершения запросов ввода/вывода в Windows 240
Поток запросов ввода/вывода в инфраструктурах 240
Предварительная обработка пакетов IRP 242
Маршрутизация пакетов IRP к внутреннему обработчику запросов 242
Ход операций в обработчике запросов ввода/вывода 242
Проверка достоверности параметров 243
Обработка запросов в обработчике ввода/вывода 243
Объекты запросов ввода/вывода 244
Буферы ввода/вывода и объекты памяти 245
Извлечение буферов в драйверах UMDF 246
Извлечение буферов в драйверах KMDF 247
Время жизни запросов, памяти и указателей на буферы 253
Очереди ввода/вывода 253
Конфигурация очереди и типы запросов 254
Указание типа запроса для очереди 255
Обратные вызовы для очереди 255
Стандартные очереди 256
Очереди и управление энергопотреблением 257
Управляемые энергопотреблением очереди 257
Неуправляемые энергопотреблением очереди 259
Тип диспетчеризации 259
Управление очередью 260
Пример UMDF: создание очередей ввода/вывода 261
Стандартная очередь UMDF 262
Нестандартные очереди UMDF 263
Очереди UMDF с ручной диспетчеризацией 264
Пример KMDF: создание очередей ввода/вывода 265
Стандартная очередь KMDF 266
Нестандартная очередь KMDF 266
Извлечение запросов из очереди с ручной диспетчеризацией 267
Функции обратного вызова по событию 271
Объект файла для ввода/вывода 271
Автоматическая пересылка запросов на создание, очистку и закрытие 272
Обратные вызовы по событиям ввода/вывода для запросов на создание 273
Обработка запросов на создание в драйверах UMDF 274
Имперсонация в драйверах UMDF 275
Обработка запросов на создание в драйверах KMDF 278
Обратные вызовы по событиям ввода/вывода для очистки и закрытия 280
Функции обратного вызова для запросов на чтение, запись и IOCTL 281
Обратные вызовы для запросов на чтение и запись 282
Обратные вызовы для запросов IOCTL 286
Стандартные обратные вызовы для ввода/вывода 288
Завершение запросов ввода/вывода 290
Отмененные и приостановленные запросы 292
Отмена запросов ввода/вывода 292
Приостановка запроса ввода/вывода 294
Адаптивные тайм-ауты в UMDF 295
Самоуправляемый ввод/вывод 296
Самоуправляемый ввод/вывод при запуске и перезапуске устройства 298
Самоуправляемый ввод/вывод при переходе устройства в состояние пониженного энергопотребления или при его удалении 298
Пример KMDF: реализация таймера WDT 299
Пример: регистрация функций обратного вызова для самоуправляемого ввода/вывода 300
Пример: создание и инициализация таймера 300
Пример: запуск таймера 301
Пример: остановка таймера 302
Пример: перезапуск таймера 303
Пример: удаление таймера 303
Глава 9. Получатели ввода/вывода 304
О получателях ввода/вывода 305
Стандартные получатели ввода/вывода 305
Удаленные получатели ввода/вывода в драйверах KMDF 305
Общие и специализированные получатели ввода/вывода 306
Реализация получателя ввода/вывода в UMDF 307
Диспетчеры ввода/вывода UMDF 307
Внутристековые файлы для получателей ввода/вывода в драйверах UMDF 309
Создание и управление получателями ввода/вывода 310
Обращение к получателю ввода/вывода 310
Создание удаленных получателей ввода/вывода в драйверах KMDF 311
Функции инициализации для структуры параметров получателя ввода/вывода 311
Пример KMDF: создание и открытие удаленного получателя ввода/вывода 314
Управление состояниями получателя ввода/вывода 315
Методы для управления состоянием получателя ввода/вывода 316
Обратные вызовы получателей ввода/вывода для драйверов KMDF 317
Пример KMDF: функция обратного вызова EvtIoTargetQueryRemove 318
Создание запроса ввода/вывода 319
Пример UMDF: создание объекта запроса ввода/вывода WDF 319
Пример KMDF: создание объекта запроса ввода/вывода WDF 320
Объекты памяти и буферы для созданных драйвером запросов ввода/вывода 320
Выделение объектов памяти и буферов для запросов ввода/вывода 322
Родитель объекта памяти 322
Типы буферов 323
Одновременное создание объекта памяти и буфера 323
Создание объекта памяти, использующего уже существующий буфер 324
Сопоставление объекта памяти объекту запроса ввода/вывода 324
Пример UMDF: создание объекта памяти, использующего уже существующий буфер 325
Пример KMDF: создание объекта памяти и нового буфера 326
Форматирование запросов ввода/вывода 327
Когда нужно форматировать запрос 327
Форматирование запроса 327
Форматирование неизмененного запроса для стандартного получателя ввода/вывода 328
Форматирование измененных или созданных драйвером запросов 328
Методы форматирования UMDF для запросов ввода/вывода 328
Методы форматирования KMDF для запросов ввода/вывода 328
Параметры для методов форматирования 329
Пример UMDF: форматирование запроса на запись 329
Пример KMDF: форматирование запроса на чтение 330
Обратные вызовы для завершения ввода/вывода 331
Обработка в функции обратного вызова завершения ввода/вывода 331
Извлечение статуса завершения и другой информации 332
Отправление запросов ввода/вывода 333
Опция для отправки запросов 334
Значения тайм-аута для запросов ввода/вывода 334
Синхронные и асинхронные запросы ввода/вывода 335
Эффект, оказываемый состоянием получателя ввода/вывода 335
Опция "отправил и забыл" 336
Пример UMDF: отправка запроса стандартному получателю ввода/вывода 336
Пример KMDF: опция "отправил и забыл" 338
Пример KMDF: форматирование и отправление запроса получателю ввода/вывода 340
Разбивка запросов ввода/вывода на подзапросы 341
Пример KMDF: повторное использование объекта ввода/вывода 342
Отмена отправленного запроса 345
Пример UMDF: отмена всех запросов ввода/вывода для файла 346
Пример KMDF: отмена запросов ввода/вывода 347
Получатели ввода/вывода FileHandle в драйверах UMDF 347
Получатели ввода/вывода USB 349
Устройства USB 349
Конфигурационные дескрипторы и дескрипторы устройств 350
Модели передачи данных USB 352
Специализированные получатели ввода/вывода USB в WDF 353
Объекты устройств исполнителей USB 354
Объекты интерфейса USB 354
Объекты каналов исполнителей USB 355
Конфигурирование получателей ввода/вывода USB 355
Пример UMDF: конфигурирование получателя ввода/вывода USB 356
Пример KMDF: конфигурирование получателя ввода/вывода USB 359
Отправление запроса ввода/вывода получателю USB 363
Пример UMDF: отправление синхронного запроса получателю ввода/вывода USB 363
Пример KMDF: отправление асинхронного запроса ввода/вывода получателю USB 365
Средство непрерывного считывания USB в KMDF 368
Рекомендация для отправления запросов ввода/вывода 369
Глава 10. Синхронизация 371
Когда требуется применение синхронизации 372
Пример синхронизированного доступа к общим данным 372
Требования синхронизации для драйверов WDF 374
Возможности синхронизации, предоставляемые WDF 375
Подсчет ссылок и иерархическая объектная модель 376
Сериализация обратных вызовов функций для событий Plug and Play и энергопотребления 376
Управление потоком для очередей ввода/вывода 377
Блокировка представления объекта 377
Область синхронизации и сериализация функций обратных вызовов ввода/вывода 378
Область синхронизации на уровне устройства и методы диспетчеризации очереди 379
Область синхронизации в драйверах UMDF 382
Область синхронизации в драйверах KMDF 383
Стандартные настройки области синхронизации 385
Синхронизация на уровне устройства 385
Синхронизация на уровне очереди 385
Пример KMDF: область синхронизации 386
Автоматическая сериализация функций обратных вызовов процедурами DPC, таймерами и рабочими элементами 387
Уровни исполнения в драйверах KMDF 388
Спин-блокировки и wait-блокировки KMDF 390
Wait-блокировки 390
Спин-блокировки 391
Виды спин-блокировок 392
Пример KMDF: спин-блокировки 392
Синхронизация отмены запросов ввода/вывода в драйверах KMDF 394
Синхронизация отмены через область синхронизации 394
Синхронизация отмены с отслеживанием состояния в области контекста 395
Отмена входящих запросов синхронно с подзапросами 399
Сводка методов синхронизации и общие советы 401
Глава 11. Трассировка и диагностируемость драйверов 403
Основы программной трассировки с применением WPP 404
Преимущества программной трассировки WPP 404
Гибкое динамическое управление 404
Возможность просмотра сообщений в режиме реального времени или запись их в файл 404
Обильная информация 404
Охрана интеллектуальной собственности 405
Легкость перехода от операторов печати отладчика 405
Включение в поставляемые продукты 405
Минимальное воздействие на производительность 405
Компоненты программной трассировки WPP 405
Поставщик трассировки 406
Контроллер трассировки 406
Буфер трассировки 406
Сеанс трассировки 406
Потребитель трассировки 407
WPP и ETW 408
ETW в Windows Vista 408
Функции и макросы для работы с сообщениями трассировки 409
Макрос DoTraceMessage 410
Преобразование операторов печати отладчика в ETW 410
Условия для сообщений 410
Специальные функции сообщений трассировки 411
Поддержка программной трассировки в драйвере 411
Модифицирования файла Sources для исполнения препроцессора WPP 412
Пример UMDF: директива RUN_WPP для образца драйвера Fx2_Driver 413
Специальное сообщение трассировки драйвера Fx2_Driver 413
Пример KMDF: директива RUN_WPP для образца драйвера Osrusbfx2 414
Подключение TMH-файла 415
Пример UMDF: подключение TMH-файла 415
Пример KMDF: подключение TMH-файла 415
Определение контрольного GUID и флагов 416
Пример UMDF: определение контрольного GUID и флагов 417
Пример KMDF: определение WPP_CONTROL_GUIDS и флагов 418
Инициализация и очистка трассировки 418
Инициализация трассировки 418
Очистка после трассировки 420
Оснащение кода драйвера 422
Пример UMDF: добавление вызовов функций сообщений трассировки в код драйвера 422
Пример KMDF: добавление вызовов функций сообщений трассировки в код драйвера 422
Инструменты для программной трассировки 423
Проведение сеанса программной трассировки 424
Подготовка драйвера 424
Просмотр журнала трассировки драйвера утилитой TraceView 425
Создание и просмотр файла журнала трассировки 425
Просмотр журнала трассировки в режиме реального времени 426
Просмотр инфраструктурного журнала трассировки с помощью базовых инструментов трассировки 427
Практические рекомендации: думайте о диагностике 429
Глава 12. Вспомогательные объекты WDF 431
Выделение памяти 431
Локальное хранилище 432
Объекты памяти и буферы ввода/вывода 432
Объекты памяти UMDF и их интерфейсы 433
Объекты памяти KMDF и их методы 434
Обращение к реестру 436
Хранилище свойств устройства UMDF 436
Объекты реестра KMDF и их методы 439
Общие объекты 443
Пример UMDF: создание общего объекта 443
Пример KMDF: создание общего объекта 444
Объекты коллекции KMDF 444
Методы коллекции 445
Пример: создание и использование коллекции 446
Объекты таймера KMDF 448
Методы объекта таймера 448
Временные интервалы 449
Функция обратного вызова EvtTimerFunc 450
Пример: использование объекта таймера 450
Поддержка интерфейса WMI в драйвере KMDF 452
Работа с WMI 452
Требования для поддержки WMI 453
Инициализация поддержки WMI 454
Ресурс MOF 454
Объект поставщика WMI 454
Объекты экземпляра WMI 455
Функции обратного вызова для событий экземпляра WMI 458
Пример: запрос данных у экземпляра WMI 458
Пример: организация экземпляра WMI 459
Пример: организация элемента данных WMI 460
Глава 13. Шаблон UMDF-драйвера 462
Описание образца драйвера Skeleton 462
Образец драйвера Skeleton 463
Файлы образца драйвера Skeleton 463
Исходные файлы 463
Файлы поддержки компоновки 464
Файлы для поддержки инсталляции 464
Модификация файлов образца драйвера Skeleton под собственные требования 464
Инфраструктура DLL 465
Функция DllMain 465
Функция DllGetClassObject 466
Базовая поддержка технологии COM 467
Класс CUnknown 467
Класс CClassFactory 467
Объект обратного вызова для образца драйвера Skeleton 468
Метод CreateInstance 468
Интерфейс IUnknown 469
Интерфейс IDriverEntry 469
Необязательные интерфейсы 470
Объект обратного вызова устройства в образце драйвера Skeleton 470
Вспомогательные методы для объекта обратного вызова устройства 471
Модификация вспомогательных файлов образца драйвера Skeleton 473
Файл Sources 473
Файлы Make 474
Файл Exports 474
Файл версии ресурсов 475
Файл INX 475
Часть IV. Смотрим глубже - больше о драйверах WDF 481
Глава 14. За пределами инфраструктур 483
Использование системных сервисов, не входящих в состав инфраструктур 483
Использование функций Windows API в драйверах UMDF 484
Для драйверов UMDF, исполняющихся на Windows XP 486
Применение вспомогательных процедур режима ядра в драйверах KMDF 486
Обработка запросов, не поддерживаемых инфраструктурами 489
Обработка по умолчанию неподдерживаемых запросов 489
Обработка неподдерживаемых запросов в драйверах KMDF 490
Пример: организация функции обратного вызова предварительной обработки EvtDriverDeviceAdd 491
Пример: обработка в функции обратного вызова EvtDeviceWdmPreprocessIrp 491
Глава 15. Планирование, контекст потока и уровни IRQL 493
Потоки 494
Планирование потоков 494
Определение контекста потока 495
Контекст потока драйверных функций KMDF 496
Уровни IRQL 497
Уровни IRQL, специфичные для процессора и потока 498
Уровень IRQL PASSIVE_LEVEL 499
Уровень IRQL PASSIVE_LEVEL в критической области 500
Уровень IRQL APC_LEVEL 500
Уровень IRQL DISPATCH_LEVEL 500
Уровень IRQL DIRQL 502
Уровень IRQL HIGH_LEVEL 502
Рекомендации по исполнению на уровне IRQL DISPATCH_LEVEL или высшем 503
Вызовы функций, исполняющихся на низких уровнях IRQL 503
Сценарии прерывания потоков 504
Прерывание потока на однопроцессорной системе 504
Прерывание потока на многопроцессорной системе 505
Тестирование на наличие проблем, связанных с IRQL 507
Способы получения текущего уровня IRQL 507
Макросы PAGED_CODE и PAGED_CODE_LOCKED 508
Опции инструмента Driver Verifier 508
Рабочие элементы и драйверные потоки 509
Рабочие элементы 510
Пример KMDF: применение рабочего элемента 510
Оптимальные методики для управления контекстом потока и IRQL в драйверах KMDF 512
Глава 16. Аппаратные ресурсы и прерывания 514
Аппаратные ресурсы 514
Идентификация и освобождение аппаратных ресурсов 515
Идентификация ресурсов: подготовка аппаратного обеспечения 516
Освобождение аппаратного обеспечения 516
Списки ресурсов 517
Анализ аппаратных ресурсов драйвером 517
Платформенная независимость и отображение ресурсов драйвера 518
Пример: отображение ресурсов 519
Пример: отмена отображения ресурсов 522
Прерывания и их обработка 522
Объекты прерывания 523
Структура конфигурации объекта прерывания 524
Разрешение и запрещение прерываний 526
Обработка после разрешения и до запрещения прерываний 528
Процедуры обслуживания прерываний 529
Отложенная обработка прерываний 531
Синхронизация обработки на уровне DIRQL 532
Глава 17. Прямой доступ к памяти 533
Базовые понятия и терминология DMA 533
Транзакции DMA и передачи DMA 534
Пакетный DMA и DMA с применением общего буфера 534
Устройства DMA пакетной конструкции 535
Устройства DMA с применением общего буфера 535
Устройства DMA гибридной конструкции 535
Поддержка метода "разбиение/объединение" 535
Информация об устройстве, специфичная для DMA 536
Информация об устройстве и конструкция драйверов DMA 537
Тип конструкции DMA 537
Возможности адресации устройства 538
Аппаратная поддержка метода "разбиение/объединение" 538
Максимальный объем данных передачи 538
Требуемое выравнивание буфера 538
Факторы, не принимающиеся к рассмотрению 538
Абстракция DMA в Windows 539
Операции DMA и кэш процессора 540
Завершение передач DMA сбросом кэшей 541
Регистры отображения 541
Концепция 541
Реализация 543
Когда применять регистры отображения 543
Поддержка системного механизма "разбиение/объединение" 544
Концепция 544
Реализация 545
Передача DMA по любому адресу физической памяти 545
Концепция 546
Реализация 546
Реализация драйверов DMA 547
Инициализации драйвера DMA 548
Объект выключателя DMA 549
Объект общего буфера 549
Объект транзакции DMA 550
Пример: инициализации драйвера DMA 550
Инициирование транзакции 552
Инициализация транзакции 552
Исполнение транзакции 553
Пример: инициирование транзакции 553
Обработка запроса 555
Определение функции EvtProgramDma 555
Задачи, выполняемые функцией EvtProgramDma 556
Пример: обработка запроса 557
Обработка завершения DMA 558
Завершение передачи, транзакции и запроса 558
Пример: обработка завершения DMA 559
Тестирование драйверов DMA 560
Верификация, специфичная для DMA 560
Расширение отладчика !dma 561
Расширения отладчика KMDF для DMA 561
Рекомендации к разработке драйверов DMA 563
Глава 18. Введение в COM 564
Прежде чем приступить 564
Структура драйвера UMDF 565
Краткий обзор COM 567
Содержимое объекта COM 568
Объекты и интерфейсы 568
Интерфейс IUnknown 569
Подсчет ссылок 570
Рекомендации по использованию методов AddRef и Release 570
Подсчет ссылок 570
Использование указателей интерфейса в качестве параметров 570
Вызовы метода Release 571
Исправление ошибок со счетчиком ссылок 571
Идентификаторы GUID 572
Таблица VTables 572
HRESULT 573
Свойства и события 574
Библиотека ATL 575
Файлы IDL 575
Использование объектов COM UMDF 577
Использование объекта COM 577
Получение интерфейса через метод обратного вызова 578
Получение интерфейса через создание объекта UMDF 578
Получение интерфейса через вызов метода QueryInterface 579
Управление временем жизни объекта COM 580
Реализация инфраструктуры DLL 580
Функция DllMain 581
Функция DllGetClassObject 582
Фабрика классов 583
Реализация фабрики классов 583
Объекты, не требующие фабрики классов 585
Реализация объектов обратного вызова UMDF 586
Реализация класса для объекта COM 586
Реализация интерфейса IUnknown 587
Методы AddRef и Release 588
Функция QueryInterface 589
Реализация объектов обратного вызова UMDF 591
Часть V. Создание, установка и тестирование драйверов WDF 593
Глава 19. Сборка драйверов WDF 595
Общие положения по сборке драйверов 595
Драйверы UMDF: обстоятельства, учитывающиеся при сборке 596
Драйверы KMDF: обстоятельства, учитывающиеся при сборке 596
Введение в сборку драйверов 597
Среда сборки 597
Вспомогательные файлы утилиты Build 598
Обязательные файлы 599
Необязательные файлы 599
Ограничения на файлы проекта 600
Сборка проекта 600
Широко употребляемые флаги утилиты Build 601
Распространенные выходные файлы, создаваемые утилитой Build 601
Полезные советы для UMDF 602
Пример UMDF: сборка образца драйвера Fx2_Driver 602
Файл Sources для драйвера Fx2_Driver 602
Макросы файла Sources для драйвера Fx2_Driver 603
Номера версии UMDF 603
Стандартные выходные файлы 604
Специальные выходные файлы 604
Исходные файлы, заголовки и библиотеки 604
Конфигурация сборки 605
Файлы Makefile и Makefile.inc для драйвера Fx2_Driver 606
Сборка драйвера Fx2_Driver 606
Пример KMDF: сборка образца драйвера Osrusbfx2 607
Файл Sources для драйвера Osrusbfx2 607
Макросы файла Sources для драйвера Osrusbfx2 608
Номер версии KMDF 608
Стандартные выходные файлы 608
Специальные выходные файлы 608
Исходные файлы, заголовки и библиотеки 608
Конфигурация сборки 609
Файлы Makefile и Makefile.inc для драйвера Osrusbfx2 609
Сборка драйвера Osrusbfx2 610
Глава 20. Установка драйверов WDF 611
Основы установки драйверов 612
Ключевые задачи по установке драйверов 612
Инструменты и методы установки 612
Аспекты, принимаемые во внимание при установке драйверов WDF 613
Управление версиями WDF и установка драйверов 613
Обновления дополнительных версий 614
Обновления основных версий 614
Распространение инфраструктуры 614
Привязка драйверов к инфраструктуре 615
Драйверы KMDF 615
Драйверы UMDF 616
Пакеты соинсталляторов WDF 616
Пакет соинсталлятора UMDF 617
Пакет соинсталлятора KMDF 618
Компоненты драйверного пакета WDF 618
Создания INF-файла для драйверного пакета WDF 619
Широко применяемые разделы INF-файла 620
Инструменты для работы с INF-файлами 621
Файлы INF для разных процессорных архитектур 621
Файлы INF драйверов WDF: разделы соинсталляторов 622
Примеры INF-файлов WDF 624
Пример UMDF: INF-файл драйвера Fx2_Driver 625
Пример KMDF: INF-файл драйвера Osrusbfx2 628
Подписывание и распространение драйверного пакета 629
Подписанные файлы каталогов 629
Указание файла каталогов в INF-файле 630
Подписывание драйверов BSD 630
Распространение драйверного пакета 630
Установка драйверов 631
Факторы, принимаемые во внимание для тестовых установок 631
Факторы, принимаемые во внимание для эксплутационных установок 632
Установка драйверов с помощью менеджера PnP 632
Установка драйверов с помощью SPInst или DIFxApp 633
Установка драйверов с помощью специализированного установочного приложения 634
Установка и обновление драйверов с помощью инструмента DevCon 634
Обновление драйверов с помощью Диспетчера устройств 635
Удаление драйверов 635
Процесс установки драйверов 636
Этап 1. Установка требуемой инфраструктуры WDF (если необходимо) 636
Этап 2. Создание узла devnode для устройства 636
Этап 3. Развертывание драйверного пакета в хранилище драйверов 636
Этап 4. Установка драйвера 636
Действия по удалению драйвера 636
Удаление устройства 637
Удаление драйверного пакета из хранилища драйверов 637
Удаление двоичных файлов драйвера 637
Инструменты для удаления устройств и драйверов 638
Поиск и удаление проблем с установкой драйверов WDF 639
Поиск и исправление ошибок установки с помощью отладчика WinDbg 639
Журналы регистрации ошибок установки драйверов 640
Распространенные ошибки при установке драйверов WDF 641
Фатальные ошибки при установке 641
Коды ошибок менеджера PnP 642
Глава 21. Инструменты для тестирования драйверов WDF 644
Начало работы по тестированию драйверов 645
Выбор тестовой системы 645
Обзор инструментов для тестирования драйверов WDF 646
Методы трассировки для тестирования драйверов 646
Инструменты PREfast и SDV 647
Другие инструменты для тестирования драйверов 647
Инструмент INF File Syntax Checker (ChkINF) 648
Инструмент Device Console 648
Инструмент Device Path Exerciser 649
Инструменты Kern Rate и Kern Rate Viewer 649
Инструмент Plug and Play Driver Test 650
Инструмент Plug and Play CPU Test 651
Инструмент Memory Pool Monitor 651
Инструмент Power Management Test Tool 651
Инфраструктура WDTF 652
Инструмент Driver Verifier 654
Когда использовать Driver Verifier 654
Как работает Driver Verifier 655
Как работать с Driver Verifier 656
Использование утилиты Verifier из командной строки 656
Запуск Driver Verifier Manager 657
Примеры работы с Driver Verifier 657
Пример 1: активирование стандартных опций для нескольких драйверов 657
Пример 2: активирование специальных опций для всех драйверов 657
Пример 3: запуск и остановка проверки драйвера без перезагрузки 658
Пример 4: активирование или деактивирование опций без перезагрузки 659
Пример 5: деактивирование всех опций Driver Verifier 659
Пример 6: деактивирование Driver Verifier 659
Пример 7: эмуляция недостаточных ресурсов 659
Пример 8: принудительная проверка уровня IRQL (Force IRQL Checking) 661
Использование информации от Driver Verifier при отладке 662
Пример 1: просмотр трассировок операций стека с помощью !verifier 662
Пример 2: использование !verifier для вывода счетчиков ошибок и выделений памяти из пула 663
Инструмент KMDF Verifier 664
Когда использовать KMDF Verifier 665
Как работает KMDF Verifier 665
Как активировать KMDF Verifier 665
Использование информации от KMDF Verifier при отладке 666
Верификатор UMDF Verifier 667
Остановы bugcheck UMDF 668
Извещение об ошибках UMDF 669
Верификатор Application Verifier 669
Как работает Application Verifier 670
Использование Application Verifier для верификации драйверов UMDF 670
Оптимальные методики для тестирования драйверов WDF 671
Советы по сборке драйверов 671
Советы по использованию инструментов наилучшим образом 672
Советы для тестирования драйвера на протяжении его жизненного цикла 673
Глава 22. Отладка драйверов WDF 674
Обзор инструментов отладки для WDF 674
Отладчик WinDbg 675
Прочие инструменты 675
Трассировка WPP 676
Отладка макросов и процедур 676
Основы отладчика WinDbg 676
Проверочные и свободные версии сборок 677
Пользовательский интерфейс 677
Команды отладчика 678
Символы и исходный код 679
Расширения отладчика 681
Подготовка к отладке драйверов UMDF 682
Как разрешить отладку кода загрузки и запуска драйвера 683
Как начать отладку кода загрузки и запуска драйвера UMDF 684
Отладка исполняющегося драйвера UMDF 685
Отслеживание объектов UMDF и подсчет ссылок 686
Отладка фатального сбоя драйвера UMDF 687
Подготовка к отладке драйверов KMDF 687
Как активировать отладку режима ядра на тестовом компьютере 688
Как активировать отладку режима ядра для Windows Vista 688
Как активировать отладку режима ядра для более ранних, чем Windows Vista, версий Windows 689
Подготовка тестового компьютера к отладке драйверов KMDF 689
Как начать сеанс отладки KMDF 690
Как начать отладку фатального сбоя драйвера KMDF 692
Пошаговый разбор отладки драйверов UMDF на примере образца драйвера Fx2_Driver 692
Подготовка к сеансу отладки драйвера Fx2_Driver 692
Начало сеанса отладки для драйвера Fx2_Driver 693
Анализ процедуры обратного вызова OnDeviceAdd для драйвера Fx2_Driver 693
Исследование с помощью расширений отладчика UMDF объекта обратного вызова устройства 695
Исследование с помощью расширений отладчика UMDF запроса ввода/вывода 696
Пошаговый разбор отладки драйверов KMDF на примере образца драйвера Osrusbfx2 697
Подготовка к сеансу отладки драйвера Osrusbfx2 698
Начало сеанса отладки для драйвера Osrusbfx2 698
Анализ процедуры обратного вызова EvtDriverDeviceAdd 698
Исследование объекта устройства с помощью расширений отладчика KMDF 699
Исследование запроса ввода/вывода с помощью расширений отладчика UMDF запроса ввода/вывода 700
Просмотр сообщения трассировки с помощью WinDbg 702
Просмотр журнала KMDF с помощью WinDbg 703
Получение информации протоколирования после останова bugcheck 704
Управление содержимым журнала KMDF 705
Дополнительные предложения для экспериментирования с WinDbg 706
Глава 23. Инструмент PREfast for Drivers 707
Введение в PREfast 707
PREfast и инструмент Code Analysis для Visual Studio 708
Как работает PREfast 708
Какие ошибки может выявлять PREfast 709
Использование PREfast 710
Задание режима анализа для PREfast 710
Как запустить PREfast 710
Сборка примеров PREfast 711
Вывод на экран результатов анализа PREfast 713
Утилита прос

Быстрый фильтр: Книга | Windows | Driver | Foundation | | разработка | драйверов | | Орвик |

Доставка Книга Windows Driver Foundation: разработка драйверов. Орвик почтой наложным платежом.

 
     



    Купить книгу в разделе Книги компьютерные - Книги прочая разработка  
 
Книга Основы программирования для чайников. 4-е изд. Вонг
Купить книгу почтой в интернет магазине Книга Основы программирования для чайников. 4-е изд. Вонг В этой книге в популярной форме описываются базовые принципы программирования на разных языках и в разных операционных системах. Обсуждаются типы переменных, массивы, операторы цикла, компиляторы, подпрограммы, инструменты отладки, вопросы создания графических интерфейсов и программирования для Интернета.
Книга Системное программное обеспечение: Учебник для вузов. 3-е изд. Молчанов
Купить Книга Системное программное обеспечение: Учебник для вузов. 3-е изд. Молчанов В книге рассматриваются основные теоретические принципы и реализующие их технологии, лежащие в основе современных средств разработки программного обеспечения. В ней содержится вся необходимая информация о трансляторах, компиляторах, интерпретаторах, а также о других составляющих систем программирования, от базовых теоретических сведений до современных технологий разработки распределенных программ.
 
     
 
   
СУПЕРКНИГА © 2003-2011
Skylogic - Заказать продвижение сайтов в Одессе
Книги купить почтой - доставка книги почтой по Украине.
Интернет магазин книги | Новые книги | Оплата книги | Доставка книги | Контакты | Помощь