Як пофіксити MySQL bottlenecks від засновника Percona на Highload fwdays | 13-24.10
×Закрыть

Драйвера Windows — что почитать?

Возникла необходимость внести некоторые правки в драйвера.

По старой памяти достал известную книгу Walter Oney, пролистал и понял что с тех пор мир сильно изменился.

Вопрос, существует ли в природе книга, где описана модель драйверов для XP+ или придется продираться сквозь дебри MSDN?

LinkedIn
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Если у вас драйвер WDF, то можно к примеру эту книгу — www.amazon.com/...1-1&keywords=Penny Orwick.
Но насколько я знаю, старые WDM и даже легаси вполне ходят под той же Win 8. В принципе можно даже не заморачиваться WDF, старые драйвера из книги Они вполне годятся для новых осей.

О, спасибо, похоже то что надо.
К сожалению, а может к счастью, мне надо вносить правки в готовый продукт, а он на WDF.

Я начинал с книжки Солдатова, Программирование драйверов Виндовс. Лучше не находил.
Хотя сейчас приходиться писать минидрайвера типа AVStream для видео. Они значительно проще — там есть основной штатный драйвер, твоя задача написать к ниму оболочку (минидрайвер), которая будет выполнять твои задачи. Т.е. есть набор стандартных таблиц, в которые ты подсовываешь свои функции. В MSDN все классно описано.
Я надеюсь, как и чем подписывать драйвера, ты разобрался.

Солдатов хорош, но древний как говно мамонта. А меня интересуют именно новшества введенные в DDK 7-8 Винды. Они ж там нахрен все попереименовывали и дохренища спрятали под капот.

Теория построения драйвера для XP и 2003 там хорошо описана. Конечно тупо переносить код в проект не получиться. Куча функций устарело. Для этого и существует MSDN
ЗЫ. У меня один код написан для всех ОС. Только собирается через WDK под определенную ОС

В смысле — DDK/WDK API используется только в коллбеках объекта драйвера?

WDK — это среда, в которой собирается сам драйвер, а не API. В каждый такой кит заложено возможность собирать драйвер под определенную ос. Н-р, WDK8 охватывает Висту, 7 и 8. При сборке драйвера в опциях вы в Студии выбираете сборку, cкажем, Виста x64, Дебаг. Студия через WDK соберет драйвер, который будет работать только на Висте х64 в дебаговском исполнении, ну чтобы WinDbg подключить можно было.
Вы были правы, когда указали , что в новых ОС добавляются новые свойства. И если вы их не используете, то код получается прозрачным для всех ОС, поддерживаемых в WDK . D Здесь вы только указывает компилятору, для какой ос собрать драйвер. Противном случае в код добавляется указание компилятору для какой ОС какой код собирать. .

А к чему тогда относятся, допустим, функции WdfDevicexxx ?

Подписаться на комментарии