storport) (IRQL 规则集
使用这些规则验证驱动程序是否在所需的 IRQL 上发出 DDI 调用。
不遵循 IRQL 规则的驱动程序在操作期间可能会导致严重问题,从而导致死锁情况或计算机崩溃。
在本节中
主题 | 说明 |
---|---|
此规则验证是否仅在 IRQL = DISPATCH_LEVEL调用以下例程。 |
|
此规则验证仅在 IRQL = DISPATCH_LEVEL 调用 KeReleaseSpinLock。 它还必须将 IRQL 设置为以前的 IRQL 级别。 通常,此调用之前会调用 KeAcquireSpinLock。 |
|
此规则验证 StorPort 回调例程是否以调用它们的相同 IRQL 级别返回。 |
|
此规则验证例程 TdiRegisterPnPHandlers 和 TdiDeregisterPnPHandlers 仅在低于 DISPATCH_LEVEL 的 IRQL 下调用。 但是,如果调用 ExFreeToNPagedLookasideList ,则规则会传递。 |
|
StorPortIrql 规则检查是否在正确的 IRQL 级别调用 StorPort 例程。 |
选择 Irql 规则集
在 Microsoft Visual Studio 中选择驱动程序项目 (.vcxProj) 。 在“ 驱动程序 ”菜单中,单击“ 启动静态驱动程序验证程序...”。
单击“ 规则 ”选项卡。在 “规则集”下,选择“ Irql”。
若要从 Visual Studio 开发人员命令提示符窗口中选择默认规则集,请使用 /检查 选项指定 Irql.sdv。 例如:
msbuild /t:sdv /p:Inputs="/check:Irql.sdv" mydriver.VcxProj /p:Configuration="Win8 Release" /p:Platform=Win32
有关详细信息,请参阅 使用静态驱动程序验证程序查找驱动程序中的缺陷 和 静态驱动程序验证程序命令 (MSBuild) 。