Поделиться через


Макрос 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] Длина: указатель на переменную, указывающую длину в байтах диапазона для блокировки.

A5

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

A6

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

A7

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

A8

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

A9

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

A10

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

A11

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

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

Никакой

Замечания

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

FsRtlFastLock возвращает ЗНАЧЕНИЕ TRUE, чтобы указать, что структура IO_STATUS_BLOCK, на которую указывает Iosb получена информация о состоянии операции блокировки; в противном случае возвращает значение FALSE.

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

Требования

Требование Ценность
целевая платформа Настольный
заголовка ntifs.h (include Ntifs.h)
IRQL <= APC_LEVEL

См. также

FILE_LOCK

FsRtlAllocateFileLock

FsRtlInitializeFileLock