Microsoft KB Archive/45880

From BetaArchive Wiki
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

BIOSPARAMETERBLOCK Is Incorrectly Defined in BSEDEV.H PSS ID Number: Q45880 Article last modified on 05-01-1991 PSS database name: O_Os2PrTk

1.00

OS/2

Summary:

Microsoft has confirmed that the data format BIOSPARAMETERBLOCK (the structure _BIOSPARAMETERBLOCK, which is also the typedef BIOSPARAMETERBLOCK) is incorrectly defined in the include file BSEDEV.H, included with the version 1.10 OS/2 Software Development Kit (SDK) and the version 1.00 OS/2 Programmer’s Toolkit (PTK).

To correct this problem, the field “abReserved” (a 6-byte array) should be inserted in the _BIOSPARAMETERBLOCK structure, between the fields “cLargeSectors” and “cCylinders”.

However, the definition for “abReserved” is properly defined in the QuickHelp database, as well as in the “Microsoft Operating System/2 Programmer’s Reference Volume 3.”

More Information:

The following is the INCORRECT definition, taken from BSEDEV.H:

typedef struct _BIOSPARAMETERBLOCK {    /* bspblk */
    USHORT usBytesPerSector;
    BYTE   bSectorsPerCluster;
    USHORT usReservedSectors;
    BYTE   cFATs;
    USHORT cRootEntries;
    USHORT cSectors;
    BYTE   bMedia;
    USHORT usSectorsPerFAT;
    USHORT usSectorsPerTrack;
    USHORT cHeads;
    ULONG  cHiddenSectors;
    ULONG  cLargeSectors;
    USHORT cCylinders;
    BYTE   bDeviceType;
    USHORT fsDeviceAttr;
} BIOSPARAMETERBLOCK;
typedef BIOSPARAMETERBLOCK FAR *PBIOSPARAMETERBLOCK;

The following is the CORRECT definition, taken from the QuickHelp database and from the “Microsoft Operating System/2 Programmer’s Reference Volume 3”:

typedef struct _BIOSPARAMETERBLOCK {    /* bspblk */
    USHORT usBytesPerSector;
    BYTE   bSectorsPerCluster;
    USHORT usReservedSectors;
    BYTE   cFATs;
    USHORT cRootEntries;
    USHORT cSectors;
    BYTE   bMedia;
    USHORT usSectorsPerFAT;
    USHORT usSectorsPerTrack;
    USHORT cHeads;
    ULONG  cHiddenSectors;
    ULONG  cLargeSectors;
    BYTE   abReserved[6];
    USHORT cCylinders;
    BYTE   bDeviceType;
    USHORT fsDeviceAttr;
} BIOSPARAMETERBLOCK;

The textual description of this field is as follows:

abReserved[6] Specifies six reserved bytes. These must be zero.

An updated version of BSEDEV.H that includes the “abReserved” field can be found in the Software/Data Library in the file BSEDEV11. This file can be found in the Software/Data Library by searching on the keyword BSEDEV11, the Q number of this article, or S12337. BSEDEV11 was archived using the PKware file-compression utility.

Copyright Microsoft Corporation 1991.