RtlpHpVaMgrCtxQuery
NTSTATUS __stdcall RtlpHpVaMgrCtxQuery(INT64 a1, INT64 a2, INT64 a3){
__int64 v6;
__int64 v7;
__int64 v8;
__int64 v9;
LODWORD(v6) = RtlSparseArrayElementAllocated(a1 + 16, (unsigned __int64)(a2 - *(_QWORD *)(a1 + 8)) >> 20);
v7 = v6;
if( v6 )
{
*(_DWORD *)(a3 + 28) = 0;
if( (*(_BYTE *)v6 & 4) != 0 )
v8 = *(_QWORD *)(v6 + 24);
else
v8 = *(unsigned __int16 *)(v6 + 24);
*(_QWORD *)a3 = v8 << 20;
v9 = *(unsigned __int8 *)(v7 + 1) + 45i64;
*(_DWORD *)(a3 + 24) = 16;
*(_DWORD *)(a3 + 8) = (*(unsigned __int8 *)(a1 + 48 * v9 + 46) >> 1) & 3;
*(_DWORD *)(a3 + 12) = *(unsigned __int8 *)(a1 + 48 * v9 + 45);
*(_QWORD *)(a3 + 16) = v7 + 8;
return 0;
}
else
{
RtlpLogHeapFailure(heap_failure_invalid_va_mgr_query, (VOID *)a2, 0i64, 0i64, 0i64);
return -1073741823;
}
}Referenced by:
RtlpHpQueryVA
RtlpHpSegMgrCommit