estructura SECTION_OBJECT_POINTERS (wdm.h)

El administrador de memoria y el administrador de caché usan la estructura SECTION_OBJECT_POINTERS asignada por un sistema de archivos o un controlador redirector para almacenar la información relacionada con la caché y la asignación de archivos de una secuencia de archivos.

Sintaxis

typedef struct _SECTION_OBJECT_POINTERS {
  PVOID DataSectionObject;
  PVOID SharedCacheMap;
  PVOID ImageSectionObject;
} SECTION_OBJECT_POINTERS;

Miembros

DataSectionObject

Puntero opaco a un objeto de sección de datos (es decir, una estructura de CONTROL_AREA ) que se usa para realizar un seguimiento de la información de estado de un flujo de archivos de datos. El administrador de memoria establece este miembro cuando el sistema operativo almacena primero en caché el flujo de datos. Un valor NULL indica que el flujo de datos no está actualmente en memoria; Sin embargo, este valor puede cambiar en cualquier momento.

SharedCacheMap

Puntero opaco a un objeto de mapa de caché (es decir, una estructura de SHARED_CACHE_MAP ) que se usa para realizar un seguimiento de las vistas asignadas al flujo de archivos de datos. El administrador de caché establece este miembro cuando el sistema operativo almacena primero en caché la secuencia. Un valor NULL indica que el flujo de datos no está almacenado actualmente en caché; Sin embargo, este valor puede cambiar en cualquier momento.

ImageSectionObject

Puntero opaco a un objeto de sección de imagen (es decir, una estructura de CONTROL_AREA ) que se usa para realizar un seguimiento de la información de estado de una secuencia de archivos ejecutables. El administrador de memoria establece este miembro cada vez que se crea una sección de imagen ejecutable para la secuencia. Un valor NULL indica que la imagen ejecutable no está actualmente en memoria; Sin embargo, este valor puede cambiar en cualquier momento.

Comentarios

La estructura SECTION_OBJECT_POINTERS vincula un objeto de archivo al objeto de sección de una secuencia de archivos. Es decir, a través de sus miembros, la estructura de SECTION_OBJECT_POINTERS conecta un objeto de archivo determinado a estructuras de control de memoria virtual que realizan un seguimiento del contenido de la secuencia cuando están en memoria y permiten al sistema operativo capturar esos contenidos cuando no lo están.

Hay una relación uno a uno entre una estructura de SECTION_OBJECT_POINTERS y una secuencia de archivos. Se pueden asociar varios objetos de archivo a una secuencia de archivos determinada, cada una de las cuales representa una instancia abierta de la secuencia. Sin embargo, solo se puede asociar una estructura SECTION_OBJECT_POINTERS a una secuencia determinada. Si hay varios objetos de archivo para una secuencia, el miembro SectionObjectPointer de todos los objetos de archivo debe apuntar a la misma estructura de SECTION_OBJECT_POINTERS (que está asociada a la secuencia).

Para la primera solicitud abierta de flujo de archivos, el sistema de archivos o el controlador redirector deben:

  1. Asigne una estructura de SECTION_OBJECT_POINTERS de un grupo no paginado.

  2. Inicialice todos los miembros de la estructura de SECTION_OBJECT_POINTERS asignada en NULL.

  3. Establezca el miembro SectionObjectPointer del objeto de archivo asociado para que apunte a la estructura de SECTION_OBJECT_POINTERS inicializada.

Para las solicitudes abiertas posteriores a la misma secuencia de archivos, el sistema de archivos o el controlador redirector deben establecer el miembro SectionObjectPointer del objeto de archivo asociado para que apunte a la estructura de SECTION_OBJECT_POINTERS asignada previamente para la secuencia de archivos.

Advertencia

Los controladores de filtro del sistema de archivos deben tratar a los miembros de la estructura de SECTION_OBJECT_POINTERS como opacos porque el sistema de archivos subyacente es responsable de la sincronización de los miembros y, por lo tanto, podría cambiar sus valores en cualquier momento.

Un archivo se compone de una o varias secuencias, según el sistema de archivos. Para obtener más información, vea Flujos de archivos, contextos de Stream y contextos de Per-Stream.

Requisitos

Requisito Valor
Header wdm.h (include Wdm.h, Ntddk.h, Ntifs.h, Fltkernel.h)

Consulte también

CcInitializeCacheMap

DEVICE_OBJECT

FILE_OBJECT

FOBX

FSRTL_ADVANCED_FCB_HEADER

IoGetDeviceObjectPointer

MmFlushImageSection

ObDereferenceObject