www.hj8828.com 2

【www.hj8828.com】Windows打印体系结构之Print Spooler概念与架构

Microsoft Windows 3000 引进了二个簇新的 Microsoft Windows NT
操作系统版本。与Windows NT 的以前版本对照,Windows 两千在无数地点都开展了尤为重要改造,打字与印刷子系统只是里面包车型大巴三个方面。即便那几个改动所带来的补益在操作系统的一往无前和可信性方面取得了求证,但依然付出了迟早的代价。在升高和迁移到
Windows 3000 或 Windows Server 二〇〇一 之时,公司平日发掘本身处在二个掺杂了
Windows NT 4.0 以及 Windows 3000、Windows XP 或 Windows Server 2001种类操作系统的情况中。

1、Windows打字与印刷种类布局

动用本地和长距离顾客端和服务器)驱动程序成效和设置生成打印作业的互联网打字与印刷更扩张了互操作性方面包车型大巴繁杂。由于那一个缘故,包含Windows NT 4.0 以及 Windows 3000、Windows XP 或 Windows Server 二〇〇一种类操作系统的条件中的互连网打字与印刷会给各家市肆带来一些难点。

首先附上查找Windows打字与印刷相关内容的链接,那个分类下富含了Windows打字与印刷的所有的事:
https://msdn.microsoft.com/en-us/library/windows/hardware/ff551767(v=vs.85).aspx.aspx)

在普通办公应用中,打印机已经实现成为集团不可或缺的办公工具设备,在相当多时候完全离不开打字与印刷设备的运用。在动用打字与印刷机设备时,安装调节和测量试验也是必备的经过,举个例子说刚购入的新设施亟需安装,当然有繁多客户是因为计算机重新安装了操作系统,因而要求重新连接打字与印刷机USB数据线举行驱动装置调节和测量检验。在延续打字与印刷机USB数据线进行驱动装置进度中,比相当多客商时时会遇见各个主题素材,下边作者针对设置通过
USB 连接线连接至 Windows 计算机的 HP
打字与印刷机,须求小心什么能力,分享给大家。 假若还会有部分客户一旦要求从 USB
连接的打字与印刷机上获得最大限度的支撑功能,那么请客商设置HP全功用驱动程序就可以。

本文目的在于援助解释存在于网络打字与印刷景况中的进度及条件标准,非常当那么些条件与
Windows NT
操作系统的搅拌版本相关时。别的,还商量了可用于拍卖这个题指标各类艺术。

如上海体育场所所示,Windows的打字与印刷类别布局是由三个打印机假脱机程序(Spooler)和一三种的打字与印刷驱动组成。个中带方框的一对都是足以编写制虞升卿装的。当中的打字与印刷驱动程序是指微软的集结驱动,也正是系统默许的驱动,而精致驱动正是在此基础上进展性情化定制。
娇小驱动包罗GPD文件和财富DLL,GPD文件就是二个本子,定义了“打字与印刷机首要推荐项”大校出现那多少个设置,有怎么样选项可选,财富DLL就是多少个单纯包蕴Resource的DLL,提须求GPD使用个中的能源。
而在打字与印刷假脱机中:
打字与印刷管理器(相当于打字与印刷机驱动程序)担任SPL文件操作 EMF/RAW文件操作等;
Render-Plugin则可以对渲染绘制进程进展特其余管理;
UI-Plugin 正是在“打字与印刷机首选项”中定义一些破例的装置页面。
言语监视器以及端口监视器和网络打字与印刷提供者大家在打印假脱机中展开介绍。
1.1、打字与印刷机假脱机程序(Spooler)

www.hj8828.com 1

一部分由混合了 Windows NT 4.0 及创新的 Windows
版本的情况所引起的互操作性难点扎根于对打字与印刷机驱动程序结构模型所做的更改。本文深入分析了从基础格局到客商方式进度空间的动员搬迁,以及
Microsoft
通用打字与印刷机驱动程序的提高。唯有当驱动程序形式爆发互操作性难题时,才会波及与打字与印刷机硬件的设备局限性相关的任何主题材料。本文还查究了器具字体支持什么影响处在
Windows NT 4.0 进级过渡期的客商。

1.1.1、打字与印刷假脱机的定义

手续1: 希图打字与印刷机设置查看供给并删除 Windows
计算机在此以前全部已设置的打印机版本,然后准备 USB 连接装置和驱动程序安装。

请在乎有关那方面包车型地铁论述牢牢围绕各厂商因升级数万台湾游客商端以动员搬迁到 Windows
两千或更新版本所推动的挑衅而要面临的过渡期,那点很重视。混合或旧式客商端没办法完全得到Windows 2000及立异版本的打字与印刷立异功效所推动的益处。本文要是客商的目的是为了获得多个持有客商端和服务器都运营Windows 两千 或更新版本的互连网打字与印刷境况。

打字与印刷假脱机程序在Windows系统中驷不比舌呈现正是Windows后台打字与印刷程序Print
Spooler
(Spoolsv.exe)。那么怎么样是打字与印刷假脱机程序(Spooler)呢?从名称想到所包蕴的意义,大家只须求精通“假脱机”的概念,基本上就知道了什么样是打字与印刷假脱机程序(Spooler)。
在差非常少具备的操作系统中,外界设备与系统相互都留存三种格局:联机格局和脱机方式。
所谓联机方式是指系统完全按照外界设备的进行顺序施行设备操作,再者外界设备往往都以抢占式设备,当贰个历程须要使用外界设备时每每要等其余进程使用落成才得以开展利用。举个例子:联机情势下当进程有输入/输出需要时就不得不在输入/输出设备空闲时本领动用设备,倘使当前该设备正在被占用,则该进度就不得不等待调用者调用结束才具获得器械使用权,所以联机情势最大的劣点正是进程之间不能够”并发”地采纳设备。
而脱机形式正好与一块方式相反,脱机形式中建议几个概念正是缓冲区的定义,比方:在脱机格局下,当进度须求输出数据到外界设备时,首先将数据输出到缓冲区内,然后外界设备再从缓冲区赢得供给输出的多少。那样做很好遥免了一块情势下进程间不可能出现的主题素材。不过脱机方式比十分大的贰个缺欠也彰显出来,那正是当有数据输出到缓冲区内时,设备并不是当时对数据实行输出管理,而是等待缓冲区满可能经过须要输出设备输出的时候,设备技术开发银行并将数据输出至设备举行拍卖。那样做会回退设备管理手艺,並且再三的开发银行设备很轻易形成设备损坏。
假脱机系统,看名称就会想到其意义不是的确脱机,它是假的脱机格局。它的实际意思是在一道的情势下得到脱机效果。假脱机的最后目的是沿用联机和脱机的富有优点同一时间幸免联机和脱机的具有劣势。所以打字与印刷机是一个相对来说比较特别的硬件。不但差别于显卡这种机箱内的硬件,也分歧于鼠标键盘等外设。鼠标键盘显示器等都以即时反应的,举个例子移动一下鼠标操作系统都会应声管理并影响在显示器上。但打字与印刷机不是,打字与印刷一个文书档案快则几秒,慢则有数十秒钟。操作系统不容许直接等到打字与印刷机管理终结再开展重临。所以,操作系统提供了一个叫Spooler的劳务来对各类打字与印刷机的任务拓宽田间管理。Spooler的服务所提供的那一个服务有人也将其名叫打字与印刷池。不管称呼什么,其本事在操作系统领域中给它的概念是:Spooling技巧是一种在多道程序情状下模拟脱机格局控制I/O设备开展输入输出的才能。Spooling本领的末尾目标是通过系统软件的办法把只好让一个客户独占的设施成为多客商多进程分享的设备,这种做法不仅仅可实现进度能够每16日调用设备也足以抓实设备的利用率。因为独有当缓冲区没有职责的时候设备才会进来休眠状态,相同的时候还减少了对器材进行休眠和提示的操作功效,延长了设施寿命。
据此在此处大家总括一下打字与印刷假脱机程序(Spooler)的成效。
打字与印刷假脱机程序由一密密麻麻的微软提供的和可选的渲染组件组成,他们的机能包蕴:
1、检查实验打印任务是在地面打字与印刷照旧网络打字与印刷。
2、接受GDI和打字与印刷驱动为一定类型的打字与印刷机所提供的数据流。
3、缓冲绘制数据到文件中。
4、从逻辑打字与印刷队列中选出第二个有效的概略打字与印刷机。
5、 将缓冲的数据流(如EMF)转变来能被打印机硬件所识别的格式(如PCL)。
6、发送打字与印刷数据流到打字与印刷机硬件中。
7、为假脱机组件和打字与印刷机的连锁音信保险三个基于注册表的数据库,这么些数据库的我们在前面会讲到。

在起来之前,请确认以下要求和事项︰

Windows 三千 和 Windows Server 2004 打字与印刷系列布局

1.1.2、打字与印刷假脱机的架构

规定打字与印刷机已开机并处在就绪状态。

认知 Windows 打字与印刷子系统对于分明因存在富含 Windows NT、Windows 3000 或
Windows Server 二零零一体系操作系统的插花遇到而吸引的互操作性难点很有帮带。Windows 两千及
Windows
的翻新版本)的打字与印刷种类布局由二个后台打字与印刷程序和一组打字与印刷机驱动程序组成。通过调用与装备毫不相关的
Win32 打字与印刷和图纸设备接口 GDI)
函数,应用程序能够创立打字与印刷作业应际而生送给种种设备,包含激光打字与印刷机、矢量绘图仪、光栅打字与印刷机和传真机。打字与印刷机驱动程序富含一个同意客户调节打字与印刷机的可选拔的顾客接口
UI) 组件。

合计打字与印刷假脱机(Spooler)的架构,我们就不得不提一下Windows的通用图形接口,不然没办法继续介绍打字与印刷假脱机(Spooler)的架构。
对于当今的主流Windows操作系统,存在着七个联合的图样接口:GDI和XPS。GDI是从Windows
95早先就直接帮忙的通用图形接口,满含新型的Windows 10。而XPS是从Windows
Vista初阶,微软成本的另三个通用图形接口,其目标是为了替换已经老旧的GDI。但担当着替代GDI职责的XPS过了多年还是没达到规定的标准这一职责,也就形成了前天Windows系统里面GDI和XPS共存并相互相称的情事。大家会在末端详细批注GDI的架构以及XPS的框架结构。在这里点出首即便惠及援助大家清楚打字与印刷假脱机(Spooler)的架构。
因为GDI和XPS共存且互相相配,所以在Windwos的共处形式下,Windows打字与印刷假脱机(Spooler)的架构有二种:基于GDI的打印假脱机(Spooler)的架构和依照XPS的打字与印刷假脱机(Spooler)的架构。
咱俩先是来看基于GDI的打字与印刷假脱机(Spooler)的架构。
GDI的打字与印刷假脱机(Spooler)重要构成结构如下图所示:【https://msdn.microsoft.com/en-us/library/windows/hardware/ff551781(v=vs.85).aspx.aspx)】

USB 连接线的长短不超越 3 米(9 英尺 10 英寸)。

应用程序对 Win32 GDI 函数的调用会传递给 GDI
图形引擎,由该引擎将绘图指令作为巩固型图元文件 EMF)
实行后台管理,或然同打字与印刷机驱动程序一齐提供可发送给后台打字与印刷程序的可打字与印刷的图像。后台打字与印刷程序组件会深入分析EMF
文件,并能在数额流中插入页面布局音信和作业调整指令。后台打字与印刷程序随后会将数据流发送给目的打字与印刷机的
I/O
端口相关联的串行、并行或互连网端口驱动程序。设备会深入分析作业针对设备以打字与印刷机描述语言
PDL) 进行了格式化),并出口打字与印刷好的文书档案。

动用通过调用GDI函数来创立打字与印刷职分,通过调用Winspool.drv提供的API接口,将打字与印刷内容路由到PrintProvider中。PrintProvider负担管理本地打字与印刷和长距离打字与印刷,同有的时候候要管理打字与印刷职责堆里的运营、截至和枚举打字与印刷队列。
下边分别介绍这一个组件:
应用
打字与印刷应用程序通过调用GDI函数创制二个打字与印刷作业。
GDI
GDI是Graphics Device
Interface的缩写,含义是图表驱动程序接口,是Microsoft设计的一套API,是图形客户分界面GUI系统的二个首要组成都部队分:为
Win32应用程序提供与器械非亲非故的图片编程界面,包含:录制显示、打字与印刷机、画图仪和传真机。图形设备接口(GDI)包罗客商形式和根本情势组件。微软把职业于顾客情势的
GDI 称为 Win32 GDIAPI,职业于内核情势的GDI称为GDI 图形引擎。
在 Windows 操作系统下,绝大多数存有GUI(Graphics User
Interface)的应用程序都离不开GDI。利用GDI所提供的不在少数函数能够方便地在荧屏、打印机及别的输出设备上输出图形、文本等。GDI的产出使程序猿无需关怀硬件设施及设施驱动就足以将应用程序的出口转速为硬件设备上的输出,完成了程序开采者与硬件装置的隔开,大大便利了成本职业。
WINSPOOL.DRV
Windows的打字与印刷客商端 (winspool.drv)把打字与印刷的APl暴光给顾客应用程序,
客商应用程序用打字与印刷API来查询打字与印刷机、打印职分、改动打字与印刷机设置、查询打字与印刷机设置、加载打印机驱动程序客商分界面DLL来突显打字与印刷机械和工具体设置属性页和做一些任何的专门的工作。Windows的打字与印刷客户端
(winspool.drv)帮忙GDI决定打字与印刷义务应该怎么着管理。对于日常的打印职分,GDI生成EMF文件并把它送到打印池客户,然后打字与印刷客商用长途进度调用把打字与印刷职务发送给打字与印刷系统服务进程spoolsv.exe。
SPOOLSV.EXE
spoolsv.exe是后台打字与印刷程序的API服务器。spoolsv.exe打字与印刷服务向打字与印刷客商DLL导出RPC
(远程进程调用)接口,客商应用程序能够用Windows的打字与印刷顾客端
(winspool.drv)管理打字与印刷机、打字与印刷机驱动程序和打字与印刷职分。spoolsv.exe打字与印刷服务自己是一个小的EXE文件(Spoolsv.exe)。它经过打字与印刷路由把大多数调用送到打字与印刷机提供者。
Spoolsv.exe打字与印刷服务随着操作系统运营而运维。该模块输出八个RPC接口到后台管理程序的Win32
API中的服务器端。Spoolsv.exe中的客商包含WINSPOOL.D福特ExplorerV(本地)和Win32spl.dll(远程)。该模块完结部分API函数,但大大多成效的调用由所述路由(SPOOLSS.DLL)的安装传递到打印提供着。
打字与印刷路由
打字与印刷路由SPOOLSS.DLL,看名称就会想到其意义就是明确打字与印刷提供者在何地以及这么到它哪个地方!大家运用的打字与印刷机有望是本土打字与印刷机,也说不定是在互联网中的网络打字与印刷机。Spoolsv.exe打字与印刷系统服务应用打字与印刷路由(spoolss.dlI)把打字与印刷职分交给给打字与印刷机提供者,打字与印刷机提供者知道该把打字与印刷职责送到哪个地方。
打字与印刷路由(spoolss.
dlI)的任务特别轻易:正是寻找正确的打字与印刷机提供者,然后把音信发送过去。它借助系统注册表中打字与印刷机相关的设置,通过打字与印刷职务所带的打字与印刷机名大概打字与印刷机句柄音讯完结这一任务。
打字与印刷提供者(Print Provider)
打字与印刷提供者负担把打字与印刷任务分配给本地或远程Computer。它也管理打字与印刷职务队列操作,如运营、甘休和职分枚举。与打字与印刷服务进度和打字与印刷路由不一样,系统中能够有比比较多打字与印刷提供者。
Windows操作系统自己内置有几个打字与印刷提供者:
地方打字与印刷机提供者(localspl.dll)。管理地点打字与印刷职责或远程顾客发送到本地机的打字与印刷任务。每项打字与印刷职责最终都由本土打字与印刷机提供者管理,它把打字与印刷职责送到打字与印刷管理器(前边解释)。
互联网打印机提供者(win32spl.dll)。把打字与印刷职责发送到远程的网络打字与印刷服务器。
HTTP打字与印刷机提供者(inetpp.dll)。把打印任务通过HTTP发送到UCRUISERL地址举行打字与印刷。
www.hj8828.com,里头,硬件打字与印刷机的商家举例HP等,能够用Windows
NT的DDK来编排它们自个儿的打字与印刷机提供者。
打字与印刷管理器【打印驱动程序】
在上述打字与印刷提供者里面现身了多少个新名称:打字与印刷管理器!打字与印刷管理器是专门担任把打字与印刷职务的打印文件转变为打印机能够辨别的原数据格式。在此地大家又要求引申出其它的二个话题:打字与印刷机调控语言大概说打字与印刷机指令集。就犹如Computer的硬盘相同,应用程序需求对硬盘读写四个多少,需求将其诉求发送给操作系统,操作系统会将其转载给硬盘的SCSI调控器,硬盘的SCSI调整器将应用程序锁央浼的数码转变为硬盘能够驾驭的SCSI语言或然SCSI指令,然后发送到硬盘施行。
同理,在此地那么些打字与印刷管理器就恍如于硬盘的SCSI调整器。所分化的是,硬盘的SCSI调控器是驱动程序加硬件集成电路,也正是软硬一体,而打字与印刷机的那一个打字与印刷管理器,则是因而Windows的驱动程序来成功的,是叁个纯软件的操作,因而在纯粹的Windows的EMF格式下的光栅打字与印刷,会对系统的能源占用较高。
在打字与印刷机市场,使用最广的打字与印刷机指令有:ESC、PCL、PostScdpt指令。个中PCL、PostScdpt指令也被喻为页面描述语言(PDL,PageDescriptional
Language),ESC指令也被叫做嵌入式语言。那只是打印机语言在那之中的一种分类方法。那个都是打字与印刷机原始指令,超越75%原来指令都源于于专门的学业打字与印刷数据”EMF”的转移,然而PCL6正规指令和PostScript指令无法通过改造职业打字与印刷数据得到,而是一贯由打字与印刷驱动程序生成,故此PCL6限令打字与印刷和PostScript指令不必要改换指令而是径直将指令发送到打字与印刷设备,所以那三种打字与印刷指令被为原始打字与印刷也叫直接打字与印刷。其打印的数据不经过驱动程序的打字与印刷管理器进行转变,而是径直发送到打字与印刷机,由打印机设备自身分析那么些数据并打字与印刷。可想而知这来二种打字与印刷机语言打字与印刷效用就相比较高。针对这么些打印机语言的牵线大家前边再说。
打字与印刷监视器
Windows补助二种等级次序的打字与印刷监视器:语言监视器和端口监视器。在上述Windows的架构种类中,大家得以看见,打字与印刷假脱机程序还蕴藏有局地打字与印刷的监视器。打字与印刷监视器担当把本来打印数据从打印服务引到准确的端口驱动程序上。
语言监视器,这里的语言是指打字与印刷机固件能明白的种种打字与印刷机义务语言,如PCL。语言监视器的重要目标是透过双向通讯电缆,在打字与印刷服务进程和打字与印刷机之间提供全双工的通讯信道。计算机到打字与印刷机的数据通道首要用来把打字与印刷数据送到打字与印刷机,打字与印刷机到Computer的回到通道用于提供报告音信。语言监视器的第贰个指标是在打字与印刷机数据流中插入调控命令。
而端口监视器则是在打字与印刷服务进度和水源格局端口驱动程序之间提供通讯路子,该驱动程序直接存取打字与印刷机链接的硬件的I/O端口。端口监视器是无法一直对硬件操作。它应用常用的文书
API同内核中的驱动程序通信。端口监视器也负担管理逻辑打字与印刷机端口,举例地方计算机的持有COM
和LPT端口。
上述大致表达了依赖GDI的打字与印刷假脱机(Spooler)首要结合结构。而基于XPS的打字与印刷假脱机(Spooler)又是怎么样的三个结缘结构吧?
实际上对于XPS的打字与印刷假脱机来讲,和GDI的不二法门差距就是GDI图形接口换来了XPS图形接口。在Windows中,技士所支付的图纸应用程序,要么接纳GDI的图形接口开举行付出,要么使用WPF开采框架,WPF(Windows
Presentation Foundation)是 Windows Vista中引进的新的客户分界面开采框架,
可提供进一步烂漫的顾客交互分界面.,WPF应用程序仅协助基于 XPS
的打字与印刷接口。也正是说,其实是Windows
7以及随后的本子中,半数以上新开荒的应用程序都以依据WPF开辟的,其调用的也是XPS接口。由此对此GDI或XPS来讲,是GDI的应用程序就调用GDI的打印接口,是XPS的应用程序就调用XPS的打字与印刷接口。同不时间双方又是足以彼此合作和互动转变的。

计算机上有二个可用的 USB 端口。 假若您通过 USB
集线器或扩充坞连接,打字与印刷机恐怕不能赢得充裕电量来常常运作。

后台打字与印刷程序和驱动程序组件被规划为可代表的,进而使硬件中间商能够轻便地对新的硬件扩张援救。

参考“http://www.mamicode.com/info-detail-1527564.html”

倘诺您在安装 HP 驱动程序前,将 USB
连接线连接到了计算机上,请继续实施以下操作步骤,将打印机从已设置的器材上移除,以确认保证成功地产生安装。
就算未将 USB 连接线连接受Computer,请跳至下一步,继续设置驱动程序。

Windows 两千 对打印机驱动程序所做的更换

www.hj8828.com 2

打字与印刷机驱动程序是一种可将应用程序数据转载为打字与印刷设备可用以创办打字与印刷页的格式的软件。在
Windows NT 4.0 中,全体打字与印刷机驱动程序都以基本方式运作。这么些驱动程序称为
Windows 打字与印刷情况中的第 2 版驱动程序。Windows 三千及更新版本本质上支撑客户方式驱动程序,同时还专程帮助基础方式驱动程序以达成向后十三分。Microsoft
转而利用顾客情势驱动程序也称为第 3
版驱动程序)以贯彻系统可信性和平静。选取内核形式驱动程序,出现二个谬误就能够令整台服务器崩溃,而对此客商方式驱动程序,错误仅会影响运营驱动程序的长河——常常是后台打字与印刷程序。重新启航后台打印程序要比重启整个系统快得多。其余,当后台打字与印刷程序现身故障时,客户仍可选择服务器的其他服务。Windows
Server 二〇〇四默许对后台打字与印刷程序服务提供自动恢复生机成效。服务调节管理器中的一项设置)

断开计算机上的打字与印刷机 USB 连接线。
在驱动程序安装进程中只要未出现提醒,请勿重新连接连接线。

将打字与印刷机驱动程序从基础格局迁移到客商情势实际不是 Windows 2000所做的并世无两退换,还引进了 Microsoft 通用打字与印刷机驱动程序
Unidrv)。这一打字与印刷机驱动程序核心代替了 Windows NT 4.0
及更早版本中的光栅设备驱动程序 RASDD) 接口。Unidrv
背后的定义是:不用独立硬件经销商 IHVs) 编写整个驱动程序,就可使用
Unidrv
引擎的基本打字与印刷功能,况且只需通过行使微型驱动程序提供一定于设备的功用。微型驱动程序平日是三个自定义文件,只怕可能是三个插件,可提供特种的转移功效或自定义的
UI 选项。核心打字与印刷机调节语言 PCL) 引擎 Unidriv.dll) 和 PostScript 引擎
PScript5.dll) 均同意行使小型驱动程序。Unidrv 微型驱动程序的自定义文件为
.gpd 文件,而对此 PostScript 微型驱动程序,则为 .ppd 文件。

在 Windows 中寻觅“设备”,然后在结果列表中式茶食击设备和打字与印刷机调控面板设置。