Fungsi ExAcquireSharedStarveExclusive (wdm.h)
Rutinitas ExAcquireSharedStarveExclusive memperoleh sumber daya tertentu untuk akses bersama tanpa menunggu upaya yang tertunda untuk memperoleh akses eksklusif ke sumber daya yang sama.
Sintaks
BOOLEAN ExAcquireSharedStarveExclusive(
[in, out] PERESOURCE Resource,
[in] BOOLEAN Wait
);
Parameter
[in, out] Resource
Pointer ke sumber daya yang akan diperoleh untuk akses bersama.
[in] Wait
Menentukan perilaku rutin setiap kali sumber daya tidak dapat segera diperoleh. Jika TRUE, penelepon dimasukkan ke dalam status tunggu hingga sumber daya dapat diperoleh. Jika FALSE, rutinitas segera kembali, terlepas dari apakah sumber daya dapat diperoleh.
Nilai kembali
ExAcquireSharedStarveExclusive mengembalikan TRUE jika akses yang diminta diberikan. Rutinitas ini mengembalikan FALSE jika input TungguADALAH FALSE dan akses bersama tidak dapat segera diberikan.
Keterangan
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 akses eksklusif penelepon dari sumber daya tertentu ke akses bersama.
- Jika sumber daya saat ini dimiliki sebagai dibagikan oleh utas lain, akses bersama diberikan kepada pemanggil segera, bahkan jika utas lain sedang menunggu akses eksklusif ke sumber daya tersebut.
- Jika sumber daya saat ini dimiliki sebagai eksklusif oleh utas lain, pemanggil dimasukkan ke dalam status tunggu (Tunggu diatur ke TRUE) atau ExAcquireSharedStarveExclusive mengembalikan FALSE.
Pengiriman APC kernel normal harus dinonaktifkan sebelum memanggil rutinitas ini. Nonaktifkan pengiriman APC kernel normal dengan memanggil KeEnterCriticalRegion. Pengiriman harus tetap dinonaktifkan sampai sumber daya dirilis, di mana sumber daya dapat diaktifkan kembali dengan memanggil KeLeaveCriticalRegion. Untuk informasi selengkapnya, lihat Menonaktifkan APC.
Pemanggil dapat merilis sumber daya dengan memanggil ExReleaseResourceLite atau ExReleaseResourceForThreadLite.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Tersedia dimulai dengan Windows 2000. |
Target Platform | Universal |
Header | wdm.h (termasuk Wdm.h, Ntddk.h, Ntifs.h) |
Pustaka | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= APC_LEVEL |
Aturan kepatuhan DDI | HwStorPortProhibitedDDIs(storport), IrqlExApcLte3(wdm), WithinCriticalRegion(storport), WithinCriticalRegion(storport), WithinCriticalRegion(wdm) |
Lihat juga
ExAcquireSharedWaitForExclusive
ExConvertExclusiveToSharedLite