I can’t say for sure what the problem in your driver is. I suggest that
you refer to the msplot sample which is also a monolithic driver. You
can stub out the code in the drawing functions and punt it to Engxxx.
This posting is provided “AS IS” with no warranties, and confers no
rights.
-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Shashidhar R
Sent: Monday, April 28, 2003 8:56 AM
To: NT Developers Interest List
Cc: Srikanth R; Santhosh Brahmappa; Ashwin Needamangala
Subject: [ntdev] RE: Query about Raster driver
The bug was due to specifying hook for unsupported was being specified
in engassociatesuface. But the data in the pvBits field in DrvNextBand
is always NULL.
-----Original Message-----
From: Shashidhar R
Sent: Monday, April 28, 2003 7:59 PM
To: NT Developers Interest List
Cc: Srikanth R; Santhosh Brahmappa; Ashwin Needamangala
Subject: [ntdev] RE: Query about Raster driver
I had problem in the DrvStartBanding() now the DrvNextBand is called
with NULL data still. Also after this in the hooked functions the punted
function results in a crash with stack as below
=========================================
DEFAULT_BUCKET_ID: APPLICATION_FAULT
BUGCHECK_STR: 0x0
LAST_CONTROL_TRANSFER: from a0021469 to 00000000
STACK_TEXT:
fb43ba08 a0021469 e1dd6bac fb43c220 e1de0000 0x0
fb43ba18 a00381f4 e1de0010 fb43c220 00000000 win32k!PDEVOBJ::vSync+0x42
fb43c08c fb23c749 e1de0010 fb43c118 e1dd3008 win32k!EngTextOut+0x77
fb43c0bc a001a5e6 e1de0010 fb43c118 e13d4d08 MyDrv!DrvTextOut+0x3d
fb43c344 a0019ebe fb43c640 e1dc24cc e1dc2520
win32k!GreExtTextOutWLocked+0xdfe fb43c5b4 a0015407 fb43c640 7ffde1dc
00000078 win32k!GreBatchTextOut+0x2dd fb43c644 80464973 00000093
0006f1ec 00000002 win32k!NtGdiFlushUserBatch+0xd1 fb43c644 77f417c7
00000093 0006f1ec 00000002 nt!KiSystemService+0x96 0006f1e4 77f4bbcd
0006f214 00d47044 00d4707d GDI32!NtGdiFlush+0xb 0006f1f8 77f4ca5d
012101c7 00000002 00d47044 GDI32!SetGraphicsMode+0x80 0006f308 77f4c4f7
012101c7 00072f48 00000002 GDI32!MRSMALLTEXTOUT::bPlay+0xe3 0006f384
77f4d29f 012101c7 00072f48 00d47044 GDI32!PlayEnhMetaFileRecord+0x2ab
0006f3f8 77f4d84f 012101c7 00007044 00000000
GDI32!bInternalPlayEMF+0x63f 0006f410 77f59132 012101c7 264601ac
0006f494 GDI32!PlayEnhMetaFile+0x26 0006f4c4 77f6abe7 012101c7 264601ac
1c0401b0 GDI32!PrintBand+0x260 0006f554 77f517c9 00000001 0000000a
77f4b12f GDI32!MFP_InternalEndPage+0x1f6 0006f560 77f4b12f 012101c7
00087be0 012101c7 GDI32!MFP_EndPage+0xb 0006f578 77f4b06e 012101c7
00000001 010039bb GDI32!InternalEndPage+0x6e 0006f584 010039bb 012101c7
00000000 77e13ba8 GDI32!EndPage+0xb
===========================================
I am not able to find the actual cause since any hooked function which
is called first will result in a crash. Any suggestions are welcome…
-Shashi
-----Original Message-----
From: Shashidhar R
Sent: Monday, April 28, 2003 11:12 AM
To: NT Developers Interest List
Cc: Srikanth R; Santhosh Brahmappa; Ashwin Needamangala
Subject: [ntdev] RE: Query about Raster driver
Hi Ashwin,
I tried by providing all the hooks and in the EngAssociateSurface()
specified the hooks. But still the data in DrvNextBand() is always zero
and none of the hooked functions get called. Is there anything else I
need to do in DrvEnableSurface()? All the hooked functions, I had punted
using EngXxx… calls. Please suggest how should I proceed with this
problem. Regards, Shashi
-----Original Message-----
From: Santhosh Brahmappa
Sent: Friday, April 25, 2003 10:38 AM
To: NT Developers Interest List
Cc: Srikanth R
Subject: [ntdev] RE: Query about Raster driver
Hi Ashwin,
We are doing the monolithic driver for 9x and NT platforms. Also we need
to implement some custom features for these platforms and as such we had
to write a monolithic driver.
Regards,
Santhosh
-----Original Message-----
From: Ashwin Needamangala [mailto:xxxxx@microsoft.com]
Sent: Friday, April 25, 2003 12:36 AM
To: NT Developers Interest List
Cc: Srikanth R; Santhosh Brahmappa
Subject: RE: [ntdev] Query about Raster driver
You need to implement a number of the drawing functions even if it is a
GDI-managed surface. IIRC, among the common print driver functions, only
DrvStrokePath and DrvTextOut are optional. The other drawing functions
need to be implemented. The simplest implementation of these functions
would punt to the corresponding Engxxx function.
Also, is there a particular reason for you writing a monolithic driver?
If you don’t want to implement the drawing functions, I don’t see any
reason for you to implement a monolithic driver. You can do the exact
same stuff with the OEM hooks in a unidrv-based rendering plug-in.
This posting is provided “AS IS” with no warranties, and confers no
rights.
-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Shashidhar R
Sent: Thursday, April 24, 2003 2:35 AM
To: NT Developers Interest List
Cc: Ashwin Needamangala; Srikanth R; Santhosh Brahmappa
Subject: [ntdev] Query about Raster driver
Hi,
I’m trying to develop a raster printer driver and facing problem with
it.
I have modified the pscript driver from the NT4 DDK to be a raster
driver. The changes I had done is to remove the PS specific
functionality and in the DrvEnableSurface call EngCreateBitmap() instead
of EngCreateDeviceSurface() and marking the area as banded. And I have
implemented banding (DrvStartBanding() and DrvNextBand()) and modifying
the other functions (required such as DrvStartDoc()…)to send out
raster information instead of PostScript.
But when I fire a print job, the output is always zero in DrvNextBand.
As per the documentation, GDI should have handled other functions for me
since this is a GDI managed surface and I am not hooking any other
calls(DrvTextout(), DrvStrokeAndFillPath() …).
Please suggest if I am missing anything… (Also I want this
functionality in my printer graphics dll).
Regards,
Shashi
You are currently subscribed to ntdev as: xxxxx@microsoft.com To
unsubscribe send a blank email to xxxxx@lists.osr.com
You are currently subscribed to ntdev as: xxxxx@wipro.com
To unsubscribe send a blank email to xxxxx@lists.osr.com
You are currently subscribed to ntdev as: xxxxx@wipro.com
To unsubscribe send a blank email to xxxxx@lists.osr.com
You are currently subscribed to ntdev as: xxxxx@wipro.com
To unsubscribe send a blank email to xxxxx@lists.osr.com
You are currently subscribed to ntdev as: xxxxx@microsoft.com To
unsubscribe send a blank email to xxxxx@lists.osr.com