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 值包括下列各項:

傳回碼 描述
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 合規性規則 HwStorPortProhibitedDDIs、PowerIrpDDis

另請參閱

ZwUnlockFile