FLT_PARAMETERS para la unión de IRP_MJ_READ

El siguiente componente de unión se usa cuando se IRP_MJ_READ el campo MajorFunction de la estructura FLT_IO_PARAMETER_BLOCK de la operación.

Sintaxis

typedef union _FLT_PARAMETERS {
  ...    ;
  struct {
    ULONG                   Length;
    ULONG POINTER_ALIGNMENT Key;
    LARGE_INTEGER           ByteOffset;
    PVOID                   ReadBuffer;
    PMDL                    MdlAddress;
  } Read;
  ...    ;
} FLT_PARAMETERS, *PFLT_PARAMETERS;

Miembros

  • Read: Estructura que contiene los siguientes miembros.

  • Longitud: longitud, en bytes, de los datos que se van a leer.

  • Key: valor de clave asociado a un bloqueo de intervalo de bytes en el archivo de destino.

  • ByteOffset: desplazamiento de bytes inicial dentro del archivo de los datos que se van a leer.

  • ReadBuffer: puntero a un búfer que recibe los datos leídos del archivo. Este miembro es opcional y puede ser NULL si se proporciona una MDL en MdlAddress. Vea Comentarios.

  • MdlAddress: dirección de una lista de descriptores de memoria (MDL) que describe el búfer al que apunta el miembro ReadBuffer . Este miembro es opcional y puede ser NULL si se proporciona un búfer en ReadBuffer. Vea Comentarios.

Comentarios

La estructura FLT_PARAMETERS para las operaciones de IRP_MJ_READ contiene los parámetros de una operación de lectura representada por una estructura de datos de devolución de llamada (FLT_CALLBACK_DATA). Está contenida en una estructura FLT_IO_PARAMETER_BLOCK.

Si se proporciona un búfer ReadBuffer y MdlAddress , se recomienda que los minifiltros usen mdL. La memoria a la que ReadBuffer apunta es válida cuando se accede a una dirección en modo de usuario dentro del contexto del proceso de llamada, o si es una dirección del modo kernel.

Si un minifiltro cambia el valor de MdlAddress, después de su devolución de llamada posterior a la operación, el Administrador de filtros liberará la MDL almacenada actualmente en MdlAddress y restaurará el valor anterior de MdlAddress.

Si el IRP_MN_COMPLETE bit se establece en Iopb-MinorFunction>, MdlAddress es la dirección que se va a enviar a CcMdlReadComplete.

Si el bit de IRP_MN_MDL (y no el bit de IRP_MN_COMPLETE) se establece en Iopb-MinorFunction>, MdlAddress es la dirección que se va a enviar a CcMdlRead.

IRP_MJ_READ puede ser una operación basada en IRP o una operación de E/S rápida.

Requisitos

Tipo de requisito Requisito
Encabezado Fltkernel.h (incluya Fltkernel.h)

Consulte también

FLT_CALLBACK_DATA

FLT_IO_PARAMETER_BLOCK

FLT_IS_FASTIO_OPERATION

FLT_IS_FS_FILTER_OPERATION

FLT_IS_IRP_OPERATION

FLT_PARAMETERS

FltReadFile

IRP_MJ_READ

ZwReadFile