Fungsi VideoPortAcquireSpinLock (video.h)
Fungsi VideoPortAcquireSpinLock mendapatkan kunci putar yang ditentukan.
Sintaks
VIDEOPORT_API VOID VideoPortAcquireSpinLock(
[in, out] PVOID HwDeviceExtension,
[in] PSPIN_LOCK SpinLock,
[out] PUCHAR OldIrql
);
Parameter
[in, out] HwDeviceExtension
Arahkan ke ekstensi perangkat driver miniport.
[in] SpinLock
Penunjuk ke lokasi memori yang berisi kunci putar.
[out] OldIrql
Pointer ke lokasi memori yang akan menerima IRQL saat ini.
Nilai kembali
Tidak ada
Keterangan
IRQL saat ini disimpan di OldIrql. Kemudian, IRQL saat ini diatur ulang ke DISPATCH_LEVEL, dan kunci putar yang ditentukan diperoleh.
Nilai OldIrql harus ditentukan ketika kunci putar dirilis dengan VideoPortReleaseSpinLock.
Kunci putar dapat menyebabkan masalah serius jika tidak digunakan secara yudisius. Secara khusus, tidak ada perlindungan kebuntuan yang dilakukan dan pengiriman dinonaktifkan saat kunci putar ditahan. Karena itu:
- Kode dalam wilayah penting yang dijaga oleh kunci putar tidak boleh dapat di-pageable atau membuat referensi apa pun ke data yang dapat di-pageable.
- Kode dalam wilayah penting yang dijaga oleh kunci putaran tidak dapat memanggil fungsi eksternal apa pun yang mungkin mengakses data yang dapat di-pageable atau memunculkan pengecualian, juga tidak dapat menghasilkan pengecualian apa pun.
- Pemanggil harus melepaskan kunci putar dengan VideoPortReleaseSpinLock secepat mungkin.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Tersedia di Windows XP dan versi sistem operasi Windows yang lebih baru. |
Target Platform | Desktop |
Header | video.h (sertakan Video.h) |
Pustaka | Videoprt.lib |
DLL | Videoprt.sys |
IRQL | <=DISPATCH_LEVEL |