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

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

本文简介:选择自 kendiv 的 blog

cpu状态信息结束

 

spyinterrupt()调用的spysegment()spyselector()函数已经在列表4-5列表4-16中给出。spygateoffset()位于列表4-18的末尾,它的工作和spydescriptorbase()spydescriptorlimit()类似,从x86_gate结构中取出offset1offset2位域,并适当的组织它们以构成一个32位地址。spyidtgaet()定义于列表4-19。它与spydescriptor()十分类似。汇编指令sidt存储一个48位的值,该值就是cpuidt寄存器的内容,它由一个16位的表大小限制值和idt32位线性基地址构成。列表4-19中的剩余代码将选择器的描述符索引和idt的大小限制值进行比较,如果ok,则对应的中断描述符将被复制到调用者提供的x86_gate结构中。否则,门结构的所有成员都将被设置为0

 

bool spyidtgate (px86_selector pselector,

                 px86_gate     pgate)

    {

    x86_table idt;

    px86_gate pgates = null;

    bool      fok    = false;

 

    if (pgate != null)

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

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

go top