共用方式為


IRP_MJ_READ等位的FLT_PARAMETERS

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

語法

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

成員

  • 讀取:包含下列成員的結構。

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

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

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

  • ReadBuffer:接收從檔案讀取之數據的緩衝區指標。 如果 MdlAddress提供 MDL,這個成員是選擇性的,而且可以是 NULL。 請參閱備註

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

備註

IRP_MJ_READ作業的FLT_PARAMETERS結構包含回呼數據 (FLT_CALLBACK_DATA) 結構所表示讀取作業的參數。 它包含在FLT_IO_PARAMETER_BLOCK結構中。

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

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

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

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

IRP_MJ_READ可以是 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

FltReadFile

IRP_MJ_READ

ZwReadFile