TIP: Click on subject to list as thread! ANSI
echo: os2prog
to: MARIO SEMO
from: MIKE RUSKAI
date: 1999-11-09 17:35:28
subject: HPFS freespace bmp list

[This may be a duplicate message.  My Fido host had a glitch]
[that prevented mail from going out for an unspecified      ]
[length of time, so I have to repost recent messages.       ]


Some senseless babbling from Mario Semo to Mike Ruskai
on 11-02-99  07:57 about HPFS freespace bmp list...

 MS> Hallo MIKE!

 MS> Antwort auf eine Message von MIKE RUSKAI an ALL:

 MR> On a completely empty drive, the difference between the total drive
 MR> size, and the free space (as reported by DosQueryFSInfo()) has a
gap
 MR> of 2MB not accounted for by HPFS structures.  What I first did was

 MS> just as a side note:

 MS> i primary run NT4.03 in the meantime, but once a day i still boot
OS2.
 MS> and i ruin NT 4.03 with the NT 3.5HPFS drivers.
 MS> and i realized sometime, that NT-HPFS and WARP4 HPFS displays 2
 MS> different values for the free space on a drive. the difference is
 MS> nearly 2MB! e.g. a dir on NT says 10MB free.
 MS> and a dir on OS2 says 8MB free.

So, either OS/2's HPFS.IFS has a bug, or that space is reserved for
something (presumably useful), and NT's driver doesn't know about it.

 MR> 512 data bands (about 4GB).  Also in the HPFS SuperBlock is a
pointer
 MR> to a spare freespace bitmap list.  What's not there is the length
of
 MR> this spare list. If it's only four sectors, like the primary list,
 MR> then HPFS dies at 8GB, without another list.

 MS> where in the super block should be this pointer?

 MS> I have no real knowledge on HPFS structs, but i opened the
ColoradOS2
 MS> conferences papers and looked at the HPFS Super block struct. i
cant
 MS> find such a pointer.

 MS> The HPFS Boot Area has such a pointer.

 MS> LSN / Size (Sectors) / Description:

 MS> 00 / 1 / Standard Boot Sector
 MS> 01 / 0F / HPFS Boot Code
 MS> 10 / 1 / Super Block
 MS> 11 / 1 / Spare Block <---- do you  mean this ?

No, it's offset 0x1C in the SuperBlock, which is apparently always 0.
The
primary sector list (offset 0x18) is variable in size, expanding 4
sectors
at a time as necessary, as I later found out.

I've since modified the program in question to use DosDevIOCtl()
properly.
I've also consolidated a bunch of stuff into a single program, which I'm
still working on.

You can get a report on your freespace discrepancy with the following
program:

http://home.att.net/~thanny/fspace.zip

It includes the source in the archive.

Mike Ruskai
thannymeister@yahoo.com

... Conscience gets a lot of credit that belongs to cold feet.

___ Blue Wave/QWK v2.20
--- Platinum Xpress/Win/Wildcat5! v3.0pr2
* Origin: FIDO QWK MAIL & MORE! WWW.DOCSPLACE.ORG (1:3603/140)

SOURCE: echoes via The OS/2 BBS

Email questions or comments to sysop@ipingthereforeiam.com
All parts of this website painstakingly hand-crafted in the U.S.A.!
IPTIA BBS/MUD/Terminal/Game Server List, © 2025 IPTIA Consulting™.