Fungsi FltAcquireResourceShared (fltkernel.h)

Rutinitas FltAcquireResourceShared memperoleh sumber daya yang diberikan untuk akses bersama oleh utas panggilan.

Sintaks

VOID FLTAPI FltAcquireResourceShared(
  [in/out] PERESOURCE Resource
);

Parameter

[in/out] Resource

Penunjuk ke struktur ERESOURCE buram. Struktur ini harus dialokasikan oleh pemanggil dari kumpulan yang tidak disebarkan dan diinisialisasi dengan memanggil ExInitializeResourceLite atau ExReinitializeResourceLite.

Nilai kembali

Tidak ada.

Keterangan

FltAcquireResourceShared rutin memperoleh sumber daya yang diberikan untuk akses bersama oleh utas panggilan.

Apakah atau kapan penelepon diberikan akses bersama ke sumber daya yang diberikan bergantung pada hal berikut:

  • Jika sumber daya saat ini tidak memiliki izin, akses bersama diberikan segera ke utas saat ini.

  • Jika penelepon sudah memperoleh sumber daya (untuk akses bersama atau eksklusif), utas saat ini diberikan jenis akses yang sama secara rekursif. Perhatikan bahwa melakukan panggilan ini tidak mengonversi kepemilikan eksklusif penelepon atas sumber daya tertentu untuk dibagikan.

  • Jika sumber daya saat ini dimiliki sebagai dibagikan oleh utas lain dan tidak ada utas yang menunggu akses eksklusif ke sumber daya, akses bersama diberikan kepada pemanggil segera. Penelepon dimasukkan ke dalam status tunggu jika ada pelayan eksklusif.

  • Jika sumber daya saat ini dimiliki sebagai eksklusif oleh utas lain atau jika ada utas lain yang menunggu akses eksklusif dan pemanggil belum memiliki akses bersama ke sumber daya, utas saat ini dimasukkan ke dalam status tunggu sampai sumber daya dapat diperoleh.

FltAcquireResourceShared adalah pembungkus untuk ExAcquireResourceSharedLite yang menonaktifkan pengiriman APC kernel normal.

Karena FltAcquireResourceShared menonaktifkan pengiriman APC kernel normal, tidak perlu memanggil KeEnterCriticalRegion atau FsRtlEnterFileSystem sebelum memanggil FltAcquireResourceShared.

Untuk merilis sumber daya setelah diperoleh, panggil FltReleaseResource. Setiap panggilan yang berhasil ke FltAcquireResourceShared harus dicocokkan dengan panggilan berikutnya ke FltReleaseResource.

Untuk memperoleh sumber daya untuk akses eksklusif, hubungi FltAcquireResourceExclusive.

Untuk menghapus sumber daya dari daftar sumber daya sistem, panggil ExDeleteResourceLite.

Untuk menginisialisasi sumber daya untuk digunakan kembali, panggil ExReinitializeResourceLite.

Untuk informasi selengkapnya tentang struktur ERESOURCE, lihat Pengantar Rutinitas ERESOURCE.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows XP SP2
Server minimum yang didukung Windows Server 2003 SP1
Header fltkernel.h
Pustaka FltMgr.lib
IRQL IRQL <= APC_LEVEL