Функция ZwLockFile (ntifs.h)
Подпрограмма ZwLockFile запрашивает блокировку диапазона байтов для указанного файла.
Синтаксис
NTSYSAPI NTSTATUS ZwLockFile(
[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, блокировка диапазона байтов является монопольной; в противном случае — общая блокировка.
Возвращаемое значение
Подпрограмма ZwLockFile возвращает STATUS_SUCCESS или соответствующее значение NTSTATUS, например одно из следующих значений.
Код ошибки | Описание |
---|---|
STATUS_INSUFFICIENT_RESOURCES | Недостаточно ресурсов для предоставления блокировки диапазона байтов для указанного файла. |
STATUS_LOCK_NOT_GRANTED | Блокировка диапазона байтов не была предоставлена для указанного файла. |
Комментарии
Вызывающие файлы ZwLockFile должны выполняться в среде IRQL = PASSIVE_LEVEL и с включенными специальными APC ядра.
Примечание
Если вызов функции ZwLockFile происходит в пользовательском режиме, следует использовать имя NtLockFile вместо ZwLockFile.
Для вызовов из драйверов режима ядра версии NtXxx и ZwXxx подпрограммы собственных системных служб Windows могут вести себя по-разному, так как они обрабатывают и интерпретируют входные параметры. Дополнительные сведения о связи между версиями процедуры NtXxx и ZwXxx см. в разделе Использование версий Nt и Zw для процедур собственных системных служб.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 7 |
Целевая платформа | Универсальное |
Верхняя часть | ntifs.h (включая Ntifs.h, FltKernel.h) |
Библиотека | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL (см. раздел "Примечания") |
Правила соответствия DDI | HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm) |
См. также раздел
Использование версий Nt и Zw собственных процедур системных служб