IRP_MJ_SET_INFORMATION等位的FLT_PARAMETERS
作業之FLT_IO_PARAMETER_BLOCK結構的MajorFunction字段IRP_MJ_SET_INFORMATION時使用的聯集元件。
語法
typedef union _FLT_PARAMETERS {
... ;
struct {
ULONG Length;
FILE_INFORMATION_CLASS POINTER_ALIGNMENT FileInformationClass;
PFILE_OBJECT ParentOfTarget;
union {
struct {
BOOLEAN ReplaceIfExists;
BOOLEAN AdvanceOnly;
};
ULONG ClusterCount;
HANDLE DeleteHandle;
};
PVOID InfoBuffer;
} SetFileInformation;
... ;
} FLT_PARAMETERS, *PFLT_PARAMETERS;
成員
SetFileInformation:包含下列成員的結構。
長度: InfoBuffer 緩衝區的長度,以位元組為單位。
FileInformationClass:要為檔案設定的信息類型。 下列其中之一:
值 意義 FileAllocationInformation 設定檔案 FILE_ALLOCATION_INFORMATION 。 FileBasicInformation 為檔案設定 FILE_BASIC_INFORMATION 。 FileDispositionInformation 設定檔案 FILE_DISPOSITION_INFORMATION 。 FileEndOfFileInformation 設定檔案 FILE_END_OF_FILE_INFORMATION 。 FileLinkInformation 設定 檔案FILE_LINK_INFORMATION 。 FilePositionInformation 設定 檔案FILE_POSITION_INFORMATION 。 FileRenameInformation 設定 檔案FILE_RENAME_INFORMATION 。 FileValidDataLengthInformation 為檔案設定 FILE_VALID_DATA_LENGTH_INFORMATION 。 ParentOfTarget:用於重新命名或鏈接作業。 如果 InfoBuffer-FileName> 包含完整檔名,或 InfoBuffer-RootDirectory> 非 NULL,則這個成員是作業目標檔案之父目錄的檔案對象指標。 否則為 NULL。
( 未命名的結構 )
包含下列成員的結構。ReplaceIfExists:用於重新命名或鏈接作業。 設定為 TRUE ,以指定已經存在且具有相同名稱的檔案,會以指定的檔案取代。 如果具有指定名稱的檔案已經存在,則重新命名或鏈接作業應該會失敗,則設定為 FALSE 。
AdvanceOnly:文件尾作業的旗標。 這會決定 FileInformationClass == FileEndOfFileInformation 時,EndOfFile 成員FILE_END_OF_FILE_INFORMATION結構的用法。 如果 為 TRUE,只有當檔案增加目前的有效數據長度時,才會從 EndOfFile 設定新的有效數據長度。 如果為 FALSE,則會從 EndOfFile 設定新的檔案大小。
ClusterCount:保留供系統使用。 請勿使用。
DeleteHandle:保留供系統使用。 請勿使用。
InfoBuffer:輸入緩衝區的指標,其中包含要設定的檔案資訊。
備註
IRP_MJ_SET_INFORMATION作業的 FLT_PARAMETERS 結構包含回呼數據所代表之集合資訊作業的參數, (FLT_CALLBACK_DATA) 結構。 它包含在FLT_IO_PARAMETER_BLOCK結構中。
IRP_MJ_SET_INFORMATION是以 IRP 為基礎的作業。
Cache Manager 會將 AdvanceOnly 成員設定為 TRUE ,以通知文件系統將磁碟上的目前有效數據長度前進到 EndOfFile 中新的有效數據長度。 如果 AdvanceOnly 為 FALSE, 則會在 EndOfFile 成員中設定新的檔案大小,其大小可以大於或小於目前的檔案大小。
規格需求
需求類型 | 需求 |
---|---|
標頭 | Fltkernel.h (包含 Fltkernel.h) |