Notice: This website is an unofficial Microsoft Knowledge Base (hereinafter KB) archive and is intended to provide a reliable access to deleted content from Microsoft KB. All KB articles are owned by Microsoft Corporation. Read full disclaimer for more details.

FIX: Parallel printing to Graphics Device Interface (GDI) may cause corrupted output or you may receive an error message


View products that this article applies to.

Symptoms

Under stress on a multiple-CPU system, parallel printing to Graphics Device Interface (GDI) can cause output to be either corrupted or can cause GDI to generate an error message with an event ID 9 in the application event logs with information that is similar to the following:

The GDI routine ExtTextOut has returned an error to the SNA Virtual Print Driver.
Error returned: 0
Print session: PRT03.
Device context: 52495112.
Job name: SNA Print Job on session PRT03
Output file name (if re-directed to file):

↑ Back to the top


Resolution

Service pack information

To resolve this problem, obtain the latest service pack for Microsoft Host Integration Server 2000. For more information, click the following article number to view the article in the Microsoft Knowledge Base:
328152� How to obtain the latest service pack for Host Integration Server 2000

Hotfix information

The English version of this hotfix has the file attributes (or later file attributes) that are listed in the following table. The dates and times for these files are listed in Coordinated Universal Time (UTC). When you view the file information, it is converted to local time. To find the difference between UTC and local time, use the Time Zone tab in the Date and Time tool in Control Panel.
   Date         Time   Version    Size     File name
   ----------------------------------------------------
   21-Apr-2004  22:17  5.0.0.976   20,752  Msg5250.dll
   21-Apr-2004  22:17  5.0.0.976  250,128  Ppd3270.dll
   21-Apr-2004  22:17  5.0.0.976  139,536  Ppd5250.dll
   21-Apr-2004  22:17  5.0.0.976   49,424  Prmngext.dll
   21-Apr-2004  22:16  5.0.0.976  209,168  Snacfg.dll
   21-Apr-2004  22:17  5.0.0.976   24,848  Snaxlt.dll
   21-Apr-2004  22:17  5.0.0.976  282,896  Winvprt.dll
   21-Apr-2004  22:17  5.0.0.976   57,616  Pdfcomp.exe
   21-Apr-2004  22:17  5.0.0.976   94,480  Snaprint.exe

Note Because of file dependencies, the most recent hotfix that contains these files may also contain additional files.

↑ Back to the top


Status

Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.

This problem was corrected in Microsoft Host Integration Server 2000 Service Pack 2.

↑ Back to the top


More information

This problem occurs because the GDI library is not thread-safe and cannot handle calls from different threads for the same print job. The Snaprint service uses I/O completion port thread pooling to minimize thread usage and to be able to print to 500 printers at the same time. When I/O completion ports are used, thread switching occurs and GDI fails. To correct this problem, the hotfix modifies the Snaprint service to now call the GdiSetBatchLimit function with the dwLimit parameter set to 1 at the start of each thread in the print server to prevent data from being cached.

↑ Back to the top


Keywords: KB840636, kbhotfixserver, kbqfe, kbhostintegserv2000sp2fix, kbfix, kbbug

↑ Back to the top

Article Info
Article ID : 840636
Revision : 3
Created on : 6/5/2006
Published on : 6/5/2006
Exists online : False
Views : 375