An ancillary
control process (ACP) is a process that interfaces between
the user process and the driver, and performs functions that supplement
the driver's functions. Virtual I/O operations involving file-structured
devices (disks and magnetic tapes) often require ACP intervention.
In most cases, ACP intervention is requested by OpenVMS Record Management
Services (RMS) and is transparent to the user process; however,
user processes can request ACP functions directly by issuing a Queue
I/O (QIO) request and specifying an ACP function code.
Executing physical and logical input/output (I/O) operations
on a device that is managed by a file ACP interferes with the operation
of the ACP, and can result in unpredictable consequences such as
system failure.
In addition to the ACP, the XQP (extended QIO processor) facility
supplements the QIO driver's functions when performing virtual I/O
operations on file-structured devices; however, rather than being
a separate process, the XQP executes as a kernel-mode thread in
the process of its caller.
An XQP is provided to support Files-11 ODS-2 and ODS-5 (On-Disk
Structure Level 2 and 5) disks as the base file system, and an ACP
is provided for ANSI standard X3.27 magnetic tapes.
On VAX systems, an ACP is provided for supporting Files-11
ODS-1 (On-Disk Structure Level 1) disks.
There are also ACPs to support the ISO 9660 CD-ROM disk structure
(Files-11 C) and High Sierra CD-ROM disk structure (Files-11 D).
Collectively, these ACPs are called Files-11 C/D.
This chapter describes the QIO interface to ACPs for disk
and magnetic tape devices (file system ACPs). The sample program
in
Optional Features for Improving I/O Performance performs QIO operations
to the magnetic tape ACP.
This chapter also describes a number of structures and field
names of the form xxx$name.
A MACRO program can define symbols of this form by invoking the
$xxxDEF macro.
The following macros are available in SYS$LIBRARY:STARLET.MLB:
$IODEF
$FIBDEF
$ATRDEF
$SBKDEF
The following macros are available in SYS$LIBRARY:LIB.MLB:
$FATDEF
$DQFDEF
$FCHDEF
Programs written in BLISS-32 can use these symbols by referencing
them and including the correct library, SYS$LIBRARY:STARLET.L32
(for the macros listed under SYS$LIBRARY:STARLET.MLB), and SYS$LIBRARY:LIB.L32
(for the macros listed under SYS$LIBRARY:LIB.MLB).
References to ANSI refer to the American National
Standard Magnetic Tape Labels and File Structures for Information
Interchange, ANSI X3.27-1978.