Int 21h Function 440Dh Minor Code 47h (FAT32)

[Windows 95 only.]

Sets the access flag for the specified drive.

mov     bx, Drive               ;See below
mov     ch, DeviceCat           ;See below
mov     cl, 47h                 ;Set access flag
mov     dx, seg SpecialFunc     ;See below
mov     ds, dx
mov     dx, offset SpecialFunc  ;ds:dx points to SPECIALFUNC structure
mov     ax, 440Dh               ;IOCTL for block device
int     21h

jc      error_handler           ;carry set means error

Parameters

Drive

Specifies the drive for which the access flag is to be set (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.

SpecialFunc

Points to a SPECIALFUNC structure that contains information specifying the state of the access flag. The SPECIALFUNC structure has the following form:

SPECIALFUNC STRUC
    sfFunction  db  0   ;special function (must be 0)
    sfAccessFlg db  ?   ;access flag, 0 if access blocked
                        ;"unformatted"
SPECIALFUNC ENDS

Return Values

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

Remarks

Set Access Flag returns 0002h (ERROR_FILE_NOT_FOUND) if the specified drive number is invalid.