Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
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;
Membri
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 consiste semplicemente nel mantenere la compatibilità del codice.
Flags
Indica le voci di layout dei file incluse nei risultati della query. Flag è impostata su una combinazione valida dei valori seguenti.
| Valore | Significato |
|---|---|
| QUERY_FILE_LAYOUT_INCLUDE_EXTENTS | Le voci dell'extent di flusso 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 di nome delle informazioni sui file aggiuntive sono incluse nei risultati della query. |
| QUERY_FILE_LAYOUT_INCLUDE_NAMES | Le voci di 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 le 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 sul 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 dei filtri agli intervalli in Filter.ClusterRanges. |
| QUERY_FILE_LAYOUT_FILTER_TYPE_FILEID | Limitare le informazioni sul layout del filtro agli intervalli in Filter.FileReferenceRanges. |
Reserved
Riservato per l'uso del sistema.
Filter
Matrice di strutture di filtro utilizzate per selezionare informazioni di layout specifiche. Questi contengono intervalli di riferimento di file o cluster. La lunghezza della matrice viene specificata dal membro NumberOfPairs. Ogni intervallo deve essere distinto e non può sovrapporsi a qualsiasi altro intervallo.
Questo membro viene ignorato se QUERY_FILE_LAYOUT_FILTER_TYPE_NONE viene specificato 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 sul 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 di 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;
Osservazioni
Il flag QUERY_FILE_LAYOUT_RESTART viene impostato nella prima richiesta di FSCTL_QUERY_FILE_LAYOUT. Se nella richiesta sono inclusi intervalli di filtri, questi vengono memorizzati nella cache quando viene impostata QUERY_FILE_LAYOUT_RESTART. Ulteriori richieste restituiranno le voci del file di layout fino alla fine del volume o fino a quando gli intervalli di filtri non vengono esauriti.
Se QUERY_FILE_LAYOUT_RESTART viene nuovamente impostato per lo stesso volume, la posizione del layout del file viene reimpostata all'inizio del volume. Inoltre, gli intervalli di filtri vengono memorizzati nella cache e il relativo ordine di valutazione viene reimpostato sul primo intervallo.
Le voci di layout del file vengono restituite nel buffer di output dopo una struttura QUERY_FILE_LAYOUT_OUTPUT.
Quando filterType è QUERY_FILE_LAYOUT_FILTER_TYPE_CLUSTERS, viene utilizzato il membro ClusterRanges dell'unione filter. In caso contrario, se filterType è QUERY_FILE_LAYOUT_FILTER_TYPE_FILEID, il membro FileReferenceRanges viene utilizzato per il filtro dell'intervallo.
Fabbisogno
| Requisito | Valore |
|---|---|
| client minimo supportato | Windows 8 |
| intestazione | ntifs.h (include Ntifs.h) |