DSHDR


DSHDR STRUC
    dspStamp    dw  ?  ; Identifying stamp ('DM')
    dspCommand  db  ?  ; Command ('R' or 'W')
    dspResult   dw  ?  ; see below
DSHDR ENDS

Defines the portion of the IOCTL header that is common to all DriveSpace Receive Control Data IOCTLs. Notice that WORD alphanumeric constants are shown as they would be defined for MASM. Thus, 'DM' is equivalent to 444Dh, and 'OK' is equivalent to 4B4Fh. When dumped as two consecutive bytes or as a text string, these values would appear as "MD" and "KO" respectively. The dspCommand field is typically an ASCII character. For the raw read IOCTL, dspCommand is set to 'r'; for raw writes, it is set to 'w'.

dsp_result

Can be one of these values:

Value

Meaning

DSRROK ('OK')

Success

DSRRWRITE (0001h)

Intervening write occurred

DSRRLOCK (0002h)

Buffer lock failed

DSRRIO (0003h)

I/O error

DSRRBADCLUS (0004h)

Invalid MDFAT index

DSRRUNALLOC (0005h)

Attempt to read unallocated cluster

DSRRBADSECTOR (0006h)

Bad starting sector

DSRRBADSIZE (0007h)

Bad cluster size

DSRRNOSIZE (0008h)

Uncompressed size unknown

DSRRNOTFREE (0009h)

Some target sectors were not free

DSRRXBOUND (000Ah)

Allocation crosses BitFAT boundary

DSRRNULLPTR (000Bh)

NULL pointer passed to write

DSRRSECCOUNT (000Ch)

Sector count mismatch

DSRRPKTSIZE (000Dh)

Packet size is too small

DSRRDATAWRITE (000Eh)

Data was written

DSRRBADFRAG (000Fh)

Bad fragment table