Microsoft KB Archive/105565

From BetaArchive Wiki

WD: GP Fault Printing Document with Many Fonts



The information in this article applies to:


  • Microsoft Word for Windows, versions 2.0, 2.0a, 2.0a-CD, 2.0b, 2.0c, 6.0, 6.0a, 6.0c





SYMPTOMS

If you print a Word for Windows document that contains a large number of downloadable fonts, a general protection (GP) fault error may occur.



CAUSE

You are using the Windows Universal Printer Driver (UNIDRV.DLL) version 3.1.2 or earlier and your Word document contains more than 64 downloadable fonts, such as TrueType fonts. The problem also occurs when you print using the Windows PostScript printer driver (PSCRIPT.DRV) version 3.56 or earlier and your document contains more than 256 downloadable fonts.



RESOLUTION

Corrected printer drivers are supplied with Word 6.0. Setup does not automatically install these drivers. To assure that the new drivers are correctly installed, rename the existing UNIDRV.DLL prior to installing Word 6.0.

If you do not have Word 6.0, you can obtain these new printer drivers from the Windows Driver Library (WDL). For additional information, please see the following article in the Microsoft Knowledge Base:

Q82006 Windows Driver Library Information

To temporarily work around this problem, follow these steps:


  • To avoid the GP fault errors using the problem printer drivers, decrease the number of fonts in your document.


-or-

  • If your document contains mostly TrueType fonts, turn on the "Print TrueType as Graphics" option. This reduces the number of downloadable fonts. The drawback to this workaround is that it increases printing time.



STATUS

Microsoft has confirmed this to be a problem in UNIDRV.DLL version 3.1.2 and earlier and in PSCRIPT.DRV version 3.56 and earlier. This problem was corrected in version 3.1.3 of UNIDRV.DLL and in version 3.57 of PSCRIPT.DRV.



MORE INFORMATION

In both UNIDRV.DLL and PSCRIPT.DRV, the GP fault error occurs when the printer driver copies conflicting font cache information during the ResetDC() call. Specifically, the driver fails to copy the value of the sMaxDLSlots variable, so it incorrectly resets the sMaxDLSlots variable to the default value (32 for UNIDRV.DLL and 128 for PSCRIPT.DRV). This default value does not cause a problem until your document contains more than 64 fonts (256 fonts for PSCRIPT.DRV).

Note: The sMaxDLSlots variable indicates the total number of entries (used or empty) in the font downloading list.

Additional query words: win3x globalalloc snumdownfonts lpdownfontlist hdownfontlist gpf hang hung crash crashed locks locked frozen freezes crashing quit quits stopped

Keywords : kbprint
Version : WINDOWS:2.0,2.0a,2.0a-CD,2.0b,2.0c,6.0,6.0a,6.0c
Platform : WINDOWS
Issue type :
Technology :


Last Reviewed: October 1, 1999
© 2000 Microsoft Corporation. All rights reserved. Terms of Use.