RtlpLookupLowBox

_RTL_ATOM_TABLE_REFERENCE *__stdcall RtlpLookupLowBox(
        _RTL_ATOM_TABLE *AtomTable,
        _RTL_ATOM_TABLE_ENTRY *AtomEntry,
        UINT8 AtomDeletion){
  int LowBoxId; 
  _RTL_ATOM_TABLE_REFERENCE **p_Reference; 
  _RTL_ATOM_TABLE_REFERENCE *result; 

  if( (AtomTable->Flags & 1) != 0 )
    LowBoxId = 0;
  else
    LowBoxId = RtlpQueryLowBoxId();
  p_Reference = (_RTL_ATOM_TABLE_REFERENCE **)&AtomEntry->Reference;
  if( !LowBoxId )
    return &AtomEntry->Reference;
  for( result = *p_Reference;
        result != (_RTL_ATOM_TABLE_REFERENCE *)p_Reference;
        result = (_RTL_ATOM_TABLE_REFERENCE *)result->LowBoxList.Flink )
  {
    if( result->LowBoxID == LowBoxId )
      return result;
  }
  if( !RtlpAllowsLowBoxAccess(AtomEntry) || AtomDeletion )
    return 0i64;
  else
    return &AtomEntry->Reference;
}

Referenced by:

RtlDeleteAtomFromAtomTable
RtlPinAtomInAtomTable
RtlQueryAtomInAtomTable
RtlQueryAtomsInAtomTable