QUERY_FILE_LAYOUT_INPUT Struktur (ntifs.h)
Die QUERY_FILE_LAYOUT_INPUT Struktur wählt aus, welche Dateilayouteinträge aus 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;
Angehörige
DUMMYUNIONNAME
DUMMYUNIONNAME.FilterEntryCount
Die Anzahl der Filtereinträge im Filter- Array.
DUMMYUNIONNAME.NumberOfPairs
Der ursprüngliche Name des Felds, wenn nur ein Filtertyp vorhanden war. Die Union besteht lediglich darin, die Codekompatibilität aufrechtzuerhalten.
Flags
Gibt an, welche Dateilayouteinträge in den Abfrageergebnissen enthalten sind. Flags auf eine gültige Kombination der folgenden Werte festgelegt ist.
Wert | Bedeutung |
---|---|
QUERY_FILE_LAYOUT_INCLUDE_EXTENTS | Datenstrom-Erweiterungseinträge sind in den Abfrageergebnissen enthalten. Um dieses Kennzeichen zu verwenden, muss auch das QUERY_FILE_LAYOUT_INCLUDE_STREAMS Flag festgelegt werden. |
QUERY_FILE_LAYOUT_INCLUDE_EXTRA_INFO | Zusätzliche Dateinameneinträ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 werden in den Abfrageergebnissen enthalten. |
QUERY_FILE_LAYOUT_RESTART | Setzen Sie den Dateilayouteintrags-Iterator auf 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 zugewiesene Attribute ein. Um dieses Kennzeichen zu verwenden, muss auch das QUERY_FILE_LAYOUT_INCLUDE_STREAMS Flag festgelegt werden. |
FilterType
Gibt eine Filtermethode an, mit der zurückgegebene Layoutinformationen eingeschränkt werden. Dies kann eine 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 | Einschränken von Filterlayoutinformationen auf die Bereiche in Filter.ClusterRanges. |
QUERY_FILE_LAYOUT_FILTER_TYPE_FILEID | Einschränken von Filterlayoutinformationen auf die Bereiche in Filter.FileReferenceRanges. |
Reserved
Reserviert für die Systemverwendung.
Filter
Ein Array von Filterstrukturen, die zum Auswählen bestimmter Layoutinformationen verwendet werden. Diese enthalten entweder Cluster- oder Dateiverweisbereiche. Die Arraylänge wird durch das NumberOfPairs Member angegeben. Jeder Bereich muss eindeutig sein und kann nicht mit einem anderen Bereich überlappen.
Dieses Element wird ignoriert, wenn QUERY_FILE_LAYOUT_FILTER_TYPE_NONE in FilterType-angegeben wird.
Filter.ClusterRanges[1]
Gibt einen Satz von Clusterbereichen an, um Layoutinformationen zu filtern. Die Bereichsstruktur weist das folgende Format auf.
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 weist das folgende Format auf.
typedef struct _FILE_REFERENCE_RANGE {
LARGE_INTEGER StartingFileReference;
LARGE_INTEGER EndingReferenceNumber;
} FILE_REFERENCE_RANGE, *PFILE_REFERENCE_RANGE;
Filter.StorageReserveIds[1]
Gibt eine Reihe von Speicherreserve-IDs zum Filtern von Layoutinformationen an. Die zugeordnete Aufzählung weist das folgende Format auf.
typedef enum _STORAGE_RESERVE_ID {
StorageReserveIdNone = 0,
StorageReserveIdHard,
StorageReserveIdSoft,
StorageReserveIdUpdateScratch,
StorageReserveIdMax
} STORAGE_RESERVE_ID, *PSTORAGE_RESERVE_ID;
Bemerkungen
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 wird. Weitere Anforderungen geben Layoutdateieinträge bis zum Ende des Volumes oder bis zum Ausschöpfen von Filterbereichen zurück.
Wenn QUERY_FILE_LAYOUT_RESTART für das gleiche Volume erneut festgelegt wird, wird die Dateilayoutposition auf den Anfang des Volumes zurückgesetzt. Darüber hinaus werden die Filterbereiche erneut 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 FilterType-QUERY_FILE_LAYOUT_FILTER_TYPE_CLUSTERSist, wird das ClusterRanges Mitglied der Filter Union für die Bereichsfilterung verwendet. Wenn FilterType-QUERY_FILE_LAYOUT_FILTER_TYPE_FILEIDist, wird das FileReferenceRanges Member für die Bereichsfilterung verwendet.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Windows 8 |
Header- | ntifs.h (einschließlich Ntifs.h) |