BARs (base address registers), 534
base objects, 97, 454–455
deleting, 116
in object hierarchy, 112
base priority (threads), 508
Basic_SimpleIO.wsf script, 676
BATTERY scenario (PwrTest), 675
_bcount annotation, 761, 766–768
binary files, 623, 642, 661
binding to WDF framework, 639–640
blocking threads, 46
blogs for more information, 21
boosting thread priority, 509
boot-start drivers, signing, 654
Boot.ini file, 712
breaking into debugger, 688
BufAfterReqCompletedXxx rules, 851
buffer pointer lifetime, 252–253
buffer-size annotations, 765–771
buffered I/O, 34–35, 228, 229
retrieving buffers in KMDF drivers, 249
buffers
allocating for driver-created I/O requests, 323–330. See also allocating memory
annotations for, 768–771
DMA transfers, 552, 554, 560–562
lifetimes of, 324–325
lookaside lists, using, 445–446
retrieving, 245–252
bug checks, 47, 692, 728
Build utility, 619–620
flags for, 623
supporting files, 620–622
building WDF drivers, 617–633
build environments and supporting files, 619–622
debugging. See debugging WDF drivers
Fx2_Driver sample driver, 625–629
general considerations, 618–619
Osrusbfx2 sample driver, 630–633
projects, 622–624
testing best practices, 694–695
builds of Windows, obtaining, 17–18
bulk transfers (I/O model), 357–358
bus drivers, 29, 142, 144
create requests, not accepting, 279–280
enumeration of child devices, 157–158
I/O request flow through, 237
Plug and Play basics, 167–168
power management, 169
bus-master devices, 550. See also DMA (direct memory access)
buses, levels of, 29–30