Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Начиная с 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, чтобы отобразить значение записи PoolTag в ключе HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management.
Рассмотрим пример.
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
Запрос специального пула по размеру без перезагрузки
Следующая команда запрашивает специальный пул для выделения от 1 до 8 байтов на компьютере x86 с PAGE_SIZE 0x1000 и степенью детализации выделения 8 байт.
Эта команда использует параметр /k для указания флага ядра (времени выполнения) и аббревиатуру +spp для установки запроса специального пула. Значению размера предшествует 0x, чтобы указать, что оно обозначает размер, а не тег пула.
Значение 0x10 вычисляется путем добавления гранулярности выделения (8 байт) к максимальному размеру диапазона (8 байт), что в сумме составляет 16 байт (0x10). Сведения о том, как определить правильное значение, см. в разделе "Выбор размера выделения" в Специальном пуле.
gflags /k +spp 0x10
Gflags отвечает, показывая вывод:
Special Pool set to 0x10
PoolTagOverruns set to 0x1
Current Running Kernel Settings are: 00000000
Опять же, запрос на выделение специального пула не является параметром флага ядра и не отражается в значении параметров ядра.
Кроме того, специальный запрос на выделение пула не изменяет значение параметра перерасхода (0x1) или недостатка (0x0) для специального пула. Чтобы изменить с переполнения, которое является значением по умолчанию, на недополнение, используйте диалоговое окно Gflags. Дополнительные сведения см. в разделе Обнаружение переполнений и недостаточных данных.
Запросить выделенный пул по размеру в реестре
Следующая команда запрашивает специальный пул для выделения 1024–1040 байт на компьютере x64 с PAGE_SIZE 0x1000 и степенью детализации выделения 16 байт.
Эта команда использует параметр /r для указания параметра реестра на уровне системы и аббревиатуры +spp, чтобы задать специальный запрос пула. Значение размера предшествует 0x, чтобы указать, что это размер, а не тег пула.
Значение, 0x420, вычисляется путем добавления единицы выделения (16 байт) к максимальному размеру в этом диапазоне (1040 байт), что составляет 1056 байт (0x420). Сведения о том, как определить правильное значение, см. в разделе "Выбор размера выделения" в Special Pool.
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, чтобы отобразить значение записи PoolTag в ключеHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management.
Рассмотрим пример.
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
Отмена специального запроса пула
Следующая команда отменяет запрос для Special Pool в качестве настройки флага ядра (время выполнения). Команда одинакова для запросов, сделанных по тегу пула или по размеру.
gflags /k -spp
Следующая команда отменяет запрос для специального пула в качестве параметра реестра. Команда одинакова как для запроса по тегу пула, так и по размеру.
gflags /r -spp
При успешном выполнении команды Gflags отвечает путем вывода сообщения:
Special Pool value has been deleted.