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