| 原因是CPU对BTS记录的大小做了调整。 typedef struct tagBtsRecord{
 DWORD dwFrom;
 DWORD dwTo;
 DWORD dwFlags;
 } BtsRecord, *PBtsRecord;
 Pentium M和P4时,这个结构在32位模式时每个字段都是32位的,64位时各个字段都是64位的。 但是后来的CPU统一使用64位了,不管是否工作在32位模式还是64位模式。 也就是说,需要把上面的结构扩展成64位。可以通过cpuid指令来检查CPU的这种特征: 以EAX=1执行CPUID指令,然后判断ECX寄存器的bit 2,即DTES64位: 64-bit DS Area. A value of 1 indicates the processor supports DSarea using 64-bit layout
     
 |