プロセス スナップショット関数が内部ウォーク マーカー構造の割り当てと解放に使用するカスタム関数を指定します。
構文
typedef struct {
void *Context;
void )(void *Context,DWORD Size) *(*AllocRoutine;
void((void *Context, void *Address) * )FreeRoutine;
} PSS_ALLOCATOR;
メンバー
Context
プロセス スナップショット関数が AllocRoutine および FreeRoutine に渡す任意のポインター サイズの値。
AllocRoutine
2 つのパラメーターを受け取る WINAPI 呼び出し規約関数へのポインター。 割り当てるメモリ ブロックへのポインターを返します。割り当てが失敗した場合は NULL を 返します。
Context
PSS_ALLOCATORで渡されるコンテキスト値。
サイズ
割り当てるバイト数。
FreeRoutine
2 つのパラメーターを受け取る WINAPI 呼び出し規約関数へのポインター。 AllocRoutine によって割り当てられたメモリ ブロックの割り当てが解除されます。
Context
PSS_ALLOCATORで渡されるコンテキスト値。
Address
AllocRoutine によって割り当てられたメモリ ブロックのアドレス。
解説
カスタム メモリ割り当て関数を使用するには、この構造体を PssWalkMarkerCreate に渡します。 それ以外の場合、プロセス スナップショット処理関数は既定のプロセス ヒープを使用します。
カスタム関数を提供する PSS_ALLOCATOR 構造体は、 PssWalkMarkerCreate によって作成されるウォーク マーカーの有効期間にわたって有効なままである必要があります。
FreeRoutine は、失敗することなく NULL アドレス パラメーター を 受け入れる必要があります。
カスタム関数は、PssWalkMarkerCreate、PssWalkMarkerFree、PssWalkSnapshot から、PssWalkMarkerCreate、PssWalkMarkerFree、PssWalkSnapshot を呼び出すのと同じスレッドを使用して呼び出されます。 そのため、カスタム関数はマルチスレッドである必要はありません。
要件
| サポートされている最小のクライアント | Windows 8.1 [デスクトップ アプリのみ] |
| サポートされている最小のサーバー | Windows Server 2012 R2 [デスクトップ アプリのみ] |
| Header | processsnapshot.h |