FltDeleteContext 函式 (fltkernel.h)
FltDeleteContext 會標示要刪除的指定內容。
語法
VOID FLTAPI FltDeleteContext(
[in] PFLT_CONTEXT Context
);
參數
[in] Context
要刪除之內容的指標。 這個參數是必要的,而且不能是 NULL。
傳回值
無。
備註
如需內容的詳細資訊,請參閱 關於迷你篩選內容。
因為內容是參考計數的,所以小型篩選驅動程式通常不需要呼叫例程,例如 FltDeleteContext,才能明確刪除內容。
FltDeleteContext 會標示要刪除的內容。 除非有未處理的參考,否則內容通常會在發行時立即釋出,除非有未處理的參考 (,因為另一個線程仍會使用內容) 。
當您使用 FltDeleteContext 時,您應該考慮下列專案:
當迷你篩選驅動程式呼叫 FltDeleteContext 時,迷你篩選驅動程式必須已經有內容的參考。 不過,當 minifilter 驅動程式呼叫 FltDeleteStreamHandleContext、FltDeleteStreamContext、FltDeleteInstanceContext 等等時,minifilter 驅動程式不需要參考內容。 在迷你篩選驅動程式呼叫 FltDeleteContext 之後,該內容參考仍然有效。 迷你篩選驅動程式必須呼叫 FltReleaseContext 例程,以釋放內容的參考。
FltDeleteContext 會從內部篩選管理員結構中移除內容。 然後,進一步呼叫取得內容的函式,例如 FltGetContexts 和 FltGetInstanceContext,找不到該內容。 不過,在內容參考計數移至 0 之前,不會釋放內容記憶體。
您也可以從下表呼叫適當的刪除內容例程來刪除內容。
內容類型 | Delete-Context 例程 |
---|---|
FLT_FILE_CONTEXT | FltDeleteFileContext (Windows Vista 及更新版本。) |
FLT_INSTANCE_CONTEXT | FltDeleteInstanceContext |
FLT_SECTION_CONTEXT | FltCloseSectionForDataScan (Windows 8 和更新版本 only.) |
FLT_STREAM_CONTEXT | FltDeleteStreamContext |
FLT_STREAMHANDLE_CONTEXT | FltDeleteStreamHandleContext |
FLT_TRANSACTION_CONTEXT | FltDeleteTransactionContext (Windows Vista 及更新版本。) |
FLT_VOLUME_CONTEXT | FltDeleteVolumeContext |
若要配置新的內容,請呼叫 FltAllocateContext。
若要遞增內容上的參考計數,請呼叫 FltReferenceContext。
若要遞減內容上的參考計數,請呼叫 FltReleaseContext。
區段內容FLT_SECTION_CONTEXT類型,不得使用 FltDeleteContext 刪除。 請改用 FltReleaseContext 來解除分配區段內容。
規格需求
需求 | 值 |
---|---|
目標平台 | Universal |
標頭 | fltkernel.h (包含 Fltkernel.h) |
程式庫 | FltMgr.lib |
Dll | Fltmgr.sys |
IRQL | <= APC_LEVEL |