HvlAddPagesCallbackRoutine

VOID __stdcall HvlAddPagesCallbackRoutine(
        _KBUGCHECK_CALLBACK_REASON Reason,
        _KBUGCHECK_REASON_CALLBACK_RECORD *Record,
        VOID *ReasonSpecificData,
        UINT64 ReasonSpecificDataLength){
  NTSTATUS PageList; 
  __int64 BasePage[3]; 
  UINT64 PageCount; 

  *((_QWORD *)ReasonSpecificData + 3) = 0i64;
  *((_DWORD *)ReasonSpecificData + 2) = 0;
  BasePage[0] = 0i64;
  LODWORD(PageCount) = 0;
  if( *(&stru_140C452E0 + 1021) && (*(_DWORD *)(*(&stru_140C452E0 + 1021) + 4i64) & 1) != 0 && qword_140C47330 )
  {
    if( !*(_QWORD *)ReasonSpecificData )
    {
      *(_QWORD *)ReasonSpecificData = &xmmword_140C47300;
      LOBYTE(xmmword_140C47300) = 1;
      HvlpStartPageListIteration(1i64);
    }
    PageList = HvlpGetPageList(HvlPageListCrashdump, (UINT64 *)BasePage, &PageCount);
    if( (_DWORD)PageCount )
    {
      *((_QWORD *)ReasonSpecificData + 3) = (unsigned int)PageCount;
      *((_QWORD *)ReasonSpecificData + 2) = BasePage[0];
      *((_DWORD *)ReasonSpecificData + 2) = 2;
    }
    if( PageList == 261 )
    {
      *((_DWORD *)ReasonSpecificData + 2) |= 0x80000000;
    }
    else
    {
      *(&stru_140C452E0 + 993) = 0i64;
      *(&stru_140C452E0 + 1984) = 0;
      LOBYTE(xmmword_140C47300) = 0;
      *(_QWORD *)ReasonSpecificData = 0i64;
    }
  }
}

Referenced by:

No references.