

Самые читаемые новости
- Теперь мы можем наводиться на ракеты
- Охрана Вашей машины у Вашего дома – за недорого
- Дивиар с компьютерной душой
- Бесперебойный видеоблейзер
- Вы просто поворачиваете руку и видите, что произошло на объекте
- А ведь звук распространяется не только в помещении
- CCTV-камеры еще не раз запотеют на похоронах IP-телевидения
- Еще один физический источник полезной информации
- Видеоплан
- Говорим все вместе!
Обезврежена ошибка
Дата публикации: 24.12.2004
Недокументированная проблема Windows–программирования.
Наших программистов, честно говоря, уже трудно чем-то удивить, за долгий опыт работы повидали всякого, но ЭТА проблема заставила понервничать все предприятие.
Технология Direct X, использованная в восьмой версии GOAL на аппаратном уровне, безусловно является серьезным достижением персонального компьютера по работе с ВИДЕО. Применение ее дало ощутимый результат и резко разгрузило ресурсы основного процессора. Сегодня почти каждый знает, если в требовании программного обеспечения указывается поддержка аппаратного Direct X, значит, мы имеем дело с высокопроизводительным продуктом. Однако эта технология менее всего изучена, и на сегодняшний день еще мало практических описаний ее применения. Отсюда и большое число сбойных программ, поступающих на рынок. Не секрет, что высокопроизводительные игрушки очень часто завершают игру перезагрузкой компьютера. И только опыт работы с этой технологией способен помочь создать устойчивый продукт. Понимая, что за нами идут и другие, мы делимся опытом и публикуем проблемы Windows–программирования.
После большого периода испытаний казалось, что решения нет, и что технология Direct X - сырая сама по себе. Крайне редко, не на всех компьютерах, не во всех режимах, но постоянно проявлялась ошибка, приводившая к зависанию компьютера. Месяцами она могла не выдавать себя. Для ее отслеживания были применены все средства от самых современных отладчиков до самых опытных программистов и тестеров, «перекопана» вся информация последних лет по этой технологии и Windows–программированию. Одних только специализированных программных средств отладки было закуплено на 30 000 долларов. Но…
Под угрозой срыва был серьезный коммерческий продукт – GOAL v8. Снимать его с рельсов аппаратных ускорителей ВИДЕО, тем самым уменьшая мощность, крайне не хотелось. Ценой неимоверных усилий и серьезных исследований удалось найти недокументированную проблему драйвера Direct X.
Дальше для программистов:
В очень редких случаях программы, использующие аппаратно эту технологию, неожиданно завершают работу с катастрофической ошибкой D1 - DRIVER_IRQL_NOT_LESS_OR_EQUAL. Эта ошибка возникает тогда, когда драйвер пытается обратиться к выгружаемой странице памяти (или по неверному адресу) при слишком большом уровне прерываний. В драйвере не была учтена ситуация, когда после обработки прерывания, отложенная процедура (служит для завершения обработки прерывания на более низком уровне запроса прерываний) вызывалась не сразу, а с некоторой задержкой. Эта задержка в обработке, как выяснилось, связана с тем, что отложенные процедуры имеют свои приоритеты и процедуры с низким приоритетом, как было в ошибочном драйвере, в крайне редких случаях обрабатываются не сразу. Увеличение приоритета отложенной процедуры исправляет ситуацию.
Вот такая мелочь, не описанная ни в каких известных источниках по программированию, может испортить жизнь серьезной компании.
НИИ СпецЛаб подготавливает целый цикл статей по проблемам ошибок программирования в системах видеозаписи на базе ПК. Подписаться на него можно, прислав письмо по адресу expertCCTV@arena2000.ru .

Защита от любых ошибок
Программная часть системы ААУ – автоматическое антизависающее устройство – теперь поставляется бесплатно. Новогодний подарок

Второе переиздание
Вышла новая версия SL-Control 6.0. Более 6-и лет этому продукту, первые его версии работали под DOS в резидентном режиме, потом под Windows 3.1 и т.д.
Cпециализированные GOAL-центры:
Астана
Москва
Санкт-Петербург
Белгород
Екатеринбург
Иваново
Минск
Брест
Киев
Донецк
Одесса
Клайпеда
пос. Кибрай
Казань
Калининград
Кемерово
Киров
Кострома
Краснодар
Красноярск
Курск
Нижний Новгород
Новосибирск
Пенза
Петропавловск-Камчатский
Ростов-на-Дону
Тольятти
Ногинск
Уфа
Южно-Сахалинск
Челябинск
Ярославль
Мадрид
Владивосток
Владимир
Калуга
Набережные Челны
Брянск
Раменское
San Mateo
Баку
Ульяновск
Иркутск
Orry la Ville
Актобе
Дмитров
Новгород Великий
Днепропетровск
Кишинев
Самара
Смоленск
Новокузнецк
Оренбург
Омск
Коломна
Светлоград
Алматы
Темиртау
Липецк
Ижевск