{{page>en:templates:dosint}} ====== Int 21H, AH=32H ====== ===== Version ===== 2 and higher ===== Brief ===== GET DOS DRIVE PARAMETER BLOCK FOR SPECIFIC DRIVE ===== Family API ===== ===== Input ===== AH = 32h DL = drive number (00h = default, 01h = A:, etc) ===== Return ===== AL = status 00h successful DS:BX -> Drive Parameter Block (DPB) (see #01395) for specified drive FFh invalid or network drive ===== Notes ===== the OS/2 compatibility box supports the DOS 3.3 version of this call except for the DWORD at offset 12h this call updates the DPB by reading the disk; the DPB may be accessed via the DOS list of lists (see #01627 at AH=52h) if disk access is not desirable. undocumented prior to the release of DOS 5.0; only the DOS 4.0+ version of the DPB has been documented, however supported by DR DOS 3.41+; DR DOS 3.41-6.0 return the same data as MS-DOS 3.31 IBM ROM-DOS v4.0 also reports invalid/network (AL=FFh) on the ROM drive Format of DOS Drive Parameter Block: ^ Offset ^ Size ^ Description ^ | 00h | BYTE | drive number (00h = A:, 01h = B:, etc) | | 01h | BYTE | unit number within device driver | | 02h | WORD | bytes per sector | | 04h | BYTE | highest sector number within a cluster | | 05h | BYTE | shift count to convert clusters into sectors | | 06h | WORD | number of reserved sectors at beginning of drive | | 08h | BYTE | number of FATs | | 09h | WORD | number of root directory entries | | 0Bh | WORD | number of first sector containing user data | | 0Dh | WORD | highest cluster number (number of data clusters + 1) 16-bit FAT if greater than 0FF6h, else 12-bit FAT | | 0Fh | BYTE | number of sectors per FAT | | 10h | WORD | sector number of first directory sector | | 12h | DWORD | address of device driver header (see #01646) | | 16h | BYTE | media ID byte (see #01356) | | 17h | BYTE | 00h if disk accessed, FFh if not | | 18h | DWORD | pointer to next DPB | | ---DOS 2.x--- ||| | 1Ch | WORD | cluster containing start of current directory, 0000h=root, FFFFh = unknown | | 1Eh | 64 BYTEs | ASCIZ pathname of current directory for drive | | ---DOS 3.x--- ||| | 1Ch | WORD | cluster at which to start search for free space when writing | | 1Eh | WORD | number of free clusters on drive, FFFFh = unknown | | ---DOS 4.0-6.0--- ||| | 0Fh | WORD | number of sectors per FAT | | 11h | WORD | sector number of first directory sector | | 13h | DWORD | address of device driver header (see #01646) | | 17h | BYTE | media ID byte (see #01356) | | 18h | BYTE | 00h if disk accessed, FFh if not | | 19h | DWORD | pointer to next DPB | | 1Dh | WORD | cluster at which to start search for free space when writing, usually the last cluster allocated | | 1Fh | WORD | number of free clusters on drive, FFFFh = unknown | ===== See also ===== AH=[[en:docs:dos:api:int21:1f|1Fh]],AH=[[en:docs:dos:api:int21:52|52h]],AX=[[en:docs:dos:api:int21:73:02|7302h]] ===== Note ===== Text based on [[http://www.cs.cmu.edu/~ralf/files.html|Ralf Brown Interrupt List Release 61]] {{page>en:templates:int}} {{page>en:templates:fapi}}