Re: QESTION For Real Kernel Hackers. ATA IDENTIFY DAT A - & NT/2K

Satish wrote:

D. K. :

Calculating the size of HardDisk using MBR is very easy( Just we have read 1
Sector ).
Did u tried this options ?

Regards,
Satish K.S

My task is calculate drive size using IDENTIFY DATA

Best regards,
Dmitry

----- Original Message -----
From: “Barila, Phil”
> To: “NT Developers Interest List”
> Sent: Tuesday, April 03, 2001 5:49 AM
> Subject: [ntdev] Re: QESTION For Real Kernel Hackers. ATA IDENTIFY DAT A &
> NT/2K
>
> > > -----Original Message-----
> > > From: D. K. [mailto:xxxxx@homepage.ru]
> > > Sent: Monday, April 02, 2001 2:35 PM
> > > To: NT Developers Interest List
> > > Subject: [ntdev] Re: QESTION For Real Kernel Hackers. ATA
> > > IDENTIFY DATA & NT/2K
> > >
> > >
> > > “Maxim S. Shatskih” wrote:
> > > >
> > > > > Satish wrote:
> > > > > >
> > > > > > U wanted actual size of HDD, I mean in ur case u should
> > > get 15GB right ?
> > > > >
> > > > > Yes!
> > > > >
> > > > > > how are u reading the size to detrmine the HDD size ?
> > > > >
> > > > > driver.c
> > > > > === cut here ===
> > > >
> > > > Are you replacing the system-supplied ATA driver?
> > >
> > > No.
> > >
> > > If no - then why not query
> > > the system’s ATA driver for the disk IDENTIFY data?
> > >
> > > My method is faster.
> > > As I have understood from your last message, result will be different?
> > > In my case UserAddressableSectors have not true value…
> >
> > If you aren’t the ATAPI driver, you really shouldn’t be twiddling the bits
> > on the ATAPI hardware. How often do you do this, that speed is an issue?
> > You should only be doing this at startup, and the startup time will be
> > dominated by other activities. The IDENTIFY_DEVICE data doesn’t come off
> > the spindle, so it’s a very fast operation, anyway. The driver will
> return
> > it in approximately the same amount of time that you can attach directly
> to
> > the hardware and get it from there. So the right approach is to query the
> > driver for it.
> >
> > In a previous message, I detailed where to find the information you need.
> > If you really must twiddle bits you shouldn’t twiddle, then you might have
> a
> > look at the spec I referenced in my earlier message. In answer to your
> > earlier question, no, you can’t use CHS at all for a drive larger than 8
> GB.
> > You have to use LBA. Since LBA is faster than CHS, you should use it any
> > time you can. I offer a hint: The legacy value, for any drive > 8.4 GB,
> is
> > a DWORD with value 0xFBFC10, which is 0x3FFF * 0x10 * 0x3F. Conversion to
> > decimal values is left as an exercise for the reader. Since your original
> > post referred to a value of 0x7000 somewhere further up in the NT4 ATAPI
> > stack, I would first look at your own code to see if you are corrupting
> the
> > IDENTIFY_DEVICE data. Are you properly byte swapping everything that
> needs
> > to be byte swapped? Not everything needs to be swapped when you use it,
> but
> > some of it does.
> >
> > In my vast ( :slight_smile: for the humor impaired ) 1 year plus of doing ATAPI
> driver
> > work, the smallest and oldest drive I have had available to test on was
> 800
> > MB. Even that one returned the correct number of LBAs in both of the
> > locations I mentioned in my earlier message. I know that there are older
> > drives that don’t do LBA right, and must be addressed with CHS, but I
> > haven’t used any. But do it right, use the existing ATAPI driver.
> >
> > Phil
> > * Philip D. Barila | (503) 264-8386
> > * Intel Corp. | M/S JF2-53 Office JF2-2-G6
> > * Storage Architecture and Performance
> > * Internet Systems Lab
> >
> >
> > —
> > You are currently subscribed to ntdev as: xxxxx@aalayance.com
> > To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com
>
> —
> You are currently subscribed to ntdev as: xxxxx@homepage.ru
> To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com