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 |