KsPinDataIntersection function (ks.h)

The KsPinDataIntersection function handles the KSPROPERTY_PIN_DATAINTERSECTION property through a callback function and performs much of the initial validation of the parameters that are passed. KsPinDataIntersection calls the minidriver-defined KStrIntersectHandler callback function with each potential data range after matching it to the list of data ranges assigned to that pin factory.

Syntax

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

Parameters

[in] Irp

Specifies the IRP that describes the property request.

[in] Pin

Specifies the specific property that is being queried.

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

Specifies the minidriver-defined KStrIntersectHandler callback function to compare a data range.

Return value

The KsPinDataIntersection function returns STATUS_SUCCESS if a matching range is found, STATUS_NO_MATCH if no matching range was found, or an error specific to the property being handled. The minidriver-defined KStrIntersectHandler intersection handler provided to KsPinDataIntersection is called with each data range supplied by the caller until either a match is found or an error occurs.

Note that the minidriver-defined KStrIntersectHandler callback function has its own set of return values.

Remarks

A match can occur under three conditions: if the major format of the range passed is a wildcard or matches a pin factory range, if the subformat is a wildcard or matches, and if the specifier is a wildcard or matches. Since the data range size may be variable, it is not validated beyond checking that it is at least the size of a KSDATARANGE structure.

Requirements

Requirement Value
Target Platform Universal
Header ks.h (include Ks.h)
Library Ks.lib

See also

KSDATARANGE

KStrIntersectHandler