32位和64位下,SYSTEM_THREADS与SYSTEM_PROCESSES结构体
来源:互联网 发布:java定时器配置 编辑:程序博客网 时间:2024/06/06 17:12
32位的没有什么好说的,关键是64位的资料比较少。这个结构体,网上有说,但是不太准确,测试发现前半部分对了,后半部分不对(获取线程信息的时候不对)。最后结合一些例子和计算,整出来了.
typedef struct _SYSTEM_THREADS
{
LARGE_INTEGER KernelTime;
LARGE_INTEGER UserTime;
LARGE_INTEGER CreateTime;
ULONG WaitTime;
PVOID StartAddress;
CLIENT_ID ClientID;
KPRIORITY Priority;
KPRIORITY BasePriority;
ULONG ContextSwitchCount;
ULONG ThreadState;
KWAIT_REASON WaitReason;
#ifdef _WIN64
ULONG Reserved; //Add
#else
#endif
}SYSTEM_THREADS,*PSYSTEM_THREADS;
typedef struct _SYSTEM_PROCESSES
{
ULONG NextEntryDelta;
ULONG ThreadCount;
ULONG Reserved[6];
LARGE_INTEGER CreateTime;
LARGE_INTEGER UserTime;
LARGE_INTEGER KernelTime;
UNICODE_STRING ProcessName;
KPRIORITY BasePriority;
HANDLE ProcessId; //Modify
HANDLE InheritedFromProcessId;//Modify
ULONG HandleCount;
ULONG SessionId;
ULONG_PTR PageDirectoryBase;
VM_COUNTERS VmCounters;
SIZE_T PrivatePageCount;//Add
IO_COUNTERS IoCounters; //windows 2000 only
struct _SYSTEM_THREADS Threads[1];
}SYSTEM_PROCESSES,*PSYSTEM_PROCESSES;
//还有关键的一个结构体,之前看到某些资料上的也不对,关键是32位下网上用的是ULONG,这是不对的,应该用SIZE_T(32位下4字节,64位下8字节),导致了原数据的偏移错误。
typedef struct _VM_COUNTERS
{
SIZE_T PeakVirtualSize;
SIZE_T VirtualSize;
ULONG PageFaultCount;
SIZE_T PeakWorkingSetSize;
SIZE_T WorkingSetSize;
SIZE_T QuotaPeakPagedPoolUsage;
SIZE_T QuotaPagedPoolUsage;
SIZE_T QuotaPeakNonPagedPoolUsage;
SIZE_T QuotaNonPagedPoolUsage;
SIZE_T PagefileUsage;
SIZE_T PeakPagefileUsage;
} VM_COUNTERS, *PVM_COUNTERS;
- 32位和64位下,SYSTEM_THREADS与SYSTEM_PROCESSES结构体
- 修正后的SYSTEM_THREADS与SYSTEM_PROCESSES结构体
- 32位和64位下结构体内存对齐问题
- 64位和32位平台下C/C++结构内存对齐
- 32位和64位下结构体内存对齐问题
- 32位和64位下结构体内存对齐问题
- _SYSTEM_PROCESS 32位与64位的结构
- _SYSTEM_PROCESS 32位与64位的结构
- PE结构详解(64位和32位的差别)
- PE结构详解(64位和32位的差别)
- PE结构详解(64位和32位的差别)
- PE结构详解(64位和32位的差别)
- 带指针的通信结构体32位与64位兼容
- 带指针的通信结构体32位与64位兼容
- iOS开发之32位与64位,以及结构体对齐访问的问题
- 32位与64位
- 结构体与位字段
- 位域与结构体
- HDU 3486 Interviewe(RMQ+二分)
- 窗口前端显示和置顶,发送消息
- MOOC清华《程序设计基础》第8章:链表的基本操作
- react-leaflet-draw绘图工具栏显示错乱
- 电赛准备
- 32位和64位下,SYSTEM_THREADS与SYSTEM_PROCESSES结构体
- Ubuntu下安装clang和libc++
- Elasticsearch5 install head plugin detail
- 机器学习入门之了解机器学习
- UESTC
- shell 脚本编程之逻辑运算符
- null
- 匿名类
- P1781 宇宙总统