В msinfo32.exe я вижу, что у меня есть ACPI-совместимая система.

Для IRQ с 54 по 511 я хочу установить для них самый низкий приоритет.

используя реестр

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\PriorityControl

это трудно установить один за другим

Я хочу установить все по-простому

как "IRQ54-551Priority"

Является ли это возможным?

2 ответа2

1

Версия TL, DR: это обман. Не беспокойся

Пояснение: скрипт harrymc обязательно сгенерирует указанный файл .reg! Но добавление этих значений в ваш реестр никак не повлияет на ваш компьютер. (Не поможет; тоже не повредит.)

В Windows нет кода, который бы обращал внимание на эти значения реестра. Это просто не там.

Существует значение в ключе PriorityControl называется Win32PrioritySeparation Это используется для указания изменений в временном интервале планировщика для серверной и "клиентской" систем Windows и, на клиентских системах, для процесса, который владеет окном переднего плана по сравнению со всеми остальными. (Подробности об этом, конечно, в Windows Internals от Соломона, Руссиновича и др.)

Но это единственное, что Windows смотрит или ищет в этом ключе. Все эти тщательно созданные значения "IRQ_nn_Priority" будут просто игнорироваться. Вы можете создать значение с именем ComeOnMicrosoftMakeMyMachineFaster и оно будет иметь точно такой же результат.

история

Этот обман восходит, по крайней мере, ко времени Windows XP, когда большое количество пользователей настольных компьютеров переходило с Win9x на XP и появились десятки сайтов с "подстройкой XP". Многие из них, затаив дыхание, пообещали, что установка "IRQ8Priority" на 1 повысит производительность, отдав предпочтение прерываниям таймера системы. Возможно, это был допустимый параметр для одного из файлов конфигурации Win9x; Я бы не знал. Или, может быть, для какой-то другой ОС. Но не для семейства NT (NT 3.1 через Windows 10).

(Обратите внимание, что история изменилась. Тогда миф состоял в том, что установка "IRQ8Priority" на 1 будет иметь устройство с этим IRQ наивысшим приоритетом. Теперь миф расширился, и вы можете устанавливать разные "приоритеты" для множества разных IRQ, и теперь 1 - самый низкий приоритет! Ага.)

Еще в 2003 году я спросил об этом одного из ведущих разработчиков Windows HAL и поддержки платформы. Он подтвердил, что это полностью подделка. Он также не мог придумать ни одной причины, по которой кто-либо мог подумать, что что-либо отдаленно связанное могло бы когда-либо существовать.

Вывод ... кто-то сделал это из цельной ткани.

Если вы хотите подтвердить, что Windows не смотрит на это, просто используйте инструмент sysinternals "Process Monitor" (procmon), настройте его для контроля доступа к реестру из загрузки и ищите доступ к любым значениям реестра в HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\PriorityControl отличный от Win32PrioritySeparation . Вы не найдете ни одного.

Кстати, "приоритет" в Windows является атрибутом потоков. Но обработчики прерываний не являются потоками, поэтому у них даже нет "приоритетов" для начала.

Найти ProcMon здесь. Вам нужно будет иметь права администратора, чтобы использовать его.

0

Создайте и запустите файл .bat содержащий следующие команды:

@echo off
echo Windows Registry Editor Version 5.00 >f.reg
echo. >>f.reg
echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\PriorityControl] >>f.reg
for /l %%G IN (54,1,511) DO echo "IRQ%%GPriority"=dword:00000001 >>f.reg

Это создаст файл f.reg в текущей папке, который будет содержать:

Windows Registry Editor Version 5.00 

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\PriorityControl] 
"IRQ54Priority"=dword:00000001 
"IRQ55Priority"=dword:00000001 
...
"IRQ511Priority"=dword:00000001 

Дважды щелкните файл f.reg чтобы импортировать все эти записи реестра.

Замените в сценарии 00000001 приоритетом, который вы хотите назначить всем этим IRQ.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .