打印机后台程序没有运行(print spooler启动不了)

  • 时间:
  • 浏览:110
  • 来源:奥一装修网

打印机程序服务不运行

1。Windows Printing Architecture首先附加一个链接,以查找与Windows打印有关的内容,该类别包含Windows打印的所有方面:https://msdn。microsoft。com/zh-cn/library/windows/hardware/ff(v = vs。85)。aspx如上图所示,Windows的打印体系结构由一个打印机后台处理程序和一系列打印驱动程序组成。带箱子的零件可以书写和安装。打印驱动程序是指Microsoft的统一驱动程序,它是系统的默认驱动程序,而迷你驱动程序则基于此驱动程序进行自定义。迷你驱动程序包括一个GPD文件和一个资源DLL。 GPD文件是一个脚本,它定义了哪些设置将出现在“打印机首选项”中以及可用的选项。资源DLL是仅包含Resource的DLL,并提供给GPD以便在其中使用。资源。在后台打印过程中,打印处理器(即打印机驱动程序)负责SPL文件操作,EMF / RAW文件操作等; Render-Plugin可以对渲染过程执行特殊处理; UI-Plugin位于“打印机”中,在“首选项”中定义了特殊的设置页面。“打印后台处理”中描述了语言监视器以及端口监视器和网络打印提供程序。1。1,打印机后台处理程序(Spooler)

print spooler启动不了

1。1。1,打印的概念spool Windows后台打印程序是Windows后台打印程序Print Spooler(Spoolsv。exe)。什么是打印后台处理程序?顾名思义,我们只需要了解“后台打印程序”的概念,基本上就可以了解什么是后台打印程序。在几乎所有的操作系​​统中,外部设备都有两种与系统交互的模式:在线模式和离线模式,所谓的在线模式是指系统完全按照外部设备的执行顺序执行设备操作。此外,外部设备通常是抢占式设备,当一个进程需要使用外部设备时,它通常等待其他进程使用它才能使用它。如果当前正在使用设备,则进程只能等待调用者完成呼叫以获取设备使用权,因此联机模式的最大缺点是无法在进程之间同时使用设备。离线模式与在线模式完全相反。在离线模式下提出的概念是缓冲器的概念。例如,在离线模式下,当进程需要将数据输出到外部设备时,数据首先输出到缓冲区。然后,外部设备从缓冲区获取需要输出的数据。这是避免在线模式下进程之间并发问题的好方法。但是,还突出显示了离线模式的一大缺点:当数据输出到缓冲区时,设备不会立即输出数据,而是等待缓冲区已满或进程需要输出设备输出。设备可以启动并将数据输出到设备进行处理。这样做会降低设备的处理能力,并且频繁启动设备很容易导致设备损坏。顾名思义,假脱机系统并不是真正的脱机模式,而是伪造的脱机模式。真正的意思是在在线模式下获得离线效果。假脱机的最终目标是继承在线和离线的所有优势,同时避免在线和离线的所有劣势。因此打印机是一种相对特殊的硬件。它不仅与机箱内部的硬件(例如图形卡)不同,而且还与鼠标和键盘等外围设备不同。鼠标,键盘和显示器都是瞬时的,例如,一旦操作系统立即处理并反映在显示器上,就移动鼠标。但是打印机不是。打印文档的速度可能只有几秒钟,而速度可能只有几十分钟。操作系统无法等到打印机完成处理后再返回。因此,操作系统提供了一个称为后台处理程序的服务来管理各种打印机的任务。后台打印程序的服务提供的此服务也称为打印池。无论其名称如何,其技术都是在操作系统领域中定义的:假脱机技术是一种模拟脱机模式以控制I / O设备在多程序环境中进行输入和输出的技术。假脱机技术的最终目的是使用系统软件方法将只能由一个用户使用的设备转换为由多个用户和多个进程共享的设备。这种方法不仅使进程可以随时调用设备,而且还提高了设备​​利用率。因为只有在缓冲区中没有任务时设备才会进入睡眠状态,延长设备寿命。因此,这里我们总结了后台打印程序的作用。后台打印程序由一系列Microsoft提供的和可选的呈现组件组成。它们的功能包括:1。检测打印作业是本地打印还是在网络上打印。 2。接受GDI和打印驱动程序为特定类型的打印机提供的数据流。 3。将图形数据缓冲到文件中。 4。从逻辑打印队列中选择第一台有效的物理打印机。 5。将缓冲的数据流(例如EMF)转换为打印机硬件(例如PCL)可以识别的格式。 6。将打印数据流发送到打印机硬件。 7。维护基于注册表的数据库,以获取与后台处理程序和打印机有关的信息。稍后我们将讨论该数据库。 1。1。2,后台打印程序的体系结构

联想电脑开机一直高级选项

关于后台打印程序的体系结构,我们不得不提到Windows的通用图形界面,否则我们将无法继续介绍后台打印程序的体系结构。对于当前的主流Windows操作系统,有两个统一的图形界面:GDI和XPS。 GDI是Windows 95(包括最新的Windows 10)以来一直受支持的通用图形界面。XPS是Microsoft从Windows Vista开发的另一个通用图形界面。其目的是取代旧的GDI。但是,以替换GDI为任务的XPS多年后仍未完成此任务,这导致GDI和XPS的状态在今天的Windows中共存并相互兼容。稍后,我们将详细解释GDI的体系结构和XPS的体系结构。这里的重点主要是帮助我们了解打印后台处理程序的体系结构。因为GDI和XPS共存并彼此兼容,所以在Windwos的现有模式下,Windows后台打印程序有两种体系结构:基于GDI的后台打印程序(Spooler)体系结构和基于XPS的后台打印程序。脱机(后台处理程序)体系结构。让我们首先看一下基于GDI的打印后台处理程序的体系结构。应用程序通过调用GDI函数创建打印任务,并通过调用Winspool。drv提供的API接口将打印内容路由到PrintProvider。 PrintProvider负责管理本地打印和远程打印。同时,它应该管理打印任务堆中打印队列的开始,停止和枚举。这些组件描述如下:应用程序打印应用程序通过调用GDI函数来创建打印作业。 GDIGDI是“图形设备接口”的缩写,表示图形驱动程序接口。它是Microsoft设计的一组API。它是图形用户界面GUI系统的重要组成部分:它为Win32应用程序提供了与设备无关的图形编程界面,其中包括:视频显示器,打印机,绘图仪和传真机。图形设备接口(GDI)包括用户模式和内核模式组件。 Microsoft将在用户模式下工作的GDI称为Win32 GDIAPI,将在内核模式下工作的GDI称为GDI图形引擎。在Windows操作系统下,大多数具有GUI(图形用户界面)的应用程序无法与GDI分开。使用GDI提供的许多功能,您可以轻松地在屏幕,打印机和其他输出设备上输出图形,文本等。 GDI的出现使程序员能够将应用程序的输出转换为硬件设备的输出,而无需关心硬件设备和设备驱动程序,从而实现了程序开发人员与硬件设备之间的隔离,从而极大地简化了开发工作。 WINSPOOL。DRV Windows打印客户端(winspool。drv)将打印的AP1公开给用户应用程序。用户应用程序使用打印API来查询打印机,打印任务,更改打印机设置,查询打印机设置以及加载打印机驱动程序用户界面DLL。要显示打印机特定的设置属性页并执行其他操作。 Windows打印客户端(winspool。drv)帮助GDI决定应如何处理打印作业。对于一般的打印任务,GDI生成一个EMF文件并将其发送到打印池客户端。SPOOLSV。EXEspoolsv。exe是后台处理程序的API服务器。 spoolsv。exe打印服务将RPC(远程过程调用)接口导出到打印客户端DLL。用户应用程序可以使用Windows打印客户端(winspool。drv)来管理打印机,打印机驱动程序和打印任务。 spoolsv。exe打印服务本身是一个小的EXE文件(Spoolsv。exe)。它通过打印路由将大多数呼叫发送到打印机提供商。操作系统启动时,将启动Spoolsv。exe打印服务。该模块在后台处理程序的Win32 API中将RPC接口输出到服务器端。 Spoolsv。exe中的客户包括WINSPOOL。DRV(本地)和Win32spl。dll(远程)。该模块实现了一些API函数,但是大多数函数调用是由要打印的路由设备(SPOOLSS。DLL)提供的。顾名思义,打印路由打印路由SPOOLSS。DLL确定打印提供程序在哪里以及在哪里!我们使用的打印机可以是本地打印机或网络上的网络打印机。 Spoolsv。exe打印系统服务使用打印路由(spoolss。dlI)将打印作业提交给打印机提供程序,并且打印机提供程序知道将打印作业发送到哪里。打印路由(spoolsss。dlI)的任务非常简单:找到正确的打印机提供程序并将信息发送过来。它使用系统注册表中与打印机相关的设置,通过使用打印任务附带的打印机名称或打印机句柄信息来完成此任务。打印提供程序(打印提供程序)打印提供程序负责将打印任务分发到本地或远程计算机。它还管理打印任务队列操作,例如开始,停止和任务枚举。与打印服务流程和打印路由不同,系统中可以有许多打印提供程序。 Windows操作系统本身具有多个内置的打印提供程序:本地打印机提供程序(localspl。dll)。处理本地打印作业或由远程客户端发送到本地计算机的打印作业。每个打印作业最终都由本地打印机提供商处理,网络打印机提供程序(win32spl。dll)。将打印作业发送到远程网络打印服务器。 HTTP打印机提供程序(inetpp。dll)。将打印作业发送到URL地址以通过HTTP打印。其中,硬件打印机的制造商(例如HP)可以使用Windows NT DDK编写自己的打印机提供程序。在上面的打印提供程序中,打印处理器【打印驱动程序】有一个新名称:打印处理器!打印处理器专门负责将打印作业的打印文件转换为打印机可以识别的原始数据格式。在这里,我们需要扩展另一个主题:打印机控制语言或打印机指令集。就像计算机的硬盘一样,应用程序需要在硬盘上读取和写入数据,并将其请求发送到操作系统。操作系统会将其转发到硬盘的SCSI控制器。数据被转换为硬盘可以理解的SCSI语言或SCSI命令,然后发送到硬盘以执行。类似地,此处的打印处理器与硬盘SCSI控制器类似。区别在于,硬盘的SCSI控制器是驱动程序加上硬件芯片,即软件和硬件的组合,并且打印机的打印处理器由Windows的驱动程序完成。这是纯软件操作,因此以纯Windows EMF格式进行光栅打印将占用大量系统资源。在打印机市场上,使用最广泛的打印机指令是:ESC,PCL,PostScdpt指令。 PCL和PostScdpt指令也称为页面描述语言(PDL,PageDescriptional语言),而ESC指令也称为嵌入式语言。这只是分类打印机语言的一种方法。这些是打印机的原始说明。大多数原始指令来自标准打印数据“ EMF”的转换,但是PCL6标准指令和PostScript指令无法通过转换标准打印数据获得,而是直接由打印驱动程序生成的。因此,PCL6指令“打印”和“ PostScript”指令不需要转换指令,而是直接将指令发送到打印设备,驱动程序的打印处理器不会转换它打印的数据,而是将其直接发送到打印机,并且打印机设备本身会解析数据并进行打印。显然这两种打印机语言具有更高的打印效率。我们稍后将返回这些打印机语言。打印监视器Windows支持两种类型的打印监视器:语言监视器和端口监视器。在上述Windows体系结构中,我们可以看到打印后台处理程序还包含一些打印监视器。打印监视器负责将原始打印数据从打印服务定向到正确的端口驱动程序。语言监视器,此处的语言是指打印机固件可以理解的各种打印机任务语言,例如PCL。语言监视器的主要目的是通过一条双向通信电缆在打印服务过程和打印机之间提供全双工通信通道。计算机到打印机的数据通道主要用于将打印数据发送到打印机,而打印机到计算机的返回通道用于提供反馈信息。语言监视器的第二个目的是将控制命令插入打印机数据流。端口监视器提供了打印服务进程和内核模式端口驱动程序之间的通信路径,该内核路径端口驱动程序直接访问打印机链接的硬件的I / O端口。端口监视器不能直接在硬件上操作。它使用通用文件API与内核中的驱动程序进行通信。端口监视器还负责管理逻辑打印机端口,例如本地计算机的所有COM和LPT端口。上面大致说明了基于GDI的打印后台处理程序的主要组成结构。基于XPS的打印后台处理程序的结构是什么?实际上,对于XPS打印线轴,与GDI的唯一区别是GDI图形界面被XPS图形界面代替。在Windows中,由程序员开发的图形应用程序是使用GDI的图形界面或WPF开发框架开发的。 WPF(Windows Presentation Foundation)是Windows Vista中引入的新的用户界面开发框架。它可以提供更加华丽的用户界面。 WPF应用程序仅支持基于XPS的打印界面。那是,大多数新开发的应用程序都是基于WPF开发的,它们也称为XPS接口。因此,对于GDI或XPS,是GDI应用程序调用GDI打印界面,而XPS应用程序调用XPS打印界面。同时,两者是兼容且可互换的。 请参阅“ http://www。mamicode。com/info-detail-。html”