DrvDbUnregisterDatabase

INT64 __fastcall DrvDbUnregisterDatabase(INT64 a1, const WCHAR *a2){
  INT64 v2; 
  INT64 result; 
  VOID ***v4; 
  VOID ***v5; 
  v2 = PiDrvDbCtx;
  v5 = 0i64;
  result = DrvDbFindDatabaseNode(PiDrvDbCtx, a2, (const UNICODE_STRING **)&v5);
  if( (int)result >= 0 )
  {
    v4 = v5;
    if( ((_DWORD)v5[7] & 1) != 0 )
    {
      return 3221225485i64;
    }
    else
    {
      if( *(VOID ****)(v2 + 40) == v5 )
        *(_QWORD *)(v2 + 40) = 0i64;
      return DrvDbDestroyDatabaseNode(v2, v4);
    }
  }
  return result;
}

Referenced by:

PiDrvDbRegisterNode