共用方式為


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

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

傳回值

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

備註

FsRtlRemovePerFileContext 只會移除它找到的第一個符合每個檔案內容結構。 如果有額外的每個檔案內容相符,篩選驅動程式必須呼叫 FsRtlRemovePerFileContext ,視需要多次移除它們。

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

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

請勿在 FreeCallback 例程內使用此例程。 文件系統會先從清單中移除內容,然後再呼叫該例程。

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

規格需求

需求
最低支援的用戶端 Windows Vista
目標平台 Universal
標頭 ntifs.h (包含 FltKernel.h、Ntifs.h)
程式庫 NtosKrnl.lib
Dll NtosKrnl.exe
IRQL <=APC_LEVEL

另請參閱

FSRTL_PER_FILE_CONTEXT

FsRtlGetPerFileContextPointer

FsRtlInsertPerFileContext

FsRtlLookupPerFileContext

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