Windows ME Device Driver Problem- Microsoft Guys Please Take Note

Hi All,

I develop a 16-bit Image Printer Driver(monolithic design) for Windows 95/98
and a 32 bit driver for Windows NT/2000. The driver takes print output from
any windows application and converts and saves it as a raster image. My
problem arises when I have to make this driver work for Windows ME. I have
used my 16-bit Image Printer and installed it in Windows ME. The driver does
work but it crashes quite frequently after printing from say 10-15
documents. I have tested this using Office 97, Office XP and Office 2000. So
what I can conclude is that the problem is because of some changes made in
driver handling in Windows ME. If somebody from Microsoft can brief as to
what changes have been made in Windows ME ( especially advert to the support
of monolithic 16-bit drivers that ran in 95/98) then it would be most
beneficial. Another thing interesting to note is that in the error log that
I generate in my code there is a function EnumDFonts on which the driver
almost always crashes. The crash is also such that the particular documents
printing completes (I.e. the image gets generated) and then the system
hangs.Even the crash logs reflect this consistency that a DEL_OBJ_FONT
message is received in RealizeObject , then EnumDFonts is called and then
the drivers Disable function is called and then the crash. Now in my code
DEL_OBJ_FONT is received we do nothing (also nothing is done when I receive
CREATE_OBJ_FONT) and we simply return 0x8000 and in the function EnumDFonts
I have tried almost all combinations (logical and illogical) such as making
it a stub function returning simply zero, returning by the brute functions
(dmEnumDFont…) but still the problem persists. I have also tested that
there are no GDI resource leaks by using a Leaks tool.

I read on a site that the Windows ME has provided support for Windows Driver
Model allowing even NT Driver to run on Windows ME. Now is there any article
or guide for setting up ones existing NT/2000 driver on Windows ME? My
current NT Image Printer Driver has three Key dlls the Kernel Mode, User
Mode and User Interface and in my setup I copy these to
D:\WINNT\system32\spool\drivers\w32x86\2 now I dont know what all things do
I need to do to make my Image Printer driver to run in Windows ME.If any one
from Microsoft can tell something about this.

Abhishek Gattani