記憶體使用量規則集 (NDIS)

使用這些規則來確認您的驅動程式正確呼叫 NDIS 函式來配置和釋放記憶體。

本節中

主題 說明

NdisAllocateGenericObject

NdisAllocateGenericObject 規則指定以替代順序呼叫 NdisAllocateGenericObjectNdisFreeGenericObject。 最終目標是確保 MiniportHaltEx 結束時釋放所有泛型物件。

NdisAllocateMdl

NdisAllocateMdl 規則指定以替代順序呼叫 NdisAllocateMdlNdisFreeMdl。 最終目標是確保 MiniportHaltEx 結束時釋放所有 MDL。

NdisAllocateMemoryWithTagPriority

NdisAllocateMemoryWithTagPriority 規則指定驅動程式不得呼叫 NdisAllocateMemoryWithTagPriority 而不提供 Tag

每個記憶體配置都應該使用唯一的集區標記,以確保核心調試程式和驅動程序驗證器可以識別不同的配置記憶體區塊。

NdisAllocateNetBuffer

NdisAllocateNetBuffer 規則會指定以替代順序呼叫 NdisAllocateNetBufferNdisFreeNetBuffer。 最終目標是確保當MiniportHaltEx結束時,釋放所有NET_BUFFER實例。

NdisMFreeSharedMemory

無法從 MiniportShutdownEx 函式呼叫 NdisMFreeSharedMemory

NdisMIndicateStatusEx

驅動程式自MiniportHaltEx函式返回後,不得呼叫NdisMIndicateStatusEx

NdisMMapIoSpace

NdisMMapIoSpace 函式只能在 MiniportInitializeEx 的內容中呼叫。

NdisMRegisterIoPortRange

迷你埠驅動程式會從其MiniportInitializeEx或MINIPORT_ADD_DEVICE函式呼叫 NdisMRegisterIoPortRangeMiniportInitializeEx 或MINIPORT_ADD_DEVICE必須先呼叫 NdisMSetMiniportAttributes ,才能呼叫 NdisMRegisterIoPortRange

若要選取記憶體使用量規則集

  1. 在 Visual Studio Microsoft中選取您的驅動程式專案 (.vcxProj)。 從 驅動程式 選單中,點擊 啟動靜態驅動程式驗證程式…

  2. 按兩下 [ 規則] 索引標籤。在 [規則集] 底下,選取 [ MemoryUsage]。

    若要從 Visual Studio 開發人員命令提示字元視窗中選取預設規則集,請使用 /check 選項指定 MemoryUsage.sdv。 例如:

    msbuild /t:sdv /p:Inputs="/check:MemoryUsage.sdv" mydriver.VcxProj /p:Configuration="Win8 Release" /p:Platform=Win32
    

    如需詳細資訊,請參閱 使用靜態驅動程式驗證器尋找驅動程式中的瑕疵靜態驅動程式驗證器命令(MSBuild)