ZwQueryVirtualMemory 関数 (ntifs.h)
ZwQueryVirtualMemory ルーチンは、サブジェクト プロセスの仮想アドレス空間内のページの領域の状態、保護、および種類を決定します。
構文
NTSYSAPI NTSTATUS ZwQueryVirtualMemory(
[in] HANDLE ProcessHandle,
[in, optional] PVOID BaseAddress,
[in] MEMORY_INFORMATION_CLASS MemoryInformationClass,
[out] PVOID MemoryInformation,
[in] SIZE_T MemoryInformationLength,
[out, optional] PSIZE_T ReturnLength
);
パラメーター
[in] ProcessHandle
クエリ対象のページが存在するコンテキスト内のプロセスのハンドル。 現在のプロセスを指定するには、 ZwCurrentProcess マクロを使用します。
[in, optional] BaseAddress
クエリを実行するページの領域のベース アドレス。 この値は、次のホスト ページ アドレス境界に切り捨てられます。
[in] MemoryInformationClass
情報を取得するメモリ情報クラス。 現在、サポートされている MEMORY_INFORMATION_CLASS 値は MemoryBasicInformation のみです。
[out] MemoryInformation
指定した情報を受け取るバッファーへのポインター。 バッファーの形式と内容は、 MemoryInformationClass パラメーターで指定された指定された情報クラスによって異なります。 MemoryBasicInformation の値が MemoryInformationClass に渡されると、MemoryInformation パラメーターの値はMEMORY_BASIC_INFORMATION構造体になります。
[in] MemoryInformationLength
メモリ情報バッファーの長さをバイト単位で指定します。
[out, optional] ReturnLength
省略可能なポインター。指定した場合、メモリ情報バッファーに配置されたバイト数を受け取ります。
戻り値
呼び出しが成功した場合は、STATUS_SUCCESSを返します。 呼び出しが失敗した場合、考えられるエラー コードは次のとおりです。
リターン コード | 説明 |
---|---|
STATUS_INVALID_PARAMETER | 指定したベース アドレスが、アクセス可能なアドレスの範囲外です。 |
STATUS_ACCESS_DENIED | 呼び出し元には、要求されたアクションを実行するための十分なアクセス権がありませんでした。 |
STATUS_INFO_LENGTH_MISMATCH | MemoryInformation バッファーが MemoryInformationLength より大きい。 |
STATUS_INVALID_INFO_CLASS | MemoryBasicInformation 以外の値が MemoryInformationClass パラメーターに渡されました。 |
注釈
ZwQueryVirtualMemory は、領域内の最初のページの状態を決定し、ページの範囲全体がスキャンされるまで、または一致しない属性のセットが検出されるまで、プロセス アドレス マップ内の後続のエントリをベース アドレスから上方向にスキャンします。 リージョン属性、一致する属性を持つページの領域の長さ、および適切な状態値が返されます。
ページの領域全体に一致する属性のセットがない場合は、 ReturnLength パラメーター値を使用して、スキャンされなかったページの領域のアドレスと長さを計算できます。
NtQueryVirtualMemory と ZwQueryVirtualMemory は、同じ Windows ネイティブ システム サービス ルーチンの 2 つのバージョンです。
カーネル モード ドライバーからの呼び出しの場合、Windows ネイティブ システム サービス ルーチンの NtXxx**** および ZwXxx**** バージョンは、入力パラメーターを処理および解釈する方法で動作が異なる場合があります。 ルーチンの NtXxx バージョンと ZwXxx バージョン間の関係の詳細については、「Using Nt and Zw Versions of the Native System Services Routines」を参照してください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 10 |
対象プラットフォーム | ユニバーサル |
Header | ntifs.h |
Library | NtosKrnl.lib |
[DLL] | NtosKrnl.exe |