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


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

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

Синтаксис

__kernel_entry NTSYSCALLAPI NTSTATUS NtUnlockFile(
  [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

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

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

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

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

Комментарии

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

Вызывающие объект NtUnlockFile должны выполняться в IRQL = PASSIVE_LEVEL и с включенными специальными api ядра**.

Примечание

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

Для вызовов из драйверов режима ядра версии NtXxx и ZwXxx подпрограммы Собственные системные службы Windows могут вести себя по-разному, так как они обрабатывают и интерпретируют входные параметры. Дополнительные сведения о связи между версиями подпрограмм NtXxx и ZwXxx см. в разделе Использование версий NT и Zw подпрограмм собственных системных служб.

Требования

Требование Значение
Минимальная версия клиента Windows 7
Целевая платформа Универсальное
Верхняя часть ntifs.h (включая Ntifs.h, FltKernel.h)
Библиотека NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL (см. раздел "Примечания")
Правила соответствия DDI HwStorPortProhibitedDIs, PowerIrpDDis

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

Использование версий nt и Zw собственных системных служб

NtLockFile