Función KsRecalculateStackDepth (ks.h)

La función KsRecalculateStackDepth recalcula la profundidad máxima de pila requerida por el objeto de dispositivo subyacente en función de todos los objetos que han establecido un dispositivo de destino (se han agregado a sí mismos a la lista de objetos del objeto de dispositivo subyacente mediante la función KsSetTargetDeviceObject ). Si el objeto de dispositivo PnP se ha establecido en el encabezado del dispositivo subyacente mediante KsSetDevicePnpAndBaseObject, ese dispositivo también se tiene en cuenta al calcular la profundidad máxima de la pila.

Sintaxis

KSDDKAPI VOID KsRecalculateStackDepth(
  [in] KSDEVICE_HEADER Header,
  [in] BOOLEAN         ReuseStackLocation
);

Parámetros

[in] Header

Apunta a un encabezado asignado previamente por KsAllocateDeviceHeader.

[in] ReuseStackLocation

Si se establece en TRUE, la ubicación de pila actual se reutiliza cuando se reenvía cualquier IRP. Esto significa que este objeto no requiere su propia ubicación de pila al reenviar IRP y no se agrega una ubicación adicional al tamaño máximo de la pila. Si se establece en FALSE, el tamaño de pila calculado se incrementa en uno. Si se establece la pila de objetos Pnp, el parámetro de reutilización también se aplica a esa pila. Tenga en cuenta que KsDefaultDispatchPnp siempre reutiliza la ubicación de pila actual. La profundidad mínima de la pila es 1.

Valor devuelto

None

Observaciones

La función KsRecalculateStackDepth supone que se ha llamado a KsSetDevicePnpAndBaseObject en este encabezado de dispositivo y ha asignado un objeto base cuya profundidad de pila se va a recalcular.

Esta función permite que los IRP se reenvíen a través de un objeto asegurándose de que cualquier IRP asignado en este dispositivo tendrá suficientes ubicaciones de pila para permitir que se reenvíen. La profundidad de la pila debe volver a calcularse en un dispositivo de streaming cuando el dispositivo pasa de un estado Stop. También se puede volver a calcular cuando se libera un objeto para conservar los recursos.

Requisitos

Requisito Value
Plataforma de destino Universal
Encabezado ks.h (incluye Ks.h)
Library Ks.lib

Consulte también

KsAllocateDeviceHeader

KsDefaultDispatchPnp

KsSetDevicePnpAndBaseObject

KsSetTargetDeviceObject