NtLockFile 函式 (ntifs.h)
NtLockFile 例程會要求指定檔案的位元組範圍鎖定。
語法
__kernel_entry NTSYSCALLAPI NTSTATUS NtLockFile(
[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,則位元組範圍鎖定為獨佔;否則為共享鎖定。
傳回值
NtLockFile 例程會傳回STATUS_SUCCESS或適當的錯誤 NTSTATUS 值。 可能的 NTSTATUS 值包括下列各項:
傳回碼 | Description |
---|---|
STATUS_INSUFFICIENT_RESOURCES | 資源不足,無法授與指定檔案的位元組範圍鎖定。 |
STATUS_LOCK_NOT_GRANTED | 未為指定的檔案授與位元組範圍鎖定。 |
備註
NtLockFile 的呼叫端必須在 IRQL = PASSIVE_LEVEL,且已啟用特殊核心 APC**。
注意
如果 對 NtLockFile 函式的呼叫發生在使用者模式中,您應該使用名稱 「NtLockFile」 而不是 「ZwLockFile」。
對於核心模式驅動程式的呼叫,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 合規性規則 | HwStorPortProhibitedDIS、 PowerIrpDDis |