Freigeben über


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)

Siehe auch

FSCTL_QUERY_FILE_LAYOUT

QUERY_FILE_LAYOUT_OUTPUT