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

檔案物件的句柄,表示要解除鎖定其位元組範圍的檔案。

[out] IoStatusBlock

包含最終狀態 之IO_STATUS_BLOCK 結構的指標。

[in] ByteOffset

變數的指標,指定要解除鎖定之位元組範圍的起始位移。

[in] Length

變數的指標,指定要解除鎖定之位元組範圍的長度,以位元組為單位。

[in] Key

用來描述相關鎖定群組的呼叫端指派值。 此值應該設定為零。

傳回值

ZwUnlockFile 例程會在成功或適當的NTSTATUS值時傳回STATUS_SUCCESS。 可能的 NTSTATUS 值包括:

傳回碼 Description
STATUS_RANGE_NOT_LOCKED 指定的位元組範圍未鎖定。

備註

ZwUnlockFile 例程會採用 ByteOffsetLength 自變數所指定的位元組範圍。 此範圍必須與檔案中先前以單一呼叫 ZwUnlockFile 例程鎖定的位元組範圍相同。 您無法使用單一呼叫 ZwUnlockFile 來解除鎖定兩個先前鎖定的相鄰範圍。 也無法解除鎖定先前使用單一呼叫 ZwUnlockFile 例程鎖定之範圍的一部分。

ZwUnlockFile 的呼叫端必須在 IRQL = PASSIVE_LEVEL,且已啟用特殊核心 APC** 執行。

注意

如果在使用者模式中呼叫 ZwUnlockFile 函式,您應該使用名稱 「NtUnlockFile」,而不是 「ZwUnlockFile」。

針對來自內核模式驅動程式的呼叫,Windows 原生系統服務例程的 NtXxxZwXxx 版本會以處理和解譯輸入參數的方式,以不同的方式運作。 如需 例程 NtXxxZwXxx 版本之間關聯性的詳細資訊,請參閱 使用原生系統服務例程的 Nt 和 Zw 版本

規格需求

需求
最低支援的用戶端 Windows 7
目標平台 Universal
標頭 ntifs.h (包括 Ntifs.h、FltKernel.h)
程式庫 NtosKrnl.lib
Dll NtosKrnl.exe
IRQL PASSIVE_LEVEL (请参阅一节)
DDI 合規性規則 HwStorPortProhibitedDIS (storport) PowerIrpDDis (wdm)

另請參閱

ZwLockFile