判断这棵AVL树的每个结点的地址是否合法:
MmVerifyMemoryAreas
MmVerifyMemoryAreas
static VOID MmVerifyMemoryAreas(PMADDRESS_SPACE AddressSpace)
{
PMEMORY_AREA Node;
ASSERT(AddressSpace != NULL);//如果PMADDRESS_SPACE不为空则继续
/* Special case for empty tree. */
if (AddressSpace->MemoryAreaRoot == NULL)
return;
/* Traverse the tree from left to right. */
for (Node = MmIterateFirstNode(AddressSpace->MemoryAreaRoot);
Node != NULL;
Node = MmIterateNextNode(Node))
{
/* FiN: The 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);//确保任何一个节点的末尾的地址都在该区间
}
}