KsPinDataIntersectionEx function (ks.h)

The KsPinDataIntersectionEx function handles the KSPROPERTY_PIN_DATAINTERSECTION through a callback function.

Syntax

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

Parameters

[in] Irp

Specifies the IRP that describes the property request.

[in] Pin

Specifies the specific property that is being queried.

[out] Data

Specifies the pin property-specific data.

[in] DescriptorsCount

Specifies the number of descriptor structures.

[in] Descriptor

Specifies the pointer to the list of pin information structures.

[in] DescriptorSize

Size of the descriptor structures, in bytes.

[in, optional] IntersectHandler

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

[in, optional] 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

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

See also

KStrIntersectHandlerEx