Condividi tramite


Funzione KsPinDataIntersectionEx (ks.h)

La funzione KsPinDataIntersectionEx gestisce il KSPROPERTY_PIN_DATAINTERSECTION tramite una funzione di callback.

Sintassi

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

Parametri

[in] Irp

Specifica l'IRP che descrive la richiesta di proprietà.

[in] Pin

Specifica la proprietà specifica su cui viene eseguita una query.

[out] Data

Specifica i dati specifici della proprietà pin.

[in] DescriptorsCount

Specifica il numero di strutture del descrittore.

[in] Descriptor

Specifica il puntatore all'elenco di strutture di informazioni di aggiunta.

[in] DescriptorSize

Dimensioni delle strutture del descrittore, in byte.

[in, optional] IntersectHandler

Contiene il minidriver facoltativo definito KStrIntersectHandlerEx funzione di callback per confrontare gli intervalli di dati.

[in, optional] HandlerContext

Contesto facoltativo fornito al gestore.

Valore restituito

Restituisce STATUS_SUCCESS; in caso contrario, un errore specifico della proprietà gestita.

Osservazioni

KsPinDataIntersectionEx è molto simile a KsPinDataIntersection, ad eccezione di alcune delle lievi differenze seguenti:

  • In KsPinDataIntersectionExviene passata la dimensione del descrittore, una funzionalità che consente descrittori estesi.
  • La funzione di callback di intersezione dati viene creata in modo diverso nella versione estesa (callback NTSTATUS (Context, Irp, Pin, DataRange, MatchingDataRange, DataBufferSize, Data, DataSize)) rispetto a KsPinDataIntersection (callback NTSTATUS (Irp, Pin, DataRange, Data)).
  • La lunghezza del buffer di output (Data) viene passata come parametro alla funzione di callback di intersezione dati (DataBufferSize) anziché essere estratta dal percorso dello stack di I/O corrente.
  • Alla funzione di callback di intersezione dei dati viene passato un parametro di Context (lo stesso parametro Context passato a KsPinDataIntersectionEx).
  • Le dimensioni del formato risultante vengono restituite in DataSize invece di Irp->IoStatus.Information.
Queste differenze, ad eccezione KsPinDataIntersection e KsPinDataIntersectionEx funzionano in modo analogo.

Fabbisogno

Requisito Valore
piattaforma di destinazione Desktop
intestazione ks.h (include Ks.h)

Vedere anche

KStrIntersectHandlerEx