ExQueryPoolBlockSize
NTSTATUS __fastcall ExQueryPoolBlockSize(UINT64 a1, BOOL *a2){
UINT64 v4;
NTSTATUS result;
_DWORD *v6;
_POOL_HEADER *v7;
int v8;
bool v9;
LODWORD(v4) = ExGetHeapFromVA((PVOID)a1);
if( ExpHpIsSpecialPoolHeap(v4) )
{
*a2 = 0;
v6 = (_DWORD *)(a1 & 0xFFFFFFFFFFFFF000ui64);
if( (a1 & 0xFFF) == 0 )
v6 = (_DWORD *)((a1 & 0xFFFFFFFFFFFFF000ui64) + 4080);
return *v6 & 0xFFF;
}
else if( (a1 & 0xFFF) != 0 )
{
v7 = (_POOL_HEADER *)(a1 - 16);
v8 = 16 * (unsigned __int8)*(_WORD *)(a1 - 16 + 2);
v9 = ExpGetBilledProcess(v7) == 0i64;
result = v8 - 16;
*a2 = !v9;
}
else
{
*a2 = 0;
return 4096;
}
return result;
}Referenced by:
No references.