Mail Archives: djgpp/2001/01/27/22:21:40
On Sat, 27 Jan 2001 10:34:39 +0200, "Eli Zaretskii"
<eliz AT is DOT elta DOT co DOT il> wrote:
>This is wrong. Function 7303h needs the _second_ 16-bit word of the
>buffer to be zeroed out, but you only zero out the first 16-bit word
>of your buffer[] variable. This leaves the second word at random
>value (whatever was on the stack).
>
>In addition, 7303h needs DS:DX to point to the drive string in the
>transfer buffer, and ES:DI to point to the data buffer in the transfer
>buffer, but your program didn't assign anything to DS and ES.
Thank you. I spotted the ds/es bug this morning, but not the version
field.
>Note that on some Windows 9X systems, if the DOS box loads a TSR that
>hooks Int 21h, the reported values will never exceed 2GB. This is a
>Windows misfeature/bug, mentioned in RBIL.
Yes. I suppose one could write a TSR that loads first to monitor
calls through 0x21 and unhook the interrupt for the duration of the
call. I'll have to review my knowledge of ioctl calls; perhaps
there's a more robust way to query a device's free space.
Thanks again,
-Scott
- Raw text -