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) |