_CrtDoForAllClientObjects
ヒープ内のすべての _CLIENT_BLOCK 型に対して、アプリケーションによって提供される関数を呼び出します (デバッグ バージョンのみ)。
void _CrtDoForAllClientObjects( void ( * pfn )( void *, void * ), void *context );
パラメーター
pfn
アプリケーションによって提供された関数コールバック関数へのポインター。 この関数の最初のパラメーターは、データを指します。 2 番目のパラメーターは、_CrtDoForAllClientObjects の呼び出しに渡されるコンテキスト ポインターです。context
アプリケーションによって提供される関数に渡す、アプリケーションによって提供されるコンテキストへのポインター。
解説
_CrtDoForAllClientObjects 関数は、ヒープのリンク リストで _CLIENT_BLOCK 型のメモリ ブロックを検索し、この型のブロックがある場合は、アプリケーションによって提供される関数を呼び出します。 見つかったブロックと context パラメーターは、アプリケーションによって提供される関数に引数として渡されます。 デバッグ中に、アプリケーションはメモリを割り当てるためのデバッグ ヒープ関数を明示的に呼び出し、ブロックに _CLIENT_BLOCK ブロック型を割り当てるように指定することによって、割り当ての特定のグループを追跡できます。 これらのブロックは個別に追跡し、リーク検出やメモリ状態のレポート時に異なる方法で報告できます。
_crtDbgFlag フラグの _CRTDBG_ALLOC_MEM_DF ビット フィールドがオンでない場合、_CrtDoForAllClientObjects はすぐに制御を返します。 _DEBUG が未定義の場合、_CrtDoForAllClientObjects の呼び出しはプリプロセスで削除されます。
_CLIENT_BLOCK 型、およびこれを他のデバッグ関数で使用する方法の詳細については、「デバッグ ヒープ上のメモリ ブロックの型」を参照してください。 デバッグ バージョンのベース ヒープに対するメモリ ブロックの割り当て、初期化、管理方法の詳細については、「CRT デバッグ ヒープ」を参照してください。
pfn が NULL の場合は、「パラメーターの検証」に説明されているように、無効なパラメーター ハンドラーが呼び出されます。 実行の継続が許可された場合、この関数は errno、_doserrno、_sys_errlist、および _sys_nerr を EINVAL に設定して処理を戻します。
必要条件
ルーチン |
必須ヘッダー |
---|---|
_CrtDoForAllClientObjects |
<crtdbg.h>、<errno.h> |
互換性の詳細については、「C ランタイム ライブラリ」の「互換性」を参照してください。
ライブラリ:CRT ライブラリの機能 のデバッグ バージョンのみ。
使用例
「dfacobjs」を参照してください。
同等の .NET Framework 関数
該当なし。標準 C 関数を呼び出すには、PInvoke を使用します。詳細については、「プラットフォーム呼び出しの例」を参照してください。