tagged memory allocation, 44
target objects, 103, 114, 147, 314
deleting, 116, 120, 121
TARGETLIBS macro, 627, 632
TARGETNAME macro, 626, 631
targets, I/O, 57, 98, 147, 307–321
creation and management, 313–321
deleting, 116
UMDF file handle targets, 353–354
UMDF implementation, 310–313
USB targets, 99, 355–376
TARGETTYPE macro, 626, 631
teardown, hardware, 531
template for UMDF drivers, 16, 475–493
test cases for annotations, 813–815
test installations, 636, 655–656, 711–714
test systems for drivers, 668–669
testing annotations, 813–814
testing WDF drivers, 667–696. See also debugging
best practices, 694–696
DMA drivers, 578–581
tools for, 63, 669, 695–696. See also specific tool by name
32-bit UMDF drivers, 85
threads, 39–41, 508–511
best practices, 527
blocking, 46
interrupt request levels. See IRQLs (interrupt request levels)
interruption scenarios, 518–523
IRQLs specific to, 512–515
priorities for, IRQLs vs., 38
work items and driver threads, 523–527
time-out values for I/O requests, 338–339
time value conversions, 461
timer objects, 104, 114, 459–464
deleting, 116, 120
synchronization scope, 395–396
Tlist.exe utility, 19, 699
TMF files, 434, 727
TMH file, including, 424
Toaster sample driver, 17
tools for driver development, 15
tools for driver testing, 63, 669, 695–696. See also specific tool by name
trace buffers, 414
trace consumers, 414–415
trace controllers, 413
trace logs, viewing, 435–437
trace message prefix, 729
trace preprocessor (Windows), 669
trace providers, 413, 425–427
trace sessions, 414, 433–439
Trace Tree pane (SDV Defect Viewer), 844
Tracefmt utility, 433, 437–439
Tracelog utility, 433, 437–439
Tracepdb utility, 433
Tracerpt utility, 433
TraceView utility, 433, 435–437
TraceWPP utility, 433
tracing, 411–439, 699
basics of, 412–417
best practices, 439
how to support, 420–432
message functions and macros, 417–419
running a trace session, 433–439
tools for, 63, 432–433
viewing messages with WinDbg, 725–726
tracking handles, 689
tracking reference counts, 709–710
training on driver development, 22
transfer direction, 355
transfer length (DMA devices), 554
transfer types (I/O), 34–35, 228–231
translated resource lists, 532
troubleshooting. See debugging
__try statements, annotating functions in, 790
typedef declarations, annotations on, 756–758