WheaAttemptPhysicalPageOffline

INT64 __fastcall WheaAttemptPhysicalPageOffline(UINT64 Page, UINT8 PlatformDirected, UINT8 Poisoned){
  UINT64 v5; 
  INT64 result; 
  struct _WORK_QUEUE_ITEM WorkItem; 
  _QWORD v8[6]; 
  WorkItem.List.Blink = 0i64;
  v5 = (unsigned __int64)(unsigned int)Page << 12;
  if( *((_BYTE *)KeGetCurrentThread() + 562) == 1 )
  {
    memset(&v8[2], 0, 32);
    *(_WORD *)((char *)&v8[2] + 1) = Poisoned;
    v8[0] = v5;
    v8[1] = Page;
    LOBYTE(v8[2]) = PlatformDirected;
    KeInitializeEvent((_KEVENT *)&v8[3], NotificationEvent, 0);
    WorkItem.List.Flink = 0i64;
    WorkItem.WorkerRoutine = (void(__fastcall *)(void *))WheapAttemptPhysicalPageOfflineWorker;
    WorkItem.Parameter = v8;
    ExQueueWorkItem(&WorkItem, DelayedWorkQueue);
    KeWaitForSingleObject(&v8[3], Executive, 0, 0, 0i64);
    return HIDWORD(v8[2]);
  }
  else
  {
    LODWORD(result) = WheapAttemptPhysicalPageOffline(v5, Page, PlatformDirected);
  }
  return result;
}

Referenced by:

HalpMemoryErrorDeferredHandler
HalpPmemErrorDeferredHandler
KiMcheckAlternateReturn
WheapPfaMemoryCheck
WheapPredictiveFailureAnalysis