Condividi tramite


Creazione di un nuovo driver di filtro

In questo argomento viene illustrato come usare Visual Studio per iniziare a scrivere un nuovo driver di filtro. I driver di filtro sono diversi da driver di funzione del dispositivo, driver software e driver di file system, che vengono illustrati in altri argomenti. Per informazioni sui driver di filtro e su come differiscono da altri tipi di driver, vedere gli argomenti seguenti.

Per iniziare, determinare prima di tutto quale modello di driver è appropriato per il driver di filtro. Per determinare quale modello è meglio, vedere Scelta di un modello di driver. Se si scrive un driver di filtro per un dispositivo hardware, determinare dove il dispositivo si adatta all'elenco delle tecnologie descritte in Tecnologie dispositivo e driver. Vedere la documentazione relativa a tale particolare tecnologia per verificare se esistono indicazioni per la scelta di un modello di driver di filtro. Il modello di driver di filtro consigliato varia da una tecnologia alla successiva. Per alcune tecnologie, la documentazione consiglia di usare User Mode Driver Framework (UMDF), kernel Mode Driver Framework (KMDF) o Windows Driver Model (WDM). Per altre tecnologie, la documentazione fornisce dettagli espliciti su come scrivere un driver di filtro. Alcune tecnologie hanno modelli di filtro mini. Per alcune tecnologie, potrebbe non esserci alcuna raccomandazione per un modello di driver di filtro.

Determinare quindi quale dei casi seguenti descrive la raccomandazione del modello di driver e seguire questa procedura:

Caso 1: la documentazione per la tecnologia consiglia UMDF.

  1. In Visual Studio scegliere Nuovo nel menu File| Progetto.
  2. Nella finestra di dialogo Nuovo progetto individuare e selezionare Visual C++ nel riquadro sinistro | Driver Windows | WDF.
  3. Nel riquadro centrale selezionare Driver modalità utente (UMDF) .
  4. Compilare le caselle Nome e Posizione e selezionare OK. Per altre informazioni, vedere Scrittura di un driver UMDF basato su un modello. Nota Quando si crea un nuovo driver UMDF, è necessario selezionare un nome del driver con 32 caratteri o meno. Questo limite di lunghezza è definito in wdfglobals.h.
  5. A questo punto, è disponibile un progetto driver che implementa il codice generale richiesto dalla maggior parte dei driver UMDF. Ora è possibile specificare il codice specifico del filtro.

Caso 2: la documentazione per la tecnologia consiglia KMDF.

  1. In Visual Studio scegliere Nuovo nel menu File| Progetto.
  2. Nella finestra di dialogo Nuovo progetto individuare e selezionare WDF nel riquadro sinistro.
  3. Nel riquadro centrale selezionare Driver in modalità kernel (KMDF).
  4. Compilare le caselle Nome e Posizione e selezionare OK. Per altre informazioni, vedere Scrittura di un driver KMDF basato su un modello. Nota Quando si crea un nuovo driver KMDF, è necessario selezionare un nome del driver con 32 caratteri o meno. Questo limite di lunghezza è definito in wdfglobals.h.
  5. A questo punto, è disponibile un progetto driver che implementa il codice generale richiesto dalla maggior parte dei driver KMDF. Ora è possibile specificare il codice specifico del filtro.

Case 3: la documentazione per la tecnologia descrive un modello di filtro o mini filtro specifico.

Se la tecnologia del dispositivo ha un modello di filtro o minifilter specifico, verificare se Visual Studio ha un modello per il modello.

  1. In Visual Studio scegliere Nuovo nel menu File| Progetto.
  2. Nella finestra di dialogo Nuovo progetto individuare e selezionare Modelli nel riquadro sinistro | Visual C++ | Driver di Windows.
  3. Esplorare l'elenco dei modelli installati per verificare se è presente un modello per il tipo di filtro da scrivere. Ad esempio, è possibile scegliere il modello Filter Driver: NDIS in Rete.
  4. Se non esiste alcun modello per il tipo di driver di filtro in Driver di Windows, selezionare Online e esplorare i modelli disponibili online.
  5. Se si trova un modello per il tipo di driver di filtro, selezionare il modello, compilare le caselle Nome e Posizione e selezionare OK.
  6. A questo punto, è disponibile un progetto driver che implementa il codice generale richiesto dal driver di filtro. Ora è possibile specificare il codice specifico del filtro. Per informazioni sulle funzioni che è necessario implementare, vedere la documentazione relativa alla tecnologia.

Se la tecnologia del dispositivo ha un modello di filtro specifico o un modello minifilter e non è possibile trovare un modello per il tipo di driver di filtro, fare riferimento alla documentazione specifica della tecnologia per determinare se usare UMDF, KMDF o WDM.

Caso 4: la documentazione per la tecnologia consiglia WDM.

  1. In Visual Studio scegliere Nuovo nel menu File| Progetto.

  2. In Visual Studio, nella finestra di dialogo Nuovo progetto, in Driver di Windows selezionare WDM.

  3. Compilare le caselle Nome e Posizione e selezionare OK.

  4. A questo punto, si dispone di un progetto di driver WDM vuoto. Nella finestra Solution Explorer selezionare e tenere premuto (o fare clic con il pulsante destro del mouse) sul progetto driver e scegliere Aggiungi | Nuovo elemento.

  5. Nella finestra di dialogo Aggiungi nuovo elemento selezionare File C++ (con estensione cpp), immettere un nome per il file e selezionare OK.

    Nota Se si vuole creare un file con estensione c anziché un file cpp, immettere un nome con estensione c .

  6. Implementare le funzioni necessarie dal filtro. Durante l'implementazione e l'organizzazione delle funzioni, è possibile decidere di aggiungere altri file cpp o c.

Caso 5: la documentazione per la tecnologia non ha una raccomandazione per un modello di driver di filtro.

  1. Determinare se UMDF, KMDF o WDM è il modello migliore per il driver di filtro. Per assistenza, vedere Scelta di un modello di driver.

  2. In Visual Studio scegliere Nuovo nel menu File| Progetto.

  3. In Visual Studio, nella finestra di dialogo Nuovo progetto selezionare uno dei modelli seguenti in Driver di Windows:

    • WDF | Driver in modalità utente (UMDF)
    • WDF | Driver in modalità kernel (KMDF)
    • WDM | Driver kernel vuoto

    Nota Quando si crea un nuovo driver KMDF o UMDF, è necessario selezionare un nome del driver con 32 caratteri o meno. Questo limite di lunghezza è definito in wdfglobals.h.

  4. Implementare le funzioni necessarie dal filtro. Creare nuovi file con estensione c o cpp in base alle esigenze.

Se non si è certi del modello da usare, prendere in considerazione la lettura o la pubblicazione nel forum di Sviluppo driver e WDK hardware di Windows .