The Question is:
I want to make a generic systartup_vms which automatically mounts whatever harddisks are present locally (similar to how a PC does it). How can I in the procedure distinguish harddisks from floppy and CD-ROM drives (with removable media)?
I want to exclude the latter - in particular to avoid wasting startup time on mount attempts of non-existing media's (volumes).
I have tried f$getdvi() with all item codes (I think). The only option appears to be the device type name. I would like to avoid that one. Because of the amount of possible values. With new ones being added. Also before the OpenVMS doc is updated.
The Answer is :
OpenVMS V6.2 and later ask the disk device what type it is, and
this information can be retrieved via lexical calls such as:
x = f$getdvi("DKA400","DEVICE_TYPE_NAME")
That said, there is no entirely reliable way to distinguish whole
classes of disk devices in the general case.
In the specific case of SCSI disk devices, an application image can
examine the SCSI mode pages for this information. The SCSI inquiry
command (see SYS$ETC:SCSI_INFO) can return the peripheral device type
of "Direct Access" or "CD-ROM", for instance. (It is far easier (and
directly supported) to perform device scans via an application program
than via (unsupported) DCL and parsing of input.