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 例程會採用 ByteOffset 和 Length 自變數所指定的位元組範圍。 此範圍必須與檔案中先前以單一呼叫 NtUnlockFile 例程鎖定的位元組範圍相同。 您無法使用單一呼叫 NtUnlockFile 來解除鎖定兩個先前鎖定的相鄰範圍。 您也無法解除鎖定先前使用 NtUnlockFile 例程單一呼叫鎖定之範圍的一部分。
NtUnlockFile 的呼叫端必須在 IRQL = PASSIVE_LEVEL且已啟用特殊核心 APC** 執行。
注意
如果 對 NtUnlockFile 函式的呼叫發生在內核模式中,您應該使用名稱 「ZwUnlockFile」,而不是 「NtUnlockFile」。
針對來自內核模式驅動程式的呼叫,Windows 原生系統服務例程的 NtXxx 和 ZwXxx 版本會以處理和解譯輸入參數的方式,以不同的方式運作。 如需 例程 NtXxx 和 ZwXxx 版本之間關聯性的詳細資訊,請參閱 使用原生系統服務例程的 Nt 和 Zw 版本。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 7 |
目標平台 | Universal |
標頭 | ntifs.h (包括 Ntifs.h、FltKernel.h) |
程式庫 | NtosKrnl.lib |
Dll | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL (请参阅一节) |
DDI 合規性規則 | HwStorPortProhibitedDDIs、PowerIrpDDis |