Лабораторная работа №1.
Получение общей информации о вычислительной системе.
Необходимо:
1. Изучить функции GetSystemlnfo, GetComputerName, GetUserName, GetLogicalDrives, GetLogicalDriveStrings, GetDriveType.
2. Написать программу, осуществляющую вывод информации о:
-
Порядковом номере и версии операционной системы;
-
Количестве и типе процессора(ов);
-
Имя компьютера и пользователя.
Функция GetSystemInfo возвращает информацию о конфигурации оборудования вычислительной системы.
void GetSystemInfo(LPSYSTEM_INFO lpSystemInfo);
Параметры:
lpSystemInfo – Адрес структуры 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 для получения типа процессора.
|
||||||||||||
dwAllocationGranularity |
Гранулярность для начального адреса, в котором может быть выделена виртуальная память. Для получения большей информации, смотрите VirtualAlloc. |
||||||||||||
wProcessorLevel |
Уровень архитектурно-зависимого прицессора системы. Это должно использоваться только для отображения соответствий. Для получения набора особенностей процессора, используйте функцию IsProcessorFeaturePresent. Если wProcessorArchitecture равен PROCESSOR_ARCHITECTURE_INTEL, wProcessorLevel определяется поставщиком процессора. Если wProcessorArchitecture равен PROCESSOR_ARCHITECTURE_IA64, wProcessorLevel установлен в 1. |
||||||||||||
wProcessorRevision |
Ревизия архитектурно-зависимого процессора. Следующая таблица показывает, как значение ревизии подобрано к каждому типу архитектуры процессора.
|
Функция GetComputerName получает имя компьютера текущей системы. Это имя устанавливается при запуске системы, когда оно инициализуется из реестра.
BOOL GetComputerName(
LPTSTR lpBuffer, //адрес буфера для имени
LPDWORD nSize // адрес размера буфера
);