In data storage, the addition of one or more bits, usually zeros, to a block of data in order to fill it, to force the actual data bits into a certain position, or to prevent the data from duplicating a bit pattern that has an established meaning, such as an embedded command.

page frame

A block of contiguous physical memory used to store the contents of a virtual page. Note that the virtual page size and page frame size are usually identical, but that a page frame size is actually microprocessor-dependent.

See also PFN.

paged pool

See pool memory.

page frame number (PFN)

The PFN database is the database in which the memory manager maintains information about every physical page in the system. Each PFN is an index for a physical page in the array of records that makes up the PFN database.

page table entry (PTE)

The memory manager uses a PTE to represent the state of a virtual page.

paging file

A system file containing the contents of virtual pages that have been paged out of memory.

See also backing store and system paging file.


A mapping between color indexes and 24-bit RGB color values. The color indexes can be any bit depth, but are typically 1-, 4-, or 8-bits per pixel. GDI typically uses the palette mapping in reverse. That is, an application specifies an RGB color value for drawing and GDI must locate the color index that causes the device to display that color.

A driver specifies its palette so that GDI can determine how different color indexes are to appear on the device. If the palette for a device can be changed to hold a different set of colors, it is called a settable palette.

A device palette is the palette for a physical device. When the device sends image data to the monitor, the device palette is used. A device can have only one device palette.

palette realization

A palette is "realized" when a display driver sets its internal hardware palette to match changes in a device palette.

For video hardware that supports palettes that can be set, GDI calls the DrvSetPalette DDI in the display driver when it has finished mapping colors into the device palette requested by the application. GDI passes the new palette to the display driver, and the driver queries the PALOBJ to set its internal hardware palette to match the palette changes for the video hardware.


A GDI user object that represents an indexed color palette.

parent partition

Within the hypervisor, a partition that has the ability to initialize, finalize, and delete one or more child partitions, and get or set child partition properties.

partial print provider

A Print Providers that supplies limited functionality and works in conjunction with an NT-based operating system local print provider.

For more information, see the topic Writing a Network Print Provider.


Within the hypervisor, an isolated execution environment that has its own set of hardware resources (memory, devices, CPU cycles, and so on).


A GDI user object used to describe a set of lines and Bezier curves that are to be stroked or filled. Associated functions allow the lines and curves to be enumerated for the driver.

PC 97

The 1997–98 requirements for personal computer system and peripheral design for the "Designed for Microsoft Windows" logo, as defined in the PC 97 Hardware Design Guide.

PC 98

The 1998–99 requirements for personal computer system and peripheral design for the Designed for Microsoft Windows logo, as defined in the PC 98 Checklist, which is an addendum to the PC 97 Hardware Design Guide.

PC card

A trademark of PCMCIA. A removable device that is designed to be plugged into a PCMCIA slot and used as a memory-related peripheral.


See peripheral component interconnect (PCI).


See printer control language (PCL).


See pulse code modulation (PCM).


Personal Computer Memory Card International Association.


See processor control region (PCR).


A logical representation of a physical device. A PDEV is a private, driver-defined data structure containing all the information and data that represents the associated physical device. As part of enabling a PDEV, a driver provides information to GDI that describes the requested device and its capabilities. Important information that the driver gives GDI is a set of flags that allow GDI to determine what kinds of operations the PDEV (and the requested device) supports. For example, GDI can test the flags returned as part of the PDEV to determine whether or not the requested device can handle Bezier curves and geometric wide lines.

The term pdev, in lower-case, is typically used as the name of a function parameter or structure member of type PDEV.

A related type, DHPDEV, is a device handle of a PDEV structure. The term , in lower-case, is typically used as the name of a function parameter or structure member of type DHPDEV.


See physical device object (PDO).


Process environment block.

peripheral component interconnect (PCI)

A dynamically configurable I/O bus, described by the PCI Local Bus Specification published by the PCI SIG.


A measure of the frequency with which an event occurs, and it is often expressed in hertz (Hz). As used to describe the audio engine, periodicity indicates the regular intervals that elapse before the audio engine samples a new set of audio data. These intervals are expressed in milliseconds (ms).


See printer font metrics (PFM).


See page frame number (PFN).

See also page table entry (PTE).

phantom device

See nonpresent device.


The IEEE physical layer of the IEEE Native 802.11 station.

physical device object (PDO)

A device object created by a bus driver using IoCreateDevice. The PDO, which represents the device for the bus driver, is at the bottom of the device stack for a device.

For more information, see the topic Types of WDM Device Objects.

physical layer

The 802.11 physical layer provides wireless hardware services. These services are required to support the services that the media access control (MAC) layer provides.

The IEEE 802.11-1997 standard provides several options for the physical layer:

  • Frequency-hopping spread spectrum providing 1 Mbps operation, with 2 Mbps optional.
  • Direct-sequence spread spectrum providing both 1 Mbps and 2 Mbps operation.
  • Infrared providing 1 Mbps operation, with 2 Mbps optional.

Programmable interrupt controller.


A set of filter-defined properties in Kernel Streaming and DirectShow that specify a connection endpoint. For example, audio input can be described by a pin on a filter.

pin factory

A set of properties that describes a potential connection point to a filter, and is used to generate pin instances of that category. Each pin factory has a filter-unique identifier that allows support of pin-specific properties or data formats. This is a zero-based count by which the pin factory can be identified. The count stays constant between creation of pin instances.

pin instance

An instance created by a pin factory representing one end of a connection point between filters. A pin instance represents the embodiment of a connection using a particular data format and communications methodology. Used for control and data flow. Pin instances support, at minimum, a connection property set.


See programmed input/output (PIO).


See printer job language (PJL).

Plain Old Telephone Service

Plain Old Telephone Service (POTS) is analog telecommunications service. Until the 1970s, POTS was the only telephone service offered by local telecommunications providers.

See also PSTN.


Single complete copy of a volume. A volume is composed of one or more plexes. Since all plexes are identical, the volume manager can retrieve data from any of the volume's plexes during a read operation. The volume manager spreads reads among volume plexes, in order to balance the I/O load on the physical media and maximize read performance.

An application or a kernel-mode component can read data from a particular plex instead of letting the volume manager pick one by using the IOCTL_VOLUME_READ_PLEX I/O control code.

plotter characterization data (PCD)

A DLL that provides device-specific information to a graphics plotter driver.

PNF file

A precompiled INF File. Windows creates a PNF file for each INF file to facilitate efficient processing. A PNF file includes information about the content of the original INF file, as well as the name of the INF file and other file attributes. Setup uses the PNF file instead of the original INF file. If a PNF file does not exist, Setup generates one for the INF file. For vendor-supplied INF files, the information contained in a PNF file also includes the location of the original INF file.


Plug and Play. For more information see the topic, Plug and Play.

pointer exclusion

A bit-block transfer in which the pointer's image is not copied to the destination. This means that if you are copying a portion of the screen, and the pointer is currently in that portion of the screen, the pointer should not be included in the copy. In the past, pointer exclusion was implemented by turning the pointer off before the copy, and turning it back on after the copy. This is no longer required with windows layering.


A coding technique that wastes CPU cycles in a driver while waiting for a physical device to update its registers. Drivers should never implement polling loops and should minimize the interval they specify in calls to KeStallExecutionProcessor (no longer than 50 microseconds) if they must poll their devices.

pool memory

Regions located in kernel space from which memory blocks can be allocated and deallocated dynamically. (Some other systems call this "heap memory.") The memory manager creates two kinds of pools for system use and for use by drivers via Ex(ecutive) Support routine calls:

  • Paged pool is a based region that can be paged in and out of a process's working set. Each process has its own set of PTEs (Page Table Entries) that map paged pool into its address space. Touching a page in this pool can cause a page fault at any time, so drivers should allocate only those data structures accessed exclusively at IRQL PASSIVE_LEVEL or APC_LEVEL (see ) from paged pool.
  • Nonpaged pool is a based region for which all processes share a set of PTEs. The memory manager guarantees that nonpaged pool is resident in physical memory at all times; therefore, this region can be accessed from any process's address space without causing a page fault. However, nonpaged pool is a limited system resource.

Drivers should allocate from paged pool for entities that are accessed exclusively at IRQL <= APC_LEVEL. They should minimize their usage of nonpaged pool by "saving" it for data that must be accessed at or above IRQL DISPATCH_LEVEL. Allocations of contiguous or noncached memory come from nonpaged pool.

The memory manager allocates entities from both pools using a buddy scheme.

See also kernel space.

pool tag

A pool tag is a four-byte character literal that is associated with a dynamically allocated chunk of pool memory. A driver specifies the tag when it allocates the memory (for example, with ExAllocatePoolWithTag).

port driver

A lowest-level driver that responds to a set of system-defined device control requests and, possibly, to an additional set of driver-defined (private) device control requests, sent down by a corresponding class driver. A port driver insulates class drivers from the specifics of HBAs and synchronizes operations for all its class drivers. Some examples of system-supplied port drivers include the following:

  1. The SCSI port driver that supports a set of device-type-specific class drivers, and possibly SFDs, above it and one or more HBA-specific miniport drivers, and possibly non-SCSI mass-storage device drivers, which link themselves to this operating system-dependent port driver (implemented as a dynamic-link library) and call its routines.
  2. The video port driver that supports display drivers and adapter-specific, kernel-mode miniport drivers, which link themselves to the operating system-dependent port driver (implemented as a dynamic-link library) and call its routines.
  3. The parallel port driver.

In general, any driver of a device that is a so-called "intelligent controller" or a bus adapter can be a port driver if it communicates with one or more class drivers according to an established protocol and synchronizes access to the controller or bus.

See also class driver, miniport driver, ScsiPort routines, and VideoPort routines.

port monitor

A type of print monitor that is responsible for providing a communications path between the user-mode print spooler and the kernel-mode port drivers that access I/O port hardware.

port object

An instance of an object type representing a conduit for messages between local (server/client) processes. It is used in the LPC (Local Procedure Call) model as an object accessible to user-mode processes through system services. The server (called) process defines a named connection port object and sets up two (unnamed) communication port objects when a client (caller) process connects to the named port.


A portal is a device that connects an 802.11 LAN with another 802 LAN, or with the distribution system.


Portable operating system for UNIX. A protected subsystem that supports the POSIX standard.

PostScript printer description (PPD)

A file read by the generic PostScript driver as part of device initialization. PPD files conform to specifications published by Adobe Corporation and are supplied by PostScript printer manufacturers.


See Plain Old Telephone Service.

power policy

The set of rules that determine how and when a system or device changes power state.

For more information, see the topics System Power Policy and Managing Device Power Policy.


See processor control block (PRCB).

prediction address

In DirectX video acceleration, the location of the prediction block within an implementation-specific design.

prediction block

In DirectX video acceleration, the block filtered from reference block.

prediction macroblock

In DirectX video acceleration, the macroblock prediction including all color channels.

prediction plane

In Microsoft DirectX video acceleration, the array of samples formed prior to combining of macroblock prediction. Each plane represents a set of prediction blocks, usually collected from one frame location. Planes are combined to form a single macroblock prediction.

predictive-coded picture (P picture)

A picture type that uses the closest past I or P picture (forward prediction) as the reference for motion-compensated prediction.

P picture

See predictive-coded picture (P picture).


The process of building a movie frame in a memory buffer before it is displayed.


See ISDN primary rate interface.

primary display

Also referred to as primary monitor and primary display device. The primary display in a multiple monitor system is the one that contains the origin (0,0). Other than this, the primary display can be any display.

primary monitor

See primary display.

print monitor

A user-mode DLL responsible for directing a print data stream from the print spooler to an appropriate port driver.

For more information, see the topic Writing a Print Monitor.

print processor

A user-mode DLL responsible for converting a print job's spooled data into a format that can be sent to a print monitor.

For more information, see the topic Writing a Print Processor.

printer control language (PCL)

A page description language developed by Hewlett Packard (HP) and used by many HP laser and inkjet printers.

printer font metrics (PFM)

Files that describe fonts for a printer.

printer job language (PJL)

A language that implements communication between a bidirectional printer device and a computer. PJL was defined and implemented by Hewlett-Packard.


A printer property page setting that applies to a single printer. For example, the amount of memory installed on a particular printer is a printer-sticky setting.

Contrast with document-sticky.


An attribute of a thread that determines when and how often the thread is scheduled to run. For a running thread, its priority falls into either of two classes, each class having 16 levels:

  • Variable priority class has values in the range 0 to 15. This class is used by most threads.

Threads with variable priority are always preemptible; that is, they are scheduled to run round-robin with other threads at the same level. In general, the kernel manages a variable-priority thread as follows: when the thread is interactive with a user, its priority is high (given a boost); otherwise, its priority decays by one level per quantum that the thread runs until it reaches its original programmer-defined base priority level.

  • Real time priority class has values in the range 16 to 31. This class is used by time-critical threads, making such a thread preemptible only by a thread with higher priority.

Note that any thread, whatever its priority attribute, is always preemptible by a software or hardware interrupt.

priority boosts

A set of system-defined constant values, supplied when drivers complete an IRP. For example, when drivers for interactive devices call IoCompleteRequest, they usually specify a device-type-specific priority boost value. The boost is added to the priority of the user-mode thread that originally requested the I/O operation to compensate for that thread's wait on the I/O.


To check that a memory address range is in user-mode address space, and that the range can be read or written in the current process context. See the topics, ProbeForRead and ProbeForWrite.

process object

A kernel-defined control object type, representing the virtual address space and control information necessary for the execution of a set of thread objects. A user-mode process object defines the base priority, default affinity, and directory table base value for its threads and for any child processes it creates. Every user-visible process object is implemented through the use of an embedded kernel-mode process object.

A kernel-mode-only process object must be initialized before any thread objects that belong to the process.

processor control block (PRCB)

An extension of the processor control region (PCR).

processor control region (PCR)

An internal data structure in which the kernel stores per-processor information, and which can be viewed by Using a Debugger.

programmed input/output (PIO)

A technique for making data transfers between a device and system memory, using remapped system-space virtual addresses rather than DMA.


In kernel streaming, an aspect of the device or stream that can be set or retrieved, such as volume level.

property bag

A container of an arbitrary set of name-value pairs, where the name can be any character string and the value is a VARIANT. Property bags are often used to hold contextual data that is associated with another object.

property set

A uniquely identified set that represents types of related information.

protected subsystem

A server that appears to perform operating system functions for its native applications and subsystem-specific drivers by calling system services. A protected subsystem runs in user mode and its interface to end users emulates another operating system, such as Windows or POSIX, on top of the NT kernel.

See also integral subsystem.


Abbreviation for the Microsoft PostScript Printer Driver.


Protocol/Service Multiplexer as defined by the Bluetooth standard.


See Public Switched Telephone Network (PSTN).


See page table entry (PTE).

Public Switched Telephone Network (PSTN)

The public telephone network provided by local and long-distance telecommunications carriers. This network includes both a digital backbone and the analog wiring still used in many residences. The term Plain Old Telephone Service (POTS) is often used to refer to PSTN, but this term should be distinguished from PSTN since it is limited to the analog portion of the PSTN.


To set an event to the Signaled state, satisfy as many waiters on the event as possible, and to reset the event to the Not-Signaled state.

pulse code modulation (PCM)

A subclass of the Microsoft waveform (.wav) file format. In PCM, data for .wav files is stored using linear samples. In contrast, ADPCM records the deltas between samples.


A draft standard for motion video compression in videophone and teleconferencing applications, designed for 64-Kbps transmission channels. Also called CCITT Recommendation H.261.



Send comments about this topic to Microsoft