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