QUERY_FILE_LAYOUT_INPUT struttura (ntifs.h)
La struttura QUERY_FILE_LAYOUT_INPUT seleziona le voci di layout dei file restituite da una richiesta di FSCTL_QUERY_FILE_LAYOUT .
Sintassi
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;
Members
DUMMYUNIONNAME
DUMMYUNIONNAME.FilterEntryCount
Numero di voci di filtro nella matrice Filtro .
DUMMYUNIONNAME.NumberOfPairs
Nome originale del campo quando è presente un solo tipo di filtro. L'unione è semplicemente per mantenere la compatibilità del codice.
Flags
Indica quali voci di layout di file sono incluse nei risultati della query. I flag sono impostati su una combinazione valida dei valori seguenti.
Valore | Significato |
---|---|
QUERY_FILE_LAYOUT_INCLUDE_EXTENTS | Stream voci extent sono incluse nei risultati della query. Per usare questo flag, è necessario impostare anche il flag QUERY_FILE_LAYOUT_INCLUDE_STREAMS . |
QUERY_FILE_LAYOUT_INCLUDE_EXTRA_INFO | Le voci del nome dei file aggiuntive sono incluse nei risultati della query. |
QUERY_FILE_LAYOUT_INCLUDE_NAMES | Le voci nome file sono incluse nei risultati della query. |
QUERY_FILE_LAYOUT_INCLUDE_STREAMS | Le voci del flusso di file sono incluse nei risultati della query. |
QUERY_FILE_LAYOUT_RESTART | Reimpostare l'iteratore della voce di layout del file all'inizio del volume. |
QUERY_FILE_LAYOUT_INCLUDE_STREAMS_WITH_NO_CLUSTERS_ALLOCATED | Includere voci per i flussi residenti e gli attributi non allocati. Per usare questo flag, è necessario impostare anche il flag QUERY_FILE_LAYOUT_INCLUDE_STREAMS . |
FilterType
Specifica un metodo di filtro per limitare le informazioni di layout restituite. Può essere uno dei valori seguenti.
Valore | Significato |
---|---|
QUERY_FILE_LAYOUT_FILTER_TYPE_NONE | Non eseguire filtri e restituire tutte le informazioni. Quando si usa questo tipo, NumberOfPairs deve essere 0. |
QUERY_FILE_LAYOUT_FILTER_TYPE_CLUSTERS | Limitare le informazioni sul layout del filtro agli intervalli in Filter.ClusterRanges. |
QUERY_FILE_LAYOUT_FILTER_TYPE_FILEID | Limitare le informazioni sul layout dei filtri agli intervalli in Filter.FileReferenceRanges. |
Reserved
Riservato per l'utilizzo nel sistema.
Filter
Matrice di strutture di filtro usate per selezionare informazioni di layout specifiche. Questi contengono intervalli di riferimento di cluster o file. La lunghezza della matrice è specificata dal membro NumberOfPairs . Ogni intervallo deve essere distinto e non può sovrapporsi a qualsiasi altro intervallo.
Questo membro viene ignorato se viene specificato QUERY_FILE_LAYOUT_FILTER_TYPE_NONE in FilterType.
Filter.ClusterRanges[1]
Specifica un set di intervalli di cluster per filtrare le informazioni sul layout. La struttura dell'intervallo ha il formato seguente.
typedef struct _CLUSTER_RANGE {
LARGE_INTEGER StartingCluster;
LARGE_INTEGER ClusterCount;
} CLUSTER_RANGE, *PCLUSTER_RANGE;
Filter.FileReferenceRanges[1]
Specifica un set di intervalli di riferimento di file per filtrare le informazioni di layout. Disponibile a partire da Windows 10 versione 1809. La struttura dell'intervallo ha il formato seguente.
typedef struct _FILE_REFERENCE_RANGE {
LARGE_INTEGER StartingFileReference;
LARGE_INTEGER EndingReferenceNumber;
} FILE_REFERENCE_RANGE, *PFILE_REFERENCE_RANGE;
Filter.StorageReserveIds[1]
Specifica un set di ID riserva di archiviazione per filtrare le informazioni sul layout. L'enumerazione associata ha il formato seguente.
typedef enum _STORAGE_RESERVE_ID {
StorageReserveIdNone = 0,
StorageReserveIdHard,
StorageReserveIdSoft,
StorageReserveIdUpdateScratch,
StorageReserveIdMax
} STORAGE_RESERVE_ID, *PSTORAGE_RESERVE_ID;
Commenti
Il flag QUERY_FILE_LAYOUT_RESTART viene impostato sulla prima richiesta di FSCTL_QUERY_FILE_LAYOUT . Se gli intervalli di filtri vengono inclusi nella richiesta, vengono memorizzati nella cache quando viene impostata QUERY_FILE_LAYOUT_RESTART . Altre richieste restituiranno le voci del file di layout fino alla fine del volume o fino all'esaurimento degli intervalli di filtri.
Se QUERY_FILE_LAYOUT_RESTART viene impostato di nuovo per lo stesso volume, la posizione del layout del file viene reimpostata all'inizio del volume. Inoltre, gli intervalli di filtri vengono re-memorizzati nella cache e l'ordine di valutazione viene reimpostato nel primo intervallo.
Le voci di layout del file vengono restituite nel buffer di output seguendo una struttura QUERY_FILE_LAYOUT_OUTPUT .
Quando FilterType è QUERY_FILE_LAYOUT_FILTER_TYPE_CLUSTERS, il membro ClusterRanges dell'unione Filtro viene usato per il filtro dell'intervallo. In caso contrario, se FilterType è QUERY_FILE_LAYOUT_FILTER_TYPE_FILEID, il membro FileReferenceRanges viene usato per il filtro dell'intervallo.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows 8 |
Intestazione | ntifs.h (include Ntifs.h) |