Freigeben über


Implementierungstipps und -anforderungen für WDM Lower Edge

In diesem Thema werden Tipps und Anforderungen für die Implementierung eines NDIS-WDM-Miniporttreibers beschrieben. Ein NDIS-WDM-Miniporttreiber kann sowohl NDIS- als auch Nicht-NDIS-Funktionen aufrufen. Diese Nicht-NDIS-Funktionen umfassen beispielsweise WDM-Kernelmodus-Unterstützungsroutinen und Funktionen für eine bestimmte Bus-Treiber-Schnittstelle.

Beachten Sie bei der Implementierung eines NDIS-WDM-Miniporttreibers Folgendes:

  • Das Erstellen eines NDIS-WDM-Miniporttreibers erfordert, dass das NDIS_WDM-Flag definiert ist, bevor die Ndis.h-Headerdatei enthalten ist. Durch das Definieren des NDIS_WDM-Flags wird sichergestellt, dass Ndis.h automatisch die entsprechende WDM-Headerdatei enthält. Das NDIS_WDM Flag sollte entweder am Anfang des Quellcodes des Miniporttreibers eingebettet oder in der Quellendatei des Miniporttreibers festgelegt werden. Ein NDIS-WDM-Miniporttreiber erfordert eine WDM-Headerdatei, um Kernelmodusroutinen wie IoCallDriver und IoAllocateIrp aufzurufen.

  • Funktionsaufrufe für eine bestimmte Bustreiberschnittstelle erfordern die Headerdateien für diesen Bustreiber.

  • Das Einschließen von NDIS- und Nicht-NDIS-Headern in derselben Quelldatei wird nicht empfohlen, da sie möglicherweise nicht kompatibel sind. Das heißt, für Code, der NDIS-Funktionen aufruft, und für Code, der Nicht-NDIS-Funktionen aufruft, sollten separate Quelldateien erstellt werden.

  • Ein NDIS-WDM-Miniporttreiber sollte geeignete NDIS-Funktionen aufrufen, um Ressourcen zuzuweisen und freizugeben, es sei denn, der NDIS-WDM-Miniporttreiber weist Ressourcen in einem der folgenden Szenarien zu und gibt sie frei:

    • Eine Ressource, in der Regel eine Speicherressource, wird vom NDIS-WDM-Miniporttreiber zugewiesen und später von einer Nicht-NDIS-Entität wie einer Bustreiberschnittstelle freigegeben.
    • Eine Ressource, in der Regel eine Arbeitsspeicherressource, wird von einer Nicht-NDIS-Entität zugeordnet und später vom NDIS-WDM-Miniporttreiber freigegeben.

    In den vorherigen Szenarien sollte der NDIS-WDM-Miniporttreiber die entsprechenden WDM-Routinen aufrufen, um Ressourcen für die Nicht-NDIS-Entität zuzuweisen oder freizugeben.