Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Verwenden Sie diese Regeln, um zu überprüfen, ob der Treiber NDIS-Funktionen ordnungsgemäß aufruft, um Arbeitsspeicher zuzuweisen und freizugeben.
In diesem Abschnitt
| Thema | BESCHREIBUNG |
|---|---|
Die NdisAllocateGenericObject-Regel gibt an, dass NdisAllocateGenericObject und NdisFreeGenericObject in alternativer Reihenfolge aufgerufen werden. Das ultimative Ziel ist es, sicherzustellen, dass alle generischen Objekte freigegeben werden, wenn MiniportHaltEx endet. |
|
Die NdisAllocateMdl-Regel gibt an, dass NdisAllocateMdl und NdisFreeMdl in alternativer Reihenfolge aufgerufen werden. Das ultimative Ziel ist es, sicherzustellen, dass alle MDLs freigegeben werden, wenn MiniportHaltEx endet. |
|
Die NdisAllocateMemoryWithTagPriority-Regel gibt an, dass ein Treiber NdisAllocateMemoryWithTagPriority nicht aufrufen darf, ohne ein Tag anzugeben. Jede Speicherzuweisung sollte ein eindeutiges Pooltag verwenden, um sicherzustellen, dass Kerneldebugger und Driver Verifier einen eindeutig zugewiesenen Speicherblock identifizieren können. |
|
Die NdisAllocateNetBuffer-Regel gibt an, dass NdisAllocateNetBuffer und NdisFreeNetBuffer in alternativer Reihenfolge aufgerufen werden. Das ultimative Ziel ist es, sicherzustellen, dass alle Instanzen von NET_BUFFER freigegeben werden, wenn MiniportHaltEx endet. |
|
NdisMFreeSharedMemory kann nicht von einer MiniportShutdownEx-Funktion aufgerufen werden. |
|
Der Treiber darf NdisMIndicateStatusEx nicht aufrufen, nachdem er von der MiniportHaltEx-Funktion zurückgegeben wird. |
|
Die NdisMMapIoSpace-Funktion sollte nur im Kontext von MiniportInitializeEx aufgerufen werden. |
|
Ein Miniporttreiber ruft NdisMRegisterIoPortRange aus seinen MiniportInitializeEx - oder MINIPORT_ADD_DEVICE-Funktionen auf. MiniportInitializeEx oder MINIPORT_ADD_DEVICE müssen NdisMSetMiniportAttributes aufrufen, bevor NdisMRegisterIoPortRange aufgerufen wird. |
So wählen Sie einen Speichernutzung-Regelsatz aus
Wählen Sie Ihr Treiberprojekt (VCXProj) in Microsoft Visual Studio aus. Klicken Sie im Menü "Treiber" auf "Statische Treiberüberprüfung starten".
Klicken Sie auf die Registerkarte "Regeln ". Wählen Sie unter Regelsätze " MemoryUsage" aus.
Um den Standardregelsatz aus einem Visual Studio-Entwickler-Eingabeaufforderungsfenster auszuwählen, geben Sie MemoryUsage.sdv mit der Option "/check " an. Beispiel:
msbuild /t:sdv /p:Inputs="/check:MemoryUsage.sdv" mydriver.VcxProj /p:Configuration="Win8 Release" /p:Platform=Win32Weitere Informationen finden Sie unter Verwendung von Static Driver Verifier zur Fehlererkennung in Treibern und Befehle für Static Driver Verifier (MSBuild).