共用方式為


記憶體使用量規則集 (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. 在 Microsoft Visual Studio 中選取驅動程式項目 (.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) 。