Bugcheck if no miniport driver is available

See issue #2899 for more details.

svn path=/trunk/; revision=31534
This commit is contained in:
Hervé Poussineau 2008-01-01 16:35:21 +00:00
parent 7f89ec982f
commit 254445ecc4

View file

@ -16,29 +16,17 @@
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/ */
/* $Id$ /*
*
* DC.C - Device context functions * DC.C - Device context functions
* *
*/ */
#include <w32k.h> #include <w32k.h>
#include <bugcodes.h>
#define NDEBUG #define NDEBUG
#include <debug.h> #include <debug.h>
/* ROS Internal. Please deprecate */
NTHALAPI
BOOLEAN
NTAPI
HalQueryDisplayOwnership(
VOID
);
#ifndef OBJ_COLORSPACE
#define OBJ_COLORSPACE (14)
#endif
static GDIDEVICE PrimarySurface; static GDIDEVICE PrimarySurface;
static KEVENT VideoDriverNeedsPreparation; static KEVENT VideoDriverNeedsPreparation;
static KEVENT VideoDriverPrepared; static KEVENT VideoDriverPrepared;
@ -740,8 +728,15 @@ IntGdiCreateDC(PUNICODE_STRING Driver,
{ {
if (! IntPrepareDriverIfNeeded()) if (! IntPrepareDriverIfNeeded())
{ {
DPRINT1("Unable to prepare graphics driver, returning NULL ic\n"); /* Here, we have two possibilities:
return NULL; * 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 else
@ -2846,7 +2841,11 @@ IntEnumDisplaySettings(
return FALSE; return FALSE;
} }
IntPrepareDriverIfNeeded(); if (!IntPrepareDriverIfNeeded())
{
DPRINT1("IntPrepareDriverIfNeeded failed\n");
return FALSE;
}
/* /*
* DriverFileNames may be a list of drivers in REG_SZ_MULTI format, * DriverFileNames may be a list of drivers in REG_SZ_MULTI format,