Набор правил использования DDI (WDM)
Используйте эти правила, чтобы убедиться, что драйвер правильно использует WDM DIS.
В этом разделе
Раздел | Описание |
---|---|
Правило DebugBreakUsage указывает, что драйвер не должен вызывать DbgBreakPoint или DbgBreakPointWithStatus. Это правило применяется только при создании не отладочной версии драйвера. |
|
Правило DoubleFetch проверяет наличие двойной выборки из указателей памяти в пользовательском режиме. Двойной доступ к памяти в режиме ядра может привести к проблеме безопасности состояния гонки. При доступе к данным пользовательского режима код режима ядра должен сделать копию данных пользовательского режима локально и избежать многократного доступа к данным пользовательского режима. В противном случае возникает проблема, известная как "двойная выборка", при которой данные могут измениться после первого доступа к ним. |
|
Правило NullCheck проверяет, что значение NULL в коде драйвера не разыменовывается позже в драйвере. Это правило сообщает о дефекте, если выполняется одно из следующих условий:
При нарушениях правил NullCheck наиболее релевантные операторы кода выделяются в области дерева трассировки. Дополнительные сведения о работе с выходными данными отчета см. в разделах Отчет о средстве проверки статических драйверов и Основные сведения о средстве просмотра трассировки. |
|
Правило SafeStrings указывает, что драйвер вызывает только те функции управления строками, которые защищают систему от непреднамеренного или вредоносного вторжения. Эти безопасные строковые функции для драйверов определены в ntstrsafe.h. |
|
Правило ObsoleteDDIs указывает, что драйверы не должны вызывать FsRtlPrivateLock. Эта функция является устаревшей. Вместо этого используйте FsRtlFastLock . |
Выбор набора правил использования 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).