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

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

[out] IoStatusBlock

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

[in] ByteOffset

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

[in] Length

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

[in] Key

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

傳回值

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

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

備註

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

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

注意

如果 對 NtUnlockFile 函式的呼叫發生在內核模式中,您應該使用名稱 「ZwUnlockFile」,而不是 「NtUnlockFile」。

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

規格需求

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

另請參閱

使用 Nt 和 Zw 版本的原生系統服務例程

NtLockFile