[ros-diffs] [hpoussin] 31534: Bugcheck if no miniport driver is available See issue #2899 for more details.

hpoussin at svn.reactos.org hpoussin at svn.reactos.org
Tue Jan 1 17:35:22 CET 2008


Author: hpoussin
Date: Tue Jan  1 19:35:21 2008
New Revision: 31534

URL: http://svn.reactos.org/svn/reactos?rev=31534&view=rev
Log:
Bugcheck if no miniport driver is available
See issue #2899 for more details.

Modified:
    trunk/reactos/subsystems/win32/win32k/objects/dc.c

Modified: trunk/reactos/subsystems/win32/win32k/objects/dc.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/objects/dc.c?rev=31534&r1=31533&r2=31534&view=diff
==============================================================================
--- trunk/reactos/subsystems/win32/win32k/objects/dc.c (original)
+++ trunk/reactos/subsystems/win32/win32k/objects/dc.c Tue Jan  1 19:35:21 2008
@@ -16,28 +16,16 @@
  *  along with this program; if not, write to the Free Software
  *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
-/* $Id$
- *
+/*
  * DC.C - Device context functions
  *
  */
 
 #include <w32k.h>
+#include <bugcodes.h>
 
 #define NDEBUG
 #include <debug.h>
-
-/* ROS Internal. Please deprecate */
-NTHALAPI
-BOOLEAN
-NTAPI
-HalQueryDisplayOwnership(
-    VOID
-);
-
-#ifndef OBJ_COLORSPACE
-#define OBJ_COLORSPACE	(14)
-#endif
 
 static GDIDEVICE PrimarySurface;
 static KEVENT VideoDriverNeedsPreparation;
@@ -740,8 +728,15 @@
         {
           if (! IntPrepareDriverIfNeeded())
             {
-              DPRINT1("Unable to prepare graphics driver, returning NULL ic\n");
-              return NULL;
+              /* Here, we have two possibilities:
+               * a) return NULL, and hope that the caller
+               *    won't call us in a loop
+               * b) bugcheck, but caller is unable to
+               *    react on the problem
+               */
+              /*DPRINT1("Unable to prepare graphics driver, returning NULL ic\n");
+              return NULL;*/
+              KeBugCheck(VIDEO_DRIVER_INIT_FAILURE);
             }
         }
       else
@@ -2846,7 +2841,11 @@
         return FALSE;
       }
 
-      IntPrepareDriverIfNeeded();
+      if (!IntPrepareDriverIfNeeded())
+      {
+        DPRINT1("IntPrepareDriverIfNeeded failed\n");
+        return FALSE;
+      }
 
       /*
        * DriverFileNames may be a list of drivers in REG_SZ_MULTI format,




More information about the Ros-diffs mailing list