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

FILE_ALLOCATED_RANGE_BUFFER

FltFsControlFile

ZwFsControlFile