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)

Vedi anche

FSCTL_QUERY_FILE_LAYOUT

QUERY_FILE_LAYOUT_OUTPUT