5.4.7 RtlDeleteElementGenericTable
到这里我们已经讲述了generic table使用方法基本情况包括在generic table中添加、检索和搜索元素现在还剩下种情况我们没有讲即删除元素在generic table中是怎样删除元素?我们来简要地看下RtlDeleteElementGenericTable反汇编代码如列表5.10所示
498)this.style.width=498;" border=0>
这里有两点需要注意第点很明显TABLE_FREE_ELEMENT没有返回值即使有也肯定是RtlDeleteElementGenericTable忽略了这个返回值(看看代码中是如何TABLE_FREE_ELEMENT这个回调返回的后紧接着将AL寄存器置为1)第 2点正如你在前面总是看到那样Element指针将会指向NODE数据结构起始位置而不是元素数据部分起始位置这点你定要牢记这是主调为元素分配了整块内存这里头包括了为头部分配内存所以这里就要由主调来把整块内存释放掉了
RtlDeleteElementGenericTable返回是个布尔值:如果RtlLocateNodeGeneric Table找到了要删除元素这个布尔值就是TRUE;如果RtlLocateNodeGenericTable返回NULL话这个布尔值就是FALSE
最新评论