LocalLock 関数 (winbase.h)
ローカル メモリ オブジェクトをロックし、オブジェクトのメモリ ブロックの最初のバイトへのポインターを返します。
構文
LPVOID LocalLock(
[in] HLOCAL hMem
);
パラメーター
[in] hMem
ローカル メモリ オブジェクトへのハンドル。 このハンドルは、LocalAlloc 関数または LocalReAlloc 関数によって返されます。
戻り値
関数が成功した場合、戻り値はメモリ ブロックの最初のバイトへのポインターです。
関数が失敗した場合は、返される値は NULL です。 詳細なエラー情報を得るには、GetLastError を呼び出します。
解説
各メモリ オブジェクトの内部データ構造には、最初は 0 であるロックカウントが含まれます。 移動可能なメモリ オブジェクトの場合、 LocalLock はカウントを 1 ずつインクリメントし、 LocalUnlock 関数はカウントを 1 ずつデクリメントします。 プロセスがオブジェクトの LocalLock に対して正常に呼び出すたびに、 対応する LocalUnlock の呼び出しと一致する必要があります。 LocalReAlloc 関数を使用してメモリ オブジェクトが再割り当てされない限り、ロックされたメモリは移動または破棄されません。 ロックされたメモリ オブジェクトのメモリ ブロックは、ロックカウントが 0 にデクリメントされるまでメモリ内でロックされたままになり、その時点で移動または破棄できます。
LMEM_FIXEDで割り当てられたメモリ オブジェクトのロックカウントは常に 0 です。 これらのオブジェクトの場合、返されるポインターの値は、指定したハンドルの値と等しくなります。
指定したメモリ ブロックが破棄された場合、またはメモリ ブロックのサイズが 0 の場合、この関数は NULL を返します。
破棄されたオブジェクトのロックカウントは常に 0 です。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows XP (デスクトップ アプリのみ) |
サポートされている最小のサーバー | Windows Server 2003 (デスクトップ アプリのみ) |
対象プラットフォーム | Windows |
ヘッダー | winbase.h (Windows.h を含む) |
Library | Kernel32.lib |
[DLL] | Kernel32.dll |