二、Hvm过程
2.1 newbp.c (116)
if (!NT_SUCCESS (Status = HvmInit ())) {
_KdPrint (("NEWBLUEPILL: HvmInit() failed with status 0x%08hX\n", Status));
在吞下“蓝色药丸”之前,还要先初始化一下。HvmInit()函数主要的作用是
1、确定系统构架是否支持HEV 并确定支持哪种HEV技术~VT/SVM SVM暂时忽略吧~毕竟AMD的不多呀
PHVM_DEPENDENT Hvm; (common.h)
PHVM_DEPENDENT的定义
typedef struct
{
UCHAR Architecture;
ARCH_IS_HVM_IMPLEMENTED ArchIsHvmImplemented;
ARCH_INITIALIZE ArchInitialize;
ARCH_VIRTUALIZE ArchVirtualize;
ARCH_SHUTDOWN ArchShutdown;
ARCH_IS_NESTED_EVENT ArchIsNestedEvent;
ARCH_DISPATCH_NESTED_EVENT ArchDispatchNestedEvent;
ARCH_DISPATCH_EVENT ArchDispatchEvent;
ARCH_ADJUST_RIP ArchAdjustRip;
ARCH_REGISTER_TRAPS ArchRegisterTraps;
ARCH_IS_TRAP_VALID ArchIsTrapValid;
} HVM_DEPENDENT,
*PHVM_DEPENDENT;
我去...高端霸气上了个档