//0x90 bytes (sizeof)
struct _KALPC_MESSAGE
{
struct _LIST_ENTRY Entry; //0x0
VOID* ExtensionBuffer; //0x8
ULONG ExtensionBufferSize; //0xc
union
{
struct _EPROCESS* QuotaProcess; //0x10
VOID* QuotaBlock; //0x10
};
LONG SequenceNo; //0x14
union
{
struct
{
ULONG QueueType:2; //0x18
ULONG QueuePortType:4; //0x18
ULONG Canceled:1; //0x18
ULONG Ready:1; //0x18
ULONG ReleaseMessage:1; //0x18
ULONG SharedQuota:1; //0x18
ULONG ReplyWaitReply:1; //0x18
ULONG OwnerPortReference:1; //0x18
ULONG ReserveReference:1; //0x18
ULONG ReceiverReference:1; //0x18
} s1; //0x18
ULONG State; //0x18
} u1; //0x18
struct _ALPC_PORT* CancelSequencePort; //0x1c
struct _ALPC_PORT* CancelQueuePort; //0x20
LONG CancelSequenceNo; //0x24
struct _LIST_ENTRY CancelListEntry; //0x28
struct _ETHREAD* WaitingThread; //0x30
struct _KALPC_RESERVE* Reserve; //0x34
struct _ALPC_PORT* volatile PortQueue; //0x38
struct _ALPC_PORT* OwnerPort; //0x3c
struct _HANDLE_TABLE_ENTRY* UniqueTableEntry; //0x40
struct _KALPC_MESSAGE_ATTRIBUTES MessageAttributes; //0x44
VOID* DataUserVa; //0x60
VOID* DataSystemVa; //0x64
struct _ALPC_COMMUNICATION_INFO* CommunicationInfo; //0x68
struct _ALPC_PORT* ConnectionPort; //0x6c
struct _ETHREAD* ServerThread; //0x70
struct _PORT_MESSAGE PortMessage; //0x78
};