《Undocumented Windows 2000 Secrets》翻译 --- 第四章(5)[2]

[入库:2005年8月19日] [更新:2007年3月24日]

本文简介:选择自 kendiv 的 blog

spy_io_interrup类似于spy_io_segemt,不过该函数仅影响存储在系统中断描述符表(idt)的中断描述符,不会涉及ldtgdt描述符。idt最多可容纳256个描述符,这些描述符可用来描述任务门、中断门或陷阱门(参见intel 1999c, pp. 5-11ff)。顺便说一下,中断和陷阱在本质上十分相似,二者只存在微小的差异:在进入一个中断处理例程后,总是会屏蔽其他中断;而进入陷阱处理例程却不会修改中断标志。spy_io_interrupt的调用者提供一个0255之间的中断号,该中断号将位于输入缓冲区中,而一个spy_interrupt结构将作为输出数据被存放到输出缓冲区中,如果成功返回,该结构中将包含对应的中断处理例程的属性。由dispatcher调用的帮助函数spyoutputinterrupt()只是一个简单的外包函数,它实际上调用spyinterrupt()函数并且将需要返回的数据复制到输出缓冲区中。列表4-18给出了这两个函数,以及它们操作的spy_interrupt结构。稍后一些,spyinterrupt()函数将填充如下项目:

l         selector  用来指定一个任务状态段(task-state segment, tss)或代码段(code segment)的选择器。代码段选择器用来确定中断或陷阱处理例程所在的段。

 

本文关键:《Undocumented Windows 2000 Secrets》翻译 --- 第四章(5)
  相关方案
Google
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top