#ifndef _NTLPCAPI_H
// begin_private
/**
* Defines flags for NtAlpcConnectPort / NtAlpcSendWaitReceivePort
*/
typedef enum _ALPC_MESSAGE_FLAGS
{
// Low 2 bits are historical/public ALPC message bits
ALPC_MSGFLG_REPLY_MESSAGE = 0x00000001,
ALPC_MSGFLG_LPC_MODE = 0x00000002,
// High-word message/connect flags
ALPC_MSGFLG_RELEASE_MESSAGE = 0x00010000, // SendWaitReceive: synchronous-request path rejects this bit when a send message is present; debug/internal-style release semantic.
ALPC_MSGFLG_SYNC_REQUEST = 0x00020000, // SendWaitReceive: selects AlpcpProcessSynchronousRequest instead of normal send/receive flow.
ALPC_MSGFLG_TRACK_PORT_REFERENCES = 0x00040000, // SendWaitReceive: increments per-port reference tracking and may signal the tracking event.
ALPC_MSGFLG_WAIT_USER_MODE = 0x00100000,
ALPC_MSGFLG_WAIT_ALERTABLE = 0x00200000,
ALPC_MSGFLG_SIGNAL_ALERTABLE = 0x00400000, // NtAlpcSendWaitReceivePort: passed as the alertable boolean to AlpcpSignal after shifting flags by 0x16.
ALPC_MSGFLG_INTERNAL_REJECT = 0x01000000, // NtAlpcSendWaitReceivePort: explicit invalid-parameter reject in both sync and send paths.
ALPC_MSGFLG_WOW64_CALL = 0x80000000,
} ALPC_MESSAGE_FLAGS;
View code on GitHubNo description available.