KsPropertyHandler, fonction (ks.h)
Les pilotes appellent fonction KsPropertyHandler pour la gestion IRP.
Syntaxe
KSDDKAPI NTSTATUS KsPropertyHandler(
[in] PIRP Irp,
[in] ULONG PropertySetsCount,
[in] const KSPROPERTY_SET *PropertySet
);
Paramètres
[in] Irp
Spécifie l’IRP avec la requête de propriété gérée.
[in] PropertySetsCount
Spécifie le nombre de jeux de propriétés passés.
[in] PropertySet
Pointe vers un tableau de structures KSPROPERTY_SET. Le pilote doit fournir une structure pour chaque jeu de propriétés qu’il souhaite que KsPropertyHandler gère.
Valeur de retour
La fonction KsPropertyHandler retourne STATUS_SUCCESS en cas de réussite, ou une erreur spécifique à la propriété gérée en cas d’échec. La fonction définit le IRP->IO_STATUS_BLOCK. Membre d’informations, soit en le définissant sur zéro en raison d’une erreur interne, soit par le biais d’un gestionnaire de propriétés qui le définit. La fonction ne définit pas le membre lrp->IoStatus.Status ni ne termine l’IRP.
Remarques
KsPropertyHandler répond à tous les identificateurs de propriété définis par les jeux et ne peut être appelé qu’à PASSIVE_LEVEL.
Chaque entrée KSPROPERTY_SET contient un pointeur vers un tableau de structures KSPROPERTY_ITEM dans son membre PropertyItem. Pour un traitement spécifique au pilote, KsPropertyHandler remet chaque requête à l’un des rappels fournis par le pilote dans PropertyItem. KsPropertyHandler s’occupe de tout traitement IRP requis.
KsPropertyHandler n’utilise pas le membre FastIoTable de sa structure KSPROPERTY_SET. Si le pilote doit prendre en charge la gestion rapide des E/S des requêtes, la même structure KSPROPERTY_SET doit être passée à la routine KsFastPropertyHandler.
Le propriétaire des jeux de propriétés peut effectuer un préfiltrage ou une post-filtrage de la gestion des propriétés. Les exceptions d’accès à la structure de propriété de base sont gérées par la fonction KsPropertyHandler , même si le nettoyage pour des exceptions spécifiques doit être couvert par le gestionnaire de propriétés.
KsPropertyHandler place un pointeur vers la structure de KSPROPERTY_SET appropriée dans le paramètre Irp->Tail.Overlay.DriverContext dans l’IRP. Le minidriver peut utiliser la macro KSPROPERTY_SET_IRP_STORAGE, définie dans ks.h, pour accéder à ce pointeur.
Exigences
Exigence | Valeur |
---|---|
plateforme cible | Universel |
d’en-tête | ks.h (include Ks.h) |
bibliothèque | Ks.lib |