INT 21 - Windows95 - FAT32 - Set DPBsee Drive Paramter Block TO USE FOR FORMATTING AX = 7304h DL = drive number (00h=default, 01h=A:, etc.) CX = size of buffer (must be at least 18h) ES:DI -> buffer for Set_DPBforFormat structure (see #01790) Return: CF clear if successful ES:DI buffer updated CF set on error AX = error code (18h = bad length in CX) SeeAlso: AX=7302h,AX=7303h,AX=7305h Format of Set_DPBforFormat structure: Offset Size Description (Table 01790) 00h WORD (call) size 02h WORD (call) structure version??? (0000h) (ret) ??? 04h DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. (call) function number 00h invalidate DPBsee Drive Paramter Block counts 01h rebuild DPBsee Drive Paramter Block from BPBsee BIOS Parameter Block 02h force media change (next access to drive rebuild DPBsee Drive Paramter Block) 03h get/set active FATsee File Allocation Table number and mirroring 04h get/set root directory cluster number ---function 00h--- 08h DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. new DPBsee Drive Paramter Block free count (00000000h=no change, FFFFFFFFh=unknown) 0Ch DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. new DPBsee Drive Paramter Block next-free (00000000h=no change, FFFFFFFFh=unknown) 10h DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. unused 14h DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. unused ---function 01h--- 08h DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. unused??? 0Ch DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. (call) -> BIOS Parameter BlockThe BIOS Parameter Block stores the low-level layout of a drive. See also INT 21h Function 53h. from which to rebuild DPBsee Drive Paramter Block 10h DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. unused 14h DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. unused ---function 02h--- 08h DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. unused 0Ch DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. unused 10h DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. unused 14h DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. unused ---function 03h--- 08h DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. (call) new active FATsee File Allocation Table/mirroring state, or FFFFFFFFh to get bits 3-0: the 0-based FATsee File Allocation Table number of the active FATsee File Allocation Table bits 6-4: reserved (0) bit 7: do not mirror active FATsee File Allocation Table to inactive FATs 0Ch DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. (ret) previous active FATsee File Allocation Table/mirroring state (as above) 10h DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. unused 14h DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. unused ---function 04h--- 08h DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. (call) new root directory cluster number FFFFFFFFh to get current 0Ch DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. (ret) previous root directory cluster number 10h DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. unused 14h DWORDDoubleword; four bytes. Commonly used to hold a 32-bit segment:offset or selector:offset address. unused