Regelsatz für die Speicherauslastung (NDIS)
Verwenden Sie diese Regeln, um zu überprüfen, ob Ihr 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 besteht darin, sicherzustellen, dass alle generischen Objekte freigegeben werden, wenn MiniportHaltEx beendet wird. |
|
Die NdisAllocateMdl-Regel gibt an, dass NdisAllocateMdl und NdisFreeMdl in alternativer Reihenfolge aufgerufen werden. Das ultimative Ziel besteht darin, sicherzustellen, dass alle MDLs freigegeben werden, wenn MiniportHaltEx beendet wird. |
|
Die NdisAllocateMemoryWithTagPriority-Regel gibt an, dass ein Treiber NdisAllocateMemoryWithTagPriority nicht aufrufen darf, ohne ein Tag bereitzustellen. Jede Speicherzuweisung sollte ein eindeutiges Pooltag verwenden, um sicherzustellen, dass Kernel-Debugger und die Treiberüberprüfung einen eindeutigen zugewiesenen Speicherblock identifizieren können. |
|
Die NdisAllocateNetBuffer-Regel gibt an, dass NdisAllocateNetBuffer und NdisFreeNetBuffer in alternativer Reihenfolge aufgerufen werden. Das ultimative Ziel besteht darin, sicherzustellen, dass alle Instanzen von NET_BUFFER freigegeben werden, wenn MiniportHaltEx beendet wird. |
|
NdisMFreeSharedMemory kann nicht über eine MiniportShutdownEx-Funktion aufgerufen werden. |
|
Der Treiber darf NdisMIndicateStatusEx nicht aufrufen, nachdem er von der MiniportHaltEx-Funktion zurückgegeben wurde. |
|
Die NdisMMapIoSpace-Funktion sollte nur im Kontext von MiniportInitializeEx aufgerufen werden. |
|
Ein Miniporttreiber ruft NdisMRegisterIoPortRange über seine MiniportInitializeEx - oder MINIPORT_ADD_DEVICE-Funktionen auf. MiniportInitializeEx oder MINIPORT_ADD_DEVICE muss NdisMSetMiniportAttributes aufrufen, bevor NdisMRegisterIoPortRange aufgerufen wird. |
So wählen Sie den Regelsatz Speichernutzung 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ätzedie Option MemoryUsage aus.
Um den Standardregelsatz aus einem Visual Studio-Entwicklereingabeaufforderungsfenster 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=Win32
Weitere Informationen finden Sie unter Using Static Driver Verifier to Find Defects in Drivers and Static Driver Verifier commands (MSBuild).