Partager via


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 d’appareil sous-jacent à l’aide de la fonction KsSetTargetDeviceObject ). Si l’objet d’appareil PnP a été défini sur l’en-tête de l’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

S’il est défini sur TRUE, l’emplacement de la pile actuel est réutilisé quand un IRP est transféré. Cela signifie que cet objet n’a pas besoin de son propre emplacement de pile lors du transfert des IRPs et qu’aucun emplacement supplémentaire n’est 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

None

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 via un objet en veillant à ce que tous les IRP alloués sur cet appareil disposent d’emplacements de pile suffisants pour permettre son transfert. La profondeur de la pile doit être recalculée sur un appareil de diffusion en continu lorsque l’appareil sort de l’état Stop. Il peut également être recalculé lorsqu’un objet est libéré afin d’économiser des ressources.

Configuration requise

Condition requise Valeur
Plateforme cible Universal
En-tête ks.h (inclure Ks.h)
Bibliothèque Ks.lib

Voir aussi

KsAllocateDeviceHeader

KsDefaultDispatchPnp

KsSetDevicePnpAndBaseObject

KsSetTargetDeviceObject