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) を する |