Condividi tramite


Esplorazione della Guida alla progettazione dei driver di rete

I sistemi operativi basati su Microsoft Windows supportano diversi tipi di driver di rete in modalità kernel. La sezione Rete della documentazione di Windows Driver Kit (WDK) descrive come scrivere questi driver di rete. Questo argomento descrive brevemente i tipi supportati di driver di rete e illustra le sezioni della sezione Rete da leggere prima di scrivere ogni tipo di driver di rete.

Questa guida alla progettazione dei driver di rete documenta le interfacce NDIS (Network Driver Interface Specification) seguenti:

  • NDIS 6.40, supportato in Windows 8.1, Windows Server 2012 R2 e versioni successive di Windows. NDIS 6.30 include il supporto per Network Direct Kernel Provider Interface (NDKPI) 1.12.

    Per altre informazioni su NDIS 6.30, vedere Introduzione a NDIS 6.40.

  • NDIS 6.30, supportato in Windows 8, Windows Server 2012 e versioni successive di Windows. NDIS 6.30 include il supporto per la virtualizzazione single root/I/O (SR-IOV), il commutatore estendibile Hyper-V, l'interfaccia NDKPI (Network Direct Kernel Provider Interface) 1.1 e altri servizi.

    Per altre informazioni su NDIS 6.30, vedere Introduzione a NDIS 6.30.

  • NDIS 6.20, supportato in Windows 7, Windows Server 2008 R2 e versioni successive di Windows. NDIS 6.20 include il supporto per la coda di macchine virtuali (VMQ), la limitazione lato ricezione e altri servizi.

    Per altre informazioni su NDIS 6.20, vedere Introduzione a NDIS 6.20.

  • NDIS 6.1, supportato in Windows Vista con Service Pack 1 (SP1), Windows Server 2008 e versioni successive di Windows. NDIS 6.1 include il supporto per la suddivisione dei dati di intestazione, le richieste OID dirette e altri servizi.

    Per altre informazioni su NDIS 6.1, vedere Introduzione a NDIS 6.1.

  • NDIS 6.0, supportato in Windows Vista e versioni successive di Windows. NDIS 6.0 include il supporto per i driver di filtro e molti servizi aggiuntivi non forniti dalle versioni precedenti di NDIS. NDIS 6.0 include aggiornamenti principali per l'inizializzazione dei driver e la gestione dei dati di rete, incluso il supporto necessario per la riconfigurazione dei driver in fase di esecuzione e l'architettura NET_BUFFER per la gestione dei dati dei pacchetti di rete. Per altre informazioni sul supporto della riconfigurazione del runtime, vedere Gestione dello stack di driver. Per altre informazioni su come gestire i dati dei pacchetti di rete in NDIS 6.0, vedere Architettura NET_BUFFER.

    Per altre informazioni su NDIS 6.0, vedere Introduzione a NDIS 6.0.

Windows Vista e versioni successive del sistema operativo supportano i tipi seguenti di driver di rete basati su NDIS in modalità kernel:

Driver miniport
Un driver miniport gestisce le schede miniport e fornisce un'interfaccia alle schede per driver di livello superiore. Un adattatore miniport è un'entità concettuale che può rappresentare un dispositivo fisico o un dispositivo virtuale. Ad esempio, una scheda miniport può rappresentare una scheda di interfaccia di rete (NIC) o un dispositivo virtuale associato a un driver intermedio.

Esistono molte varianti di driver miniport, ad esempio un gestore di chiamate miniport orientato alla connessione (MCM), un driver miniport Windows Driver Model (WDM) e il bordo superiore di un driver intermedio.

Driver di protocollo
Un driver di protocollo fornisce servizi di alto livello in uno stack di driver. Un driver di protocollo viene associato alle schede miniport sottostanti. Un driver di protocollo di livello superiore implementa un'interfaccia, possibilmente un'interfaccia specifica dell'applicazione, al suo bordo superiore per fornire servizi agli utenti della rete. Al suo bordo inferiore, un driver di protocollo fornisce un'interfaccia di protocollo per passare i dati di rete a e ricevere i dati in ingresso dal driver inferiore successivo.

Esistono molte varianti di driver di protocollo, ad esempio un gestore chiamate orientato alla connessione (MCM), un client orientato alla connessione e il bordo inferiore di un driver intermedio.

Filtrare i driver
Un driver di filtro filtra le informazioni sull'interfaccia tra driver di protocollo e driver miniport. I moduli di filtro sono collegati nell'associazione tra il driver di protocollo e l'adattatore miniport e sono generalmente trasparenti per gli altri driver. I driver di filtro possono implementare filtri di modifica o monitoraggio. Ad esempio, un driver di filtro può migliorare i servizi forniti dall'adattatore miniport sottostante o semplicemente raccogliere statistiche.

Driver intermedi
Interfacce di driver intermedi tra driver di protocollo di livello superiore e driver miniport. I driver intermedi forniscono un'interfaccia del driver miniport al loro bordo superiore per eseguire il binding ai driver di protocollo eccessivamente. I driver intermedi forniscono un'interfaccia del driver di protocollo al bordo inferiore per l'associazione alle schede miniport sottostanti. I driver intermedi vengono in genere usati per implementare n a m servizi multiplexer. Ad esempio, un driver intermedio può implementare soluzioni di bilanciamento del carico e failover.

I driver intermedi possono anche gestire l'hardware quando sono configurati come driver intermedio miniport.

Per altre informazioni sull'architettura di rete e sulle considerazioni sulla programmazione di Windows, vedere Architettura di rete per driver in modalità kernel e Considerazioni sulla programmazione dei driver di rete.

Per altre informazioni sui file INF di rete, usati per installare i componenti di rete, vedere Installazione di componenti di rete. Se il driver di rete richiede una notifica all'oggetto, ad esempio per controllare le associazioni, vedere anche Notifica oggetti per i componenti di rete.

Sono disponibili i seguenti modelli di driver aggiuntivi per l'uso di specifiche tecnologie hardware e architetture.

Tecnologia Descrizione

Rete scalabile

Tecnologie di rete che supportano l'offload delle attività in una scheda di rete, ad esempio:

  • Header-Data Split, un servizio che suddivide l'intestazione e i dati nei frame Ethernet ricevuti in buffer separati.

  • Receive Side Scaling, una tecnologia di driver di rete che migliora le prestazioni di rete nei sistemi multiprocessore.

  • TCP Chimney Offload, offload della parte di trasferimento dei dati dell'elaborazione del protocollo TCP in una scheda di rete con le funzionalità appropriate.

  • Offload TCP/IP, offload di attività o connessioni a una scheda di rete con le funzionalità appropriate.

  • Network Direct Kernel Provider Interface (NDKPI) che consente ai componenti windows in modalità kernel, ad esempio server SMB e client, di usare la funzionalità accesso diretto alla memoria remota (RDMA) fornita dai fornitori di hardware indipendenti (IHV).

  • Virtualizzazione di rete tramite l'offload delle attività NVGRE (Generic Routing Encapsulation), che consente di usare pacchetti incapsulati incapsulati (Generic Routing Encapsulation) con:

    • LSO (Large Send Offload)
    • Coda macchine virtuali (VMQ)
    • Offload checksum di trasmissione (Tx)
    • Offload checksum di ricezione (Rx)

Rete virtualizzata

Tecnologie di rete che supportano ambienti di virtualizzazione Hyper-V, ad esempio:

Rete wireless

Funzionalità di rete che includono LAN wireless native 802.11.

Registrar del modulo di rete

Struttura di sistema che consente a un driver di collegare moduli di rete l'uno all'altro.

Winsock Kernel

Interfaccia npi (Network Programming Interface) in modalità kernel.

IP Helper

Set di funzioni di utilità che consentono ai driver di recuperare e modificare informazioni sulla configurazione di rete del computer locale.

Driver callout di Windows Filtering Platform

Interfaccia in modalità kernel che consente l'ispezione approfondita, la modifica dei pacchetti, la modifica del flusso e la registrazione dei dati di rete.

Reti dell'area di sistema

Tipo di connessione di rete che usa Windows Sockets Direct per supportare una rete orientata alle connessioni ad alte prestazioni.

Remote NDIS (RNDIS)

Specifica di classe che definisce un set di messaggi indipendente dal bus fornito dal sistema su un bus USB.