Re[2]: Компиляция драйвера
От: Fredwriter  
Дата: 26.10.11 13:34
Оценка:
Здравствуйте, okman, Вы писали:

O>Значит, так.

O>В корне проекта должно быть два файла — makefile и sources.
O>Еще бывают файлы dirs, но мы их пока рассматривать не будем.

O>Файл makefile очень простой и всегда одинаковый:

O>

!include $(NTMAKEENV)\Makefile.def

O>Вот и все содержимое.

O>В файле sources определяются исходники драйвера (файлы .c).

O>Плюс некоторые опции сборки (подробно это все расписано в WDK).
O>Например, один из моих файлов sources имеет такое содержание:
O>

O>TARGETNAME=mock_tdi
O>TARGETTYPE=DRIVER
O>RCOPTIONS=$(RCOPTIONS) /d$(HAUBERK_OS_ID)
O>SOURCES=\
O> DriverEntry.c \
O> DispatchCreate.c \
O> DispatchDeviceControl.c \
O> DispatchInternalDeviceControl.c \
O> DispatchCleanup.c \
O> DispatchClose.c \
O> CompleteRequest.c \
O> IRP.c \
O> CancelSafeQueue.c


O>Сборка драйвера очень проста — нужно открыть build prompt для целевой системы (например,

O>WDK/Build Environment/Windows Server 2003/x64 Free Build Environment), затем зайти в
O>папку проекта и выполнить команду build (возможно, с дополнительными флагами).
O>После этого, если сборка пройдет успешно, в подпапке с именем типа objfre_wnet_amd64
O>появятся файлы .sys и .pdb и другие.

O>Более сложные сценарии включают использование inf-файлов и генерацию/подпись каталогов,

O>но это отдельная тема.
Спасибо огромное за информацию. Так как у меня не удачно откомпилировался драйвер у меня не появилось никаких файлов или наоборот.
Еще пару глупых вопросов: Какое расширение должно быть у MakeFile, у меня .mak, а у source .src.
Вот текст моего файла Source:
[g]TARGETNAME = MYDRIVER
TARGETTYPE = DRIVER
#DRIVERTYPE = WDM
TARGETPATH = obj
SOURCES = MyDriver.c MyDriverMessages.rc
C_DEFINES = -DUNICODE -DSTRICT
[/g]
В чём может быть проблема, если файл драйвера не компилируется?
O>В корне проекта должно быть два файла — makefile и sources.
Только они? Конечно нет или да.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.