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 和 InstanceId 的第一個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 |