ExAcquirePushLockShared 宏 (wdm.h)

取得呼叫線程共用存取的指定推播鎖定。

語法

void ExAcquirePushLockShared(
   Lock
);

參數

Lock

不透明推播鎖定指標。 此指標必須已由先前對 ExInitializePushLock 的呼叫初始化。

傳回值

備註

推播鎖定類似於 ERESOURCE 結構, (也稱為資源) ,因此可以取得資源以進行共用或獨佔存取。 如需推送鎖定的詳細資訊,請參閱 ExInitializePushLock 的參考專案。

不同於ERESOURCE結構,推播鎖定無法以遞歸方式取得。 如果呼叫端已經取得獨佔存取的推送鎖定,系統將會停止回應。 如果呼叫端已經取得共用存取的推送鎖定,它可以再次接收共用存取。

若要在取得推送鎖定之後釋出,請呼叫 ExReleasePushLockShared。 每個 對 ExAcquirePushLockShared 的呼叫都必須與 後續對 ExReleasePushLockShared 的呼叫相符。

當呼叫端獲得給定推播鎖定的共用存取權時,取決於下列各項:

  • 如果推送鎖定目前未擁有,則會立即將共用存取權授與目前線程。

  • 如果已取得推送鎖定供另一個線程存取共用存取,且沒有線程正在等候對推送鎖定的獨佔存取權,則會立即將共用存取權授與給呼叫端。 如果有獨佔等候程式,呼叫端會進入等候狀態。

  • 如果已由另一個線程取得推送鎖定以供獨佔存取,或有另一個線程正在等候獨佔存取,則目前的線程會進入等候狀態,直到取得推送鎖定為止。

呼叫此例程之前,驅動程式必須藉由呼叫 KeEnterCriticalRegion來停用一般核心 APC 傳遞。 藉由呼叫 KeLeaveCriticalRegion 釋放推送鎖定之後,重新啟用傳遞。 如需詳細資訊,請參閱 停用 APC

若要取得獨佔存取的推送鎖定,請呼叫 ExAcquirePushLockExclusive

規格需求

需求
最低支援的用戶端 Windows 10 版本 1809
標頭 wdm.h

另請參閱

ExInitializePushLock

KeEnterCriticalRegion

ExReleasePushLockShared

ExAcquirePushLockExclusive