M

MACL

Mandatory access control list

A part of the security descriptor for each object in a system with a B1 or higher security rating from the U.S. National Computer Security Center.

map

(1) To translate a virtual address into a physical address or vice versa. See also MDL.

(2) To translate a bus-relative address into a logical address to be used by a device as if it were a physical address. See also HAL.

(3) To alias a bus-relative interrupt vector to a system-assigned interrupt vector. See also HAL.

MCB

Map control block

An MCB is a structure used by NT file systems in mapping the VBNs for a file to the corresponding LBNs on the disk.

MDL

Memory descriptor list

An opaque structure, defined by the Memory Manager, that uses an array of physical page frame numbers (PFNs) to describe the pages that back a virtual memory range.

method

A routine supplied with an NT object type that handles standard operations (such as open, close, delete, parse, dump, and read or reset security attributes) on every instance of the object type.

MIDI

Musical instrument digital interface

miniport driver

A device-specific kernel-mode driver linked to an NT port driver, usually implemented as a dynamic-link library, that provides an interface between the port driver and the system. NT defines the architecture of the following kinds of miniport drivers:

(1) An HBA-specific driver, linked against the NT-supplied SCSI port driver, that drives one or more SCSI buses, or a mass-storage device driver that uses the NT SCSI port driver as its interface to the system.

(2) A video-adapter-specific driver, linked against the NT-supplied video port driver, that supports a corresponding display driver.

(3) A network-adapter-specific driver, linked against the NT-supplied NDIS library.

mirror driver

a.k.a. “shadow driver or RAID1 driver”

An intermediate (layered somewhere between an FS and a disk DD) driver whose responsibility is to maintain a duplicate of a disk partition.

The system-supplied fault tolerant disk driver, ftdisk, is a mirror driver.

mount

Operation that requests a file system to make a volume useable by the I/O Manager. This is done by filling in the information in a VPB which indicates the serial number and label of the volume, as well as by filling in the pointer to the file system’s device object that represents the “volume” mounted on the real device. See VPB.

multiprocessor machine

A platform with more than one CPU. Windows NT is designed to run on multiprocessor machines, usually configured to be:

· Homogenous - all CPUs are identical, and either all have identical coprocessors or none has a coprocessor.

· Closely coupled - all CPUs share memory and have uniform access to memory.

· Symmetric- every CPU can access memory, handle any interrupt, and access I/O control registers just like every other CPU in the system. Note that any version of Windows NT that runs on a symmetric multiprocessor machine also runs unchanged on a uniprocessor machine based on the same CPU.

While Windows NT can run on asymmetric platforms, configured with a master CPU that handles all IRQs and one or more slave CPUs as long as the platform is both homogenous and closely coupled, the system has been designed to run primarily on symmetric multiprocessor platforms because SMP machines have better performance characteristics, particularly for I/O.

mutex object

A kernel-mode-only, Kernel-defined dispatcher object type, used to provide mutually-exclusive, deadlock-free access to a resource.

A mutex owner (thread) must run exclusively in kernel mode while it retains ownership; an attempt to switch to user mode while holding a mutex causes a system crash. Ownership of a mutex by a given thread has the following effects:

· Prevents the owning thread’s process from leaving the balance set

· Raises the owning thread’s priority to the the lowest real-time priority value if the owning thread’s priority is not already higher

· Prevents the delivery of normal kernel-mode APCs

Each mutex object has a caller-initialized, associated level value, and a given thread should acquire ownership of a mutex if and only if:

· The requested mutex is currently unowned by another thread.

· The requesting thread does not already own a mutex of a (numerically) higher level.

Implementing the preceding policy, together with the requirement that a mutex owner run exclusively in kernel mode, prevents deadlocks.

Note that recursive ownership of a mutex is possible. However, any thread that claims a mutex N times must explicitly release that mutex N times in order to set the mutex to the Signaled state.