共用方式為


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 值,例如下列其中一項:

傳回碼 Description
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、指定 FsInformation 參數的 FileFsAttributeInformation,以及檢查傳回 FILE_FS_ATTRIBUTE_INFORMATION 結構中的FILE_SUPPORTS_REPARSE_POINTS位旗標,判斷文件系統是否支援重新分析點。

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

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

規格需求

需求
目標平台 Universal
標頭 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