exAcquirePushLockExclusive 宏 (wdm.h)

取得呼叫線程的指定推播鎖定以進行獨佔存取。

語法

void ExAcquirePushLockExclusive(
   Lock
);

參數

Lock

不透明推播鎖定指標。 這個指標必須由先前呼叫 ExInitializePushLock 初始化。

傳回值

備註

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

不同於ERESOURCE結構,推播鎖定無法以遞歸方式取得。 如果呼叫端已經取得獨佔或共用存取的推送鎖定,線程就會停止回應。 當呼叫端獲得指定推播鎖定的獨佔存取權時,取決於下列各項:

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

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

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

若要在取得推送鎖定之後釋放,請呼叫 ExReleasePushLockExclusive。 每次呼叫 ExAcquirePushLockExclusive 都必須與 後續對 ExReleasePushLockExclusive 的呼叫進行比對。

若要取得共用存取的推送鎖定,請呼叫 ExAcquirePushLockShared

規格需求

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

另請參閱

ExInitializePushLock

KeEnterCriticalRegion

ExReleasePushLockExclusive

ExAcquirePushLockShared