estructura FSRTL_COMMON_FCB_HEADER (ntifs.h)
No use la estructura FSRTL_COMMON_FCB_HEADER fuera de la estructura de FSRTL_ADVANCED_FCB_HEADER. La estructura FSRTL_COMMON_FCB_HEADER contiene información de contexto que mantiene un sistema de archivos sobre un archivo, directorio, volumen o flujo de datos alternativo.
Sintaxis
typedef struct _FSRTL_COMMON_FCB_HEADER {
CSHORT NodeTypeCode;
CSHORT NodeByteSize;
UCHAR Flags;
UCHAR IsFastIoPossible;
UCHAR Flags2;
UCHAR Reserved : 4;
UCHAR Version : 4;
PERESOURCE Resource;
PERESOURCE PagingIoResource;
LARGE_INTEGER AllocationSize;
LARGE_INTEGER FileSize;
LARGE_INTEGER ValidDataLength;
} FSRTL_COMMON_FCB_HEADER;
Miembros
NodeTypeCode
Reservado para uso del sistema.
NodeByteSize
Reservado para uso del sistema.
Flags
Máscara de bits de marcas que indican compatibilidad con varias características. Este miembro debe ser una combinación OR bit a bit de uno o varios de los siguientes valores:
Valor | Significado |
---|---|
FSRTL_FLAG_FILE_MODIFIED | Reservado para uso del sistema. |
FSRTL_FLAG_FILE_LENGTH_CHANGED | Reservado para uso del sistema. |
FSRTL_FLAG_LIMIT_MODIFIED_PAGES | Reservado para uso del sistema. Los controladores del sistema de archivos (excepto los controladores de filtro) que deben establecer o borrar un límite de datos modificados para un archivo deben llamar a CcSetDirtyPageThreshold. |
FSRTL_FLAG_ACQUIRE_MAIN_RSRC_EX | Reservado para uso del sistema. |
FSRTL_FLAG_ACQUIRE_MAIN_RSRC_SH | Reservado para uso del sistema. |
FSRTL_FLAG_USER_MAPPED_FILE | El Administrador de caché establece esta marca para indicar que una vista está asignada a un archivo. |
FSRTL_FLAG_ADVANCED_HEADER | Esta marca indica que el sistema de archivos usa FSRTL_ADVANCED_FCB_HEADER en lugar de FSRTL_COMMON_FCB_HEADER en sus estructuras de bloque de control de archivos (FCB). Esta marca es necesaria porque el uso de la estructura FSRTL_COMMON_FCB_HEADER fuera de la estructura FSRTL_ADVANCED_FCB_HEADER está en desuso. |
FSRTL_FLAG_EOF_ADVANCE_ACTIVE | Reservado para uso del sistema. |
IsFastIoPossible
Este miembro debe ser uno de los siguientes valores:
Valor | Significado |
---|---|
FastIoIsPossible | Es posible la E/S rápida. |
FastIoIsQuestionable | Existe un bloqueo de intervalo de bytes exclusivo para el archivo. El autor de la llamada debe llamar a la rutina |
FastIoIsNotPossible | El FCB del archivo es incorrecto o existe un bloqueo oportunista (también denominado "oplock") para el archivo. |
Para obtener más información sobre estos valores, vea las entradas de referencia de FsRtlAreThereCurrentFileLocks, FsRtlCopyReady FsRtlCopyWrite.
Flags2
Máscara de bits de marcas que el sistema de archivos establece para indicar la compatibilidad con varias características. Este miembro debe ser uno o varios de los siguientes valores:
Valor | Significado |
---|---|
FSRTL_FLAG2_DO_MODIFIED_WRITE | Consulte los detalles siguientes a esta tabla. |
FSRTL_FLAG2_PURGE_WHEN_MAPPED | Si se establece esta marca, el Administrador de caché vaciará y purgará la asignación de caché cuando un usuario asigne un archivo por primera vez. |
FSRTL_FLAG2_SUPPORTS_FILTER_CONTEXTS | Esta marca indica que el sistema de archivos usa FSRTL_ADVANCED_FCB_HEADER en lugar de FSRTL_COMMON_FCB_HEADER en sus estructuras FCB. Esta marca es necesaria porque el uso de la estructura FSRTL_COMMON_FCB_HEADER fuera de la estructura FSRTL_ADVANCED_FCB_HEADER está en desuso. |
FSRTL_FLAG2_IS_PAGING_FILE | Si se establece, este encabezado FCB está asociado a un archivo de página. |
La marca FSRTL_FLAG2_DO_MODIFIED_WRITE se usa junto con el FsContext2 miembro del objeto de archivo para la secuencia de archivos de la siguiente manera:
Si el FsContext2 miembro del objeto de archivo no es NULL, la secuencia de archivos representa una instancia abierta de un archivo o un directorio y el sistema operativo o omite el valor de esta marca.
Si el FsContext2 miembro del objeto de archivo es NULL y no se establece esta marca, el objeto de archivo es un objeto de archivo de secuencia y la secuencia es una secuencia modificada sin escritura (MNW).
Si el FsContext2 miembro del objeto de archivo es NULL y se establece esta marca, el objeto de archivo es un objeto de archivo de secuencia y la secuencia se puede escribir.
Reserved
Reservado para uso del sistema. Los controladores deben establecer este campo de bits en cero.
Version
Reservado para uso del sistema. Este campo de bits lo establece la
Resource
Puntero a una variable de recurso inicializada, para la que el sistema de archivos proporciona el almacenamiento que se usará para sincronizar el acceso de E/S a la FCB. La variable de recurso debe asignarse desde un grupo no paginado.
Los controladores de filtro deben tratar este miembro como opaco.
PagingIoResource
Puntero a una variable de recurso adicional, para la que el sistema de archivos proporciona el almacenamiento que se usará para sincronizar el acceso de E/S de paginación al FCB. La variable de recurso debe asignarse desde un grupo no paginado.
Los controladores de filtro deben tratar este miembro como opaco.
AllocationSize
Tamaño de asignación para la secuencia de archivos.
Para obtener más información sobre los miembros de AllocationSize, FileSizey los miembros ValidDataLength, vea CcInitializeCacheMap.
FileSize
Tamaño de archivo del flujo de archivos.
ValidDataLength
Longitud de datos válida del flujo de archivos.
Observaciones
Los sistemas de archivos deben establecer el FsContext miembro de cada objeto de archivo para que apunte a una estructura de FSRTL_ADVANCED_FCB_HEADER. Esta estructura se puede incrustar dentro de una estructura de objetos de contexto de secuencia específica del sistema de archivos (el resto de esta estructura es específica del sistema de archivos). Normalmente, la estructura FSRTL_ADVANCED_FCB_HEADER es un bloque de control de archivos (FCB). Sin embargo, en algunos sistemas de archivos que admiten varios flujos de datos, como NTFS, es un bloque de control de flujo (SCB).
Para admitir el administrador de filtros y los contextos de filtro, los sistemas de archivos deben usar la estructura FSRTL_ADVANCED_FCB_HEADER en sus objetos de contexto de secuencia. Todos los sistemas de archivos de Microsoft usan esta estructura y todos los desarrolladores de sistemas de archivos de terceros también deben hacerlo. Los FCB y los SCB para todas las clases de solicitudes abiertas, incluidas las solicitudes de apertura de volumen, deben incluir esta estructura.
Si el archivo se usa como archivo de paginación, la estructura de FSRTL_ADVANCED_FCB_HEADER debe asignarse desde un grupo no paginado. De lo contrario, se puede asignar desde un grupo paginado o no paginado.
Requisitos
Requisito | Valor |
---|---|
encabezado de |
ntifs.h (incluya Ntifs.h, Fltkernel.h) |