通常情况下,tss被用来保证一个错误情况可以被一个有效的任务处理。这是一个特殊的系统段类型(system segment type),它可以保存104个字节的进程状态信息,该信息在任务切换时,用来进行任务的恢复,如表4-3所示。当与任务相关的中断发生时,cpu总是强制切换该任务,并将所有的cpu寄存器保存到tss中。windows 2000在中断位置0x02(非屏蔽中断[nmi],0x08[double fault]和0x12[堆栈段故障])处保存任务门。剩余的位置指向中断处理例程。不使用的中断由一个哑元例程---kiunexpectedinterruptnnn()处理,这里的nnn为一个十进制数。这些哑元例程最后都汇集到内部函数kiendunexpectedrange(),在这里,这些例程将依次进入kiunexpectedinterrupttail()。
typedef struct _spy_interrupt
{
x86_selector selector;
首页
上页
下页
尾页
[1]
[2]
[3]
[4]
[5]
[6]
[7]
[8]
[9]
[10]
[11]
[12]
[13]
[14]
[15]
[16]
[17]
[18]
[19]
[20]
[21]
[22]
[23]
[24]
[25]
[26]
[27]
[28]
[29]
[30]
[31]
[32]
[33]
[34]
[35]
[36]
[37]
[38]
[39]
本文关键:《Undocumented Windows 2000 Secrets》翻译 --- 第四章(5)