Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Используйте эти правила, чтобы убедиться, что драйвер правильно вызывает DDI, которые представляют особый интерес для драйверов виртуального минипорта Storport (VMiniport).
В этом разделе
| Тема | Описание |
|---|---|
Это правило проверяет, что драйвер не пытается освободить один блок памяти пула дважды. |
|
Это правило проверяет, что KeSetEvent не вызывается дважды в одном объекте события. Если тот же объект события передается в процедуру, драйвер нарушает правило. |
|
Это правило проверяет, что IRP, выделенный с помощью IoAllocateIrp, будет освобожден с помощью IoFreeIrp или для него будет установлена подпрограмма завершения с помощью IoSetCompletionRoutine. |
|
Это правило проверяет, что при выходе из подпрограммы HwStorFindAdapter поле VirtualDevice в структуре PORT_CONFIGURATION_INFORMATION (Storport) имеет значение FALSE. Правило применяется только к физическим минипортам StorPort. |
|
Это правило проверяет, что при выходе из подпрограммы HwStorFindAdapter для поля VirtualDevice в структуре PORT_CONFIGURATION_INFORMATION (Storport) задано значение TRUE. Правило применяется только к минипортам virtual StorPort. |
|
Это правило проверяет, что вызовы драйвера к определенным функциям синхронизации выполняются только в то время как обычная доставка APC ядра отключена. |
|
Это правило проверяет, что дескриптор раздела реестра, созданный с помощью ZwCreateKey, впоследствии используется правильно другими подпрограммами ZwXxx. Подпрограмма ZwOpenKey не должна вызываться на уже открытом дескрипторе. Подпрограммы ZwEnumerateKey, ZwEnumerateValueKey, ZwFlushKey, ZwQueryKey, ZwQueryValueKey, ZwSetValueKey, ZwClose и ZwDeleteKey не должны вызываться на дескриптор, который не открыт. Ручка также должна быть закрыта перед возвратом. |
|
Это правило проверяет, правильно ли впоследствии используется дескриптор ключа реестра, открытый с помощью ZwOpenKey, другими подпрограммами ZwXxx. Подпрограммы ZwEnumerateKey, ZwEnumerateValueKey, ZwFlushKey, ZwQueryKey, ZwQueryValueKey, ZwSetValueKey, ZwClose и ZwDeleteKey не должны вызываться на дескрипторе, который не был открыт. Рукоятка также должна быть закрыта перед возвратом. |
Выбор набора правил VirtualStorport
Выберите проект драйвера (.vcxProj) в Microsoft Visual Studio. В меню драйвера щелкните Запустить средство проверки статических драйверов....
Перейдите на вкладку "Правила ". В разделе "Наборы правил" выберите VirtualStorport.
Чтобы выбрать набор правил по умолчанию в окне командной строки разработчика Visual Studio, укажите VirtualStorport.sdv с параметром /check . Рассмотрим пример.
msbuild /t:sdv /p:Inputs="/check:VirtualStorport.sdv" mydriver.VcxProj /p:Configuration="Win8 Release" /p:Platform=Win32Дополнительные сведения см. в статье Использование средства проверки статических драйверов для поиска дефектов в драйверах и команды средства проверки статических драйверов (MSBuild).