home *** CD-ROM | disk | FTP | other *** search
- Finding SSWAPed drives in C
-
-
- If Stacker is installed, using the ST_PTR generated by the call to
- the detect_stacker() function as shown in Appendix B of the Stacker version
- 2 manual, it is possible to determine what drives have been swapped using
- SSWAP. At offset 0x52 from ST_PTR is a signature, which consists of the
- four characters 'SWAP'. Following this four byte signature is a 26 byte
- array, which contains the original drive numbers (0=A, 1=B, etc) for all
- drives. Each time SSWAP performs a swap of two drives, it interchanges
- the corresponding entries in this array.
-
- Using C notation, the structure is defined as follows:
-
- ST_PTR + 52H --> struct swapmap
- {
- char swapSignature[4]; /* 'SWAP' */
- char swapmap[26];
- }
-
- Note that swapmap[i] (where i=0 means A:, i=1 means B:, etc) contains the
- "original" drive number for drive i. That is, drive i was drive swapmap[i]
- at boot time. To find the inverse function (namely, what is the current
- drive number of the drive that was drive j at boot time?), you need to search
- the swapmap array to find j. In other words, if swapmap[k]==j, then drive k
- was drive j at boot time.
-
-