IoAcquireVpbSpinLock 函式 (ntifs.h)

IoAcquireVpbSpinLock 例程會取得磁碟區參數區塊 (VPB) 微調鎖定。

語法

void IoAcquireVpbSpinLock(
  [out] PKIRQL Irql
);

參數

[out] Irql

呼叫端配置的變數指標,用來儲存目前的 IRQL,以便後續呼叫 IoReleaseVpbSpinLockIrql 通常會儲存在堆疊上做為局部變數。

傳回值

備註

文件系統會呼叫 IoAcquireVpbSpinLock 以取得 VPB 微調鎖定。 必須先取得此全域微調鎖定,才能存取 VPB 的下列任何字段:

  • 特別 (旗標,VPB_MOUNTED)

  • DeviceObject

  • RealDevice

  • ReferenceCount

每次成功呼叫 IoAcquireVpbSpinLock 時,都必須比對 IoReleaseVpbSpinLock 的後續呼叫。 若要防止死結,VPB 微調鎖定的持有者必須在不再需要時立即釋放。

在使用 IoAcquireVpbSpinLockIoReleaseVpbSpinLock之前,強烈建議驅動程式寫入器研究FASTFAT範例中使用這些例程的方式。

呼叫 IoAcquireVpbSpinLock 之後,呼叫端會在 IRQL DISPATCH_LEVEL執行。 呼叫 IoReleaseVpbSpinLock 會還原呼叫端的原始 IRQL。

規格需求

需求
目標平台 Universal
標頭 ntifs.h (包含 Ntifs.h)
程式庫 NtosKrnl.lib
Dll NtosKrnl.exe
IRQL <= DISPATCH_LEVEL
DDI 合規性規則 HwStorPortProhibitedDIS (storport)

另請參閱

IoReleaseVpbSpinLock