KeSaveStateForHibernate
VOID __stdcall KeSaveStateForHibernate(_KPROCESSOR_STATE *ProcessorState){
unsigned __int64 retaddr;
char v3;
RtlCaptureContext(&ProcessorState->ContextFrame);
ProcessorState->ContextFrame.SegGs = 43;
ProcessorState->ContextFrame.SegFs = 83;
ProcessorState->SpecialRegisters.MsrFsBase = __readmsr(0xC0000100);
ProcessorState->SpecialRegisters.MsrGsBase = __readmsr(0xC0000101);
ProcessorState->SpecialRegisters.MsrGsSwap = __readmsr(0xC0000102);
ProcessorState->SpecialRegisters.MsrStar = __readmsr(0xC0000081);
ProcessorState->SpecialRegisters.MsrLStar = __readmsr(0xC0000082);
ProcessorState->SpecialRegisters.MsrCStar = __readmsr(0xC0000083);
ProcessorState->SpecialRegisters.MsrSyscallMask = __readmsr(0xC0000084);
ProcessorState->ContextFrame.Rip = retaddr;
ProcessorState->ContextFrame.Rsp = (unsigned __int64)&v3;
KiSaveProcessorControlState(ProcessorState);
ProcessorState->SpecialRegisters.Cr3 &= 0xFFFFFFFFFFFFFFFCui64;
ProcessorState->SpecialRegisters.Cr4 &= ~0x800000ui64;
_fxsave(&ProcessorState->ContextFrame.256);
}Referenced by:
HalpDpOfflineProcessorForReplace
HalpSaveProcessorState
HalpSetupRealModeResume
PopSaveHiberContextWrapper