共用方式為


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