Bagikan melalui


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