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 |