Fungsi panggilan balik PFNKSPINIRP (ks.h)
Rutinitas minidriver AVStream dipanggil ketika aktivitas pada pin dilakukan dan menerima IRP ini:
Sintaks
PFNKSPINIRP Pfnkspinirp;
NTSTATUS Pfnkspinirp(
[in] PKSPIN Pin,
[in] PIRP Irp
)
{...}
Parameter
[in] Pin
Arahkan ke KSPIN yang baru saja dibuat.
[in] Irp
Arahkan ke IRP untuk Pin.
Mengembalikan nilai
Jika rutinitas berhasil, operasi dijamin berhasil. Mengembalikan STATUS_SUCCESS atau STATUS_PENDING.
Keterangan
IRP | Deskripsi |
---|---|
IRP_MJ_CREATE | Biasanya, rutinitas ini digunakan oleh minidriver yang ingin menginisialisasi konteks dan sumber daya yang terkait dengan pin. Minidriver menentukan alamat rutin ini dalam buat anggota struktur KSPIN_DISPATCH-nya . Rutinitas ini dipanggil ketika pin dibuat. Pada titik di mana rutinitas ini dipanggil, objek file memiliki konteks terkait, dan header objek KS telah dialokasikan. Biasanya, fungsi ini akan disediakan oleh minidriver yang ingin menginisialisasi konteks dan sumber daya yang terkait dengan pin. Mutex kontrol filter ditahan saat berada dalam fungsi ini. Fungsi ini akan dipanggil di IRQL = PASSIVE_LEVEL. Rutinitas ini bersifat opsional. Jika rutinitas berhasil, operasi buat dijamin berhasil. Mengembalikan STATUS_SUCCESS atau STATUS_PENDING. Jika minidriver mengembalikan STATUS_PENDING, AVStream tidak akan segera menyelesaikan IRP_MJ_CREATE . Namun, sebelum mengembalikan STATUS_PENDING, minidriver harus memanggil IoMarkIrpPending. Setelah pemrosesan pembuatan selesai, minidriver harus mengatur kode status IRP lalu memanggil KsCompletePendingRequest. |
IRP_MJ_CLOSE | Minidriver menentukan alamat rutin ini dalam anggota Tutup dari struktur KSPIN_DISPATCH-nya . Pada titik di mana rutinitas dipanggil, setiap peristiwa terdaftar pada pin telah dikosongkan, tetapi objek tersebut utuh. Mutex kontrol filter ditahan saat berada dalam fungsi ini. Untuk informasi selengkapnya tentang mutex, silakan lihat Mutex di AVStream. Rutinitas ini bersifat opsional. |
Persyaratan
Persyaratan | Nilai |
---|---|
Target Platform | Desktop |
Header | ks.h (termasuk Ks.h) |
IRQL | PASSIVE_LEVEL (Lihat bagian Keterangan) |