скрытое меню

книга Орвик в помощь

Как понимать драйвер - очень помогла книга Пенни Орвик, Гай Смит. В момент когда нифига не понятно, спокойненько берем эту книгу , заливаем на eBook и читаем лежа в постели (не торопясь , с удовольствием), делаем заметки. Одного дня не хватит.

Самое прикольное - надо серьезно относится к командной строке и команде build, ибо драйверы не собираются в VisualStudio и сама Windows собирается через этот build.

В папочке C:\WinDDK\7600.16385.1 собрано все : и инструменты , и примеры.

KMDF - драйверы пишется на C (тута С++ может налажать с выделением памяти не туда куда нужно).
UMDF - драйверы на С++ , тама на COM объектах замес, интерфейсы и все такое...

Нас интересует UMDF драйвер типа VirtualSerial и у нему присобачить TCP слушающий поток.

Так вот UMDF драйвер это dll файл , inProc тип , т.е. он не создает своего потока , а работает в потоке вызывающего хоста.

Делать поток для прослушивания TCP порта будем в Initialize при создании драйвера. Тупо смотрим пример tcp2com.

Привожу заметки сумасшедшего, как есть пока без корректировки:

похоже драйвер не создает своего потока

tlist утилита
примеры по ходу книги:
skeleton umdf
fx2_driver umdf

DBH
файлы идентификаторов
отладочная версия виндоус (вроде как есть такая штука)
OSR learning kit
фоновый режим - драйверам
WDM DDI низший уровень
ДРАЙВЕР как одностороннее зеркало

FDO functional dev.object
PDO phisical device object
FIDO filter device objec
IRP method_buffered
ISR interrupt service routing
DFC deferred proc call
IRQL interrupt request level
до 51 страницы дочитал далее бегло промотрел

------------------

DISPATCH_LEVEL
DIRQL
-------------------
аппаратные ресурсы и прерывания Глава 16 - для UMDF тута ничего не надо
read_port_xxx macro write_port_xxx

write/read _register_xxx

функции обратного вызова фов
EvtDtiverDeviceAdd:
wdf_pnppower_event_callbacks structure

EvtDevicePrepareHardware
......
EvtInterruptIsr return false/true = наше устройство вызвало прерывание?
EvtInterruprDpcq
......
EvtDeviceD0Exit
...
EvtDeviceReleaseHardware

usb,1394,bt не генерируют апп.прер.!

HAL hardware abstract layer

MSI Message Signaled Interrupt

глава18 com umdf
inProc dll выполняется в потоке хоста,с++

DllMain
DllGetClassObject
об'екты обратного вызова - интфейсы
IWDFxxxx- об'екты umdf

CreateRequest
QueryInterface

DllMain может вызываться для создания потока!?

Initialize - д/б открытый метод (вызывается извне) т.к. может зак.неудачей

kmdf ntddk.h wdf.h
umdf wudfddi.h

----------- сборка --------------------
build _ только ей собираются дрова
и сама виндоус тоже только ей. Только командная строка.

makefile - ребята изучает все связано с makefile (похоже на ближайшее столетие ничего не поменяется)
inx см.stampinf.exe
makefile.inc
MOF для WMI
Dirs

build -gce только текущую папку с Sources остальные только через .lib

nmake all

Файлы для скачивания

Яндекс.Метрика