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 が復元されます。
要件
要件 | 値 |
---|---|
対象プラットフォーム | ユニバーサル |
Header | ntifs.h (Ntifs.h を含む) |
Library | NtosKrnl.lib |
[DLL] | NtosKrnl.exe |
IRQL | <= DISPATCH_LEVEL |
DDI コンプライアンス規則 | HwStorPortProhibitedDDIs(storport) |