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
[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
[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 バージョンは、入力パラメーターを処理および解釈する方法で動作が異なる場合があります。 ルーチンの NtXxx と ZwXxx バージョンの間の関係の詳細については、「ネイティブ システム サービス ルーチンの Nt および Zw バージョンの使用 を参照してください。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows 7 |
ターゲット プラットフォーム の |
万国 |
ヘッダー | ntifs.h (Ntifs.h、FltKernel.h を含む) |
ライブラリ | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL (「解説」セクションを参照) |
DDI コンプライアンス規則 を |
HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm) |