次の方法で共有


例 14: 特別なプールを構成する

Windows Vista 以降では、特別なプール機能をカーネル フラグ設定またはレジストリ設定として構成できます。 カーネル フラグ (実行時) 設定として構成する場合は、変更を有効にするためにコンピューターを再起動する必要はありません。 それ以前のバージョンの Windows では、特別なプールはレジストリ設定としてのみ使用できます。

また、Windows Vista 以降では、コマンド ラインから特別なプール機能を設定して構成することもできます。 それ以前のバージョンの Windows では、[グローバル フラグ] ダイアログ ボックスでのみ、特別なプール機能を設定して構成できます。

再起動せずにプール タグで特別なプールを要求する

次のコマンドは、Tag1 プール タグを持つすべての割り当てに対して特別なプールを要求します。 この設定はすぐに有効になりますが、Windows をシャットダウンまたは再起動すると失われます。

このコマンドは、/k パラメーターを使用し、カーネル フラグ (実行時) 設定と +spp の省略形を指定して特別なプール要求を設定します。

gflags /k +spp Tag1

Gflags は次の出力で応答します。

Special Pool set to 0x31676154
PoolTagOverruns set to 0x1
Current Running Kernel Settings are: 00000000

特別なプール割り当て要求はカーネル フラグ設定ではなく、カーネル設定の値に反映されないことに注意してください。

また、特別なプール割り当て要求により、特別なプールのオーバーラン (0x1) またはアンダーラン (0x0) 設定の値は変更されません。 既定のオーバーランからアンダーランに変更するには、[Gflags] ダイアログ ボックスを使用します。 詳細については、「オーバーランとアンダーランの検出」を参照してください。

コマンド ラインでプール タグは表示できません。 プール タグがカーネル設定であることを確認するには、[Gflags] ダイアログ ボックスを使用します。

レジストリのプール タグで特別なプールを要求する

次のコマンドは、Tag1 プール タグを持つすべての割り当てに対して特別なプールを要求します。 この設定はレジストリに格納されているため、有効にするにはコンピューターを再起動する必要がありますが、変更するまで有効になったままになります。

このコマンドは、/r パラメーターを使用し、レジストリ設定と +spp の省略形を指定して特別なプール要求を設定します。

gflags /r +spp Tag1

Gflags は次の出力で応答します。

Special Pool set to 0x31676154
PoolTagOverruns set to 0x1
Current Boot Registry Settings are: 00000000

特別なプール割り当て要求はレジストリ フラグ設定ではなく、レジストリ設定の値に反映されないことに注意してください。

また、特別なプール割り当て要求により、特別なプールのオーバーラン (0x1) またはアンダーラン (0x0) 設定の値は変更されません。 既定のオーバーランからアンダーランに変更するには、[Gflags] ダイアログ ボックスを使用します。 詳細については、「オーバーランとアンダーランの検出」を参照してください。

レジストリに値が追加されたことを確認するには、Reg または Regedit を使用して HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management キーの PoolTag エントリの値を表示します。

次に例を示します。

c:>reg query "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" -v PoolTag
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management
    PoolTag    REG_DWORD    0x31676154

再起動せずにサイズで特別なプールを要求する

次のコマンドは、0x1000 の PAGE_SIZE と 8 バイトの割り当て粒度で x86 コンピューターの 1 ~ 8 バイトの割り当てに対して特別なプールを要求します。

このコマンドは、/k パラメーターを使用し、カーネル フラグ (実行時) 設定と +spp の省略形を指定して特別なプール要求を設定します。 サイズ値の前に 0x を付けて、プール タグではなくサイズであることを示します。

0x10 の値は、合計 16 バイト (0x10) の範囲での最大サイズ (8 バイト) に割り当て粒度 (8 バイト) を追加することによって計算されます。 入力する正しい値を決定するには、特別なプールの「割り当てサイズの選択」を参照してください。

gflags /k +spp 0x10

Gflags は次の出力で応答します。

Special Pool set to 0x10
PoolTagOverruns set to 0x1
Current Running Kernel Settings are: 00000000

また、特別なプール割り当て要求はカーネル フラグ設定ではなく、カーネル設定の値に反映されません。

また、特別なプール割り当て要求により、特別なプールのオーバーラン (0x1) またはアンダーラン (0x0) 設定の値は変更されません。 既定のオーバーランからアンダーランに変更するには、[Gflags] ダイアログ ボックスを使用します。 詳細については、「オーバーランとアンダーランの検出」を参照してください。

レジストリのサイズで特別なプールを要求する

次のコマンドは、0x1000 の PAGE_SIZE と 16 バイトの割り当て粒度で x64 コンピューターの 1024 ~ 1040 バイトの割り当てに対して特別なプールを要求します。

このコマンドは、/r パラメーターを使用し、システム全体のレジストリ設定と +spp の省略形を指定して特別なプール要求を設定します。 サイズ値の前に 0x を付けて、プール タグではなくサイズであることを示します。

0x420 の値は、合計 1056 バイト (0x420) の範囲での最大サイズ (1040 バイト) に割り当て粒度 (16 バイト) を追加することによって計算されます。 入力する正しい値を決定するには、特別なプールの「割り当てサイズの選択」を参照してください。

gflags /r +spp 0x420

Gflags は次の出力で応答します。

Special Pool set to 0x420
PoolTagOverruns set to 0x1
Current Boot Registry Settings are: 00000000

また、特別なプール割り当て要求はレジストリ フラグ設定ではなく、レジストリ設定の値に反映されません。

また、特別なプール割り当て要求により、特別なプールのオーバーラン (0x1) またはアンダーラン (0x0) 設定の値は変更されません。 既定のオーバーランからアンダーランに変更するには、[Gflags] ダイアログ ボックスを使用します。 詳細については、「オーバーランとアンダーランの検出」を参照してください。

レジストリに値が追加されたことを確認するには、Reg または Regedit を使用して HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management キーの PoolTag エントリの値を表示します。

次に例を示します。

c:>reg query "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" -v PoolTag
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management
    PoolTag    REG_DWORD    0x420

特別なプール要求を取り消す

次のコマンドは、カーネル フラグ (実行時) 設定として特別なプールの要求を取り消します。 このコマンドは、プール タグまたはサイズでの要求の場合でも同じです。

gflags /k -spp

次のコマンドは、特別なプールの要求をレジストリ設定として取り消します。 このコマンドは、プール タグまたはサイズでの要求の場合でも同じです。

gflags /r -spp

コマンドが成功すると、Gflags は次の出力で応答します。

Special Pool value has been deleted.