HvlpHvIdentityInfoCallback

VOID __stdcall HvlpHvIdentityInfoCallback(
        _KBUGCHECK_CALLBACK_REASON Reason,
        _KBUGCHECK_REASON_CALLBACK_RECORD *Record,
        VOID *ReasonSpecificData,
        UINT64 ReasonSpecificDataLength){
  __int64 v4; 
  __int64 v6; 
  _HV_VENDOR_AND_MAX_FUNCTION *v7; 
  __int64 v8; 

  v4 = *((_QWORD *)ReasonSpecificData + 4);
  *((_OWORD *)ReasonSpecificData + 1) = HvlpSecondaryDumpDataGuid;
  if( v4 )
  {
    if( *((_DWORD *)ReasonSpecificData + 2) < 0x44u )
    {
      v8 = *(_QWORD *)ReasonSpecificData;
      *((_DWORD *)ReasonSpecificData + 10) = 0;
      *((_QWORD *)ReasonSpecificData + 4) = v8;
    }
    else
    {
      v6 = *(_QWORD *)ReasonSpecificData;
      v7 = (_HV_VENDOR_AND_MAX_FUNCTION *)(*(_QWORD *)ReasonSpecificData + 8i64);
      *(_DWORD *)v6 = 1213614404;
      *(_DWORD *)(v6 + 4) = 68;
      HviGetHypervisorVendorAndMaxFunction(v7);
      HviGetHypervisorInterface((_HV_HYPERVISOR_INTERFACE_INFO *)(v6 + 24));
      HviGetHypervisorVersion((_HV_HYPERVISOR_VERSION_INFO *)(v6 + 40));
      *(_DWORD *)(v6 + 56) = HvlpFlags;
      *(_DWORD *)(v6 + 60) = HvlpRootFlags;
      *(_DWORD *)(v6 + 64) = HvlpEnlightenments;
      *((_QWORD *)ReasonSpecificData + 4) = v6;
      *((_DWORD *)ReasonSpecificData + 10) = 68;
    }
  }
  else
  {
    *((_DWORD *)ReasonSpecificData + 10) = 68;
  }
}

Referenced by:

No references.