PFNKSPIN - NtDoc

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

PFNKSPIN Pfnkspin;

NTSTATUS Pfnkspin(
  [in] PKSPIN Pin
)
{...}

View the official Windows Driver Kit DDI reference

NtDoc

No description available.

Windows Driver Kit DDI reference (nc-ks-pfnkspin)

PFNKSPIN callback function

Description

An AVStream minidriver's callback routine is called when:

Parameters

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.

Remarks

About AVStrMiniPinProcess

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.

About AVStrMiniPinConnect

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

Return STATUS_SUCCESS or the error returned from the attempt to establish an intra-connection. Do not return STATUS_PENDING.

This routine is optional.

Also see KS Pins.

See also

Filter-Centric Processing

KSPIN_DESCRIPTOR_EX

KSPIN_DISPATCH

KsStreamPointerClone

Pin-Centric Processing