Fungsi KsRecalculateStackDepth (ks.h)

Fungsi KsRecalculateStackDepth menghitung ulang kedalaman tumpukan maksimum yang diperlukan oleh objek perangkat dasar berdasarkan semua objek yang telah menetapkan perangkat target (mereka telah menambahkan diri mereka ke daftar objek pada objek perangkat yang mendasar menggunakan fungsi KsSetTargetDeviceObject ). Jika objek perangkat PnP telah diatur pada header perangkat yang mendasar menggunakan KsSetDevicePnpAndBaseObject, perangkat tersebut juga diperkirakan saat menghitung kedalaman tumpukan maksimum.

Sintaks

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

Parameter

[in] Header

Menunjuk ke header yang sebelumnya dialokasikan oleh KsAllocateDeviceHeader.

[in] ReuseStackLocation

Jika ini diatur ke TRUE, lokasi tumpukan saat ini digunakan kembali ketika IRP diteruskan. Ini berarti bahwa objek ini tidak memerlukan lokasi tumpukannya sendiri saat meneruskan IRP dan lokasi tambahan tidak ditambahkan ke ukuran tumpukan maksimum. Jika diatur ke FALSE, ukuran tumpukan terhitung bertambah satu. Jika tumpukan objek Pnp diatur, parameter penggunaan kembali juga berlaku untuk tumpukan tersebut. Perhatikan bahwa KsDefaultDispatchPnp selalu menggunakan kembali lokasi tumpukan saat ini. Kedalaman tumpukan minimum adalah 1.

Nilai kembali

Tidak ada

Keterangan

Fungsi KsRecalculateStackDepth mengasumsikan bahwa KsSetDevicePnpAndBaseObject telah dipanggil pada header perangkat ini dan telah menetapkan objek dasar yang kedalaman tumpukannya akan dihitung ulang.

Fungsi ini memungkinkan runtime integrasi untuk diteruskan melalui objek dengan memastikan bahwa setiap IRP yang dialokasikan pada perangkat ini akan memiliki lokasi tumpukan yang memadai untuk memungkinkannya diteruskan. Kedalaman tumpukan harus dihitung ulang pada perangkat streaming saat perangkat beralih dari status Berhenti. Ini juga dapat dihitung ulang ketika objek dikosongkan untuk menghemat sumber daya.

Persyaratan

Persyaratan Nilai
Target Platform Universal
Header ks.h (termasuk Ks.h)
Pustaka Ks.lib

Lihat juga

KsAllocateDeviceHeader

KsDefaultDispatchPnp

KsSetDevicePnpAndBaseObject

KsSetTargetDeviceObject