Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Используйте эти правила, чтобы убедиться, что драйвер правильно вызывает функции NDIS для выделения и освобождения памяти.
В этом разделе
| Тема | Описание |
|---|---|
Правило NdisAllocateGenericObject указывает, что NdisAllocateGenericObject и NdisFreeGenericObject вызываются в альтернативном порядке. Конечная цель заключается в том, чтобы убедиться, что все универсальные объекты освобождаются, когда MiniportHaltEx заканчивается. |
|
Правило NdisAllocateMdl указывает, что NdisAllocateMdl и NdisFreeMdl вызываются в альтернативном порядке. Конечная цель заключается в том, чтобы убедиться, что все MDLs освобождены, когда 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 с параметром /check . Рассмотрим пример.
msbuild /t:sdv /p:Inputs="/check:MemoryUsage.sdv" mydriver.VcxProj /p:Configuration="Win8 Release" /p:Platform=Win32Дополнительные сведения см. в статье Использование средства проверки статических драйверов для поиска дефектов в драйверах и команды средства проверки статических драйверов (MSBuild).