Compartir a través de


estructura FLT_CONTEXT_REGISTRATION (fltkernel.h)

La estructura FLT_CONTEXT_REGISTRATION se usa para registrar tipos de contexto.

Sintaxis

typedef struct _FLT_CONTEXT_REGISTRATION {
  FLT_CONTEXT_TYPE               ContextType;
  FLT_CONTEXT_REGISTRATION_FLAGS Flags;
  PFLT_CONTEXT_CLEANUP_CALLBACK  ContextCleanupCallback;
  SIZE_T                         Size;
  ULONG                          PoolTag;
  PFLT_CONTEXT_ALLOCATE_CALLBACK ContextAllocateCallback;
  PFLT_CONTEXT_FREE_CALLBACK     ContextFreeCallback;
  PVOID                          Reserved1;
} FLT_CONTEXT_REGISTRATION, *PFLT_CONTEXT_REGISTRATION;

Miembros

ContextType

Tipo de contexto. Este miembro es obligatorio y debe ser uno de los siguientes valores:

FLT_FILE_CONTEXT (solo Windows Vista y versiones posteriores).

FLT_INSTANCE_CONTEXT

FLT_STREAM_CONTEXT

FLT_STREAMHANDLE_CONTEXT

FLT_SECTION_CONTEXT (solo Windows 8 y versiones posteriores).

FLT_TRANSACTION_CONTEXT (solo Windows Vista y versiones posteriores).

FLT_VOLUME_CONTEXT

Flags

Máscara de bits de marcas que especifican cómo el administrador de filtros asigna un nuevo contexto a partir de una lista de contextos de tamaño fijo. Este miembro puede ser cero o el siguiente valor.

Marca Significado
FLTFL_CONTEXT_REGISTRATION_NO_EXACT_SIZE_MATCH Si el minifiltro usa contextos de tamaño fijo y se especifica esta marca, el administrador de filtros asigna un contexto de la lista de aspecto si el tamaño del contexto de la lista de lookaside es mayor o igual que el tamaño solicitado. De lo contrario, el administrador de filtros asigna un contexto de la lista de aspecto solo si el tamaño del contexto de la lista de lookaside es igual al tamaño solicitado.

ContextCleanupCallback

Puntero a una rutina ContextCleanupCallback definida por minifiltro de tipo PFLT_CONTEXT_CLEANUP_CALLBACK. El administrador de filtros llama a esta rutina inmediatamente antes de eliminar el contexto. Si el minifiltro no tiene memoria ni punteros para limpiar dentro del contexto, este miembro es opcional y puede ser NULL.

Size

Tamaño, en bytes, de la parte definida por minifiltro del contexto, si el minifiltro usa contextos de tamaño fijo. Cero es un valor de tamaño válido. Si el minifiltro usa contextos de tamaño variable, se requiere este miembro y debe establecerse en FLT_VARIABLE_SIZED_CONTEXTS.

PoolTag

Valor de etiqueta de grupo que se usará para el contexto. Esta etiqueta, que se especifica como una cadena de uno a cuatro caracteres ASCII de 7 bits, aparece en cualquier volcado de memoria del sistema que se produzca. Si el miembro ContextAllocateCallback es NULL, este miembro es obligatorio y no puede ser cero.

ContextAllocateCallback

Puntero a una rutina ContextAllocateCallback definida por minifiltro de tipo PFLT_CONTEXT_ALLOCATE_CALLBACK. Este miembro es opcional y puede ser NULL. Si no es NULL, se omiten los miembros Size y PoolTag .

ContextFreeCallback

Puntero a una rutina ContextFreeCallback definida por minifiltro de tipo PFLT_CONTEXT_FREE_CALLBACK. Este miembro es opcional y puede ser NULL. Si no es NULL, se omiten los miembros Size y PoolTag .

Reserved1

Reservado para uso del sistema. Los minifiltros deben establecer este miembro en NULL.

Comentarios

Cuando un minifiltro llama a FltRegisterFilter desde su rutina DriverEntry , debe registrar cada tipo de contexto que use.

Para registrar estos tipos de contexto, el minifiltro crea una matriz de longitud variable de FLT_CONTEXT_REGISTRATION estructuras y almacena un puntero a la matriz en el miembro ContextRegistration de la estructura FLT_REGISTRATION que el minifiltro pasa como parámetro Registration de FltRegisterFilter. El último elemento de esta matriz debe ser {FLT_CONTEXT_END}.

Para cada tipo de contexto que use el minifiltro, el minifiltro debe proporcionar al menos una estructura de FLT_CONTEXT_REGISTRATION, según las reglas siguientes:

  • Si el minifiltro proporciona una estructura de FLT_CONTEXT_REGISTRATION con un miembro ContextAllocateCallback distinto de NULL, no puede proporcionar estructuras FLT_CONTEXT_REGISTRATION adicionales para ese tipo de contexto.
  • Si el minifiltro proporciona dos o más estructuras de FLT_CONTEXT_REGISTRATION idénticas, solo se usará la primera. Los demás se omitirán.
  • Solo se puede proporcionar una estructura FLT_CONTEXT_REGISTRATION con un miembro Size de FLT_VARIABLE_SIZED_CONTEXTS para cada tipo de contexto.
  • No se pueden proporcionar más de tres estructuras de FLT_CONTEXT_REGISTRATION con un miembro Size distinto de FLT_VARIABLE_SIZED_CONTEXTS para cada tipo de contexto.

Requisitos

Requisito Valor
Header fltkernel.h (incluya Fltkernel.h)

Consulte también

FLT_REGISTRATION

FltRegisterFilter

PFLT_CONTEXT_ALLOCATE_CALLBACK

PFLT_CONTEXT_CLEANUP_CALLBACK

PFLT_CONTEXT_FREE_CALLBACK