race conditions, 40, 41. See also synchronization
canceled I/O requests, 56–57
raising IRQL, annotations for, 805
raw devices, 142–143
raw resource lists, 532
.rc files, 466, 622
READ_PORT_Xxx macros, 530
READ_REGISTER_Xxx macros, 530
read requests (I/O), 32, 225, 242
event callbacks for, 282–291
formatting for I/O targets, 331–334
synchronous, 337
ReadFile function, 33, 225
real-time viewing of trace log, 436–437
recursive routines, 43
reference counts, 110, 113, 115, 117, 384
COM object lifetime, 589–590, 609–610
debugging, 591
memory objects, 324, 443. See also memory objects
tracking, 709–710
reference tracking, 689
references, circular, 113–114
refinement phase, SLAM engine, 831
reflector (UMDF), 76, 79
fatal errors and, 80
REGISTER mapping. See memory mapping
registering callbacks, 54, 105. See also callbacks
registry access, 447–453
KMDF registry objects and methods, 450–453
UMDF device property store, 99, 447–450
registry key objects, 103, 114
deleting, 116, 121
registry values for KMDF debugging, 713–714
release installations, 636, 656
maintaining, 696
Release method (IUnknown), 113, 589, 590–591, 600, 609–610
ReleaseLock method (IWDFObject), 386
releases of WDK, 13
reliability, 61
remote I/O targets (KMDF), 309
creating, 314–318
removal (device)
power-down and, 184–187
self-managed I/O during, 300–301
surprise, 178
Remove method (IWDFIoTargetStateManagement), 319
/removedriver parameter (Driver Verifier), 681
reports, SDV, 842–847
ReqIsCancOnCancReq rule, 850
ReqIsNotCancelable rule, 850
ReqNotCanceled rule, 850
ReqNotCanceledLocal rule, 850
request buffer rules (KMDF), 850–851
request-cancellation rules (KMDF), 850
request-completion rules (KMDF), 849
RequestCompleted rule, 849
RequestCompletedLocal rule, 849
requesting callbacks at intervals. See timer objects
requests, I/O. See I/O processing
__reserved annotation, 761, 773
/reset parameter (Driver Verifier), 682
resource errors, detecting with PREfast, 733
resource files, 466, 622
resource identification, 531
resource list objects, 103, 114, 532–534
deleting, 116
resource range list objects, 103, 114
deleting, 116
resource requirements list objects, 103, 114
deleting, 116
resources for more information, 20–22. See also documentation
restart (device), self-managed I/O during, 300
restoring IRQL, annotations for, 805
Results pane (SDV Defect Viewer), 845
Retrieve functions, 96, 104
RetrieveContext method, 125
RetrieveDeviceInstanceId method (IWDFDeviceInitialize), 150
RetrieveDevicePropertyStore method (IWDFDevice), 448
RetrieveDevicePropertyStore method (IWDFDeviceInitialize), 150, 448
RetrieveNextRequest method (IWDFIoQueue), 264, 268
RetrieveNextRequestByFileObject method (IWDFIoQueue), 264, 268
RetrieveUsbInterface method (IWDFUsbTargetDevice), 360, 363
RetrieveUsbPipeObject method (IWDFUsbInterface), 361, 364
return values for errors, 58
root folder, 14
root object (driver object), 110
routines for debugging, 699
rules, SDV, 826–831. See also SDV (Static Driver Verifier)
hierarchies for, 854–855
KMDF drivers, 847–855
running verifications on, 839–840
selecting, 834–839
RUN_WPP macro, 420–423, 628, 632
running drivers, debugging, 708–709