Bagikan melalui


Pengantar Rutinitas ERESOURCE

Sistem ini menyediakan rutinitas untuk memperoleh dan merilis struktur ERESOURCE, serta untuk memeriksa statusnya saat ini.

Memperoleh dan Merilis Struktur ERESOURCE

Driver dapat menggunakan struktur ERESOURCE untuk menerapkan sinkronisasi eksklusif/bersama. Sinkronisasi eksklusif/bersama berfungsi sebagai berikut:

  • Sejumlah utas dapat memperoleh ERESOURCE seperti yang dibagikan.

  • Hanya satu utas yang dapat memperoleh ERESOURCE secara eksklusif. ERESOURCE hanya dapat diperoleh secara eksklusif jika tidak ada utas yang telah memperolehnya sebagai bersama.

Utas yang saat ini tidak dapat memperoleh ERESOURCE secara opsional dapat dimasukkan ke dalam status tunggu hingga ERESOURCE dapat diperoleh. Sistem ini mempertahankan dua daftar utas yang menunggu ERESOURCE: daftar pelayan eksklusif dan daftar pelayan bersama.

Penggunaan umum untuk sinkronisasi eksklusif/bersama adalah menerapkan kunci baca/tulis. Kunci baca/tulis memungkinkan beberapa utas untuk melakukan operasi baca, tetapi hanya satu utas yang dapat menulis pada satu waktu. Ini dapat diimplementasikan langsung dalam hal memperoleh ERESOURCE.

Driver mengalokasikan penyimpanan untuk ERESOURCE dan menginisialisasinya dengan ExInitializeResourceLite. Sistem ini mempertahankan daftar semua struktur ERESOURCE yang digunakan. Ketika driver tidak lagi memerlukan ERESOURCE tertentu, driver harus memanggil ExDeleteResourceLite untuk menghapusnya dari daftar sistem. Driver juga dapat menggunakan kembali ERESOURCE dengan memanggil ExReinitializeResourceLite.

Driver dapat melakukan operasi dasar berikut pada ERESOURCE:

Parameter TungguExAcquireResourceSharedLite dan ExAcquireResourceExclusiveLite menentukan apakah utas saat ini menunggu ERESOURCE diperoleh. Jika Anda menentukan nilai FALSE dan ERESOURCE tidak dapat diperoleh, maka rutinitas mengembalikan FALSE. Jika Anda menentukan nilai TRUE, maka utas saat ini dimasukkan ke daftar tunggu yang sesuai untuk ERESOURCE.

Memeriksa Status Struktur ERESOURCE

Driver juga dapat menentukan status ERESOURCE saat ini, sebagai berikut: