Función KsPinDataIntersectionEx (ks.h)

La función KsPinDataIntersectionEx controla el KSPROPERTY_PIN_DATAINTERSECTION a través de una función de devolución de llamada.

Sintaxis

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

Parámetros

[in] Irp

Especifica el IRP que describe la solicitud de propiedad.

[in] Pin

Especifica la propiedad específica que se está consultando.

[out] Data

Especifica los datos específicos de la propiedad pin.

[in] DescriptorsCount

Especifica el número de estructuras de descriptor.

[in] Descriptor

Especifica el puntero a la lista de estructuras de información de anclaje.

[in] DescriptorSize

Tamaño de las estructuras de descriptor, en bytes.

[in, optional] IntersectHandler

Contiene la función de devolución de llamada KStrIntersectHandlerEx definida por el minidriver opcional para comparar los intervalos de datos.

[in, optional] HandlerContext

Contexto opcional que se proporciona al controlador.

Valor devuelto

Devuelve STATUS_SUCCESS; de lo contrario, se trata de un error específico de la propiedad que se está controlando.

Comentarios

KsPinDataIntersectionEx es muy similar a KsPinDataIntersection, excepto algunas de las siguientes pequeñas diferencias:

  • En KsPinDataIntersectionEx, se pasa el tamaño del descriptor, una característica que permite descriptores extendidos.
  • La función de devolución de llamada de intersección de datos se crea de forma diferente en la versión extendida (devolución de llamada NTSTATUS (Context, Irp, Pin, DataRange, MatchingDataRange, DataBufferSize, Data, DataSize)) frente a KsPinDataIntersection (Devolución de llamada NTSTATUS (Irp, Pin, DataRange, Data)).
  • La longitud del búfer de salida (Datos) se pasa como parámetro a la función de devolución de llamada de intersección de datos (DataBufferSize) en lugar de extraerse de la ubicación de pila de E/S actual.
  • La función de devolución de llamada de intersección de datos se pasa a un parámetro Context (el mismo parámetro Context pasado a KsPinDataIntersectionEx).
  • El tamaño del formato resultante se devuelve en DataSize en lugar de Irp->IoStatus.Information.
Estas diferencias excepto KsPinDataIntersection y KsPinDataIntersectionEx funcionan de forma similar.

Requisitos

Requisito Value
Plataforma de destino Escritorio
Encabezado ks.h (incluya Ks.h)

Consulte también

KStrIntersectHandlerEx