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 z. B. WDM-Kernelmodus-Unterstützungsroutinen und -funktionen für eine bestimmte Bustreiberschnittstelle.

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

  • Das Erstellen eines NDIS-WDM-Miniporttreibers erfordert, dass die NDIS_WDM-Flagge definiert ist, bevor die Ndis.h-Headerdatei eingebunden wird. Durch das Definieren des NDIS_WDM Flags wird sichergestellt, dass Ndis.h automatisch die entsprechende WDM-Headerdatei enthält. Die NDIS_WDM-Kennzeichnung 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, separate Quelldateien sollten für Code erstellt werden, der NDIS-Funktionen aufruft, und für Code, der Nicht-NDIS-Funktionen aufruft.

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

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

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