Share via


_CrtDoForAllClientObjects

更新 : 2007 年 11 月

ヒープ内のすべての _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 ビット フィールドが ON になっていない場合、_CrtDoForAllClientObjects はすぐに処理を戻します。_DEBUG が未定義の場合、_CrtDoForAllClientObjects の呼び出しはプリプロセスで削除されます。

_CLIENT_BLOCK 型の詳細およびこれを他のデバッグ関数で使用する方法の詳細については、「デバッグ ヒープ上のメモリ ブロックの型」を参照してください。デバッグ バージョンのベース ヒープに対するメモリ ブロックの割り当て、初期化、管理方法の詳細については、「メモリ管理とデバッグ ヒープ」を参照してください。

pfn が NULL の場合は、「パラメータの検証」に説明されているように、無効なパラメータ ハンドラが呼び出されます。実行の継続が許可された場合、この関数は errno、_doserrno、_sys_errlist、および _sys_nerr を EINVAL に設定して処理を戻します。

必要条件

ルーチン

必須ヘッダー

_CrtDoForAllClientObjects

<crtdbg.h>、<errno.h>

互換性の詳細については、「C ランタイム ライブラリ」の「互換性」を参照してください。

ライブラリ:C ランタイム ライブラリ のデバッグ バージョンのみ。

使用例

dfacobjs サンプル : C ランタイム _CrtDoForAllClientObjects 関数 を参照してください。

.NET Framework の相当するアイテム

適用できません。標準 C 関数を呼び出すには、PInvoke を使用します。詳細については、「プラットフォーム呼び出しの例」を参照してください。

参照

概念

ヒープの状態をレポートする関数

参照

デバッグ ルーチン

_CrtSetDbgFlag

_CrtReportBlockType