Макрос FsRtlFastLock (ntifs.h)

Макрос FsRtlFastLock используется файловыми системами и драйверами фильтров для запроса блокировки диапазона байтов для файлового потока.

Синтаксис

BOOLEAN
FsRtlFastLock( A1,   /* FileLock            */
               A2,   /* FileObject          */
               A3,   /* FileOffset          */
               A4,   /* Length              */
               A5,   /* ProcessId           */
               A6,   /* Key                 */
               A7,   /* FailImmediately     */
               A8,   /* ExclusiveLock       */
               A9,   /* Iosb                */
               A10,  /* Context             */
               A11   /* AlreadySynchronized */ )

Параметры

A1

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

A2

[in] FileObject: указатель на FILE_OBJECT открытого файла. Файловый объект должен быть создан с GENERIC_READ или GENERIC_WRITE доступа к файлу (или и то, и другое).

A3

[in] FileOffset: указатель на переменную, указывающую начальное смещение байтов в файле диапазона, который необходимо заблокировать.

A4

[in] Length: указатель на переменную, указывающую длину диапазона, который необходимо заблокировать, в байтах.

A5

[in] ProcessId: указатель на идентификатор процесса EPROCESS для процесса, запрашивающего блокировку диапазона байтов.

A6

[in] Ключ: ключ, назначаемый блокировке диапазона байтов.

A7

[in] FailImmediately: логическое значение, указывающее, должен ли запрос на блокировку завершать ошибку, если блокировка не может быть предоставлена немедленно. Если вызывающий объект можно поместить в состояние ожидания, пока запрос не будет предоставлен, задайте для failImmediately значение FALSE. Если это не удается, установите для failImmediately значение TRUE.

A8

[in] ExclusiveLock: установите значение TRUE, если запрашивается монопольная блокировка, и FALSE, если запрашивается общая блокировка.

A9

[out] Iosb: указатель на структуру IO_STATUS_BLOCK , выделенную вызывающим объектом, которая получает сведения о состоянии запроса на блокировку.

A10

[in] Контекст. Необязательный указатель на контекст, используемый при освобождении блокировки диапазона байтов.

A11

[in] AlreadySynchronized: этот параметр устарел, но сохраняется для обеспечения совместимости с устаревшими драйверами.

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

None

Remarks

Макрос FsRtlFastLock приводит к тому, что вызывающий объект получает блокировку диапазона байтов в области указанного файла.

FsRtlFastLock возвращает значение TRUE, чтобы указать, что структура IO_STATUS_BLOCK, на которую указывает Iosb , получила сведения о состоянии операции блокировки; В противном случае возвращается значение FALSE.

Чтобы изучить содержимое структуры, на которую указывает Iosb , используйте макрос NT_STATUS.

Требования

Требование Значение
Целевая платформа Персональный компьютер
Верхняя часть ntifs.h (включая Ntifs.h)
IRQL <= APC_LEVEL

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

FILE_LOCK

FsRtlAllocateFileLock

FsRtlInitializeFileLock