x64arm64 / ntdllntoskrnl

_TPP_CLEANUP_GROUP_MEMBER

← 10.0.28000.3231 4 builds latest →
struct _TPP_CLEANUP_GROUP_MEMBER {
/* 4 bytes padding */
void (*CleanupGroupCancelCallback)(void*, void*);/* 0x18 8 */
void (*FinalizationCallback)(struct _TP_CALLBACK_INSTANCE*, void*);/* 0x20 8 */
/* ── cacheline 1 boundary (64 bytes) ── */
union {
void* Callback;/* 0x50 8 */
void (*WorkCallback)(struct _TP_CALLBACK_INSTANCE*, void*, struct _TP_WORK*);/* 0x50 8 */
void (*SimpleCallback)(struct _TP_CALLBACK_INSTANCE*, void*);/* 0x50 8 */
void (*TimerCallback)(struct _TP_CALLBACK_INSTANCE*, void*, struct _TP_TIMER*);/* 0x50 8 */
void (*WaitCallback)(struct _TP_CALLBACK_INSTANCE*, void*, struct _TP_WAIT*, long);/* 0x50 8 */
void (*IoCallback)(struct _TP_CALLBACK_INSTANCE*, void*, void*, struct _IO_STATUS_BLOCK*, struct _TP_IO*);/* 0x50 8 */
void (*AlpcCallback)(struct _TP_CALLBACK_INSTANCE*, void*, struct _TP_ALPC*);/* 0x50 8 */
void (*AlpcCallbackEx)(struct _TP_CALLBACK_INSTANCE*, void*, struct _TP_ALPC*, void*);/* 0x50 8 */
void (*JobCallback)(struct _TP_CALLBACK_INSTANCE*, void*, struct _TP_JOB*, unsigned __int64, void*, long);/* 0x50 8 */
};/* 0x50 8 */
void* Context;/* 0x58 8 */
void* SubProcessTag;/* 0x68 8 */
/* ── cacheline 2 boundary (128 bytes) ── */
void* RaceDll;/* 0x88 8 */
union {
volatile long Flags;/* 0xa8 4 */
struct {
unsigned long LongFunction : 1;/* 0xa8:0 4 */
unsigned long Persistent : 1;/* 0xa8:1 4 */
unsigned long UnusedPublic : 14;/* 0xa8:2 4 */
unsigned long Released : 1;/* 0xa8:16 4 */
unsigned long CleanupGroupReleased : 1;/* 0xa8:17 4 */
unsigned long InCleanupGroupCleanupList : 1;/* 0xa8:18 4 */
unsigned long UnusedPrivate : 13;/* 0xa8:19 4 */
};/* 0xa8 4 */
};/* 0xa8 4 */
/* 4 bytes padding */
/* ── cacheline 3 boundary (192 bytes) ── */
};
size 200 (0xc8)35 members2 holes (8 bytes)padding 44 cachelines
Used in (5)