Come eseguire il debug di un driver di dispositivo

November 10

Forse il dispositivo non funziona correttamente, e si sospetta che è a causa del driver di periferica piuttosto che il dispositivo stesso. Prova a eseguire il debug del driver di periferica prima di strapparsi i capelli. Questo eHow può aiutare.

istruzione

1 Aprire il driver per la periferica e impostare un "punto di interruzione" nel "DLLEntry" o punto di ingresso "DllMain" del driver. Per fare questo, potrebbe essere necessario riavviare il dispositivo ci si rivolge, e ricaricare il driver per assicurarsi che il punto di interruzione viene eseguito.

2 Eseguire il debugger per vedere se il driver viene caricato come dovrebbe. Dovrebbe raggiungere il punto di interruzione si è creato nel passaggio 1. Se funziona, passare alla fase successiva. Se ciò non accade, il driver non è stato caricato come dovrebbe. Vai alla risoluzione dei problemi per il conducente quando questo accade, come si tenta di eseguire il debug di un driver di periferica.

3 Impostare un altro punto di interruzione, ma questa volta nel "XXX_Init (Gestione periferiche)" punto di ingresso per il conducente. Passare attraverso il processo di inizializzazione del driver, come si tenta di eseguire il debug il driver di periferica. Eseguire nuovamente il debugger, tentando di confermare che il driver è riconosciuta dalla Gestione periferiche e funziona correttamente.

4 Aggiungere ulteriori punti di interruzione come si tenta di eseguire il debug di un driver di periferica. Aggiungere i punti di interruzione al punto di entrata di varie funzioni di interfaccia, come "XXX_Close (Gestione periferiche)", XXX_IOControl (Gestione periferiche), XXX_Read (Gestione periferiche), e altro ancora.

5 Prova attuazione interfaccia flusso sostituendo "XXX" con qualcosa che corrisponde specifica implementazione, come ad esempio DEVFLAGS_NAKEDENTRIES.
TEST ciò che avete fatto eseguendo nuovamente il debugger.

6 TEST ciò che avete fatto eseguendo nuovamente il debugger.

7 Verificare che il "filo di servizio di interruzione" funziona impostando punti di interruzione nella TSI del driver. Eseguire nuovamente il debugger per vedere il driver funziona correttamente come si tenta di eseguire il debug di un driver di periferica. Se questo funziona correttamente, allora avete debug con successo la gestione periferiche.