KsPinAttemptProcessing function (ks.h)
The KsPinAttemptProcessing function is used to resume processing on a specific pin on a pin-centric filter. It attempts to initiate processing on Pin by sending a processing dispatch call to Pin's processing object.
Syntax
void KsPinAttemptProcessing(
[in] PKSPIN Pin,
[in] BOOLEAN Asynchronous
);
Parameters
[in] Pin
A pointer to a KSPIN structure that represents the AVStream pin object on which to attempt processing.
Warning
This parameter is mandatory. If you call KsPinAttemptProcessing with a Pin value of NULL, system instability may result.
[in] Asynchronous
This parameter indicates the minidriver's preference whether the processing should occur synchronously or asynchronously. If TRUE, processing is always asynchronous. However, synchronous processing only happens under certain circumstances. For more information, see the Remarks section below.
Return value
None
Remarks
A minidriver may need to call KsPinAttemptProcessing to resume processing in various situations. For example, if the client has shut off the processing control gate with KsGateTurnInputOff, call this function when ready to attempt processing. Note that this only causes a processing dispatch if the process control gate is in the open state. Another situation involves the minidriver having previously returning STATUS_PENDING to a processing dispatch. For more details, see Restarting Processing in AVStream and Flow Control Gates in AVStream.
The processing dispatch occurs either synchronously or asynchronously, and only if the processing control gate is open. The Asynchronous flag specifies the minidriver's preference. If the minidriver requests an asynchronous process dispatch, the dispatch is always asynchronous. However, even if the caller sets Asynchronous to FALSE, a synchronous dispatch only occurs if the system is currently running at an IRQL less than the maximum processing IRQL. In other words, if the minidriver does not specify dispatch level processing and the call is made at IRQL = DISPATCH_LEVEL, then the call occurs in an asynchronous work item at PASSIVE_LEVEL regardless of the value of Asynchronous. For more information, see Filter-Centric Processing and Pin-Centric Processing.
Requirements
Requirement | Value |
---|---|
Target Platform | Universal |
Header | ks.h (include Ks.h) |
Library | Ks.lib |
IRQL | <=DISPATCH_LEVEL (See Remarks) |