Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Активность потока. [D6, WinXP]


Ronin ©   (2005-07-22 08:53:00) 

Подскажите, пожалуйста!
Как можно определить количество переключений контекста потока определенного внешнего приложения?
В общем, задача такая. Мне нужно следить за активностью одного приложения. Причем желательно именно по потокам, но можно как нибудь по другому(есть идеи- буду рад..!!)
Есть ф-ция 'NtQuerySystemInformation'. Если кто нибудь знает как ее применить- напишите, пожалуйста!
Заранее благодарен!


Ботвин Дмитрий   (2005-07-26 11:21:00) [1]

А разве  [3] - не есть ответ на твой вопрос? Здесь приведена стуктура и функция, позволяющие это сделать. А примеров их использования в делфи навалом :-))


Ronin   (2005-07-26 11:16:00) [2]

to tesseract -> надеюсь,это не все, что ты можешь сказать по этому вопросу?!
Вторым дополнением я, вроде, понятно обьяснил, что имел ввиду!


tesseract   (2005-07-23 20:05:00) [3]

to Ronin >>> Извини но ты вообще в курсе что такое контекст и вообще относится ли он к потоку ?


Digitman   (2005-07-22 10:38:00) [4]


> хочу это сделать


сделай !
кто ж против ..


Ronin   (2005-07-22 10:28:00) [5]

я хочу это сделать на Delohi6 ...


Digitman   (2005-07-22 10:00:00) [6]

SystemProcessThreadInfo = 5;

typedef struct ThreadSysInfo_t {
LARGE_INTEGER ThreadKernelTime;
LARGE_INTEGER ThreadUserTime;
LARGE_INTEGER ThreadCreateTime;
ULONG TickCount;
ULONG StartEIP;
CLIENT_ID ClientId;
ULONG DynamicPriority;
ULONG BasePriority;
ULONG nSwitches;
ULONG Unknown;
KWAIT_REASON WaitReason;
}THREADSYSINFO, *PTHREADSYSINFO;

NTSYSAPI
NTSTATUS
NTAPI
NtQuerySystemInformation(
IN SYSTEMINFOCLASS SystemInfoClass, //<- SystemProcessThreadInfo
OUT PVOID SystemInfoBuffer,
IN ULONG SystemInfoBufferSize,
OUT PULONG BytesReturned OPTIONAL
);


Ronin   (2005-07-22 09:26:00) [7]

В виндовом "Сист.мониторе" есть такой параметр для каждого потока, за которым можно наблюдать-число переключений контекста.
Я так понял- это колличество выделенных процессором для данного потока временных отрезков за определенный кусок времени (секунда, допустим).
Раз это есть там- значит можно получить и программно..


BiN   (2005-07-22 09:20:00) [8]

Ronin   (22.07.05 08:53)  

Подскажите, пожалуйста!
Как можно определить количество переключений контекста потока


Что ты подразумеваешь под "переключением контекста потока"?


Наверх

Титульная страница Поиск, карта сайта Написать письмо