KsRecalculateStackDepth-Funktion (ks.h)
Die KsRecalculateStackDepth-Funktion berechnet die maximale Stapeltiefe des zugrunde liegenden Geräteobjekts basierend auf allen Objekten, die ein Zielgerät festgelegt haben (sie haben sich mithilfe der KsSetTargetDeviceObject-Funktion der Objektliste des zugrunde liegenden Geräteobjekts hinzugefügt). Wenn das PnP-Geräteobjekt für den zugrunde liegenden Geräteheader mithilfe von KsSetDevicePnpAndBaseObject festgelegt wurde, wird dieses Gerät auch bei der Berechnung der maximalen Stapeltiefe berücksichtigt.
Syntax
KSDDKAPI VOID KsRecalculateStackDepth(
[in] KSDEVICE_HEADER Header,
[in] BOOLEAN ReuseStackLocation
);
Parameter
[in] Header
Zeigt auf einen Header, der zuvor von KsAllocateDeviceHeader zugewiesen wurde.
[in] ReuseStackLocation
Wenn dies auf TRUE festgelegt ist, wird der aktuelle Stapelspeicherort wiederverwendet, wenn ein IRP weitergeleitet wird. Dies bedeutet, dass für dieses Objekt beim Weiterleiten von IRPs kein eigener Stapelspeicherort erforderlich ist und der maximalen Stapelgröße kein zusätzlicher Speicherort hinzugefügt wird. Wenn auf FALSE festgelegt ist, wird die berechnete Stapelgröße um eins erhöht. Wenn der Pnp-Objektstapel festgelegt ist, gilt der Wiederverwendungsparameter auch für diesen Stapel. Beachten Sie, dass KsDefaultDispatchPnp immer den aktuellen Stapelspeicherort wiederverwendet. Die minimale Stapeltiefe ist 1.
Rückgabewert
Keine
Bemerkungen
Die KsRecalculateStackDepth-Funktion geht davon aus, dass KsSetDevicePnpAndBaseObject für diesen Geräteheader aufgerufen wurde und ein Basisobjekt zugewiesen hat, dessen Stapeltiefe neu berechnet werden soll.
Mit dieser Funktion können IRPs über ein Objekt weitergeleitet werden, indem sichergestellt wird, dass alle auf diesem Gerät zugewiesenen IRP über genügend Stapelspeicherplätze verfügen, um die Weiterleitung zu ermöglichen. Die Stapeltiefe muss auf einem Streaminggerät neu berechnet werden, wenn das Gerät aus dem Status "Beenden" wechselt. Es kann auch neu berechnet werden, wenn ein Objekt freigegeben wird, um Ressourcen zu sparen.
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform | Universell |
Header | ks.h (einschließlich Ks.h) |
Bibliothek | Ks.lib |