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 |