Conjunto de reglas de uso de memoria (NDIS)
Use estas reglas para comprobar que el controlador llama correctamente a las funciones NDIS para asignar y liberar memoria.
En esta sección
Tema | Descripción |
---|---|
La regla NdisAllocateGenericObject especifica que se llama a NdisAllocateGenericObject y NdisFreeGenericObject en orden alternativo. El objetivo final es asegurarse de que todos los objetos genéricos se liberan cuando finaliza MiniportHaltEx . |
|
La regla NdisAllocateMdl especifica que se llama a NdisAllocateMdl y NdisFreeMdl en orden alternativo. El objetivo final es asegurarse de que todos los MDL se liberan cuando finaliza MiniportHaltEx . |
|
La regla NdisAllocateMemoryWithTagPriority especifica que un controlador no debe llamar a NdisAllocateMemoryWithTagPriority sin proporcionar una etiqueta. Cada asignación de memoria debe usar una etiqueta de grupo única para asegurarse de que los depuradores de kernel y el Comprobador de controladores puedan identificar un bloque de memoria asignado distinto. |
|
La regla NdisAllocateNetBuffer especifica que se llama a NdisAllocateNetBuffer y NdisFreeNetBuffer en orden alternativo. El objetivo final es asegurarse de que todas las instancias de NET_BUFFER se liberan cuando finaliza MiniportHaltEx . |
|
No se puede llamar a NdisMFreeSharedMemory desde una función MiniportShutdownEx. |
|
El controlador no debe llamar a NdisMIndicateStatusEx después de que se devuelva de la función MiniportHaltEx . |
|
Solo se debe llamar a la función NdisMMapIoSpace en el contexto de MiniportInitializeEx. |
|
Un controlador de minipuerto llama a NdisMRegisterIoPortRange desde sus funciones MiniportInitializeEx o MINIPORT_ADD_DEVICE. MiniportInitializeEx o MINIPORT_ADD_DEVICE debe llamar a NdisMSetMiniportAttributes antes de llamar a NdisMRegisterIoPortRange. |
Para seleccionar el conjunto de reglas de uso de memoria
Seleccione el proyecto de controlador (.vcxProj) en Microsoft Visual Studio. En el menú Controlador , haga clic en Iniciar comprobador de controladores estáticos....
Haga clic en la pestaña Reglas . En Conjuntos de reglas, seleccione MemoryUsage.
Para seleccionar el conjunto de reglas predeterminado en una ventana del símbolo del sistema para desarrolladores de Visual Studio, especifique MemoryUsage.sdv con la opción /check . Por ejemplo:
msbuild /t:sdv /p:Inputs="/check:MemoryUsage.sdv" mydriver.VcxProj /p:Configuration="Win8 Release" /p:Platform=Win32
Para obtener más información, consulte Uso del comprobador de controladores estáticos para buscar defectos en controladores y comandos de comprobador de controladores estáticos (MSBuild).