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 la funzione di callback KStrIntersectHandlerEx facoltativa definita dal minidriver 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.
Commenti
KsPinDataIntersectionEx è molto simile a KsPinDataIntersection, ad eccezione di alcune delle piccole differenze seguenti:
- In KsPinDataIntersectionEx vengono passate le dimensioni del descrittore, una funzionalità che consente descrittori estesi.
- La funzione di callback di intersezione dei dati viene creata in modo diverso nella versione estesa (Callback NTSTATUS (Context, Irp, Pin, DataRange, MatchingDataRange, DataBufferSize, DataSize)) rispetto a KsPinDataIntersection (Callback NTSTATUS (Irp, Pin, DataRange, Data)).
- La lunghezza del buffer di output (Dati) viene passata come parametro alla funzione di callback di intersezione dei dati (DataBufferSize) anziché essere estratta dalla posizione dello stack di I/O corrente.
- La funzione di callback di intersezione dei dati viene passata a un parametro Context (lo stesso parametro Context passato a KsPinDataIntersectionEx).
- Le dimensioni del formato risultante vengono passate di nuovo in DataSize anziché Irp->IoStatus.Information.
Requisiti
Requisito | Valore |
---|---|
Piattaforma di destinazione | Desktop |
Intestazione | ks.h (include Ks.h) |