次の方法で共有


IoAcquireVpbSpinLock 関数 (ntifs.h)

IoAcquireVpbSpinLock ルーチンは、ボリューム パラメーター ブロック (VPB) スピン ロックを取得します。

構文

void IoAcquireVpbSpinLock(
  [out] PKIRQL Irql
);

パラメーター

[out] Irql

IoReleaseVpbSpinLockへの後続の呼び出しのために現在の IRQL を保存する呼び出し元によって割り当てられた変数へのポインター。 通常、Irql はローカル変数としてスタックに保存されます。

戻り値

何一つ

備考

ファイル システム IoAcquireVpbSpinLock を呼び出して VPB スピン ロックを取得します。 VPB の次のいずれかのフィールドにアクセスする前に、このグローバル スピン ロックを取得する必要があります。

  • フラグ (具体的には、VPB_MOUNTED)

  • DeviceObject

  • RealDevice

  • ReferenceCount

IoAcquireVpbSpinLock 正常に呼び出されるたびに、IoReleaseVpbSpinLockへの後続の呼び出し照合する必要があります。 デッドロックを防ぐために、VPB スピン ロックの所有者は、不要になったらすぐに解放する必要があります。

IoAcquireVpbSpinLock 使用して IoReleaseVpbSpinLock する前に、ドライバー ライターは FASTFAT サンプルでこれらのルーチンを使用する方法を調べてお勧めします。

IoAcquireVpbSpinLock 呼び出した後、呼び出し元は IRQL DISPATCH_LEVELで実行されます。 IoReleaseVpbSpinLock 呼び出すと、呼び出し元の元の IRQL が復元されます。

必要条件

要件 価値
ターゲット プラットフォーム 万国
ヘッダー ntifs.h (Ntifs.h を含む)
ライブラリ NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= DISPATCH_LEVEL
DDI コンプライアンス規則 する hwStorPortProhibitedDDDIs(storport) する

関連項目

IoReleaseVpbSpinLock