Глава 1. Общие сведения
9
1.1. Использование функций ввода-вывода 10
1.2. Использование функции DeviceIoControl 14
1.3. Использование драйвера 17
1.4. Использование ассемблера 27
1.5. Недокументированный доступ к портам 28
1.6. Определение параметров оборудования 33
1.7. Драйверы и Windows Vista 50
Глава 2. Мышь
51
2.1. Общие сведения 52
2.2. Использование портов 56
2.2.1 Команда Reset (FFh) 61
2.2.2. Команда Resend (FEh) 62
2.2.3. Команда Set Defaults (F6h) 63
2.2.4. Команда Disable (F5h) 63
2.2.5. Команда Enable (F4h) 63
2.2.6. Команда Set Sample Rate (F3h) 63
2.2.7. Команда Read Device Type (F2h) 65
2.2.8. Команда Set Remote Mode (F0h) 65
2.2.9. Команда Set Wrap Mode (EEh) 66
2.2.10. Команда Reset Wrap Mode (ECh) 66
2.2.11. Команда Read Data (EBh) 66
2.2.12. Команда Set Stream Mode (EAh) 66
2.2.13. Команда Status Request (E9h) 66
2.2.14. Команда Set Resolution (E8h) 70
2.2.15. Команда Set Scaling 2:1 (E7h) 70
2.2.16. Команда Set Scaling 1:1 (E6h) 70
2.3. Использование Win32 API 71
2.3.1. Настройка мыши 71
2.3.2. Работа с курсором 76
Глава 3. Клавиатура
81
3.1. Общие сведения 81
3.2. Использование портов 86
3.2.1. Команда EDh 90
3.2.2. Команда EEh 91
3.2.3. Команда F2h 91
3.2.4. Команда F3h 93
3.3. Использование Win32 API 100
3.3.1. Настройка клавиатуры 102
3.3.2. Использование "горячих" клавиш 104
3.3.3. Поддержка языков 108
Глава 4. Видеоадаптер
111
4.1. Общие сведения 111
4.2. Использование портов 112
4.2.1. Внешние регистры 114
4.2.2. Регистры графического контроллера 117
4.2.3. Регистры контроллера атрибутов 122
4.2.4. Регистры контроллера CRT 126
4.2.5. Регистры ЦАП 136
4.2.6. Регистры синхронизатора 138
4.3. Использование Win32 API 141
4.3.1. Управление графическими режимами 142
4.3.2. Проверка возможностей видеоадаптера 146
4.3.3. Управление монитором 148
Глава 5. Работа с видео
151
5.1. Использование MCI 152
5.2. Использование VFW 161
Глава 6. Звуковая карта
175
6.1. Использование портов 176
6.1.1. Цифровой процессор 177
6.1.2. Микшер 186
6.1.3. Интерфейс MIDI 196
6.2. Использование Win32 API 201
Глава 7. Работа со звуком
219
7.1. Создание плеера аудиодисков 219
7.2. Программирование MIDI 234
7.3. Доступ к файлам в формате MP3 241
Глава 8. Системный динамик
257
8.1. Программирование системного динамика 258
Глава 9. Часы реального времени
261
9.1. Использование портов 262
Глава 10. Таймер
269
Глава 11. Дисковая подсистема
275
11.1. Использование портов 275
11.1.1. Регистры флоппи-дисковода 276
11.1.2. Команды управления для флоппи-дисковода 282
11.1.3. Устройства ATA/ATAPI 296
11.1.4. Команды управления для ATA/ATAPI-устройств 302
11.2. Использование Win32 API 330
Глава 12. Пространство шины PCI
339
12.1. Общие сведения 340
12.2. Использование портов 356
12.2.1. Регистр конфигурации адреса 356
12.2.2. Регистр конфигурации данных 356
Глава 13. Контроллер DMA
367
Глава 14. Контроллер прерываний
375
14.1. Команда ICW1 377
14.2. Команда ICW2 377
14.3. Команда ICW3 377
14.4. Команда ICW4 378
14.5. Команда OCW1 378
14.6. Команда OCW2 379
14.7. Команда OCW3 380
Глава 15. Процессор
383
Глава 16. Аппаратный мониторинг системы
395
Глава 17. Параллельный и последовательный порты
421
17.1. Общие сведения 421
17.2. Использование портов 422
17.3. Использование Win32 API 432
Глава 18. Современные интерфейсы
437
18.1. Интерфейс USB 438
18.1.1. Структура запроса 440
18.1.2. Структура дескрипторов 449
18.1.3. Использование запросов 457
18.1.4. Регистры ввода-вывода 467
18.1.5. Регистры конфигурации 473
18.2. Интерфейс IEEE 1394 474
18.2.1. Описание регистров 475
18.3. Интерфейс Wireless 500
18.3.1. Регистры конфигурации шины PCI 501
18.3.2. Регистры аппаратных возможностей 503
18.3.3. Регистры радиоуправления 505
18.3.4. Регистры хост контроллера 508
18.3.5. Команды и события 515
Приложение 1. Глоссарий 519
Приложение 2. Описание компакт-диска 523
Предметный указатель