共用方式為


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”。

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

要求

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

另請參閱

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

ZwUnlockFile