FltTagFileEx 函式 (fltkernel.h)
FltTagFileEx 會在檔案或目錄上設定重新分析點。
語法
NTSTATUS FLTAPI FltTagFileEx(
PFLT_INSTANCE InitiatingInstance,
PFILE_OBJECT FileObject,
ULONG FileTag,
GUID *Guid,
PVOID DataBuffer,
USHORT DataBufferLength,
ULONG ExistingFileTag,
GUID *ExistingGuid,
ULONG Flags
);
參數
InitiatingInstance
起始此 I/O 要求的迷你篩選驅動程序實例不透明指標。 這個參數是必要的,而且不能是 NULL。
FileObject
要設定重新分析點之檔案或目錄之檔案物件的指標。 檔案對象必須開啟才能FILE_WRITE_DATA存取。 這個參數是必要的,而且不能是 NULL。
FileTag
重新分析點標籤。 可以是 ntifs.h 中定義的其中一個IO_REPARSE_TAG_XXX 值。
Guid
可唯一識別重新分析點的 GUID。 如果 FileTag 是非 Microsoft 標籤,則這個參數是必要的,而且不能是 NULL。 如果正在修改現有的重新分析標記,此參數中指定的 GUID 必須符合要修改之重新分析點的 GUID。
DataBuffer
緩衝區的指標,其中包含重新分析點的使用者定義數據。
DataBufferLength
DataBuffer 指向之緩衝區的大小,以位元組為單位。
ExistingFileTag
如果必須取代標籤,則檔案上的現有標記。 此參數必須設定為零,才能在還沒有重新分析標籤的檔案上設定。
ExistingGuid
可唯一識別現有重新分析點的 GUID。 如果 ExistingFileTag 是非 Microsoft 標籤且非零,則此參數不得為 NULL。
Flags
指定 ntifs.h 中定義的REPARSE_DATA_BUFFER_EX_XXX 旗標。
傳回值
此函式會傳回STATUS_SUCCESS或適當的NTSTATUS值,例如:
傳回碼 | Description |
---|---|
STATUS_IO_REPARSE_TAG_MISMATCH | 在 ExistingFileTag 中指定的標記值不符合現有標籤值的標記值。 |
STATUS_REPARSE_ATTRIBUTE_CONFLICT | 對於具有非 Microsoft 標籤的現有重新分析點, ExistingFileTag 會比對現有的標籤,但 Guid 不符合現有的 Guid 。 |
備註
Minifilter 驅動程式應該使用 FltTagFileEx ,而不是FSCTL_SET_REPARSE_POINT_EX來設定重新分析點。
並非所有文件系統都支援重新分析點;例如,NTFS 和 ReFS 檔案系統支持它們,但 FAT 檔案系統則不支援。 Minifilter 驅動程式可以呼叫 FltQueryVolumeInformation、指定 FsInformation 參數的 FileFsAttributeInformation,以及檢查傳回 FILE_FS_ATTRIBUTE_INFORMATION 結構中的FILE_SUPPORTS_REPARSE_POINTS位旗標,來判斷文件系統是否支援重新分析點。
若要移除現有的重新分析點,請呼叫 FltUntagFile。
如需重新分析點的詳細資訊,請參閱 Microsoft Windows SDK 檔。
規格需求
需求 | 值 |
---|---|
標頭 | fltkernel.h |