FLT_PARAMETERS para união IRP_MJ_WRITE

O componente de união a seguir é usado quando o campo MajorFunction da estrutura FLT_IO_PARAMETER_BLOCK para a operação é IRP_MJ_WRITE.

Sintaxe

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

Membros

  • Gravação: estrutura que contém os seguintes membros.

  • Comprimento: comprimento, em bytes, dos dados a serem gravados.

  • Chave: valor da chave associado a um bloqueio de intervalo de bytes no arquivo de destino.

  • ByteOffset: deslocamento de bytes inicial no arquivo dos dados a serem gravados.

  • WriteBuffer: ponteiro para um buffer que contém os dados a serem gravados no arquivo. Esse membro é opcional e pode ser NULL se um MDL for fornecido em MdlAddress. Veja os Comentários.

  • MdlAddress: endereço de uma MDL (lista de descritores de memória) que descreve o buffer para o qual o membro WriteBuffer aponta. Esse membro é opcional e pode ser NULL se um buffer for fornecido no WriteBuffer. Veja os Comentários.

Comentários

A estrutura FLT_PARAMETERS para operações de IRP_MJ_WRITE contém os parâmetros de uma operação de gravação representada por uma estrutura de dados de retorno de chamada (FLT_CALLBACK_DATA). Ele está contido em uma estrutura FLT_IO_PARAMETER_BLOCK.

Se um buffer WriteBuffer e MdlAddress for fornecido, é recomendável que os minifiltros usem o MDL. A memória para a qual o WriteBuffer aponta é válida quando é um endereço de modo de usuário que está sendo acessado no contexto do processo de chamada ou se é um endereço no modo kernel.

Se um minifiltro alterar o valor de MdlAddress, após o retorno de chamada pós-operação, o Gerenciador de Filtros liberará o MDL armazenado atualmente em MdlAddress e restaurará o valor anterior de MdlAddress.

IRP_MJ_WRITE pode ser uma operação baseada em IRP ou uma operação de E/S rápida.

Requisitos

Tipo de Requisito Requisito
parâmetro Fltkernel.h (inclua Fltkernel.h)

Confira também

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