第一部分安装与更新指南 1
第一章Windows 3.0 DDK概况 1
1.1 Windows 3.0的新特点 1
1.2新DDK的更改之处 1
目 录 1
1.3设备开发工具箱的内容 2
1.4 DDK资料汇编的内容安排 3
第二章确定是否需要修改 4
2.2修改Windows/386 2.x虚拟设备使之运行于Windows 3.0的386增强方式下 5
2.1 修改2.X版驱动程序使之运行于Windows 3.0下 5
第三章必备的开发环境 6
3.1语言与其它工具 6
3.2建议使用的硬件 7
3.3 修改CONFIG.SYS和AUTOEXEC.BAT文件 7
3.4专用工具 7
3.5库 7
2.2填写GDIINFO数据结构 (4 7
3.7 建立虚拟设备的专用INCLUDE文件 8
3.6 INCLUDE文件 8
3.9专用文件一览表 9
3.8建立虚拟设备的专用工具 9
第四章建议采用的开发过程 10
4.1将需要的所有工具和源码复制到硬盘 10
4.2熟悉调试工具 10
4.3建立驱动程序实例 11
4.4使用测试程序 11
4.5创建分布盘 12
5.2恢复压缩文件 13
第五章系统设置和工具安装 13
5.1从盘中复制需要的文件 13
5.3其它 14
5.4检查工具设置 14
第六章Window s 3.0设备驱动源程序 15
6.1显示器驱动源程序…………………………………………………………………(1 7 )6.2显示驱动测试程序 21
6.3打印机驱动源程序 21
6.7 COMM驱动源程序 24
6.5键盘驱动源程序 24
6.4打印驱动测试程序 24
6.6 鼠标器驱动源程序 24
6.8声音驱动源程序 25
6.9 网络驱动源程序 25
6.10 网络驱动和HCT测试程序 25
第七章Wind ow s 3.0虚拟设备源程序 26
7.1 显示设备(CGA、EGA、VGA、8514/a、HERC) 27
7.2 显示器/Windows接口(GRABBER ) 28
7.6 键盘设备(VKKD) 29
7.4 EBIOS设备(EBIOS) 29
7.5 硬盘设备(VHD) 29
7.3 DM A设备(VDMA D) 29
7.7 鼠标器设备(?MD) 30
7.8 NetBIOS设备(VNETBIOS) 30
7.9 局部DOS网络设备(LDOSNET) 30
7.1 4 COM缓冲器设备(COMBUFF) 31
7.13 COMM设备(VCD) 31
7.1 2 打印)机设备(VPD) 31
7.1 1 分页设备(PAGESWAP) 31
7.1 0 BIOS设备(BIOSXLAT) 31
7.1 5软驱设备(VFD) 32
第二部分适配器指南 36
第一章Window s概况 36
1.1何谓设备驱动程序和虚拟设备 36
1.2程序与库 37
1.3 Windows各模块间的连接关系 37
1.4 设计设备驱动程序和虚拟设备需花费多长时间 37
1.5 与用户驱动程序接口的Windows核心模块 38
1.6 Windows环境中的其它模块 38
1.7 Windows调用约定 39
1.8 INCLUDE文件的用法 41
第二章显示器驱动程序 46
2.1基础内容 46
2.3允许和禁止函数 55
3.4 Tables菜单 (5 56
2.4 RealizeObject函数 59
2.5 ColorInfo函数 62
2.6 BitBlt函数 63
2.7 StrBlt/ExtTextOut函数 66
2.8 Stub函数 69
2.9 MoveCurso r和CheckCursor函数 69
2.1 0Control函数 70
2.1 1 其它函数 71
2.12显示器驱动程序资源的建立方法 71
2.13 显示器驱动程序测验表 77
第三章显示器驱动程序的新增特征 79
3.1彩色调色盘的管理 79
3.2保护方式的支持 83
3.3对大于64K字形的支持 84
3.4独立于设备的二进制位图 84
3.5将2.x显示器驱动程序修改成3.0的测验表 100
第四章 显示器驱动程序G rabbe r 101
4.1 命名规则 102
4.2G rabber入口 102
4.3数据结构 103
4.4坐标系统 106
4.5缓冲器大小计算 107
4.6 函数引用 108
第五章打印机驱动程序 113
5.1 基础内容 113
5.2打印机驱动程序的初始化 115
5.3打印机驱动程序环境 120
5.4 Print Manager的支持 122
5.5Control()函数 124
5.6 GDI图形目标 128
5.7输出 130
5.8 Stub函数 135
5.9将2.x打印机驱动程序修改成3.0 135
5.1 0打印机驱动程序测验表 138
第六章网络支持 141
6.1 新特征 141
6.2兼容性的获得 143
6.3兼容性问题及解决方案 145
6.4支持和分布 154
第七章网络驱动程序 154
7.1初始化、允许和禁止 155
7.2传送缓冲区 155
7.3确定网络功能 156
7.4显示驱动程序专用对话框 157
7.6获得当前用户名 158
7.5显示Browse对话框 158
7.7设备重定向函数 159
7.8网络打印函数 160
7.9扩展的错误函数 167
7.10返回值 168
7.1 1 函数总结 169
第八章键盘驱动程序 170
8.2键盘入口:输出函数 170
8.1初始化代码 170
8.3内部函数 171
8.4键盘中断处理程序和事件过程调用 171
8.5键盘驱动程序内表 172
8.6 键盘DLL 174
8.7 SYSTEM.INI键盘信息 174
8.8 Windows虚拟键码 175
8.9修改3.0键盘驱动程序测验表 180
8.10函数引用 181
第九章其它驱动程序 189
9.1声音驱动程序 189
9.2通讯驱动程序 189
9.3 鼠标器驱动程序 191
第十章公共函数 194
11.1驱动程序转换入门 215
第十一章设备驱动程序转换 215
11.2通用错误返回码 216
11.3驱动程序转换描述 216
第十二章数据结构和文件格式 255
12.1信息数据结构 255
12.2参数数据结构 264
12.3物理数据结构 270
12.4光栅和矢量字形文件格式 274
第十三章字形文件格式 283
13.1 TEXTMETRIC——基本字形度量 283
13.2 TEXTXFORM——实际文字形状信息 285
13.3 FONTINFO——物理字形 286
第十四章光栅操作码和定义 293
14.1操作码 294
14.2操作码列表 295
第十五章其它字符集表 303
第三部分虚拟设备适配指南 309
第一章 386增强方式下Windows概况 309
1.1操作环境 309
1.2虚拟机器 310
1.3虚拟机器管理器 311
1.4虚拟设备 314
1.5 VxD工作原理 315
第二章虚拟设备编程 323
1.6 VxD实例 323
2.1设计VxD 324
2.2建立VxD 329
2.3 VxD的初始化 332
2.4跟踪VM状态 335
2.6 VxD的调试 337
2.5退出Windows 337
第三章VDD和G rabbe r DLL 338
3.1 VDD和Grabber DLL入门 338
3.2 VDD编程 340
3.3 Gradber DLL接口 343
目 录 351
第一章存贮器管理服务例程 351
第四部分虚拟设备服务例程 351
1.1系统数据目标管理 352
1.2设备V86页管理 356
1.3 GDT/LDT管理 359
1.4系统堆分配程序 363
1.5系统页分配程序 365
1.6从VxD看物理设备存贮 380
1.7数据访问服务例程 381
1.8保护方式API的特殊服务例程 382
1.9数据管理实例 387
1.10 V86地址空间 388
第二章I/O服务例程和宏 389
2.1处理不同I/O类型 389
2.2 I/O宏 391
2.3 I/O服务例程 392
第三章VM中断和调用服务例程 395
第四章VM嵌套执行服务例程 402
第五章断点和回调服务例程 409
第六章主要调度服务例程 413
第七章时间片调度服务例程 421
第八章事件服务例程 426
第九章分时服务例程 431
第十章处理故障和中断服务例程 434
第十一章信息服务例程 437
第十二章初始化信息服务例程 440
第十三章链表服务例程 447
第十四章错误状态服务例程 453
第十五章其它服务例程 454
第十六章外壳服务例程 459
第十七章虚拟显示设备(VDD)服务例程 461
17.1 在Window中显示VM视频存贮器 461
17.2消息方式服务例程 462
17.3其它VDD服务例程 463
第十八章虚拟键盘设备(VKD)服务例程 465
第十九章虚拟PIC设备(VPICD)服务例程 471
19.1缺省中断处理 471
19.2 IRQ的虚拟化 471
19.3IRQ回调例程的虚拟化 472
19.4 VPICD服务例程 474
第二十章虚拟声音设备(VSD)服务例程 478
第二十一章虚拟定时器设备(VTD)服务例程 479
第二十二章V86方式内存管理者设备服务例程 481
22.1初始化服务例程 482
22.2 API转换和映象 483
第二十三章虚拟DMA设备(VDMAD)服务例程 495
第二十四章虚拟DOSNET设备服务例程 504
附录A术语和首字母缩略词 505
B.1 window方式 510
B.2微处理器方式 510
附录C为驱动程序制作分布盘 511
C.1 何谓信息文件 511
C.2不同类型的信息文件 512
C.3信息文件的一般格式和语法 512
C.5 .INF文件入口的建立 513
C.4文件定位信息 513
附录B对方式的剖析 515
C.6为打印机驱动程序建立.INF文件入口 520
C.7 .INF文件安装的测试 523
C.8通知Microsoft的驱动程序和/或虚拟设备可交付使用 525
C.9运行调试Setup时的错误信息 525
附录D Window s INT 2FH API 526
D.1 Call-In接口 526
D.2调用接口 529
D.3 Windows/386 2.xx版API兼容性 532
1.1显示器设备的长宽比种类 537
第五部分打印机与字库 537
第一章Windows的屏幕字形 537
1.2将点大小转换成线长度 538
1.3线长度正确范围的选择 538
1.4推荐使用的屏幕字形大小 539
第二章打印机字形度量(PFM)文件 540
2.1 在WIN.INI中列入.PFM文件 540
2.2打印机字形安装目录文件 542
2.3 .PFM文件的组织 542
2.4打印机卷(Cartridge)度量(PCM)文件 550
第三章PFM编辑器 552
3.1 主窗口 552
3.2 File菜单 553
3.3 Metrics菜单 553
3.5 Driver菜单 557
3.6 .PCM文件的创建 558
3.7 PFM编辑器错误信息 558
第四章Po stSc ript打印机的.PFM文件 560
4.1 PostScript.PFM文件格式 560
4.3驱动程序专用数据结构 561
4.2 EXTTEXTMETRIC数据结构 561
第五章PCL打印机的.PFM文件 563
5.1 PCL的.PFM文件格式 563
5.2 EXTTEXTMETRIC数据结构 563
5.3驱动程序专用数据结构 564
5.4字母紧排(Kerning)表 566
5.5可缩放的PCL字形 566
第六章PCL驱动程序一览 567
7.1 标志总结 568
第七章WIN.1Nl标志 568
7.2标志详述 569
第八章常驻软字形 579
8.1 设定下装字形 580
8.2在WIN.INI文件中跟踪常驻字形 582
第九章FINSTALL.DIR 584
9.1逻辑驱动器定义 584
9.2字形族定义 585
9.3 设有FINSTALL.DIR文件的安装 588
9.4 FINSTALL.DIR文件范例 588
10.1 建立一个FINSTALL.DIR文件 589
第十章开发工具 589
10.2增加字库 590
第十一章.PFM生成程序 591
1 1.1 安装程序.PFM与销售商提供的.PFM 591
11.2文件命名原则 591
1 1.3 .PFM文件的重新生成 591
11.4来自字形数据的PFM数据 592
第十二章安装程序一览 596
1 2.1选择打印机字库 596
1 2.2屏幕字库的选取 597
1 2.3从WIN.INI变换恢复软字库 598
12.4一种快速移动字库的方法 599
12.5软磁盘字库的建立 600
12.6在网络上建立字库 602
12.7为常驻和卡盘(Cartridge)字库建立.PFM文件 603
第十三章PostSc ript驱动程序一览 606
第十四章新特征 606
14.1 彩色 606
14.5错误处理程序 607
14.4对PostSeript首部支持 607
14.2与设备无关的位映象 607
14.3对外部打印机和打印机字形度量支持 607
14.6 GDI StretchBIt支持 608
14.7设备初始化 608
14.8文字的旋转变换 608
14.9 EPS打印 608
第十五章Escapes 608
第十六章WIN.INl的设置 609
16.1全局初始化 609
16.2 口初始化 609
第十七章对多种外部打印机支持 610
16.3软字库的使用 610
17.1提供的工具 611
17.2建立一个外部打印机分布盘 611
17.3 MKPRN编译程序 612
17.4.PPD文件格式 612
17.5关键字和扩展 612
17.6运行MKPRN编译程序 615
17.7安装.WPD文件 615
17.8局限性 616
第十八章PostScript打印机通信 616