WheaReportHwErrorDeviceDriverEx

NTSTATUS __fastcall WheaReportHwErrorDeviceDriverEx(
        UINT64 a1,
        INT64 a2,
        INT8 *a3,
        UINT64 a4,
        INT8 *Src,
        UINT64 Size,
        OWORD *a7,
        INT64 a8,
        INT64 a9,
        INT64 pszSrc){
  size_t v10; 
  _DWORD *HwErrorReportDeviceDriver; 
  _DWORD *v13; 
  int v14; 
  INT64 v16[2]; 
  _NTSTRSAFE_PSTR pszDest[4]; 
  _BYTE *v18; 

  v10 = a4;
  *(_OWORD *)v16 = 0i64;
  *(_OWORD *)pszDest = 0i64;
  v18 = 0i64;
  HwErrorReportDeviceDriver = WheaCreateHwErrorReportDeviceDriver(a1);
  v13 = HwErrorReportDeviceDriver;
  if( !HwErrorReportDeviceDriver )
    return -1073741670;
  WheaHwErrorReportSetSeverityDeviceDriver(HwErrorReportDeviceDriver);
  WheaHwErrorReportGetLogDataBufferDeviceDriver(v13);
  memmove(0i64, Src, Size);
  v14 = WheaAddHwErrorReportSectionDeviceDriver((INT64)v13, v10, (INT64)v16);
  if( v14 >= 0 )
  {
    memmove(*(VOID **)((char *)v16 + 4), a3, v10);
    **(_OWORD **)pszDest = *a7;
    *v18 = 1;
    if( pszSrc )
      RtlStringCchCopyA(*(CHAR **)&pszDest[2], 0x14ui64, (CHAR *)pszSrc);
    return WheaHwErrorReportSubmitDeviceDriver((INT64)v13);
  }
  else
  {
    WheaHwErrorReportAbandonDeviceDriver(v13);
  }
  return v14;
}

Referenced by:

WheaReportHwErrorDeviceDriver