mmIsDriverVerification 函数 (wdm.h)
MmIsDriverVerification 例程指示是验证由指定的驱动程序对象标识的内核模式驱动程序,还是调用由驱动程序验证程序验证的驱动程序。
语法
LOGICAL MmIsDriverVerifying(
[in] _DRIVER_OBJECT *DriverObject
);
参数
[in] DriverObject
指向表示驱动程序对象的 DRIVER_OBJECT 结构的指针。 驱动程序接收此指针作为其 DriverEntry 例程的输入参数。
返回值
如果指定的驱动程序位于驱动程序验证列表中,或者导入对驱动程序验证列表中的驱动程序中的入口点的调用,则 MmIsDriverVerification 将返回 TRUE。 否则,此例程返回 FALSE。
注解
内核模式驱动程序可以调用此例程,以确定它是否正在由 驱动程序验证程序监视。 驱动程序验证程序监视内核模式驱动程序,以检测可能损坏系统的非法函数调用或操作。 若要选择要验证的驱动程序,可以使用 验证程序命令行 或 驱动程序验证程序管理器。 有关将驱动程序添加到驱动程序验证列表的详细信息,请参阅 选择要验证的驱动程序。
类似的例程 MmIsDriverVerificationByAddress 指示是验证由驱动程序映像地址标识的驱动程序,还是正在调用正在验证的驱动程序。 从 Windows Vista 开始,可以使用 MmIsDriverVerificationByAddress。
另一个相关的例程 MmIsDriverSuspectForVerifier 指示由 驱动程序对象 表示的驱动程序是否在选择要验证的驱动程序列表中。 从 Windows 8 开始,可以使用 MmIsDriverSuspectForVerifier。
例如,如果驱动程序 A 有一个导入表,通过该表调用驱动程序 B 中的一个或多个入口点,并且驱动程序 B 位于驱动程序验证列表中,则 MmIsDriverVerifying(A)
返回 TRUE 并 MmIsDriverSuspectForVerifier(B)
返回 TRUE。 如果驱动程序 A 不在驱动程序验证列表中, MmIsDriverSuspectForVerifier(A)
则返回 FALSE。 即使驱动程序 B 不调用驱动程序验证列表中任何驱动程序中的入口点,也会返回 TRUE,MmIsDriverVerifying(B)
因为驱动程序 B 位于驱动程序验证列表中。 如果驱动程序 C 不在驱动程序验证列表中,并且未调用驱动程序验证列表中任何驱动程序中的入口点, MmIsDriverVerifying(C)
并且 MmIsDriverSuspectForVerifier(C)
两者都返回 FALSE。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 从 Windows 2000 开始可用。 |
目标平台 | 通用 |
标头 | wdm.h(包括 Wdm.h、Ntddk.h、Ntifs.h) |
Library | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= APC_LEVEL |