Compartir a través de


Función IoAcquireVpbSpinLock (ntifs.h)

La rutina IoAcquireVpbSpinLock adquiere el bloqueo de giro bloque de parámetros de volumen (VPB).

Sintaxis

void IoAcquireVpbSpinLock(
  [out] PKIRQL Irql
);

Parámetros

[out] Irql

Puntero a una variable asignada por el llamador en la que guardar el IRQL actual para una llamada posterior a IoReleaseVpbSpinLock. Normalmente, el irql de se guarda en la pila como una variable local.

Valor devuelto

Ninguno

Observaciones

Los sistemas de archivos llaman a ioAcquireVpbSpinLock para adquirir el bloqueo de giro VPB. Este bloqueo de giro global debe adquirirse antes de acceder a cualquiera de los siguientes campos de una VPB:

  • Marcas (en concreto, VPB_MOUNTED)

  • DeviceObject

  • RealDevice

  • ReferenceCount

Cada llamada correcta a ioAcquireVpbSpinLock debe coincidir con una llamada posterior a IoReleaseVpbSpinLock. Para evitar interbloqueo, el titular del bloqueo de giro VPB debe liberarlo inmediatamente cuando ya no sea necesario.

Antes de usar IoAcquireVpbSpinLock y IoReleaseVpbSpinLock, se recomienda encarecidamente que los escritores de controladores estudien la forma en que se usan estas rutinas en el ejemplo FASTFAT.

Después de llamar a IoAcquireVpbSpinLock, el autor de la llamada se ejecuta en irQL DISPATCH_LEVEL. Al llamar a IoReleaseVpbSpinLock restaura el IRQL original del autor de la llamada.

Requisitos

Requisito Valor
de la plataforma de destino de Universal
encabezado de ntifs.h (incluya Ntifs.h)
biblioteca de NtosKrnl.lib
DLL de NtosKrnl.exe
irQL <= DISPATCH_LEVEL
reglas de cumplimiento de DDI HwStorPortProhibitedDIs(storport)

Consulte también

ioReleaseVpbSpinLock