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 值,例如下列其中一項:

傳回碼 描述
STATUS_NOT_FOUND 找不到相符的內容。 這是錯誤碼。
STATUS_NOT_SUPPORTED 此檔案不支援檔案內容。 這是錯誤碼。

言論

如需內容的詳細資訊,請參閱 關於小型篩選內容。

因為內容是參考計數,所以小型篩選驅動程式通常不需要呼叫例程,例如 FltDeleteFileContext 或 FltDeleteContext 明確刪除內容。

小型篩選驅動程式會呼叫 FltDeleteFileContext,藉由呼叫 FltSetFileContext來擷取和刪除先前為檔案設定的檔案內容。

如果輸入上的 OldContext 參數 NULL,且找到相符的檔案內容,FltDeleteFileContext 會釋放 minifilter 驅動程式先前呼叫 FltSetFileContext所新增的參考。 刪除的內容通常會立即釋放,除非其上有未處理的參考(例如,因為內容仍由另一個線程使用)。

如果 OldContext 參數未 NULL,而且找到並傳回相符的檔案內容,呼叫者會負責釋放 fltSetFileContext 所新增的參考。 若要釋放此參考,迷你檔案驅動程式必須在執行任何必要的清除之後,儘快在已刪除的檔案內容上呼叫 FltReleaseContext。

若要設定新的內容,請呼叫 FltAllocateContext。

若要判斷指定檔案是否支援檔案內容,請呼叫 FltSupportsFileContexts 或 FltSupportsFileContextsEx。

要求

要求 價值
最低支援的用戶端 Windows Vista 和更新版本
目標平臺 普遍
標頭 fltkernel.h (包括 Fltkernel.h)
連結庫 FltMgr.lib
IRQL <= APC_LEVEL

另請參閱

FLT_CONTEXT_REGISTRATION

FltAllocateContext

FltDeleteContext

FltGetFileContext

FltReleaseContext

FltSetFileContext

FltSupportsFileContexts

FltSupportsFileContextsEx