Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
OSLAB1.DOC
Скачиваний:
3
Добавлен:
21.12.2018
Размер:
87.55 Кб
Скачать

Лабораторная работа №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 для получения типа процессора.

Значение:

Описание:

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 это номер модели, и z - это идентификатор степпинга. Если xx не равен 0xFF, xx + 'A' – это буква степпинга и yz - это младший степпинг.

Функция GetComputerName получает имя компьютера текущей системы. Это имя устанавливается при запуске системы, когда оно инициализуется из реестра.

BOOL GetComputerName(

LPTSTR lpBuffer, //адрес буфера для имени

LPDWORD nSize // адрес размера буфера

);

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]