Bagikan melalui


PVIDEO_HW_QUERY_INTERFACE fungsi panggilan balik (video.h)

HwVidQueryInterface mengembalikan antarmuka fungsi yang diimplementasikan driver miniport yang dapat dipanggil perangkat anak.

Sintaks

PVIDEO_HW_QUERY_INTERFACE PvideoHwQueryInterface;

VP_STATUS PvideoHwQueryInterface(
  PVOID HwDeviceExtension,
  PQUERY_INTERFACE QueryInterface
)
{...}

Parameter

HwDeviceExtension

Arahkan ke area penyimpanan per adaptor driver miniport. Untuk informasi selengkapnya, lihat Ekstensi Perangkat.

QueryInterface

Pointer ke struktur QUERY_INTERFACE di mana driver miniport harus mengembalikan informasi tentang antarmuka yang didukungnya.

Nilai kembali

HwVidQueryInterface harus mengembalikan NO_ERROR setelah berhasil; jika tidak, kode kesalahan harus mengembalikan kode kesalahan yang sesuai. Misalnya, driver miniport harus mengembalikan ERROR_OUTOFMEMORY jika tidak dapat mengalokasikan memori untuk menyelesaikan operasi.

Keterangan

HwVidQueryInterface memaparkan mekanisme komunikasi antara driver miniport video dan driver perangkat anak. Driver miniport yang mengekspos mekanisme seperti itu harus menerapkan fungsi ini.

Port video memanggil HwVidQueryInterface saat menerima permintaan IRP_MN_QUERY_INTERFACE. Jika driver miniport gagal dalam panggilan, driver port video meneruskan permintaan ke induk perangkat driver miniport.

HwVidQueryInterface harus mengisi anggota struktur INTERFACE tempat QueryInterface-Interface> menunjuk sebagai berikut:

  • Atur Ukuran ke jumlah byte dalam struktur ANTARMUKA. Nilai ini tidak boleh melebihi jumlah byte yang ditentukan oleh Ukuran QueryInterface->.
  • Atur Versi ke versi antarmuka yang dikembalikan oleh driver miniport. Driver miniport harus paling cocok dengan versi yang diminta oleh driver anak di QueryInterface->Version.
  • Atur Konteks untuk menunjuk ke konteks yang ditentukan driver miniport untuk antarmuka. Biasanya, driver miniport akan mengatur Konteks untuk menunjuk ke ekstensi perangkat yang diidentifikasi oleh HwDeviceExtension.
  • Inisialisasi InterfaceReference dan InterfaceDereference untuk menunjuk ke rutinitas referensi dan dereferensi yang diimplementasikan driver miniport untuk antarmuka ini.
  • Inisialisasi semua anggota khusus antarmuka tambahan untuk menunjuk ke rutinitas antarmuka yang sesuai yang diekspos.
Driver miniport yang mengembalikan antarmuka bertanggung jawab untuk mereferensikan antarmuka dengan memanggil QueryInterface->Interface.InterfaceReference. Driver anak yang meminta antarmuka bertanggung jawab untuk mendereferensikannya ketika driver tidak lagi memerlukan antarmuka dengan memanggil QueryInterface->Interface.InterfaceDereference. Jika driver anak meneruskan antarmuka ke komponen lain, anak bertanggung jawab untuk mengambil referensi lain, dan komponen lain bertanggung jawab untuk menghapus referensi tambahan ketika tidak lagi membutuhkan akses ke antarmuka. Referensi memungkinkan induk untuk menentukan kapan antarmuka masih diperlukan oleh perangkat anak, dan akibatnya ketika induk dapat membebaskan sumber daya terkait antarmuka apa pun.

Driver perangkat anak dapat memanggil ke driver miniport melalui fungsi yang diekspos oleh HwVidQueryInterface kapan saja tanpa sepengetahuan driver port video. Akibatnya, driver miniport harus menyinkronkan akses ke dirinya sendiri dengan memperoleh dan melepaskan kunci perangkat yang dikelola driver port video di semua fungsi yang diekspos oleh HwVidQueryInterface.

Perangkat anak dijumlahkan oleh HwVidGetVideoChildDescriptor.

HwVidQueryInterface harus dibuat dapat di-pageable.

Persyaratan

Persyaratan Nilai
Target Platform Desktop
Header video.h (sertakan Video.h)

Lihat juga

HwVidGetVideoChildDescriptor

QUERY_INTERFACE

VideoPortAcquireDeviceLock

VideoPortReleaseDeviceLock