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