estructura QUERY_FILE_LAYOUT_INPUT (ntifs.h)

La estructura QUERY_FILE_LAYOUT_INPUT selecciona qué entradas de diseño de archivo se devuelven de una solicitud de FSCTL_QUERY_FILE_LAYOUT .

Sintaxis

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;

Miembros

DUMMYUNIONNAME

DUMMYUNIONNAME.FilterEntryCount

Número de entradas de filtro en la matriz Filter .

DUMMYUNIONNAME.NumberOfPairs

Nombre original del campo cuando solo había un tipo de filtro. La unión es simplemente mantener la compatibilidad con el código.

Flags

Indica qué entradas de diseño de archivo se incluyen en los resultados de la consulta. Las marcas se establecen en una combinación válida de los valores siguientes.

Valor Significado
QUERY_FILE_LAYOUT_INCLUDE_EXTENTS Las entradas de extensión de flujo se incluyen en los resultados de la consulta. Para usar esta marca, también se debe establecer la marca QUERY_FILE_LAYOUT_INCLUDE_STREAMS .
QUERY_FILE_LAYOUT_INCLUDE_EXTRA_INFO Las entradas de nombre de información de archivo adicionales se incluyen en los resultados de la consulta.
QUERY_FILE_LAYOUT_INCLUDE_NAMES Las entradas de nombre de archivo se incluyen en los resultados de la consulta.
QUERY_FILE_LAYOUT_INCLUDE_STREAMS Las entradas de flujo de archivo se incluyen en los resultados de la consulta.
QUERY_FILE_LAYOUT_RESTART Restablezca el iterador de entrada de diseño de archivo al principio del volumen.
QUERY_FILE_LAYOUT_INCLUDE_STREAMS_WITH_NO_CLUSTERS_ALLOCATED Incluir entradas para flujos residentes y atributos sin asignar. Para usar esta marca, también se debe establecer la marca QUERY_FILE_LAYOUT_INCLUDE_STREAMS .

FilterType

Especifica un método de filtrado para restringir la información de diseño devuelta. Puede ser uno de los valores siguientes.

Valor Significado
QUERY_FILE_LAYOUT_FILTER_TYPE_NONE No realice ningún filtrado y devuelva toda la información. Al usar este tipo, NumberOfPairs debe ser 0.
QUERY_FILE_LAYOUT_FILTER_TYPE_CLUSTERS Restrinja la información de diseño de filtro a los intervalos de Filter.ClusterRanges.
QUERY_FILE_LAYOUT_FILTER_TYPE_FILEID Restrinja la información de diseño de filtro a los intervalos de Filter.FileReferenceRanges.

Reserved

Reservado para uso del sistema.

Filter

Matriz de estructuras de filtro usadas para seleccionar información de diseño específica. Contienen intervalos de referencia de clúster o archivo. El miembro NumberOfPairs especifica la longitud de la matriz. Cada rango debe ser distinto y no se puede superponer con ningún otro intervalo.

Este miembro se omite si QUERY_FILE_LAYOUT_FILTER_TYPE_NONE se especifica en FilterType.

Filter.ClusterRanges[1]

Especifica un conjunto de intervalos de clústeres para filtrar la información de diseño. La estructura de rango tiene el formato siguiente.

typedef struct _CLUSTER_RANGE {
    LARGE_INTEGER    StartingCluster;
    LARGE_INTEGER    ClusterCount;
} CLUSTER_RANGE, *PCLUSTER_RANGE;

Filter.FileReferenceRanges[1]

Especifica un conjunto de intervalos de referencia de archivo para filtrar la información de diseño. Disponible a partir de Windows 10 versión 1809. La estructura de rango tiene el formato siguiente.

typedef struct _FILE_REFERENCE_RANGE {
    LARGE_INTEGER    StartingFileReference;
    LARGE_INTEGER    EndingReferenceNumber;
} FILE_REFERENCE_RANGE, *PFILE_REFERENCE_RANGE;

Filter.StorageReserveIds[1]

Especifica un conjunto de identificadores de reserva de almacenamiento para filtrar la información de diseño. La enumeración asociada tiene el formato siguiente.

typedef enum _STORAGE_RESERVE_ID {

    StorageReserveIdNone = 0,
    StorageReserveIdHard,
    StorageReserveIdSoft,
    StorageReserveIdUpdateScratch,

    StorageReserveIdMax

} STORAGE_RESERVE_ID, *PSTORAGE_RESERVE_ID;

Comentarios

La marca QUERY_FILE_LAYOUT_RESTART se establece en la primera solicitud de FSCTL_QUERY_FILE_LAYOUT . Si los intervalos de filtros se incluyen en la solicitud, se almacenan en caché cuando se establece QUERY_FILE_LAYOUT_RESTART . Otras solicitudes devolverán entradas de archivo de diseño hasta el final del volumen o hasta que se agoten los intervalos de filtros.

Si QUERY_FILE_LAYOUT_RESTART se vuelve a establecer para el mismo volumen, la posición del diseño del archivo se restablece al principio del volumen. Además, los intervalos de filtros se vuelven a almacenar en caché y su orden de evaluación se restablece al primer intervalo.

Las entradas de diseño de archivo se devuelven en el búfer de salida después de una estructura de QUERY_FILE_LAYOUT_OUTPUT .

Cuando FilterType es QUERY_FILE_LAYOUT_FILTER_TYPE_CLUSTERS, el miembro ClusterRanges de la unión filter se usa para el filtrado de intervalos. De lo contrario, si FilterType es QUERY_FILE_LAYOUT_FILTER_TYPE_FILEID, el miembro FileReferenceRanges se usa para el filtrado de intervalos.

Requisitos

   
Cliente mínimo compatible Windows 8
Header ntifs.h (incluya Ntifs.h)

Consulte también

FSCTL_QUERY_FILE_LAYOUT

QUERY_FILE_LAYOUT_OUTPUT