BIOS Parameter Block (BPB).
typedef struct _BIOSPARAMETERBLOCK { USHORT usBytesPerSector; /* Number of bytes per sector. */ BYTE bSectorsPerCluster; /* Number of sectors per cluster. */ USHORT usReservedSectors; /* Number of reserved sectors. */ BYTE cFATs; /* Number of FATs. */ USHORT cRootEntries; /* Number of root directory entries. */ USHORT cSectors; /* Number of sectors. */ BYTE bMedia; /* Media descriptor. */ USHORT usSectorsPerFAT; /* Number of secctors per FAT. */ USHORT usSectorsPerTrack; /* Number of sectors per track. */ USHORT cHeads; /* Number of heads. */ ULONG cHiddenSectors; /* Number of hidden sectors. */ ULONG cLargeSectors; /* Number of large sectors. */ BYTE abReserved[6]; /* Reserved. */ USHORT cCylinders; /* Number of cylinders defined for the physical device. */ BYTE bDeviceType; /* Physical layout of the specified device. */ USHORT fsDeviceAttr; /* A bit field that returns flag information about the specified drive. */ } BIOSPARAMETERBLOCK; typedef BIOSPARAMETERBLOCK * PBIOSPARAMETERBLOCK ;