INT 2F - SMARTDRV v4.00+ - API
AX = 4A10h
BX = command
0000h installation check and hit ratios
Return: AX = BABEh if installed
DX:BX = cache hits
DI:SI = cache misses
CX = ???
BP = version (4.00 = 0400h)
0001h reset cache
0002h flush buffers
0003h status
BP = drive # (0=A, 1=B, etc.)
DL = subfunction
00h only get information
01h turn on read cache
02h turn off read cache
03h turn on write cache
04h turn off write cache
Return: AX = BABEh if OK
DL = status
bit 7  not cached
bit 6  write-through
bit 5  ???
bits 0-4 drive # (0=A, 1=B...)
DL = FFh if drive does not exist
Note:   If the read cache is off, reads will not be cached,
but writes will continue to be cached if the write-
cache is enabled.
0004h cache size
Return: AX = ???
BX = largest number of elements
CX = size of elements in bytes
DX = number of elements under Windows
0005h double-buffer status
BP = drive # (0=A, 1=B...)
Return: AX = BABEh if double-buffered
0007h ???
Return: DI = random number???
000Ah get table pointer???
Return: ES:BX -> table of about 10 bytes or 5 words. Seems to
be words pointing to memory addresses
containing info??? (see below)
1234h signal serious error
pops up a message box saying that a serious error occurred and
to hit R to retry.
SeeAlso: INT 21/AX=4403h"SMARTDRV"

Format of data table:
Offset  Size    Description
00h  8 BYTEs   ???
08h    WORD    offset of WORD containing number of elements in cache

See also: 214402

2F4A10 - SMARTDRV v4.00+ - API