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) |