Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Metodychka-lab_OS.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
1.35 Mб
Скачать

12. Контрольні запитання

1. Яка різниця між dll та lib бібліотеками?

2. Які є два способи завантаження dll?

3. Яка функція завантажує dll?

4. Яка функція вивантажує dll?

5. З допомогою яких програм можна створити файл лістингу dll?

13. Список використаної літератури

  1. Help по функціях API - www.nan32asm.cjb.net

  2. Microsoft Windows Help - Win32 Programmers Reference

  3. Технічна документація Microsoft - MSDN

  4. www.win32asm.newmail.ru/

  5. Книга по програмуванню під Windows - www.win32asm.cjb.net

Лабораторна робота №4

Тема: Керування процесами і потоками у середовищі ОС Windows.

Мета: Навчитись керувати процесами та потоками в середовищі ОС Windows використовуючи пакет MASM32.

1. Основні теоретичні відомості

Функції WinAPI забезпечують широкі можливості для отримання інформації про запущені процеси та потоки і для керування ними.

Функція CreateToolhelp32Snapshot дозволяє отримати список запущених процесів і потоків та детальну інформацію про вказаний процес. Формат виклику:

invoke CreateToolhelp32Snapshot, dwFlags, th32ProcessID

Коли встановити параметр-індетифікатор процесу th32ProcessID, то можна отримати детальну інформацію про заданий процес. А саме, перелік модулів з яких складається процес і список хіпів виділених ним.

Примітка. Хіп (Heap) – динамічна область пам'яті виділена процесом.

Параметри функції CreateToolhelp32Snapshot:

dwFlags (вхідний) - Частини системи, які включатимуться в список (snapshot). Цей параметр може приймати одне з перелічених значень:

Значення

Пояснення

TH32CS_INHERIT

Позначає, що дескриптор списку є наслідуваний (передається породженому процесу).

TH32CS_SNAPALL

Включає всі процеси та потоки в системі плюс хіпи та модулі для процеса вказаного в th32ProcessID. Еквівалентно вказанню значень TH32CS_SNAPHEAPLIST, TH32CS_SNAPMODULE, TH32CS_SNAPPROCESS, TH32CS_SNAPTHREAD.

TH32CS_SNAPHEAPLIST

Включає всі хіпи для процеса вказаного в th32ProcessID. Для операції перегляду хіпів, див. функцію Heap32ListFirst.

TH32CS_SNAPMODULE

Включає всі модулі для процеса вказаного в th32ProcessID. Для операції перегляду модулів, див. функцію Module32First.

TH32CS_SNAPPROCESS

Включає всі запущені процеси в системі. Для операції перегляду процесів див. функцію Process32First.

TH32CS_SNAPTHREAD

Включає всі діючі потоки в системі. Для операції перегляду потоків див. функцію Thread32First.

Щоб ідентифікувати якому процесу відповідає даний потік, зверністься до поля th32OwnerProcessID в структурі THREADENTRY32.

th32ProcessID (вхідний) - Ідентифікатор процесу, який використовується при побудові списку. Цей параметр може бути нульовим, щоб ідентифікувати поточний процес. Даний параметр використовується лише для значень TH32CS_SNAPHEAPLIST, TH32CS_SNAPMODULE або TH32CS_SNAPALL. У випадку перегляду всіх доспупних процесів або потоків в системі (значення TH32CS_SNAPPROCESS або TH32CS_SNAPTHREAD) він ігнорується.

Вихідне значення (регістр ЕАХ)

При успішному виконанні функція повертає дескриптор списку. При помилці функція повертає INVALID_HANDLE_VALUE. Щоб отримати детальнішу інформацію про помилку визвіть функцію GetLastError.

Примітка. Щоб здійснити перегляд хіпів або модулів для всіх процесів в системі, вкажіть TH32CS_SNAPALL для dwFlags і встановість th32ProcessID = 0. Потім для кожного процесу в списку викличте функцію CreateToolhelp32Snapshot ще раз, задавши його ідентифікатор процесу та TH32CS_SNAPHEAPLIST або TH32_SNAPMODULE (хіпи і модулі відповідно).

Для завершення роботи з списком треба викликати функцію CloseHandle:

invoke CloseHandle, SnapshotHandle

де SnapshotHandle – дескриптор списку

Повернутий функцією список перегдядається з допомогою інших API функцій.

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