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.
Valor de retorno
Nenhum
Observações
Os sistemas de arquivos chamam IoAcquireVpbSpinLock para adquirir o bloqueio de rotação de VPB. Esse bloqueio de rotação global deve ser adquirido antes de acessar qualquer um dos seguintes campos de uma 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 titular do bloqueio de rotação de VPB deve liberá-lo imediatamente quando não for mais necessário.
Antes de usar IoAcquireVpbSpinLock e IoReleaseVpbSpinLock, os autores 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 no DISPATCH_LEVEL IRQL. Chamar IoReleaseVpbSpinLock restaura o IRQL original do chamador.