FltSetInformationFile 函式 (fltkernel.h)
FltSetInformationFile 會 設定指定檔案的資訊。
語法
NTSTATUS FLTAPI FltSetInformationFile(
[in] PFLT_INSTANCE Instance,
[in] PFILE_OBJECT FileObject,
[in] PVOID FileInformation,
[in] ULONG Length,
[in] FILE_INFORMATION_CLASS FileInformationClass
);
參數
[in] Instance
呼叫端的不透明實例指標。 這個參數是必要的,而且不能是 NULL。
[in] FileObject
檔案的檔案對象指標。 這個參數是必要的,而且不能是 NULL。
[in] FileInformation
呼叫端配置的緩衝區指標,其中包含要為檔案設定的資訊。 FileInformationClass 參數會指定信息的類型。 這個參數是必要的,而且不能是 NULL。
[in] Length
FileInformation 緩衝區的大小,以位元組為單位。
[in] 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 。 |
傳回值
FltSetInformationFile 會傳回STATUS_SUCCESS或適當的 NTSTATUS 值。
備註
迷你篩選驅動程式會呼叫 FltSetInformationFile 來設定指定檔案的資訊。 檔案目前必須開啟。
檔案重新命名作業會對傳遞至 FltSetInformationFile 的參數值施加下列限制:如 FILE_RENAME_INFORMATION的參考專案中所述,檔案或目錄只能在磁碟區內重新命名。 換句話說,重新命名作業不會導致檔案或目錄移至不同的磁碟區。 不同於 ZwSetInformationFile,FltSetInformationFile 不會驗證FILE_RENAME_INFORMATION結構的內容。 因此 FltSetInformationFile 的呼叫端負責確保檔案或目錄的新名稱位於與舊名稱相同的磁碟區上。
Minifilter 驅動程式必須使用 FltSetInformationFile ,而非 ZwSetInformationFile 來重新命名檔案。
規格需求
需求 | 值 |
---|---|
目標平台 | Universal |
標頭 | fltkernel.h (包含 Fltkernel.h) |
程式庫 | FltMgr.lib |
Dll | Fltmgr.sys |
IRQL | PASSIVE_LEVEL |