次の方法で共有


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**** バージョンは、入力パラメーターを処理および解釈する方法で動作が異なる場合があります。 ルーチンの NtXxxZwXxx バージョンの間の関係の詳細については、「ネイティブ システム サービス ルーチンの Nt および Zw バージョンの使用 を参照してください。

必要条件

要件 価値
サポートされる最小クライアント Windows 10
ターゲット プラットフォーム の 万国
ヘッダー ntifs.h
ライブラリ NtosKrnl.lib
DLL NtosKrnl.exe

関連項目

POWER_PLATFORM_INFORMATION