Функция KsPinDataIntersectionEx (ks.h)

Функция KsPinDataIntersectionEx обрабатывает KSPROPERTY_PIN_DATAINTERSECTION с помощью функции обратного вызова.

Синтаксис

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
);

Параметры

[in] Irp

Указывает IRP, описывающий запрос свойства.

[in] Pin

Указывает конкретное свойство, к которому выполняется запрос.

[out] Data

Указывает данные, относящиеся к свойству pin.

[in] DescriptorsCount

Указывает количество структур дескриптора.

[in] Descriptor

Указывает указатель на список информационных структур закрепления.

[in] DescriptorSize

Размер структур дескриптора в байтах.

[in, optional] IntersectHandler

Содержит необязательную функцию обратного вызова KStrIntersectHandlerEx , определяемую мини-driver, для сравнения диапазонов данных.

[in, optional] HandlerContext

Необязательный контекст, предоставляемый обработчику.

Возвращаемое значение

Возвращает STATUS_SUCCESS; в противном случае — ошибка, связанная с обрабатываемым свойством.

Комментарии

KsPinDataIntersectionEx очень похож на KsPinDataIntersection, за исключением некоторых из следующих незначительных различий:

  • В KsPinDataIntersectionEx передается размер дескриптора, который позволяет использовать расширенные дескрипторы.
  • Функция обратного вызова пересечения данных в расширенной версии (обратный вызов NTSTATUS (context, Irp, Pin, DataRange, MatchingDataRange, DataBufferSize, Data, DataSize)) и KsPinDataIntersection (NTSTATUS Callback (Irp, Pin, DataRange, DataRange, Data)).
  • Длина выходного буфера (Данные) передается в качестве параметра в функцию обратного вызова пересечения данных (DataBufferSize), а не извлекается из текущего расположения стека ввода-вывода.
  • Функции обратного вызова пересечения данных передается параметр Context (тот же параметр Context , который передается в KsPinDataIntersectionEx).
  • Размер результирующих форматов передается обратно в DataSize вместо Irp->IoStatus.Information.
За исключением этих различий, KsPinDataIntersection и KsPinDataIntersectionEx работают аналогичным образом.

Требования

Требование Значение
Целевая платформа Персональный компьютер
Верхняя часть ks.h (включая Ks.h)

См. также раздел

KStrIntersectHandlerEx