Compartir a través de


FLT_PARAMETERS para la unión de IRP_MJ_WRITE

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

Sintaxis

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

Miembros

  • Escritura: estructura que contiene los siguientes miembros.

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

  • 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 escribir.

  • WriteBuffer: puntero a un búfer que contiene los datos que se van a escribir en el 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 WriteBuffer . Este miembro es opcional y puede ser NULL si se proporciona un búfer en WriteBuffer. Vea Comentarios.

Comentarios

La estructura FLT_PARAMETERS para las operaciones de IRP_MJ_WRITE contiene los parámetros de una operación de escritura 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 WriteBuffer y MdlAddress , se recomienda que los minifiltros usen mdL. La memoria a la que writeBuffer 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 CcPrepareMdlWrite.

IRP_MJ_WRITE 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

FltWriteFile

IRP_MJ_WRITE

ZwWriteFile