判断这颗AVL树的每个节点的地址是否合法
判断这颗AVL树的每个节点的地址是否合法
判断这颗AVL树的每个节点的地址是否合法
/**********************************************************************************/
//判断这颗AVL树的每个节点的地址是否合法
static VOID MmVerifyMemoryAreas(PMADDRESS_SPACE AddressSpace)
{
PMEMORY_AREA Node;
ASSERT(AddressSpace != NULL);//如果PMADDRESS_SPACE不为空则继续
/*Special case for empty tree.*/
if (AddressSpace->MemoryAreaRoot == NULL)//根节点要不为空
return;
/*Travers the tree from left to right*/
for (Node= MmIterateFirstNode(AddressSpace->MemoryAreaRoot);
Node!= NULL;
Node = MmIterateNextNode(Node))
{
/*FiN:starting address can be NULL if someone explicitely asks
* for NULL address.*/
ASSERT(Node->StartingAddress >= AddressSpace->LowestAddress ||
Node->StartingAddress == NULL);//确保任何一个结点的起始地址要比最低地址要高
ASSERT(Node->EndingAddress >= Node->StartingAddress);//确保任何一个节点的末尾的地址都在该区间
}
}