Функция NtLockFile (ntifs.h)
Подпрограмма NtLockFile запрашивает блокировку диапазона байтов для указанного файла.
Синтаксис
__kernel_entry NTSYSCALLAPI NTSTATUS NtLockFile(
[in] HANDLE FileHandle,
[in, optional] HANDLE Event,
[in, optional] PIO_APC_ROUTINE ApcRoutine,
[in, optional] PVOID ApcContext,
[out] PIO_STATUS_BLOCK IoStatusBlock,
[in] PLARGE_INTEGER ByteOffset,
[in] PLARGE_INTEGER Length,
[in] ULONG Key,
[in] BOOLEAN FailImmediately,
[in] BOOLEAN ExclusiveLock
);
Параметры
[in] FileHandle
Дескриптор файла, в котором запрашивается блокировка диапазона байтов.
[in, optional] Event
Дескриптор события, созданного вызывающим абонентом. Если значение не равно NULL, вызывающий объект помещается в состояние ожидания до тех пор, пока операция не завершится успешно, в то время как событие задается в состояние Signaled.
[in, optional] ApcRoutine
Указатель на подпрограмму APC, предоставляемую вызывающим объектом, которая выполняется после завершения операции. Может иметь значение NULL.
[in, optional] ApcContext
Указатель на контекст, заданный вызывающим объектом для подпрограммы APC. Это значение передается подпрограмме APC при его выполнении. Может иметь значение NULL.
[out] IoStatusBlock
Указатель на структуру IO_STATUS_BLOCK , содержащую окончательное состояние.
[in] ByteOffset
Указатель на переменную, задающую начальное смещение диапазона для блокировки.
[in] Length
Указатель на переменную, указывающую длину в байтах диапазона для блокировки.
[in] Key
Назначаемое вызывающим абонентом значение, используемое для описания групп связанных блокировок. Это значение должно быть равно нулю.
[in] FailImmediately
Если значение РАВНО TRUE, немедленно вернитесь, если файл не может быть заблокирован. Если задано значение FALSE, дождитесь предоставления запроса на блокировку.
[in] ExclusiveLock
Если значение равно TRUE, блокировка диапазона байтов является монопольной; в противном случае общая блокировка.
Возвращаемое значение
Подпрограмма NtLockFile возвращает STATUS_SUCCESS или соответствующее значение NTSTATUS ошибки. Возможные значения NTSTATUS:
Код возврата | Описание |
---|---|
|
Недостаточно ресурсов для предоставления блокировки диапазона байтов для указанного файла. |
|
Блокировка диапазона байтов не была предоставлена для указанного файла. |
Комментарии
Вызывающие файлы NtLockFile должны выполняться в IRQL = PASSIVE_LEVEL и с включенными специальными API ядра.
Требования
Минимальная версия клиента | Доступно начиная с Windows 7. |
Целевая платформа | Универсальное |
Заголовок | ntifs.h (include Ntifs.h, FltKernel.h) |
Библиотека | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL (см. раздел "Примечания") |
Правила соответствия DDI | HwStorPortProhibitedDDIs, PowerIrpDDis |
См. также
Использование версий Nt и Zw подпрограмм собственных системных служб