ExpQueryMemoryTopologyInformation
INT64 __stdcall ExpQueryMemoryTopologyInformation(VOID *Buffer, UINT64 BufferSize, UINT64 *ReturnSize){
UINT64 v4;
int NodeChannelRanges;
UINT64 v7;
__int64 Size[4];
void *Src;
v4 = (unsigned int)BufferSize;
Size[0] = 0i64;
Src = 0i64;
NodeChannelRanges = MmGetNodeChannelRanges(&Src, (UINT64 *)Size);
if( NodeChannelRanges >= 0 )
{
v7 = Size[0];
*(_DWORD *)ReturnSize = Size[0];
if( v7 > 0xFFFFFFFF )
{
NodeChannelRanges = -1073741670;
}
else if( v7 > v4 )
{
NodeChannelRanges = -1073741789;
}
else
{
memmove((UINT8 *)Buffer, (UINT8 *)Src, v7);
NodeChannelRanges = 0;
}
}
if( Src )
ExFreePoolWithTag(Src, 0);
return(unsigned int)NodeChannelRanges;
}Referenced by:
ExpQuerySystemInformation