среда, 5 сентября 2012 г.

Максимальный размер физ. памяти в Win7 Home Premium

Как известно, windows поставляется в ввиде клиентских и серверных версий, которые в свою очередь разделяются на редакции, например Windows 7 Home Premium, Windows 7 Ultimate и так далее. Каждая редакция имеет свой набор фич и возможностей. К фичам относятся BitLocker, VHD Booting и т.д. Кроме этого редакции также различаются и макс. количеством поддерживаемой физ. памяти.

Инфу о поддерживаемых фичах для каждой редакции можно найти в мсдн, но можно и посмотреть самим, она находится в реестре, в HKLM\SYSTEM\CurrentControlSet\Control\ProductOptions. Точнее, там находится кешированный кусок из файла C:\Windows\ServiceProfiles\NetworkService\AppData\Roaming\Microsoft\SoftwareProtectionPlatform\tokens.dat, который содержит среди прочего и лицензию на копию windows.
Судя по всему, активация win7 проходит через замену именно этого файла.

Достать информацию о фичах установленной версии винды можно тулзой с www.winsiderss.com/tools/slpolicy.htm. Тулза выводит всю информацию о системе, для моей win7 home premium выдало примерно такое:

SlPolicy v1.05 - Show Software Licensing Policies
Copyright (C) 2008-2011 Winsider Seminars & Solutions Inc.
www.winsiderss.com

Kernel

Maximum Memory Allowed (IA64): 16384

...

Dynamic Partitioning Supported: No
Virtual Dynamic Partitioning Supported: No
Memory Mirroring Supported: No
Native VHD Boot Supported: No
Bad Memory List Persistance Supported: No

...

Desktop Window Manager

Transparency Allowed: Yes
Flip 3D Allowed: Yes
Thumbnails Allowed: Yes
Animated Transitions Allowed: Yes
Desktop Composition Allowed: Yes

...

На этом любопытство насчет количества памяти было удовлетворено, правда осталось неясным, как происходит повышение количества памяти при смене лицензии, неужто там есть магический jump, ведь бинарь ядра один и тотже, меняются лишь условия в boot-time ( в зависимости от типа лицензии ). Кто-нибудь знает ответ?

updated:

Величину Maximum Memory Allowed также можно получить, передав строку "Kernel-WindowsMaxMemAllowedx64" в сервисную функцию
NTSTATUS ZwQueryLicenseValue( PUNICODE_STRING Name, ULONG *Type, PVOID Buffer, ULONG Length, ULONG *DataLength );

Комментариев нет:

Отправить комментарий