Condividi tramite


Funzione KsPropertyHandler (ks.h)

I driver chiamano la funzione KsPropertyHandler per la gestione di IRP.

Sintassi

KSDDKAPI NTSTATUS KsPropertyHandler(
  [in] PIRP                 Irp,
  [in] ULONG                PropertySetsCount,
  [in] const KSPROPERTY_SET *PropertySet
);

Parametri

[in] Irp

Specifica l'IRP con la richiesta di proprietà da gestire.

[in] PropertySetsCount

Specifica il numero di set di proprietà passati.

[in] PropertySet

Punta a una matrice di strutture KSPROPERTY_SET . Il driver deve fornire una struttura per ogni set di proprietà che vuole gestire KsPropertyHandler.

Valore restituito

La funzione KsPropertyHandler restituisce STATUS_SUCCESS in caso di esito positivo o un errore specifico per la proprietà gestita in caso di esito negativo. La funzione imposta il IO_STATUS_BLOCK IRP>. Membro informativo, tramite l'impostazione su zero a causa di un errore interno o tramite un gestore di proprietà impostandolo. La funzione non imposta il membro lrp-IoStatus.Status> né completa l'IRP.

Commenti

KsPropertyHandler risponde a tutti gli identificatori di proprietà definiti dai set e può essere chiamato solo in PASSIVE_LEVEL.

Ogni voce KSPROPERTY_SET contiene un puntatore a una matrice di strutture KSPROPERTY_ITEM nel membro PropertyItem. Per l'elaborazione specifica del driver, KsPropertyHandler distribuisce ogni richiesta a uno dei callback forniti dal driver all'interno di PropertyItem. KsPropertyHandler si occupa di qualsiasi elaborazione IRP necessaria.

KsPropertyHandler non usa il membro FastIoTable della struttura KSPROPERTY_SET . Se il driver deve supportare la gestione rapida delle richieste di I/O, la stessa struttura di KSPROPERTY_SET deve essere passata alla routine KsFastPropertyHandler.

Il proprietario dei set di proprietà può eseguire il prefiltering o il postfiltering della gestione delle proprietà. Le eccezioni di accesso alla struttura delle proprietà di base vengono gestite dalla funzione KsPropertyHandler , anche se la pulizia per eccezioni specifiche deve essere coperta dal gestore della proprietà.

KsPropertyHandler inserisce un puntatore alla struttura KSPROPERTY_SET pertinente nel parametro Irp-Tail.Overlay.DriverContext> in IRP. Il minidriver può usare la macro KSPROPERTY_SET_IRP_STORAGE, definita in ks.h, per accedere a questo puntatore.

Requisiti

Requisito Valore
Piattaforma di destinazione Universale
Intestazione ks.h (include Ks.h)
Libreria Ks.lib

Vedi anche

KsFastPropertyHandler

KsPropertyHandlerWithAllocator