IopReferenceDriverObjectByName

_DRIVER_OBJECT *__stdcall IopReferenceDriverObjectByName(_UNICODE_STRING *DriverName){
  NTSTATUS v2; 
  int v3[2]; 
  __int64 v4; 
  _UNICODE_STRING *v5; 
  int v6; 
  int v7; 
  __int128 v8; 
  HANDLE Handle; 
  PVOID Object; 
  v3[1] = 0;
  v7 = 0;
  Handle = 0i64;
  if( !DriverName->Length )
    return 0i64;
  v5 = DriverName;
  v3[0] = 48;
  v4 = 0i64;
  v6 = 576;
  v8 = 0i64;
  if( ObOpenObjectByName((__int64)v3, (__int64)IoDriverObjectType, 0, 0i64, 0x80u, 0i64, &Handle) < 0 )
    return 0i64;
  Object = 0i64;
  v2 = ObReferenceObjectByHandle(Handle, 0, IoDriverObjectType, 0, &Object, 0i64);
  ZwClose(Handle);
  if( v2 >= 0 )
    return(_DRIVER_OBJECT *)Object;
  else
    return 0i64;
}

Referenced by:

IopInitializeSystemDrivers
PiGetDefaultMessageString
PipCallDriverAddDeviceQueryRoutine