Microsoft KB Archive/241171

From BetaArchive Wiki

BUG: UMPD Doesn't Work on Windows NT Terminal Server 4.0 Client

Q241171



The information in this article applies to:


  • Microsoft Windows NT Server version 4.0
  • Microsoft Windows NT Workstation version 4.0
  • Microsoft Windows NT 4.0 Driver Development Kit (DDK)





SYMPTOMS

In Microsoft Windows NT 4.0 the User Mode Printer Driver (UMPD) is hooked in the Spoolsv.exe. It intercepts the printer data streams and uses Spoolss.dll directly to print the data.



CAUSE

The Terminal Server remote session maps the Win32k.sys and printer device driver into its own SESSION space. The threads that run inside of the spool subsystem can only read the requests from printer drivers running on the console. To solve this problem, the spooler code is duplicated and placed inside Winsrv.dll (in Windows 2000). The Umpd.dll hook functions are handled in the Terminal Server spooler which interfaces to the Winspool.drv. The problem was that the Umpd.dll that is expected to use Spoolss.dll printer calls was given a Winspool.drv handle from the Terminal Server Spooler.

The hotfix includes new hooks for the UMPD which eliminate the above problem.



RESOLUTION

Obtain the hotfix #3749 for Winsrv.dll. This has been merged in Service Pack 5 for Terminal Server Edition 4.0.



STATUS

Microsoft has confirmed this to be a bug in the Microsoft products listed at the beginning of this article.



MORE INFORMATION

Steps to Reproduce Behavior

  1. Build the User Mode Printer Driver (Umpd.dll) sample from the Microsoft Windows NT 4.0 DDK.
  2. Under an administrative account install a printer driver through the Add Printer wizard, from the Terminal Server console.
  3. Move the Umpd.dll driver into the %system32\spool\drivers\w32x86\2 directory.
  4. From regedit, add the following registry key value to register the UMPD.


HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Print\Printers\ABC Printer\PrinterDriverData - SPLUserModePrinterDriver = "umpd.dll"

  1. Print to a file using the printer you already installed through any application from a Terminal Server client.
  2. Observe the failure to print.

Additional query words: Windows NT Terminal Server 4.0, UMPD (User mode Printer driver).

Keywords : kbDDK kbPrinting _IK kbGrpDSNTDDK
Issue type : kbbug
Technology : kbWinNTsearch kbWinNTWsearch kbWinNTW400 kbWinNTW400search kbWinNT400xsearch kbWinNTSsearch kbWinNTS400xsearch kbWinNTS400 kbAudDeveloper kbWinDDKSearch kbWinNT400DDK


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