共用方式為


建立內容

一旦迷你篩選註冊它所使用的內容類型,就可以呼叫 FltAllocateCoNtext來建立內容。 此常式會根據 註冊內容類型中所述的準則,選取要使用的適當內容定義。

配置內容並嘗試設定內容之前,迷你篩選可以呼叫下列常式來判斷基礎檔案系統是否支援檔案、資料流程或資料流程控制碼內容:

在下列程式碼範例中,從 CTX 範例迷你篩選驅動程式 取得, CtxInstanceSetup 常式會呼叫 FltAllocateCoNtext 來建立實例內容:

status = FltAllocateContext(
      FltObjects->Filter,           //Filter
      FLT_INSTANCE_CONTEXT,         //ContextType
      CTX_INSTANCE_CONTEXT_SIZE,    //ContextSize
      NonPagedPool,                 //PoolType
      &instanceContext);            //ReturnedContext

在 CTX 範例中,下列內容定義會針對實例內容註冊:

{ FLT_INSTANCE_CONTEXT,              //ContextType
  0,                                 //Flags
  CtxContextCleanup,                 //ContextCleanupCallback
  CTX_INSTANCE_CONTEXT_SIZE,         //Size
  CTX_INSTANCE_CONTEXT_TAG },        //PoolTag

內容定義是固定大小的,因為 Size 成員是CTX_INSTANCE_CONTEXT_SIZE (與FLT_VARIABLE_SIZED_CONTEXTS,用來指出變數大小的內容定義) 。 請注意,旗標成員中未設定FLTFL_CONTEXT_REGISTRATION_NO_EXACT_SIZE_MATCH 旗標 。 在此情況下,如果FltAllocateCoNtextCoNtextSize參數值符合內容定義之 Size成員的值,FltAllocateCoNtext就會從適當的非分頁 lookaside 清單中配置實例內容。 如果值不相符, FltAllocateCoNtext 會失敗,傳回值為 STATUS_FLT_CONTEXT_ALLOCATION_NOT_FOUND。

成功時, FltAllocateCoNtext 會將新內容上的參考計數初始化為一個。 不再需要內容時,迷你篩選驅動程式必須釋放此參考。 因此, 每次呼叫 FltAllocateCoNtext 都必須與 後續對 FltReleaseCoNtext的呼叫進行比對。

建立內容之後,迷你篩選就可以 為物件設定它