Suggerimenti e requisiti di implementazione per WDM Lower Edge
In questo argomento vengono descritti i suggerimenti e i requisiti per l'implementazione di un driver miniport NDIS-WDM. Un driver miniport NDIS-WDM può chiamare sia funzioni NDIS che non NDIS. Queste funzioni, non NDIS, includono, ad esempio, routine e funzioni in modalità kernel WDM per un'interfaccia specifica di un driver per bus.
Quando si implementa un driver NDIS-WDM miniport, tenere presente quanto segue:
La creazione di un driver miniport NDIS-WDM richiede che il flag NDIS_WDM sia definito prima dell'inclusione del file di intestazione Ndis.h. La definizione del flag di NDIS_WDM garantisce che Ndis.h includa automaticamente il file di intestazione WDM appropriato. Il flag NDIS_WDM deve essere incorporato all'inizio del codice sorgente del driver miniport o impostato nel file Sources del driver miniport. Un driver miniport NDIS-WDM richiede un file di intestazione WDM per chiamare le routine in modalità kernel, come ad esempio IoCallDriver e IoAllocateIrp .
Le chiamate di funzione per un'interfaccia particolare del driver del bus richiedono i file header per il driver del bus.
Non è consigliabile includere intestazioni NDIS e non NDIS nello stesso file di origine perché potrebbero non essere compatibili. Vale a dire, è necessario creare file di origine separati per il codice che chiama funzioni NDIS e per il codice che chiama funzioni non NDIS.
Un driver miniport NDIS-WDM deve chiamare le funzioni NDIS appropriate per allocare e rilasciare le risorse a meno che il driver NDIS-WDM miniport allochi e rilasci le risorse in uno degli scenari seguenti:
- Una risorsa, in genere una risorsa di memoria, viene allocata dal driver miniport NDIS-WDM e successivamente viene rilasciata da un'entità non NDIS, ad esempio un'interfaccia del driver del bus,
- Una risorsa, in genere una risorsa di memoria, viene allocata da un'entità non NDIS e successivamente rilasciata dal driver NDIS-WDM miniport.
Per gli scenari precedenti, il driver miniport NDIS-WDM deve chiamare le routine WDM appropriate per allocare o rilasciare risorse per l'entità non NDIS.