ExAcquireRundownProtection 函式 (wdm.h)
ExAcquireRundownProtection 例程會嘗試取得共享物件上的執行保護,讓呼叫者可以安全地存取物件。
語法
BOOLEAN ExAcquireRundownProtection(
[in, out] PEX_RUNDOWN_REF RunRef
);
參數
[in, out] RunRef
先前呼叫 exInitializeRundownProtection 例程所初始化之EX_RUNDOWN_REF 結構的指標。 Run-down 保護例程會使用此結構來追蹤相關聯共用物件的執行狀態。 此結構對驅動程式不透明。
傳回值
ExAcquireRundownProtection 如果例程成功取得呼叫者的執行保護,則傳回 true。 否則,它會 FALSE傳回 。 FALSE 的傳回值 表示對象的執行已啟動,而且對象必須視為無效。
言論
為了安全地存取共用對象,驅動程式會呼叫 ExAcquireRundownProtection 以取得對象的執行保護。 例程會傳回 TRUE,表示執行保護作用中。 當執行保護生效時,驅動程式可以安全地存取物件,而不會有在存取完成之前刪除對象的風險。
只要 run-down 區塊本身為非分頁,就可以在 DISPATCH_LEVEL呼叫此函式。
完成存取之後,驅動程式會呼叫 ExReleaseRundownProtection,以釋放先前取得的 Run-down 保護。
如果 ExAcquireRundownProtection 傳回 FALSE,就無法再存取物件。 例如,如果物件要以新的物件取代,呼叫端必須等候對象擁有者建立新的物件,然後交涉對新物件的存取權。
如需詳細資訊,請參閱 Run-Down 保護。
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | 從 Windows XP 開始提供。 |
目標平臺 | 普遍 |
標頭 | wdm.h (包括 Wdm.h) |
連結庫 | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= DISPATCH_LEVEL (請參閱備註) |
DDI 合規性規則 | HwStorPortProhibitedDIs(storport) |