1.1 Glossary

This document uses the following terms:

access control entry (ACE): An entry in an access control list (ACL) that contains a set of user rights and a security identifier (SID) that identifies a principal for whom the rights are allowed, denied, or audited.

access level: The type of access that the client requests for an object, such as read access, write access, or administrative access.

authentication level: A numeric value indicating the level of authentication or message protection that remote procedure call (RPC) will apply to a specific message exchange. For more information, see [C706] section 13.1.2.1 and [MS-RPCE].

bidirectional: The ability to move, transfer, or transmit in two directions.

branch office print remote logging: An operating mode in which a print client logs printing-related Windows Events on the print server. Branch office print remote logging occurs only when the print client is in branch office print mode.

CAB file: See cabinet file.

cabinet file: A file that has the suffix .cab and that acts as a container for other files. It serves as a compressed archive for a group of files. For more information, including the format of CAB files, see [MSDN-CAB].

class printer driver: Any printer driver declared by its manufacturer to be one from which a derived printer driver can derive. A class printer driver cannot itself be a derived printer driver. Typically, class printer drivers are generic and work with a variety of devices, while derived printer drivers work with a particular device and support features specific to that device.

core printer driver: A printer driver that other printer drivers depend on. This term includes the Unidrv and Pscript printer drivers. For more information, see [MSDN-UNIDRV] and [MSDN-PSCRIPT] respectively.

derived printer driver: A printer driver declared by its manufacturer to depend on a particular class printer driver by sharing modules with the class printer driver.

device: Any peripheral or part of a computer system that can send or receive data.

discretionary access control list (DACL): An access control list (ACL) that is controlled by the owner of an object and that specifies the access particular users or groups can have to the object.

domain: A set of users and computers sharing a common namespace and management infrastructure. At least one computer member of the set has to act as a domain controller (DC) and host a member list that identifies all members of the domain, as well as optionally hosting the Active Directory service. The domain controller provides authentication of members, creating a unit of trust for its members. Each domain has an identifier that is shared among its members. For more information, see [MS-AUTHSOD] section 1.1.1.5 and [MS-ADTS].

driver package: A collection of the files needed to successfully load a driver. This includes the device information (.inf) file, the catalog file, and all of the binaries that are copied by the .inf file.  Multiple drivers packaged together for deployment purposes.

driver store: A secure location on the local hard disk where the entire driver package is copied.

enhanced metafile spool format (EMFSPOOL): A format that specifies a structure of enhanced metafile format (EMF) records used for defining application and device-independent printer spool files.

event channel: A collection of Windows Events that is provided by the system. Also referred to as an event log. The name of an event channel is composed of an event provider name combined with a channel type string. Valid channel types are "Admin", "Analytic", "Debug", and "Operational". For more information, see [MSDN-WINEV].

failover: A backup operation that automatically switches to a standby database, server, or network if the primary system fails or is temporarily shut down for servicing. Failover is an important fault tolerance function of mission-critical systems that rely on constant accessibility. To the user, failover automatically and transparently redirects requests from the failed or down system to the backup system that mimics the operations of the primary system.  A failover operation is always followed by a failback operation, which is the process of returning production to its original location.

globally unique identifier (GUID): A term used interchangeably with universally unique identifier (UUID) in Microsoft protocol technical documents (TDs). Interchanging the usage of these terms does not imply or require a specific algorithm or mechanism to generate the value. Specifically, the use of this term does not imply or require that the algorithms described in [RFC4122] or [C706] must be used for generating the GUID. See also universally unique identifier (UUID).

GUIDString: A GUID in the form of an ASCII or Unicode string, consisting of one group of 8 hexadecimal digits, followed by three groups of 4 hexadecimal digits each, followed by one group of 12 hexadecimal digits. It is the standard representation of a GUID, as described in [RFC4122] section 3. For example, "6B29FC40-CA47-1067-B31D-00DD010662DA". Unlike a curly braced GUID string, a GUIDString is not enclosed in braces.

HRESULT: An integer value that indicates the result or status of an operation. A particular HRESULT can have different meanings depending on the protocol using it. See [MS-ERREF] section 2.1 and specific protocol documents for further details.

INF file: A file providing Setup with the information required to set up a device, such as a list of valid logical configurations for the device and the names of driver files associated with the device.

information context: A special-purpose printer object that can only be used to obtain information about fonts that are supported by a printer. For more information, see [MSDN-FONTS].

Interface Definition Language (IDL): The International Standards Organization (ISO) standard language for specifying the interface for remote procedure calls. For more information, see [C706] section 4.

Microsoft-Windows-PrintService: An event provider for printing services on operating systems.

monitor module: An executable object that provides a communication path between the print system and the printers on a server.

multisz: A data type that defines an array of null-terminated, 16-bit Unicode UTF-16LE-encoded strings, with an additional null after the final string.

named pipe: A named, one-way, or duplex pipe for communication between a pipe server and one or more pipe clients.

Network Data Representation (NDR): A specification that defines a mapping from Interface Definition Language (IDL) data types onto octet streams. NDR also refers to the runtime environment that implements the mapping facilities (for example, data provided to NDR). For more information, see [MS-RPCE] and [C706] section 14.

object UUID: A UUID that is used to represent a resource available on the remote procedure call (RPC) servers. For more information, see [C706].

opnum: An operation number or numeric identifier that is used to identify a specific remote procedure call (RPC) method or a method in an interface. For more information, see [C706] section 12.5.2.12 or [MS-RPCE].

package: A conceptual set of commands that can be spread over multiple messages.

page description language (PDL): The language for describing the layout and contents of a printed page. Common examples are PostScript and Printer Control Language (PCL).

port: A logical name that represents a connection to a device. A port can represent a network address (for example, a TCP/IP address) or a local connection (for example, a USB port).

port monitor: A plug-in that communicates with a device that is connected to a port. A port monitor can interact with the device locally, remotely over a network, or through some other communication channel. The data that passes through a port monitor is in a form that can be understood by the destination device, such as page description language (PDL).

port monitor module: A monitor module for a port monitor.

principal name: The computer or user name that is maintained and authenticated by the Active Directory directory service.

print client: The application or user that is trying to apply an operation on the print system either by printing a job or by managing the data structures or devices maintained by the print system.

print job: The rendered page description language (PDL) output data sent to a print device for a particular application or user request.

print processor: A plug-in that runs on the print server and processes print job data before it is sent to a print device.

print provider: A plug-in that runs on the print server and routes print system requests. Print providers are an implementation detail and are not required by this protocol.

print queue: The logical entity to which jobs can be submitted for a particular print device. Associated with a print queue is a print driver, a user's print configuration in the form of a DEVMODE structure, and a system print configuration stored in the system registry.

print server: A machine that hosts the print system and all its different components.

print system: A system component that is responsible for coordinating and controlling the operation of print queues, printer drivers, and print jobs.

printer driver: The interface component between the operating system and the printer device. It is responsible for processing the application data into a page description language (PDL) that can be interpreted by the printer device.

printer driver manifest: A file that is installed with a printer driver and lists attributes of the printer driver. The formatting of printer driver manifests is specific to the print server implementation.

printer driver upgrade: An upgrade operation where a newer printer driver is installed, replacing an older printer driver.

printer form: A preprinted blank paper form, or a print job's virtual representation of this form, that enables a printer to position form elements in their physical location on the page.

RAW format: A data type consisting of PDL data that can be sent to a device without further processing.

registry: A local system-defined database in which applications and system components store and retrieve configuration data. It is a hierarchical data store with lightly typed elements that are logically stored in tree format. Applications use the registry API to retrieve, modify, or delete registry data. The data stored in the registry varies according to the version of the operating system.

remote procedure call (RPC): A communication protocol used primarily between client and server. The term has three definitions that are often used interchangeably: a runtime environment providing for communication facilities between computers (the RPC runtime); a set of request-and-response message exchanges between computers (the RPC exchange); and the single message from an RPC exchange (the RPC message).  For more information, see [C706].

RPC context handle: A representation of state maintained between a remote procedure call (RPC) client and server. The state is maintained on the server on behalf of the client. An RPC context handle is created by the server and given to the client. The client passes the RPC context handle back to the server in method calls to assist in identifying the state. For more information, see [C706].

RPC dynamic endpoint: A network-specific server address that is requested and assigned at run time, as described in [C706].

RPC endpoint: A network-specific address of a server process for remote procedure calls (RPCs). The actual name of the RPC endpoint depends on the RPC protocol sequence being used. For example, for the NCACN_IP_TCP RPC protocol sequence an RPC endpoint might be TCP port 1025. For more information, see [C706].

security descriptor: A data structure containing the security information associated with a securable object. A security descriptor identifies an object's owner by its security identifier (SID). If access control is configured for the object, its security descriptor contains a discretionary access control list (DACL) with SIDs for the security principals who are allowed or denied access. Applications use this structure to set and query an object's security status. The security descriptor is used to guard access to an object as well as to control which type of auditing takes place when the object is accessed. The security descriptor format is specified in [MS-DTYP] section 2.4.6; a string representation of security descriptors, called SDDL, is specified in [MS-DTYP] section 2.5.1.

security identifier (SID): An identifier for security principals that is used to identify an account or a group. Conceptually, the SID is composed of an account authority portion (typically a domain) and a smaller integer representing an identity relative to the account authority, termed the relative identifier (RID). The SID format is specified in [MS-DTYP] section 2.4.2; a string representation of SIDs is specified in [MS-DTYP] section 2.4.2 and [MS-AZOD] section 1.1.1.2.

security provider: A pluggable security module that is specified by the protocol layer above the remote procedure call (RPC) layer, and will cause the RPC layer to use this module to secure messages in a communication session with the server. The security provider is sometimes referred to as an authentication service. For more information, see [C706] and [MS-RPCE].

Simple and Protected GSS-API Negotiation Mechanism (SPNEGO): An authentication mechanism that allows Generic Security Services (GSS) peers to determine whether their credentials support a common set of GSS-API security mechanisms, to negotiate different options within a given security mechanism or different options from several security mechanisms, to select a service, and to establish a security context among themselves using that service. SPNEGO is specified in [RFC4178].

spool file: A representation of application content data than can be processed by a printer driver. Common examples are enhanced metafile format and XML Paper Specification (XPS) [MSDN-XMLP]. For more information, see [MSDN-META].

spool file format: The specific representation that is used in an instance of a spool file. Common examples for spool file formats are enhanced metafile spool format (EMFSPOOL) [MS-EMFSPOOL] and XML Paper Specification (XPS) [MSDN-XMLP]. For more information, see [MSDN-SPOOL].

string resource: A string that is stored in a resource file and that can be retrieved with a key. A string resource is localizable into multiple languages. It is up to an AsyncUI client implementation to determine which language string to retrieve for a given key.

Transmission Control Protocol (TCP): A protocol used with the Internet Protocol (IP) to send data in the form of message units between computers over the Internet. TCP handles keeping track of the individual units of data (called packets) that a message is divided into for efficient routing through the Internet.

universally unique identifier (UUID): A 128-bit value. UUIDs can be used for multiple purposes, from tagging objects with an extremely short lifetime, to reliably identifying very persistent objects in cross-process communication such as client and server interfaces, manager entry-point vectors, and RPC objects. UUIDs are highly likely to be unique. UUIDs are also known as globally unique identifiers (GUIDs) and these terms are used interchangeably in the Microsoft protocol technical documents (TDs). Interchanging the usage of these terms does not imply or require a specific algorithm or mechanism to generate the UUID. Specifically, the use of this term does not imply or require that the algorithms described in [RFC4122] or [C706] must be used for generating the UUID.

UTF-16: A standard for encoding Unicode characters, defined in the Unicode standard, in which the most commonly used characters are defined as double-byte characters. Unless specified otherwise, this term refers to the UTF-16 encoding form specified in [UNICODE5.0.0/2007] section 3.9.

UTF-16LE: The Unicode Transformation Format - 16-bit, Little Endian encoding scheme. It is used to encode Unicode characters as a sequence of 16-bit codes, each encoded as two 8-bit bytes with the least-significant byte first.

well-known endpoint: A preassigned, network-specific, stable address for a particular client/server instance. For more information, see [C706].

MAY, SHOULD, MUST, SHOULD NOT, MUST NOT: These terms (in all caps) are used as defined in [RFC2119]. All statements of optional behavior use either MAY, SHOULD, or SHOULD NOT.