- Our own printer driver which is developed by using WDK (Windows Driver Kits 7.1.0), is known as monolithic driver.
- In addition, I wrote sample application calls EnumFontFamiliesEx() in order to confirm whether the sample application can obtain our own driver’s device fonts information both on Windows 32-bit and 64-bit?
- On Windows 32-bits, sample application can obtain the information of our own printer driver driver’s device fonts successfully by using EnumFontFamiliesEx() (as expected)
- On Windows 64-bits, sample application cannot obtain the information of our own printer driver driver’s device fonts successfully by using EnumFontFamiliesEx(). (against expected).
- Our Monolithic printer dirver uses DrvQueryFont(),DrvQueryFontTree() function which is called by GDI to get IFIMETRICS structure for a given font. However, we found the difference between Windows 64-bits and 32-bits when reproducing problem.
- On Windows 32-bits, DrvQueryFont() is called 140 times and DrvQueryFontTree() is called 140 times
- On Windows 64-bits, DrvQueryFont() is called just 1 time, but DrvQueryFontTree() is not called.
- Above problem does not occur with Uni-driver (Mini Dirver) which is also developed by using WDK 7.1.0