共用方式為


IRP_MJ_WRITE等位的FLT_PARAMETERS

當作業FLT_IO_PARAMETER_BLOCK結構的MajorFunction字段IRP_MJ_WRITE,會使用下列等位元件。

語法

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

成員

  • 寫入:包含下列成員的結構。

  • 長度:要寫入之數據的長度,以位元組為單位。

  • 索引鍵:與目標檔案上位元組範圍鎖定相關聯的索引鍵值。

  • ByteOffset:要寫入之數據檔案內的起始位移。

  • WriteBuffer:緩衝區的指標,其中包含要寫入檔案的數據。 如果 MdlAddress提供 MDL,這個成員是選擇性的,而且可以是 NULL。 請參閱備註

  • MdlAddress:描述 WriteBuffer 成員所指向之緩衝區的記憶體描述元清單 (MDL) 位址。 如果 WriteBuffer提供緩衝區,這個成員是選擇性的,而且可以是 NULL。 請參閱備註

備註

IRP_MJ_WRITE作業FLT_PARAMETERS結構包含回呼資料 (FLT_CALLBACK_DATA) 結構所表示之寫入作業的參數。 它包含在FLT_IO_PARAMETER_BLOCK結構中。

如果同時 提供 WriteBufferMdlAddress 緩衝區,建議迷你篩選程式使用 MDL。 WriteBuffer 所指向的記憶體在呼叫進程內容中存取的使用者模式位址時有效,或者如果它是核心模式位址,則為 。

如果迷你篩選程序變更 MdlAddress 的值,則在其後續作業回呼之後,篩選管理員會釋放目前儲存在 MdlAddress 中的 MDL,並還原先前的 MdlAddress 值。

如果在 Iopb-MinorFunction> 中設定IRP_MN_COMPLETE位,則 MdlAddress 是傳送至 CcMdlReadComplete 的位址。

如果在 Iopb-MinorFunction> 中設定IRP_MN_MDL位(而非IRP_MN_COMPLETE位),則 MdlAddress 是傳送至 CcPrepareMdlWrite 的位址。

IRP_MJ_WRITE可以是 IRP 型作業或快速 I/O 作業。

需求

需求類型 需求
頁首 Fltkernel.h (包括 Fltkernel.h

另請參閱

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