Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Используйте эти правила, чтобы убедиться, что драйвер правильно использует DDIs NDIS.
В этом разделе
| Тема | Описание |
|---|---|
Правило Init_DeRegisterInterrupt указывает, что если NdisMRegisterInterruptEx вызывается по крайней мере один раз во время MPInitilize, NdisMDeregisterInterruptEx должен вызываться по крайней мере один раз в MPHaltEx. |
|
Правило Init_NdisAllocateIoWorkItem указывает, что если NdisAllocateIoWorkItem вызывается по крайней мере один раз во время MiniportInitializeEx, функция NdisFreeIoWorkItem должна:
|
|
Правило Init_RegisterInterrupt указывает, что регистрация прерываний, которая обычно происходит во время инициализации, должна быть отменена, если в процессе инициализации что-то происходит неправильно или во время остановки драйвера мини-порта. Если NdisMRegisterInterruptEx вызывается по крайней мере один раз во время MiniportInitializeEx, функция NdisMDeregisterInterruptEx должна вызываться по крайней мере один раз в MiniportHaltEx. |
|
Правило Init_RegisterSG указывает, что регистрация списка Scatter-Gather (SG), которая обычно происходит во время инициализации, должна быть отменена, если в процессе инициализации или при остановке минипортового драйвера происходит ошибка. Если NdisMRegisterScatterGatherDma вызывается по крайней мере один раз во время MiniportInitializeEx, функция NdisMDeregisterScatterGatherDma должна вызываться по крайней мере один раз в MiniportHaltEx. |
|
Драйвер фильтра должен вызывать NdisFDeregisterFilterDriver из подпрограммы FilterDriverUnload . |
|
После возврата элемента управления NdisMDeregisterInterruptEx драйвер минипорта не может вызвать функцию NdisMSynchronizeWithInterruptEx . |
|
Правило NULLCheck проверяет, что значение NULL в коде драйвера не разыменовывается впоследствии в драйвере. Это правило сообщает о дефекте, если одно из этих условий истинно.
При нарушениях правил NullCheck наиболее релевантные операторы кода выделены в области дерева трассировки. Дополнительные сведения о работе с выходными данными отчета см. в отчете средства проверки статических драйверов и понимании средства просмотра трассировки. |
Выбор набора правил использования DDI
Выберите проект драйвера (.vcxProj) в Microsoft Visual Studio. В меню драйвера щелкните Запустить средство проверки статических драйверов....
Перейдите на вкладку "Правила ". В разделе "Наборы правил" выберите DDIUsage.
Чтобы выбрать набор правил по умолчанию в окне командной строки разработчика Visual Studio, укажите DDIUsage.sdv с параметром /check . Рассмотрим пример.
msbuild /t:sdv /p:Inputs="/check:DDIUsage.sdv" mydriver.VcxProj /p:Configuration="Win8 Release" /p:Platform=Win32Дополнительные сведения см. в статье Использование средства проверки статических драйверов для поиска дефектов в драйверах и команды средства проверки статических драйверов (MSBuild).