04/09/08 14:20
asdasd
Ciao a tutt isto scrivendo un driver per Windows in C
Devo creare un oggetto (struttura) di tipo OBJECT_ATTRIBUTES
msdn.microsoft.com/en-us/library/…
facendo normalmente cosi'
Il problema è che quando ho compilato mi dava un errore
Allora, visto che la creazione della variabile mi sembrava giusta, mi son messo a commentare tutto il sorgente per individuare l'errore, lo ho semplificato al massimo ( son rimaste poche righe da compilare) e ho forse scoperto dove è il problema ->
Compilandolo mi da
alla linea dove dichiaro la variabile.
Commentando tutto il pezzo con asm{...} non dà errori.
Dove è lo (probabilmente stupido) errore?
Devo creare un oggetto (struttura) di tipo OBJECT_ATTRIBUTES
msdn.microsoft.com/en-us/library/…
facendo normalmente cosi'
OBJECT_ATTRIBUTES miavariabile;
Il problema è che quando ho compilato mi dava un errore
'OBJECT_ATTRIBUTES' : illegal use of this type as an expression
Allora, visto che la creazione della variabile mi sembrava giusta, mi son messo a commentare tutto il sorgente per individuare l'errore, lo ho semplificato al massimo ( son rimaste poche righe da compilare) e ho forse scoperto dove è il problema ->
#include <winddk.h> ... ... NTSTATUS DriverEntry(PDRIVER_OBJECT DriverObject, PUNICODE_STRING RegistryPath) { ... __asm { push eax mov eax, CR0 or eax, NOT 0FFFEFFFFh mov CR0, eax pop eax } OBJECT_ATTRIBUTES TDI_Object_Attr; ... return STATUS_SUCCESS; }
Compilandolo mi da
error C2143: syntax error : missing ';' before 'type'
alla linea dove dichiaro la variabile.
Commentando tutto il pezzo con asm{...} non dà errori.
Dove è lo (probabilmente stupido) errore?
aaa