- 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.
- 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.
- palette
- 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.
- PALOBJ
- A GDI user object that represents an indexed color palette.
- partial print provider
- A print provider 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.
- PATHOBJ
- 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 PC 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 PC 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.
- PCI
- Peripheral component interconnect. A dynamically configurable I/O bus, described by the PCI Local Bus Specification published by the PCI SIG.
- PCM
- Pulse code modulation (PCM) is 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.
- PCMCIA
- Personal Computer Memory Card International Association.
- PCR
- Processor control region. An internal data structure in which the kernel stores per-processor information, and which can be viewed by using debuggers.
- PDEV
- 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 dhpdev, in lower-case, is typically used as the name of a function parameter or structure member of type DHPDEV.
- PDO
- See physical device object.
- PEB
- Process environment block.
- PFN
- Page frame number. 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.
See also PTE.
- phantom device
- See nonpresent device.
- 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.
- PIC
- Programmable interrupt controller.
- pin
- 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.
- PIO
- Programmed input/output. A technique for making data transfers between a device and system memory, using remapped system-space virtual addresses rather than DMA.
- 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.
- plex
- 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.
- PnP
- 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.
- polling
- 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 IDT) 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 or below IRQL APC_LEVEL and in a nonarbitrary thread context. 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.
- 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: