共用方式為


FltAcquirePushLockSharedEx 函式 (fltkernel.h)

FltAcquirePushLockSharedEx 例程會取得呼叫線程的指定推送鎖定以供共用存取。

語法

VOID FLTAPI FltAcquirePushLockSharedEx(
  PEX_PUSH_LOCK PushLock,
  ULONG         Flags
);

參數

PushLock

不透明推入鎖定指標。 此指標必須由先前呼叫 FltInitializePushLock初始化。

Flags

旗標的位掩碼,可控制鎖定的屬性。

傳回值

沒有。

言論

FltAcquirePushLockSharedEx 例程會取得呼叫線程的指定推送鎖定以供共用存取。

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

不同於ERESOURCE結構,推入鎖定無法以遞歸方式取得。 如果呼叫端已經取得獨佔存取的推送鎖定,系統將會停止回應。 如果呼叫端已經取得共用存取的推送鎖定,它可以再次接收共用存取權。 不過,FltAcquirePushLockShared 的每個呼叫都必須與後續呼叫 FltReleasePushLock相符。

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

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

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

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

要求

要求 價值
標頭 fltkernel.h
連結庫 FltMgr.lib

另請參閱

FltInitializePushLock