Pending IO in MiniFilter

Pending IO in PreOperation Callback
 
n  FltCompletePendedPreOperation()
n  Must call this to restart processing of IO pended in the preOperation callback
n  Filter may:
n  Complete operation
n  Request postOperation callback through the FLT_PREOP_CALLBACK_STATUS parameter
n  Typically called from a worker thread
 
n  FltQueueDeferredIoWorkItem()
n  Queue operation to worker thread for continued processing
n  Can fail if this operation is not safe to post �C i.e., this is paging IO or top-level IRP is already set on this thread
n  Can fail if this Instance is in the process of being torndown
 
 
 
 
Pending IO in PostOperation Callback
n  FltDoCompletionProcessingWhenSafe()
n  Can fail if it is not safe to post
n  Not safe to post Paging IO’s
n  Synchronize operation if you cannot handle this failure
n  Tells filter the appropriate postOperation callback status to return
n  Will only post operation if currently at DPC IRQL
n  Will continue completion processing when WorkerRoutine has completed
 
 
n  FltQueueDeferredIoWorkItem()
n  Works just like in preOperation
n  Will always queue work to worker thread if it is safe to do so
n  If successfully queues work, return FLT_POSTOP_MORE_PROCESSING_REQUIRED
n  FltCompletePendedPostOperation()
n  Must call this to restart processing of IO pended in the postOperation callback

你可能感兴趣的:(职场,休闲,minifilter)