Функция 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 и с поддержкой специальных API ядра.
Заметка
Если вызов функции ZwLockFile происходит в пользовательском режиме, следует использовать имя "NtLockFile" вместо "ZwLockFile".
Для вызовов драйверов в режиме ядра NtXxx и ZwXxx версии подпрограммы Windows Native System Services могут вести себя по-разному в том, как они обрабатывают и интерпретируют входные параметры. Дополнительные сведения о связи между NtXxx и ZwXxx версиями подпрограммы см. в разделе Using Nt and Zw Versions of the Native System Services Routines.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Windows 7 |
целевая платформа | Всеобщий |
заголовка | ntifs.h (include Ntifs.h, FltKernel.h) |
библиотеки |
NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL (см. раздел "Примечания") |
правил соответствия DDI |
См. также
использование версий собственных системных служб и Zw