DoubleSpace IOCTL fn 'I': Flush and Invalidate Cache
Compatibility: 6.0+
Expects: AX 4404H (INT 21H IOCTL Read service number)
BL any compressed drive number (1=A, 2=B, etc)
CX 10 (size of a DsIoctlRec; see below)
DS:DX address of a DsIoctlRec with an 'I' (ASCII 49H) in
the bCmdCode field)
──────────────────────────────────────────────────────────────────
Returns: DS:DX bResult contains a DoubleSpace API Error Code (00H=success)
──────────────────────────────────────────────────────────────────
Info: DoubleSpace maintains internal caches for its cluster data,
BitFAT and MDFAT data (see CVF Layout).
This IOCTL fn forces DoubleSpace to update the CVF▲ on disk to
reflect the currently-cached data AND to invalidate its cache (so
it will read future data requests from the disk).
This is handy for disk utility programs which need to ensure that
changes they make to a CVF are recognized immediately.
DS:DX points to a DsIoctlRec as follows:
DsIoctlRec
Offset Size Contents
▀▀▀▀▀▀ ▀▀▀▀ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
+0 2 abSig must be 444dH ('M','D')
+2 1 bCmd must be 46H ('I') flush & Invalidate
+3 2 bResult returns a DoubleSpace API Error Code
+5 5 res (reserved; 0)
10 size of a DsIoctlRec structure
To use this fn, set up the packet and the registers, and call
INT 21H. See DOS fn 44H (device I/O Control) for related DOS
functions.
On return, check bResult for an error code. The value 4f4bH
('OK') indicates success.
See Also: DoubleSpace Overview
DoubleSpace API
INT 2fH: Multiplex Interrupt
DOS Functions
-♦-