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

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

[in] FailImmediately

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

[in] ExclusiveLock

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

戻り値

ZwLockFile ルーチンは、次のいずれかのSTATUS_SUCCESSまたは適切なエラー NTSTATUS 値を返します。

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

注釈

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

注意

ZwLockFile 関数の呼び出しがユーザー モードで行われる場合は、"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(storport), PowerIrpDDis(wdm)

こちらもご覧ください

Nt および Zw バージョンのネイティブ システム サービス ルーチンの使用

ZwUnlockFile