Autodocs Libraries:
hdwrench.library FindControllerID FindDefaults FindDiskName FindLastSector HDWCloseDevice HDWOpenDevice InMemMountfile InMemRDBStructs LowlevelFormat OutMemMountfile OutMemRDBStructs QueryCapacity QueryFindValid QueryInquiry QueryModeSense QueryReady RawRead RawWrite ReadMountfile ReadRDBStructs ReadRDBs VerifyDrive WriteBlock WriteMountfile WriteRDBStructs WriteRDBs ZZexample description Include GuruMeditation
|
Docs » Autodocs » hdwrench.library » description
INTENDED USE hdwrench.library is intended to be used as a low level tool for preparing and installing RigidDiskBlocks, RDBs. It can also materially assist in diagnosing many common ailments within RDB structures or determining details about the devices attached to the SCSI controller. USAGE hdwrench.library builds a separate internal database for each opener. This database can service one unit number at a time. The internal database is partially created by the OpenLibrary call, partially created by the HDWOpenDevice call, and mostly created by the ReadMountfile, ReadRDBs, and ReadRDBStructs commands. hdwrench.library performs its own OpenDevice actions that last either until the library is closed or until an HDWCloseDevice is issued. The HDWCloseDevice call also clears the internal database. It may be issued even when no device is opened for this purpose. hdwrench.library makes no big deal over whether or not the data presented to it is appropriate in any way for the device to which it is written. It does support the calling process's efforts to determine appropriate parameters with its various Find and Query functions. Typical usage would involve a call to open the library. QueryFindValid will then determine which devices if any are present to be configured on the device and board given. Then a series of calls to QueryInquiry could obtain the device names for each of the discovered devices. The user would then select a device to be partitioned from the presented list. Upon selection the program would issue a ReadRDBs command to read data from the device, if any, and a call to ReadCapacity to determine the device's actual last block as a check for "reasonableness" on the RDBs read. If the RDBs read are deemed "good" they are presented to the user for information or modification. If they are deemed "bad" the user should be informed and if requested the program should write the bad mountfile data to a file for diagnosis. If no RDBs are found a call to FindDefaults will very agressively determine the last block on the drive and then, according some flags, present the program with a set of suggested disk parameters for the standard "ST-506" related heads, blocks/track, and cylinders nonsense. At this time the drive can be partitioned as normal. Once a set of partitioning data is determined the program can present this data to hdwrench.library in two different formats from two different sources. The data may be presented either as a mountfile or as actual RDBs correctly linked as if for placing on the disk. The mountfile format is suggested. It contains slightly more check data and is very useful to have around if some accident requires mounting the drive's partitions using the standard "C:Mount" command. This data can be presented to hdwrench.library either through a file or through a block of memory with the same contents as would appear in the file. hdwrench.library will read the presented data and then when requested write that data to the disk RDBs. It can also convert the RDB based data in its internal structures into a "C:Mount" compatible mountfile or a file containing the RDB data. Tester.c is the program used to confirm the functionality of the library and can be considered as crude examples of the use for each function. It may be used and modified as long as proper attribution is made to the copyright holder(s). The following commands require a device already be opened before they can proceed: FindDefaults FindDiskName FindLastSector QueryCapacity QueryInquiry QueryModeSense QueryReady RawRead RawWrite ReadRDBs WriteBlock WriteRDBs The following commands require that no device be already opened: FindControllerID HDWOpenDevice QueryFindValid The following functions do not care: HDWCloseDevice InMemMountfile InMemRDBStructs OutMemRDBStructs ReadMountfile ReadRDBStructs WriteMountfile WriteRDBStructs
|