|
|
 |

 |
|
Microsoft® Windows® 2000 Driver Development Kit
|
|
 |
Author |
 |
Microsoft Corporation
|
 |
|
Pages |
3616
|
|
Disk |
N/A
|
|
Level |
Int/Adv
|
|
Published |
04/12/2000
|
|
ISBN |
9780735609297
|
|
ISBN-10 |
0-7356-0929-2
|
|
Price(USD) |
$169.99
To see this book's discounted price, select a reseller below.
|
|
|
|
|
 |
|
|
Index
Numbers
0 (the IoConfigIndex), 142
32-bit addressing and values, TDI, 1541
47 (the ConfigOptions), 141
1000 (the ConfigRegBase), 141
A
A (the attrs), 142
accelerated state management, 826
accelerations, permitted, 738
accelerators, 698
access rights, object, 318
access to shared resources, synchronizing, 1466
ACPI
BIOS, 156
drivers, 156, 212
specification, 40
ActiveX for print Web pages, 1124
adapter access ranges, setting up, 883
adapter channels
for common-buffer system DMA, 376
for packet-based DMA, 369
adapter objects, 361, 365
AdapterControl, 333, 530
AdapterControl routines, 333, 529, 531
adapters
accessing, 699
graphics, 697
video miniport drivers, changing state, 885
video miniport drivers, resetting, 898
AddDevice routines, 58, 60, 68
add-registry-sections, 1663–67, 1674
Add/Remove Hardware Wizard, 232
address families. See AFs
Adobe Font Metrics files. See AFM files
Advanced Configuration and Power Interface. See ACPI
advanced graphics port. See AGP
AFM files, converting to NTF, 1056
AFs
closing, 1615
connection-oriented NDIS and, 1600
opening from call managers and MCMs, 1612
operations on, 1610
registering from a call manager, 1611
AGP
accessing video miniport driver system memory, 893
DirectDraw, support, 778
handling DMA-style, 783
releasing video miniport driver memory, 894
video miniport drivers, using in, 893
alerts, response of waiting threads, 425
allocated configurations, 83
allocation
IRP, illustrated, 320
memory heap, 747
memory, linear, 748
mixed memory, 753
rectangular, memory, 751
alpha blending, 723
anamorphic format, 775
APCs, response of waiting threads, 425
applications
accessing INF files, 257
GDI as a graphics language, 644
printing to URLs, 1117
spooler and, 912
Unidrv and, 939
architectures
display, 695
video miniport drivers, 878
areas, filling closed paths, 679
arrays, sending and receiving, for packets, 1455
ASP files, 1120–24
associated DPCs, and timer objects, 401
asynchronous
framing, 1361
I/O support, 313
network I/O, 1191
rendering, 722
transfer requests, handling, 469
TDI, 1541
atomic restoration, 745
attribute flags, 141
attributes, GDI-managed, 645
attrs, 142
B
banked frame buffers, 729
bank-switched memory addressing, 755
Beginning of Frame. See BOF
Bezier curves, 677
BindAdapterHandler function, 1471
binding interfaces, specifying, 1674
bindings, 1339
bitmaps
copying, 680
device-dependent, creating, 671
display drivers and, 721
GDI-managed, 644
standard-format, 650
blending alpha, 723
blitting, 765–67, 819
block macros, 950, 951
blocks, ignored, 948
bob method, 774
BOF, 1449
Boolean values, 947
boot configurations, 82
brushes, 645, 684
BRUSHOBJ_pvAllocRbrush, 18
buffered I/O
errors, 623
using, 354, 517
buffering, triple, 760
buffers
accessing, frame, 700
allocating pools, 1253
banked frame, 729
clearing with MCD, 869
draw, 864
frame, 697
shared memory, 1253
variable length, failure to validate, 626
buffer size in IOCTLs and FSCTLs, 623, 624
bump mapping, 837
bundles, specifying membership, 1681
bus drivers, 42, 43, 48
child function hardware IDs and, 139
IRP_MN_QUERY_REMOVE_DEVICE requests and, 110
query-power IPRs and, 188, 203
removing devices, 117
set-power IRPs and, 180
starting a device, 100
system set-power IRPs and, 207
bus device, 69
buses, sending/receiving packets, 1439
bus filter drivers, 45, 49
busmasters
adapter object, allocating, 379
devices, initlialization of, 1252
DMA, 378
receiving data on NICs, 1294
bus-relative memory-space addresses, remapping, 597
C
cache coherency for DMA and PIO, maintaining, 601
cached data, flushing, 601, 603
caches, considerations for receiving data, 1291
callback function for property page, 284
callback handling of nonlocal display memory surfaces, 782
callback objects, 427–30
callbacks, 888, 1559
caller input and device state, errors, 630
call managers
active, changing the QoS, 1630
AFs and, 1610–12
initialization differences, 1603
vs. MCMs, 1602
performing connection-oriented operations, 1608
registering, 1515, 1611
SAPs, operations on, 1610
VCs and, 1604, 1618
call parameters, 1630, 1633
calls, 1635, 1643, 1645
incoming requests to close, 1645
incoming requests to drop a party from multipoint, 1638
indicating incoming, 1627
making, 1625
to NdisXxx functions and, 1603
parameters, incoming requests to change, 1633
setting up, 1625
cancelable IRPs, 537, 538, 548
Cancel routines, 546–48
requirements, 535
setting, 216
required, 332
cancel spin lock deadlocks, 635
capture video VBI, 788
catalog files, 232
CfgMgr API, 231
chained receive indications, TDI, 1543
CheckForHangHandler function, 1470
checksums, 1403, 1409
check-verify requests from the file system, responding to, 610
child devices, 150, 894, 895
child function hardware IDs, created by the PCMCIA bus driver, 139
ClAddPartyCompleteHandler function, 1481
class coinstallers, registering, 269
class drivers, 336, 338
class installers, 231, 271–3
class/port drivers, 336, 338, 484
ClCallConnectedHandler function, 1482
ClCloseAfCompleteHandler function, 1481
ClCloseCallCompleteHandler function, 1481
ClCreateVcHandler function, 1481
ClDeleteVcHandler function, 1481
ClDeregisterSapCompleteHandler function, 1481
ClDropPartyCompleteHandler function, 1481
ClientEventChainedReceive, 1560
ClientEventChainedReceiveDatagram, 1561
ClientEventChainedReceiveExpedited, 1561
ClientEventConnect, 1560
ClientEventDisconnect, 1560
ClientEventError and/or ClientEventErrorEx, 1560
ClientEventReceive, 1560
ClientEventReceiveDatagram, 1561
ClientEventReceiveExpedited, 1560
ClientEventSendPossible, 1561
client functions, registering in intermediate drivers, 1480
ClientPnPAddNetAddress, 1562
ClientPnPBindingChange, 1561
ClientPnPDelNetAddress, 1562
ClientPnPPowerChange, 1562
clients
adding a party to a multipoint call, 1635
AFs, closing, 1615
connection-oriented, 1643
connection-oriented operations, performing, 1606
VCs, creating, 1617
ClIncomingCallHandler function, 1481
ClIncomingCallQoSChangeHandler function, 1481
ClIncomingCloseCallHandler function, 1481
ClIncomingDropPartyHandler function, 1481
clip lists, 766
CLIPOBJ_ppoGetPath, 18
ClMakeCallCompleteHandler function, 1481
ClModifyCallQoSCompleteHandler function, 1481
ClOpenAfCompleteHandler function, 1480
CloseAdapterCompleteHandler function, 1472
ClRegisterSapCompleteHandler function, 1481
ClRequestCompleteHandler function, 1480
ClRequestHandler function, 1480
CoAfRegisterNotifyHandler function, 1474
coinstallers, 231, 259–68
color functions, supporting, DDI, 684
color management, 1157–60
ColorMode feature, 1009
colors
control initialization, 778
fills, 767
GDI space conversions, 651
handling formats, 1028
primary background, 977
space conversion, 766
COM interfaces, 1070–79
Command Buffer allocation, 821
Command Buffers, 820
command stream, 813
commands, printer, 975–91
comments, 948
Common-Buffer Busmaster DMA, 385
common-buffer system DMA, 374
Common Property Sheet User Interface. See CPSUI
communication links, 1446, 1447
compatibility testing, 706–08
compatible IDs, 236, 238
completion functions, 1191
complex flipping chains, restoring, 809
component changes, applying to the Registry, 1709
components
instance keys, 1664
PnP, 35
compressed texture surfaces, 795–96
CoNDIS
AFs, 1599, 1615
calls, making, 1625
calls, setting up, 1625
connections, 1339
data, sending and receiving, 1639
environment, 1597
features of WAN miniport drivers, 1343
incoming request to close a call, 1645
information, 1646
MCM vs. call manager, 1602
miniport status, indicating, 1648
NDPROXY and, 1395–96
operations, 1605–09
packets, sending/receiving on a VC, 1639, 1642
parties, 1599, 1634
reset, 1649
SAPs and, deregistering, 1599, 1612, 1614
TAPI initialization, 1385, 1387, 1395
telephonic services and, 1384
timing features, 1605
VCs and, 1599, 1617
WAN NIC miniport drivers, 1333
ConfigOptions, 140
ConfigRegBase, 140
configurability, driver design goals, 307
Configuration Manager. See CfgMgr API
configurations, 82–83
parameters, 1676
registers, 139, 142
connect and disconnect data, WSH DLL, 1591
connection endpoints
file objects and, 1547
opening in TDI, 1569
closing, 1585
connection-oriented transfers vs. connectionless transfers, 1582
connectionless data, sending/receiving, 1579
connectionless miniports, 1168
data, receiving, 1286
information, setting, 1307
mandatory OIDs, 1303
multipacket receives, 1209, 1286
multipacket sends, 1272
NDIS send and receive functions, 1225
packets, sending, 1271
querying, 1303
received data, indicating and transferring, 1209
single-packet receives, 1290
single-packet sends, 1275
statistics, 1296
upper-edge functions, 1212
connectionless transfers vs. connection-oriented transfers, 1582
connection-oriented clients
client-initiated request to close a call, 1643
dropping a party from a multipoint call, 1637
registering, 1517
registering in intermediate drivers, 1479
tearing down a call, 1643
connection-oriented miniports, 1168
information, setting, 1307
mandatory OIDs, 1306
multipacket receives, 1286
multipacket sends, 1208, 1276
NDIS send and receive functions, 1226
OIDs registered using WMI, 1312
querying, 1305
statistics, 1296
upper-edge functions, 1214
connection-oriented NDIS. See CoNDIS
connection-oriented operations, 1605–09
constants, 947
contexts
allocating an adapter-specific context area, 1248
creating/deleting, 805
device drivers, 326
displaying properties, 1709
maintaining state within, 805
in MCD, 859–61
setting up, 563
control channels, closing, 1586
Control Panel, compatibility testing requirements, 708
ControlFlags sections, 1663
controller extensions, creating controller object, 390
controller objects, 388, 390, 576
ControllerControl, 332
ControllerControl routines, 332, 530, 532
coordinates, 648
coprocessors, 698, 899–901
CoReceivePacketHandler function, 1473
CoSendCompleteHandler function, 1473
cosmetic lines, 673, 675
CoStatusHandler function, 1473
CPSUI, 940, 1147–55
create requests, open file object, 318
cross-platform Direct3D, driver development, 800
cube environment map support, 844
curves, 645, 677
CustomDpc, 333, 399, 511–18
custom notification, 134
custom setup application, 232
CustomTimerDpc, 333
CustomTimerDpc routines, 532–33, 403, 565–67
D
D1Latency, D2Latency, and D3Latency, 162
D3dCreateSurfaceEx, 807–09
D3DTSS_TEXCOORDINDEX, 815
D3DZB_FALSE, 836
D3DZB_TRUE, 836
D3DZB_USEW, 836
data
compression, 973, 985, 1026, 1084
emission, 985
files, 936, 939
filtering, 1084
integrity, 603, 612
out-of-band. See OOB data
sending and receiving, 1639
steps in receiving, 1293
transfer modes, 1542
transferring, 1263
types, 660, 1098–99
datagrams, 1580
DBG flag, 4
DC origin, 648
DC power policy, 199
DDB, 650
DdFlip method, 808
DDI, 663, 1068
Bezier curves, 677
bitmaps, copying, 680
brushes, realizing, 684
color and pattern functions, supporting, 684
cosmetic lines, 673
customized functions, 1080
device-dependent bitmaps, creating, 671
DirectDraw. See DirectDraw
display driver functions, 709
dithering, 685
driver initialization and cleanup, 668
enabling and disabling the surface, 670
filling areas (closed paths), 679
fonts and, 586–88
geometric wide lines, 674
graphics driver function support, 663, 664
graphics output, supporting, 672
lines and curves, drawing, 672
halftoning, 683
ICM, 684
initialization and termination functions, 668
optional graphics driver functions, 665
palettes, managing, 684
paths, 678
PDEV initialization and cleanup, 668
printer graphics, DLLs and, 925
print-specific functions, 927
styled cosmetic lines, 675
text, drawing, 690
TrueType font driver functions, 689
Unidrv and, 941
user mode, using in, 932
DDInstall.SoftwareSettings, 702
debugging, 5
deferred procedure call. See DPC
dependencies, specifying multiple, 1025
deserialized miniports, 1284
cache considerations for receiving data, 1291
driver-internal requirements, 1285
handling resource problems, 1276
multipacket sends, 1207, 1274
NDIS requirements, 1285
design
considerations, start devices, 101
general strategies for implementation, 698
designing drivers, DriverControl routines, 529
desktop management, display drivers, 714
detection, 1260
DEVICE_CAPABILITIES, 158, 159
device-centered PnP driver model, 68
device coinstaller values, 263
device configurations and layered drivers, 335
device control IRPs, satisfying, 517
DeviceD1 and DeviceD2, 159
device-dependent bitmap. See DDB
Device Driver Interface. See DDI
device drivers
illustrated, 320
intermediate, 439
lower-level vs. higher level, 434
requirements, 326, 337
StartIo rotuines, 490–93
third-party, 295
WDM, 101
device extensions, 348
creating, 350
driver-determined size and contents, 337
driver-maintained state, 326, 337
global storage, 339
initializing driver-specific, 352
device files, 252
device fonts, supporting in printer graphics DLLs, 931
device installation
coinstallers, 260
custom, 277, 278
files, specifying target locations, 254
flags, interpreted, 290
handling function codes, 282
functions, 272
role of components, 230
device interface change events, handling, 129
device interface change notification, 128–29
device interfaces, 443, 613–5
device-managed surfaces, 650
Device Manager, 232, 296
device nodes (devnodes), 50, 74
DEVICE_OBJECT, 48
device objects, 42, 50, 347–48
checking flags, 612
considerations, 339
creating, 350
device extension, 326
driver object, 331
initializing driver-specific, 352
keyboard, illustrated, 338
layered drivers and, 337
logical device, 339
mouse, illustrated, 338
naming, 443
number, 339
physical device, 339
pointer in I/O stack location, 323
relationship to driver object, 337
releasing, 576
required, 337
sample configuration, 338
setting flags for power management, 162
TDI, 1543
types, 48
virtual device, 339
DeviceOffset, 607
device power
capabilities, reporting, 158
IRPs, 166, 181–85
policy, managing, 178
state, determining correct, 205
device power-up, handling requests, 184
device query-power IRPs, 187
device queues
objects, 405–06
requirements, 497
device resources, ensuring access, 99
devices, 251
bus, 69
bus drivers, removing, 117
busmaster, 1252
child, 150, 894, 895
compatible IDs, 238
drivers, 236
filter drivers, removing, 117
function drivers, removing, 115
hardware IDs, 238
idle, detecting, 191
individual, power management, 173
INF files, 251
installation, components, 229
making available to applications/drivers, 613
managing, 232
memory-mapped, 1254
multifunction, supporting, 137, 146, 147, 150
new, installing, 239
paused, holding incoming IRPs, 108
PnP, 34, 70
polling, 590
power states, 174, 177
powering down, 168
powering up, 167
programming for I/O Operations, 495, 523
property pages, 281
removing, 97, 109
slave, 1256
sleep states, 211
sleeping states D1, D2, and D3, 175
starting, 80, 97–100
stopping, 97, 101, 102
using PIO, 358
waking systems, 211
working state D0, 175
device-specific idle detection, performing, 192
DeviceState, 159
device state D1, 175
device states, 630
device trees, 40, 69, 212
Device Verifier, 12–13
DeviceWake, 161
device wake-up, enabling, 168
DEVMODE structure, providing additions, 1072
!devnode, 50
DIF codes, 264–66
DispatchCreate functionality, 470
Direct Draw, changing modes on Windows 95/98, 768
direct I/O
with DispatchReadWrite, 477
errors, 628
using, 356, 518
user buffers, 357
direct memory access. See DMA
Direct3D
command buffers, 823
context management, 805
cross-platform, driver development, 800
DDI, 779
driver, 800–03, 830
reporting capabilities, 785
return values, 798
surface handles, 806
texture management, 810
vertex buffers, 825
DirectDraw, 739, 742
AGP support, 778
anamorphic format, 775
architectural, 740
atomic restoration, 745
bank-switched memory addressing on Windows 95/98, 755
blitting, 765
bob and weave, 774
callback handling, 782
clip lists, 766
color, 767, 778
complex surfaces and attachments, 744
DirectX VPE initialization, 777
display card, turning on, 768
displaying interleaved video with VPE, 774
display memory, 746
display problems for video, 772
DMA model nonlocal display memory and, 785
driver-managed textures, losing, 746
drivers, 739, 742–44, 768–69
DrvDeriveSurface, 725
DxApi miniport functions for Windows 2000, 788
DxApi miniport initialization, 789
Enable function, 769
enumerating DXT formats, 795
extended surfaces and capabilities, 790–94
flips, 762–63
flipping, 759
GDI and, 725
handling DMA-style AGP, 783
hardware emulation layer, 743
HeapVidMemAllocAligned and VidMemFree, 726
interfaces for kernel-mode video transport support, 777
interleaved data and, 774
kernel-mode video transport, 785, 787
linear memory allocation, 748
memory configuration examples, 748
memory heap allocation, 747
mixed memory allocation, 753
mode indicator, 775
motion compensation, 797
MPEG and progressive content, 774
new surface capabilities, 792
nonlocal display memory, 779
notification of actual heap base addresses, 780
NTSC and interlaced data, 772
NTSC/PAL conversion, 773
older alignment method, review 790
overlay support, 765
progressive scan monitors, 774
rectangular memory allocation, 751
ReEnable function, 769
references, 739
reordering textures in nonlocal display memory, 783
return values, 798
sample code, 739
specifying nonlocal display memory heaps, 779
surfaces, 744–45, 791–96
tearing, 760
texture support, 765
transparent blits, 766
triple buffering, 760
user-mode handles, 788
VflatD, using, 758
video VBI capture, 789
VPE and, 771, 776, 786
weave method, 775
directives, preprocessor, 953
directory identifiers. See DIRIDs
DirectX, 771, 777
DirectX 7.0 release notes, 850
DIRIDs, 1130
DIRQL, 394
discardable code, 1465, 1506
DispatchCleanup, 473, 474
DispatchClose, functionality, 470
DispatchCreateClose, 472
DispatchCreateClose routines, 471
DispatchDeviceControl, 480–85
DispatchInternalDeviceControl, 485
Dispatch(Internal)DeviceControl Functionality, 480
DispatchPnp routines, 61, 97
DispatchPower routines, 62, 157, 163
DispatchRead, 476, 479
DispatchReadWrite, 476–49
Dispatch routines, 87, 330, 333, 460–65
driver object, 328
errors, 632
DispatchWrite, 476, 479
display architecture, 695
display cards, turning on, 768
display components, DirectDraw. See DirectDraw
display drivers, 709
alpha blending, 723
architecture, 695
asynchronous rendering, 722
banked frame buffers, supporting, 729
bitmaps in, 721
color management for displays, 724
compatibility testing requirements, 706–07
controlling pointers with DrvSetPointerShape, 720
DDI functions, 709
desktop management, 714
DirectDraw and GDI, 725
DitherOnRealize flag, supporting, 728
DrvAssertMode, 715
DrvDeriveSurface, 725
DrvGetModes, 715
dynamic change of permitted driver accelerations, 738
dynamic reload using NewDisp, 737
functions, 710–11
gradient fills, 723
HeapVidMemAllocAligned and VidMemFree, 726
initalizing video miniport drivers for communication, 887
initialization, 712
installing a monitor profile, 724
limitations on batching DirectDraw drawing calls, 722
managing display palettes, 720
mirror drivers, 733, 735
monitor profiles, 724–25
moving the pointer with DrvMovePointer, 720
multiple-monitor support, 733
multiple PDEVs, supporting, 715
pointers and, 718, 719
responsibilities, 696
special effects, 723
testing tools, 736
tracking window changes, 726
transparency, 723
unloading video hardware, 732
Displaying and Changing Properties, 1702
display memory, 783, 785
display memory heaps, nonlocal, 779
displays
color management, 724
INF file sections, 702
memory, 746
dithering, DDI, 685
DLL architecture, WSH, 1587
DLLs
language monitors, 1103
Point and Print, 1142
port monitors, 1103, 1106, 1107
printer graphics, 921–33
print processors, 1097
Pscript components, 1054
resource DLLs in a minidriver, using, 960
spooler router, 912
Unidrv, 939, 940
DMA
adapter objects and, 361
AGP, handling, 783
busmaster device initialization, 1252
cache coherency, maintaining, 601
controllers, 603
functions, 1220
MCD, support for, 863
operations, flushing cached data, 601
packets, sending on a busmaster NIC, 1279
resources in miniports and, 1279–81
shutdown handler and, 1332
slave device initialization, 1256
transfers, requirements, 601
DMA model nonlocal display memory, 785
document conventions, 642
double-completed IRPs, 634
DPC
handler, 1266
objects, 397, 400
routine, 322
DpcForIsr, 332, 512–18
DpcForIsr routine, 332, 397, 511
draw buffers, 864
drawing
color pointers, 719
DirectDraw limitations, 722
lines and curves, 672
monochrome pointers, 719
paths, 678
pointers, 719
services, 657
text, 690
driver allocated command buffers, 822
driver-allocated resources, releasing, 574
driver allocated vertex buffers, 822
driver behavior, monitoring, 19
driver code, 85, 617
driver configuration, and sample devices, 335
DriverControl routines, 528, 529
driver design goals, 305–07
driver development environment, 3
driver dispatch table, initializing, 57
DriverEntry, 452–54, 1506
DriverEntry function, 1237–45, 1466
DriverEntry routines, 56, 328, 331, 451–53
driver layers, 42
driver-managed queues, 498–99
driver-managed textures, 819
driver objects, 327–30, 337
driver routines
additional requirements, 514
cancelable IRPs, 538
choosing names, 443
required with ISR, 506
drivers
ACPI, 156, 212
added to chain of existing drivers, 325
adding, considerations, 337
bus. See bus drivers
bus filters, 45, 49
chain, 324
cleanup, 668
communication between drivers, 327
communication with GDI, 646
designing, 444
developing, 447
device, 68, 101, 337
device power policy, and, 178
display. See display drivers
failing a query-remove IRP, 113
failing a query-stop IRP, 103
filter. See filter drivers
function. See function drivers
GDI, 643
graphics, 10
GUIDs, using in, 83
handling IRP_MN_QUERY_STOP_DEVICE requests, 103
highest-level, access limitations to I/O stack location, 324
initialization, 56, 668, 1553
intermediate, 335, 337, 1169
interoperability with existing drivers, 326
layered, 316, 324
layers , 45
lower, postponing PnP IRP processing, 91
lower-filter, 79
lower-level, 45, 468
lowest-level, access limitations to I/O stack location, 325
Microsoft Plotter Driver. See MSPlot
mirror, 733
object-based, 316
optional, 49, 50
paging, 622
paired driver communication, 327
PnP, 60, 67, 230
power management, 155–58
printer. See printer drivers
protocol, 1169
reliability issues, 623
removing devices, 109
response to PnP IRP, 90
response to surprise removes, 122
reuse, 327, 335
serial, 1183, 1336
standard routines, system-defined, 316
storage requirements, 529
support routines, defining, 343
system-supplied, 326, 335
TDI, 1178, 1557
testing, 7
thread context, 326, 337
TrueType font functions, 689
types, 42
upper-filter, 79
upper-level filter, 45
user-mode, 317, 320
user-space memory, 592
VDD, 320
video miniport. See video miniport drivers
WDM, 36
driver-side surface structures, creating via D3dCreateSurfaceEx, 806
driver-supplied spin lock, using with Cancel routines, 540
driver threads, 489, 591
driver unload, checking, 10
Driver Verifier, 7
activating/monitoring, 18
automatic checks, 9
capabilities, 8
command line, 19
for graphics drivers, 15
I/O verification, 14
inapplicable graphics driver options, 16
Manager, 20
memory pool, 10
DumpData, 607
DumpDataSize, 605
DxApi miniport, 788–89
DXT enumerating formats, 795
dynamic binding, 1474, 1522
E
EMF, 925, 1098
emulation, 838
endpoint-to-endpoint connections, 1573, 1576, 1578, 1584
end-user I/O requests, and Windows 2000 file objects, 316
EngAllocMem, 17
EngAllocUserMem, 17
EngCreateBitmap, 17
EngCreateClip, 18
EngCreateDeviceBitmap, 18
EngCreateDeviceSurface, 18
EngCreateDriverObject, 18
EngCreatePalette, 18
EngCreatePath, 18
EngCreateWnd, 18
engine-managed surfaces, 649
Enhanced Metafile. See EMF
entry points in driver object, 328
Enum branch, 75
enumerators, 76
ERROR_DI_DO_DEFAULT, 272
ErrorCode, 606
error log packets, 604–07
error notifications, receiving, 1584
errors
buffered I/O, 623
caller input and device state, 630
coinstallers, and, 263
direct I/O, 628
Dispatch routines, 632
handling during initialization, 1258
handling IRPs, 634
logging, 604, 607, 608
multiprocessor environments, 633
referencing user-space addresses, 627
Win32, 272
EventCategory, 606
EventCategoryDeviceInterfaceChange, 126
EventCategoryHardwareProfileChange, 127
EventCategoryTargetDeviceChange, 126
event notification, TDI, 1541
event objects, 415
events, 1189
vs. requests in TDI, 1550
unsolicited handling, 1372
ExAllocatePool, 60
executables, geninf.exe, 701
execution context drivers, 326
ExInitializeNPagedLookasideList, 60
ExInitializePagedLookasideList, 60
expedited delivery, TDI, 1543
extended surface alignment, 790–91
extensible communication, TDI, 1541
extents adjustment, 835
F
Fast Forwarding Path. See FFP
Fast IrDA. See FIR
FDO, 48
FFP, 1427–32
FILE_DEVICE_SECURE_OPEN, 58, 61
file objects
access rights, 318
handle, 319, 320
opening, illustrated, 318
pointer in I/O stack location, 323
representing connection endpoints, 1547
representing control channels, 1547
representing transport addresses, 1545
TDI, 1545
user-mode I/O requests, 318
user-visible, 316
file open security, tightening, 61
files, 232, 940
file systems
drivers, 351
FSD/FSP, 325
mounting volume, 318
notification of media changes, 611
fill modes, paths, 678
fills, 723, 767
Filter Device Object. See filter DO
filter DO, 48, 156
filter drivers, 42, 44
AddDevice routines, 58
devices, removing, 117
devices, starting, 100
query-power IRPs and, 188, 203
set-power IRPs and, 180
filtered configurations, 82
filter-hook drivers, 1167, 1169
filter services, 1679–80
FinalStatus, 606
FIR, 1454, 1458–59
FIX coordinates, 648
flags, checking in device objects, 612
flexible addressing scheme, TDI, 1541
flexible vertex formats. See FVF
flipping, 759, 623, 763
floating point support, 659
fonts
cartridges, 1020
customized font installers for Unidrv, 1094
customized management, 1085
DDI functions, supporting, 686
default TrueType substitutions, 1023
driver functions, 688
hardware-resident, 1019
managing and optimizing, 686
metric functions, 687
printer, 1019–20, 1022–23
printer attributes, 971
printer commands, 981
substitution, 1022
UFM files, 1085
font services, GDI, 658
forced configuration, 83
frame buffers, 697
accessing, 700
banked, 729
management in MCD, 863
framing, 1361, 1363
FSD, 320, 323
function drivers, 42, 44, 50, 79
AddDevice routines, 58
devices, removing, 115
devices, starting, 98
IRPs and, 180, 188
Functional Device Object. See FDO
functions
completion, 1191
display driver, DDI, 709–11
DriverEntry, 1237
Enable, 769
font and text, 686–88
halt, 1329
hookable, for GDI, 653
intermediate drivers, required vs. optional, 1471
ISR, 1265
MiniportInitialize, 1237
MiniportXxx, 1199
NDIS. See NDIS functions
protocol, registering in NDIS, 1508, 1510
ReEnable, 769
reset, 1329
shutdown, 1257, 1329
TrueType font driver, 689
WSH, 1593
FVF, 811, 827
code changes, 841
texture dimension, 827
update, 851
vertex component ordering, 828
vertex data components, 828
Next
Last Updated: Friday, July 6, 2001 |