Fungsi StreamClassQueryMasterClock (strmini.h)

Ketika minidriver memanggil rutinitas StreamClassQueryMasterClock, driver kelas meminta nilai waktu yang sesuai dari jam master secara asinkron, dan meneruskan hasilnya ke rutinitas yang diteruskan dalam parameter ClockCallbackRoutine.

Sintaksis

VOID StreamClassQueryMasterClock(
  [in] PHW_STREAM_OBJECT       HwStreamObject,
  [in] HANDLE                  MasterClockHandle,
  [in] TIME_FUNCTION           TimeFunction,
  [in] PHW_QUERY_CLOCK_ROUTINE ClockCallbackRoutine
);

Parameter

[in] HwStreamObject

Penunjuk ke HW_STREAM_OBJECT menunjukkan aliran yang mengkueri jam masternya. Aliran mungkin hanya memiliki satu kueri yang tertunda pada satu waktu. Driver kelas meneruskan nilai ini ke panggilan balik di HwStreamObject anggota parameter TimeContext panggilan balik.

[in] MasterClockHandle

Menentukan handel untuk jam master yang sedang dikueri. Driver kelas meneruskan ini dalam permintaan SRB_INDICATE_MASTER_CLOCK ke rutinitas StrMiniReceiveStreamControlPacket minidriver.

[in] TimeFunction

Menentukan fungsi waktu apa untuk mengkueri jam master. Lihat HW_TIME_CONTEXT untuk nilai yang mungkin. Driver kelas meneruskan nilai ini ke panggilan balik di Function anggota parameter TimeContext.

[in] ClockCallbackRoutine

Menentukan rutinitas di mana driver kelas meneruskan hasil. Prototipe fungsi harus:

ClockCallbackRoutine(PHW_TIME_CONTEXT TimeContext);

Mengembalikan nilai

Tidak

Komentar

Driver kelas meminta jam master dan meneruskan hasil dalam parameter TimeContext (jenis HW_TIME_CONTEXT) dari panggilan balik. Secara khusus, ini mengatur Waktu anggota struktur ini ke nilai waktu yang diminta dalam parameter TimeFunction, waktu sistem saat ini dalam SystemTime anggota struktur yang sama, dan ekstensi perangkat minidriver di HwDeviceExtension anggota struktur tersebut.

Driver kelas membatalkan alokasi struktur HW_TIME_CONTEXT setelah rutinitas panggilan balik jam berakhir, sehingga panggilan balik harus menyimpan informasi apa pun yang ingin dipertahankan oleh minidriver. Untuk tujuan itu, rutinitas panggilan balik dapat menggunakan ruang yang dialokasikan sebelumnya di ekstensi perangkat minidriver (TimeContext->HwDeviceExtension), atau ekstensi streaming aliran yang mengkueri jam masternya (TimeContext->HwStreamObject->HwStreamExtension).

Pada kesempatan yang jarang terjadi, manajer grafik mengalihkan jam master. Pembalap kelas mengekspos kondisi balapan dalam menangani jam master baru. Jika minidriver memanggil rutinitas jam master kelas aliran segera setelah menerima jam baru dari driver kelas, driver kelas dapat menghasilkan hasil yang tidak terduga.

Persyaratan

Syarat Nilai
Platform Target Desktop
Header strmini.h (termasuk Strmini.h)
Pustaka Stream.lib

Lihat juga

HW_TIME_CONTEXT

StrMiniReceiveStreamControlPacket

StreamClassQueryMasterClockSync