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

関連するロックのグループを記述するために使用される呼び出し元割り当て値。 この値は 0 に設定する必要があります。

[in] FailImmediately

TRUE の場合は、ファイルをロックできない場合は直ちに返します。 FALSE の場合は、ロック要求が許可されるまで待ちます。

[in] ExclusiveLock

TRUE の場合、バイト範囲ロックは排他的です。それ以外の場合は共有ロック。

戻り値

NtLockFile ルーチンは、STATUS_SUCCESSまたは適切なエラー NTSTATUS 値を返します。 可能な NTSTATUS 値は次のとおりです。

リターン コード 説明
STATUS_INSUFFICIENT_RESOURCES 指定したファイルのバイト範囲ロックを許可するには、リソースが不足しています。
STATUS_LOCK_NOT_GRANTED 指定したファイルに対してバイト範囲ロックが付与されませんでした。

解説

NtLockFile の呼び出し元は、IRQL = PASSIVE_LEVELで実行され、特殊なカーネル APCs が有効になっている必要があります**。

注意

NtLockFile 関数の呼び出しがユーザー モードで発生した場合は、"ZwLockFile" ではなく "NtLockFile" という名前を使用する必要があります。

カーネル モード ドライバーからの呼び出しの場合、Windows ネイティブ システム サービス ルーチンの NtXxx および ZwXxx バージョンは、入力パラメーターを処理および解釈する方法で動作が異なります。 ルーチンの NtXxx バージョンと ZwXxx バージョン間の関係の詳細については、「ネイティブ システム サービス ルーチンの Nt バージョンと Zw バージョンの使用」を参照してください**

要件

   
サポートされている最小のクライアント Windows 7
対象プラットフォーム ユニバーサル
Header ntifs.h (Ntifs.h、FltKernel.h を含む)
Library NtosKrnl.lib
[DLL] NtosKrnl.exe
IRQL PASSIVE_LEVEL (「解説」セクションを参照)
DDI コンプライアンス規則 HwStorPortProhibitedDDIs、PowerIrpDDis

関連項目

ZwUnlockFile