다음을 통해 공유


KsRecalculateStackDepth 함수(ks.h)

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

통사론

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