Kar*_*lee 3 windows sdk winapi windows-vista
对于32位Windows,以下_SYSTEM_PROCESSES结构声明(系统信息类5)ZwQuerySystemInformation可以很好地用于构建进程树。
typedef struct _SYSTEM_PROCESSES
{ // System Information Class 5
ULONG NextEntryDelta;
ULONG ThreadCount;
ULONG Reserved1[6];
LARGE_INTEGER CreateTime;
LARGE_INTEGER UserTime;
LARGE_INTEGER KernelTime;
UNICODE_STRING ProcessName;
ULONG BasePriority;
ULONG ProcessId;
ULONG InheritedFromProcessId;
ULONG HandleCount;
ULONG Reserved2[2];
} SYSTEM_PROCESSES, * PSYSTEM_PROCESSES;
Run Code Online (Sandbox Code Playgroud)
另一方面,它在64位Windows中无法正常运行。如果我声明ProcessId为ULONG64,则用于的数据ProcessId正确。为上述结构定义的数据类型是否适用于Windows-64?
出于某些奇怪的原因,x64上的进程和线程ID在内核中为64位,在已记录的Windows API中为32位
如果你看一下SYSTEM_PROCESS_INFORMATION @ ntinternals你看,他们已经宣布PID的作为手柄(指针大小)
| 归档时间: |
|
| 查看次数: |
4751 次 |
| 最近记录: |