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;

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 besteht lediglich darin, die Codekompatibilität aufrechtzuerhalten.

Flags

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

Wert Bedeutung
QUERY_FILE_LAYOUT_INCLUDE_EXTENTS Datenstromausdehnungseinträge werden 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 Dateiinformationsnameneinträge sind in den Abfrageergebnissen enthalten.
QUERY_FILE_LAYOUT_INCLUDE_NAMES Dateinameneinträge werden 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 Einschließen von Einträgen für residente Streams und nicht zugewiesene Attribute. Um dieses Kennzeichen zu verwenden, muss auch das QUERY_FILE_LAYOUT_INCLUDE_STREAMS Flag festgelegt werden.

FilterType

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

Wert Bedeutung
QUERY_FILE_LAYOUT_FILTER_TYPE_NONE Führen Sie keine Filterung aus, 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

Ist für das System reserviert.

Filter

Ein Array von Filterstrukturen, die zum Auswählen bestimmter Layoutinformationen verwendet werden. Diese enthalten entweder Cluster- oder Dateireferenzbereiche. Die Arraylänge wird durch das NumberOfPairs-Element 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. Ab Windows 10 Version 1809 verfügbar. 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 an, um Layoutinformationen zu filtern. Die zugeordnete Enumeration 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 dasselbe Volume erneut festgelegt wird, wird die Dateilayoutposition am 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 FilterTypeQUERY_FILE_LAYOUT_FILTER_TYPE_CLUSTERS ist, wird das ClusterRanges-Mitglied der Filterunion für die Bereichsfilterung verwendet. Andernfalls wird das Element "FileReferenceRanges" für die Bereichsfilterung verwendet, wenn FilterTypeQUERY_FILE_LAYOUT_FILTER_TYPE_FILEID ist.

Anforderungen

   
Unterstützte Mindestversion (Client) Windows 8
Header ntifs.h (einschließlich Ntifs.h)

Weitere Informationen

FSCTL_QUERY_FILE_LAYOUT

QUERY_FILE_LAYOUT_OUTPUT