Re[2]: DMA в legacy-драйвере
От: tig1818  
Дата: 18.04.11 19:21
Оценка:
Здравствуйте, Геннадий Майко, Вы писали:

Пожалуйста, уважайте коллег и не допускайте излишнего цитирования. Для неуважающих напомню, что есть правила форума и ресурса + санкции за несоблюдение оных. Модератор
ГМ>Какого типа этот драйвер? Legacy NT-4? Или WDM драйвер для работы с не-PNP устройствами?
ГМ>Судя по тому, что Вы упоминули AddDevice, это, скорее всего, второй вариант. Если так, то попробуйте вызвать функцию IoGetDmaAdapter позже, при обработке IRP_MN_START_DEVICE. И заодно проверьте перед вызвом, есть ли в полученных hardware ресурсах информация о DMA. Но, честно говоря, я сомневаюсь, что Вам удасться использовать системный DMA контроллер...
ГМ>PNP manager сам будет разбираться с построением device'ов, поэтому вызывать функцию IoReportDetectedDevice() смысла особого нет.

Драйвер не знаю какого типа, но писан мною лет 5-6 назад под "Солдатовым", пользует для обработки прерываний от карты связку HalGetInterruptVector+IoConnectInterrupt, так что думаю это первый вариант. AddDevice там появилась с перспективой на DMA, но шедевр должен был быть готов "вчера" и поэтому было запущено то что уже работало. Сейчас решено привести все в порядок. Что касается IRP, то их нету. Никаких. Фиктивный обработчик MajorFunction[IRP_MJ_PNP] никогда не выдавал отладочного сообщения о собственном запуске.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.