KsPinDataIntersectionEx function

The KsPinDataIntersectionEx function handles the KSPROPERTY_PIN_DATAINTERSECTION through a callback function.

Syntax

KSDDKAPI NTSTATUS KsPinDataIntersectionEx(
  PIRP                    Irp,
  PKSP_PIN                Pin,
  PVOID                   Data,
  ULONG                   DescriptorsCount,
  const KSPIN_DESCRIPTOR  *Descriptor,
  ULONG                   DescriptorSize,
  PFNKSINTERSECTHANDLEREX IntersectHandler,
  PVOID                   HandlerContext
);

Parameters

Irp

Specifies the IRP that describes the property request.

Pin

Specifies the specific property that is being queried.

Data

Specifies the pin property-specific data.

DescriptorsCount

Specifies the number of descriptor structures.

Descriptor

Specifies the pointer to the list of pin information structures.

DescriptorSize

Size of the descriptor structures, in bytes.

IntersectHandler

Contains the optional minidriver-defined KStrIntersectHandlerEx callback function to compare data ranges.

HandlerContext

Optional context that is supplied to the handler.

Return Value

Returns STATUS_SUCCESS; otherwise, an error specific to the property that is being handled.

Remarks

KsPinDataIntersectionEx is very similar to KsPinDataIntersection, except for some of the following slight differences:

  • In KsPinDataIntersectionEx, the size of the descriptor is passed, a feature that allows extended descriptors.

  • The data intersection callback function is prototyped differently in the extended version (NTSTATUS Callback (Context, Irp, Pin, DataRange, MatchingDataRange, DataBufferSize, Data, DataSize)) versus KsPinDataIntersection (NTSTATUS Callback (Irp, Pin, DataRange, Data)).

  • The output buffer (Data) length is passed as a parameter to the data intersection callback function (DataBufferSize) rather than being extracted from the current I/O stack location.

  • The data intersection callback function is passed a Context parameter (the same Context parameter passed to KsPinDataIntersectionEx).

  • The size of the resultant format is passed back in DataSize instead of Irp->IoStatus.Information.

These differences excepted, KsPinDataIntersection and KsPinDataIntersectionEx operate similarly.

Requirements

   
Target Platform Desktop
Header ks.h (include Ks.h)

See Also

KStrIntersectHandlerEx