Bewerken

Delen via


KsFilterAttemptProcessing function (ks.h)

The KsFilterAttemptProcessing function attempts to initiate processing on Filter.

Syntax

void KsFilterAttemptProcessing(
  [in] PKSFILTER Filter,
  [in] BOOLEAN   Asynchronous
);

Parameters

[in] Filter

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

[in] Asynchronous

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.

Return value

None

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.

Requirements

Requirement Value
Minimum supported client Available in Microsoft Windows XP and later operating systems and DirectX 8.0 and later DirectX versions.
Target Platform Universal
Header ks.h (include Ks.h)
Library Ks.lib
IRQL <=DISPATCH_LEVEL

See also

KSFILTER_DISPATCH

KSGATE

KsGateCaptureThreshold

KsPinAttemptProcessing