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