R

RAID

Redundant array of inexpensive disks. Alternate meanings: redundant array of independent disks; redundant array of inexpensive devices.

raise an exception

A deliberate transfer of control to an exception handler when an exception occurs. A kernel-mode component, including any NT driver, cannot raise an exeception while running at IRQL >= DISPATCH_LEVEL without bringing down the system. See also SEH.

raised IRQL

Any system-assigned hardware priority at which kernel-mode code runs that is greater than IRQL PASSIVE_LEVEL. See also DIRQL, IDT, and IRQL.

range

A finite and discrete sequence of values. Note that a virtual address range can be backed by a set of discontiguous physical pages or by a file stored in discontiguous sectors on disk.

RAW

An NT-supplied FSD that is the “last resort” for all NT I/O requests requiring file system support. When the I/O Manager calls active NT file systems to mount a volume, RAW is always called last because it recognizes all disk and tape media.

However, RAW supplies very primitive file handling capabilities. That is, it does not impose any on-disk file structure or metadata structures for the information on the media; it simply allows read/write access to the logical blocks on the physical disk. For example, it treats the whole disk as a single file and supplies physical-disk-level VBN access to the disk.

RAW is not an acronym.

redirector

A system-supplied (network) file system driver that provides access to files on remote machines.

region

A range of virtual addresses.

When a user-mode caller creates a section or maps a view, it must specify a region. The NT Memory Manager rounds the specified region’s starting address down to the nearest 64K boundary and rounds its size in bytes up to the next host-page-size boundary.

registry

a.k.a. “configuration registry”

A database containing configuration and control data for the system, including which file systems and drivers to load at system boot. The NT Configuration Manager exports system services to manipulate registry key objects contained in the database. See also key object.

resource

(1) An entity (such as a device object, file object, section object, variable, structure, or buffer) visible to one or more processes.

(2) In kernel mode, a system-defined type of opaque variable manipulated by the Ex..ResourceXxx support routines. A shared resource is a multiprocessor-safe synchronization mechanism, rather like a gating semaphore with a dynamic limit value. Drivers, usually NT file systems, can use one or more resource variables to control access to a memory entity, such as a file or database, on a multiple-reader (shared access), single-writer (exclusive access) basis.

In particular, NT file systems that support caching files and paging I/O share certain resource variables with the Cache and Memory Managers.

RPC

Remote procedure call

A call from one process’s thread (client) to another’s (server) that exists in a different address space, usually on another networked machine. See also IPC.

Rtl routines

There are two general sets of (C) Runtime Library routines supplied with the system, one each for user mode and for kernel mode. All NT drivers can call the kernel-mode RtlXxx.

run

verb: to execute on a processor.

noun: (1) within an MCB, a contiguous range of VBNs mapped to a contiguous range of LBNs (a.k.a. “extent”); (2) slang for a quantum, as in “when the thread is given the run...”

runtime priority inversion

A condition that can occur when threads with mismatched priority attributes share resources or when a higher priority thread waits for a lower priority thread to complete some action. Such an inversion occurs whenever:

·A high priority thread is blocked, waiting for a lower priority thread to release a shared resource or to complete an action (and probably to set a dispatcher object to the Signaled state).

·This lower priority thread is also blocked, because many other higher priority threads are ready for execution, so they will be run first.

Under these circumstances, the waiting high-priority thread undergoes a runtime priority inversion, because one or more lower priority threads will run before it does. Note that two threads with mismatched priorities must be very careful to avoid deadlocks if they “share” a resource in a mutually exclusive manner (that is, only one thread at a given time can access the resource). See also thread object, priority, resource, and deadlock.