Função IoAcquireVpbSpinLock (ntifs.h)

A rotina IoAcquireVpbSpinLock adquire o bloqueio de rotação VPB (Bloco de Parâmetros de Volume).

Sintaxe

void IoAcquireVpbSpinLock(
  [out] PKIRQL Irql
);

Parâmetros

[out] Irql

Ponteiro para uma variável alocada por chamador na qual salvar o IRQL atual para uma chamada subsequente para IoReleaseVpbSpinLock. Normalmente, o Irql é salvo na pilha como uma variável local.

Retornar valor

Nenhum

Comentários

Os sistemas de arquivos chamam IoAcquireVpbSpinLock para adquirir o bloqueio de rotação do VPB. Esse bloqueio de rotação global deve ser adquirido antes de acessar qualquer um dos seguintes campos de um VPB:

  • Sinalizadores (especificamente, VPB_MOUNTED)

  • DeviceObject

  • RealDevice

  • ReferenceCount

Cada chamada bem-sucedida para IoAcquireVpbSpinLock deve ser correspondida por uma chamada subsequente para IoReleaseVpbSpinLock. Para evitar deadlock, o detentor do bloqueio de rotação do VPB deve liberá-lo imediatamente quando não for mais necessário.

Antes de usar IoAcquireVpbSpinLock e IoReleaseVpbSpinLock, os gravadores de driver são fortemente incentivados a estudar a maneira como essas rotinas são usadas na amostra FASTFAT.

Depois de chamar IoAcquireVpbSpinLock, o chamador é executado em IRQL DISPATCH_LEVEL. Chamar IoReleaseVpbSpinLock restaura o IRQL original do chamador.

Requisitos

Requisito Valor
Plataforma de Destino Universal
Cabeçalho ntifs.h (inclua Ntifs.h)
Biblioteca NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= DISPATCH_LEVEL
Regras de conformidade de DDI HwStorPortProhibitedDDIs(storport)

Confira também

IoReleaseVpbSpinLock