MmAllocateIsrStack
UINT8 __stdcall MmAllocateIsrStack(VOID **IsrStack, UINT16 NodeNumber){
__int64 IndependentPages;
char *v4;
_MMPTE *PteAddress;
char *v7;
if( *IsrStack )
{
v7 = (char *)*IsrStack - 24576;
if( MmSetPageProtection(v7, 0x6000ui64, 4ui64) )
{
v4 = v7 - 4096;
goto LABEL_4;
}
}
else
{
IndependentPages = MmAllocateIndependentPagesEx(0x7000ui64, NodeNumber, 0i64, 0);
v4 = (char *)IndependentPages;
if( IndependentPages )
{
*IsrStack = (VOID *)(IndependentPages + 28672);
LABEL_4:
PteAddress = MiGetPteAddress(v4);
MiMarkBootGuardPage((UINT64)PteAddress);
return 1;
}
}
return 0;
}Referenced by:
KeStartAllProcessors
KiStartDynamicProcessor