FltDeleteFileContext 函式 (fltkernel.h)
FltDeleteFileContext 例程會擷取並刪除指定迷你篩選驅動程式針對指定檔案設定的檔案內容。
語法
NTSTATUS FLTAPI FltDeleteFileContext(
[in] PFLT_INSTANCE Instance,
[in] PFILE_OBJECT FileObject,
[out] PFLT_CONTEXT *OldContext
);
參數
[in] Instance
呼叫端的不透明實例指標。 這個參數是必要的,而且不能是 NULL。
[in] FileObject
檔案的檔案對象指標。 這個參數是必要的,而且不能是 NULL。
[out] OldContext
接收已刪除內容位址之呼叫端配置的變數指標。 如果找不到相符的內容,此變數會收到NULL_CONTEXT。 此參數是選擇性的,可以是 NULL。 如需此參數的詳細資訊,請參閱下列一節。
傳回值
FltDeleteFileContext 會傳回STATUS_SUCCESS或適當的 NTSTATUS 值,例如下列其中一項:
傳回碼 | Description |
---|---|
STATUS_NOT_FOUND | 找不到相符的內容。 這是錯誤碼。 |
STATUS_NOT_SUPPORTED | 此檔案不支援檔案內容。 這是錯誤碼。 |
備註
如需內容的詳細資訊,請參閱 關於迷你篩選內容。
因為內容是參考計數,所以小型篩選驅動程式通常不需要呼叫 FltDeleteFileContext 或 FltDeleteContext 等例程,即可明確刪除內容。
迷你篩選驅動程式會呼叫 FltDeleteFileContext ,藉由呼叫 FltSetFileContext 來擷取和刪除先前為檔案設定的檔案內容。
如果輸入上的 OldContext 參數為 NULL ,而且找到相符的檔案內容, FltDeleteFileContext 會釋放 Minifilter 驅動程式先前呼叫 FltSetFileContext 所新增的參考。 刪除的內容通常會立即釋放,除非有未處理的參考 (,因為另一個線程仍會使用內容) 。
如果 OldContext 參數不是 NULL ,而且找到並傳回相符的檔案內容,則呼叫端會負責釋放 FltSetFileContext 所新增的參考。 若要釋放此參考,迷你篩選驅動程式必須在刪除的檔案內容上儘快呼叫 FltReleaseContext ,再執行任何必要的清除。
若要配置新的內容,請呼叫 FltAllocateContext。
若要判斷指定檔案是否支援檔案內容,請呼叫 FltSupportsFileContexts 或 FltSupportsFileContextsEx。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows Vista 和更新版本 |
目標平台 | Universal |
標頭 | fltkernel.h (包含 Fltkernel.h) |
程式庫 | FltMgr.lib |
IRQL | <= APC_LEVEL |