FSCTL_REARRANGE_FILE IOCTL (ntifs.h)
FSCTL_REARRANGE_FILE die Zuordnung innerhalb der Datei neu anordnen und Cluster aus einem angeforderten zusammenhängenden Quellbereich innerhalb einer Datei an einen anderen Speicherort innerhalb derselben Datei verschieben.
Hauptcode
Eingabepuffer
Zeiger auf eine REARRANGE_FILE_DATA-Struktur, die die Zuteilung beschreibt, die neu angeordnet werden soll. (Bei 32-Bit-Aufrufern ist der Eingabepuffer ein Zeiger auf eine REARRANGE_FILE_DATA32 Struktur.)
Eingabepufferlänge
Größe in Byte des Eingabepuffers.
Ausgabepuffer
Nichts; auf NULL festgelegt.
Länge des Ausgabepuffers
Auf Null festgelegt.
Statusblock
Rückgabewerte
FSCTL_REARRANGE_FILE gibt nach erfolgreichem Abschluss STATUS_SUCCESS zurück; andernfalls wird ein NTSTATUS-Code zurückgegeben, z. B. einen der folgenden.
Rückgabecode | Bedeutung |
---|---|
STATUS_ACCESS_DENIED | Nur Kernelmodusaufrufe sind zulässig. |
STATUS_BUFFER_TOO_SMALL | Die angegebene Eingabepufferlänge ist kleiner als sizeof(REARRANGE_FILE_DATA). |
STATUS_PENDING | Der Vorgangsabschluss steht aus. |
Bemerkungen
Anforderungsparameter Offsets für Quell- und Zieldateibytes und die Länge in Bytes des zu verschiebenden Quellbereichs enthalten, die alle clusterbündig ausgerichtet sein müssen.
- Wenn Sie Cluster nach unten verschieben, gibt der Zieldateioffset den Punkt an, an dem die untere Grenze des verschiebenden Quellbereichs ausgerichtet werden soll.
- Wenn Cluster nach oben verschoben werden, gibt der Zieldateioffset den Punkt an, an dem die obere Grenze des Quellbereichs ausgerichtet werden soll.
In beiden Fällen gibt der Zieloffset an, dass der Quellbereich vor dem Cluster eingefügt werden soll, der beim Zieloffset beginnt, wobei die Unterscheidung durch die Einschränkung erzwungen wird, dass die Zuordnungsgröße fest bleibt.
Im Gegensatz zu FSCTL_SHUFFLE_FILElässt FSCTL_REARRANGE_FILE das Hinzufügen von Zuordnungen, die zufällige Daten enthalten, nicht zu.
Rufen Sie zum Ausführen dieses Vorgangs FltFsControlFile- oder ZwFsControlFile- mit den folgenden Parametern auf.
Parameter | Beschreibung |
---|---|
Instanz- | [in] Nur für FltFsControlFile. Ein undurchsichtiger Instanzzeiger für den Aufrufer. Dieser Parameter ist erforderlich und darf nicht NULL sein. |
FileObject- | [in] Nur für FltFsControlFile. Ein Dateiobjektzeiger für die Datei oder das Verzeichnis, das das Ziel dieser Anforderung ist. Dieser Parameter ist erforderlich und darf nicht NULL sein. |
FileHandle- | [in] Nur für ZwFsControlFile. Dateihandle der Datei oder des Verzeichnisses, die das Ziel dieser Anforderung ist. Dieser Parameter ist erforderlich und darf nicht NULL sein. |
IoStatusBlock- | [out] Nur für ZwFsControlFile. Zeigen Sie auf eine IO_STATUS_BLOCK Struktur, die den endgültigen Status der Anforderung enthält. |
FsControlCode- | [in] Auf FSCTL_REARRANGE_FILEfestgelegt. |
InputBuffer- | [in] Siehe IOCTL-Parameter. |
InputBufferLength- | [in] Siehe IOCTL-Parameter. |
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Windows 10, Version 1809 |
Header- | ntifs.h |