次の方法で共有


MmIsDriverVerifying 関数 (wdm.h)

MmIsDriverVerifying ルーチンは、指定された ドライバー オブジェクト によって識別されるカーネル モード ドライバーが検証されているか、ドライバー検証ツール によって検証されているドライバー呼び出すかを示します。

構文

LOGICAL MmIsDriverVerifying(
  [in] _DRIVER_OBJECT *DriverObject
);

パラメーター

[in] DriverObject

ドライバー オブジェクトを表す DRIVER_OBJECT 構造体へのポインター。 ドライバーは、DriverEntry ルーチンへの入力パラメーターとしてこのポインターを受け取ります。

戻り値

MmIsDriverVerifying は、指定したドライバーがドライバー検証リストに含まれているか、ドライバー検証リストに含まれるドライバーのエントリ ポイントへの呼び出しをインポートする場合、TRUE を返します。 それ以外の場合、このルーチンは FALSE 返します。

備考

カーネル モード ドライバーは、このルーチンを呼び出して、ドライバー検証ツール 監視されているかどうかを判断できます。 ドライバー検証ツールは、カーネル モード ドライバーを監視して、システムを破損する可能性のある無効な関数呼び出しまたはアクションを検出します。 検証するドライバーを選択するには、検証ツールのコマンド ライン またはドライバー検証ツール マネージャー を使用します。 ドライバー検証の一覧にドライバーを追加する方法の詳細については、「検証するドライバーの選択を参照してください。

MmIsDriverVerifyingByAddress 同様のルーチンは、ドライバー イメージ アドレスによって識別されるドライバーが検証されているか、検証中のドライバーを呼び出すかを示します。 MmIsDriverVerifyingByAddress は、Windows Vista 以降で使用できます。

MmIsDriverSuspectForVerifier 別の関連ルーチンは、検証対象として選択されたドライバーの一覧に ドライバー オブジェクトによって表されるドライバーがあるかどうかを示します。 MmIsDriverSuspectForVerifier は、Windows 8 以降で使用できます。

たとえば、ドライバー A にドライバー B の 1 つ以上のエントリ ポイントを呼び出すインポート テーブルがあり、ドライバー B がドライバー検証リストに含まれている場合、MmIsDriverVerifying(A) は TRUE 返し、MmIsDriverSuspectForVerifier(B) は TRUE 返します。 ドライバー A がドライバー検証リストにない場合、MmIsDriverSuspectForVerifier(A) は FALSE 返します。 ドライバー B がドライバー検証リストに含まれるドライバーのエントリ ポイントを呼び出さない場合でも、ドライバー B がドライバー検証リストに含まれているため、MmIsDriverVerifying(B) は TRUE 返します。 ドライバー C がドライバー検証リストに含まれていない場合、ドライバー検証リストに含まれるドライバーのエントリ ポイントを呼び出さない場合、MmIsDriverVerifying(C)MmIsDriverSuspectForVerifier(C) はどちらも FALSE 返します。

必要条件

要件 価値
サポートされる最小クライアント Windows 2000 以降で使用できます。
ターゲット プラットフォーム 万国
ヘッダー wdm.h (Wdm.h、Ntddk.h、Ntifs.h を含む)
ライブラリ NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL

関連項目

DRIVER_OBJECT

DriverEntry

mmIsDriverVerifyingByAddress