其他规则集 (KMDF)
使用这些规则可以验证驱动程序是否正确遵循一组常规要求,以便正确处理设备对象和密钥,并且驱动程序不会调用不适合非 PnP 驱动程序或非 FDO 驱动程序(不是电源策略所有者)的 DDI。
在本节中
主题 | 说明 |
---|---|
AccessHardwareKey 规则指定总线驱动程序不应尝试从 EvtChildListCreateDevice 访问子设备的硬件密钥。 |
|
AddPdotoStaticChildlist 规则指定对于 PDO 设备,必须在驱动程序成功调用 WdfPdoInitAllocate 和 WdfDeviceCreate 后调用框架函数 WdfFdoAddStaticChild。 |
|
ChildListConfiguration 规则指定支持动态枚举的驱动程序必须在调用 WdfDeviceCreate 函数之前调用 WdfFdoInitSetDefaultChildListConfig。 |
|
Cleanup4CtlDeviceRegistered 规则指定,如果即插即用 (PnP) 驱动程序为控制设备对象调用 WdfDeviceCreate,驱动程序必须注册所需的事件回调函数之一。 |
|
NonFDONotPowerPolicyOwnerAPI 规则指定,如果非 FDO 驱动程序不是电源策略所有者,则无法调用某些 DDI。 |
|
NonPnPDrvPowerPolicyOwnerAPI 规则指定非 PnP 驱动程序无法调用与电源管理相关的某些 DDI。 |
|
UnSafeAllocatePool 规则是一个重要的安全规则,用于检查驱动程序是否未使用已弃用的 DDI 来分配内存。 |
选择“杂项”规则集
在 Microsoft Visual Studio 中选择驱动程序项目 (.vcxProj) 。 在“ 驱动程序 ”菜单中,单击“ 启动静态驱动程序验证程序...”。
单击“ 规则 ”选项卡。在 “规则集”下,选择“ 杂项”。
若要从 Visual Studio 开发人员命令提示符窗口中选择默认规则集,请使用 /检查 选项指定 Miscellaneous.sdv。 例如:
msbuild /t:sdv /p:Inputs="/check:Miscellaneous.sdv" mydriver.VcxProj /p:Configuration="Win8 Release" /p:Platform=Win32
有关详细信息,请参阅 使用静态驱动程序验证程序查找驱动程序中的缺陷 和 静态驱动程序验证程序命令 (MSBuild) 。