Freigeben über


FSCTL_QUERY_ALLOCATED_RANGES IOCTL (ntifs.h)

FSCTL_QUERY_ALLOCATED_RANGES fordert eine Überprüfung einer Datei oder eines alternativen Datenstroms an, nach Bytebereichen suchen, die Nichtzerodaten enthalten können, und gibt dann Informationen zu diesen Bereichen zurück. Nur wenige Dateien können Nullbereiche 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

Zeigen Sie auf eine FILE_ALLOCATED_RANGE_BUFFER-Struktur, die den Bereich angibt, der zur Zuordnung abfragen soll.

Eingabepufferlänge

Die Größe der FILE_ALLOCATED_RANGE_BUFFER Struktur, auf die InputBuffer in Byte verweist.

Ausgabepuffer

Zeigen Sie 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, der OutputBuffer in Byte zeigt.

Eingabe-/Ausgabepuffer

n/a

Länge des Eingabe-/Ausgabepuffers

n/a

Statusblock

Reserviert für die Systemverwendung.

Bemerkungen

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_QUERY_ALLOCATED_RANGESfestgelegt.
InputBuffer- [in] Zeigen Sie auf eine FILE_ALLOCATED_RANGE_BUFFER-Struktur, die den Bereich angibt, der zur Zuordnung abfragen soll.
InputBufferLength- [in] Größe des Puffers, auf den InputBuffer in Bytes .
OutputBuffer- [out] Zeigen Sie 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, der OutputBuffer in Byte zeigt.
LengthReturned [out] Zeiger auf eine vom Aufrufer zugewiesene Variable, die die Größe in Byte der im Puffer zurückgegebenen Informationen bei OutputBuffer-empfängt.

FSCTL_QUERY_ALLOCATED_RANGES gibt ein Array von null oder mehr FILE_ALLOCATED_RANGE_BUFFER Datenelementen im Puffer zurück, auf das OutputBuffer verweist. Die Anzahl der zurückgegebenen FILE_ALLOCATED_RANGE_BUFFER 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. Häufige Fehlercodes folgen.

Fehlercode Bedeutung
STATUS_INVALID_PARAMETER Ein Parameter ist ungültig. Beispiel: Das Handle ist nicht für eine Datei; die Größe InputBuffer- kleiner als die Größe einer FILE_ALLOCATED_RANGE_BUFFER Struktur ist; FileOffset- kleiner als Null ist; Länge kleiner als Null ist; oder FileOffset plus Length größer als 0x7FFFFFFFFFFFFFFF ist.
STATUS_INVALID_USER_BUFFER Der Eingabepuffer oder Ausgabepuffer wird nicht an einer Grenze von 4 Byte 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
mindestens unterstützte Client- Windows 2000
Header- ntifs.h

Siehe auch

FILE_ALLOCATED_RANGE_BUFFER

FltFsControlFile-

ZwFsControlFile-