71104
07-01-2006, 20:02
ho un problema col programma BUILD di Microsoft (quello fornito col DDK): sto cercando di scrivere un programma simile a Daemon Tools, solo che lavora con hard disk virtuali anziché unità CD virtuali; ho la seguente struttura di directories:
- filedisk
- km
- class
- port
- ui
"km" sta per "kernel mode" (lì ci scrivo i due drivers usati dal programma, class e port), e "ui" ovviamente sta per "user mode", e lì ci metto il programmetto fesso user mode che gestisce i drivers.
ora il problema: se faccio BUILD dall'environment per Windows 2000, free build a 32 bit, il programma parte e compila quasi tutto, perché la cartella class non se la fila di pezza :confused: :confused: :confused:
eppure il file dirs l'ho scritto bene:
DIRS=class\
port
questo è tutto il contenuto del file dirs che si trova nella cartella km; ho anche provato a scambiare class e port, così:
DIRS=port\
class
e non cambia nulla, la directory che BUILD non compila sempre class rimane :|
ho anche provato:
DIRS=port class
e
DIRS=class port
MA NIENTE!!! :cry: :cry:
qualcuno mi sa aiutare?? :help:
edit: l'unico dannato modo per compilare il class driver è quello di richiamare BUILD da dentro la cartella class, ma da qualsiasi altra cartella (km o filedisk) non gliene importa un fico secco :muro: :muro:
edit2: se serve, questo è il file sources presente in class:
TARGETNAME=filediskclass
TARGETPATH=obj
TARGETTYPE=DRIVER
DRIVERTYPE=WDM
SOURCES=main.c
questo invece è il makefile, assolutamente identico a tutti gli altri:
!INCLUDE $(NTMAKEENV)\makefile.def
e questo quello che per ora è main.c:
#include <wdm.h>
NTSTATUS DriverEntry(IN PDRIVER_OBJECT DriverObject, IN PUNICODE_STRING RegistryPath) {
return 0;
}
NTSTATUS AddDevice(IN PDRIVER_OBJECT DriverObject, IN PDEVICE_OBJECT PhysicalDeviceObject) {
return 0;
}
- filedisk
- km
- class
- port
- ui
"km" sta per "kernel mode" (lì ci scrivo i due drivers usati dal programma, class e port), e "ui" ovviamente sta per "user mode", e lì ci metto il programmetto fesso user mode che gestisce i drivers.
ora il problema: se faccio BUILD dall'environment per Windows 2000, free build a 32 bit, il programma parte e compila quasi tutto, perché la cartella class non se la fila di pezza :confused: :confused: :confused:
eppure il file dirs l'ho scritto bene:
DIRS=class\
port
questo è tutto il contenuto del file dirs che si trova nella cartella km; ho anche provato a scambiare class e port, così:
DIRS=port\
class
e non cambia nulla, la directory che BUILD non compila sempre class rimane :|
ho anche provato:
DIRS=port class
e
DIRS=class port
MA NIENTE!!! :cry: :cry:
qualcuno mi sa aiutare?? :help:
edit: l'unico dannato modo per compilare il class driver è quello di richiamare BUILD da dentro la cartella class, ma da qualsiasi altra cartella (km o filedisk) non gliene importa un fico secco :muro: :muro:
edit2: se serve, questo è il file sources presente in class:
TARGETNAME=filediskclass
TARGETPATH=obj
TARGETTYPE=DRIVER
DRIVERTYPE=WDM
SOURCES=main.c
questo invece è il makefile, assolutamente identico a tutti gli altri:
!INCLUDE $(NTMAKEENV)\makefile.def
e questo quello che per ora è main.c:
#include <wdm.h>
NTSTATUS DriverEntry(IN PDRIVER_OBJECT DriverObject, IN PUNICODE_STRING RegistryPath) {
return 0;
}
NTSTATUS AddDevice(IN PDRIVER_OBJECT DriverObject, IN PDEVICE_OBJECT PhysicalDeviceObject) {
return 0;
}