Функция FsRtlGetNextFileLock (ntifs.h)

Подпрограмма FsRtlGetNextFileLock используется для перечисления блокировок диапазона байтов, которые в настоящее время существуют для указанного файла.

Синтаксис

PFILE_LOCK_INFO FsRtlGetNextFileLock(
  [in] PFILE_LOCK FileLock,
  [in] BOOLEAN    Restart
);

Параметры

[in] FileLock

Указатель на структуру FILE_LOCK для файла. Эта структура должна быть инициализирована предыдущим вызовом FsRtlAllocateFileLock или FsRtlInitializeFileLock.

[in] Restart

Задайте значение TRUE , если перечисление начинается с начала списка блокировок диапазона байтов. Установите значение FALSE , если возобновляет перечисление из предыдущего вызова.

Чтобы перечислить все блокировки диапазона байтов для заданного файла, используйте FsRtlGetNextFileLock следующим образом:

for (p = FsRtlGetNextFileLock( FileLock, TRUE );
     p != NULL;
     p = FsRtlGetNextFileLock( FileLock, FALSE )) {
        // Process the lock information pointed to by p
}

Возвращаемое значение

FsRtlGetNextFileLock возвращает указатель на структуру FILE_LOCK_INFO для следующей блокировки диапазона байтов, если она существует. Если для этого файла больше нет блокировок диапазона байтов, FsRtlGetNextFileLock возвращает значение NULL.

Комментарии

Блокировки диапазона байтов не перечисляются в определенном порядке.

Обратите внимание, что так как текущее состояние перечисления хранится в структуре FILE_LOCK, вызывающие стороны должны быть осторожны при синхронизации вызовов fsRtlGetNextFileLock и во избежание изменения любой из возвращаемых структур. Если несколько потоков попытаются использовать FsRtlGetNextFileLock одновременно, результаты будут непредсказуемыми и перечисление не будет надежно завершено.

Требования

Требование Значение
Целевая платформа Универсальное
Верхняя часть ntifs.h (включая Ntifs.h)
Библиотека NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL
Правила соответствия DDI HwStorPortProhibitedDIs(storport)

См. также раздел

FsRtlAreThereCurrentFileLocks

FsRtlCheckLockForReadAccess

FsRtlCheckLockForWriteAccess

FsRtlFastCheckLockForRead

FsRtlFastCheckLockForWrite

FsRtlFastLock

FsRtlFastUnlockAll

FsRtlFastUnlockAllByKey

FsRtlFastUnlockSingle

FsRtlInitializeFileLock

FsRtlProcessFileLock

FsRtlUninitializeFileLock