Partilhar via


Conjunto de regras de uso de memória (NDIS)

Use estas regras para verificar se o driver chama corretamente as funções NDIS para alocar e liberar memória.

Nesta secção

Tópico Descrição

NdisAllocateGenericObject

A regra NdisAllocateGenericObject especifica que NdisAllocateGenericObject e NdisFreeGenericObject são chamados em ordem alternativa. O objetivo final é garantir que todos os objetos genéricos sejam liberados quando o MiniportHaltEx terminar.

NdisAllocateMdl

A regra NdisAllocateMdl especifica que NdisAllocateMdl e NdisFreeMdl são chamados em ordem alternativa. O objetivo final é garantir que todas as MDLs sejam liberadas quando o MiniportHaltEx terminar.

NdisAllocateMemoryWithTagPriority

A regra NdisAllocateMemoryWithTagPriority especifica que um driver não deve chamar NdisAllocateMemoryWithTagPriority sem fornecer uma Tag.

Cada alocação de memória deve usar uma etiqueta de pool exclusiva para garantir que os depuradores do kernel e o Verificador de Driver possam identificar um bloco de memória alocado distinto.

NdisAllocateNetBuffer

A regra NdisAllocateNetBuffer especifica que NdisAllocateNetBuffer e NdisFreeNetBuffer são chamados em ordem alternativa. O objetivo final é garantir que todas as instâncias de NET_BUFFER sejam liberadas quando o MiniportHaltEx terminar.

NdisMFreeSharedMemory

NdisMFreeSharedMemory não pode ser chamado a partir de uma função MiniportShutdownEx .

NdisMIndicateStatusEx

O driver não deve chamar NdisMIndicateStatusEx depois de retornar da função MiniportHaltEx.

NdisMMapIoSpace

A função NdisMMapIoSpace só deve ser chamada no contexto de MiniportInitializeEx.

NdisMRegisterIoPortRange

Um driver de miniporta invoca NdisMRegisterIoPortRange a partir das suas funções MiniportInitializeEx ou MINIPORT_ADD_DEVICE. MiniportInitializeEx ou MINIPORT_ADD_DEVICE deve chamar NdisMSetMiniportAttributes antes de chamar NdisMRegisterIoPortRange.

Para selecionar o conjunto de regras de uso de memória

  1. Selecione seu projeto de driver (.vcxProj) no Microsoft Visual Studio. No menu Driver, clique em Iniciar Verificador de Driver Estático...

  2. Clique na guia Regras . Em Conjuntos de Regras, selecione MemoryUsage.

    Para selecionar o conjunto de regras padrão em uma janela de prompt de comando do desenvolvedor do Visual Studio, especifique MemoryUsage.sdv com a opção /check . Por exemplo:

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

    Para obter mais informações, consulte Usando o Verificador de Driver Estático para Localizar Defeitos em Drivers e Comandos do Verificador de Driver Estático (MSBuild).