LMEM_MOVEABLE で確保されたメモリオブジェクトに関連付けられたロックカウントを減算する。
LocalUnlock hMem
hMem : [int] ローカルメモリオブジェクトのハンドル。このハンドルは LocalAlloc または LocalReAlloc 関数によって返される。
(プラグイン / モジュール : kernel32.dll)
LMEM_MOVEABLE で確保されたメモリオブジェクトに関連付けられたロックカウントを減算する。 [戻り値] ロックカウントを減らした後もメモリオブジェクトがまだロックされている場合、戻り値は 0 以外である。ロックカウントを減らした結果メモリオブジェクトがアンロックされた場合、関数は 0 を返し GetLastError は NO_ERROR を返す。関数が失敗した場合、戻り値は 0 で GetLastError は NO_ERROR 以外の値を返す。 [備考] 各メモリオブジェクトの内部データ構造には、初期値 0 のロックカウントが含まれる。可動メモリオブジェクトに対して LocalLock 関数はカウントを 1 増やし、LocalUnlock はカウントを 1 減らす。プロセスがオブジェクトに対して LocalLock を呼び出すたびに、最終的に LocalUnlock を呼び出さなければならない。LocalReAlloc 関数で再確保されない限り、ロックされたメモリは移動も破棄もされない。ロックされたメモリオブジェクトのメモリブロックは、ロックカウントが 0 まで減らされるまでロックされたままとなり、その時点で移動や破棄が可能となる。メモリオブジェクトが既にアンロックされている場合、LocalUnlock は FALSE を返し、GetLastError は ERROR_NOT_LOCKED を報告する。LMEM_FIXED で確保されたメモリオブジェクトのロックカウントは常に 0 で、ERROR_NOT_LOCKED エラーの原因となる。プロセスは、戻り値をもとに後続の LocalUnlock 呼び出し回数を判断すべきではない。
| プラグイン / モジュール | 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 |