Fungsi panggilan balik PFNKSPINSETDEVICESTATE (ks.h)

Rutinitas AVStrMiniPinSetDeviceState AVStream minidriver dipanggil ketika status struktur KSPIN diubah karena kedatangan properti status koneksi 'set' IOCTL. Biasanya, ini akan disediakan oleh minidriver yang perlu mengubah status perangkat keras.

Sintaks

PFNKSPINSETDEVICESTATE Pfnkspinsetdevicestate;

NTSTATUS Pfnkspinsetdevicestate(
  [in] PKSPIN Pin,
  [in] KSSTATE ToState,
  [in] KSSTATE FromState
)
{...}

Parameter

[in] Pin

Penunjuk ke struktur KSPIN yang statusnya berubah.

[in] ToState

Target KSSTATE setelah penerimaan IOCTL.

[in] FromState

KSSTATE sebelumnya.

Nilai kembali

Mengembalikan STATUS_SUCCESS atau kode kesalahan yang dikembalikan dari upaya untuk mengatur status. Jangan kembali STATUS_PENDING. Mutex kontrol filter ditahan selama fungsi ini. Lihat Filter Control Mutex di AVStream.

Keterangan

Minidriver menentukan alamat rutin ini di anggota SetDeviceState dari struktur KSPIN_DISPATCH-nya .

Minidriver tidak akan menerima pemberhentian pada koneksi awal pin.

Pin yang menggunakan mekanisme transportasi standar (antarmuka standar/sedang standar atau penggunaan eksplisit KSPIN_FLAG_USE_STANDARD_TRANSPORT dalam KSPIN_DESCRIPTOR_EX) menerima perubahan status yang difilter melalui pipa pemilik melalui rutinitas ini. Ini berarti bahwa tidak ada transisi yang lebih dari satu langkah. Dengan kata lain, KSSTATE_STOP transisi ke KSSTATE_ACQUIRE, KSSTATE_ACQUIRE transisi ke KSSTATE_PAUSE, dan sebagainya. Selain itu, perubahan status yang diterima dalam rutinitas ini mewakili status pipa secara keseluruhan, bukan status individu pin seperti yang dilaporkan dalam anggota DeviceState dari struktur KSPIN.

Pin yang tidak menggunakan mekanisme transportasi standar (antarmuka nonstandar, sedang nonstandar, atau penggunaan eksplisit KSPIN_FLAG_DO_NOT_USE_STANDARD_TRANSPORT dalam KSPIN_DESCRIPTOR_EX) menerima perubahan status yang tidak difilter melalui rutinitas ini. Dengan demikian, pin transportasi nonstandar harus siap untuk menangani perubahan status yang melompat lebih dari satu langkah. Sebagai contoh, pertimbangkan lompatan dari KSSTATE_RUN ke KSSTATE_STOP tanpa KSSTATE_PAUSE intervensi. Selain itu, status yang dilaporkan ke rutinitas ini akan identik dengan status yang dilaporkan dalam anggota DeviceState dari struktur KSPIN yang relevan.

Rutinitas ini bersifat opsional.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Tersedia di Microsoft Windows XP dan sistem operasi yang lebih baru serta DirectX 8.0 dan versi DirectX yang lebih baru.
Target Platform Desktop
Header ks.h (termasuk Ks.h)
IRQL PASSIVE_LEVEL

Lihat juga

KSPIN_DISPATCH