KsFilterAttemptProcessing - NtDoc

Native API online documentation, based on the System Informer (formerly Process Hacker) phnt headers
// ks.h

void KsFilterAttemptProcessing(
  [in] PKSFILTER Filter,
  [in] BOOLEAN   Asynchronous
);
View the official Windows Driver Kit DDI reference

NtDoc

No description available.

Windows Driver Kit DDI reference (nf-ks-ksfilterattemptprocessing)

KsFilterAttemptProcessing function

Description

The KsFilterAttemptProcessing function attempts to initiate processing on Filter.

Parameters

Filter [in]

A pointer to a KSFILTER structure representing the AVStream filter object on which to attempt processing.

Asynchronous [in]

This parameter contains an indication as to whether the processing dispatch should occur asynchronously or not (should it occur). An asynchronous dispatch is guaranteed if this is TRUE; however, synchronous processing dispatches are governed by conditions described below.

Remarks

If the minidriver calls KsFilterAttemptProcessing when all of the conditions required to process data are met, a processing dispatch occurs. For more information about the process callback, see KSFILTER_DISPATCH. In order for the attempt to result in an actual dispatch, the filter's process control gate must be in an open state. Unlike pin-centric processing, filter-centric processing has many conditions that affect the process control gate. For more information about these requirements, see Filter-Centric Processing and Pin-Centric Processing.

If the process control gate is open, a processing dispatch occurs, either synchronously or asynchronously. If the caller specifies TRUE in the Asynchronous parameter, the processing dispatch always occurs asynchronously in a work item. However, if the caller requests a synchronous processing dispatch, the dispatch occurs synchronously only if the system is currently at an IRQL at which the minidriver can handle processing. If the system is at PASSIVE_LEVEL, the dispatch is guaranteed to happen synchronously. Conversely, if the system is at DISPATCH_LEVEL, the dispatch happens synchronously only if KSFILTER_FLAG_DISPATCH_LEVEL_PROCESSING is specified on the filter. Otherwise, a work item is queued to perform processing.

Note that this is only an attempt at processing; calling this function does not guarantee that processing will commence. Processing occurs only if the process control gate is "open." For more information, see Restarting Processing in AVStream and Flow Control Gates in AVStream.

See also

KSFILTER_DISPATCH

KSGATE

KsGateCaptureThreshold

KsPinAttemptProcessing