mirror of
https://github.com/microsoft/terminal.git
synced 2025-12-11 04:38:24 -06:00
`InteractivityOneCore` and `RendererWddmCon` were the last two remaining projects which are relevant for our internal console builds, but couldn't be easily compiled publicly by users on GitHub. This commit adds all definitions required to compile the two projects into dysfunctional libraries at least. (Since the added definitions are deliberately incorrect.) Additionally this commit fixes the AuditMode build for the two projects. ## Validation Steps Performed The two new projects compile fine.
127 lines
3.3 KiB
C
127 lines
3.3 KiB
C
/*++
|
|
Copyright (c) Microsoft Corporation.
|
|
Licensed under the MIT license.
|
|
--*/
|
|
|
|
#pragma once
|
|
|
|
#define OB_FILE_OBJECT_TYPE 1
|
|
|
|
typedef struct _PORT_MESSAGE {
|
|
union {
|
|
struct {
|
|
SHORT DataLength;
|
|
SHORT TotalLength;
|
|
} s1;
|
|
} u1;
|
|
union {
|
|
ULONG ZeroInit;
|
|
} u2;
|
|
union {
|
|
CLIENT_ID ClientId;
|
|
};
|
|
ULONG MessageId;
|
|
} PORT_MESSAGE, *PPORT_MESSAGE;
|
|
|
|
#define ALPC_MSGFLG_SYNC_REQUEST 0
|
|
#define ALPC_PORFLG_ACCEPT_DUP_HANDLES 1
|
|
#define ALPC_PORFLG_ACCEPT_INDIRECT_HANDLES 2
|
|
|
|
typedef struct _ALPC_DATA_VIEW_ATTR {
|
|
PVOID ViewBase;
|
|
SIZE_T ViewSize;
|
|
} ALPC_DATA_VIEW_ATTR, *PALPC_DATA_VIEW_ATTR;
|
|
|
|
typedef struct _ALPC_CONTEXT_ATTR {
|
|
} ALPC_CONTEXT_ATTR, *PALPC_CONTEXT_ATTR;
|
|
|
|
#define ALPC_INDIRECT_HANDLE_MAX 512
|
|
|
|
typedef struct _ALPC_HANDLE_ATTR {
|
|
union {
|
|
ULONG HandleCount;
|
|
};
|
|
} ALPC_HANDLE_ATTR, *PALPC_HANDLE_ATTR;
|
|
|
|
#define ALPC_FLG_MSG_DATAVIEW_ATTR 1
|
|
#define ALPC_FLG_MSG_HANDLE_ATTR 2
|
|
|
|
typedef struct _ALPC_MESSAGE_ATTRIBUTES {
|
|
} ALPC_MESSAGE_ATTRIBUTES, *PALPC_MESSAGE_ATTRIBUTES;
|
|
|
|
typedef struct _ALPC_PORT_ATTRIBUTES {
|
|
ULONG Flags;
|
|
SECURITY_QUALITY_OF_SERVICE SecurityQos;
|
|
SIZE_T MaxMessageLength;
|
|
SIZE_T MemoryBandwidth;
|
|
SIZE_T MaxPoolUsage;
|
|
SIZE_T MaxSectionSize;
|
|
SIZE_T MaxViewSize;
|
|
SIZE_T MaxTotalSectionSize;
|
|
ULONG DupObjectTypes;
|
|
#ifdef _WIN64
|
|
ULONG Reserved;
|
|
#endif
|
|
} ALPC_PORT_ATTRIBUTES, *PALPC_PORT_ATTRIBUTES;
|
|
|
|
typedef enum _ALPC_MESSAGE_INFORMATION_CLASS {
|
|
AlpcMessageHandleInformation
|
|
} ALPC_MESSAGE_INFORMATION_CLASS;
|
|
|
|
typedef struct _ALPC_MESSAGE_HANDLE_INFORMATION {
|
|
ULONG Index;
|
|
ULONG Handle;
|
|
} ALPC_MESSAGE_HANDLE_INFORMATION, *PALPC_MESSAGE_HANDLE_INFORMATION;
|
|
|
|
NTSTATUS AlpcInitializeMessageAttribute(
|
|
ULONG AttributeFlags,
|
|
PALPC_MESSAGE_ATTRIBUTES Buffer,
|
|
SIZE_T BufferSize,
|
|
PSIZE_T RequiredBufferSize
|
|
);
|
|
|
|
PVOID AlpcGetMessageAttribute(
|
|
PALPC_MESSAGE_ATTRIBUTES Buffer,
|
|
ULONG AttributeFlag
|
|
);
|
|
|
|
#define ALPC_GET_DATAVIEW_ATTRIBUTES(MsgAttr) \
|
|
((PALPC_DATA_VIEW_ATTR)AlpcGetMessageAttribute(MsgAttr, ALPC_FLG_MSG_DATAVIEW_ATTR))
|
|
|
|
#define ALPC_GET_HANDLE_ATTRIBUTES(MsgAttr) \
|
|
((PALPC_HANDLE_ATTR)AlpcGetMessageAttribute(MsgAttr, ALPC_FLG_MSG_HANDLE_ATTR))
|
|
|
|
NTSTATUS NtAlpcConnectPort(
|
|
PHANDLE PortHandle,
|
|
PUNICODE_STRING PortName,
|
|
POBJECT_ATTRIBUTES ObjectAttributes,
|
|
PALPC_PORT_ATTRIBUTES PortAttributes,
|
|
ULONG Flags,
|
|
PSID RequiredServerSid,
|
|
PPORT_MESSAGE ConnectionMessage,
|
|
PSIZE_T BufferLength,
|
|
PALPC_MESSAGE_ATTRIBUTES OutMessageAttributes,
|
|
PALPC_MESSAGE_ATTRIBUTES InMessageAttributes,
|
|
PLARGE_INTEGER Timeout
|
|
);
|
|
|
|
NTSTATUS NtAlpcSendWaitReceivePort(
|
|
HANDLE PortHandle,
|
|
ULONG Flags,
|
|
PPORT_MESSAGE SendMessage,
|
|
PALPC_MESSAGE_ATTRIBUTES SendMessageAttributes,
|
|
PPORT_MESSAGE ReceiveMessage,
|
|
PSIZE_T BufferLength,
|
|
PALPC_MESSAGE_ATTRIBUTES ReceiveMessageAttributes,
|
|
PLARGE_INTEGER Timeout
|
|
);
|
|
|
|
NTSTATUS NtAlpcQueryInformationMessage(
|
|
HANDLE PortHandle,
|
|
PPORT_MESSAGE PortMessage,
|
|
ALPC_MESSAGE_INFORMATION_CLASS MessageInformationClass,
|
|
PVOID MessageInformation,
|
|
ULONG Length,
|
|
PULONG ReturnLength
|
|
);
|