estructura QUERY_FILE_LAYOUT_INPUT (ntifs.h)
La estructura de 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 del 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 | Stream entradas de extensión 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 secuencia de archivos 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 | Incluya 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 intervalo debe ser distinto y no se puede superponer con ningún otro intervalo.
Este miembro se omite si se especifica QUERY_FILE_LAYOUT_FILTER_TYPE_NONE en FilterType.
Filter.ClusterRanges[1]
Especifica un conjunto de intervalos de clúster para filtrar la información de diseño. La estructura del intervalo 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 archivos para filtrar la información de diseño. Disponible a partir de Windows 10 versión 1809. La estructura del intervalo 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 establece de nuevo para el mismo volumen, la posición de diseño de 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
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows 8 |
Encabezado | ntifs.h (incluya Ntifs.h) |