Compartilhar via


FLT_PARAMETERS para IRP_MJ_READ união

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

Sintaxe

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

Membros

  • Leia-se: Estrutura contendo os seguintes membros.

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

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

  • ByteOffset: deslocamento de byte inicial dentro do arquivo dos dados a serem lidos.

  • ReadBuffer: ponteiro para um buffer que recebe os dados lidos do arquivo. Esse membro é opcional e pode ser NULL se um MDL for fornecido em MdlAddress. Veja os Comentários.

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

Comentários

A estrutura FLT_PARAMETERS para operações IRP_MJ_READ contém os parâmetros para uma operação de leitura 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 ReadBuffer e MdlAddress forem fornecidos, é recomendável que os minifiltros usem o MDL. A memória para a qual o ReadBuffer aponta é válida quando é um endereço de modo de usuário sendo acessado no contexto do processo de chamada ou se é um endereço de modo kernel.

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

Se o bit IRP_MN_COMPLETE estiver definido em Iopb-MinorFunction>, MdlAddress será o endereço a ser enviado para CcMdlReadComplete.

Se o bit IRP_MN_MDL (e não o bit IRP_MN_COMPLETE) estiver definido em Iopb-MinorFunction>, MdlAddress será o endereço a ser enviado para CcMdlRead.

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

Requisitos

Tipo de requisito Requisito
Cabeçalho Fltkernel.h (inclui 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

FltReadFile

IRP_MJ_READ

ZwReadFile