MmIsDriverVerifying function (wdm.h)

The MmIsDriverVerifying routine indicates whether the kernel-mode driver that is identified by the specified driver object is being verified or calls a driver that is being verified by Driver Verifier.

Syntax

LOGICAL MmIsDriverVerifying(
  [in] _DRIVER_OBJECT *DriverObject
);

Parameters

[in] DriverObject

A pointer to a DRIVER_OBJECT structure that represents a driver object. The driver receives this pointer as an input parameter to its DriverEntry routine.

Return value

MmIsDriverVerifying returns TRUE if the specified driver either is in the driver verification list or imports calls to entry points in a driver that is in the driver verification list. Otherwise, this routine returns FALSE.

Remarks

A kernel-mode driver can call this routine to determine whether it is being monitored by Driver Verifier. Driver Verifier monitors kernel-mode drivers to detect illegal function calls or actions that might corrupt the system. To select drivers to be verified, you can use the Verifier Command Line or Driver Verifier Manager. For more information about adding drivers to the driver verification list, see Selecting Drivers to be Verified.

A similar routine, MmIsDriverVerifyingByAddress, indicates whether a driver identified by a driver image address is being verified or calls a driver that is being verified. MmIsDriverVerifyingByAddress is available starting with Windows Vista.

Another related routine, MmIsDriverSuspectForVerifier, indicates whether a driver represented by a driver object is in the list of drivers that are selected to be verified. MmIsDriverSuspectForVerifier is available starting with Windows 8.

For example, if driver A has an import table through which it calls one or more entry points in driver B, and driver B is in the driver verification list, then MmIsDriverVerifying(A) returns TRUE and MmIsDriverSuspectForVerifier(B) returns TRUE. If driver A is not in the driver verification list, MmIsDriverSuspectForVerifier(A) returns FALSE. Even if driver B does not call entry points in any drivers that are in the driver verification list, MmIsDriverVerifying(B) returns TRUE because driver B is in the driver verification list. If a driver C is not in the driver verification list and does not call entry points in any drivers that are in the driver verification list, MmIsDriverVerifying(C) and MmIsDriverSuspectForVerifier(C) both return FALSE.

Requirements

Requirement Value
Minimum supported client Available starting with Windows 2000.
Target Platform Universal
Header wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
Library NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL

See also

DRIVER_OBJECT

DriverEntry

MmIsDriverVerifyingByAddress