Freigeben über


KsRecalculateStackDepth-Funktion (ks.h)

Die KsRecalculateStackDepth--Funktion berechnet die für das zugrunde liegende Geräteobjekt erforderliche maximale Stapeltiefe basierend auf allen Objekten, die ein Zielgerät festgelegt haben (sie haben sich der Objektliste des zugrunde liegenden Geräteobjekts mithilfe des KsSetTargetDeviceObject-Funktion hinzugefügt). Wenn das PnP-Geräteobjekt für den zugrunde liegenden Geräteheader mit KsSetDevicePnpAndBaseObjectfestgelegt 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

Verweist auf eine Kopfzeile, die zuvor von KsAllocateDeviceHeaderzugewiesen wurde.

[in] ReuseStackLocation

Wenn dies auf TRUEfestgelegt ist, wird die aktuelle Stapelposition wiederverwendet, wenn IRP weitergeleitet wird. Dies bedeutet, dass für dieses Objekt keine eigene Stapelposition erforderlich ist, wenn IRPs weitergeleitet werden und keine zusätzliche Position zur maximalen Stapelgröße hinzugefügt wird. Wenn dieser Wert auf FALSEfestgelegt 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 die aktuelle Stapelposition wiederverwendet. Die mindeste Stapeltiefe beträgt 1.

Rückgabewert

Nichts

Bemerkungen

Die KsRecalculateStackDepth--Funktion geht davon aus, dass KsSetDevicePnpAndBaseObject- für diesen Geräteheader aufgerufen wurde und einem Basisobjekt zugewiesen wurde, 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 ausreichende Stapelpositionen verfügen, damit sie weitergeleitet werden können. Die Stapeltiefe muss auf einem Streaminggerät neu berechnet werden, wenn das Gerät aus einem Stop-Zustand wechselt. Sie kann auch neu berechnet werden, wenn ein Objekt freigegeben wird, um Ressourcen zu sparen.

Anforderungen

Anforderung Wert
Zielplattform- Universal
Header- ks.h (enthalten Ks.h)
Library Ks.lib

Siehe auch

KsAllocateDeviceHeader

KsDefaultDispatchPnp

KsSetDevicePnpAndBaseObject

KsSetTargetDeviceObject