ZwLockFile 函式 (ntifs.h)
ZwLockFile 例程會要求指定檔案的位元組範圍鎖定。
語法
NTSYSAPI NTSTATUS ZwLockFile(
[in] HANDLE FileHandle,
[in, optional] HANDLE Event,
[in, optional] PIO_APC_ROUTINE ApcRoutine,
[in, optional] PVOID ApcContext,
[out] PIO_STATUS_BLOCK IoStatusBlock,
[in] PLARGE_INTEGER ByteOffset,
[in] PLARGE_INTEGER Length,
[in] ULONG Key,
[in] BOOLEAN FailImmediately,
[in] BOOLEAN ExclusiveLock
);
參數
[in] FileHandle
要求位元組範圍鎖定之檔案的句柄。
[in, optional] Event
呼叫端所建立事件的句柄。 如果未 NULL,則呼叫端會進入等候狀態,直到作業成功為止,此時事件會設定為 Signaled 狀態。
[in, optional] ApcRoutine
呼叫端所提供 APC 例程的指標,該例程會在作業完成之後執行。 可為 NULL
[in, optional] ApcContext
APC 例程之呼叫端指定內容的指標。 這個值會在執行時傳遞至 APC 例程。 可為 NULL
[out] IoStatusBlock
包含最終狀態之 IO_STATUS_BLOCK 結構的指標。
[in] ByteOffset
變數的指標,指定要鎖定之範圍的起始位元組位移。
[in] Length
變數的指標,指定要鎖定之範圍的位元組長度。
[in] Key
用來描述相關鎖定群組的呼叫端指派值。 此值應設定為零。
[in] FailImmediately
如果 TRUE,則如果檔案無法鎖定,則立即傳回 。 如果 FALSE,請等候授與鎖定要求。
[in] ExclusiveLock
如果 TRUE,則位元組範圍鎖定為獨佔;否則為共享鎖定。
傳回值
ZwLockFile 例程會傳回STATUS_SUCCESS或適當的錯誤 NTSTATUS 值,例如下列其中一項。
錯誤碼 | 描述 |
---|---|
STATUS_INSUFFICIENT_RESOURCES | 資源不足,無法授與指定檔案的位元組範圍鎖定。 |
STATUS_LOCK_NOT_GRANTED | 未為指定的檔案授與位元組範圍鎖定。 |
言論
ZwLockFile 的呼叫端必須在 IRQL = PASSIVE_LEVEL,且 啟用特殊核心 APC。
注意
如果在使用者模式中呼叫 ZwLockFile 函式,您應該使用名稱 “NtLockFile”,而不是 “ZwLockFile”。
對於內核模式驅動程式的呼叫,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) |