記憶體使用量規則集 (NDIS)
使用這些規則來確認您的驅動程式已正確呼叫 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。 |
若要選取記憶體使用量規則集
在 Microsoft Visual Studio 中選取驅動程式項目 (.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) 。