Partager via


KsPinDataIntersectionEx, fonction (ks.h)

La fonction KsPinDataIntersectionEx gère le KSPROPERTY_PIN_DATAINTERSECTION via une fonction de rappel.

Syntaxe

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

Paramètres

[in] Irp

Spécifie l’IRP qui décrit la demande de propriété.

[in] Pin

Spécifie la propriété spécifique interrogée.

[out] Data

Spécifie les données spécifiques à la propriété d’épingle.

[in] DescriptorsCount

Spécifie le nombre de structures de descripteur.

[in] Descriptor

Spécifie le pointeur vers la liste des structures d’informations d’épingle.

[in] DescriptorSize

Taille des structures de descripteur, en octets.

[in, optional] IntersectHandler

Contient la fonction de rappel KStrIntersectHandlerEx définie par minidriver facultative pour comparer les plages de données.

[in, optional] HandlerContext

Contexte facultatif fourni au gestionnaire.

Valeur de retour

Retourne STATUS_SUCCESS ; sinon, une erreur spécifique à la propriété gérée.

Remarques

KsPinDataIntersectionEx est très similaire à KsPinDataIntersection, à l’exception de certaines des légères différences suivantes :

  • Dans KsPinDataIntersectionEx, la taille du descripteur est passée, une fonctionnalité qui autorise les descripteurs étendus.
  • La fonction de rappel d’intersection de données est prototype différemment dans la version étendue (rappel NTSTATUS (Context, Irp, Pin, DataRange, MatchingDataRange, DataBufferSize, Data, DataSize)) et KsPinDataIntersection (rappel NTSTATUS (Irp, Épingler, DataRange, Data)).
  • La longueur de la mémoire tampon de sortie (Data) est passée en tant que paramètre à la fonction de rappel de l’intersection de données (DataBufferSize) au lieu d’être extraite de l’emplacement actuel de la pile d’E/S.
  • La fonction de rappel d’intersection de données est passée à un paramètre context (le même paramètre Context passé à KsPinDataIntersectionEx).
  • La taille du format résultant est renvoyée dans DataSize au lieu de Irp ->IoStatus.Information.
Ces différences sont à l’exception de KsPinDataIntersection et KsPinDataIntersectionEx fonctionner de la même façon.

Exigences

Exigence Valeur
plateforme cible Bureau
d’en-tête ks.h (include Ks.h)

Voir aussi

KStrIntersectHandlerEx