Набор правил использования памяти (NDIS)
Используйте эти правила, чтобы убедиться, что драйвер правильно вызывает функции NDIS для выделения и освобождения памяти.
В этом разделе
Раздел | Описание |
---|---|
Правило NdisAllocateGenericObject указывает, что NdisAllocateGenericObject и NdisFreeGenericObject вызываются в альтернативном порядке. Конечная цель — убедиться, что все универсальные объекты освобождаются после окончания MiniportHaltEx . |
|
Правило NdisAllocateMdl указывает, что NdisAllocateMdl и NdisFreeMdl вызываются в альтернативном порядке. Конечная цель — убедиться, что все многомерные библиотеки освобождаются по окончании MiniportHaltEx . |
|
Правило NdisAllocateMemoryWithTagPriority указывает, что драйвер не должен вызывать NdisAllocateMemoryWithTagPriority без предоставления тега . Каждое выделение памяти должно использовать уникальный тег пула, чтобы отладчики ядра и средство проверки драйверов могли идентифицировать отдельный выделенный блок памяти. |
|
Правило NdisAllocateNetBuffer указывает, что NdisAllocateNetBuffer и NdisFreeNetBuffer вызываются в альтернативном порядке. Конечная цель — убедиться, что все экземпляры NET_BUFFER освобождаются после окончания MiniportHaltEx . |
|
NdisMFreeSharedMemory нельзя вызвать из функции MiniportShutdownEx . |
|
Драйвер не должен вызывать NdisMIndicateStatusEx после возврата из функции MiniportHaltEx . |
|
Функция NdisMMapIoSpace должна вызываться только в контексте MiniportInitializeEx. |
|
Драйвер мини-порта вызывает NdisMRegisterIoPortRange из своих функций MiniportInitializeEx или MINIPORT_ADD_DEVICE. MiniportInitializeEx или MINIPORT_ADD_DEVICE должны вызывать NdisMSetMiniportAttributes перед вызовом NdisMRegisterIoPortRange. |
Выбор набора правил использования памяти
Выберите проект драйвера (.vcxProj) в Microsoft Visual Studio. В меню Драйвер щелкните Запустить средство проверки статических драйверов....
Перейдите на вкладку Правила . В разделе Наборы правил выберите MemoryUsage.
Чтобы выбрать набор правил по умолчанию в окне командной строки разработчика Visual Studio, укажите MemoryUsage.sdv с параметром /проверка. Пример:
msbuild /t:sdv /p:Inputs="/check:MemoryUsage.sdv" mydriver.VcxProj /p:Configuration="Win8 Release" /p:Platform=Win32
Дополнительные сведения см. в разделах Использование статического средства проверки драйверов для поиска дефектов в драйверах и Команд статического средства проверки драйверов (MSBuild).