Função KsRecalculateStackDepth (ks.h)

A função KsRecalculateStackDepth recalcula a profundidade máxima de pilha exigida pelo objeto de dispositivo subjacente com base em todos os objetos que definiram um dispositivo de destino (eles se adicionaram à lista de objetos no objeto de dispositivo subjacente usando a função KsSetTargetDeviceObject ). Se o objeto de dispositivo PnP tiver sido definido no cabeçalho do dispositivo subjacente usando KsSetDevicePnpAndBaseObject, esse dispositivo também será levado em conta ao calcular a profundidade máxima da pilha.

Sintaxe

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

Parâmetros

[in] Header

Aponta para um cabeçalho alocado anteriormente por KsAllocateDeviceHeader.

[in] ReuseStackLocation

Se isso estiver definido como TRUE, o local da pilha atual será reutilizado quando qualquer IRP for encaminhado. Isso significa que esse objeto não requer seu próprio local de pilha ao encaminhar IRPs e um local extra não é adicionado ao tamanho máximo da pilha. Se definido como FALSE, o tamanho da pilha calculada será incrementado por um. Se a pilha de objetos Pnp estiver definida, o parâmetro de reutilização também se aplicará a essa pilha. Observe que KsDefaultDispatchPnp sempre reutiliza o local da pilha atual. A profundidade mínima da pilha é 1.

Retornar valor

Nenhum

Comentários

A função KsRecalculateStackDepth pressupõe que KsSetDevicePnpAndBaseObject foi chamado neste cabeçalho de dispositivo e atribuiu um objeto base cuja profundidade de pilha deve ser recalculada.

Essa função permite que os IRPs sejam encaminhados por meio de um objeto, garantindo que qualquer IRP alocado neste dispositivo tenha locais de pilha suficientes para permitir que ele seja encaminhado. A profundidade da pilha deve ser recalculada em um dispositivo de streaming quando o dispositivo faz a transição para fora de um estado Stop. Ele também pode ser recalculado quando um objeto é liberado para conservar recursos.

Requisitos

Requisito Valor
Plataforma de Destino Universal
Cabeçalho ks.h (inclua Ks.h)
Biblioteca Ks.lib

Confira também

KsAllocateDeviceHeader

KsDefaultDispatchPnp

KsSetDevicePnpAndBaseObject

KsSetTargetDeviceObject