共用方式為


刪除內容

最後必須刪除成功呼叫FltSetXxx內容設定的每個內容。

當發生下列情況時,篩選管理員會自動刪除內容:

  • 刪除內容所附加的物件
  • 迷你篩選實例與磁片區中斷連結
  • 已卸載迷你篩選驅動程式

因此,小型篩選很少需要明確刪除內容。

迷你篩選可以藉由呼叫下列其中一個內容刪除常式來刪除內容:

只有在目前 為物件設定內容時,才能刪除內容。 如果尚未設定內容,或已透過 成功呼叫 FltSetXxx內容來取代內容,則無法刪除內容。

FltDeleteXxxCoNtext常式會傳回OldCoNtext參數中舊內容的指標,如果OldCoNtext為非Null且未指向 Null_CONTEXT。 如果 OldCoNtextNull,篩選管理員會遞減內容上的參考計數,然後釋放該計數,除非迷你篩選有未處理的參考。

下列程式碼範例示範如何刪除資料流程內容:

status = FltDeleteStreamContext(
 FltObjects->Instance,      //Instance
 FltObjects->FileObject,    //FileObject
           &oldContext);              //OldContext
//
// Perform any needed processing
// ...
//
if (oldContext != NULL) {
 FltReleaseContext(oldContext);
}

在此範例中, FltDeleteStreamCoNtext

  • 從資料流程中移除資料流程內容。
  • 不會遞減內容的參考計數,因為OldCoNtext參數不是 Null。
  • 傳回已刪除內容的位址, (OldCoNtext 參數中已從資料流程中移除的內容) 。

由於非 Null OldCoNtext 參數,因此在執行任何必要的處理之後,篩選準則必須藉由呼叫 FltReleaseCoNtext釋放已刪除的內容。