次の方法で共有


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 で実行され、特殊なカーネル API が有効になっている 必要があります。

手記

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

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

必要条件

要件 価値
サポートされる最小クライアント Windows 7
ターゲット プラットフォーム の 万国
ヘッダー ntifs.h (Ntifs.h、FltKernel.h を含む)
ライブラリ NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL (「解説」セクションを参照)
DDI コンプライアンス規則 を する HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm)

関連項目

ネイティブ システム サービス ルーチンの Nt バージョンと Zw バージョンを使用した

ZwUnlockFile