BiTranslateObjectIdentifier
NTSTATUS __stdcall BiTranslateObjectIdentifier(LIST_ENTRY *IdentifierList, GUID *ObjectIdentifier, UINT64 *BootEntryId){
_LIST_ENTRY *Flink;
NTSTATUS v5;
int v6;
unsigned __int64 v7;
Flink = IdentifierList->Flink;
if( IdentifierList->Flink == IdentifierList )
return -1073741275;
v5 = 0;
while( 1 )
{
v6 = (int)Flink[3].Flink;
if( (v6 & 4) != 0 )
{
v7 = *(_QWORD *)&ObjectIdentifier->Data1 - (unsigned __int64)Flink[1].Flink;
if( *(_LIST_ENTRY **)&ObjectIdentifier->Data1 == Flink[1].Flink )
v7 = *(_QWORD *)ObjectIdentifier->Data4 - (unsigned __int64)Flink[1].Blink;
if( !v7 )
break;
}
Flink = Flink->Flink;
if( Flink == IdentifierList )
return -1073741275;
}
if( (v6 & 3) == 0 )
return -1073741275;
if( (v6 & 0x10) != 0 )
{
BiLogMessage();
return -1073741788;
}
else
{
*(_DWORD *)BootEntryId = Flink[2].Flink;
}
return v5;
}Referenced by:
BiExportEfiBootManager
BiHandleFirmwareDefaultEntry
BiTranslateDisplayOrder