Compartilhar via


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

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

Nesta seçã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 MiniportHaltEx terminar.

NdisAllocateMdl

A regra NdisAllocateMdl especifica que NdisAllocateMdl e NdisFreeMdl são chamados em ordem alternativa. O objetivo final é garantir que todos os MDLs sejam liberados quando 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 de kernel e o Verificador de Driver possam identificar um bloco distinto de memória alocada.

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 MiniportHaltEx terminar.

NdisMFreeSharedMemory

NdisMFreeSharedMemory não pode ser chamado 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 miniporto chama NdisMRegisterIoPortRange nas funções MiniportInitializeEx ou MINIPORT_ADD_DEVICE. MiniportInitializeEx ou MINIPORT_ADD_DEVICE devem 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).