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 值包括:
傳回碼 | 描述 |
---|---|
STATUS_RANGE_NOT_LOCKED | 指定的位元組範圍未鎖定。 |
言論
ZwUnlockFile 例程會採用由 ByteOffset 和 Length 自變數所指定的位元組範圍。 此範圍必須與檔案中先前以單一呼叫 ZwUnlockFile 例程鎖定的位元組範圍相同。 無法解除鎖定先前鎖定的兩個相鄰範圍,並透過單一呼叫 ZwUnlockFile。 也無法解除鎖定先前使用單一呼叫 ZwUnlockFile 例程鎖定範圍的一部分。
ZwUnlockFile 的呼叫端必須在 IRQL = PASSIVE_LEVEL,且已啟用特殊核心 APC 的 。
注意
如果在使用者模式中呼叫 ZwUnlockFile 函式,您應該使用名稱 “NtUnlockFile” 而不是 “ZwUnlockFile”。
對於內核模式驅動程式的呼叫,NtXxx 和 ZwXxx 版本的 Windows 原生系統服務例程,在處理和解譯輸入參數的方式上可能會有不同的行為。 如需 nt NtXxx 與 ZwXxx 例程之間關聯性的詳細資訊,請參閱 使用 Nt 和 Zw 版本的原生系統服務例程。
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | Windows 7 |
目標平臺 | 普遍 |
標頭 | ntifs.h (include Ntifs.h, FltKernel.h) |
連結庫 | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL (請參閱一節) |
DDI 合規性規則 | HwStorPortProhibitedDIs(storport),PowerIrpDDis(wdm) |