22 сент. 2010 г.

SYSTEM_INFO

Структура SYSTEM_INFO содержит информацию о текущей компьютерной системе, учитывая архитектуру и тип процессора, количество процессоров в системе, размер страницы, и другую похожую информацию.
typedef struct _SYSTEM_INFO {
  union {
    DWORD dwOemId;
    struct {
      WORD wProcessorArchitecture;
      WORD wReserved;
    };
  };
  DWORD dwPageSize;
  LPVOID lpMinimumApplicationAddress;
  LPVOID lpMaximumApplicationAddress;
  DWORD_PTR dwActiveProcessorMask;
  DWORD dwNumberOfProcessors;
  DWORD dwProcessorType;
  DWORD dwAllocationGranularity;
  WORD wProcessorLevel;
  WORD wProcessorRevision;
} SYSTEM_INFO;
Члены структуры:

dwOemId Устаревший член, который оставлен для совместимости с Windows NT и ранними. Новые приложения должны использовать член wProcessorArchitecture объединения.
Windows Me/98/95: Система всегда устанавливает этот член в ноль, значение объявленное в PROCESSOR_ARCHITECTURE_INTEL.
wProcessorArchitecture Архитектура системы процессора. Этот член может быть установлен в одно из следующих значений:
PROCESSOR_ARCHITECTURE_AMD64
- x64 (AMD или Intel) PROCESSOR_ARCHITECTURE_IA32_ON_WIN64
- WOW64 PROCESSOR_ARCHITECTURE_IA64
- Intel Itanium Processor Family (IPF) PROCESSOR_ARCHITECTURE_INTEL
- x86 PROCESSOR_ARCHITECTURE_UNKNOWN
- Неизвестный процессор.
wReserved Зарезервировано на будущее.
dwPageSize Размер страницы и гранулярность страничной защиты и обязательства. Это размер страницы, используемый функцией VirtualAlloc.
lpMinimumApplicationAddress Указатель на младший адрес памяти, доступный приложениям и библиотекам динамической компоновки (DLL).
lpMaximumApplicationAddress Указатель на старший адрес памяти, доступный приложениям и библиотекам динамической компоновки (DLL).
dwActiveProcessorMask Маска, представляющая набор процессоров, сконфигурированных в системе. Нулевой бит – это процессор 0; 31 – это процессор номер 31.
dwNumberOfProcessors Количество процессоров в системе.
dwProcessorType Устаревший член, который оставлен для совместимости с Windows NT 3.5 и Windows Me/98/95. Используйте члены wProcessorArchitecture, wProcessorLevel, и wProcessorRevision для получения типа процессора.

Значение:
Описание:
PROCESSOR_INTEL_386 386
PROCESSOR_INTEL_486 486
PROCESSOR_INTEL_PENTIUM 586
PROCESSOR_INTEL_IA64 2200
PROCESSOR_AMD_X8664 8664
dwAllocationGranularity Гранулярность для начального адреса, в котором может быть выделена виртуальная память. Для получения большей информации, смотрите VirtualAlloc.
wProcessorLevel Уровень архитектурно-зависимого прицессора системы. Это должно использоваться только для отображения соответствий. Для получения набора особенностей процессора, используйте функцию IsProcessorFeaturePresent.
Если wProcessorArchitecture равен PROCESSOR_ARCHITECTURE_INTEL, wProcessorLevel определяется поставщиком процессора.
Если wProcessorArchitecture равен PROCESSOR_ARCHITECTURE_IA64, wProcessorLevel установлен в 1.
wProcessorRevision Ревизия архитектурно-зависимого процессора. Следующая таблица показывает, как значение ревизии подобрано к каждому типу архитектуры процессора.

Процессор:
Значение:
Intel Pentium, Cyrix, или NextGen 586 Старший байт – это модель и младший байт – его степпинг. Для примера, если параметр принимает значение xxyy, то модель процессора – xx, степпинг – yy
Intel 80386 или 80486 Значение в виде xxyz.
Если xx равен 0xFF, y - 0xA это номер модели, и is the model z - это идентификатор степпинга.
Если xx не равен 0xFF, xx + 'A' – это буква степпинга и yz - это младший степпинг.
Смотрите также:
GetSystemInfo, MapViewOfFile, MapViewOfFileEx