锁定规则集 (NDIS)

使用这些规则验证驱动程序是否正确管理共享资源。

在本节中

主题 说明

SpinLock

SpinLock 规则验证 NDIS 旋转锁接口是否正确使用。 此规则指定仅在 SpinLock 处于解锁状态时调用 NdisAcquireSpinLock 。 此规则还验证在微型端口处理程序例程退出之前是否释放了 SpinLock。

SpinLockBalanced

SpinLockBalanced 规则验证对获取 SpinLock 的函数的调用数是否等于对释放同一 SpinLock 的函数的调用数。

SpinLockDpr

SpinLockDpr 规则验证 NDIS 旋转锁接口是否正确使用。

此规则指定仅当旋转锁处于解锁状态时才调用 NdisDprAcquireSpinLock 。 此规则还会验证在微型端口处理程序例程退出之前是否释放了旋转锁。

SpinLockDprRelease

SpinLockDprRelease 规则验证仅当 SpinLock 处于“解锁”状态时,才会调用对 NdisAcquireSpinLockNdisDprAcquireSpinLock 的调用。 此规则还会检查在退出微型端口处理程序例程之前是否已释放 SpinLock。

SpinLockRelease

SpinLockRelease 规则指定驱动程序不得在未先获取自旋锁 (NdisReleaseSpinLock) 释放旋转锁。

选择锁定规则集

  1. 在 Microsoft Visual Studio 中选择驱动程序项目 (.vcxProj) 。 在“ 驱动程序 ”菜单中,单击“ 启动静态驱动程序验证程序...”

  2. 单击“ 规则 ”选项卡。在 “规则集”下,选择“ 锁定”。

    若要从 Visual Studio 开发人员命令提示符窗口中选择默认规则集,请使用 /检查 选项指定 Locking.sdv。 例如:

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

    有关详细信息,请参阅 使用静态驱动程序验证程序查找驱动程序中的缺陷静态驱动程序验证程序命令 (MSBuild)