指定したファイルを呼び出し側プロセスによる排他アクセス用にロックする。
LockFile hFile, dwFileOffsetLow, dwFileOffsetHigh, nNumberOfBytesToLockLow, nNumberOfBytesToLockHigh
hFile : [intptr] ファイルのハンドル。ファイルハンドルは GENERIC_READ または GENERIC_WRITE アクセス権で作成されている必要がある。詳細は「ファイルのセキュリティとアクセス権」を参照。 dwFileOffsetLow : [int] ロックを開始するファイル内の開始バイトオフセットの下位 32 ビット。 dwFileOffsetHigh : [int] ロックを開始するファイル内の開始バイトオフセットの上位 32 ビット。 nNumberOfBytesToLockLow : [int] ロックするバイト範囲の長さの下位 32 ビット。 nNumberOfBytesToLockHigh : [int] ロックするバイト範囲の長さの上位 32 ビット。
(プラグイン / モジュール : kernel32.dll)
指定したファイルを呼び出し側プロセスによる排他アクセス用にロックする。 [戻り値] 関数が成功した場合、戻り値は 0 以外 (TRUE) である。関数が失敗した場合、戻り値は 0 (FALSE) である。拡張エラー情報を取得するには GetLastError を呼ぶ。 [備考] LockFile の呼び出しが同期的に完了した場合、完了ポートがファイルハンドルに関連付けられていても、完了エントリはキューされないことがある。UnlockFile 関数は LockFile でロックされたファイル領域のロックを解除する。ファイル領域をロックすると、ロックを行ったプロセスのスレッドは、このファイルハンドルを使って指定領域への排他アクセスを得る。ファイルハンドルがロックを行ったプロセスから作成された子プロセスに継承されても、子プロセスにはロック領域へのアクセスは付与されない。ロックを行ったプロセスが同じファイルを 2 度目に開いた場合、その 2 つ目のハンドルからは領域のロックを解除するまで指定領域にアクセスできない。ファイル領域のロックは、マップされたファイルビューからの読み書きを妨げない。現在のファイル末尾を超えるバイトをロックすることもできる。これはファイル末尾へのレコード追加を調整する際に有用である。排他ロックはファイルの既存のロック領域と重なってはならない。詳細は LockFileEx を参照。LockFile はファイル領域のロックに失敗した場合、ブロックせずに即座に 0 を返す。ロックが取得されるまでブロックするファイルロック要求を発行するには、LOCKFILE_FAIL_IMMEDIATELY フラグなしで LockFileEx を使う。プロセスがファイルの一部をロックしたまま終了したり、未解除のロックを持つファイルを閉じた場合、ロックはオペレーティングシステムによって解除される。ただしロック解除にかかる時間は利用可能なシステムリソースに依存する。したがって、プロセスは終了時にロックしているすべてのファイルを明示的にアンロックすることが推奨される。これを行わなかった場合、オペレーティングシステムがまだロックを解除していない間はそれらのファイルへのアクセスが拒否されることがある。Windows 8 および Windows Server 2012 では、この関数は次のテクノロジによってサポートされる。 (以下省略)
| プラグイン / モジュール | kernel32.dll |
| バージョン | 1.0 |
| 作成日 | 2026/04/16 |
| 著作者 | IronHSP / CsWin32 bridge |
| URL | https://github.com/inovia/IronHSP |
| 備考 | Win32 API の kernel32.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。 |
| タイプ | 拡張命令 |
| グループ | Win32API |
| 対応環境 |
|
| hs ファイル | hsphelp\win32_kernel32_gen2.hs |