Коротка відповідь: ліцензія
Виключаючи обладнання з рівняння, це здебільшого штучне обмеження програмного забезпечення:
[Ресурс] витягується з реєстру шляхом виклику функції з ім'ям ZwQueryLicenseValue
, яка сама викликається з внутрішньої процедури, яку опубліковані файли символів Microsoft називають як MxMemoryLicense
.
Джерело: Ліцензована пам'ять у 32-розрядної Windows Vista
Додаткова інформація
Звичайно, ліцензійні дані, що зберігаються в реєстрі, навіть у незадокументованому форматі, можуть легко змінюватись користувачами, що може бути певним стимулом спробувати, оскільки Microsoft стягує значно різні ціни за різні ліцензії. Тому Microsoft має розроблену схему перевірки того, чи зберігаються дані ліцензії так, як цього хоче Microsoft. Ядро є сховищем для того, чи були підроблені дані ліцензування, і з цією метою експортується ще дві функції, ExGetLicenseTamperState
і ExSetLicenseTamperState
.
Джерело: Ліцензування програмного забезпечення
ExGetLicenseTamperState
Ця [недокументована] функція запитує ядро, чи були підроблені ліцензійні дані.
Внутрішнє використання знаходиться в таймері, який повторюється приблизно щогодини. Якщо буде виявлено стан несанкціонованого 4
, тоді Windows припиняється. Код перевірки помилок - SYSTEM_LICENSE_VIOLATION
( 0x9A
), 0x1B
в якості першого аргументу.
Джерело: ExGetLicenseTamperState
Практичний приклад
Скажімо, у вас є комп'ютер з 32 Гб оперативної пам’яті, і ви встановлюєте Windows 7 Home Premium x64 (64-розрядний). У такому випадку ви обмежитеся 16 гігабайтами. Якщо ви використовували Windows Anytime Upgrade та оновлювали її до більш дорогої версії, раптом натомість буде встановлено ліміт 192 Гб.
Висновок
Усі видання Windows 7 мають однаковий вихідний код. Основна відмінність - кількість функцій / обмежень, які увімкнено або вимкнено. Професійні та вищі клієнтські видання не мають верхньої межі обсягу оперативної пам’яті, і вони мають лише ліцензію на те, що гарантує підтримка Microsoft.
Крім того, EULA Windows 7 прямо говорить, що ви не можете "використовувати програмне забезпечення для комерційних програм хостингу програмного забезпечення", натякаючи на те, що Microsoft припускає, що якщо вам потрібно більше оперативної пам'яті, на що ліцензується найвища версія клієнтського видання, то ви дійсно хочете сервер ліцензія. Серверний аналог Windows 7 (тобто Windows Server 2008 R2) може використовувати до 2 TiB оперативної пам’яті у виданнях Enterprise та Datacenter.
Коли технологія рухається швидко, завтра може бути недостатньо того, що було прийнятним. Для того, щоб наздогнати, Windows 8 підвищив ліміти до 128 GiB та 512 GiB для версій Core та Pro / Enterprise відповідно. Це стосується лише 64-розрядних версій: 32-бітні версії все ще обмежені в 4 Гб. Версія сервера, Windows Server 2012, може містити до 4 TiB оперативної пам’яті у вищих версіях.
Подальше читання