使用這些規則來確認您的驅動程式正確呼叫 NDIS 函式來配置和釋放記憶體。
本節中
| 主題 | 說明 |
|---|---|
NdisAllocateGenericObject 規則指定以替代順序呼叫 NdisAllocateGenericObject 和 NdisFreeGenericObject。 最終目標是確保 MiniportHaltEx 結束時釋放所有泛型物件。 |
|
NdisAllocateMdl 規則指定以替代順序呼叫 NdisAllocateMdl 和 NdisFreeMdl。 最終目標是確保 MiniportHaltEx 結束時釋放所有 MDL。 |
|
NdisAllocateMemoryWithTagPriority 規則指定驅動程式不得呼叫 NdisAllocateMemoryWithTagPriority 而不提供 Tag。 每個記憶體配置都應該使用唯一的集區標記,以確保核心調試程式和驅動程序驗證器可以識別不同的配置記憶體區塊。 |
|
NdisAllocateNetBuffer 規則會指定以替代順序呼叫 NdisAllocateNetBuffer 和 NdisFreeNetBuffer。 最終目標是確保當MiniportHaltEx結束時,釋放所有NET_BUFFER實例。 |
|
無法從 MiniportShutdownEx 函式呼叫 NdisMFreeSharedMemory。 |
|
驅動程式自MiniportHaltEx函式返回後,不得呼叫NdisMIndicateStatusEx。 |
|
NdisMMapIoSpace 函式只能在 MiniportInitializeEx 的內容中呼叫。 |
|
迷你埠驅動程式會從其MiniportInitializeEx或MINIPORT_ADD_DEVICE函式呼叫 NdisMRegisterIoPortRange。 MiniportInitializeEx 或MINIPORT_ADD_DEVICE必須先呼叫 NdisMSetMiniportAttributes ,才能呼叫 NdisMRegisterIoPortRange。 |
若要選取記憶體使用量規則集
在 Visual Studio Microsoft中選取您的驅動程式專案 (.vcxProj)。 從 驅動程式 選單中,點擊 啟動靜態驅動程式驗證程式…。
按兩下 [ 規則] 索引標籤。在 [規則集] 底下,選取 [ MemoryUsage]。
若要從 Visual Studio 開發人員命令提示字元視窗中選取預設規則集,請使用 /check 選項指定 MemoryUsage.sdv。 例如:
msbuild /t:sdv /p:Inputs="/check:MemoryUsage.sdv" mydriver.VcxProj /p:Configuration="Win8 Release" /p:Platform=Win32如需詳細資訊,請參閱 使用靜態驅動程式驗證器尋找驅動程式中的瑕疵 和 靜態驅動程式驗證器命令(MSBuild)。