PRB: Calling the EngModifySurface Function or the EngAssociateSurface Function in DrvEnableSurface Causes Stop Error (330248)
The information in this article applies to:
- Microsoft Windows 2000
- Microsoft Windows XP Professional SP1
This article was previously published under Q330248 SYMPTOMS
When hardware acceleration is turned off completely, the user may experience a kernel-mode Stop error message, which is also known as a bugcheck. The bugcheck code and parameters may vary. The bugcheck appears on the display driver when doing operations such as the following:
- Changing the display resolution when certain applications are running, particularly D3D applications.
- Opening a command prompt window, making it full-screen, and then restoring it to its original size.
- Going into a low power mode.
- Switching to a different user.
CAUSE
The display driver is called through the DrvCopyBits() function for a destination surface object (SURFOBJ) that references the driver's physical device (PDEV or DHPDEV), which this driver did not create. This results in an undefined behavior and, most likely, a bugcheck.
RESOLUTION
To work around this issue, the display driver must follow this simple rule:
After a call to DrvEnableSurface() completes successfully, never call EngModifySurface() or EngAssociateSurface() on the surface that is returned by DrvEnableSurface().
REFERENCES
Windows DDK documentation.
Modification Type: | Minor | Last Reviewed: | 7/21/2004 |
---|
Keywords: | kbDebug kbKMode kbprb KB330248 |
---|
|