Fungsi ExInitializePushLock (wdm.h)
Menginisialisasi variabel kunci dorong.
Sintaks
void ExInitializePushLock(
[Out] PEX_PUSH_LOCK PushLock
);
Parameter
[Out] PushLock
Penunjuk ke penyimpanan yang disediakan penelepon, yang harus setidaknya nilai sizeof(EX_PUSH_LOCK), agar variabel kunci pendorongan diinisialisasi. Penyimpanan harus selaras dengan 4 byte pada platform 32-bit, dan 8-byte yang selaras pada platform 64-bit.
Nilai kembali
Tidak ada
Keterangan
Kunci push mirip dengan struktur ERESOURCE (juga disebut "sumber daya") dengan cara berikut:
- Penguncian pendorongan dapat digunakan untuk sinkronisasi oleh sekumpulan utas.
- Kunci push dapat diperoleh untuk akses bersama atau eksklusif.
- Meskipun pemanggil menyediakan penyimpanan untuk variabel kunci push, struktur EX_PUSH_LOCK buram: yaitu, anggotanya dicadangkan untuk penggunaan sistem.
Penguncian push menawarkan keuntungan berikut daripada struktur ERESOURCE:
- Ketika penguncian push sebagian besar diperoleh untuk akses bersama, kunci tersebut lebih efisien daripada struktur ERESOURCE.
- Penyimpanan untuk kunci pendorongan dapat dialokasikan dari kumpulan halaman atau tidak berpakaian. Struktur ERESOURCE harus dialokasikan hanya dari kumpulan yang tidak disebarkan.
- EX_PUSH_LOCK struktur jauh lebih kecil dari struktur ERESOURCE.
Kunci push memiliki kerugian berikut jika dibandingkan dengan struktur ERESOURCE:
- Algoritma untuk memberikan akses eksklusif tidak adil untuk semua utas. Jika ada ketidakcocokan kunci eksklusif tingkat tinggi, tidak ada jaminan tentang urutan di mana utas akan diberikan akses eksklusif.
- Tidak ada rutinitas dukungan untuk menentukan pemilik kunci push saat ini. (Pengguna struktur ERESOURCE dapat memanggil rutinitas seperti ExIsResourceAcquiredExclusiveLite untuk menentukan apakah utas saat ini memiliki akses eksklusif ke sumber daya.)
- Kunci push tidak dapat diperoleh secara rekursif.
Untuk memperoleh atau melepaskan kunci pendorongan untuk akses eksklusif, panggil ExAcquirePushLockExclusive atau ExReleasePushLockExclusive.
Untuk memperoleh atau melepaskan kunci pendorongan untuk akses bersama, panggil ExAcquirePushLockShared atau ExReleasePushLockShared.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows 10, version 1809 |
Header | wdm.h |
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk