共用方式為


釋放內容

迷你篩選程式會藉由呼叫 FltReleaseContext 來釋放內容。 下列其中一個例程的每個成功呼叫最終都必須與 FltReleaseContext 的呼叫相符:

請注意,FltSetXxxContext 所傳回的 OldContext 指標,以及 FltDeleteContext 所傳回的 Context 指標,在不再需要時也必須釋放它們。

在下列程式代碼範例中,CtxInstanceSetup 例程會建立並設定實例內容,然後呼叫 FltReleaseContext

status = FltAllocateContext(
           FltObjects->Filter,           //Filter
           FLT_INSTANCE_CONTEXT,         //ContextType
           CTX_INSTANCE_CONTEXT_SIZE,    //ContextSize
           NonPagedPool,                 //PoolType
           &instanceContext);            //ReturnedContext
...
status = FltSetInstanceContext(
           FltObjects->Instance,              //Instance
           FLT_SET_CONTEXT_KEEP_IF_EXISTS,    //Operation
           instanceContext,                   //NewContext
           NULL);                             //OldContext

if (instanceContext != NULL) {
  FltReleaseContext(instanceContext);
}
return status;

請注意,不論 FltSetInstanceContext 的呼叫是否成功,都會呼叫 FltReleaseContext