共用方式為


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 值包括:

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

言論

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

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

注意

如果在核心模式中呼叫 NtUnlockFile 函式,您應該使用名稱 “ZwUnlockFile”,而不是 “NtUnlockFile”。

對於內核模式驅動程式的呼叫,NtXxxZwXxx 版本的 Windows 原生系統服務例程,在處理和解譯輸入參數的方式上可能會有不同的行為。 如需 nt NtXxxZwXxx 例程之間關聯性的詳細資訊,請參閱 使用 Nt 和 Zw 版本的原生系統服務例程

要求

要求 價值
最低支援的用戶端 Windows 7
目標平臺 普遍
標頭 ntifs.h (include Ntifs.h, FltKernel.h)
連結庫 NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL (請參閱一節)
DDI 合規性規則 HwStorPortProhibitedDDIs, PowerIrpDDis

另請參閱

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

NtLockFile