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 |