MmRegisterHotPatch

NTSTATUS __stdcall MmRegisterHotPatch(PCUNICODE_STRING SourceString){
  unsigned int v1; 
  unsigned int v2; 
  unsigned int v3; 
  unsigned int v4; 
  int v6; 
  int HotPatch; 
  _ETHREAD *Lock; 
  _RTL_BALANCED_NODE *HotPatchRecord; 
  INT64 v11; 
  unsigned int v12; 
  unsigned int v13; 
  int v14; 

  v13 = v2;
  v12 = v1;
  v14 = 0;
  v3 = v2;
  v4 = v1;
  v6 = 1;
  if( (MiFlags & 0x8000) != 0 )
  {
    HotPatch = VslDetermineHotPatchType(v1, v2, &v14);
    if( HotPatch < 0 )
    {
LABEL_12:
      LODWORD(v11) = 1;
      MiLogHotPatchOperationStatus(
        v4,
        v3,
        (PFN_WDFCX_DEVICE_POST_SELF_MANAGED_IO_INIT *)SourceString,
        (unsigned int)HotPatch,
        v11);
      return HotPatch;
    }
    if( (v14 & 2) != 0 )
      return MiLoadHotPatch(SourceString);
  }
  Lock = MmAcquireLoadLock((INT64)SourceString, v1);
  HotPatchRecord = (_RTL_BALANCED_NODE *)MiAllocateHotPatchRecord(v4, v3, (const VOID **)SourceString);
  if( HotPatchRecord )
  {
    MiInsertHotPatchRecord((_RTL_BALANCED_NODE **)&MiGlobalHotPatchList, HotPatchRecord, 0i64);
    v6 = 0;
    if( (MiFlags & 0x8000) == 0
      || MiApplyHotPatchToDriver(v4, v3, (_UNICODE_STRING *)SourceString, 0i64) < 0
      || (v3 = v13, HotPatch = MiLoadHotPatch(SourceString), v4 = v12, HotPatch >= 0) )
    {
      HotPatch = 0;
    }
  }
  else
  {
    HotPatch = -1073741670;
  }
  MmReleaseLoadLock(Lock);
  if( v6 )
    goto LABEL_12;
  return HotPatch;
}

Referenced by:

IopLoadBootHotPatches