Training
Certifications
Books
Special Offers
Community




 
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.
 

More Information

About the Book
Table of Contents
Sample Chapter
Index
Related Series
Related Books
About the Author

Support: Book & CD

Rate this book
Barnes Noble Amazon Quantum Books

 

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




Top of Page


Last Updated: Friday, July 6, 2001