Partager via


KsPinDataIntersectionEx, fonction (ks.h)

La fonction KsPinDataIntersectionEx gère les 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 en cours d’interrogation.

[out] Data

Spécifie les données spécifiques à la propriété de broche.

[in] DescriptorsCount

Spécifie le nombre de structures de descripteur.

[in] Descriptor

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

[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 retournée

Retourne STATUS_SUCCESS ; sinon, une erreur spécifique à la propriété en cours de traitement.

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 (NTSTATUS Callback (Context, Irp, Pin, DataRange, MatchingDataRange, DataBufferSize, Data, DataSize)) et KsPinDataIntersection (NTSTATUS Callback (Irp, Pin, DataRange, Data)).
  • La longueur de la mémoire tampon de sortie (Données) est passée en tant que paramètre à la fonction de rappel d’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 reçoit 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 d’Irp->IoStatus.Information.
Ces différences exceptées, KsPinDataIntersection et KsPinDataIntersectionEx fonctionnent de la même manière.

Configuration requise

Condition requise Valeur
Plateforme cible Desktop (Expérience utilisateur)
En-tête ks.h (inclure Ks.h)

Voir aussi

KStrIntersectHandlerEx