Microsoft Windows 2000 Driver Development Kit.Volume 1,Design Guide
副标题:无
作 者:(美)Microsoft Corporation著;冯博琴等译
分类号:
ISBN:9787111089544
微信扫一扫,移动浏览光盘
简介
本书为“Windows 2000驱动程序开发大全”的第1卷—设计指南。全书分五篇全面详尽地介绍了编写Windows 2000/98驱动程序所需的技术内容。包括利用Windows Driver Verifier构建、测试和调试Windows 2000驱动程序;怎样生成Windows Driver Model(WDM)驱动程序;描述了如何支持即插即用、电源管理特性及设备的设置和安装;详细介绍了编写内核模式、图形和网络驱动程序的细节。
由于篇幅所限,DDK (Driver Development Kit)文档中有少部分内容没有包含在本套书中,但随套书附赠的光盘(见套书第2卷)中包含了DDK文档的完整信息。
目录
译者序
第一篇 即插即用、电源管理和
设置驱动程序开发参考
第一部分 即 插 即 用
第1章 即插即用例程 3
设备信息例程 3
注册例程 3
设备接口例程 3
pnp通知例程 4
删除锁例程 4
其他pnp例程 4
ioacquireremovelock 5
ioacquireremovelockex 6
ioadjustpagingpathcount 6
iogetdeviceinterfacealias 6
iogetdeviceinterfaces 8
iogetdeviceproperty 9
ioinitializeremovelock 12
ioinitializeremovelockex 13
ioinvalidatedevicerelations 13
.ioinvalidatedevicestate 14
ioopendeviceinterfaceregistrykey 15
ioopendeviceregistrykey 16
ioregisterdeviceinterface 17
ioregisterplugplaynotification 19
ioreleaseremovelock 21
ioreleaseremovelockex 22
ioreleaseremovelockandwait 22
ioreleaseremovelockandwaitex 23
ioreportdetecteddevice 23
ioreportresourcefordetection 25
ioreporttargetdevicechange 27
ioreporttargetdevicechangeasynchronous 28
iorequestdeviceeject 29
iosetdeviceinterfacestate 31
iounregisterplugplaynotification 32
第2章 即插即用irp 34
irp_mn_cancel_remove_device 35
irp_mn_cancel_stop_device 36
irp_mn_device_usage_notification 37
irp_mn_eject 40
irp_mn_filter_resource_
requirements 41
irp_mn_query_bus_information 43
irp_mn_query_capabilities 44
irp_mn_query_device_relations 46
irp_mn_query_device_text 50
irp_mn_query_id 51
irp_mn_query_interface 54
irp_mn_query_legacy_bus
_information 58
irp_mn_query_pnp_device_state 58
irp_mn_query_remove_device 59
irp_mn_query_resource_
requirements 59
irp_mn_query_resources 61
irp_mn_query_stop_device 62
irp_mn_read_config 62
irp_mn_remove_device 64
irp_mn_set_lock 65
irp_mn_start_device 66
irp_mn_stop_device 67
irp_mn_surprise_removal 68
irp_mn_write_config 69
第3章 即插即用结构 72
device_capabilities 72
device_interface_change_
notification 75
hwprofile_change_notification 76
lpguid 76
plugplay_notification_header 77
pnp_device_state 77
target_device_custom_
notification 78
target_device_removal_
notification 79
第二部分 电 源 管 理
第4章 电源管理支持例程 81
pocalldriver 81
poregisterdeviceforidledetection 82
poregistersystemstate 84
porequestpowerirp 85
posetdevicebusy 87
posetpowerstate 88
posetsystemstate 89
postartnextpowerirp 90
pounregistersystemstate 91
第5章 电源管理的i/o请求 92
irp_mn_power_sequence 92
irp_mn_query_power 93
irp_mn_set_power 95
irp_mn_wait_wake 98
第6章 电池类驱动程序例程 101
batteryclassinitializedevice 101
batteryclassioctl 102
batteryclassstatusnotify 103
batteryclassunload 104
第7章 电池微类驱动程序例程 105
batteryminidisablestatusnotify 105
batteryminiqueryinformation 106
batteryminiquerystatus 108
batteryminiquerytag 109
batteryminisetinformation 110
batteryminisetstatusnotify 111
第8章 电池结构 113
battery_information 113
battery_manufacture_date 114
battery_reporting_scale 114
第三部分 设 置
第9章 inf文件节和命令 117
inf文件的通用语法规则 117
一个inf文件样例 119
inf节摘要 121
inf命令摘要 123
inf version 节 126
inf sourcedisksnames 节 129
inf sourcedisksfiles 节 130
inf classinstall32 节 132
inf destinationdirs 节 135
inf controlflags 节 138
inf manufacturer 节 140
inf models 节 141
inf ddinstall 节 143
inf ddinstall.services 节 147
inf ddinstall.hw节 150
inf ddinstall.coinstallers 节 152
inf ddinstall.interfaces 节 156
inf interfaceinstall32节 159
inf ddinstall.factdef 节 160
inf strings 节 162
inf addreg 命令 164
inf delreg 命令 168
inf copyfiles 命令 170
inf delfiles 命令 174
inf renfiles 命令 175
inf addservice 命令 176
inf delservice 命令 183
inf addinterface 命令 184
inf bitreg 命令 186
inf logconfig 命令 188
inf profileitems 命令 195
inf updateinis 命令 198
inf updateinifields 命令 200
inf ini2reg 命令 202
第10章 安装函数 204
inf 文件处理函数 204
磁盘提示和错误处理函数 205
文件队列函数 206
缺省队列回调例程函数 206
文件箱函数 207
磁盘空间列表函数 207
最常用源列表函数 207
日志文件函数 208
第11章 设备安装函数 209
更新驱动程序函数 209
setupdi 设备信息函数 209
setupdi 驱动程序信息函数 210
setupdi 驱动程序选择函数 210
setupdi 设备安装处理程序 211
setupdi 设备安装定制函数 211
setupdi 安装类函数 211
setupdi 类位图和图标函数 212
setupdi 设备接口函数 212
setupdi 注册函数 213
其他setupdi函数 214
setupdiaskforoemdisk 214
setupdibuildclassinfolist 214
setupdibuildclassinfolistex 215
setupdibuilddriverinfolist 216
setupdicallclassinstaller 218
setupdicanceldriverinfosearch 219
setupdichangestate 219
setupdiclassguidsfromname 220
setupdiclassguidsfromnameex 221
setupdiclassnamefromguid 222
setupdiclassnamefromguidex 223
setupdicreatedeviceinfo 223
setupdicreatedeviceinfolist 225
setupdicreatedeviceinfolistex 226
setupdicreatedeviceinterface 227
setupdicreatedeviceinterfaceregkey 228
setupdicreatedevregkey 229
setupdideletedeviceinfo 230
setupdideletedeviceinterfacedata 231
setupdideletedeviceinterfaceregkey 232
setupdideletedevregkey 232
setupdidestroyclassimagelist 234
setupdidestroydeviceinfolist 234
setupdidestroydriverinfolist 234
setupdidrawminiicon 235
setupdienumdeviceinfo 237
setupdienumdeviceinterfaces 237
setupdienumdriverinfo 238
setupdigetactualsectiontoinstall 239
setupdigetclassbitmapindex 241
setupdigetclassdescription 242
setupdigetclassdescriptionex 242
setupdigetclassdevs 243
setupdigetclassdevsex 245
setupdigetclassimageindex 246
setupdigetclassimagelist 247
setupdigetclassimagelistex 248
setupdigetclassinstallparams 248
setupdigetdeviceinfolistclass 249
setupdigetdeviceinfolistdetail 250
setupdigetdeviceinstallparams 251
setupdigetdeviceinstanceid 252
setupdigetdeviceinterfacealias 252
setupdigetdeviceinterfacedetail 254
setupdigetdeviceregistryproperty 255
setupdigetdriverinfodetail 257
setupdigetdriverinstallparams 258
setupdigethwprofilefriendlyname 258
setupdigethwprofilefriendlynameex 259
setupdigethwprofilelist 260
setupdigethwprofilelistex 261
setupdigetinfclass 262
setupdigetselecteddevice 262
setupdigetselecteddriver 263
setupdigetwizardpage 264
setupdiinstallclass 264
setupdiinstallclassex 265
setupdiinstalldevice 266
setupdiinstalldeviceinterfaces 267
setupdiinstalldriverfiles 268
setupdiloadclassicon 269
setupdimoveduplicatedevice 270
setupdiopenclassregkey 270
setupdiopenclassregkeyex 271
setupdiopendeviceinfo 272
setupdiopendeviceinterface 273
setupdiopendeviceinterfaceregkey 274
setupdiopendevregkey 275
setupdiregistercodeviceinstallers 276
setupdiregisterdeviceinfo 277
setupdiremovedevice 279
setupdiremovedeviceinterface 280
setupdiselectbestcompatdrv 280
setupdiselectdevice 281
setupdiselectoemdrv 282
setupdisetclassinstallparams 283
setupdisetdeviceinstallparams 283
setupdisetdeviceregistryproperty 284
setupdisetdriverinstallparams 286
setupdisetselecteddevice 286
setupdisetselecteddriver 287
setupdiunremovedevice 288
updatedriverforplugandplaydevices 288
第12章 设备安装结构 291
sp_addpropertypage_data 291
sp_classimagelist_data 291
sp_classinstall_header 292
sp_detectdevice_params 293
sp_device_interface_data 293
sp_device_interface_detail_data 294
sp_devinfo_data 294
sp_devinfo_list_detail_data 295
sp_devinstall_params 296
sp_drvinfo_data 300
sp_drvinfo_detail_data 301
sp_drvinstall_params 302
sp_enableclass_params 304
sp_installwizard_data 304
sp_movedev_params 304
sp_newdevicewizard_data 304
sp_powermessagewake_params 305
sp_propchange_params 305
sp_propsheetpage_request 307
sp_removedevice_params 308
sp_selectdevice_params 309
sp_troubleshooter_params 310
sp_unremovedevice_params 311
第13章 设备安装函数代码 312
dif_addpropertypage_advanced 312
dif_allow_install 314
dif_destroyprivatedata 315
dif_detect 316
dif_installdevice 318
dif_installdevicefiles 320
dif_installinterfaces 321
dif_newdevicewizard_finis_
hinstall 322
dif_newdevicewizard_posta_
nalyze 325
dif_newdevicewizard_prea_
nalyze 326
dif_newdevicewizard_preselect 327
dif_newdevicewizard_select 329
dif_powermessagewake 330
dif_propertychange 332
dif_register_coinstallers 333
dif_registerdevice 334
dif_remove 335
dif_selectbestcompatdrv 337
dif_selectdevice 338
dif_troubleshooter 341
dif_unremove 343
保留的dif代码 344
dif_addpropertypage_basic 344
dif_assignresources 344
dif_calcdiskspace 344
dif_detectcancel 344
dif_detectverify 344
dif_enableclass 344
dif_firsttimesetup 344
dif_founddevice 346
dif_installclassdrivers 346
dif_movedevice 346
废弃的dif代码 346
dif_destroywizarddata 346
dif_installwizard 346
dif_properties 346
dif_selectclassdrivers 347
dif_validateclassdrivers 347
dif_validatedriver 347
第14章 pnp配置管理程序函数 348
cm_add_empty_log_conf 348
cm_add_empty_log_conf_ex 350
cm_add_id 351
cm_add_id_ex 352
cm_add_res_des 353
cm_add_res_des_ex 354
cm_connect_machine 356
cm_disconnect_machine 356
cm_enumerate_classes 357
cm_enumerate_classes_ex 358
cm_enumerate_enumerators 358
cm_enumerate_enumerators_ex 359
cm_free_log_conf 360
cm_free_log_conf_ex 361
cm_free_log_conf_handle 362
cm_free_res_des 363
cm_free_res_des_ex 364
cm_free_res_des_handle 365
cm_free_resource_conflict_handle 366
cm_get_child 366
cm_get_child_ex 367
cm_get_depth 368
cm_get_depth_ex 369
cm_get_device_id 370
cm_get_device_id_ex 371
cm_get_device_id_list 372
cm_get_device_id_list_ex 373
cm_get_device_id_list_size 374
cm_get_device_id_list_size_ex 375
cm_get_device_id_size 376
cm_get_device_id_size_ex 377
cm_get_devnode_status 378
cm_get_devnode_status_ex 379
cm_get_first_log_conf 380
cm_get_first_log_conf_ex 381
cm_get_log_conf_priority 383
cm_get_log_conf_priority_ex 383
cm_get_next_log_conf 384
cm_get_next_log_conf_ex 385
cm_get_next_res_des 386
cm_get_next_res_des_ex 387
cm_get_parent 389
cm_get_parent_ex 389
cm_get_res_des_data 390
cm_get_res_des_data_ex 391
cm_get_res_des_data_size 392
cm_get_res_des_data_size_ex 393
cm_get_resource_conflict_count 393
cm_get_resource_conflict_details 394
cm_get_sibling 395
cm_get_sibling_ex 396
cm_get_version 397
cm_get_version_ex 397
cm_locate_devnode 398
cm_locate_devnode_ex 398
cm_modify_res_des 399
cm_modify_res_des_ex 400
cm_query_resource_conflict_list 402
cm_reenumerate_devnode 403
cm_reenumerate_devnode_ex 404
cm_request_device_eject 405
cm_request_device_eject_ex 406
第15章 pnp配置管理程序结构和类型 409
资源描述符结构 409
busnumber_des 409
busnumber_range 409
busnumber_resource 410
cs_des 410
cs_resource 411
devprivate_des 411
devprivate_range 412
devprivate_resource 412
dma_des 412
dma_range 413
dma_resource 413
io_des 414
io_range 414
io_resource 415
irq_des 415
irq_range 416
irq_resource 417
mem_des 417
mem_range 418
mem_resource 419
mfcard_des 419
mfcard_resource 420
pccard_des 420
pccard_resource 421
其他的结构 421
conflict_details 421
pnp 配置管理程序类型 422
pnp_veto_type 422
第16章 设备安装类 424
第17章 txtsetup.oem文件格式 431
txtsetup.oem文件中的disks节 431
txtsetup.oem文件中的defaults节 432
txtsetup.oem 文件中的hwcomponent节 432
txtsetup.oem 文件中的files.hw
component.id节 433
txtsetup.oem 文件中的config.driverkey节 434
txtsetup.oem 文件中的hardwareids.scsi.
service节 435
第二篇 内核模式驱动程序开发参考
第一部分 内核模式支持例程
第1章 内核模式支持例程概述 439
初始化和卸载 439
irp 447
同步 452
内存 461
dma 468
pio 469
驱动程序管理队列 469
驱动程序系统线程 471
串 472
数据转换 473
访问驱动程序管理的对象 474
错误处理 476
第2章 可执行支持例程 478
exacquirefastmutex 478
exacquirefastmutexunsafe 479
exacquireresourceexclusive 479
exacquireresourceexclusivelite 480
exacquireresourceshared 481
exacquireresourcesharedlite 481
exacquiresharedstarveexclusive 482
exacquiresharedwaitforexclusive 483
exallocatefromnpagedlookasidelist 484
exallocatefrompagedlookasidelist 485
exallocatefromzone 486
exallocatepool 486
exallocatepoolwithquota 487
exallocatepoolwithquotatag 488
exallocatepoolwithtag 489
exallocatepoolwithtagpriority 490
exconvertexclusivetoshared 491
exconvertexclusivetosharedlite 491
excreatecallback 492
exdeletenpagedlookasidelist 493
exdeletepagedlookasidelist 494
exdeleteresource 494
exdeleteresourcelite 494
exextendzone 495
exfreepool 495
exfreetonpagedlookasidelist 496
exfreetopagedlookasidelist 497
exfreetozone 498
exgetcurrentresourcethread 498
exgetexclusivewaitercount 499
exgetpreviousmode 499
exgetsharedwaitercount 500
exinitializefastmutex 501
exinitializenpagedlookasidelist 501
exinitializepagedlookasidelist 504
exinitializeresource 506
exinitializeresourcelite 506
exinitializeslisthead 507
exinitializeworkitem 508
exinitializezone 508
exinterlockedaddlargeinteger 508
exinterlockedaddlargestatistic 509
exinterlockedaddulong 510
exinterlockedallocatefromzone 511
exinterlockedcompareexchange64 511
exinterlockeddecrementlong 512
exinterlockedexchangeaddlargeinteger 512
exinterlockedexchangeulong 513
exinterlockedextendzone 514
exinterlockedflushslist 514
exinterlockedfreetozone 514
exinterlockedincrementlong 515
exinterlockedinsertheadlist 515
exinterlockedinserttaillist 516
exinterlockedpopentrylist 517
exinterlockedpopentryslist 518
exinterlockedpushentrylist 519
exinterlockedpushentryslist 520
exinterlockedremoveheadlist 521
exisfullzone 522
exisobjectinfirstzonesegment 522
exisprocessorfeaturepresent 522
exisresourceacquiredexclusive 523
exisresourceacquiredexclusivelite 523
exisresourceacquiredsharedlite 524
exlocaltimetosystemtime 525
exnotifycallback 525
exquerydepthslist 526
exqueueworkitem 527
exraiseaccessviolation 527
exraisedatatypemisalignment 527
exraisestatus 528
exregistercallback 529
exreinitializeresourcelite 530
exreleasefastmutex 531
exreleasefastmutexunsafe 532
exreleaseresource 532
exreleaseresourceforthread 533
exreleaseresourceforthreadlite 533
exreleaseresourcelite 533
exsetresourceownerpointer 534
exsettimerresolution 535
exsystemtimetolocaltime 535
extrytoacquirefastmutex 536
extrytoacquireresourceexclusivelite 537
exunregistercallback 537
exunidcreate 538
interlockedcompareexchange 538
interlockedcompareexchangepointer 539
interlockeddecrement 540
interlockedexchange 541
interlockedexchangeadd 542
interlockedexchangepointer 543
interlockedincrement 543
paged_code 544
probeforread 545
probeforwrite 545
第3章 硬件抽象层例程 547
allocateadapterchannel 547
allocatecommonbuffer 548
flushadapterbuffers 550
freeadapterchannel 551
freecommonbuffer 552
freemapregisters 553
getdmaalignment 554
getscattergatherlist 554
halallocatecommonbuffer 556
halassignslotresources 556
halexaminembr 557
halfreecommonbuffer 558
halgetadapter 558
halgetbusdata 558
halgetbusdatabyoffset 559
halgetdmaalignmentrequirement 559
halgetinterruptvector 559
halreaddmacounter 560
halsetbusdata 560
halsetbusdatabyoffset 561
haltranslatebusaddress 562
maptransfer 562
putdmaadapter 563
putscattergatherlist 564
readdmacounter 565
read_port_buffer_uchar 566
read_port_buffer_ulong 566
read_port_buffer_ushort 567
read_port_uchar 567
read_port_ulong 568
read_port_ushort 568
read_register_buffer_uchar 569
read_register_buffer_ulong 570
read_register_buffer_ushort 570
read_register_uchar 571
read_register_ulong 571
read_register_ushort 572
write_port_buffer_uchar 572
write_port_buffer_ulong 573
write_port_buffer_ushort 573
write_port_uchar 574
write_port_ulong 575
write_port_ushort 575
write_register_buffer_uchar 576
write_register_buffer_ulong 576
write_register_buffer_ushort 577
write_register_uchar 577
write_register_ulong 578
write_register_ushort 578
第4章 i/o 管理程序例程 580
ioacquirecancelspinlock 580
ioacquireremovelock 580
ioacquireremovelockex 581
ioadjustpagingpathcount 581
ioallocateadapterchannel 581
ioassignarcname 581
ioassignresources 582
ioattachdevice 584
ioattachdevicebypointer 586
ioattachdevicetodevicestack 586
iobuildasynchronousfsdrequest 587
iobuilddeviceiocontrolrequest 588
iobuildpartialmdl 590
iobuildsynchronousfsdrequest 590
iocalldriver 592
iocancelirp 593
iocheckshareaccess 594
iocompleterequest 595
ioconnectinterrupt 596
iocopycurrentirpstacklocationtonext 598
iocreatecontroller 598
iocreatedevice 599
iocreatefile 602
iocreatenotificationevent 608
iocreatesymboliclink 609
iocreatesynchronizationevent 610
iocreateunprotectedsymboliclink 611
iodeassignarcname 612
iodeletecontroller 612
iodeletedevice 613
iodeletesymboliclink 614
iofreeadapterchannel 614
iofreecontroller 615
iofreeirp 615
iofreemapregisters 616
iofreemdl 616
iofreeworkitem 617
iogetattacheddevicereference 617
iogetbootdiskinformation 618
iogetconfigurationinformation 619
iogetcurrentirpstacklocation 620
iogetcurrentprocess 621
iogetdeviceinterfacealias 621
iogetdeviceinterfaces 621
iogetdeviceobjectpointer 621
iogetdeviceproperty 623
iogetdevicetoverify 623
iogetdmaadapter 624
iogetdriverobjectextension 625
iogetfileobjectgenericmapping 625
iogetfunctioncodefromctlcode 626
iogetinitialstack 627
iogetnextirpstacklocation 627
iogetrelateddeviceobject 628
iogetremainingstacksize 629
iogetstacklimits 629
ioinitializedpcrequest 630
ioinitializeirp 631
ioinitializeremovelock 632
ioinitializeremovelockex 632
ioinitializetimer 632
ioinvalidatedevicerelations 633
ioinvalidatedevicestate 633
ioiserroruserinduced 633
ioiswdmversionavailable 634
iomakeassociatedirp 634
iomaptransfer 635
iomarkirppending 637
ioopendeviceinterfaceregistrykey 637
ioopendeviceregistrykey 638
ioquerydevicedescription 638
ioqueueworkitem 640
ioraiseharderror 641
ioraiseinformationalharderror 642
ioreadpartitiontable 643
ioregisterdeviceinterface 644
ioregisterdriverreinitialization 644
ioregisterplugplaynotification 646
ioregistershutdownnotification 646
ioreleasecancelspinlock 647
ioreleaseremovelock 647
ioreleaseremovelockex 647
ioreleaseremovelockandwait 647
ioreleaseremovelockandwaitex 647
ioremoveshareaccess 647
ioreportdetecteddevice 648
ioreportresourcefordetection 648
ioreportresourceusage 648
ioreporttargetdevicechange 650
ioreporttargetdevicechangeasynchronous 650
iorequestdeviceeject 651
iorequestdpc 651
ioreuseirp 651
iosetcancelroutine 652
iosetcompletionroutine 653
iosetdeviceinterfacestate 654
iosetharderrororverifydevice 654
iosetnextirpstacklocation 655
iosetpartitioninformation 656
iosetshareaccess 657
iosetthreadharderrormode 658
iosizeofirp 659
ioskipcurrentirpstacklocation 659
iostartnextpacket 660
iostartnextpacketbykey 661
iostartpacket 662
iostarttimer 663
iostoptimer 663
iounregisterplugplaynotification 664
iounregistershutdownnotification 664
ioupdateshareaccess 664
iowmiallocateinstanceids 665
iowmideviceobjecttoproviderid 666
iowmiregistrationcontrol 667
iowmisuggestinstancename 668
iowmiwriteevent 669
iowriteerrorlogentry 670
iowritepartitiontable 670
第5章 内核例程 672
keacquirespinlock 672
keacquirespinlockatdpclevel 673
kebugcheck 673
kebugcheckex 674
kecanceltimer 675
keclearevent 676
kedelayexecutionthread 676
kederegisterbugcheckcallback 678
keentercriticalregion 679
keflushiobuffers 679
kegetcurrentirql 680
kegetcurrentprocessornumber 680
kegetcurrentthread 681
kegetdcachefillsize 681
keinitializecallbackrecord 682
keinitializedevicequeue 682
keinitializedpc 683
keinitializeevent 684
keinitializemutex 685
keinitializesemaphore 686
keinitializespinlock 687
keinitializetimer 687
keinitializetimerex 688
keinsertbykeydevicequeue 689
keinsertdevicequeue 690
keinsertqueuedpc 691
keleavecriticalregion 691
kelowerirql 692
kepulseevent 692
kequeryinterrupttime 693
kequeryperformancecounter 694
kequeryprioritythread 695
kequerysystemtime 695
kequerytickcount 696
kequerytimeincrement 697
keraiseirql 697
keraiseirqltodpclevel 698
kereadstateevent 698
kereadstatemutex 699
kereadstatesemaphore 700
kereadstatetimer 700
keregisterbugcheckcallback 701
kereleasemutex 702
kereleasesemaphore 703
kereleasespinlock 704
kereleasespinlockfromdpclevel 705
keremovebykeydevicequeue 706
keremovedevicequeue 706
keremoveentrydevicequeue 707
keremovequeuedpc 708
keresetevent 709
kerestorefloatingpointstate 709
kesavefloatingpointstate 710
kesetbaseprioritythread 711
kesetevent 712
kesetimportancedpc 713
kesettargetprocessordpc 714
kesetprioritythread 715
kesettimer 715
kesettimerex 717
kestallexecutionprocessor 718
kesynchronizeexecution 719
kewaitformultipleobjects 720
kewaitformutexobject 722
kewaitforsingleobject 725
第6章 内存管理程序例程 728
address_and_size_to_span_pages 728
argument_present 729
byte_offset 729
bytes_to_pages 730
compute_pages_spanned 730
containing_record 730
field_offset 731
mmallocatecontiguousmemory 732
mmallocatecontiguousmemoryspecifycache 733
mmallocatenoncachedmemory 734
mmallocatepagesformdl 735
mmbuildmdlfornonpagedpool 736
mmcreatemdl 736
mmfreecontiguousmemory 737
mmfreecontiguousmemoryspecitycache 737
mmfreenoncachedmemory 738
mmfreepagesfrommdl 739
mmgetmdlbytecount 739
mmgetmdlbyteoffset 740
mmgetmdlpfnarray 740
mmgetmdlvirtualaddress 741
mmgetphysicaladdress 742
mmgetsystemaddressformdl 742
mmgetsystemaddressformdlsafe 743
mminitializemdl 744
mmisaddressvalid 745
mmisnonpagedsystemaddressvalid 746
mmisthisanntassystem 746
mmlockpagablecodesection 746
mmlockpagabledatasection 749
mmlockpagablesectionbyhandle 750
mmmapiospace 751
mmmaplockedpages 752
mmmaplockedpagesspecifycache 753
mmpageentiredriver 754
mmresetdriverpaging 755
mmpreparemdlforreuse 755
mmprobeandlockpages 756
mmquerysystemsize 757
mmsizeofmdl 757
mmunlockpages 758
mmunlockpagableimagesection 759
mmunmapiospace 760
mmunmaplockedpages 760
page_align 761
round_to_pages 761
第7章 对象管理程序例程 763
obdereferenceobject 763
obgetobjectsecurity 763
obreferenceobject 764
obreferenceobjectbyhandle 765
obreferenceobjectbypointer 766
obreleaseobjectsecurity 767
第8章 进程结构例程 769
pscreatesystemthread 769
psgetcurrentprocess 770
psgetcurrentprocessid 771
psgetcurrentthread 771
psgetcurrentthreadid 772
psgetversion 772
pssetcreateprocessnotifyroutine 773
pssetcreatethreadnotifyroutine 774
pssetloadimagenotifyroutine 775
psterminatesystemthread 777
第9章 运行时库例程 779
initializelisthead 779
initializeobjectattributes 780
insertheadlist 781
inserttaillist 781
islistempty 782
popentrylist 783
pushentrylist 783
removeentrylist 784
removeheadlist 785
removetaillist 785
rtlansistringtounicodesize 786
rtlansistringtounicodestring 787
rtlappendunicodestringtostring 788
rtlappendunicodetostring 788
rtlarebitsclear 789
rtlarebitsset 790
rtlchartointeger 791
rtlcheckbit 792
rtlcheckregistrykey 792
rtlclearallbits 793
rtlclearbits 794
rtlcomparememory 795
rtlcomparestring 795
rtlcompareunicodestring 796
rtlconvertlongtolargeinteger 797
rtlconvertlongtoluid 797
rtlconvertulongtolargeinteger 798
rtlconvertulongtoluid 798
rtlcopybytes 799
rtlcopymemory 800
rtlcopymemory32 800
rtlcopystring 801
rtlcopyunicodestring 802
rtlcreateregistrykey 802
rtlcreatesecuritydescriptor 803
rtldeleteregistryvalue 804
rtlenlargedintegermultiply 805
rtlenlargedunsigneddivide 805
rtlenlargedunsignedmultiply 806
rtlequalluid 806
rtlequalmemory 806
rtlequalstring 807
rtlequalunicodestring 808
rtlextendedintegermultiply 809
rtlextendedlargeintegerdivide 809
rtlextendedmagicdivide 809
rtlfillbytes 809
rtlfillmemory 810
rtlfindclearbits 810
rtlfindclearbitsandset 811
rtlfindclearruns 812
rtlfindfirstrunclear 813
rtlfindlastbackwardrunclear 814
rtlfindleastsignificantbit 815
rtlfindmostsignificantbit 815
rtlfindlongestrunclear 816
rtlfindnextforwardrunclear 816
rtlfindsetbits 817
rtlfindsetbitsandclear 818
rtlfreeansistring 819
rtlfreeunicodestring 820
rtlgetversion 820
rtlguidfromstring 821
rtlinitansistring 822
rtlinitializebitmap 822
rtlinitstring 823
rtlinitunicodestring 824
rtlint64tounicodestring 825
rtlintegertounicodestring 825
rtlintptrtounicodestring 826
rtllargeintegeradd 827
rtllargeintegerand 827
rtllargeintegerarithmeticshift 827
rtllargeintegerdivide 828
rtllargeintegerequalto 828
rtllargeintegerequaltozero 828
rtllargeintegergreaterthan 828
rtllargeintegergreaterthanorequalto 829
rtllargeintegergreaterorequaltozero 829
rtllargeintegergreaterthanzero 829
rtllargeintegerlessthan 829
rtllargeintegerlessthanorequalto 829
rtllargeintegerlessorequaltozero 830
rtllargeintegerlessthanzero 830
rtllargeintegernegate 830
rtllargeintegernotequalto 830
rtllargeintegernotequaltozero 831
rtllargeintegershiftleft 831
rtllargeintegershiftright 831
rtllargeintegersubtract 831
rtllengthsecuritydescriptor 831
rtlmovememory 832
rtlnumberofclearbits 833
rtlnumberofsetbits 833
rtlprefixunicodestring 834
rtlqueryregistryvalues 835
rtlretrieveulong 838
rtlretrieveushort 838
rtlsetallbits 839
rtlsetbits 840
rtlsetdaclsecuritydescriptor 840
rtlstoreulong 841
rtlstoreulonglong 842
rtlstoreulongptr 843
rtlstoreushort 843
rtlstringfromguid 844
rtltimefieldstotime 845
rtltimetotimefields 846
rtlulongbyteswap 846
rtlulonglongbyteswap 847
rtlunicodestringtoansisize 847
rtlunicodestringtoansistring 848
rtlunicodestringtointeger 849
rtlupcaseunicodechar 850
rtlupcaseunicodestring 850
rtlupperchar 851
rtlupperstring 852
rtlushortbyteswap 852
rtlvalidsecuritydescriptor 853
rtlverifyversioninfo 854
rtlvolumedevicetodosname 856
rtlwriteregistryvalue 857
rtlxunicodestringtoansisize 858
rtlzerobytes 858
rtlzeromemory 859
第10章 安全引用监视器例程 860
seaccesscheck 860
seassignsecurity 861
seassignsecurityex 863
sedeassignsecurity 865
sesingleprivilegecheck 866
sevalidsecuritydescriptor 866
第11章 zwxxx例程 868
zwclose 868
zwcreatedirectoryobject 869
zwcreatefile 870
zwcreatekey 876
zwdeletekey 878
zwenumeratekey 879
zwenumeratevaluekey 880
zwflushkey 882
zwmaketemporaryobject 882
zwmapviewofsection 883
zwopenfile 885
zwopenkey 886
zwopensection 886
zwopensymboliclinkobject 887
zwqueryinformationfile 888
zwquerykey 890
zwquerysymboliclinkobject 891
zwqueryvaluekey 892
zwreadfile 893
zwsetinformationfile 895
zwsetinformationthread 897
zwsetvaluekey 898
zwunmapviewofsection 900
zwwritefile 901
第12章 系统结构 904
ansi_string 904
cm_eisa_function_information 905
cm_eisa_slot_information 907
cm_floppy_device_data 908
cm_full_resource_descriptor 909
cm_int13_drive_parameter 910
cm_keyboard_device_data 910
cm_mca_pos_data 911
cm_partial_resource_descriptor 912
cm_partial_resource_list 916
cm_resource_list 916
cm_scsi_device_data 917
cm_serial_device_data 917
controller_object 918
device_description 919
device_object 920
dma_adapter 923
dma_operations 924
driver_object 925
file_alignment_information 927
file_basic_information 928
file_disposition_information 929
file_end_of_file_information 929
file_fs_device_information 930
file_full_ea_information 930
file_name_information 931
file_object 931
file_position_information 932
file_standard_information 933
io_resource_descriptor 934
io_resource_list 936
io_resource_requirements_list 937
io_stack_location 938
io_status_block 940
irp 940
key_basic_information 943
key_full_information 944
key_node_information 945
key_value_basic_information 945
key_value_full_information 946
key_value_partial_information 947
oem_string 948
pci_common_config 948
pci_slot_number 951
pool_type 951
rtl_osversioninfow 952
rtl_osversioninfoexw 953
scatter_gather_list 954
unicode_string 955
第13章 irp函数代码和ioctl 957
根据设备对象类型决定需要的i/o支持 957
公共i/o请求的输入和输出参数 958
irp_mj_cleanup 959
irp_mj_close 960
irp_mj_create 960
irp_mj_device_control 961
irp_mj_flush_buffers 962
irp_mj_internal_device_control 962
irp_mj_pnp 963
irp_mj_power 964
irp_mj_read 964
irp_mj_shutdown 965
irp_mj_write 966
定义i/o控制代码 967
设备类型专有的i/o请求 969
第二部分 串行和并行接口驱动程序
第14章 串行接口驱动程序参考 971
serial主要i/o请求 971
irp_mj_create 972
irp_mj_device_control 972
irp_mj_flush_buffers 974
irp_mj_internal_device_control 974
irp_mj_pnp 974
irp_mj_power 975
irp_mj_query_information 975
irp_mj_read 976
irp_mj_set_information 977
irp_mj_system_control 977
irp_mj_write 978
serial设备控制请求 979
ioctl_serial_clear_stats 980
ioctl_serial_clr_dtr 981
ioctl_serial_clr_rts 981
ioctl_serial_config_size 981
ioctl_serial_get_baud_rate 982
ioctl_serial_get_chars 982
ioctl_serial_get_commstatus 983
ioctl_serial_get_dtrrts 983
ioctl_serial_get_handflow 984
ioctl_serial_get_line_control 984
ioctl_serial_get_modem_control 985
ioctl_serial_get_modemstatus 985
ioctl_serial_get_properties 986
ioctl_serial_get_stats 986
ioctl_serial_get_timeouts 987
ioctl_serial_get_wait_mask 987
ioctl_serial_immediate_char 988
ioctl_serial_lsrmst_insert 988
ioctl_serial_purge 989
ioctl_serial_reset_device 990
ioctl_serial_set_baud_rate 990
ioctl_serial_set_break_off 991
ioctl_serial_set_break_on 991
ioctl_serial_set_chars 991
ioctl_serial_set_dtr 992
ioctl_serial_set_fifo_control 992
ioctl_serial_set_handflow 992
ioctl_serial_set_line_control 993
ioctl_serial_set_modem_control 994
ioctl_serial_set_queue_size 994
ioctl_serial_set_rts 995
ioctl_serial_set_timeouts 995
ioctl_serial_set_wait_mask 995
ioctl_serial_set_xoff 996
ioctl_serial_set_xon 996
ioctl_serial_wait_on_mask 997
ioctl_serial_xoff_counter 997
serial内部设备控制请求 998
ioctl_serial_internal_basic_
settings 998
ioctl_serial_internal_cancel_
wait_wake 999
ioctl_serial_internal_do_wait_
wake 999
ioctl_serial_internal_restore
_settings 1000
第15章 serenum驱动程序参考 1001
serenum设备控制请求 1001
ioctl_serenum_port_desc 1001
ioctl_serenum_get_port_name 1002
serenum内部设备控制请求 1003
ioctl_internal_serenum_
remove_self 1003
第16章 parport驱动程序参考 1004
parport主要i/o请求 1004
irp_mj_create 1004
irp_mj_internal_device_control 1005
parport内部设备控制请求 1005
ioctl_internal_deselect_device 1006
ioctl_internal_get_more_
parallel_port_info 1007
ioctl_internal_get_parallel_
pnp_info 1007
ioctl_internal_get_parallel_
port_info 1008
ioctl_internal_init_1284_3_bus 1008
ioctl_internal_parallel_clear_
chip_mode 1009
ioctl_internal_parallel_
connect_interrupt 1009
ioctl_internal_parallel_
disconnect_interrupt 1011
ioctl_internal_parallel_port_
allocate 1011
ioctl_internal_parallel_
port_free 1012
ioctl_internal_parallel_
set_chip_mode 1012
ioctl_internal_release_
parallel_port_info 1013
ioctl_internal_select_device 1013
ioctl_internal_xxx 1014
parport数据类型 1014
more_parallel_port_infor-
mation 1015
parallel_1284_command 1015
parallel_chip_mode 1016
parallel_pnp_information 1017
parallel_port_information 1018
parallel_interrupt_information 1019
parallel_interrupt_service_
routine 1020
parport回调例程 1021
clearchipmode 1021
deselectdevice 1022
freeport 1023
freeportfrominterruptlevel 1024
querynumwaiters 1025
tryallocateport 1025
tryallocateportatinterruptlevel 1026
tryselectdevice 1027
trysetchipmode 1028
第17章 parclass驱动程序参考 1030
parclass主要i/o请求 1030
irp_mj_create 1031
irp_mj_device_control 1031
irp_mj_internal_device_control 1032
irp_mj_query_information 1032
irp_mj_read 1033
irp_mj_write 1034
parclass设备控制请求 1035
ioctl_ieee1284_get_mode 1035
ioctl_ieee1284_negotiate 1036
ioctl_par_get_default_modes 1037
ioctl_par_get_device_caps 1037
ioctl_par_is_port_free 1038
ioctl_par_query_device_id 1038
ioctl_par_query_device_id_size 1039
ioctl_par_query_information 1040
ioctl_par_query_raw_device_id 1040
ioctl_par_set_information 1041
ioctl_par_set_read_address 1041
ioctl_par_set_write_address 1042
ioctl_serial_get_timeouts 1042
ioctl_serial_set_timeouts 1043
parclass内部设备控制请求 1044
ioctl_internal_disconnect_idle 1044
ioctl_internal_lock_port 1044
ioctl_internal_parclass_
connect 1045
ioctl_internal_parclass_
disconnect 1045
ioctl_internal_pardot3_
connect 1046
ioctl_internal_pardot3_
disconnect 1046
ioctl_internal_unlock_port 1046
parclass数据类型 1046
par_query_information 1047
par_set_information 1047
parclass_information 1048
parclass_negotiation_mask 1049
parclass回调例程 1050
determineieeemodes 1050
ieeefwdtorevmode 1051
ieeerevtofwdmode 1052
negotiateieeemode 1053
parallelread 1053
parallelwrite 1054
terminateieeemode 1055
第三部分 输入设备的驱动程序
第18章 hid 输入/输出请求 1057
hid类驱动程序支持的i/o请求 1057
ioctl_hid_get_poll_frequency_
msec 1057
ioctl_hid_set_poll_frequency_
msec 1058
ioctl_get_num_device_input_
buffers 1058
ioctl_set_num_device_input_
buffers 1059
ioctl_hid_get_collection_
information 1059
ioctl_hid_get_collection_
descriptor 1060
ioctl_hid_flush_queue 1061
ioctl_hid_get_feature 1061
ioctl_hid_set_feature 1062
ioctl_get_physical_descriptor 1062
ioctl_hid_get_hardware_id 1063
ioctl_hid_get_manufacturer_
string 1063
ioctl_hid_get_product_string 1064
ioctl_hid_get_serialnumber_
string 1064
ioctl_hid_get_indexed_string 1065
hid微驱动程序支持的i/o请求 1065
ioctl_get_physical_descriptor 1065
ioctl_hid_activate_device 1066
ioctl_hid_deactivate_device 1067
ioctl_hid_get_device_attributes 1067
ioctl_hid_get_device_descriptor 1067
ioctl_hid_get_feature 1068
ioctl_hid_get_indexed_string 1069
ioctl_hid_get_report_descriptor 1069
ioctl_hid_get_string 1070
ioctl_hid_read_report 1071
ioctl_hid_set_feature 1071
ioctl_hid_write_report 1072
第19章 客户hid支持例程 1074
hidd_flushqueue 1074
hidd_freepreparseddata 1074
hidd_getattributes 1075
hidd_getconfiguration 1075
hidd_getfeature 1076
hidd_gethidguid 1076
hidd_getindexedstring 1077
hidd_getmanufacturerstring 1077
hidd_getnuminputbuffers 1078
hidd_getphysicaldescriptor 1078
hidd_getpreparseddata 1079
hidd_getproductstring 1080
hidd_getserialnumberstring 1080
hidd_setconfiguration 1081
hidd_setfeature 1082
hidd_setnuminputbuffers 1082
hidp_getbuttoncaps 1083
hidp_getbuttons 1084
hidp_getbuttonsex 1086
hidp_getcaps 1087
hidp_getlinkcollectionnodes 1088
hidp_getscaledusagevalue 1088
hidp_getspecificbuttoncaps 1090
hidp_getspecificvaluecaps 1091
hidp_getusagevalue 1092
hidp_getusagevaluearray 1094
hidp_getvaluecaps 1095
hidp_maxusagelistlength 1096
hidp_setbuttons 1097
hidp_setscaledusagevalue 1098
hidp_setusagevalue 1100
hidp_setusagevaluearray 1101
hidp_translateusagestoi8042scancodes 1102
hidp_usagelistdifference 1102
第20章 客户hid结构 1104
hid_collection_information 1104
hidp_collection_desc 1104
hidd_attributes 1105
hidd_configuration 1106
hidp_button_caps 1106
hidp_caps 1108
hidp_link_collection_node 1109
hidp_value_caps 1111
usage_and_page 1113
第21章 微驱动程序hid支持例程 1115
hidregisterminidriver 1115
第22章 微驱动程序hid结构 1116
hid_device_attributes 1116
hid_device_extension 1116
hid_minidriver_registration 1117
hid_xfer_packet 1118
第23章 kbdclass驱动程序参考 1119
kbdclass主要i/o请求 1119
kbdclass设备控制请求 1124
kbdclass类服务回调例程 1130
keyboardclassservicecallback 1130
第24章 mouclass驱动程序参考 1132
mouclass主要i/o请求 1132
ioctl-xxx设备控制请求 1138
mouclass类服务回调例程 1139
第25章 i8042prt驱动程序参考 1141
i8042prt键盘主要i/o请求 1141
i8042prt键盘内部设备控制请求 1144
i8042prt鼠标主要i/o请求 1150
i8042prt鼠标内部设备控制请求 1153
i8042prt键盘回调例程 1156
i8042prt鼠标回调例程 1160
第26章 kbfiltr驱动程序参考 1163
kbfiltr内部设备控制请求 1163
kbfiltr回调例程 1165
第27章 moufiltr驱动程序参考 1169
moufiltr内部设备控制请求 1169
moufiltr回调例程 1171
第四部分 usb驱动程序
第28章 usb客户驱动程序i/o请求 1175
ioctl_internal_usb_submit_urb 1175
ioctl_internal_usb_reset_port 1176
ioctl_internal_usb_get_port_
status 1176
ioctl_internal_usb_enable_port 1176
ioctl_internal_usb_get_hub_
count 1177
ioctl_internal_usb_cycle_port 1177
ioctl_internal_usb_get_
roothub_pdo 1177
ioctl_internal_usb_get_
hub_name 1177
ioctl_internal_usb_get_
bus_info 1178
ioctl_internal_usb_get_
controller_name 1178
第29章 usb客户支持例程 1180
get_iso_urb_size 1180
get_select_configuration_
request_size 1180
get_select_interface_
request_size 1181
get_usbd_interface_size 1181
usbbuildfeaturerequest 1182
usbbuildgetdescriptorrequest 1183
usbbuildgetstatusrequest 1184
usbbuildinterruptorbulktransferrequest 1185
usbbuildselectconfigurationrequest 1186
usbbuildselectinterfacerequest 1187
usbbuildvendorrequest 1188
usbd_createconfigurationrequest 1190
usbd_createconfigurationrequestex 1190
usbd_getinterfacelength 1191
usbd_getusbdiversion 1192
usbd_parseconfigurationdescriptor 1192
usbd_parseconfigurationdescriptorex 1192
usbd_parsedescriptors 1194
usbd_registerhcfilter 1195
第30章 usb结构 1196
urb 1196
_urb_bulk_or_interrupt_
transfer 1198
_urb_control_descriptor_
request 1199
_urb_control_feature_request 1200
_urb_control_get_configuration
request 1201
_urb_control_get_interface_
request 1202
_urb_control_get_status_
request 1203
_urb_control_transfer 1204
_urb_control_vendor_or_class_
request 1205
_urb_frame_length_control 1207
_urb_get_current_frame
_number 1208
_urb_get_frame_length 1208
_urb_header 1209
_urb_isoch_transfer 1212
_urb_pipe_request 1214
_urb_select_configuration 1215
_urb_select_interface 1216
_urb_set_frame_length 1216
usb_configuration_descriptor 1217
usb_device_descriptor 1218
usb_endpoint_descriptor 1219
usb_interface_descriptor 1220
usb_hub_name 1221
usb_root_hub_name 1221
usb_string_descriptor 1221
usbd_interface_information 1222
usbd_interface_list_entry 1223
usbd_pipe_information 1223
usbd_iso_packet_descriptor 1224
第五部分 ieee 1394驱动程序
第31章 ieee 1394总线i/o请求 1227
ioctl_class_1394 1227
request_allocate_
address_range 1227
request_async_lock 1232
request_async_read 1234
request_async_stream 1236
request_async_write 1237
request_bus_reset 1239
request_bus_reset_notification 1239
request_control 1240
request_free_address_range 1241
request_get_addr_from_device_
object 1242
request_get_configuration_info 1243
request_get_generation_count 1246
request_get_local_host_info 1246
request_get_speed_between_
devices 1248
request_get_speed_topology_
maps 1249
request_isoch_allocate_
bandwidth 1249
request_isoch_allocate_channel 1251
request_isoch_allocate_
resources 1252
request_isoch_attach_buffers 1254
request_isoch_detach_buffers 1255
request_isoch_free_bandwidth 1256
request_isoch_free_channel 1257
request_isoch_free_resources 1257
request_isoch_listen 1258
request_isoch_query_
cycle_time 1259
request_isoch_query_resources 1260
request_isoch_set_channel_
bandwidth 1261
request_isoch_stop 1262
request_isoch_talk 1262
request_send_phy_config_
packet 1263
request_set_device_xmit_
properties 1264
request_set_local_host_
properties 1265
第32章 ieee 1394结构 1267
address_fifo 1267
address_offset 1267
address_range 1267
config_rom 1268
cycle_time 1268
get_local_host_info1 1269
get_local_host_info2 1269
get_local_host_info3 1270
get_local_host_info4 1270
get_local_host_info5 1271
get_local_host_info6 1271
io_address 1272
irb 1272
isoch_descriptor 1274
node_address 1276
notification_info 1276
phy_configuration_packet 1278
self_id 1279
self_id_more 1280
speed_map 1281
textual_leaf 1281
topology_map 1282
第六部分 pcmcia驱动程序
第33章 pcmcia_interface_standard
接口内存卡例程 1283
pcmcia_is_write_protected 1283
pcmcia_modify_memory_window 1284
pcmcia_set_vpp 1285
第七部分 smb客户驱动程序
第34章 smb ioctl 1287
smb_bus_request 1287
smb_deregister_alarm_notify 1288
smb_register_alarm_notify 1288
第35章 smb结构 1290
smb_class 1290
smb_register_alarm 1291
smb_request 1292
第八部分 wmi内核模式数据提供者
第36章 wmi irp 1293
irp_mn_change_single_instance 1293
irp_mn_change_single_item 1295
irp_mn_disable_collection 1297
irp_mn_disable_events 1298
irp_mn_enable_collection 1299
irp_mn_enable_events 1300
irp_mn_execute_method 1302
irp_mn_query_all_data 1304
irp_mn_query_single_instance 1306
irp_mn_reginfo 1308
第37章 wmi库支持例程 1312
wmicompleterequest 1312
wmifireevent 1313
wmisystemcontrol 1314
第38章 wmi库回调例程 1316
dpwmiexecutemethod 1316
dpwmifunctioncontrol 1317
dpwmiquerydatablock 1318
dpwmiqueryreginfo 1320
dpwmisetdatablock 1322
dpwmisetdataitem 1323
第39章 wmi结构 1325
wmilib_context 1325
wmiguidreginfo 1326
wmiregguid 1327
wmireginfo 1329
wnode_all_data 1330
wnode_event_item 1332
wnode_event_reference 1333
wnode_header 1333
wnode_method_item 1337
wnode_single_instance 1338
wnode_single_item 1339
wnode_too_small 1340
第40章 wmi事件跟踪结构 1341
event_trace_header 1341
第一篇 即插即用、电源管理和
设置驱动程序开发参考
第一部分 即 插 即 用
第1章 即插即用例程 3
设备信息例程 3
注册例程 3
设备接口例程 3
pnp通知例程 4
删除锁例程 4
其他pnp例程 4
ioacquireremovelock 5
ioacquireremovelockex 6
ioadjustpagingpathcount 6
iogetdeviceinterfacealias 6
iogetdeviceinterfaces 8
iogetdeviceproperty 9
ioinitializeremovelock 12
ioinitializeremovelockex 13
ioinvalidatedevicerelations 13
.ioinvalidatedevicestate 14
ioopendeviceinterfaceregistrykey 15
ioopendeviceregistrykey 16
ioregisterdeviceinterface 17
ioregisterplugplaynotification 19
ioreleaseremovelock 21
ioreleaseremovelockex 22
ioreleaseremovelockandwait 22
ioreleaseremovelockandwaitex 23
ioreportdetecteddevice 23
ioreportresourcefordetection 25
ioreporttargetdevicechange 27
ioreporttargetdevicechangeasynchronous 28
iorequestdeviceeject 29
iosetdeviceinterfacestate 31
iounregisterplugplaynotification 32
第2章 即插即用irp 34
irp_mn_cancel_remove_device 35
irp_mn_cancel_stop_device 36
irp_mn_device_usage_notification 37
irp_mn_eject 40
irp_mn_filter_resource_
requirements 41
irp_mn_query_bus_information 43
irp_mn_query_capabilities 44
irp_mn_query_device_relations 46
irp_mn_query_device_text 50
irp_mn_query_id 51
irp_mn_query_interface 54
irp_mn_query_legacy_bus
_information 58
irp_mn_query_pnp_device_state 58
irp_mn_query_remove_device 59
irp_mn_query_resource_
requirements 59
irp_mn_query_resources 61
irp_mn_query_stop_device 62
irp_mn_read_config 62
irp_mn_remove_device 64
irp_mn_set_lock 65
irp_mn_start_device 66
irp_mn_stop_device 67
irp_mn_surprise_removal 68
irp_mn_write_config 69
第3章 即插即用结构 72
device_capabilities 72
device_interface_change_
notification 75
hwprofile_change_notification 76
lpguid 76
plugplay_notification_header 77
pnp_device_state 77
target_device_custom_
notification 78
target_device_removal_
notification 79
第二部分 电 源 管 理
第4章 电源管理支持例程 81
pocalldriver 81
poregisterdeviceforidledetection 82
poregistersystemstate 84
porequestpowerirp 85
posetdevicebusy 87
posetpowerstate 88
posetsystemstate 89
postartnextpowerirp 90
pounregistersystemstate 91
第5章 电源管理的i/o请求 92
irp_mn_power_sequence 92
irp_mn_query_power 93
irp_mn_set_power 95
irp_mn_wait_wake 98
第6章 电池类驱动程序例程 101
batteryclassinitializedevice 101
batteryclassioctl 102
batteryclassstatusnotify 103
batteryclassunload 104
第7章 电池微类驱动程序例程 105
batteryminidisablestatusnotify 105
batteryminiqueryinformation 106
batteryminiquerystatus 108
batteryminiquerytag 109
batteryminisetinformation 110
batteryminisetstatusnotify 111
第8章 电池结构 113
battery_information 113
battery_manufacture_date 114
battery_reporting_scale 114
第三部分 设 置
第9章 inf文件节和命令 117
inf文件的通用语法规则 117
一个inf文件样例 119
inf节摘要 121
inf命令摘要 123
inf version 节 126
inf sourcedisksnames 节 129
inf sourcedisksfiles 节 130
inf classinstall32 节 132
inf destinationdirs 节 135
inf controlflags 节 138
inf manufacturer 节 140
inf models 节 141
inf ddinstall 节 143
inf ddinstall.services 节 147
inf ddinstall.hw节 150
inf ddinstall.coinstallers 节 152
inf ddinstall.interfaces 节 156
inf interfaceinstall32节 159
inf ddinstall.factdef 节 160
inf strings 节 162
inf addreg 命令 164
inf delreg 命令 168
inf copyfiles 命令 170
inf delfiles 命令 174
inf renfiles 命令 175
inf addservice 命令 176
inf delservice 命令 183
inf addinterface 命令 184
inf bitreg 命令 186
inf logconfig 命令 188
inf profileitems 命令 195
inf updateinis 命令 198
inf updateinifields 命令 200
inf ini2reg 命令 202
第10章 安装函数 204
inf 文件处理函数 204
磁盘提示和错误处理函数 205
文件队列函数 206
缺省队列回调例程函数 206
文件箱函数 207
磁盘空间列表函数 207
最常用源列表函数 207
日志文件函数 208
第11章 设备安装函数 209
更新驱动程序函数 209
setupdi 设备信息函数 209
setupdi 驱动程序信息函数 210
setupdi 驱动程序选择函数 210
setupdi 设备安装处理程序 211
setupdi 设备安装定制函数 211
setupdi 安装类函数 211
setupdi 类位图和图标函数 212
setupdi 设备接口函数 212
setupdi 注册函数 213
其他setupdi函数 214
setupdiaskforoemdisk 214
setupdibuildclassinfolist 214
setupdibuildclassinfolistex 215
setupdibuilddriverinfolist 216
setupdicallclassinstaller 218
setupdicanceldriverinfosearch 219
setupdichangestate 219
setupdiclassguidsfromname 220
setupdiclassguidsfromnameex 221
setupdiclassnamefromguid 222
setupdiclassnamefromguidex 223
setupdicreatedeviceinfo 223
setupdicreatedeviceinfolist 225
setupdicreatedeviceinfolistex 226
setupdicreatedeviceinterface 227
setupdicreatedeviceinterfaceregkey 228
setupdicreatedevregkey 229
setupdideletedeviceinfo 230
setupdideletedeviceinterfacedata 231
setupdideletedeviceinterfaceregkey 232
setupdideletedevregkey 232
setupdidestroyclassimagelist 234
setupdidestroydeviceinfolist 234
setupdidestroydriverinfolist 234
setupdidrawminiicon 235
setupdienumdeviceinfo 237
setupdienumdeviceinterfaces 237
setupdienumdriverinfo 238
setupdigetactualsectiontoinstall 239
setupdigetclassbitmapindex 241
setupdigetclassdescription 242
setupdigetclassdescriptionex 242
setupdigetclassdevs 243
setupdigetclassdevsex 245
setupdigetclassimageindex 246
setupdigetclassimagelist 247
setupdigetclassimagelistex 248
setupdigetclassinstallparams 248
setupdigetdeviceinfolistclass 249
setupdigetdeviceinfolistdetail 250
setupdigetdeviceinstallparams 251
setupdigetdeviceinstanceid 252
setupdigetdeviceinterfacealias 252
setupdigetdeviceinterfacedetail 254
setupdigetdeviceregistryproperty 255
setupdigetdriverinfodetail 257
setupdigetdriverinstallparams 258
setupdigethwprofilefriendlyname 258
setupdigethwprofilefriendlynameex 259
setupdigethwprofilelist 260
setupdigethwprofilelistex 261
setupdigetinfclass 262
setupdigetselecteddevice 262
setupdigetselecteddriver 263
setupdigetwizardpage 264
setupdiinstallclass 264
setupdiinstallclassex 265
setupdiinstalldevice 266
setupdiinstalldeviceinterfaces 267
setupdiinstalldriverfiles 268
setupdiloadclassicon 269
setupdimoveduplicatedevice 270
setupdiopenclassregkey 270
setupdiopenclassregkeyex 271
setupdiopendeviceinfo 272
setupdiopendeviceinterface 273
setupdiopendeviceinterfaceregkey 274
setupdiopendevregkey 275
setupdiregistercodeviceinstallers 276
setupdiregisterdeviceinfo 277
setupdiremovedevice 279
setupdiremovedeviceinterface 280
setupdiselectbestcompatdrv 280
setupdiselectdevice 281
setupdiselectoemdrv 282
setupdisetclassinstallparams 283
setupdisetdeviceinstallparams 283
setupdisetdeviceregistryproperty 284
setupdisetdriverinstallparams 286
setupdisetselecteddevice 286
setupdisetselecteddriver 287
setupdiunremovedevice 288
updatedriverforplugandplaydevices 288
第12章 设备安装结构 291
sp_addpropertypage_data 291
sp_classimagelist_data 291
sp_classinstall_header 292
sp_detectdevice_params 293
sp_device_interface_data 293
sp_device_interface_detail_data 294
sp_devinfo_data 294
sp_devinfo_list_detail_data 295
sp_devinstall_params 296
sp_drvinfo_data 300
sp_drvinfo_detail_data 301
sp_drvinstall_params 302
sp_enableclass_params 304
sp_installwizard_data 304
sp_movedev_params 304
sp_newdevicewizard_data 304
sp_powermessagewake_params 305
sp_propchange_params 305
sp_propsheetpage_request 307
sp_removedevice_params 308
sp_selectdevice_params 309
sp_troubleshooter_params 310
sp_unremovedevice_params 311
第13章 设备安装函数代码 312
dif_addpropertypage_advanced 312
dif_allow_install 314
dif_destroyprivatedata 315
dif_detect 316
dif_installdevice 318
dif_installdevicefiles 320
dif_installinterfaces 321
dif_newdevicewizard_finis_
hinstall 322
dif_newdevicewizard_posta_
nalyze 325
dif_newdevicewizard_prea_
nalyze 326
dif_newdevicewizard_preselect 327
dif_newdevicewizard_select 329
dif_powermessagewake 330
dif_propertychange 332
dif_register_coinstallers 333
dif_registerdevice 334
dif_remove 335
dif_selectbestcompatdrv 337
dif_selectdevice 338
dif_troubleshooter 341
dif_unremove 343
保留的dif代码 344
dif_addpropertypage_basic 344
dif_assignresources 344
dif_calcdiskspace 344
dif_detectcancel 344
dif_detectverify 344
dif_enableclass 344
dif_firsttimesetup 344
dif_founddevice 346
dif_installclassdrivers 346
dif_movedevice 346
废弃的dif代码 346
dif_destroywizarddata 346
dif_installwizard 346
dif_properties 346
dif_selectclassdrivers 347
dif_validateclassdrivers 347
dif_validatedriver 347
第14章 pnp配置管理程序函数 348
cm_add_empty_log_conf 348
cm_add_empty_log_conf_ex 350
cm_add_id 351
cm_add_id_ex 352
cm_add_res_des 353
cm_add_res_des_ex 354
cm_connect_machine 356
cm_disconnect_machine 356
cm_enumerate_classes 357
cm_enumerate_classes_ex 358
cm_enumerate_enumerators 358
cm_enumerate_enumerators_ex 359
cm_free_log_conf 360
cm_free_log_conf_ex 361
cm_free_log_conf_handle 362
cm_free_res_des 363
cm_free_res_des_ex 364
cm_free_res_des_handle 365
cm_free_resource_conflict_handle 366
cm_get_child 366
cm_get_child_ex 367
cm_get_depth 368
cm_get_depth_ex 369
cm_get_device_id 370
cm_get_device_id_ex 371
cm_get_device_id_list 372
cm_get_device_id_list_ex 373
cm_get_device_id_list_size 374
cm_get_device_id_list_size_ex 375
cm_get_device_id_size 376
cm_get_device_id_size_ex 377
cm_get_devnode_status 378
cm_get_devnode_status_ex 379
cm_get_first_log_conf 380
cm_get_first_log_conf_ex 381
cm_get_log_conf_priority 383
cm_get_log_conf_priority_ex 383
cm_get_next_log_conf 384
cm_get_next_log_conf_ex 385
cm_get_next_res_des 386
cm_get_next_res_des_ex 387
cm_get_parent 389
cm_get_parent_ex 389
cm_get_res_des_data 390
cm_get_res_des_data_ex 391
cm_get_res_des_data_size 392
cm_get_res_des_data_size_ex 393
cm_get_resource_conflict_count 393
cm_get_resource_conflict_details 394
cm_get_sibling 395
cm_get_sibling_ex 396
cm_get_version 397
cm_get_version_ex 397
cm_locate_devnode 398
cm_locate_devnode_ex 398
cm_modify_res_des 399
cm_modify_res_des_ex 400
cm_query_resource_conflict_list 402
cm_reenumerate_devnode 403
cm_reenumerate_devnode_ex 404
cm_request_device_eject 405
cm_request_device_eject_ex 406
第15章 pnp配置管理程序结构和类型 409
资源描述符结构 409
busnumber_des 409
busnumber_range 409
busnumber_resource 410
cs_des 410
cs_resource 411
devprivate_des 411
devprivate_range 412
devprivate_resource 412
dma_des 412
dma_range 413
dma_resource 413
io_des 414
io_range 414
io_resource 415
irq_des 415
irq_range 416
irq_resource 417
mem_des 417
mem_range 418
mem_resource 419
mfcard_des 419
mfcard_resource 420
pccard_des 420
pccard_resource 421
其他的结构 421
conflict_details 421
pnp 配置管理程序类型 422
pnp_veto_type 422
第16章 设备安装类 424
第17章 txtsetup.oem文件格式 431
txtsetup.oem文件中的disks节 431
txtsetup.oem文件中的defaults节 432
txtsetup.oem 文件中的hwcomponent节 432
txtsetup.oem 文件中的files.hw
component.id节 433
txtsetup.oem 文件中的config.driverkey节 434
txtsetup.oem 文件中的hardwareids.scsi.
service节 435
第二篇 内核模式驱动程序开发参考
第一部分 内核模式支持例程
第1章 内核模式支持例程概述 439
初始化和卸载 439
irp 447
同步 452
内存 461
dma 468
pio 469
驱动程序管理队列 469
驱动程序系统线程 471
串 472
数据转换 473
访问驱动程序管理的对象 474
错误处理 476
第2章 可执行支持例程 478
exacquirefastmutex 478
exacquirefastmutexunsafe 479
exacquireresourceexclusive 479
exacquireresourceexclusivelite 480
exacquireresourceshared 481
exacquireresourcesharedlite 481
exacquiresharedstarveexclusive 482
exacquiresharedwaitforexclusive 483
exallocatefromnpagedlookasidelist 484
exallocatefrompagedlookasidelist 485
exallocatefromzone 486
exallocatepool 486
exallocatepoolwithquota 487
exallocatepoolwithquotatag 488
exallocatepoolwithtag 489
exallocatepoolwithtagpriority 490
exconvertexclusivetoshared 491
exconvertexclusivetosharedlite 491
excreatecallback 492
exdeletenpagedlookasidelist 493
exdeletepagedlookasidelist 494
exdeleteresource 494
exdeleteresourcelite 494
exextendzone 495
exfreepool 495
exfreetonpagedlookasidelist 496
exfreetopagedlookasidelist 497
exfreetozone 498
exgetcurrentresourcethread 498
exgetexclusivewaitercount 499
exgetpreviousmode 499
exgetsharedwaitercount 500
exinitializefastmutex 501
exinitializenpagedlookasidelist 501
exinitializepagedlookasidelist 504
exinitializeresource 506
exinitializeresourcelite 506
exinitializeslisthead 507
exinitializeworkitem 508
exinitializezone 508
exinterlockedaddlargeinteger 508
exinterlockedaddlargestatistic 509
exinterlockedaddulong 510
exinterlockedallocatefromzone 511
exinterlockedcompareexchange64 511
exinterlockeddecrementlong 512
exinterlockedexchangeaddlargeinteger 512
exinterlockedexchangeulong 513
exinterlockedextendzone 514
exinterlockedflushslist 514
exinterlockedfreetozone 514
exinterlockedincrementlong 515
exinterlockedinsertheadlist 515
exinterlockedinserttaillist 516
exinterlockedpopentrylist 517
exinterlockedpopentryslist 518
exinterlockedpushentrylist 519
exinterlockedpushentryslist 520
exinterlockedremoveheadlist 521
exisfullzone 522
exisobjectinfirstzonesegment 522
exisprocessorfeaturepresent 522
exisresourceacquiredexclusive 523
exisresourceacquiredexclusivelite 523
exisresourceacquiredsharedlite 524
exlocaltimetosystemtime 525
exnotifycallback 525
exquerydepthslist 526
exqueueworkitem 527
exraiseaccessviolation 527
exraisedatatypemisalignment 527
exraisestatus 528
exregistercallback 529
exreinitializeresourcelite 530
exreleasefastmutex 531
exreleasefastmutexunsafe 532
exreleaseresource 532
exreleaseresourceforthread 533
exreleaseresourceforthreadlite 533
exreleaseresourcelite 533
exsetresourceownerpointer 534
exsettimerresolution 535
exsystemtimetolocaltime 535
extrytoacquirefastmutex 536
extrytoacquireresourceexclusivelite 537
exunregistercallback 537
exunidcreate 538
interlockedcompareexchange 538
interlockedcompareexchangepointer 539
interlockeddecrement 540
interlockedexchange 541
interlockedexchangeadd 542
interlockedexchangepointer 543
interlockedincrement 543
paged_code 544
probeforread 545
probeforwrite 545
第3章 硬件抽象层例程 547
allocateadapterchannel 547
allocatecommonbuffer 548
flushadapterbuffers 550
freeadapterchannel 551
freecommonbuffer 552
freemapregisters 553
getdmaalignment 554
getscattergatherlist 554
halallocatecommonbuffer 556
halassignslotresources 556
halexaminembr 557
halfreecommonbuffer 558
halgetadapter 558
halgetbusdata 558
halgetbusdatabyoffset 559
halgetdmaalignmentrequirement 559
halgetinterruptvector 559
halreaddmacounter 560
halsetbusdata 560
halsetbusdatabyoffset 561
haltranslatebusaddress 562
maptransfer 562
putdmaadapter 563
putscattergatherlist 564
readdmacounter 565
read_port_buffer_uchar 566
read_port_buffer_ulong 566
read_port_buffer_ushort 567
read_port_uchar 567
read_port_ulong 568
read_port_ushort 568
read_register_buffer_uchar 569
read_register_buffer_ulong 570
read_register_buffer_ushort 570
read_register_uchar 571
read_register_ulong 571
read_register_ushort 572
write_port_buffer_uchar 572
write_port_buffer_ulong 573
write_port_buffer_ushort 573
write_port_uchar 574
write_port_ulong 575
write_port_ushort 575
write_register_buffer_uchar 576
write_register_buffer_ulong 576
write_register_buffer_ushort 577
write_register_uchar 577
write_register_ulong 578
write_register_ushort 578
第4章 i/o 管理程序例程 580
ioacquirecancelspinlock 580
ioacquireremovelock 580
ioacquireremovelockex 581
ioadjustpagingpathcount 581
ioallocateadapterchannel 581
ioassignarcname 581
ioassignresources 582
ioattachdevice 584
ioattachdevicebypointer 586
ioattachdevicetodevicestack 586
iobuildasynchronousfsdrequest 587
iobuilddeviceiocontrolrequest 588
iobuildpartialmdl 590
iobuildsynchronousfsdrequest 590
iocalldriver 592
iocancelirp 593
iocheckshareaccess 594
iocompleterequest 595
ioconnectinterrupt 596
iocopycurrentirpstacklocationtonext 598
iocreatecontroller 598
iocreatedevice 599
iocreatefile 602
iocreatenotificationevent 608
iocreatesymboliclink 609
iocreatesynchronizationevent 610
iocreateunprotectedsymboliclink 611
iodeassignarcname 612
iodeletecontroller 612
iodeletedevice 613
iodeletesymboliclink 614
iofreeadapterchannel 614
iofreecontroller 615
iofreeirp 615
iofreemapregisters 616
iofreemdl 616
iofreeworkitem 617
iogetattacheddevicereference 617
iogetbootdiskinformation 618
iogetconfigurationinformation 619
iogetcurrentirpstacklocation 620
iogetcurrentprocess 621
iogetdeviceinterfacealias 621
iogetdeviceinterfaces 621
iogetdeviceobjectpointer 621
iogetdeviceproperty 623
iogetdevicetoverify 623
iogetdmaadapter 624
iogetdriverobjectextension 625
iogetfileobjectgenericmapping 625
iogetfunctioncodefromctlcode 626
iogetinitialstack 627
iogetnextirpstacklocation 627
iogetrelateddeviceobject 628
iogetremainingstacksize 629
iogetstacklimits 629
ioinitializedpcrequest 630
ioinitializeirp 631
ioinitializeremovelock 632
ioinitializeremovelockex 632
ioinitializetimer 632
ioinvalidatedevicerelations 633
ioinvalidatedevicestate 633
ioiserroruserinduced 633
ioiswdmversionavailable 634
iomakeassociatedirp 634
iomaptransfer 635
iomarkirppending 637
ioopendeviceinterfaceregistrykey 637
ioopendeviceregistrykey 638
ioquerydevicedescription 638
ioqueueworkitem 640
ioraiseharderror 641
ioraiseinformationalharderror 642
ioreadpartitiontable 643
ioregisterdeviceinterface 644
ioregisterdriverreinitialization 644
ioregisterplugplaynotification 646
ioregistershutdownnotification 646
ioreleasecancelspinlock 647
ioreleaseremovelock 647
ioreleaseremovelockex 647
ioreleaseremovelockandwait 647
ioreleaseremovelockandwaitex 647
ioremoveshareaccess 647
ioreportdetecteddevice 648
ioreportresourcefordetection 648
ioreportresourceusage 648
ioreporttargetdevicechange 650
ioreporttargetdevicechangeasynchronous 650
iorequestdeviceeject 651
iorequestdpc 651
ioreuseirp 651
iosetcancelroutine 652
iosetcompletionroutine 653
iosetdeviceinterfacestate 654
iosetharderrororverifydevice 654
iosetnextirpstacklocation 655
iosetpartitioninformation 656
iosetshareaccess 657
iosetthreadharderrormode 658
iosizeofirp 659
ioskipcurrentirpstacklocation 659
iostartnextpacket 660
iostartnextpacketbykey 661
iostartpacket 662
iostarttimer 663
iostoptimer 663
iounregisterplugplaynotification 664
iounregistershutdownnotification 664
ioupdateshareaccess 664
iowmiallocateinstanceids 665
iowmideviceobjecttoproviderid 666
iowmiregistrationcontrol 667
iowmisuggestinstancename 668
iowmiwriteevent 669
iowriteerrorlogentry 670
iowritepartitiontable 670
第5章 内核例程 672
keacquirespinlock 672
keacquirespinlockatdpclevel 673
kebugcheck 673
kebugcheckex 674
kecanceltimer 675
keclearevent 676
kedelayexecutionthread 676
kederegisterbugcheckcallback 678
keentercriticalregion 679
keflushiobuffers 679
kegetcurrentirql 680
kegetcurrentprocessornumber 680
kegetcurrentthread 681
kegetdcachefillsize 681
keinitializecallbackrecord 682
keinitializedevicequeue 682
keinitializedpc 683
keinitializeevent 684
keinitializemutex 685
keinitializesemaphore 686
keinitializespinlock 687
keinitializetimer 687
keinitializetimerex 688
keinsertbykeydevicequeue 689
keinsertdevicequeue 690
keinsertqueuedpc 691
keleavecriticalregion 691
kelowerirql 692
kepulseevent 692
kequeryinterrupttime 693
kequeryperformancecounter 694
kequeryprioritythread 695
kequerysystemtime 695
kequerytickcount 696
kequerytimeincrement 697
keraiseirql 697
keraiseirqltodpclevel 698
kereadstateevent 698
kereadstatemutex 699
kereadstatesemaphore 700
kereadstatetimer 700
keregisterbugcheckcallback 701
kereleasemutex 702
kereleasesemaphore 703
kereleasespinlock 704
kereleasespinlockfromdpclevel 705
keremovebykeydevicequeue 706
keremovedevicequeue 706
keremoveentrydevicequeue 707
keremovequeuedpc 708
keresetevent 709
kerestorefloatingpointstate 709
kesavefloatingpointstate 710
kesetbaseprioritythread 711
kesetevent 712
kesetimportancedpc 713
kesettargetprocessordpc 714
kesetprioritythread 715
kesettimer 715
kesettimerex 717
kestallexecutionprocessor 718
kesynchronizeexecution 719
kewaitformultipleobjects 720
kewaitformutexobject 722
kewaitforsingleobject 725
第6章 内存管理程序例程 728
address_and_size_to_span_pages 728
argument_present 729
byte_offset 729
bytes_to_pages 730
compute_pages_spanned 730
containing_record 730
field_offset 731
mmallocatecontiguousmemory 732
mmallocatecontiguousmemoryspecifycache 733
mmallocatenoncachedmemory 734
mmallocatepagesformdl 735
mmbuildmdlfornonpagedpool 736
mmcreatemdl 736
mmfreecontiguousmemory 737
mmfreecontiguousmemoryspecitycache 737
mmfreenoncachedmemory 738
mmfreepagesfrommdl 739
mmgetmdlbytecount 739
mmgetmdlbyteoffset 740
mmgetmdlpfnarray 740
mmgetmdlvirtualaddress 741
mmgetphysicaladdress 742
mmgetsystemaddressformdl 742
mmgetsystemaddressformdlsafe 743
mminitializemdl 744
mmisaddressvalid 745
mmisnonpagedsystemaddressvalid 746
mmisthisanntassystem 746
mmlockpagablecodesection 746
mmlockpagabledatasection 749
mmlockpagablesectionbyhandle 750
mmmapiospace 751
mmmaplockedpages 752
mmmaplockedpagesspecifycache 753
mmpageentiredriver 754
mmresetdriverpaging 755
mmpreparemdlforreuse 755
mmprobeandlockpages 756
mmquerysystemsize 757
mmsizeofmdl 757
mmunlockpages 758
mmunlockpagableimagesection 759
mmunmapiospace 760
mmunmaplockedpages 760
page_align 761
round_to_pages 761
第7章 对象管理程序例程 763
obdereferenceobject 763
obgetobjectsecurity 763
obreferenceobject 764
obreferenceobjectbyhandle 765
obreferenceobjectbypointer 766
obreleaseobjectsecurity 767
第8章 进程结构例程 769
pscreatesystemthread 769
psgetcurrentprocess 770
psgetcurrentprocessid 771
psgetcurrentthread 771
psgetcurrentthreadid 772
psgetversion 772
pssetcreateprocessnotifyroutine 773
pssetcreatethreadnotifyroutine 774
pssetloadimagenotifyroutine 775
psterminatesystemthread 777
第9章 运行时库例程 779
initializelisthead 779
initializeobjectattributes 780
insertheadlist 781
inserttaillist 781
islistempty 782
popentrylist 783
pushentrylist 783
removeentrylist 784
removeheadlist 785
removetaillist 785
rtlansistringtounicodesize 786
rtlansistringtounicodestring 787
rtlappendunicodestringtostring 788
rtlappendunicodetostring 788
rtlarebitsclear 789
rtlarebitsset 790
rtlchartointeger 791
rtlcheckbit 792
rtlcheckregistrykey 792
rtlclearallbits 793
rtlclearbits 794
rtlcomparememory 795
rtlcomparestring 795
rtlcompareunicodestring 796
rtlconvertlongtolargeinteger 797
rtlconvertlongtoluid 797
rtlconvertulongtolargeinteger 798
rtlconvertulongtoluid 798
rtlcopybytes 799
rtlcopymemory 800
rtlcopymemory32 800
rtlcopystring 801
rtlcopyunicodestring 802
rtlcreateregistrykey 802
rtlcreatesecuritydescriptor 803
rtldeleteregistryvalue 804
rtlenlargedintegermultiply 805
rtlenlargedunsigneddivide 805
rtlenlargedunsignedmultiply 806
rtlequalluid 806
rtlequalmemory 806
rtlequalstring 807
rtlequalunicodestring 808
rtlextendedintegermultiply 809
rtlextendedlargeintegerdivide 809
rtlextendedmagicdivide 809
rtlfillbytes 809
rtlfillmemory 810
rtlfindclearbits 810
rtlfindclearbitsandset 811
rtlfindclearruns 812
rtlfindfirstrunclear 813
rtlfindlastbackwardrunclear 814
rtlfindleastsignificantbit 815
rtlfindmostsignificantbit 815
rtlfindlongestrunclear 816
rtlfindnextforwardrunclear 816
rtlfindsetbits 817
rtlfindsetbitsandclear 818
rtlfreeansistring 819
rtlfreeunicodestring 820
rtlgetversion 820
rtlguidfromstring 821
rtlinitansistring 822
rtlinitializebitmap 822
rtlinitstring 823
rtlinitunicodestring 824
rtlint64tounicodestring 825
rtlintegertounicodestring 825
rtlintptrtounicodestring 826
rtllargeintegeradd 827
rtllargeintegerand 827
rtllargeintegerarithmeticshift 827
rtllargeintegerdivide 828
rtllargeintegerequalto 828
rtllargeintegerequaltozero 828
rtllargeintegergreaterthan 828
rtllargeintegergreaterthanorequalto 829
rtllargeintegergreaterorequaltozero 829
rtllargeintegergreaterthanzero 829
rtllargeintegerlessthan 829
rtllargeintegerlessthanorequalto 829
rtllargeintegerlessorequaltozero 830
rtllargeintegerlessthanzero 830
rtllargeintegernegate 830
rtllargeintegernotequalto 830
rtllargeintegernotequaltozero 831
rtllargeintegershiftleft 831
rtllargeintegershiftright 831
rtllargeintegersubtract 831
rtllengthsecuritydescriptor 831
rtlmovememory 832
rtlnumberofclearbits 833
rtlnumberofsetbits 833
rtlprefixunicodestring 834
rtlqueryregistryvalues 835
rtlretrieveulong 838
rtlretrieveushort 838
rtlsetallbits 839
rtlsetbits 840
rtlsetdaclsecuritydescriptor 840
rtlstoreulong 841
rtlstoreulonglong 842
rtlstoreulongptr 843
rtlstoreushort 843
rtlstringfromguid 844
rtltimefieldstotime 845
rtltimetotimefields 846
rtlulongbyteswap 846
rtlulonglongbyteswap 847
rtlunicodestringtoansisize 847
rtlunicodestringtoansistring 848
rtlunicodestringtointeger 849
rtlupcaseunicodechar 850
rtlupcaseunicodestring 850
rtlupperchar 851
rtlupperstring 852
rtlushortbyteswap 852
rtlvalidsecuritydescriptor 853
rtlverifyversioninfo 854
rtlvolumedevicetodosname 856
rtlwriteregistryvalue 857
rtlxunicodestringtoansisize 858
rtlzerobytes 858
rtlzeromemory 859
第10章 安全引用监视器例程 860
seaccesscheck 860
seassignsecurity 861
seassignsecurityex 863
sedeassignsecurity 865
sesingleprivilegecheck 866
sevalidsecuritydescriptor 866
第11章 zwxxx例程 868
zwclose 868
zwcreatedirectoryobject 869
zwcreatefile 870
zwcreatekey 876
zwdeletekey 878
zwenumeratekey 879
zwenumeratevaluekey 880
zwflushkey 882
zwmaketemporaryobject 882
zwmapviewofsection 883
zwopenfile 885
zwopenkey 886
zwopensection 886
zwopensymboliclinkobject 887
zwqueryinformationfile 888
zwquerykey 890
zwquerysymboliclinkobject 891
zwqueryvaluekey 892
zwreadfile 893
zwsetinformationfile 895
zwsetinformationthread 897
zwsetvaluekey 898
zwunmapviewofsection 900
zwwritefile 901
第12章 系统结构 904
ansi_string 904
cm_eisa_function_information 905
cm_eisa_slot_information 907
cm_floppy_device_data 908
cm_full_resource_descriptor 909
cm_int13_drive_parameter 910
cm_keyboard_device_data 910
cm_mca_pos_data 911
cm_partial_resource_descriptor 912
cm_partial_resource_list 916
cm_resource_list 916
cm_scsi_device_data 917
cm_serial_device_data 917
controller_object 918
device_description 919
device_object 920
dma_adapter 923
dma_operations 924
driver_object 925
file_alignment_information 927
file_basic_information 928
file_disposition_information 929
file_end_of_file_information 929
file_fs_device_information 930
file_full_ea_information 930
file_name_information 931
file_object 931
file_position_information 932
file_standard_information 933
io_resource_descriptor 934
io_resource_list 936
io_resource_requirements_list 937
io_stack_location 938
io_status_block 940
irp 940
key_basic_information 943
key_full_information 944
key_node_information 945
key_value_basic_information 945
key_value_full_information 946
key_value_partial_information 947
oem_string 948
pci_common_config 948
pci_slot_number 951
pool_type 951
rtl_osversioninfow 952
rtl_osversioninfoexw 953
scatter_gather_list 954
unicode_string 955
第13章 irp函数代码和ioctl 957
根据设备对象类型决定需要的i/o支持 957
公共i/o请求的输入和输出参数 958
irp_mj_cleanup 959
irp_mj_close 960
irp_mj_create 960
irp_mj_device_control 961
irp_mj_flush_buffers 962
irp_mj_internal_device_control 962
irp_mj_pnp 963
irp_mj_power 964
irp_mj_read 964
irp_mj_shutdown 965
irp_mj_write 966
定义i/o控制代码 967
设备类型专有的i/o请求 969
第二部分 串行和并行接口驱动程序
第14章 串行接口驱动程序参考 971
serial主要i/o请求 971
irp_mj_create 972
irp_mj_device_control 972
irp_mj_flush_buffers 974
irp_mj_internal_device_control 974
irp_mj_pnp 974
irp_mj_power 975
irp_mj_query_information 975
irp_mj_read 976
irp_mj_set_information 977
irp_mj_system_control 977
irp_mj_write 978
serial设备控制请求 979
ioctl_serial_clear_stats 980
ioctl_serial_clr_dtr 981
ioctl_serial_clr_rts 981
ioctl_serial_config_size 981
ioctl_serial_get_baud_rate 982
ioctl_serial_get_chars 982
ioctl_serial_get_commstatus 983
ioctl_serial_get_dtrrts 983
ioctl_serial_get_handflow 984
ioctl_serial_get_line_control 984
ioctl_serial_get_modem_control 985
ioctl_serial_get_modemstatus 985
ioctl_serial_get_properties 986
ioctl_serial_get_stats 986
ioctl_serial_get_timeouts 987
ioctl_serial_get_wait_mask 987
ioctl_serial_immediate_char 988
ioctl_serial_lsrmst_insert 988
ioctl_serial_purge 989
ioctl_serial_reset_device 990
ioctl_serial_set_baud_rate 990
ioctl_serial_set_break_off 991
ioctl_serial_set_break_on 991
ioctl_serial_set_chars 991
ioctl_serial_set_dtr 992
ioctl_serial_set_fifo_control 992
ioctl_serial_set_handflow 992
ioctl_serial_set_line_control 993
ioctl_serial_set_modem_control 994
ioctl_serial_set_queue_size 994
ioctl_serial_set_rts 995
ioctl_serial_set_timeouts 995
ioctl_serial_set_wait_mask 995
ioctl_serial_set_xoff 996
ioctl_serial_set_xon 996
ioctl_serial_wait_on_mask 997
ioctl_serial_xoff_counter 997
serial内部设备控制请求 998
ioctl_serial_internal_basic_
settings 998
ioctl_serial_internal_cancel_
wait_wake 999
ioctl_serial_internal_do_wait_
wake 999
ioctl_serial_internal_restore
_settings 1000
第15章 serenum驱动程序参考 1001
serenum设备控制请求 1001
ioctl_serenum_port_desc 1001
ioctl_serenum_get_port_name 1002
serenum内部设备控制请求 1003
ioctl_internal_serenum_
remove_self 1003
第16章 parport驱动程序参考 1004
parport主要i/o请求 1004
irp_mj_create 1004
irp_mj_internal_device_control 1005
parport内部设备控制请求 1005
ioctl_internal_deselect_device 1006
ioctl_internal_get_more_
parallel_port_info 1007
ioctl_internal_get_parallel_
pnp_info 1007
ioctl_internal_get_parallel_
port_info 1008
ioctl_internal_init_1284_3_bus 1008
ioctl_internal_parallel_clear_
chip_mode 1009
ioctl_internal_parallel_
connect_interrupt 1009
ioctl_internal_parallel_
disconnect_interrupt 1011
ioctl_internal_parallel_port_
allocate 1011
ioctl_internal_parallel_
port_free 1012
ioctl_internal_parallel_
set_chip_mode 1012
ioctl_internal_release_
parallel_port_info 1013
ioctl_internal_select_device 1013
ioctl_internal_xxx 1014
parport数据类型 1014
more_parallel_port_infor-
mation 1015
parallel_1284_command 1015
parallel_chip_mode 1016
parallel_pnp_information 1017
parallel_port_information 1018
parallel_interrupt_information 1019
parallel_interrupt_service_
routine 1020
parport回调例程 1021
clearchipmode 1021
deselectdevice 1022
freeport 1023
freeportfrominterruptlevel 1024
querynumwaiters 1025
tryallocateport 1025
tryallocateportatinterruptlevel 1026
tryselectdevice 1027
trysetchipmode 1028
第17章 parclass驱动程序参考 1030
parclass主要i/o请求 1030
irp_mj_create 1031
irp_mj_device_control 1031
irp_mj_internal_device_control 1032
irp_mj_query_information 1032
irp_mj_read 1033
irp_mj_write 1034
parclass设备控制请求 1035
ioctl_ieee1284_get_mode 1035
ioctl_ieee1284_negotiate 1036
ioctl_par_get_default_modes 1037
ioctl_par_get_device_caps 1037
ioctl_par_is_port_free 1038
ioctl_par_query_device_id 1038
ioctl_par_query_device_id_size 1039
ioctl_par_query_information 1040
ioctl_par_query_raw_device_id 1040
ioctl_par_set_information 1041
ioctl_par_set_read_address 1041
ioctl_par_set_write_address 1042
ioctl_serial_get_timeouts 1042
ioctl_serial_set_timeouts 1043
parclass内部设备控制请求 1044
ioctl_internal_disconnect_idle 1044
ioctl_internal_lock_port 1044
ioctl_internal_parclass_
connect 1045
ioctl_internal_parclass_
disconnect 1045
ioctl_internal_pardot3_
connect 1046
ioctl_internal_pardot3_
disconnect 1046
ioctl_internal_unlock_port 1046
parclass数据类型 1046
par_query_information 1047
par_set_information 1047
parclass_information 1048
parclass_negotiation_mask 1049
parclass回调例程 1050
determineieeemodes 1050
ieeefwdtorevmode 1051
ieeerevtofwdmode 1052
negotiateieeemode 1053
parallelread 1053
parallelwrite 1054
terminateieeemode 1055
第三部分 输入设备的驱动程序
第18章 hid 输入/输出请求 1057
hid类驱动程序支持的i/o请求 1057
ioctl_hid_get_poll_frequency_
msec 1057
ioctl_hid_set_poll_frequency_
msec 1058
ioctl_get_num_device_input_
buffers 1058
ioctl_set_num_device_input_
buffers 1059
ioctl_hid_get_collection_
information 1059
ioctl_hid_get_collection_
descriptor 1060
ioctl_hid_flush_queue 1061
ioctl_hid_get_feature 1061
ioctl_hid_set_feature 1062
ioctl_get_physical_descriptor 1062
ioctl_hid_get_hardware_id 1063
ioctl_hid_get_manufacturer_
string 1063
ioctl_hid_get_product_string 1064
ioctl_hid_get_serialnumber_
string 1064
ioctl_hid_get_indexed_string 1065
hid微驱动程序支持的i/o请求 1065
ioctl_get_physical_descriptor 1065
ioctl_hid_activate_device 1066
ioctl_hid_deactivate_device 1067
ioctl_hid_get_device_attributes 1067
ioctl_hid_get_device_descriptor 1067
ioctl_hid_get_feature 1068
ioctl_hid_get_indexed_string 1069
ioctl_hid_get_report_descriptor 1069
ioctl_hid_get_string 1070
ioctl_hid_read_report 1071
ioctl_hid_set_feature 1071
ioctl_hid_write_report 1072
第19章 客户hid支持例程 1074
hidd_flushqueue 1074
hidd_freepreparseddata 1074
hidd_getattributes 1075
hidd_getconfiguration 1075
hidd_getfeature 1076
hidd_gethidguid 1076
hidd_getindexedstring 1077
hidd_getmanufacturerstring 1077
hidd_getnuminputbuffers 1078
hidd_getphysicaldescriptor 1078
hidd_getpreparseddata 1079
hidd_getproductstring 1080
hidd_getserialnumberstring 1080
hidd_setconfiguration 1081
hidd_setfeature 1082
hidd_setnuminputbuffers 1082
hidp_getbuttoncaps 1083
hidp_getbuttons 1084
hidp_getbuttonsex 1086
hidp_getcaps 1087
hidp_getlinkcollectionnodes 1088
hidp_getscaledusagevalue 1088
hidp_getspecificbuttoncaps 1090
hidp_getspecificvaluecaps 1091
hidp_getusagevalue 1092
hidp_getusagevaluearray 1094
hidp_getvaluecaps 1095
hidp_maxusagelistlength 1096
hidp_setbuttons 1097
hidp_setscaledusagevalue 1098
hidp_setusagevalue 1100
hidp_setusagevaluearray 1101
hidp_translateusagestoi8042scancodes 1102
hidp_usagelistdifference 1102
第20章 客户hid结构 1104
hid_collection_information 1104
hidp_collection_desc 1104
hidd_attributes 1105
hidd_configuration 1106
hidp_button_caps 1106
hidp_caps 1108
hidp_link_collection_node 1109
hidp_value_caps 1111
usage_and_page 1113
第21章 微驱动程序hid支持例程 1115
hidregisterminidriver 1115
第22章 微驱动程序hid结构 1116
hid_device_attributes 1116
hid_device_extension 1116
hid_minidriver_registration 1117
hid_xfer_packet 1118
第23章 kbdclass驱动程序参考 1119
kbdclass主要i/o请求 1119
kbdclass设备控制请求 1124
kbdclass类服务回调例程 1130
keyboardclassservicecallback 1130
第24章 mouclass驱动程序参考 1132
mouclass主要i/o请求 1132
ioctl-xxx设备控制请求 1138
mouclass类服务回调例程 1139
第25章 i8042prt驱动程序参考 1141
i8042prt键盘主要i/o请求 1141
i8042prt键盘内部设备控制请求 1144
i8042prt鼠标主要i/o请求 1150
i8042prt鼠标内部设备控制请求 1153
i8042prt键盘回调例程 1156
i8042prt鼠标回调例程 1160
第26章 kbfiltr驱动程序参考 1163
kbfiltr内部设备控制请求 1163
kbfiltr回调例程 1165
第27章 moufiltr驱动程序参考 1169
moufiltr内部设备控制请求 1169
moufiltr回调例程 1171
第四部分 usb驱动程序
第28章 usb客户驱动程序i/o请求 1175
ioctl_internal_usb_submit_urb 1175
ioctl_internal_usb_reset_port 1176
ioctl_internal_usb_get_port_
status 1176
ioctl_internal_usb_enable_port 1176
ioctl_internal_usb_get_hub_
count 1177
ioctl_internal_usb_cycle_port 1177
ioctl_internal_usb_get_
roothub_pdo 1177
ioctl_internal_usb_get_
hub_name 1177
ioctl_internal_usb_get_
bus_info 1178
ioctl_internal_usb_get_
controller_name 1178
第29章 usb客户支持例程 1180
get_iso_urb_size 1180
get_select_configuration_
request_size 1180
get_select_interface_
request_size 1181
get_usbd_interface_size 1181
usbbuildfeaturerequest 1182
usbbuildgetdescriptorrequest 1183
usbbuildgetstatusrequest 1184
usbbuildinterruptorbulktransferrequest 1185
usbbuildselectconfigurationrequest 1186
usbbuildselectinterfacerequest 1187
usbbuildvendorrequest 1188
usbd_createconfigurationrequest 1190
usbd_createconfigurationrequestex 1190
usbd_getinterfacelength 1191
usbd_getusbdiversion 1192
usbd_parseconfigurationdescriptor 1192
usbd_parseconfigurationdescriptorex 1192
usbd_parsedescriptors 1194
usbd_registerhcfilter 1195
第30章 usb结构 1196
urb 1196
_urb_bulk_or_interrupt_
transfer 1198
_urb_control_descriptor_
request 1199
_urb_control_feature_request 1200
_urb_control_get_configuration
request 1201
_urb_control_get_interface_
request 1202
_urb_control_get_status_
request 1203
_urb_control_transfer 1204
_urb_control_vendor_or_class_
request 1205
_urb_frame_length_control 1207
_urb_get_current_frame
_number 1208
_urb_get_frame_length 1208
_urb_header 1209
_urb_isoch_transfer 1212
_urb_pipe_request 1214
_urb_select_configuration 1215
_urb_select_interface 1216
_urb_set_frame_length 1216
usb_configuration_descriptor 1217
usb_device_descriptor 1218
usb_endpoint_descriptor 1219
usb_interface_descriptor 1220
usb_hub_name 1221
usb_root_hub_name 1221
usb_string_descriptor 1221
usbd_interface_information 1222
usbd_interface_list_entry 1223
usbd_pipe_information 1223
usbd_iso_packet_descriptor 1224
第五部分 ieee 1394驱动程序
第31章 ieee 1394总线i/o请求 1227
ioctl_class_1394 1227
request_allocate_
address_range 1227
request_async_lock 1232
request_async_read 1234
request_async_stream 1236
request_async_write 1237
request_bus_reset 1239
request_bus_reset_notification 1239
request_control 1240
request_free_address_range 1241
request_get_addr_from_device_
object 1242
request_get_configuration_info 1243
request_get_generation_count 1246
request_get_local_host_info 1246
request_get_speed_between_
devices 1248
request_get_speed_topology_
maps 1249
request_isoch_allocate_
bandwidth 1249
request_isoch_allocate_channel 1251
request_isoch_allocate_
resources 1252
request_isoch_attach_buffers 1254
request_isoch_detach_buffers 1255
request_isoch_free_bandwidth 1256
request_isoch_free_channel 1257
request_isoch_free_resources 1257
request_isoch_listen 1258
request_isoch_query_
cycle_time 1259
request_isoch_query_resources 1260
request_isoch_set_channel_
bandwidth 1261
request_isoch_stop 1262
request_isoch_talk 1262
request_send_phy_config_
packet 1263
request_set_device_xmit_
properties 1264
request_set_local_host_
properties 1265
第32章 ieee 1394结构 1267
address_fifo 1267
address_offset 1267
address_range 1267
config_rom 1268
cycle_time 1268
get_local_host_info1 1269
get_local_host_info2 1269
get_local_host_info3 1270
get_local_host_info4 1270
get_local_host_info5 1271
get_local_host_info6 1271
io_address 1272
irb 1272
isoch_descriptor 1274
node_address 1276
notification_info 1276
phy_configuration_packet 1278
self_id 1279
self_id_more 1280
speed_map 1281
textual_leaf 1281
topology_map 1282
第六部分 pcmcia驱动程序
第33章 pcmcia_interface_standard
接口内存卡例程 1283
pcmcia_is_write_protected 1283
pcmcia_modify_memory_window 1284
pcmcia_set_vpp 1285
第七部分 smb客户驱动程序
第34章 smb ioctl 1287
smb_bus_request 1287
smb_deregister_alarm_notify 1288
smb_register_alarm_notify 1288
第35章 smb结构 1290
smb_class 1290
smb_register_alarm 1291
smb_request 1292
第八部分 wmi内核模式数据提供者
第36章 wmi irp 1293
irp_mn_change_single_instance 1293
irp_mn_change_single_item 1295
irp_mn_disable_collection 1297
irp_mn_disable_events 1298
irp_mn_enable_collection 1299
irp_mn_enable_events 1300
irp_mn_execute_method 1302
irp_mn_query_all_data 1304
irp_mn_query_single_instance 1306
irp_mn_reginfo 1308
第37章 wmi库支持例程 1312
wmicompleterequest 1312
wmifireevent 1313
wmisystemcontrol 1314
第38章 wmi库回调例程 1316
dpwmiexecutemethod 1316
dpwmifunctioncontrol 1317
dpwmiquerydatablock 1318
dpwmiqueryreginfo 1320
dpwmisetdatablock 1322
dpwmisetdataitem 1323
第39章 wmi结构 1325
wmilib_context 1325
wmiguidreginfo 1326
wmiregguid 1327
wmireginfo 1329
wnode_all_data 1330
wnode_event_item 1332
wnode_event_reference 1333
wnode_header 1333
wnode_method_item 1337
wnode_single_instance 1338
wnode_single_item 1339
wnode_too_small 1340
第40章 wmi事件跟踪结构 1341
event_trace_header 1341
Microsoft Windows 2000 Driver Development Kit.Volume 1,Design Guide
光盘服务联系方式: 020-38250260 客服QQ:4006604884
云图客服:
用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问
Video Player
×
Audio Player
×
pdf Player
×
亲爱的云图用户,
光盘内的文件都可以直接点击浏览哦
无需下载,在线查阅资料!