KsRecalculateStackDepth 함수(ks.h)

KsRecalculateStackDepth 함수는 대상 디바이스를 설정한 모든 개체를 기반으로 기본 디바이스 개체에 필요한 최대 스택 깊이를 다시 계산합니다(KsSetTargetDeviceObject 함수를 사용하여 기본 디바이스 개체의 개체 목록에 추가됨). PnP 디바이스 개체가 KsSetDevicePnpAndBaseObject를 사용하여 기본 디바이스 헤더에 설정된 경우 최대 스택 깊이를 계산할 때 해당 디바이스도 고려됩니다.

구문

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

매개 변수

[in] Header

KsAllocateDeviceHeader에서 이전에 할당한 헤더를 가리킵니다.

[in] ReuseStackLocation

TRUE로 설정하면 IRP가 전달될 때 현재 스택 위치가 재사용됩니다. 즉, 이 개체는 IRP를 전달할 때 자체 스택 위치가 필요하지 않으며 추가 위치가 최대 스택 크기에 추가되지 않습니다. FALSE로 설정하면 계산된 스택 크기가 1씩 증가합니다. Pnp 개체 스택이 설정되면 재사용 매개 변수도 해당 스택에 적용됩니다. KsDefaultDispatchPnp는 항상 현재 스택 위치를 다시 사용합니다. 최소 스택 깊이는 1입니다.

반환 값

없음

설명

KsRecalculateStackDepth 함수는 KsSetDevicePnpAndBaseObject가 이 디바이스 헤더에서 호출되었으며 스택 깊이를 다시 계산할 기본 개체를 할당했다고 가정합니다.

이 함수를 사용하면 이 디바이스에 할당된 모든 IRP에 전달될 수 있는 충분한 스택 위치가 있는지 확인하여 개체를 통해 IRP를 전달할 수 있습니다. 디바이스가 중지 상태에서 전환될 때 스트리밍 디바이스에서 스택 깊이를 다시 계산해야 합니다. 리소스를 절약하기 위해 개체가 해제될 때 다시 계산할 수도 있습니다.

요구 사항

요구 사항
대상 플랫폼 유니버설
헤더 ks.h(Ks.h 포함)
라이브러리 Ks.lib

추가 정보

KsAllocateDeviceHeader

KsDefaultDispatchPnp

KsSetDevicePnpAndBaseObject

KsSetTargetDeviceObject