MmIsDriverVerifying 関数 (wdm.h)
MmIsDriverVerifying ルーチンは、指定されたドライバー オブジェクトによって識別されるカーネル モード ドライバーが検証されているか、ドライバー検証ツールによって検証されているドライバーを呼び出すかを示します。
構文
LOGICAL MmIsDriverVerifying(
[in] _DRIVER_OBJECT *DriverObject
);
パラメーター
[in] DriverObject
ドライバー オブジェクトを表す DRIVER_OBJECT 構造体へのポインター。 ドライバーは、 DriverEntry ルーチンへの入力パラメーターとしてこのポインターを受け取ります。
戻り値
MmIsDriverVerifying は、指定したドライバーがドライバー検証リストに含まれているか、ドライバー検証リストにあるドライバーのエントリ ポイントへの呼び出しをインポートする場合に TRUE を 返します。 それ以外の場合、このルーチンは FALSE を返します。
注釈
カーネル モード ドライバーは、ドライバー 検証ツールによって監視されているかどうかを判断するには、このルーチンを呼び出すことができます。 ドライバー検証ツールは、カーネル モード ドライバーを監視して、システムを破損させる可能性のある無効な関数呼び出しまたはアクションを検出します。 検証するドライバーを選択するには、 Verifier コマンド ライン または ドライバー検証ツール マネージャーを使用します。 ドライバー検証リストへのドライバーの追加の詳細については、「 検証するドライバーの選択」を参照してください。
同様のルーチン MmIsDriverVerificationByAddress は、ドライバー イメージ アドレスで識別されたドライバーが検証中か、検証中のドライバーを呼び出すかを示します。 MmIsDriverVerificationByAddress は、Windows Vista 以降で使用できます。
別の関連ルーチン MmIsDriverSuspectForVerifier は、 ドライバー オブジェクト によって表されるドライバーが、検証対象として選択されたドライバーの一覧に含まれているかどうかを示します。 mmIsDriverSuspectForVerifier は、Windows 8以降で使用できます。
たとえば、ドライバー A にインポート テーブルがあり、ドライバー B で 1 つ以上のエントリ ポイントを呼び出し、ドライバー B がドライバー検証リストに含まれている場合、TRUE を返しMmIsDriverSuspectForVerifier(B)
MmIsDriverVerifying(A)
、TRUE を返します。 ドライバー A がドライバー検証リストにない場合は、 MmIsDriverSuspectForVerifier(A)
FALSE を返します。 ドライバー B がドライバー検証リストに含まれるドライバーのエントリ ポイントを呼び出さない場合でも、 MmIsDriverVerifying(B)
ドライバー B はドライバー検証リストに含まれているため 、TRUE を 返します。 ドライバー C がドライバー検証リストに含まれていない場合、ドライバー検証リストに含まれるドライバーのエントリ ポイントが呼び出されず、 MmIsDriverVerifying(C)
MmIsDriverSuspectForVerifier(C)
両方とも FALSE が返されます。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 2000 以降で使用できます。 |
対象プラットフォーム | ユニバーサル |
Header | wdm.h (Wdm.h、Ntddk.h、Ntifs.h を含む) |
Library | NtosKrnl.lib |
[DLL] | NtosKrnl.exe |
IRQL | <= APC_LEVEL |