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)

Lihat juga

IoMarkIrpPending

KSPIN_DISPATCH

KsCompletePendingRequest