共用方式為


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

另請參閱

FILE_FS_ATTRIBUTE_INFORMATION

FLT_TAG_DATA_BUFFER

FSCTL_DELETE_REPARSE_POINT

FSCTL_GET_REPARSE_POINT

FSCTL_SET_REPARSE_POINT

FltFsControlFile

FltQueryVolumeInformation

FltTagFile

FltUntagFile

IsReparseTagMicrosoft

IsReparseTagNameSurrogate

REPARSE_DATA_BUFFER

REPARSE_GUID_DATA_BUFFER