KsRecalculateStackDepth, fonction (ks.h)
La fonction KsRecalculateStackDepth recalcule la profondeur de pile maximale requise par l’objet d’appareil sous-jacent en fonction de tous les objets qui ont défini un appareil cible (ils se sont ajoutés à la liste d’objets sur l’objet appareil sous-jacent à l’aide de la fonction KsSetTargetDeviceObject). Si l’objet d’appareil PnP a été défini sur l’en-tête d’appareil sous-jacent à l’aide de KsSetDevicePnpAndBaseObject, cet appareil est également pris en compte lors du calcul de la profondeur maximale de la pile.
Syntaxe
KSDDKAPI VOID KsRecalculateStackDepth(
[in] KSDEVICE_HEADER Header,
[in] BOOLEAN ReuseStackLocation
);
Paramètres
[in] Header
Pointe vers un en-tête précédemment alloué par KsAllocateDeviceHeader.
[in] ReuseStackLocation
Si cette valeur est définie sur TRUE, l’emplacement actuel de la pile est réutilisé lorsqu’un IRP est transféré. Cela signifie que cet objet ne nécessite pas son propre emplacement de pile lors du transfert d’IRPs et qu’un emplacement supplémentaire n’est pas ajouté à la taille maximale de la pile. Si la valeur est FALSE, la taille de la pile calculée est incrémentée d’un. Si la pile d’objets Pnp est définie, le paramètre de réutilisation s’applique également à cette pile. Notez que KsDefaultDispatchPnp réutilise toujours l’emplacement actuel de la pile. La profondeur minimale de la pile est 1.
Valeur de retour
Aucun
Remarques
La fonction KsRecalculateStackDepth suppose que KsSetDevicePnpAndBaseObject a été appelé sur cet en-tête d’appareil et a affecté un objet de base dont la profondeur de pile doit être recalculée.
Cette fonction permet aux irps d’être transférés par le biais d’un objet en s’assurant que tout IRP alloué sur cet appareil aura suffisamment d’emplacements de pile pour lui permettre d’être transféré. La profondeur de pile doit être recalculée sur un appareil de diffusion en continu lorsque l’appareil passe à l’état Stop. Il peut également être recalculé lorsqu’un objet est libéré pour conserver les ressources.
Exigences
Exigence | Valeur |
---|---|
plateforme cible | Universel |
d’en-tête | ks.h (include Ks.h) |
bibliothèque | Ks.lib |