Win32 API 日本語リファレンス
ホームSystem.Memory › HEAP_INFORMATION_CLASS

HEAP_INFORMATION_CLASS

列挙型
基底型i4

メンバー 4

名前10進16進説明
HeapCompatibilityInformation00x0

有効になっているヒープ機能です。利用できる機能はオペレーティング システムによって異なります。HeapQueryInformation 関数または HeapSetInformation 関数の HeapInformation パラメーターに応じて、この列挙値を指定すると次のいずれかの機能を示します。

  • ルックアサイド リストをサポートしない標準のヒープ。
  • ルックアサイド リストをサポートするヒープ。
  • ルックアサイド リストをサポートしない 低断片化ヒープ (LFH)。
ルックアサイド リストの詳細については、「解説」セクションを参照してください。
HeapEnableTerminationOnCorruption10x1

破損時に終了する機能です。プロセスが使用しているいずれかのヒープでヒープ マネージャーがエラーを検出すると、Windows エラー報告サービスを呼び出してプロセスを終了します。

プロセスがこの機能を有効にした後は、無効にすることはできません。

HeapOptimizeResources30x3
HeapTag70x7

公式ドキュメント

設定または取得するヒープ情報のクラスを指定します。

解説(Remarks)

ヒープに関する情報を取得するには、HeapQueryInformation 関数を使用します。ヒープの機能を有効にするには、HeapSetInformation 関数を使用します。

Windows XP および Windows Server 2003: ルックアサイド リストは、固定サイズのブロックのみを保持する高速なメモリ割り当て機構です。ルックアサイド リストは、それをサポートするヒープでは既定で有効になっています。Windows Vista 以降では、ルックアサイド リストは使用されず、LFH が既定で有効になります。

ルックアサイド リストは、サイズが可変の一般的なプール割り当てよりも高速です。これは、割り当てに適合する空きメモリをシステムが検索しないためです。さらに、ルックアサイド リストへのアクセスは、通常、ミューテックスやスピンロックではなく高速なアトミック プロセッサ交換命令を使用して同期されます。ルックアサイド リストは、システムまたはドライバーによって作成できます。ページ プールまたは非ページ プールから割り当てることができます。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

各言語での定義

列挙メンバーの定義。HSP タブは #define global(値は16進)。

typedef enum HEAP_INFORMATION_CLASS : int {
    HeapCompatibilityInformation = 0,
    HeapEnableTerminationOnCorruption = 1,
    HeapOptimizeResources = 3,
    HeapTag = 7
} HEAP_INFORMATION_CLASS;
public enum HEAP_INFORMATION_CLASS : int
{
    HeapCompatibilityInformation = 0,
    HeapEnableTerminationOnCorruption = 1,
    HeapOptimizeResources = 3,
    HeapTag = 7,
}
Public Enum HEAP_INFORMATION_CLASS As Integer
    HeapCompatibilityInformation = 0
    HeapEnableTerminationOnCorruption = 1
    HeapOptimizeResources = 3
    HeapTag = 7
End Enum
import enum

class HEAP_INFORMATION_CLASS(enum.IntEnum):
    HeapCompatibilityInformation = 0
    HeapEnableTerminationOnCorruption = 1
    HeapOptimizeResources = 3
    HeapTag = 7
// HEAP_INFORMATION_CLASS
pub const HeapCompatibilityInformation: i32 = 0;
pub const HeapEnableTerminationOnCorruption: i32 = 1;
pub const HeapOptimizeResources: i32 = 3;
pub const HeapTag: i32 = 7;
// HEAP_INFORMATION_CLASS
const (
	HeapCompatibilityInformation int32 = 0
	HeapEnableTerminationOnCorruption int32 = 1
	HeapOptimizeResources int32 = 3
	HeapTag int32 = 7
)
const
  HeapCompatibilityInformation = 0;
  HeapEnableTerminationOnCorruption = 1;
  HeapOptimizeResources = 3;
  HeapTag = 7;
// HEAP_INFORMATION_CLASS
pub const HeapCompatibilityInformation: i32 = 0;
pub const HeapEnableTerminationOnCorruption: i32 = 1;
pub const HeapOptimizeResources: i32 = 3;
pub const HeapTag: i32 = 7;
const
  HeapCompatibilityInformation* = 0
  HeapEnableTerminationOnCorruption* = 1
  HeapOptimizeResources* = 3
  HeapTag* = 7
enum HEAP_INFORMATION_CLASS : int {
    HeapCompatibilityInformation = 0,
    HeapEnableTerminationOnCorruption = 1,
    HeapOptimizeResources = 3,
    HeapTag = 7,
}
#define global HeapCompatibilityInformation      0x0
#define global HeapEnableTerminationOnCorruption 0x1
#define global HeapOptimizeResources             0x3
#define global HeapTag                           0x7