FSCTL_QUERY_ALLOCATED_RANGES IOCTL (ntifs.h)
FSCTL_QUERY_ALLOCATED_RANGES fordert eine Überprüfung einer Datei oder eines alternativen Datenstroms nach Bytebereichen an, die nichtzero-Daten enthalten können, und gibt dann Informationen zu diesen Bereichen zurück. Nur Sparsedateien können nullierte Bereiche aufweisen, die dem Betriebssystem bekannt sind. Bei anderen Dateien enthält der Ausgabepuffer nur einen einzelnen Bereich, der den Startpunkt und die angeforderte Länge enthält.
Hauptcode
FSCTL_QUERY_ALLOCATED_RANGES
Eingabepuffer
Zeiger auf eine FILE_ALLOCATED_RANGE_BUFFER-Struktur , die den Bereich angibt, in dem die Zuordnung abfragt werden soll.
Eingabepufferlänge
Größe der FILE_ALLOCATED_RANGE_BUFFER Struktur, auf die InputBuffer verweist, in Bytes.
Ausgabepuffer
Zeiger auf ein Array mit null oder mehr FILE_ALLOCATED_RANGE_BUFFER Datenelementen, in denen die Ergebnisse der Abfrage zurückgegeben werden. Weitere Informationen finden Sie weiter unten.
Länge des Ausgabepuffers
Größe des Puffers, auf den OutputBuffer verweist, in Bytes.
Eingabe-/Ausgabepuffer
–
Länge des Eingabe-/Ausgabepuffers
–
Statusblock
Ist für das System reserviert.
Hinweise
Um diesen Vorgang auszuführen, rufen Sie FltFsControlFile oder ZwFsControlFile mit den folgenden Parametern auf.
Parameter | BESCHREIBUNG |
---|---|
Instanz | [in] Nur für FltFsControlFile . Ein undurchsichtiger instance Zeiger 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, das das Ziel dieser Anforderung ist. Dieser Parameter ist erforderlich und darf nicht NULL sein. |
IoStatusBlock | [out] Nur für ZwFsControlFile . Zeiger auf eine IO_STATUS_BLOCK-Struktur, die die endgültige status der Anforderung enthält. |
FsControlCode | [in] Legen Sie auf FSCTL_QUERY_ALLOCATED_RANGES fest. |
Inputbuffer | [in] Zeiger auf eine FILE_ALLOCATED_RANGE_BUFFER-Struktur , die den Bereich angibt, in dem die Zuordnung abfragt werden soll. |
InputBufferLength | [in] Größe des Puffers, auf den InputBuffer verweist, in Bytes. |
OutputBuffer | [out] Zeiger auf ein Array mit null oder mehr FILE_ALLOCATED_RANGE_BUFFER Datenelementen, in denen die Ergebnisse der Abfrage zurückgegeben werden. Weitere Informationen finden Sie weiter unten. |
OutputBufferLength | [out] Größe des Puffers, auf den OutputBuffer verweist, in Bytes. |
LengthReturned | [out] Zeiger auf eine vom Aufrufer zugewiesene Variable, die die Größe der im Puffer bei OutputBuffer zurückgegebenen Informationen in Bytes empfängt. |
FSCTL_QUERY_ALLOCATED_RANGES gibt ein Array mit null oder mehr FILE_ALLOCATED_RANGE_BUFFER Datenelementen im Puffer zurück, auf den OutputBuffer verweist. Die Anzahl der FILE_ALLOCATED_RANGE_BUFFER zurückgegebenen Elemente wird berechnet, indem der in LengthReturned zurückgegebene Wert durch sizeof(FILE_ALLOCATED_RANGE_BUFFER)
dividiert wird. Die zurückgegebenen Bereiche müssen den in InputBuffer angegebenen Bereich überschneiden. Null FILE_ALLOCATED_RANGE_BUFFER Datenelemente werden zurückgegeben, wenn die Datei keine zugeordneten Bereiche aufweist.
Rückgabewerte
FSCTL_QUERY_ALLOCATED_RANGES gibt nach erfolgreichem Abschluss STATUS_SUCCESS zurück. Andernfalls wird ein Fehlercode zurückgegeben. Es folgen allgemeine Fehlercodes.
Fehlercode | Bedeutung |
---|---|
STATUS_INVALID_PARAMETER | Ein Parameter ist ungültig. Beispiel: Das Handle ist nicht für eine Datei; Die Größe von InputBuffer ist kleiner als die Größe einer FILE_ALLOCATED_RANGE_BUFFER-Struktur . FileOffset ist kleiner als 00; Die Länge ist kleiner als 00; oder FileOffset plus Length ist größer als 0x7FFFFFFFFFFFFFFF. |
STATUS_INVALID_USER_BUFFER | Der Eingabepuffer oder Der Ausgabepuffer ist nicht an einer 4-Byte-Grenze ausgerichtet. |
STATUS_BUFFER_TOO_SMALL | Der Ausgabepuffer ist zu klein, um eine FILE_ALLOCATED_RANGE_BUFFER-Struktur zu enthalten. |
STATUS_BUFFER_OVERFLOW | Der Ausgabepuffer ist zu klein, um die erforderliche Anzahl von FILE_ALLOCATED_RANGE_BUFFER Strukturen zu enthalten. |
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows 2000 |
Kopfzeile | ntifs.h |
Weitere Informationen
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für