共用方式為


FsRtlRemovePerFileContext 函式 (ntifs.h)

FsRtlRemovePerFileContext 例程會傳回與檔案相關聯之 FSRTL_PER_FILE_CONTEXT 物件的指標。 FsRtlRemovePerFileContext 會從它佔用的清單中移除 FSRTL_PER_FILE_CONTEXT 物件,以及相關聯的驅動程式特定內容資訊。

語法

PFSRTL_PER_FILE_CONTEXT FsRtlRemovePerFileContext(
  [in]           PVOID *PerFileContextPointer,
  [in, optional] PVOID OwnerId,
  [in, optional] PVOID InstanceId
);

參數

[in] PerFileContextPointer

文件系統運行時間連結庫 (FSRTL) 套件用來追蹤檔案內容的不透明指標指標。 若要從檔案物件取得此指標,請使用 FsRtlGetPerFileContextPointer 巨集。

[in, optional] OwnerId

篩選驅動程式配置的變數指標,可唯一識別每個檔案內容結構的擁有者。 此參數是選擇性的,但如果 InstanceId 為非 NULL,則必須是非 NULL。

[in, optional] InstanceId

篩選驅動程式配置的變數指標,可用來區分相同篩選驅動程式所建立的每個檔案內容結構。 這個參數是選擇性的。

傳回值

符合 OwnerId 的第一個 FSRTL_PER_FILE_CONTEXT 指標,如果指定的話,InstanceId。 如果找不到相符專案,或系統不支援每個檔案內容資訊,則此例程會傳回 NULL。

言論

FsRtlRemovePerFileContext 只會移除它找到的第一個符合每個檔案內容結構。 如果每個檔案內容有額外的比對,篩選驅動程式必須呼叫 FsRtlRemovePerFileContext 所需的次數,才能全部移除。

檔系統篩選驅動程式必須在移除 FSRTL_PER_FILE_CONTEXT 之後釋放用於此內容資訊的記憶體。

只有當驅動程式在檔案仍在開啟時,必須捨棄每個檔案內容資訊時,才使用此例程來移除內容。 使用 FsRtlTeardownPerFileContexts 關閉檔案時,會移除內容。

請勿在 FreeCallback 例程內使用此例程。 在呼叫該例程之前,檔案系統會先從清單中移除內容。

請勿在IRP_CLOSE處理程式內使用此例程。 當數據流被拆毀時,您將不會收到通知。

要求

要求 價值
最低支援的用戶端 Windows Vista
目標平臺 普遍
標頭 ntifs.h (include FltKernel.h, Ntifs.h)
連結庫 NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <=APC_LEVEL

另請參閱

FSRTL_PER_FILE_CONTEXT

FsRtlGetPerFileContextPointer

FsRtlInsertPerFileContext

FsRtlLookupPerFileContext

在舊版文件系統篩選驅動程式 中 追蹤 Per-File 內容