macroDefined$ function, 783
macros, 46
macros for debugging, 699
maintaining IRQL, annotations for, 806
maintaining released drivers, 696
major version numbers, 63–64, 637
updates, 638
Make file, 621
Fx2_Driver sample driver, 629
Osrusbfx2 sample driver, 632–633
Skeleton sample driver, 477, 488
Makefile.inc file, 621–622
Fx2_Driver sample driver, 629
Osrusbfx2 sample driver, 632–633
Skeleton sample driver, 477, 488
manual I/O request dispatching, 56, 259, 264, 267–271, 385
[Manufacturer] section, INF files, 644, 646
map registers (DMA model), 557–560
scatter/gather support, 560–562
transfers to physical memory, 562–563
mapping hardware resources, 534–537
MarkCancelable (IWDFIoRequest), 294
MarkCancOnCancReq rule, 850
MarkCancOnCancReqLocal rule, 850
marking requests as cancelable, 295
maximum IRQL, annotations for, 804–805
maximum transfer length (DMA devices), 554
MDL rules (KMDF), 850–852
MdlAfterReqCompletedXxx rules, 852
MDLs (memory descriptor lists), 44
meetings for driver developers, 22
MemAfterReqCompletedXxx rules, 852
memory, 42–44
allocating, 44, 442–447
annotations for, 790–791, 798–799
tagged memory allocation, 44
deleting, 116
direct memory access. See DMA
low-memory simulation, 688
MDLs (memory descriptor lists), 44, 850–852
page faults, 42, 45, 48
Driver Verifier IRQL checking, 45, 678, 680, 683–684
memory annotations, 790–792
memory errors, detecting with PREfast, 733
memory mapping, 530
memory objects, 98, 103, 114, 244, 247–252
deleting, 116, 120
for driver-created I/O requests, 323–330
KMDF rules for verification, 850, 852
lifetime of, 252–253
need for, 245
in object hierarchy, 112
parents of, 325–326
Memory Pool Monitor (PoolMon), 674
memory pools, 43, 48
message-based interrupts, 537–538
METHOD_NEITHER I/O, 34–35, 228, 230–231
parameter validation, 62
retrieving buffers in KMDF drivers, 248–250
thread context and, 510–511
methods (framework objects), 54
with KMDF, 72
with UMDF, 69
methods (WDF), 92
KMDF naming conventions, 104
UMDF naming conventions, 96
Microsoft Hardware Newsletter, 20
Microsoft IDL. See IDL
Microsoft Windows Device Testing Framework, 675–676
MIDL. See IDL minimum IRQL, annotations for, 804–805
minor version numbers, 63–64, 637
updates, 638
Miscellaneous Checks option (Driver Verifier), 678
MISCFILES macro, 627, 631
MmMapIoSpace function, 534, 536
MmUnmapIoSpace function, 537
MOF resources, 466, 622
MSC_WARNING_LEVEL macro, 628
MSDN newsgroups, 21
MSR (Microsoft Research), 825
multiprocessor systems, 12, 519–521
multithreading. See threads