Função FsRtlGetNextFileLock (ntifs.h)
A rotina
Sintaxe
PFILE_LOCK_INFO FsRtlGetNextFileLock(
[in] PFILE_LOCK FileLock,
[in] BOOLEAN Restart
);
Parâmetros
[in] FileLock
Ponteiro para a estrutura de FILE_LOCK do arquivo. Essa estrutura deve ter sido inicializada por uma chamada anterior para FsRtlAllocateFileLock ou FsRtlInitializeFileLock.
[in] Restart
Defina como VERDADEIRO se a enumeração for iniciar no início da lista de bloqueios de intervalo de bytes. Defina como FALSE se retomar a enumeração de uma chamada anterior.
Para enumerar todos os bloqueios de intervalo de bytes para um determinado arquivo, use FsRtlGetNextFileLock da seguinte maneira:
for (p = FsRtlGetNextFileLock( FileLock, TRUE );
p != NULL;
p = FsRtlGetNextFileLock( FileLock, FALSE )) {
// Process the lock information pointed to by p
}
Valor de retorno
FsRtlGetNextFileLock retorna um ponteiro para a estrutura FILE_LOCK_INFO para o próximo bloqueio de intervalo de bytes, se houver. Se não houver mais bloqueios de intervalo de bytes para esse arquivo, FsRtlGetNextFileLock retornará NULL.
Observações
Os bloqueios de intervalo de bytes não são enumerados em nenhuma ordem específica.
Observe que, como o estado de enumeração atual é armazenado na estrutura FILE_LOCK, os chamadores devem ter cuidado para sincronizar chamadas para FsRtlGetNextFileLock e evitar modificar qualquer uma das estruturas retornadas. Se vários threads tentarem usar FsRtlGetNextFileLock ao mesmo tempo, os resultados serão imprevisíveis e a enumeração não será concluída de forma confiável.