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 |
另請參閱
在舊版文件系統篩選驅動程式 中