mmgetphysicaladdress()假设内核内存范围:0x80000000----0x9ffffff之外的所有线性地址都使用4kb的页。而其他函数,如mmisaddressvalid(),会首先加载线性地址的pde,并且检查该pde的ps位,以检查页大小是4kb还是4mb。这是一个非常通用的方法,可以处理任意的内存配置。不过上述两个函数都会返回正确的结果,这是因为windows 2000仅针对内存范围:0x80000000-----0x9fffffff,使用4mb页。不过某些内核api函数,显然设计的比其它的灵活许多。
ioctl函数spy_io_cpu_info