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) |