[DDK] Problema includere windows.h per Sleep( )

di il
1 risposte

[DDK] Problema includere windows.h per Sleep( )

Salve a tutti sto realizzando un hook filter, naturalmente lo devo compilare con il ddk...il problema è che appena includo il file windows.h la compilazione mi da un sacco di errori, mentre se nn lo includo (e nn chiamo nessun metodo di quella libreria) la compilazione va a buon fine..
il file windows.h lo devo includere per poter usare il metodo Sleep() , che mi serve per ritardare alcune operazioni..
Da quello che ho capito girando per la rete dovrebbe essere un problema di headers di windows che nn vanno d accordo con quelle del ddk..ma nn riesco a capirne di piu perche sono un bel niubbo

Quindi mi piacerebbe sapere se qualcuno di voi ha gia affrontato il problema e sa darmi una soluzione..oppure consigliarmi un' altra funzione come Sleep() che giri su windows naturalmente...
Grazie!
Saluti, Francesco

1 Risposte

  • Re: [DDK] Problema includere windows.h per Sleep( )

    Se usi il DDK significa che sviluppi codice in kernel mode e quindi non puoi usare alcuna delle API di Windows perchè sono riservate alle applicazioni in user mode.
    Puoi usare solo le system call per i kernel mode drivers tipo IoCallDriver , RtlCopyMemory, KeInitailizeSpinlock etc. etc. che trovi documentate nell' help del DDK.
    Comunque fare una sleep in kernel mode non è così immediato.
    Ad esempio puoi farla solo se il codice sta eseguendo a PASSIVE_LEVEL nel contesto di uno specifico thread; altrimenti è praticamente garantito un BLUE SCREEN.
    Se il tuo codice non è a PASSIVE_LEVEL devi creare un WORK_ITEM oppure crearti tu un thread.
    Per avventurarti nel mondo della programmazione kernel (mondo peraltro affascinante e che offre interessanto opportunità di lavoro) ti consiglierei la lettura del libro di Walter Oney edito da Microsoft press dal titolo \"Programming the Microsoft Windows Driver Model\"

    Paolo
Devi accedere o registrarti per scrivere nel forum
1 risposte