{
{   The purpose of this request is to get information about a set, catalog,
{ file, or cycle.
{
{       PFP$GET_OBJECT_INFORMATION (FILE_REFERENCE, INFORMATION_REQUEST,
{             P_VALIDATION_CRITERIA, P_OBJECT_INFORMATION, STATUS);
{
{ FILE_REFERENCE: (input) This parameter identifies the catalog, file, or cycle
{       about which information is to be returned.  If a cycle reference is
{       included and fsc$cycle_object_list is requested, then the cycle
{       reference will be ignored.  (See documentation for the
{       information_request parameter.)
{
{ INFORMATION_REQUEST: (input) This parameter is a record specifying what type
{       or types of information are to be returned.  Catalog_depth is ignored
{       when any subject permit is specified.  (See documentation for the
{       p_validation_criteria parameter for subject_permit information.)  A
{       catalog_depth of one (1) means that all of the requested information
{       about the catalog identified by the file_reference parameter will be
{       returned.  If any of the object lists are requested, the applicable
{       names, cycle numbers, global file names, and device classes of the
{       objects will be returned.  A catalog_depth of two (2) means that, in
{       addition to the information returned for a depth of one, all of the
{       requested information about the objects contained in the catalog
{       identified by the file_reference parameter will be returned.  (See the
{       deck containing the declaration of type fst$goi_object_info_request for
{       more information.)
{
{       Currently catalog_depth is not supported.
{
{ P_VALIDATION_CRITERIA: (input, output) This parameter specifies a pointer to
{       an array of validation criterion.
{
{       password: (input) If a password is specified and the object identified
{             by the file_reference parameter is a catalog, then an abnormal
{             status will be returned.
{
{             A password only has meaning with respect to the file label and
{             the job environment information.  If either or both of these
{             types of information are requested and a password is specified,
{             then the password specified must match the password registered
{             with the file identified by the file_reference parameter,
{             otherwise the file label and the job environment information will
{             not be returned.  If either or both of these types of information
{             are requested, a password is not specified, and the file
{             identified by the file_reference parameter is attached within the
{             job, then the file label and the job environment information will
{             be returned.  If either or both of these types of information are
{             requested, a password is not specified, and the file identified
{             by the file_reference parameter is not attached within the job
{             but is password protected, then the file label and the job
{             environment information will not be returned.
{
{             If more than one password is specified, then the first one
{             specified will be used.
{
{       validation_ring: (input) The validation ring only has meaning with
{             respect to the file label and the job environment information.
{             If the validation ring is greater than ring r3 of the cycle, then
{             the file label and the job environment information will not be
{             returned.
{
{             If more than one validation_ring is specified, then the first one
{             specified will be used.  The value specified must be greater than
{             or equal to the lesser of the ring of the caller and the minimum
{             ring of the user.
{
{             Omission causes the lesser of the ring of the caller and the
{             minimum ring of the user to be used.
{
{       subject_permit: (input, output) If this request is being made by the
{             system or an application on behalf of a user but does not
{             originate from within the environment of that user, then one or
{             more subject permits should be provided in the array.  The
{             permit_type and group must be provided as input.  Each subject
{             specified must be permitted to the object identified by the
{             file_reference parameter or an abnormal status will be returned.
{             If any subject permit is specified, then catalog_depth will be
{             ignored.
{
{             A direct permit refers to the permit which would be used in
{             determining how the subject may access the object identified by
{             the file_reference parameter if only the permits created for the
{             object are considered.
{
{             An indirect permit refers to the permit which would be used in
{             determining how the subject may access the object identified by
{             the file_reference parameter regardless of whether the permit was
{             created for the object or for one of its parental catalogs.
{
{             Only the owner or an administrator of the object identified by
{             the file_reference parameter may specify a subject permit.
{
{ P_OBJECT_INFORMATION: (input, output) This parameter specifies a pointer to a
{       sequence in which the requested information will be returned.  This
{       pointer must be reset by the caller prior to calling this routine, and
{       again prior to "reading" the sequence, as pfp$get_object_information
{       never resets this pointer.  A sequence large enough to hold all of the
{       requested information should be provided, otherwise this request will
{       terminate prematurely with an abnormal status.  It is recommended that
{       a sequence pointer to a scratch segment, created via
{       mmp$create_scratch_segment, be specified whenever a "large" amount of
{       information is being requested.  All pointers returned within the
{       sequence will be process virtual addresses.
{
{ STATUS: (output) This parameter returns the request status.
{       CONDITIONS:
{             ame$damaged_file_attributes
{             ame$file_not_known
{             ame$ring_validation_error
{             pfe$bad_account_name
{             pfe$bad_cycle_number
{             pfe$bad_cycle_option
{             pfe$bad_family_name
{             pfe$bad_group_type
{             pfe$bad_last_subcatalog
{             pfe$bad_master_catalog_name
{             pfe$bad_nth_subcatalog_name
{             pfe$bad_object_info_requests
{             pfe$bad_password
{             pfe$bad_permanent_file_name
{             pfe$bad_project_name
{             pfe$bad_user_name
{             pfe$bad_validation_selection
{             pfe$catalogs_have_no_password
{             pfe$incorrect_password
{             pfe$info_full
{             pfe$invalid_ring_access
{             pfe$neither_owner_nor_admin
{             pfe$not_family_owner
{             pfe$nth_name_not_subcatalog
{             pfe$pf_system_error
{             pfe$unknown_cycle
{             pfe$unknown_family
{             pfe$unknown_item
{             pfe$unknown_last_subcatalog
{             pfe$unknown_master_catalog
{             pfe$unknown_nth_subcatalog
{             pfe$unknown_permanent_file
{
