Поделиться через


Набор правил блокировки (NDIS)

Используйте эти правила, чтобы убедиться, что драйвер правильно управляет общими ресурсами.

В этом разделе

Раздел Описание

Спин

Правило SpinLock проверяет правильность использования интерфейса спиновой блокировки NDIS. Это правило указывает, что вызовы NdisAcquireSpinLock выполняются только в том случае, если SpinLock находится в состоянии разблокировки. Это правило также проверяет, освобождается ли SpinLock до выхода подпрограммы обработчика мини-порта.

SpinLockBalanced

Правило SpinLockBalanced проверяет, что количество вызовов функций, которые получают SpinLock, равно количеству вызовов функций, выпускающих один и тот же SpinLock.

SpinLockDpr

Правило SpinLockDpr проверяет правильность использования интерфейса спиновой блокировки NDIS.

Это правило указывает, что вызовы NdisDprAcquireSpinLock выполняются только в том случае, если спиновая блокировка находится в состоянии разблокировки. Это правило также проверяет, освобождается ли спиновая блокировка до выхода подпрограммы обработчика минипорта.

SpinLockDprRelease

Правило SpinLockDprRelease проверяет, вызываются ли вызовы NdisAcquireSpinLock или NdisDprAcquireSpinLock , только если SpinLock является состоянием "разблокирован". Это правило также проверяет, что перед выходом из подпрограммы обработчика минипорта SpinLock был освобожден.

SpinLockRelease

Правило SpinLockRelease указывает, что драйвер не должен освобождать спин-блокировку (NdisReleaseSpinLock) без ее предварительного получения.

Выбор набора правил блокировки

  1. Выберите проект драйвера (VCXProj) в Microsoft Visual Studio. В меню Драйвер выберите Запуск средства проверки статических драйверов....

  2. Перейдите на вкладку Правила . В разделе Наборы правил выберите Блокировка.

    Чтобы выбрать набор правил по умолчанию в окне командной строки разработчика Visual Studio, укажите Locking.sdv с параметром /проверка. Пример:

    msbuild /t:sdv /p:Inputs="/check:Locking.sdv" mydriver.VcxProj /p:Configuration="Win8 Release" /p:Platform=Win32
    

    Дополнительные сведения см. в разделах Использование статического средства проверки драйверов для поиска дефектов в драйверах и Команд средства проверки статических драйверов (MSBuild).