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值,如下所示:
傳回碼 | 描述 |
---|---|
STATUS_IO_REPARSE_TAG_MISMATCH | ExistingFileTag 中指定的標記值 不符合現有標籤值的標記值。 |
STATUS_REPARSE_ATTRIBUTE_CONFLICT | 對於具有非Microsoft標記的現有重新剖析點,ExistingFileTag 符合現有的標記值,但 Guid 不符合現有的 Guid。 |
言論
迷你篩選驅動程式應該使用 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 |