阅读:1074回复:5
大家注意没有
任务管理器中的 System Idle process和 System这2个系统进程的创建时间是 时区的时间,而其他进程的创建时间是本地的时间。能否通过其他方法获得这2个进程的真正的创建时间啊
|
|
|
沙发#
发布于:2005-03-23 11:00
将它转成Local Time是不是就行了呢?
|
|
|
板凳#
发布于:2005-03-23 11:43
将它转成Local Time是不是就行了呢? 非也! :( |
|
|
地板#
发布于:2005-03-24 09:32
任务管理器中的 System Idle process和 System这2个系统进程的创建时间是 时区的时间,而其他进程的创建时间是本地的时间。能否通过其他方法获得这2个进程的真正的创建时间啊 老哥骗人呢,hehe,这两个系统进程创建时间根本就是0,任务管理器中显示的是假的,而且这里两个进程的PCB(在Windows中准确地叫KPEB,但我习惯叫PCB)在ntoskrnl中,不在内存高端的堆栈桢中,我认为这是内核捏造出来的两个进程,很可能是直接从ntoskrnl.exe这个Image中直接加载来的,其它进程都是直接或间接从System进程继承出来的,这些都是有开始时间的。由于为了整齐划一地处理,所以其它进程被创建时有开始时间,而且有对应的各种统计等,这两个进程其它都是有的,因为都是得到PCB指针,然后操作的,但他们是第一推动力,是上帝,谁来创建他们,所以创建行为就有差别,所以没有创建时间,本来以后可以给他们赋一个创建时间的,但这样操作就不整齐划一了,再说谁关系他们是什么时候创建的呢! |
|
|
地下室#
发布于:2005-03-24 09:44
[quote]任务管理器中的 System Idle process和 System这2个系统进程的创建时间是 时区的时间,而其他进程的创建时间是本地的时间。能否通过其他方法获得这2个进程的真正的创建时间啊 老哥骗人呢,hehe,这两个系统进程创建时间根本就是0,任务管理器中显示的是假的,而且这里两个进程的PCB(在Windows中准确地叫KPEB,但我习惯叫PCB)在ntoskrnl中,不在内存高端的堆栈桢中,我认为这是内核捏造出来的两个进程,很可能是直接从ntoskrnl.exe这个Image中直接加载来的,其它进程都是直接或间接从System进程继承出来的,这些都是有开始时间的。由于为了整齐划一地处理,所以其它进程被创建时有开始时间,而且有对应的各种统计等,这两个进程其它都是有的,因为都是得到PCB指针,然后操作的,但他们是第一推动力,是上帝,谁来创建他们,所以创建行为就有差别,所以没有创建时间,本来以后可以给他们赋一个创建时间的,但这样操作就不整齐划一了,再说谁关系他们是什么时候创建的呢! [/quote] 说得还是有道理的,和我想到差不多。System根本不在用户空间运行。他俩是怪物 :D :D “老哥骗人呢,hehe,这两个系统进程创建时间根本就是0” 我没有骗人啊,你用NtQuerySystemInformation查询一下,就知道了。 我估计这个不是问题。本地时间 = (本地时区) +/- (相对1970-1-1的100ns数目);我在东8区 +0 =8点,实际就是这样。你的也不错,你得到是:(相对1970-1-1的100ns数目)=0。 |
|
|
5楼#
发布于:2005-03-24 11:00
而且我还发现,我的Xp sp1 上PCB大小是4D0,但是进程PCB并不时一个挨一个在内存高端堆叠的,而是中间有很多空洞未使用,由此我推断Windows在计算调度优先级时会从链表中一个一个扫描,但用句柄存取时估计用了HASH,不知老大能证明或否定我的想法吗?
|
|
|