[Windows 95 only.]
Writes data from a buffer to a track on the specified device.
mov bx, Drive ;See below mov ch, DeviceCat ;See below mov cl, 41h ;Write Track on Logical Drive mov dx, seg WriteBlock ;See below mov ds, dx mov dx, offset WriteBlock ;ds:dx points to RWBLOCK structure mov ax, 440Dh ;IOCTL for block device int 21h jc error_handler ;carry set means error
Drive
Specifies the drive information is to be written to (0 = default drive, 1 = A, 2 = B, and so on).
DeviceCat
Specifies a FAT16, FAT12 or FAT32 drive.
|
Value |
Description |
|
08h |
FAT16 or FAT12 drive. (Will fail on FAT32 drives.) |
|
48h |
FAT32, FAT16, or FAT12 drive. This value is supported on Windows 95 OEM Service Release 2 and later. |
Note: Because this call may be implemented in the device driver, the 48h form of this call may fail on FAT16 or FAT12 media. Therefore, applications making the 48h form of this call must fall back on the 08h form if the 48h call fails.
WriteBlock
Points to an RWBLOCK structure that contains information specifying the sectors to be written to. The rwBuffer field must contain the address of the buffer that contains the data to write to the disk. The RWBLOCK structure has the following form:
RWBLOCK STRUC
rwSpecFunc db 0 ;special functions (must be zero)
rwHead dw ? ;head to read/write
rwCylinder dw ? ;cylinder to read/write
rwFirstSector dw ? ;first sector to read/write
rwSectors dw ? ;number of sectors to read/write
rwBuffer dd ? ;address of buffer for read/write data
RWBLOCK ENDS
If the function is successful, clears the carry flag. Otherwise, sets the carry flag and sets the AX register to one of the following error values.
|
Value |
Name |
|
0001h |
ERROR_INVALID_FUNCTION |
|
0002h |
ERROR_FILE_NOT_FOUND |
|
0005h |
ERROR_ACCESS_DENIED |
Write Track on Logical Drive returns 0002h (ERROR_FILE_NOT_FOUND) if the specified drive number is invalid.