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.
Requirements
Requirement | Value |
---|---|
Target Platform | Desktop |
Header | ks.h (include Ks.h) |