Perché non esiste il modello di driver in modalità kernel WDM nel kit driver di Windows?
-
21-12-2019 - |
Domanda
Mi sono imbattuto in driver in modalità kernel con pochissima esperienza. Ecco cosa sto cercando di fare:
- .
- Avere un'applicazione in modalità utente che carica il driver.
- Avere l'applicazione della modalità utente ad esso, per inviarlo un'istruzione.
- Avere il conducente inviare l'istruzione RDMSR al chip Intel.
- restituisce i risultati all'applicazione della modalità utente.
Ho letto Questo articolo Ciò descrive i diversi modi in cui è possibile eseguire questo comportamento (I / O tamponata, I / O diretto o né).
Il mio problema è questo ... L'articolo ha un codice che rappresenta il modo in cui si strutturare un driver WDM , e mi aspettavo di essere in grado di creare un modello di progetto WDM KMDF utilizzando il driver di Windows Kit, ma quando ho scaricato il kit Driver Windows (WDK), l'unico modello di driver KMDF era per un driver WDF . MSDN ha un articolo che descrive le differenze tra i due . Questo è strano per me. Mi aspettavo di ottenere un modello fuori dalla scatola che potevo modificare il lavoro come nell'articolo che ho collegato, ma non lo vedo. Perché non c'è modello per un driver KMDF WDM?
Solo una nota aggiunta, puoi facilmente dire il tipo del conducente basato su modo in cui crea il dispositivo (IoCreateDevice implica WDM, mentre WDFDeviceCreate implica WDF).
Soluzione
Ci sono molte incongruenze nella domanda.Prima di tutto, KMDF
è un sottoinsieme di WDF
(ed è l'unica parte WDF
pertinente quando si parla di driver del kernel), quindi non c'è contraddizione tra i due.Ogni driver del kernel è essenzialmente un driver WDM
.KMDF
è un framework nei driver WDM
e KMDF
tagCode viene normalmente chiamato, Bene, driver KMDF
, senza menzionare WDM
.Il driver WDM
di solito si riferisce al conducente che non utilizza alcun framework aggiuntivo, ad esempio KMDF
.Secondo, WDK
si integra con VS2012 / 2013 e è necessario averlo installato in aggiunta a WDK per ottenere i modelli.Terzo, il modello WDM
viene visualizzato nell'elenco.Se non ce l'hai, suggerisco di reinstallare WDK
e VS
.