MmIsDriverVerificationByAddress 函数 (wdm.h)

MmIsDriverVerificationByAddress 例程检查是否正在验证由指定映像地址标识的内核模式驱动程序,或者是否正在调用由驱动程序验证程序验证的驱动程序。

语法

LOGICAL MmIsDriverVerifyingByAddress(
  [in] PVOID AddressWithinSection
);

参数

[in] AddressWithinSection

指向驱动程序映像中的虚拟地址的指针。 MmIsDriverVerificationByAddress 使用此地址来确定要检查的驱动程序。

返回值

如果指定的驱动程序位于驱动程序验证列表中,或者导入对驱动程序验证列表中的驱动程序中的入口点的调用,则 MmIsDriverVerificationByAddress 返回 TRUE。 否则,此例程返回 FALSE

注解

内核模式驱动程序可以调用此例程,以确定驱动程序 验证程序是否监视它或其他驱动程序。 驱动程序验证程序监视内核模式驱动程序,以检测可能损坏系统的非法函数调用或操作。 若要选择要验证的驱动程序,可以使用 验证程序命令行驱动程序验证程序管理器。 有关将驱动程序添加到驱动程序验证列表的详细信息,请参阅 选择要验证的驱动程序

类似的例程 MmIsDriverVerification 指示是验证 驱动程序对象 标识的驱动程序,还是调用正在验证的驱动程序。

另一个相关例程 MmIsDriverSuspectForVerifier 指示由驱动程序对象表示的驱动程序是否在选择要验证的驱动程序列表中。

例如,如果驱动程序 A 具有导入表,通过该表调用驱动程序 B 中的一个或多个入口点,并且驱动程序 B 位于驱动程序验证列表中,则 MmIsDriverVerifyingByAddress(Aobj) 返回 TRUEMmIsDriverSuspectForVerifier(Badr) 返回 TRUE,其中 Aobj 是指向 A 的驱动程序对象的指针,是 Badr 驱动程序 B 中的地址。如果驱动程序 A 不在驱动程序验证列表中, MmIsDriverSuspectForVerifier(Aobj) 则返回 FALSE。 即使驱动程序 B 不调用驱动程序验证列表中任何驱动程序中的入口点,也会返回 TRUEMmIsDriverVerifyingByAddress(Badr)因为驱动程序 B 位于驱动程序验证列表中。 如果驱动程序 C 不在驱动程序验证列表中,并且不调用驱动程序验证列表中的任何驱动程序中的入口点, MmIsDriverVerifyingByAddress(Cadr) 并且 MmIsDriverSuspectForVerifier(Cobj) 都返回 FALSE

要求

要求
最低受支持的客户端 从 Windows Vista 开始可用。
目标平台 通用
标头 wdm.h (包括 Wdm.h)
Library NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <=APC_LEVEL

另请参阅

MmIsDriverSuspectForVerifier

MmIsDriverVerification