Bagikan melalui


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

Lihat juga

VideoPortAcquireSpinLockAtDpcLevel

VideoPortReleaseSpinLock