Funzione IoAcquireVpbSpinLock (ntifs.h)
La routine IoAcquireVpbSpinLock acquisisce il blocco di rotazione VPB (Volume Parameter Block).
Sintassi
void IoAcquireVpbSpinLock(
[out] PKIRQL Irql
);
Parametri
[out] Irql
Puntatore a una variabile allocata dal chiamante in cui salvare il runtime di integrazione corrente per una chiamata successiva a IoReleaseVpbSpinLock. In genere, irql viene salvato nello stack come variabile locale.
Valore restituito
nessuno
Osservazioni
I file system chiamano IoAcquireVpbSpinLock per acquisire il blocco di rotazione VPB. Questo blocco di rotazione globale deve essere acquisito prima di accedere a uno dei campi seguenti di un VPB:
Flag (in particolare, VPB_MOUNTED)
DeviceObject
RealDevice
ReferenceCount
Ogni chiamata riuscita a IoAcquireVpbSpinLock deve corrispondere a una chiamata successiva a IoReleaseVpbSpinLock. Per evitare deadlock, il titolare del blocco di rotazione VPB deve rilasciarlo immediatamente quando non è più necessario.
Prima di usare IoAcquireVpbSpinLock e IoReleaseVpbSpinLock, gli autori di driver sono fortemente invitati a studiare il modo in cui queste routine vengono usate nell'esempio FASTFAT.
Dopo aver chiamato IoAcquireVpbSpinLock, il chiamante viene eseguito in IRQL DISPATCH_LEVEL. La chiamata a IoReleaseVpbSpinLock ripristina l'IRQL originale del chiamante.
Requisiti
Requisito | Valore |
---|---|
Piattaforma di destinazione | Universale |
Intestazione | ntifs.h (include Ntifs.h) |
Libreria | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= DISPATCH_LEVEL |
Regole di conformità DDI | HwStorPortProhibitedDDIs(storport) |