Fungsi NdisInitializeReadWriteLock (ndis.h)

Fungsi NdisInitializeReadWriteLock menginisialisasi variabel kunci baca atau tulis jenis NDIS_RW_LOCK.

Catatan Antarmuka kunci baca-tulis tidak digunakan lagi untuk driver NDIS 6.20 dan yang lebih baru, yang harus menggunakan NdisAllocateRWLock alih-alih NdisInitializeReadWriteLock.
 

Sintaks

void NdisInitializeReadWriteLock(
  [out] PNDIS_RW_LOCK Lock
);

Parameter

[out] Lock

Penunjuk ke variabel NDIS_RW_LOCK buram yang mewakili kunci. Pemanggil dapat menggunakan kunci ini untuk mendapatkan akses tulis atau baca ke sumber daya yang dibagikan di antara utas driver non-ISR.

Nilai kembali

Tidak ada

Keterangan

Variabel NDIS_RW_LOCK digunakan untuk membatasi akses tulis ke sumber daya bersama ke satu utas driver non-ISR pada satu waktu. NDIS_RW_LOCK ini dapat memungkinkan beberapa utas driver non-ISR akses baca bersamaan ke sumber daya tersebut. Akses baca tersebut tidak diizinkan selama akses tulis.

Penunjuk Kunci yang diteruskan ke NdisInitializeReadWriteLock adalah parameter yang diperlukan untuk semua Ndis lainnya.. Fungsi ReadWriteLock .

Sebelum driver memanggil fungsi NdisAcquireReadWriteLock untuk mendapatkan akses tulis atau baca ke sumber daya, driver harus memanggil NdisInitializeReadWriteLock untuk menginisialisasi kunci yang terkait dengan sumber daya tersebut. Pemanggil harus menyediakan penyimpanan yang tidak disebarkan untuk variabel di Lock .

Setelah memanggil NdisInitializeReadWriteLock, driver dapat memanggil NdisAcquireReadWriteLock untuk mendapatkan akses tulis atau baca ke sumber daya. Hanya satu utas driver non-ISR pada satu waktu yang dapat memperoleh akses tulis ke sumber daya. Ketika satu utas non-ISR memiliki akses tulis, semua akses baca dan tulis oleh utas non-ISR lainnya harus menunggu hingga pemegang akses tulis melepaskan kunci. Namun, jika utas non-ISR memiliki akses baca, utas non-ISR lainnya dapat memperoleh akses baca secara bersamaan.

Menginisialisasi dan menggunakan jenis kunci ini untuk sumber daya yang sering diakses untuk membaca dan jarang diakses untuk menulis.

Setelah akses sumber daya selesai, driver memanggil Fungsi NdisReleaseReadWriteLock .

Setiap kunci yang diinisialisasi driver melakukan salah satu hal berikut:

  • Melindungi sekumpulan sumber daya bersama yang terpisah dari akses tulis dan baca secara bersamaan oleh utas driver yang berjalan di IRQL <= DISPATCH_LEVEL.
  • Mengekspos set diskrit sumber daya bersama ke akses baca simultan oleh utas driver yang berjalan di IRQL <= DISPATCH_LEVEL.
Penelepon NdisInitializeReadWriteLock dapat berjalan di IRQL apa pun. Biasanya penelepon berjalan di IRQL = PASSIVE_LEVEL selama inisialisasi.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Tidak digunakan lagi untuk driver NDIS 6.20 dan yang lebih baru, yang harus menggunakan NdisAllocateRWLock alih-alih NdisInitializeReadWriteLock. Didukung untuk driver NDIS 6.0 dan NDIS 5.1 (lihat NdisInitializeReadWriteLock (NDIS 5.1)) di Windows Vista. Didukung untuk driver NDIS 5.1 (lihat NdisInitializeReadWriteLock (NDIS 5.1)) di Windows XP.
Target Platform Universal
Header ndis.h (termasuk Ndis.h)
Pustaka Ndis.lib
DLL Ndis.sys
IRQL Tingkat apa pun (lihat bagian Keterangan)

Lihat juga

NdisAcquireReadWriteLock

NdisReleaseReadWriteLock