其他规则集 (KMDF)

使用这些规则可以验证驱动程序是否正确遵循一组常规要求,以便正确处理设备对象和密钥,并且驱动程序不会调用不适合非 PnP 驱动程序或非 FDO 驱动程序(不是电源策略所有者)的 DDI。

在本节中

主题 说明

AccessHardwareKey

AccessHardwareKey 规则指定总线驱动程序不应尝试从 EvtChildListCreateDevice 访问子设备的硬件密钥。

AddPdotoStaticChildlist

AddPdotoStaticChildlist 规则指定对于 PDO 设备,必须在驱动程序成功调用 WdfPdoInitAllocateWdfDeviceCreate 后调用框架函数 WdfFdoAddStaticChild

ChildListConfiguration

ChildListConfiguration 规则指定支持动态枚举的驱动程序必须在调用 WdfDeviceCreate 函数之前调用 WdfFdoInitSetDefaultChildListConfig

Cleanup4CtlDeviceRegistered

Cleanup4CtlDeviceRegistered 规则指定,如果即插即用 (PnP) 驱动程序为控制设备对象调用 WdfDeviceCreate,驱动程序必须注册所需的事件回调函数之一。

NonFDONotPowerPolicyOwnerAPI

NonFDONotPowerPolicyOwnerAPI 规则指定,如果非 FDO 驱动程序不是电源策略所有者,则无法调用某些 DDI。

NonPnPDrvPowerPolicyOwnerAPI

NonPnPDrvPowerPolicyOwnerAPI 规则指定非 PnP 驱动程序无法调用与电源管理相关的某些 DDI。

UnSafeAllocatePool

UnSafeAllocatePool 规则是一个重要的安全规则,用于检查驱动程序是否未使用已弃用的 DDI 来分配内存。

选择“杂项”规则集

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

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

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

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

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