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