MiInitializeImageHeaderPage

VOID __stdcall MiInitializeImageHeaderPage(UINT64 PageFrameNumber, UINT64 SizeOfHeaders){
  void *v4; 
  void *v5; 
  char *v6; 
  UINT8 v7; 
  UINT64 SpinCount; 
  v7 = 0;
  LODWORD(v4) = MiMapPageInHyperSpaceWorker(PageFrameNumber, &v7, 0x80000000ui64);
  v5 = v4;
  memset((INT64)v4 + SizeOfHeaders, 0i64);
  MiUnmapPageInHyperSpaceWorker(v5, 2u, 0x80000000ui64);
  if( (SizeOfHeaders & 0x1FF) != 0 )
  {
    v6 = (char *)MmGetPfnDb() + 48 * PageFrameNumber;
    LODWORD(SpinCount) = 0;
    while( _interlockedbittestandset64((volatile signed __int32 *)v6 + 6, 0x3Fui64) )
    {
      do
        KeYieldProcessorEx(&SpinCount);
      while( *((__int64 *)v6 + 3) < 0 );
    }
    v6[34] |= 0x10u;
    _InterlockedAnd64((volatile signed __int64 *)v6 + 3, 0x7FFFFFFFFFFFFFFFui64);
  }
  __writecr8(v7);
}

Referenced by:

MiCreateImageFileMap