[Win32] Defragmenting / FSCTL_MOVE_FILE

Pagina: 1
Acties:

  • LDenninger
  • Registratie: Augustus 2005
  • Laatst online: 02-08-2024
Ik wou eventjes als hobbyprojectje een defragmenter-screensaver maken.
Voor zover ik weet gebruikt zo'n beetje elke defragger de standaard defrag-interface-functionaliteit van MS, zoals vermeld in http://www.microsoft.com/...on/DiskDefragmenting.mspx :
FSCTL_GET_VOLUME_BITMAP
FSCTL_GET_RETRIEVAL_POINTERS
FSCTL_MOVE_FILE
FSCTL_READ_MFT_RECORD
Maar wat ik me nou afvraag - in de docs lees ik ook het volgende :
FSCTL_MOVE_FILE does not work on volumes with cluster sizes larger than 4KB. The error returned when moves are attempted on such volumes is STATUS_INVALID_DEVICE_REQUEST. This limitation, which is tied to its implementor's mistaken belief that FSCTL_MOVE_FILE must suffer the same limitations as NTFS compression, is relatively serious because FORMAT uses cluster sizes larger than 4KB on volumes larger than 4GB.
:X


Dit zou betekenen dat defragmenteren dus niet zou gaan op elk volume dat groter is dan 4GB.... en dat gaat er bij mij dus niet in.
Nou heb ik wel het idee dat ze zelf andere functionaliteit zullen gebruiken om te defraggen, hun eigen defragger is gebaseerd op Executive's Diskeeper, maar dan nog....
Ik blijf het een idioot verhaal vinden.


Iemand die hier ervaring mee heeft / iets zinnigs over te melden heeft ?
Het is een beetje zonde van mijn tijd om een defragger te coden als elke call naar FSCTL_MOVE_FILE failed omdat m'n HD-volumes allemaal groter dan 4GB zijn... :/

  • RobLemmens
  • Registratie: Juni 2003
  • Laatst online: 19-11 09:29
Volgens mij geeft ie dat alleen op windows 2000 en ouder, onder xp zou het wel moeten kunnen. Windows defrag deed het in w2000 ook alleen maar op clustersize 4Kb, onder xp is die beperking er niet meer.
De docs die je hebt zijn zo op het eerste gezicht nog gericht op nt4.

  • LDenninger
  • Registratie: Augustus 2005
  • Laatst online: 02-08-2024
RobLemmens schreef op vrijdag 02 maart 2007 @ 13:45:
Volgens mij geeft ie dat alleen op windows 2000 en ouder, onder xp zou het wel moeten kunnen. Windows defrag deed het in w2000 ook alleen maar op clustersize 4Kb, onder xp is die beperking er niet meer.
De docs die je hebt zijn zo op het eerste gezicht nog gericht op nt4.
Thanks, ik lees net inderdaad ook ergens dat het idd. niet meer van toepassing schijnt te zijn.

Toch vreemd, ik had onder Win2K toch ook al een hoop schijven van 120Gig, maar of ze gebruikten zelf stiekem een andere manier, of hij heeft in die tijd dus nooit mn schijven kunnen defraggen....
Dat zou wel een beetje verklaren waarom m'n windows-install na enkele maanden zo traag werd :)

[ Voor 20% gewijzigd door LDenninger op 02-03-2007 15:51 ]