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) |