Макрос 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 |