1. Our own printer driver which is developed by using WDK (Windows Driver Kits 7.1.0), is known as monolithic driver.
2. 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).
3. 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.
4. Above problem does not occur with Uni-driver (Mini Dirver) which is also developed by using WDK 7.1.0