C

Cache Manager

An NT component that provides file caching support for NT file system drivers.

CAM

Common access method

An interface definition for SCSI devices.

CCB

Context control block

An internal NT file system structure, in which a file system maintains per file object state for an open instance of a file. See also FCB and DCB.

CDB

Command descriptor block

A structure, defined by the SCSI-II standard, used to communicate requests to a target device on a SCSI bus.

CDFS

CD-ROM file system

CD-ROM

Compact disk, read-only memory

chase

To follow a linked list, queue, or other software-defined path. For example, when a file system encounters a symbolic link file within a path specification, it “chases the symbolic link” to redirect operations to the target file. See also symbolic link.

checked build

A version of the system that has been compiled with debug symbols and built with special support for debugging under-development components, such as new drivers. See also free build.

child process

When a new NT-native process is created by calling a system service, the caller must specify a “parent” process from which the new process inherits its token, quota, and base runtime priority for threads. The new process can optionally inherit any or all of the following from the specified parent process:

·A copy of the parent’s virtual address space

·All object handles that were opened with the inheritance attribute

·Debugging and exception handling ports

However, any user-mode process becomes a wholly independent peer to its so-called parent process as soon as it has been created. After process creation, any process-to-process dependencies become the responsibility of a protected subsystem, such as the Win32 or POSIX subsystem.

A kernel-mode-only (a.k.a. “system”) process has the initial system process as its parent.

CID

Client identifier

A unique value that identifies a thread.

class driver

(1) A higher-level driver for a physical device, which is connected to a so-called intelligent controller, such as a SCSI HBA, or to an adapter bus. Such a class driver communicates with the corresponding, lower-level port driver according to an established protocol, such as NT-defined SRBs. The system-supplied SCSI class drivers are examples of this type of class driver.

(2) A higher-level driver that provides system-required but hardware-independent support for a given class of physical devices. Such a class driver communicates with a corresponding hardware-dependent port driver, using a set of system-defined device control requests, possibly with additional driver-defined (private) device control requests. The system-supplied keyboard and mouse class drivers are examples of this type of class driver, as are parallel class drivers.

client/server model

A model for structuring applications or operating systems such that the system is divided into processes (servers), each of which provides a set of specialized services to other processes (clients).

collided page fault

A page fault caused by one thread while an in-page I/O operation for another thread is being done on the same page.

commitment

The NT Memory Manager’s current value for paging file usage.

context

The execution state of a thread at any given moment:

·For a user-mode thread, the platform-dependent register state, kernel stack, TEB, and user stack in the address space of the process to which the thread belongs.

·For a kernel-mode thread, the platform-dependent register state and kernel stack.

Kernel-mode threads have neither a TEB nor a user-mode context, but they must have an associated process. See also process object.

Most NT device drivers do not have a context in this sense. Unless a driver (such as an FSD) creates its own process and/or thread(s), it does not have its own stack space or register state. For each NT driver, the set of objects it owns and the IRPs that it can access in the device queue associated with its device object or any driver-created internal queue(s) can be considered all or part of its context.

context record

A system-defined structure, containing the current register state for an exception handler. See also SEH.

control objects

A class of Kernel-defined object types, used to manage all kernel-mode operations except dispatching and synchronization. See also dispatcher objects.

Control objects include: APC, DPC, device queue, interrupt, and process objects. Note that all control object types except processes are kernel-mode-only objects, invisible to user-mode code. User-mode APC objects are also “invisible” in the sense that they look more like user-supplied routines to be called on return from certain system services (such as a request to read a file) than like objects.

controller object

A kernel-mode-only object type, defined by the I/O Manager. A controller object represents a hardware controller or channel. The driver calls IoAllocateController to carry out synchronized I/O on attached devices. Controller objects “connect” a set of similar devices attached to a controller with a single driver.

critical section

A piece of code that temporarily has exclusive access to a resource, such as device-state data stored in a device extension to which access must be synchronized among some number of routines.