ExpLookupHandleTableEntry
_HANDLE_TABLE_ENTRY *__stdcall ExpLookupHandleTableEntry(_HANDLE_TABLE *HandleTable, _EXHANDLE Handle){
unsigned __int64 v2;
volatile unsigned __int64 TableCode;
v2 = Handle.Value & 0xFFFFFFFFFFFFFFFCui64;
if( v2 >= HandleTable->NextHandleNeedingPool )
return 0i64;
TableCode = HandleTable->TableCode;
if( (TableCode & 3) == 1 )
return(_HANDLE_TABLE_ENTRY *)(*(_QWORD *)(TableCode + 8 * (v2 >> 10) - 1) + 4 * (v2 & 0x3FF));
if( (TableCode & 3) != 0 )
return(_HANDLE_TABLE_ENTRY *)(*(_QWORD *)(*(_QWORD *)(TableCode + 8 * (v2 >> 19) - 2) + 8 * ((v2 >> 10) & 0x1FF))
+ 4 * (v2 & 0x3FF));
return(_HANDLE_TABLE_ENTRY *)(TableCode + 4 * v2);
}Referenced by:
AlpcpLookupMessage
ExDupHandleTable
ExEnumHandleTable
ExMapHandleToPointer
ExSweepHandleTable
ExpGetHandleExtraInfo
ExpGetNextHandleTableEntry
ExpSetHandleExtraInfo
ExpSnapShotHandleTables
NtClose
ObReferenceFileObjectForWrite
ObWaitForMultipleObjects
ObpReferenceObjectByHandleWithTag
ObpReferenceProcessObjectByHandle
PspReferenceCidTableEntry