E


_ecount annotation, 761, 766–768

elevated privileges, working with, 15

ENABLE_EVENT_TRACING macro, 632

encapsulation (COM), 587

endpoints on USB devices, 355–356

Enhanced I/O Verification option (Driver Verifier), 678

entry actions, SDV rules for, 826

EnumDevices.wsf script, 676

enumerated types, incorrect, 747–748, 785–787

enumeration of devices

child devices, 143, 157–159

startup and, 180–183

enumeration of pipes for USB interfaces, 367

error messages, annotations for, 790

errors

coding, detecting. See PREfast for Drivers

detecting in drivers. See testing WDF drivers

driver installation, 664–666

HRESULT type vs., 594

IRQL-related, 521–523

in KMDF drivers, 59, 83

observing with SDV. See SDV (Static Driver Verifier)

reported in wrong places, 744–746

in UMDF drivers, 58, 80

UMDF Verifier, 691

Windows Error Reporting (WER), 692–693, 696

ES scenario (PwrTest), 675

ETW (Event Tracing for Windows), 411, 416–417

event callbacks. See callbacks

events (framework objects), 54

events (WDF), 93. See also callbacks

KMDF naming conventions, 105

UMDF naming conventions, 96–97

events for driver developers, 22

events of COM objects, 594–595

EvtChildListCreateDevice callback, 158, 183

EvtChildListScanForChildren callback, 182, 183

EvtCleanupCallback callback, 108, 117, 119–121, 139, 185

cleaning up tracing, 430–431

EvtCleanupContext callback, 186, 189

EvtDestroyCallback callback, 108, 118, 119, 121–122, 185

EvtDestroyContext callback, 186, 189

EvtDeviceArmWakeFromS0 callback, 173, 185, 217

EvtDeviceArmWakeFromSx callback, 173, 185, 214–215, 217, 221

EvtDeviceD0Entry callback, 172, 182, 183, 204–205

post-interrupt processing, 543

EvtDeviceD0EntryPostInterruptsEnabled callback, 173, 182, 183, 195, 538, 541

post-interrupt processing, 543

EvtDeviceD0Exit callback, 172, 185, 186, 189, 196, 204–205

post-interrupt processing, 543

EvtDeviceD0ExitPreInterruptsDisabled callback, 173, 185, 196, 538, 542

post-interrupt processing, 543

EvtDeviceDisableWakeAtBus callback, 159, 173, 183, 186

EvtDeviceDisarmWakeFromS0 callback, 173, 182, 183

EvtDeviceDisarmWakeFromSx callback, 173, 182, 183, 215

EvtDeviceEject callback, 159

EvtDeviceEnableWakeAtBus callback, 159, 173, 183, 186

EvtDeviceFileCreate callback, 274, 279–280, 391

execution level, 397

EvtDeviceFilterAddResourceRequirements callback, 173, 182, 183

EvtDeviceFilterRemoveResourceRequirements callback, 173, 182, 183

EvtDevicePrepareHardware callback, 172, 182, 183, 203, 530–531, 534

idle characteristics configuration, 208–209

EvtDeviceQueryRemove callback, 172

EvtDeviceQueryStop callback, 172

EvtDeviceReleaseHardware callback, 172, 185, 186, 189, 203, 530–531, 536

EvtDeviceRemoveAddedResources callback, 153, 173, 182, 183

EvtDeviceResourceRequirementsQuery callback, 159, 173, 183

EvtDeviceResourcesQuery callback, 159, 173, 183

EvtDeviceSelfManagedIoXxx callbacks, 172, 182–186, 189, 299, 300, 301

watchdog timer example (KMDF), 301–305

EvtDeviceSetLock callback, 159

EvtDeviceSurpriseRemoval callback, 172, 188

EvtDeviceWakeFromS0Triggered callback, 173, 215

EvtDeviceWakeFromSxTriggered callback, 173, 215, 221

EvtDeviceWdmIrpPreprocess callback, 504

EvtDmaEnablerDisable callback, 186, 189

EvtDmaEnablerEnable callback, 182, 183

EvtDmaEnablerFill callback, 182, 183

EvtDmaEnablerFlush callback, 185, 186, 189

EvtDmaEnablerSelfManagedIoStart callback, 182, 183

EvtDmaEnablerSelfManagedIoStop callback, 185, 186, 189

EvtDpcFunc callback, 391, 515

EvtDriverDeviceAdd callback, 133–135, 138, 146, 152–153, 182, 183, 194

DMA driver implementation, 564–566

idle characteristics configuration, 208–209

processing unsupported I/O requests, 504

software-only drivers, 192–194

tasks of, 155

thread context, 510

EvtDriverUnload callback, 134, 138

EvtFileCleanup callback, 281, 391

execution level, 397

EvtFileClose callback, 281, 391

execution level, 397

EvtInterruptDisable callback, 173, 185, 516, 538, 541

post-interrupt processing, 543

EvtInterruptDpc callback, 391, 404–407, 515, 516, 519, 521, 538, 546–547

DMA drivers, 575–577

EvtInterruptEnable callback, 173, 182, 183, 516, 538, 541–542

post-interrupt processing, 543

EvtInterruptIsr callback, 400, 519, 521, 538, 544–545

DMA drivers, 575–577

EvtInterruptSynchronize method, 516, 546–547

EvtIoCanceledOnQueue callback, 252, 293, 391

EvtIoDefault callback, 283, 286, 289–290, 391

EvtIoDeviceControl callback, 286, 288–289, 391

EvtIoInCallerContext callback, 250–252, 511

EvtIoInternalDeviceControl callback, 286, 391

EvtIoQueueState callback, 268, 391

EvtIoRead callback, 283, 285–286, 391

EvtIoResume callback, 182, 183, 258, 391

EvtIoStop callback, 185, 186, 189, 204, 258, 391

EvtIoTargetXxx callbacks, 320–321

EvtIoWrite callback, 283, 391

EvtObjectCleanup callback, 252

EvtProgramDma callback, 572–575

EvtRequestCancel callback, 391, 405–406

EvtTimerFunc callback, 391, 460, 461–462

EvtUsbTargetPipeReadComplete callback, 375

EvtUsbTargetPipeReadersFailed callback, 375

EvtWmiInstanceExecuteMethod callback, 470

EvtWmiInstanceQueryInstance callback, 470–471

EvtWmiInstanceSetInstance callback, 470, 472, 473

EvtWmiInstanceSetItem callback, 470, 472–473

EvtWorkItem callback, 391, 524–525

ExAcquireResourceExclusiveLite function, 780

ExAllocatePoolWithTag DDI, 442

execution levels in KMDF drivers, 396–398

execution threads. See threads

ExecutionLevel attribute, 108

ExInterlockedXxx routines, 500

exit actions, SDV rules for, 826

Exports.def file, 477, 488

extensions, debugger, 704–706. See also debugging WDF drivers




Developing Drivers with the Microsoft Windows Driver Foundation
Developing Drivers with the Windows Driver Foundation (Pro Developer)
ISBN: 0735623740
EAN: 2147483647
Year: 2007
Pages: 224

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net