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 autor de la llamada en la que guardar el IRQL actual para una llamada posterior a IoReleaseVpbSpinLock. Normalmente , Irql se guarda en la pila como una variable local.

Valor devuelto

None

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 (específicamente, 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 e IoReleaseVpbSpinLock, se recomienda encarecidamente a los escritores de controladores que 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. La llamada a IoReleaseVpbSpinLock restaura el IRQL original del autor de la llamada.

Requisitos

Requisito Value
Plataforma de destino Universal
Encabezado ntifs.h (incluya Ntifs.h)
Library NtosKrnl.lib
Archivo DLL NtosKrnl.exe
IRQL <= DISPATCH_LEVEL
Reglas de cumplimiento de DDI HwStorPortProhibitedDIs(storport)

Consulte también

IoReleaseVpbSpinLock