Condividi tramite


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)

Vedi anche

IoReleaseVpbSpinLock