MiInitializeHugePfnDatabase
INT64 __stdcall MiInitializeHugePfnDatabase(){
unsigned __int64 OldIrql;
void *v1;
void *v2;
INT64 result;
__int64 v4;
struct _KLOCK_QUEUE_HANDLE LockHandle;
memset(&LockHandle, 0, sizeof(LockHandle));
KeAcquireInStackQueuedSpinLock(&qword_140C4E3C0, &LockHandle);
if( qword_140C4E3B0 )
{
KeReleaseInStackQueuedSpinLockFromDpcLevel(&LockHandle);
OldIrql = LockHandle.OldIrql;
LABEL_8:
result = 1i64;
goto LABEL_9;
}
LODWORD(v1) = MiAllocatePool((struct _SLIST_ENTRY *)0x40);
v2 = v1;
if( v1 )
{
LODWORD(v4) = MiAllocatePool((struct _SLIST_ENTRY *)0x40);
if( !v4 )
{
KeReleaseInStackQueuedSpinLockFromDpcLevel(&LockHandle);
__writecr8(LockHandle.OldIrql);
ExFreePoolWithTag(v2, 0);
return 0i64;
}
qword_140C4E3A0 = 0x40000i64;
qword_140C4E3A8 = (__int64)v2;
qword_140C4E3B0 = v4;
KeReleaseInStackQueuedSpinLockFromDpcLevel(&LockHandle);
OldIrql = LockHandle.OldIrql;
goto LABEL_8;
}
KeReleaseInStackQueuedSpinLockFromDpcLevel(&LockHandle);
OldIrql = LockHandle.OldIrql;
result = 0i64;
LABEL_9:
__writecr8(OldIrql);
return result;
}Referenced by:
MiHotAddHugeRange