Subj : IORB_GEOMETRY, PDSK_GETPHYSDEVICEPARAMS and 32 bit sizes
To : Vitus Jensen
From : David Noon
Date : Sun Nov 16 2003 07:49 pm
Hi Vitus,
Replying to a message of Vitus Jensen to All:
VJ> Looking at OS2DASD.DMD source this shouldn't be a problem but when
VJ> this information is passed to LVM I find only the IOCtl
VJ> PDSK_GETPHYSDEVICEPARAMS. This IOCtl uses a 16 bit value for Number
VJ> of Cylinders...
That's correct. Remember that that particular IOCtl dates back to the days of
MS-OS/2, so it is wall-to-wall 16-bit, even though the underlying code is
nowadays 32-bit.
VJ> Is my analysis correct? There is no other IOCtl, Cylinders have to be
VJ> less than 65536?
Look at the OEMHLP_QUERYDISKINFO IOCtl, documented in ADDENDUM.INF. This
allocates a DWORD for cylinder count in its data packet, thus allowing over 4
billion cylinders. Just be aware that the information for this query is cached
from a BIOS interrupt before the kernel switches to protected mode. This means
that you will need a fairly recent BIOS (and SCSI BIOS, if your array is on
SCSI disks) to allow the system to collect the data.
Regards
Dave
<Team PL/I>
--- FleetStreet 1.25.1
* Origin: My other computer is an IBM S/390 (2:257/609.5)