Об этом проекте

## Обзор DEVICE TWEAKER — низкоуровневая утилита для Windows 10 и Windows 11 (x64), объединяющая в одном интерфейсе настройку векторных прерываний MSI/MSI-X, привязку очередей прерываний к логическим процессорам, системную изоляцию ядер, аппаратную модерацию USB-контроллеров xHCI и оптимизацию сетевого стека. По заявлению автора, проект заменяет набор разрозненных инструментов (MSI Utility, Microsoft Interrupt Affinity Policy Tool, GoInterruptPolicy, RWEverything и самодельные скрипты записи IMOD). ## Основные возможности - **MSI / MSI-X:** включение режима через параметр `MSISupported`, снятие ограничения `MessageNumberLimit` (режим Unlocked), установка приоритета диспетчеризации `DevicePriority = 3`. - **CPU Affinity:** маршрутизация очередей через `DevicePolicy = 4` и битовую маску `AssignmentSetOverride` (до 64 логических процессоров). Алгоритм AUTO учитывает топологию чиплетов AMD (CCD0/CCD1, 3D V-Cache), гибридные P/E-ядра Intel, исключает соседние потоки SMT и использует данные ACPI CPPC v2. - **ReservedCpuSets:** изоляция выбранных ядер от фоновых системных задач и DPC общего назначения. - **xHCI IMOD:** прямое управление регистрами интерраптеров USB-контроллеров (шаг таймера 250 нс) через собственный драйвер ядра `DTIMOD.sys`, с разведением устройств по физическим контроллерам CHIP 0 / CHIP 1. - **Сеть:** управление регистрами модерации ITR/EITR/IntrMit для адаптеров Intel (I210, I211, I225, I226, I350, I219) и Realtek (RTL8111, RTL8125, RTL8126), настройка RSS (`*NumRssQueues`, `*RssBaseProcNumber`), отключение EEE. - **Windows 11:** параметр `RawMouseThrottleDuration` для ограничения опроса фоновых окон. - **Питание:** отключение USB Selective Suspend и энергосберегающих состояний PCIe. - **Откат:** снимок исходного состояния системы, дифференциальные точки восстановления перед каждым применением и полный сброс к заводским значениям. ## Безопасность и драйвер Сканирование устройств выполняется в Ring 3 через SetupAPI и реестр. Драйвер `DTIMOD.sys` загружается по требованию только для доступа к регистрам интерраптеров и остаётся в памяти до перезагрузки. Изменения политик прерываний вступают в силу после перезагрузки. ## Поставка и сборка Доступны два исполняемых файла: компактный (~4 МБ, требует .NET 8 Desktop Runtime) и автономный (~150 МБ, со встроенной средой выполнения). Сборка из исходников выполняется через PowerShell-скрипт `publish-variants.ps1` при наличии .NET 8.0 SDK. Лицензия — GNU GPL v3.0.