2009-05-18 6 views
18

Есть ли у кого-нибудь книги/учебники, которые могут быть полезны при запуске в разработке драйверов устройств Windows?Начало работы по разработке драйверов

Для простой разработки Win32/GUI книга Петцольда, по-видимому, является основной ссылкой. Существует ли такое для водителей?

Я хотел бы отметить, что я фактически не разговариваю с аппаратными средствами - я действительно хочу подражать части оборудования в программном обеспечении, но я хотел бы видеть, как все работает в целом в первую очередь.

Billy3

ответ

11

Одна вещь, чтобы остерегаться является разработка драйверов устройств (архитектура и инструменты) изменяется более чем развитие Win32 ... так что в то время как книга Петцольд от 1990-х годов отлично подходит для Win32 и может рассматриваться как нестареющими , архитектура для многих типов драйверов (драйверы принтеров, сетевые драйверы и т. д.) варьировалась в разных выпусках O/S.

Вот запись в блоге, в которой рассматриваются различные книги: Windows Device Drivers Book Reviews.

Не забывайте документацию Майкрософт, прилагаемую к DDK: и, самое главное, образцы драйверов (исходный код), включенные в DDK. Например, когда я хотел написать примерный драйвер последовательного порта, я обнаружил, что примерная документация по серийному драйверу в сочетании с документацией DDK была бесценной (и достаточной).

+0

Я также хотел бы добавить, что это хорошая идея подписаться на список рассылки ntdev (http://www.osronline.com/cf.cfm?PageURL=showlists.CFM?list=NTDEV), поскольку это может быть большой источник информации, а также указывая на распространенные ошибки. – BCran

+0

Прежде всего вы должны ознакомиться с концепцией операционной системы, после чего вы должны ознакомиться с ОС Windows (прочитайте внутренние окна Марка Руссиновича) – AminM

1

Я бы искал учебники с богатыми примерами, например this one. Суть в разработке драйверов Windows - получить представление о слоях и IRP, IRQL, а также узнать термины, такие как драйверы фильтров. Если вы ищете примеры кода, вот мой код драйвера Spodek: sf.net link. Вы найдете там драйвер фильтра (для клавиатуры, keyb.c), очередь пространства ядра (queue.c) и методы, чтобы скрыть присутствие в системе. Однако это старый (sys) драйвер.

1

Возможно, вам придется использовать совершенно новую инфраструктуру Windows Driver Foundation (WDF) вместо старой структуры WDM. Хорошей отправной точкой является чтение WDF Overview Word documents.

Если вы хотите прочитать книгу, то "Developing Drivers with the Windows Driver Foundation" - это тот, который вы ищете.

+0

Жаль, что мне нужно поддерживать Win2k :( –

6

Изучить скважину для разработки скважин:

a. много программ ядра образцов:

Windows DDK образец:

http://social.msdn.microsoft.com/Forums/en-US/softwaretesting/thread/08690203-1757-4129-b59a-6bae10bcdce8/

WDK образцы:

http://msdn.microsoft.com/en-us/windows/hardware/gg487428

Или просто поиск:

http://www.google.com/search?q=windows+ddk+samples

(поскольку вышеуказанный URL-адрес может измениться, но Google, скорее всего, вернет u наиболее подходящий/доступный)

b.много методов отладки, и среди которых я нашел лучшее VMware (или VirtualBox) + WinDbg + последовательные отладки порта:

http://www.google.com/search?q=windbg+vmware+kernel+debug

и этот документ является классическими для использования VMWare + WinDbg (Лорд Ring0) :

http://silverstr.ufies.org/lotr0/windbg-vmware.html

гр. а также инструменты администрирования системы, которые построены другие:

http://technet.microsoft.com/en-us/sysinternals/bb545021

(В прошлом называли SysInternals построен Марк Руссинович, соавтор «Windows Internal» - ПРОЧИТАТЬ !!)

http://technet.microsoft.com/en-us/sysinternals/bb963901

Из этих инструментов у вас будут огромные возможности отладки.

d. Присоединитесь к списку рассылки ЛАРН (ntdev особенно очень активен, но есть и другие, как WinDbg):

http://www.osronline.com/page.cfm?name=ListServer

е. Смотрите много видео, связанное с окнами + ядром в Channel9 (Google возвращается более 1000 ссылок):

http://www.google.com/search?q=site:channel9.msdn.com+kernel+video&num=100

п. Дискуссионный форум как:

http://social.microsoft.com/Forums/en-us/kernel/threads

http://social.msdn.microsoft.com/Forums/en-US/wdk/threads

Подписка на свободный ЛРН журнал тоже() бумажный носитель. Я получил мое с 1998 года по настоящее время - и он доставлен на полпути вокруг земли!

1

Лично лучший способ начать разработку - это реальная экспозиция. Имея это в виду, я бы рекомендовал эту книгу

The Rootkit Arsenal: Escape and Evasion in the Dark Corners of the System

The Rootkit Arsenal Cover

Это должно быть достаточно, чтобы вы начали иметь некоторый код, который делает ход «что-то», то после того, как у вас есть общую картину, которую вы могли бы остановиться на таких вопросах, как: - Разница между буферизированными/ни/прямыми методами и связанными с ними особенностями.

«Программирование модели драйверов Windows, второе издание» также является отличной помощью, когда вам нужны детали, касающиеся некоторых конкретных тем. Но сначала я считаю, что самое главное - положить вещи в контекст, а затем основываться на этом.

Смежные вопросы