Compartilhar via


FLT_PARAMETERS para união IRP_MJ_MDL_WRITE_COMPLETE

O membro da união FLT_PARAMETERS a seguir será utilizado quando FLT_IO_PARAMETER_BLOCK.MajorFunction for IRP_MJ_MDL_WRITE_COMPLETE.

Sintaxe

typedef union _FLT_PARAMETERS {
  ...    ;
  struct {
    LARGE_INTEGER FileOffset;
    PMDL          MdlChain;
  } MdlWriteComplete;
  ...    ;
} FLT_PARAMETERS, *PFLT_PARAMETERS;

Membros

  • MdlWriteComplete: estrutura que contém os membros a seguir.

  • FileOffset: byte inicial no arquivo armazenado em cache.

  • MdlChain: ponteiro para uma variável que recebe um ponteiro para uma cadeia de uma ou mais listas de descritores de memória (MDL) que descrevem as páginas que contêm os dados que deveriam ter sido gravados no arquivo armazenado em cache.

Comentários

IRP_MJ_MDL_WRITE_COMPLETE é uma operação de E/S rápida. Ele faz a mesma coisa que IRP_MJ_WRITE + IRP_MN_COMPLETE_MDL, exceto pela seguinte diferença:

  • A operação baseada em IRP configura o armazenamento em cache no arquivo, caso ainda não tenha sido armazenado em cache antes do trabalho da MDL.
  • A operação de E/S rápida falhará se o arquivo ainda não tiver sido armazenado em cache.

A estrutura FLT_PARAMETERS para operações IRP_MJ_MDL_WRITE_COMPLETE contém os parâmetros de uma operação de E/S rápida MdlWriteComplete. Essa operação é representada por uma estrutura (FLT_CALLBACK_DATA) de dados de retorno de chamada, com os parâmetros da operação na estrutura FLT_IO_PARAMETER_BLOCK para a qual Iopb aponta.

Se uma solicitação de E/S rápida IRP_MJ_MDL_WRITE_COMPLETE falhar, o emissor da E/S definirá como reemitir a solicitação. Por exemplo, a solicitação pode ser reemitida como uma operação baseada em IRP usando IRP_MJ_WRITE + IRP_MN_COMPLETE_MDL.

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