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 原生系統服務例程的 NtXxxZwXxx 版本在處理和解譯輸入參數的方式可能會有不同的行為。 如需例程 NtXxxZwXxx 版本之間的關聯性詳細資訊,請參閱 使用原生系統服務例程的 Nt 和 Zw 版本**

規格需求

需求
最低支援的用戶端 Windows 7
目標平台 Universal
標頭 ntifs.h (包括 Ntifs.h、FltKernel.h)
程式庫 NtosKrnl.lib
Dll NtosKrnl.exe
IRQL PASSIVE_LEVEL (请参阅一节)
DDI 合規性規則 HwStorPortProhibitedDIS、 PowerIrpDDis

另請參閱

ZwUnlockFile