共用方式為


FltTagFile 函式 (fltkernel.h)

FltTagFile 在檔案或目錄上設定重新剖析標記。

語法

NTSTATUS FLTAPI FltTagFile(
  [in]           PFLT_INSTANCE InitiatingInstance,
  [in]           PFILE_OBJECT  FileObject,
  [in]           ULONG         FileTag,
  [in, optional] GUID          *Guid,
  [in]           PVOID         DataBuffer,
  [in]           USHORT        DataBufferLength
);

參數

[in] InitiatingInstance

起始此 I/O 要求之迷你篩選驅動程序實例的不透明實例指標。 這是必要參數,而且無法 NULL

[in] FileObject

要設定重新分析點之檔案或目錄之檔案物件的指標。 檔案對象必須開啟才能存取FILE_WRITE_DATA。 這是必要參數,而且無法 NULL

[in] FileTag

重新剖析點標記。 如果要修改現有的重新剖析標記,此參數中指定的標記必須符合要修改之重新分析點的標記。

[in, optional] Guid

可唯一識別重新分析點類型的 GUID。 如果 FileTag 不是Microsoft標籤,則需要此參數,而且無法 NULL。 如果正在修改現有的重新剖析標記,此參數中指定的 GUID 必須符合要修改之重新分析點的 GUID。

[in] DataBuffer

緩衝區的指標,其中包含重新分析點的使用者定義數據。

[in] DataBufferLength

DataBuffer 指向的緩衝區大小,以位元組為單位。

傳回值

FltTagFile 會傳回STATUS_SUCCESS或適當的 NTSTATUS 值,例如下列其中一項:

傳回碼 描述
STATUS_INSUFFICIENT_RESOURCES
FltTagFileEx 發生集區配置失敗。 這是錯誤碼。
STATUS_INVALID_DEVICE_REQUEST
檔案系統不支援重新分析點。 這是錯誤碼。
STATUS_INVALID_PARAMETER
FileTag 不是Microsoft標記,而且已為 Guid指定了 null。 這是錯誤碼。
STATUS_IO_REPARSE_TAG_MISMATCH
呼叫端所指定的重新剖析標記不符合要修改之重新分析點的標記。 這是錯誤碼。
STATUS_REPARSE_ATTRIBUTE_CONFLICT
呼叫端所指定的重新剖析 GUID 不符合要修改之重新分析點的 GUID。 這是錯誤碼。

言論

迷你篩選驅動程式應該使用 FltTagFile,而不是 FSCTL_SET_REPARSE_POINT 來設定重新分析點。

並非所有文件系統都支援重新分析點。 NTFS 檔案系統支持它們;FAT 檔案系統不會。 迷你篩選驅動程式可以呼叫 FltQueryVolumeInformation、指定 fileFsAttributeInformation FsInformation 參數,以及檢查傳回 FILE_FS_ATTRIBUTE_INFORMATION 結構中的FILE_SUPPORTS_REPARSE_POINTS位旗標,以判斷文件系統是否支援重新剖析點。

若要移除現有的重新分析點,請呼叫 FltUntagFile

如需重新剖析點的詳細資訊,請參閱 Microsoft Windows SDK 檔。

要求

要求 價值
目標平臺 普遍
標頭 fltkernel.h (包括 Fltkernel.h)
連結庫 FltMgr.lib
DLL Fltmgr.sys
IRQL PASSIVE_LEVEL

另請參閱

FILE_FS_ATTRIBUTE_INFORMATION

FLT_TAG_DATA_BUFFER

FSCTL_DELETE_REPARSE_POINT

FSCTL_GET_REPARSE_POINT

FSCTL_SET_REPARSE_POINT

FltFsControlFile

FltQueryVolumeInformation

FltTagFileEx

FltUntagFile

IsReparseTagMicrosoft

IsReparseTagNameSurrogate

REPARSE_DATA_BUFFER

REPARSE_GUID_DATA_BUFFER