I don’t know the first thing about video drivers, but your !analyze -v
shows
mov edx, [ecx + 04]
with ecx = 0
This is no no. One of those parameters to EngCopyBits is bogus.
mm
-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of
xxxxx@gmail.com
Sent: Friday, June 22, 2007 18:12
To: Windows System Software Devs Interest List
Subject: RE:[ntdev] Mirror Driver - how to track changes
Tim. Sorry.
I have understood, what you are saying.
Ok before I’ll be understanding with DrvTextOut.
First I need to understand, why this code isn’t working (I got blue
screen)
BOOL DrvCopyBits(
OUT SURFOBJ *psoDst,
IN SURFOBJ *psoSrc,
IN CLIPOBJ *pco,
IN XLATEOBJ *pxlo,
IN RECTL *prclDst,
IN POINTL *pptlSrc
)
{
if (psoDst)
{
if (psoDst->dhpdev)
{
PPDEV ppdev = (PPDEV) psoDst->dhpdev;
if((ppdev->hsurfEng ==
psoDst->hsurf)&&(ppdev->pvTmpBuffer))
{
EngCopyBits(psoDst, psoSrc, pco, pxlo,
prclDst, pptlSrc);
DISPDBG((0,“pco->rclBounds.left is
%d:\n”,pco->rclBounds.left)); //@ 465
}
}
}
return TRUE;
}
The crush-dump is
kd> !analyze -f -v
************************************************************************
*******
*
*
* Bugcheck Analysis
*
*
*
************************************************************************
*******
KERNEL_MODE_EXCEPTION_NOT_HANDLED_M (1000008e)
This is a very common bugcheck. Usually the exception address pinpoints
the driver/function that caused the problem. Always note this address
as well as the link date of the driver/image that contains this address.
Some common problems are exception code 0x80000003. This means a hard
coded breakpoint or assertion was hit, but this system was booted
/NODEBUG. This is not supposed to happen as developers should never
have
hardcoded breakpoints in retail code, but …
If this happens, make sure a debugger gets connected, and the
system is booted /DEBUG. This will let us see why this breakpoint is
happening.
An exception code of 0x80000002 (STATUS_DATATYPE_MISALIGNMENT) indicates
that an unaligned data reference was encountered. The trap frame will
supply additional information.
Arguments:
Arg1: c0000005, The exception code that was not handled
Arg2: bf9e9aa3, The address that the exception occurred at
Arg3: fa9b89bc, Trap Frame
Arg4: 00000000
Debugging Details:
EXCEPTION_CODE: (NTSTATUS) 0xc0000005 - The instruction at “0x%08lx”
referenced memory at “0x%08lx”. The memory could not be “%s”.
FAULTING_IP:
mirror_bf9e8000!DrvCopyBits+53
bf9e9aa3 8b5104 mov edx,[ecx+0x4]
TRAP_FRAME: fa9b89bc – (.trap fffffffffa9b89bc)
ErrCode = 00000000
eax=00000001 ebx=00000000 ecx=00000000 edx=00000000 esi=00000000
edi=00000000
eip=bf9e9aa3 esp=fa9b8a30 ebp=fa9b8a34 iopl=0 nv up ei pl nz na
pe nc
cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000
efl=00010202
mirror_bf9e8000!DrvCopyBits+53:
bf9e9aa3 8b5104 mov edx,[ecx+0x4]
ds:0023:00000004=???
Resetting default context
DEFAULT_BUCKET_ID: DRIVER_FAULT
BUGCHECK_STR: 0x8E
LAST_CONTROL_TRANSFER: from bf904222 to bf9e9aa3
STACK_TEXT:
fa9b8a34 bf904222 e1c9fe90 e10e3010 00000000
mirror_bf9e8000!DrvCopyBits+0x53
[c:\winddk\3790\src\video\displays\mirror\disp\enable.c @ 465]
fa9b8a7c bf84d6a3 bf9e9a50 bf9a2fb4 e1c9fe90 win32k!OffCopyBits+0x7d
fa9b8b34 bf84d400 e1089048 e10644e0 e10e3010
win32k!vSpWriteToScreen+0x99
fa9b8bc4 bf822e63 e1125010 00000001 e1089048
win32k!vSpRedrawUncoveredArea+0x188
fa9b8c90 bf8fd579 e1089048 00000000 00000000
win32k!bSpUpdatePosition+0x17d
fa9b8cc0 bf8fd4bb e1089008 bc510300 bc6366e8 win32k!vSpDeleteSprite+0x3f
fa9b8cd8 bf92d23e e160c008 00030040 00000000 win32k!GreDeleteSprite+0x3a
fa9b8d08 bf8bbf05 fa9b8d64 0012f274 bf8bbcdf
win32k!ResetRedirectedWindows+0x77
fa9b8d20 bf8bbd13 0012f284 0014bdf8 00000000
win32k!xxxUserChangeDisplaySettings+0x18f
fa9b8d48 8053c808 0012f284 0014bdf8 00000000
win32k!NtUserChangeDisplaySettings+0x4a
fa9b8d64 7c90eb94 badb0d00 0012f260 fad0cda0 nt!ObpPushStackInfo+0x75
WARNING: Frame IP not in any known module. Following frames may be
wrong.
0012f28c 00000000 00000000 00000000 00000000 0x7c90eb94
FOLLOWUP_IP:
mirror_bf9e8000!DrvCopyBits+53
bf9e9aa3 8b5104 mov edx,[ecx+0x4]
FOLLOWUP_NAME: MachineOwner
SYMBOL_NAME: mirror_bf9e8000!DrvCopyBits+53
MODULE_NAME: mirror_bf9e8000
IMAGE_NAME: mirror.dll
DEBUG_FLR_IMAGE_TIMESTAMP: 467c466d
STACK_COMMAND: .trap fffffffffa9b89bc ; kb
BUCKET_ID: 0x8E_mirror_bf9e8000!DrvCopyBits+53
Followup: MachineOwner
Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256
To unsubscribe, visit the List Server section of OSR Online at
http://www.osronline.com/page.cfm?name=ListServer