cmailserver5.4.6:5.4.6  RtlLookupElementGenericTable

作者: [美]Eldad Eilam 著 韩琪 等译 出处:电子工业出版社博文视点

5.4.6  RtlLookupElementGenericTable

你还记得在开始深入研究generic table的前我提到过两个看上去好像是负责检索元素(RtlGetElementGenericTable和RtlLookupElementGenericTable)吗?你已经知道RtlGetElementGenericTable是通过元素索引号来查找元素那么RtlLookupElementGenericTable必定是用于为generic table提供某种搜索能力我们来看看RtlLookupElementGenericTable(见列表5.8)


498)this.style.width=498;" border=0>
列表5.9 ntdll.7C9215DA反汇编代码 我们暂时将它命名为RtlLookupElementGenericTableWorker





至此你已经对generic table很熟悉了基本上不再需要研究这个(即指RtlLookupElementGenericTable)了——我们已经讨论过这个API(还是RtlLookupElement GenericTable)使用两个核心了:RtlLocateNodeGenericTable(ntdll.7C92147B)和RtlSplayRtlLocateNodeGenericTable用来定位要找元素位置和在RtlInsert ElementGenericTable中该用途在RtlLocateNodeGenericTable返回的后就该RtlSplay了伸展树在添加、删除或者查找个元素的后就要重新展开当然只有RtlLocateNodeGenericTable找到要找元素才会RtlSplay

根据传递给RtlLocateNodeGenericTable参数你应该可以马上看出RtlLookupElementGenericTable接收两个参数是TABLE指针和Element指针至于返回值“ADD EAX18”指令告诉我们:这个在获得找到结点后跳过这个结点头部从而取得了它要返回正如你所想那样这个返回是指向找到元素数据指针



  • 篇文章: 5.4.5 RtlInsertElementGenericTable

  • 篇文章: 没有了
  • Tags:  nbsp什么意思 nbsp是什么意思 htmlnbsp cmailserver5.4.6

    延伸阅读

    最新评论

    发表评论