BcdCreateObject
INT64 __fastcall BcdCreateObject(__int64 a1, __int64 a2, _DWORD *a3, __int64 *a4){
UINT8 IsOfflineHandle;
INT64 result;
int Object;
IsOfflineHandle = BiIsOfflineHandle((_HHIVE *)a1, a2, (_UNICODE_STRING *)a3, (_UNICODE_STRING *)a4);
result = BiAcquireBcdSyncMutant(IsOfflineHandle);
if( (int)result >= 0 )
{
Object = BiCreateObject(a1, a2, a3, 0i64, a4);
if( Object >= 0 )
{
if( BiIsLinkedToFirmwareVariable((VOID *)*a4, 0i64) )
BiSetFirmwareModified((PVOID)a1, 1u);
}
BiReleaseBcdSyncMutant(IsOfflineHandle);
return(unsigned int)Object;
}
return result;
}Referenced by:
BiBindEfiBootManager
PopBcdRegenerateResumeObject
WheaPersistBadPageToBcd