Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Драйвер с нуля.  (Прочитано 71244 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Sel
Злобный
Администратор

ru
Offline Offline

« : 27-08-2006 12:28 » 

Обсуждение статьи: «Драйвер с нуля.»
« Последнее редактирование: 06-09-2012 11:26 от Ochkarik » Записан

Слово не воробей. Всё не воробей, кроме воробья.
inf158704
Участник

ru
Offline Offline

« Ответ #1 : 06-09-2012 05:33 » 

BUILD: Examining c:\mydriver directory for files to compile.
Compiling c:\mydriver directory ********************
'nmake.exe /c BUILDMSG=Stop. -i NTTEST= UMTEST= NOLINK=1 386=1'
1>makefile(1) :  U1052: file 'c:\NTDDK\binmakefile.def' not found
1>Stop.
в логе
BUILD: nmake.exe /c BUILDMSG=Stop. -i NTTEST= UMTEST= NOLINK=1 386=1 failed - rc = 2
Linking c:\mydriver directory ********************
'nmake.exe /c BUILDMSG=Stop. -i LINKONLY=1 NOPASS0=1 NTTEST= UMTEST= 386=1'
1>makefile(1) :  U1052: file 'c:\NTDDK\binmakefile.def' not found
1>Stop.
BUILD: nmake.exe /c BUILDMSG=Stop. -i LINKONLY=1 NOPASS0=1 NTTEST= UMTEST= 386=1 failed - rc = 2
что не так сделал?
Записан
darkelf
Молодой специалист

ua
Offline Offline

« Ответ #2 : 06-09-2012 05:38 » 

BUILD: Examining c:\mydriver directory for files to compile.
Compiling c:\mydriver directory ********************
'nmake.exe /c BUILDMSG=Stop. -i NTTEST= UMTEST= NOLINK=1 386=1'
1>makefile(1) :  U1052: file 'c:\NTDDK\binmakefile.def' not found
1>Stop.
имхо, должно быть что-то типа: c:\NTDDK\bin\makefile.def
возможно где-то потерялся обратный слеш.
Записан
inf158704
Участник

ru
Offline Offline

« Ответ #3 : 06-09-2012 10:00 » 

%SystemRoot%\system32\cmd.exe /c "cd c:\DDK_XP\bin &&setenv.bat c:\DDK_XP &&cd  c:\myDriver  &&build -ceZ "
создает папки obj с файлом _objects.mac и objfre с подкаталогом i386
лог тот же ничего непонимаю где искать то...
извините за назойливость но всетаки это мой первый драйвер Улыбаюсь после коврика мышки Улыбаюсь
Записан
darkelf
Молодой специалист

ua
Offline Offline

« Ответ #4 : 06-09-2012 10:13 » 

посмотрите свой makefile, я как-то немного занимался драйверами в windows, у меня он выглядел следующим образом:
Код:
!INCLUDE $(NTMAKEENV)\makefile.def
к сожалению это уже было очень давно, и я уже не помню, я-ли его создавал, или какой-то там автомат, но если у Вас есть такой файл, и в нём пропущен "\" после $(NTMAKEENV), то сообщение примерно так и будет выглядеть, имхо..
Записан
Ochkarik
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #5 : 06-09-2012 11:19 » 

открыть консоль:
(должно было создаться при установке DDK)
"меню Пуск->Windows DriverKit->DDK2600->Buil Environments->Windows XP->Launch Windows XP x86 Free build"
оно же
C:\WINDOWS\system32\cmd.exe /k C:\DDK\6001.18001\bin\setenv.bat C:\DDK\6001.18001\ fre WXP
(или дебажные в зависимости от необходимости)
в открывшейся консоли просто выполнить
cd c:\"папка где лежат исходники"
build

в исходниках две ошибки:
"MyDrv.c"
в начале:
Код: (C)
#define NT_DEVICE_NAME      L"\\Device\\myDrv"
#define DOS_DEVICE_NAME            L"\\DosDevices\\myDrv"
- должны быть ДВОЙНЫЕ слеши!!!

ошибка два
файл "MyDrv.h":
Код: (C)
#define TEST_SMTH   CTL_CODE(FILE_DEVICE_myDRV,  FIRST_IOCTL_INDEX + 101,  METHOD_BUFFERED, FILE_ANY_ACCESS)
- записать ОДНОЙ строкой без переносов. либо использовать знак "\" для продолжения определения на другой строке.
Код: (C)
#define TEST_SMTH   CTL_CODE(FILE_DEVICE_myDRV,           \
                                                   FIRST_IOCTL_INDEX + 101,  \
                                                   METHOD_BUFFERED,            \
                                                   FILE_ANY_ACCESS)

кстати в коде приложения аналогичная ошибка (в тексте выше поправил)

и должно получится что то типа:
C:\temp\1>build -ceZ
BUILD: Compile and Link for x86
BUILD: Start time: Thu Sep 06 15:23:32 2012
BUILD: Examining c:\temp\1 directory for files to compile.
BUILD: Compiling and Linking c:\temp\1 directory
_NT_TARGET_VERSION SET TO WINXP
Compiling resources - mydrv.rc
Compiling - mydrv.c
Linking Executable - objfre_wxp_x86\i386\mydrv.sys
BUILD: Finish time: Thu Sep 06 15:23:33 2012
BUILD: Done

    4 files compiled - 2 Warnings
    1 executable built

C:\temp\1>
« Последнее редактирование: 06-09-2012 11:31 от Ochkarik » Записан

RTFM уже хоть раз наконец!  RTFM :[ ну или хотя бы STFW...
inf158704
Участник

ru
Offline Offline

« Ответ #6 : 07-09-2012 17:29 » 

darkelf, Ochkarik все получилось  Класс!
буду разбиратся дальше.
интересет экспорт функции из драйвера по анагогии с эксортом из dll
где бы посмотреть?
Записан
Ochkarik
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #7 : 07-09-2012 17:36 » 

не корректный вопрос. напрямую экспорт невозможен.
но то что вы хотели спросить:
к драйверу можно обращаться как к файлу (обработка IRP_MJ_CREATE, IRP_MJ_READ и т.д.)
+ дополнительный механизм - обработка IRP_MJ_DEVICE_CONTROL

PS читайте соломона-руссиновича! см список литературы в профильной ветке )
Записан

RTFM уже хоть раз наконец!  RTFM :[ ну или хотя бы STFW...
inf158704
Участник

ru
Offline Offline

« Ответ #8 : 07-09-2012 18:19 » 

Интересует расширение таблицы символических имен через _PELDR_AddExportTable в win98, по аналогии как это сделано в WMUSTUB.SYS или если это возможно так же ка сделано в ssm_cr.sys где также экспортируются 8 функций, правда незнаю там идет расширение таблицы или надо вызывать с указанием. WMUSTUB слишком сложен для меня а на ssm_cr.sys нет исходника Жаль
Записан
Ochkarik
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #9 : 08-09-2012 01:33 » new

PELDR_AddExportTable  - это ж VxD? каменный век)

PS про упомянутые примеры не слышал)
« Последнее редактирование: 08-09-2012 01:39 от Ochkarik » Записан

RTFM уже хоть раз наконец!  RTFM :[ ну или хотя бы STFW...
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines