AVStrMiniPinProcess routine

An AVStream minidriver's AVStrMiniPinProcess routine is called when there is data available for a KSPIN structure to process. Use this routine to perform Pin-Centric Processing.


PFNKSPIN AVStrMiniPinProcess;

NTSTATUS AVStrMiniPinProcess(
  _In_ PKSPIN Pin
{ ... }


Pin [in]

Pointer to the KSPIN that has frame data available to process.

Return value

Return STATUS_SUCCESS to continue processing. Return STATUS_PENDING to stop processing until the next triggering event.


The minidriver specifies this routine's address in the Process member of its KSPIN_DISPATCH structure.

Indicate that a filter uses Pin-Centric Processing by providing this dispatch function. The minidriver sets pin flags in the relevant KSPIN_DESCRIPTOR_EX structure that determine when AVStream calls AVStrMiniPinProcess. If the minidriver sets no flags in the descriptor, the default behavior is that AVStream calls AVStrMiniPinProcess when new data arrives into a previously empty queue. See Pin-Centric Processing for more details on processing triggers.

After processing, the minidriver can prevent the frame from being completed by cloning the leading edge stream pointer. To do this, call KsStreamPointerClone. See Leading and Trailing Edge Stream Pointers.

Alternatively, specify a distinct trailing edge by setting KSPIN_FLAG_DISTINCT_TRAILING_EDGE on KSPIN_DESCRIPTOR_EX. A third option is not to advance the leading edge stream pointer.

The process dispatch is either made at the default IRQL = PASSIVE_LEVEL, or possibly at DISPATCH_LEVEL if the minidriver has specified KSPIN_FLAG_DISPATCH_LEVEL_PROCESSING in the relevant KSPIN_DESCRIPTOR_EX.

This routine is optional.


Target platform



Available in Microsoft Windows XP and later operating systems and DirectX 8.0 and later DirectX versions.


Ks.h (include Ks.h)


(See Remarks section)

See also

Pin-Centric Processing
Filter-Centric Processing



Send comments about this topic to Microsoft