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


Функция ZwUnlockFile (ntifs.h)

Подпрограмма ZwUnlockFile разблокирует блокировку диапазона байтов в файле.

Синтаксис

NTSYSAPI NTSTATUS ZwUnlockFile(
  [in]  HANDLE           FileHandle,
  [out] PIO_STATUS_BLOCK IoStatusBlock,
  [in]  PLARGE_INTEGER   ByteOffset,
  [in]  PLARGE_INTEGER   Length,
  [in]  ULONG            Key
);

Параметры

[in] FileHandle

Дескриптор для объекта file, представляющего файл, диапазон байтов которого необходимо разблокировать.

[out] IoStatusBlock

Указатель на структуру IO_STATUS_BLOCK , содержащую конечное состояние.

[in] ByteOffset

Указатель на переменную, указывающую начальное смещение байтов для разблокированного диапазона байтов.

[in] Length

Указатель на переменную, указывающую длину в байтах разблокировки диапазона байтов.

[in] Key

Значение, назначаемое вызывающим абонентом, используемое для описания групп связанных блокировок. Это значение должно быть равно нулю.

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

Подпрограмма ZwUnlockFile возвращает STATUS_SUCCESS при успешном выполнении или соответствующее значение NTSTATUS. Возможные значения NTSTATUS:

Код возврата Описание
STATUS_RANGE_NOT_LOCKED Указанный диапазон байтов не заблокирован.

Комментарии

Подпрограмма ZwUnlockFile принимает диапазон байтов, указанный аргументами ByteOffset и Length . Этот диапазон должен быть идентичен диапазону байтов в файле, который ранее был заблокирован одним вызовом подпрограммы ZwUnlockFile . Невозможно разблокировать два ранее заблокированных смежных диапазона с помощью одного вызова ZwUnlockFile. Кроме того, невозможно разблокировать часть диапазона, который ранее был заблокирован одним вызовом подпрограммы ZwUnlockFile .

Вызывающие файлы ZwUnlockFile должны выполняться по адресу IRQL = PASSIVE_LEVEL и с включенными специальными APC ядра**.

Примечание

Если вызов функции ZwUnlockFile происходит в пользовательском режиме, следует использовать имя NtUnlockFile вместо ZwUnlockFile.

Для вызовов из драйверов режима ядра версии 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)

См. также раздел

ZwLockFile