Re: DMA в legacy-драйвере
От: Геннадий Майко США  
Дата: 17.04.11 18:17
Оценка:
Здравствуйте, tig1818,

T>Уважаемые Гуру! Помогите кто чем. Есть работающий драйвер для не-PnP ISA-карты, не использующий DMA, хотя сама карта умеет работать slave-DMA. После добавления в AddDevice вызова IoGetDmaAdapter на этом вызове система падает в BSOD, не помню код, но комментарий примерно "PnP менеджер нашел конфликт в кривом драйвере". Структура DEVICE_DESCRIPTION заполняется как рекомендует литература, PDO получен от IoCreateDevice. Что неправильно? И обязательно ли в этом случае использование IoReportDetectedDevice? Можно как-нибудь без нее? Уж очень много доработок с ней получается. Заранее благодарен.

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

C уважением,
Геннадий Майко.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.