Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Технологии программирования > Железо. Написание драйверов
Перезагрузить страницу Как собрать пример RegFltr из DDK
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
kjam kjam вне форума
Member
 
Сообщений: 111
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 18.04.2007
По умолчанию Как собрать пример RegFltr из DDK - 12.09.2009, 15:34

Я новичок в разработке драйвером, только начал разбираться с DDK (7600.16385.0) и build utility.
Нашел среди пример RegFltr, который является отличным скелетом для моего будующего драйвера, но не его могу собрать.

Код:
E:\WinDDK\7600.16385.0\src\general\registry\regfltr>build -ceZ
BUILD: Compile and Link for x86
BUILD: Start time: Sat Sep 12 13:13:56 2009
BUILD: Examining e:\winddk\7600.16385.0\src\general\registry\regfltr directory tree for files to compile.
BUILD: Compiling and Linking e:\winddk\7600.16385.0\src\general\registry\regfltr\exe directory
Configuring OACR for 'WDKSamples:x86chk' - <OACR on>
BUILD: Compiling and Linking e:\winddk\7600.16385.0\src\general\registry\regfltr\sys directory
BUILD: Finish time: Sat Sep 12 13:13:57 2009
BUILD: Done
В результате создается единственный файл objfre_wxp_x86\i386\_objects.mac следующего содержания:
Код:
386_OBJECTS=\
 $(OBJ_PATH)\$O\regctrl.obj \
 $(OBJ_PATH)\$O\pre.obj \
 $(OBJ_PATH)\$O\post.obj \
 $(OBJ_PATH)\$O\capture.obj \
 $(OBJ_PATH)\$O\util.obj \


_RES_FILE=$(OBJ_PATH)\$O\regctrl.res



# lowercased
BASEDIR=e:\winddk\7600.16385.0
OBJECT_ROOT=e:\winddk\7600.16385.0
MAKEDIR_LOWERCASE=e:\winddk\7600.16385.0\src\general\registry\regfltr\exe
MAKEDIR_RELATIVE_TO_BASEDIR=src\general\registry\regfltr\exe
OBJ_PATH=e:\winddk\7600.16385.0\src\general\registry\regfltr\exe
CONCURRENT_MIDL=0
CONCURRENT_MANIFEST_BUILD=0
Ни *.obj-файлы, ни бинарники не создатся (искал строки regctrl и regfltr по всей файловой системе).

Файлы sources и makefile не модифицировались, их содержимое кажется адекватным:

\regfltr\exe\sources
Код:
TARGETNAME=regctrl
TARGETTYPE=PROGRAM

UMTYPE=console
UMENTRY=wmain

USE_MSVCRT=1

MSC_OPTIMIZATION=/Odi

MSC_WARNING_LEVEL=/W4 /WX

INCLUDES= \
         $(DDK_INC_PATH); \

C_DEFINES=$(C_DEFINES) -DUNICODE -D_UNICODE

SOURCES=\
        regctrl.c \
        pre.c     \
        post.c    \
        capture.c \
        util.c    \
        regctrl.rc 

TARGETLIBS=$(SDK_LIB_PATH)\advapi32.lib \
           $(SDK_LIB_PATH)\ntdll.lib \
           $(SDK_LIB_PATH)\kernel32.lib \


#WIN32_WINNT_VERSION=$(LATEST_WIN32_WINNT_VERSION)
#_NT_TARGET_VERSION=$(_NT_TARGET_VERSION_LONGHORN)
#NTDDI_VERSION=$(LATEST_NTDDI_VERSION)
\regfltr\sys\sources
Код:
TARGETNAME=regfltr
TARGETTYPE=DRIVER

SOURCES=\
        driver.c       \
        regfltr.c      \
        Pre.c          \
        Post.c         \
        TxR.c          \
        TxRUtil.c      \
        Context.c      \
        MultiAlt.c     \
        Version.c      \
        Capture.c      \
        Util.c         \
        regfltr.rc

INCLUDES=\
        $(INCLUDES); \
        $(IFSKIT_INC_PATH); \
        ..\exe


TARGETLIBS= $(TARGETLIBS) \
            $(DDK_LIB_PATH)\ntoskrnl.lib
    
MSC_OPTIMIZATION=/Odi

MSC_WARNING_LEVEL=/W4 /WX
Пробовал делать сборку из Windows XP x86 Checked Build Enviroment и из Windows XP x86 Checked Build Enviroment - результат одинаковый.
Пробовал забускать build без ключей и с ключами -ceZ - то же самое.
Все остальные примеры собираются без проблем. :wall:
Ответить с цитированием
  (#2 (permalink)) Старый
kjam kjam вне форума
Member
 
Сообщений: 111
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 18.04.2007
Post 16.09.2009, 17:18

Решение оказалось простым. В файле makefile, на содержимое которого я сначала не обратил внимания, содержалась строчка
Код:
MINIMUM_NT_TARGET_VERSION=$(_NT_TARGET_VERSION_VISTA)
А сборка происходила под XP, поэтому файлы тихо исключались из сборки.

Причина этого в том, что данный пример использует новое API, которое появилось только в XP, и сильно модифицировалось в Висте. Соотвественно примеры из свежескачанного последнего DDK были написаны для последней версии API, а потому требовали Висту.

Тема закрыта.
Ответить с цитированием
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Пример реального взлома... crack Любые вопросы от новичков 6 29.11.2010 23:15
Как решить пример (plus2 L0 L1)=L2 Alenka-dev Lisp 1 20.04.2010 10:15
Пример пары шейдеров Ahinar Shaders 12 30.10.2009 13:32
Не запускается пример из книги sign Prolog 3 15.04.2009 18:14
Технология JNI, не работает пример lexluther Java 0 23.11.2008 03:49
Заплачу за пример! Shturmovik Задания за деньги 7 13.01.2007 07:23
COM c VB на C# как запустить пример IQ7 .NET 0 19.02.2006 16:12
Пример TSR-программы под DOS на C++ YDA Вопросы начинающих программистов 6 11.12.2005 11:26
Пример калькулятора Filanton Visual Basic 1 21.09.2004 23:23
Нужен пример GUI VIP 6.1 OKey Prolog 4 03.02.2004 16:02
Где найти пример RAS сервера VC++ Anonymous Visual C++ 0 01.02.2004 04:31
Как откомпелировать пример из DDK Anonymous С/С++ 3 10.10.2003 11:46



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов