IoAcquireVpbSpinLock 函式 (ntifs.h)
IoAcquireVpbSpinLock 例程會取得磁碟區參數區塊 (VPB) 微調鎖定。
語法
void IoAcquireVpbSpinLock(
[out] PKIRQL Irql
);
參數
[out] Irql
呼叫端配置的變數指標,用來儲存目前的 IRQL,以便後續呼叫 IoReleaseVpbSpinLock。 Irql 通常會儲存在堆疊上做為局部變數。
傳回值
無
備註
文件系統會呼叫 IoAcquireVpbSpinLock 以取得 VPB 微調鎖定。 必須先取得此全域微調鎖定,才能存取 VPB 的下列任何字段:
特別 (旗標,VPB_MOUNTED)
DeviceObject
RealDevice
ReferenceCount
每次成功呼叫 IoAcquireVpbSpinLock 時,都必須比對 IoReleaseVpbSpinLock 的後續呼叫。 若要防止死結,VPB 微調鎖定的持有者必須在不再需要時立即釋放。
在使用 IoAcquireVpbSpinLock 和 IoReleaseVpbSpinLock之前,強烈建議驅動程式寫入器研究FASTFAT範例中使用這些例程的方式。
呼叫 IoAcquireVpbSpinLock 之後,呼叫端會在 IRQL DISPATCH_LEVEL執行。 呼叫 IoReleaseVpbSpinLock 會還原呼叫端的原始 IRQL。
規格需求
需求 | 值 |
---|---|
目標平台 | Universal |
標頭 | ntifs.h (包含 Ntifs.h) |
程式庫 | NtosKrnl.lib |
Dll | NtosKrnl.exe |
IRQL | <= DISPATCH_LEVEL |
DDI 合規性規則 | HwStorPortProhibitedDIS (storport) |