QUERY_FILE_LAYOUT_INPUT-Struktur (ntifs.h)

Die QUERY_FILE_LAYOUT_INPUT-Struktur wählt aus, welche Dateilayouteinträge von einer FSCTL_QUERY_FILE_LAYOUT-Anforderung zurückgegeben werden.

Syntax

typedef struct _QUERY_FILE_LAYOUT_INPUT {
  union {
    ULONG FilterEntryCount;
    ULONG NumberOfPairs;
  } DUMMYUNIONNAME;
  ULONG                         Flags;
  QUERY_FILE_LAYOUT_FILTER_TYPE FilterType;
  ULONG                         Reserved;
  union {
    CLUSTER_RANGE        ClusterRanges[1];
    FILE_REFERENCE_RANGE FileReferenceRanges[1];
    STORAGE_RESERVE_ID   StorageReserveIds[1];
  } Filter;
} QUERY_FILE_LAYOUT_INPUT, *PQUERY_FILE_LAYOUT_INPUT;

Member

DUMMYUNIONNAME

DUMMYUNIONNAME.FilterEntryCount

Die Anzahl der Filtereinträge im Filterarray .

DUMMYUNIONNAME.NumberOfPairs

Der ursprüngliche Name des Felds, wenn nur ein Filtertyp vorhanden war. Die Union dient lediglich der Aufrechterhaltung der Codekompatibilität.

Flags

Gibt an, welche Dateilayouteinträge in den Abfrageergebnissen enthalten sind. Flags ist auf eine gültige Kombination der folgenden Werte festgelegt.

Wert Bedeutung
QUERY_FILE_LAYOUT_INCLUDE_EXTENTS Stream Sind in den Abfrageergebnissen Einträge enthalten. Um dieses Flag verwenden zu können, muss auch das flag QUERY_FILE_LAYOUT_INCLUDE_STREAMS festgelegt werden.
QUERY_FILE_LAYOUT_INCLUDE_EXTRA_INFO Zusätzliche Dateiinformationsnameneinträge sind in den Abfrageergebnissen enthalten.
QUERY_FILE_LAYOUT_INCLUDE_NAMES Dateinameneinträge sind in den Abfrageergebnissen enthalten.
QUERY_FILE_LAYOUT_INCLUDE_STREAMS Dateidatenstromeinträge sind in den Abfrageergebnissen enthalten.
QUERY_FILE_LAYOUT_RESTART Setzen Sie den Dateilayouteintragsiterator an den Anfang des Volumes zurück.
QUERY_FILE_LAYOUT_INCLUDE_STREAMS_WITH_NO_CLUSTERS_ALLOCATED Fügen Sie Einträge für residente Datenströme und nicht zugeordnete Attribute ein. Um dieses Flag verwenden zu können, muss auch das flag QUERY_FILE_LAYOUT_INCLUDE_STREAMS festgelegt werden.

FilterType

Gibt eine Filtermethode an, um zurückgegebene Layoutinformationen einzuschränken. Dies kann einer der folgenden Werte sein.

Wert Bedeutung
QUERY_FILE_LAYOUT_FILTER_TYPE_NONE Führen Sie keine Filterung durch, und geben Sie alle Informationen zurück. Bei Verwendung dieses Typs muss NumberOfPairs 0 sein.
QUERY_FILE_LAYOUT_FILTER_TYPE_CLUSTERS Beschränken Sie Filterlayoutinformationen auf die Bereiche in Filter.ClusterRanges.
QUERY_FILE_LAYOUT_FILTER_TYPE_FILEID Beschränken Sie Filterlayoutinformationen auf die Bereiche in Filter.FileReferenceRanges.

Reserved

Ist für das System reserviert.

Filter

Ein Array von Filterstrukturen, die zum Auswählen bestimmter Layoutinformationen verwendet werden. Diese enthalten entweder Cluster- oder Dateiverweisbereiche. Die Arraylänge wird vom NumberOfPairs-Element angegeben. Jeder Bereich muss unterschiedlich sein und darf sich nicht mit einem anderen Bereich überschneiden.

Dieser Member wird ignoriert, wenn QUERY_FILE_LAYOUT_FILTER_TYPE_NONE in FilterType angegeben ist.

Filter.ClusterRanges[1]

Gibt einen Satz von Clusterbereichen an, um Layoutinformationen zu filtern. Die Bereichsstruktur hat das folgende Format.

typedef struct _CLUSTER_RANGE {
    LARGE_INTEGER    StartingCluster;
    LARGE_INTEGER    ClusterCount;
} CLUSTER_RANGE, *PCLUSTER_RANGE;

Filter.FileReferenceRanges[1]

Gibt einen Satz von Dateiverweisbereichen an, um Layoutinformationen zu filtern. Verfügbar ab Windows 10 Version 1809. Die Bereichsstruktur hat das folgende Format.

typedef struct _FILE_REFERENCE_RANGE {
    LARGE_INTEGER    StartingFileReference;
    LARGE_INTEGER    EndingReferenceNumber;
} FILE_REFERENCE_RANGE, *PFILE_REFERENCE_RANGE;

Filter.StorageReserveIds[1]

Gibt einen Satz von Speicherreserve-IDs an, um Layoutinformationen zu filtern. Die zugeordnete Enumeration hat das folgende Format.

typedef enum _STORAGE_RESERVE_ID {

    StorageReserveIdNone = 0,
    StorageReserveIdHard,
    StorageReserveIdSoft,
    StorageReserveIdUpdateScratch,

    StorageReserveIdMax

} STORAGE_RESERVE_ID, *PSTORAGE_RESERVE_ID;

Hinweise

Das QUERY_FILE_LAYOUT_RESTART-Flag wird für die erste FSCTL_QUERY_FILE_LAYOUT-Anforderung festgelegt. Wenn Filterbereiche in der Anforderung enthalten sind, werden sie zwischengespeichert, wenn QUERY_FILE_LAYOUT_RESTART festgelegt ist. Weitere Anforderungen geben Layoutdateieinträge bis zum Ende des Volumes oder bis zum Erschöpfen der Filterbereiche zurück.

Wenn QUERY_FILE_LAYOUT_RESTART für dasselbe Volume erneut festgelegt wird, wird die Dateilayoutposition auf den Anfang des Volumes zurückgesetzt. Darüber hinaus werden die Filterbereiche neu zwischengespeichert, und ihre Auswertungsreihenfolge wird auf den ersten Bereich zurückgesetzt.

Die Dateilayouteinträge werden im Ausgabepuffer nach einer QUERY_FILE_LAYOUT_OUTPUT-Struktur zurückgegeben.

Wenn FilterTypeQUERY_FILE_LAYOUT_FILTER_TYPE_CLUSTERS ist, wird das ClusterRanges-Element der Filterunion für die Bereichsfilterung verwendet. Wenn FilterTypeQUERY_FILE_LAYOUT_FILTER_TYPE_FILEID ist, wird andernfalls das FileReferenceRanges-Element für die Bereichsfilterung verwendet.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 8
Kopfzeile ntifs.h (include Ntifs.h)

Weitere Informationen

FSCTL_QUERY_FILE_LAYOUT

QUERY_FILE_LAYOUT_OUTPUT