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結構中。
如果同時 提供 ReadBuffer 和 MdlAddress 緩衝區,建議迷你篩選程式使用 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) |