RE: [GD-Windows] retrieving the cluster size on xp
Brought to you by:
vexxed72
From: tweety <mi...@sy...> - 2004-03-15 03:28:29
|
EVERY filesystem is divided in clusters, even CDFS/UDF and linux' filesystems (reiserfs and... Whatever the normal one is called, I forgot = :) ), even if they're as small as 1 byte (I personally never heard of one). That's because, when adding new parts to a file surrounded by 2 other = files, you need a way to tell the os where to look for the next part, and you really can't add a LONGLONG (int64) after every byte... Even a rle-based approach would be slow when updating. So they just stuff a "next = pointer" for each cluster (since most fss store the next pointer at the = beginning, the macimum number of files/folders/objects etc is limited). I know deviceiocontrol works differently on w200x/xp, but I haven't been able to find out anything but bytes/sector, and I still need = sectors/cluster or something. So, now tell me why is it so wrong to expect a function that receives a = path within the system (on windows it could be an itemidlist) (the path is required because of the mounting points in wnt+ and linux etc) and = retrieve the cluster size of that folder (or return false when it cannot)? I'm = not talking about an os-independent function, I'm talking about a wrapper of = the different methods to get the cluster size (that's now; if they would = have thaught of that sooner, they could have written a propper getclusersize = from the beginning). About the null pointer: the first write of a function as esoteric as my w9x-compatible getclustersize that uses vxds and deviceiocontrol really isn't that centered at handling internally errors, I just step through = it with the debugger. And I just used the disk in "readonly" mode, I love = my hard disk too :)) ---------------------------------- Peace and love, Tweety mi...@sy... - twe...@us... YahooID: tweety_04_01 -----Original Message----- From: gam...@li... [mailto:gam...@li...] On Behalf Of Carsten Orthbandt Sent: March 14, 2004 6:43 PM To: gam...@li... Subject: RE: [GD-Windows] retrieving the cluster size on xp Erm... Show me _one_ *.vxd on a NT based OS. There ain't none. DeviceIoControl is _documented_ to be different on NT and 9x. If you rely on specific behaviour for portable code, you're doomed. = OTOH, given the wide variety of filesystems on Win32 systems, why do you = expect to find something like a cluster size at all? Why should it matter? You either write portable application code and shouldn't have to resort = to native OS constants. Or you write OS specific code and then you'll have = to face the differences. And you better know about them. 9x and NT/2K/XP _are_ different platforms. System information easily = tells you that. Having nearly the same API on both of them is a mere = convenience, not a guarantee. And: Your code crashes because CreateFile() returned NULL??? You'd better learn proper error handling before messing with my hard = disk... Carsten Orthbandt Founder + Development Director SEK SpieleEntwicklungsKombinat GmbH http://www.sek-ost.de Wenn ich Visionen habe, gehe ich zum Arzt. - Helmut Schmidt > -----Original Message----- > From: gam...@li... > [mailto:gam...@li...] On Behalf Of = > tweety > Sent: Sunday, March 14, 2004 10:37 PM > To: gam...@li... > Subject: RE: [GD-Windows] retrieving the cluster size on xp >=20 >=20 > I didn't explain myself properly... I wrote some deviceiocontrol code=20 > for wme/w98 and it craches because createfile on vmm32.vxd (or=20 > whatever) returns null. > Getdiskfreespace works properly on my machine (then again, I have 32k=20 > and 4k clusters...). Still, there should be a function that works on=20 > ALL windowses and that returns the cluster size. >=20 > ---------------------------------- > Peace and love, > Tweety > mi...@sy... - twe...@us... > YahooID: tweety_04_01 >=20 >=20 >=20 > -----Original Message----- > From: gam...@li... > [mailto:gam...@li...] On Behalf Of = > Carsten Orthbandt > Sent: March 14, 2004 3:58 AM > To: gam...@li... > Subject: RE: [GD-Windows] retrieving the cluster size on xp >=20 > I'd bet some money on your source being the reason for crashing. The=20 > GetDiskFreeSpace API works fine for me on all flavours of Win32. I=20 > don't think you'll crash XP calling this function, it's your app.=20 > Generally, Win9x is much more forgiving when it comes to invalid=20 > memory accesses than the WinNT siblings. Wich is actually a good=20 > thing. >=20 > Carsten Orthbandt > Founder + Development Director > SEK SpieleEntwicklungsKombinat GmbH > http://www.sek-ost.de >=20 > Wenn ich Visionen habe, gehe ich zum Arzt. - Helmut Schmidt >=20 >=20 > > -----Original Message----- > > From: gam...@li... > > [mailto:gam...@li...] > On Behalf Of > > tweety > > Sent: Sunday, March 14, 2004 5:02 AM > > To: gam...@li... > > Subject: RE: [GD-Windows] retrieving the cluster size on xp > >=20 > >=20 > > Ok, I'll try it. Thanks. By the way, I did it in w98/me a long time=20 > > ago, it just crashes on xp... :) You know, I find really sad that=20 > > there's a function in *foxpro* to find the cluster size of > a drive and > > there's not ONE thing in the whole windows 32 api to return the=20 > > cluster size reliably in all operating systems... Maybe longhorn?... > >=20 > > ---------------------------------- > > Peace and love, > > Tweety > > mi...@sy... - twe...@us... > > YahooID: tweety_04_01 > >=20 > > =20 > >=20 > > -----Original Message----- > > From: gam...@li... > > [mailto:gam...@li...] > On Behalf Of > > Simon O'Connor > > Sent: March 13, 2004 5:06 PM > > To: gam...@li... > > Subject: RE: [GD-Windows] retrieving the cluster size on xp > >=20 > >=20 > > Hi Tweety, > >=20 > >=20 > > GetDiskFreeSpace() is supported on Windows XP, Windows 2000, Windows = > > NT, Windows Me, Windows 98, Windows 95, and Windows Server 2003... > >=20 > > My comments about 9x were just addressing your preference for a=20 > > portable method. > >=20 > >=20 > > Cheers, > >=20 > > Simon O'Connor > > Programmer @ Acclaim > > & Microsoft DirectX MVP > >=20 > > > -----Original Message----- > > > From: gam...@li... > > > [mailto:gam...@li...] > > On Behalf Of > > > tweety > > > Sent: 13 March 2004 21:55 > > > To: gam...@li... > > > Subject: RE: [GD-Windows] retrieving the cluster size on xp > > >=20 > > > I specified in the subject that I'm interested in finding out the=20 > > > cluster size (it's not a hint, but not partitionmagic, I'm > > just trying > > > to find out the waste of space on my drive) on *xp*, not > 9x/me. And > > > I'd really, REALLY, REEEALY preffer not to go to the ddk... > > >=20 > > > ---------------------------------- > > > Peace and love, > > > Tweety > > > mi...@sy... - twe...@us... > > > YahooID: tweety_04_01 > > >=20 > > > =20 > > >=20 > > > -----Original Message----- > > > From: gam...@li... > > > [mailto:gam...@li...] > > On Behalf Of > > > Simon O'Connor > > > Sent: March 13, 2004 4:42 PM > > > To: gam...@li... > > > Subject: RE: [GD-Windows] retrieving the cluster size on xp > > >=20 > > >=20 > > > Hi Tweety, > > >=20 > > >=20 > > > You can use GetDiskFreeSpace() to find the number of sectors per=20 > > > cluster and the number of bytes per sector so simply > > multiply them to > > > find the size of a cluster. > > >=20 > > >=20 > > > The docs for GetDiskFreeSpace() do mention that the > returned sectors > > > per cluster value can be inaccurate under Windows 9x/ME > for drives > > > with more than 64 sectors per cluster (the 80Gb drive in > > this machine > > > only has 8 per cluster so it might be a fairly unusual case). > > >=20 > > > This is probably only an issue for you if your > application needs to > > > use this for something more than a "hint" (e.g. if you're writing=20 > > > something like PartitionMagic etc). If you do need the totally=20 > > > accurate value, you could obtain the DDK and take a look at the=20 > > > Win9x/Me specific FS_GetDiskInfo() function. > > >=20 > > > =20 > > > Cheers, > > > =20 > > > Simon O'Connor > > > Programmer @ Acclaim > > > & Microsoft DirectX MVP > > >=20 > > >=20 > > > ________________________________ > > >=20 > > > From: gam...@li... > > > [mailto:gam...@li...] > > On Behalf Of > > > tweety > > > Sent: 11 March 2004 23:39 > > > To: gam...@li... > > > Subject: [GD-Windows] retrieving the cluster size on xp > > > =09 > > > =09 > > > Can someone please tell me how to get the cluster > > allocation size in > >=20 > > > windowsxp? of course, a portable way is the best, but just > > 2000/xp is > > > fine. > > > i searched the internet far and wide and all i could find > is how to > > > find it on fat16/12 partitions and on w95/98/xp. i looked at=20 > > > deviceiocontrol's functions, but none seems to return the > > cluster size > > > or something that i could use... can you tell me? > > > =20 > > > ---------------------------------- > > > Peace and love, > > > Tweety > > > mi...@sy... - twe...@us... > > > YahooID: tweety_04_01 > > > =09 > > > =09 > > >=20 > > > --- > > > Incoming mail is certified Virus Free. > > > Checked by AVG anti-virus system (http://www.grisoft.com). > > > Version: 6.0.596 / Virus Database: 379 - Release Date:=20 > 26/02/2004 > > > =09 > > >=20 > > >=20 > > > --- > > > Outgoing mail is certified Virus Free. > > > Checked by AVG anti-virus system (http://www.grisoft.com). > > > Version: 6.0.596 / Virus Database: 379 - Release Date: 26/02/2004 > > > =20 > > >=20 > > >=20 > > >=20 > > > ------------------------------------------------------- > > > This SF.Net email is sponsored by: IBM Linux Tutorials Free Linux=20 > > > tutorial presented by Daniel Robbins, President and CEO of GenToo=20 > > > technologies. Learn everything from fundamentals to system > > >=20 > >=20 > = administration.http://ads.osdn.com/?ad_id=3D1470&alloc_id=3D3638&op=3Dcli= ck > > > _______________________________________________ > > > Gamedevlists-windows mailing list=20 > > > Gam...@li... > > > https://lists.sourceforge.net/lists/listinfo/gamedevlists-windows > > > Archives:=20 > http://sourceforge.net/mailarchive/forum.php?forum_id=3D555 > > >=20 > > >=20 > > >=20 > > > ------------------------------------------------------- > > > This SF.Net email is sponsored by: IBM Linux Tutorials Free Linux=20 > > > tutorial presented by Daniel Robbins, President and CEO of GenToo=20 > > > technologies. Learn everything from fundamentals to system > > >=20 > >=20 > = administration.http://ads.osdn.com/?ad_id=3D1470&alloc_id=3D3638&op=3Dcli= ck > > > _______________________________________________ > > > Gamedevlists-windows mailing list=20 > > > Gam...@li... > > > https://lists.sourceforge.net/lists/listinfo/gamedevlists-windows > > > Archives:=20 > http://sourceforge.net/mailarchive/forum.php?forum_id=3D555 > > >=20 > > > --- > > > Incoming mail is certified Virus Free. > > > Checked by AVG anti-virus system (http://www.grisoft.com). > > > Version: 6.0.596 / Virus Database: 379 - Release Date: 26/02/2004 > > > =20 > > >=20 > >=20 > > --- > > Outgoing mail is certified Virus Free. > > Checked by AVG anti-virus system (http://www.grisoft.com). > > Version: 6.0.596 / Virus Database: 379 - Release Date: 26/02/2004 > > =20 > >=20 > >=20 > >=20 > > ------------------------------------------------------- > > This SF.Net email is sponsored by: IBM Linux Tutorials Free Linux=20 > > tutorial presented by Daniel Robbins, President and CEO of GenToo=20 > > technologies. Learn everything from fundamentals to system > >=20 > = administration.http://ads.osdn.com/?ad_id=3D1470&alloc_id=3D3638&op=3Dcli= ck > > _______________________________________________ > > Gamedevlists-windows mailing list > > Gam...@li... > > https://lists.sourceforge.net/lists/listinfo/gamedevlists-windows > > Archives: = http://sourceforge.net/mailarchive/forum.php?forum_id=3D555 > >=20 > >=20 > >=20 > > ------------------------------------------------------- > > This SF.Net email is sponsored by: IBM Linux Tutorials Free Linux=20 > > tutorial presented by Daniel Robbins, President and CEO of GenToo=20 > > technologies. Learn everything from fundamentals to system > >=20 > = administration.http://ads.osdn.com/?ad_id=3D1470&alloc_id=3D3638&op=3Dcli= ck > > _______________________________________________ > > Gamedevlists-windows mailing list > > Gam...@li... > > https://lists.sourceforge.net/lists/listinfo/gamedevlists-windows > > Archives: = http://sourceforge.net/mailarchive/forum.php?forum_id=3D555 > >=20 >=20 >=20 > ------------------------------------------------------- > This SF.Net email is sponsored by: IBM Linux Tutorials Free Linux=20 > tutorial presented by Daniel Robbins, President and CEO of GenToo=20 > technologies. Learn everything from fundamentals to system=20 > administration.http://ads.osdn.com/?ad_id=1470&alloc_id638&op=3Dick > _______________________________________________ > Gamedevlists-windows mailing list > Gam...@li... > https://lists.sourceforge.net/lists/listinfo/gamedevlists-windows > Archives: > http://sourceforge.net/mailarchive/forum.php?forum_idU5 >=20 >=20 >=20 > ------------------------------------------------------- > This SF.Net email is sponsored by: IBM Linux Tutorials Free Linux=20 > tutorial presented by Daniel Robbins, President and CEO of GenToo=20 > technologies. Learn everything from fundamentals to system=20 > administration.http://ads.osdn.com/?ad_id=1470&alloc_id638&op=3Dick > _______________________________________________ > Gamedevlists-windows mailing list > Gam...@li... > https://lists.sourceforge.net/lists/listinfo/gamedevlists-windows > Archives: > http://sourceforge.net/mailarchive/forum.php?forum_idU5 >=20 ------------------------------------------------------- This SF.Net email is sponsored by: IBM Linux Tutorials Free Linux = tutorial presented by Daniel Robbins, President and CEO of GenToo technologies. = Learn everything from fundamentals to system administration.http://ads.osdn.com/?ad_id=1470&alloc_id638&op=3Dick _______________________________________________ Gamedevlists-windows mailing list Gam...@li... https://lists.sourceforge.net/lists/listinfo/gamedevlists-windows Archives: http://sourceforge.net/mailarchive/forum.php?forum_idU5 |