當作業之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 為基礎的作業。
AdvanceOnly 成員會由快取管理員設定為 TRUE,以通知文件系統將磁碟上目前的有效數據長度前進到 EndOfFile 中新的有效數據長度。 如果 AdvanceOnly 為 FALSE, 則會在 EndOfFile 成員中設定新的檔案大小,其大小可能大於或小於目前的檔案大小。
需求
需求類型 | 要求 |
---|---|
頁首 | Fltkernel.h (包括 Fltkernel.h) |