--- /dev/null
+From fab721a44b25bb4a6efcce792c8f6b33b6e48889 Mon Sep 17 00:00:00 2001
+From: Nick Bowler <nbowler@draconx.ca>
+Date: Thu, 8 Sep 2022 17:45:43 -0400
+Subject: [PATCH 3/3] Fix PIDL compilation
+
+---
+ exchange.idl | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/exchange.idl b/exchange.idl
+index 9847b4d..008aa88 100644
+--- a/exchange.idl
++++ b/exchange.idl
+@@ -465,12 +465,12 @@ System Attendant Private Interface
+ would otherwise break the data alignment on wire operations.
+ However, they must be defined here as they make use of the same array types. */
+
+- typedef [nopush,nopull,noprint] struct {
++ typedef struct {
+ [range(0,100000)] uint32 cValues;
+ [size_is(cValues)] hyper *lpui8;
+ } UI8Array_r;
+
+- typedef [switch_type(uint32),nopush,nopull,noprint] union {
++ typedef [switch_type(uint32)] union {
+ [case(PT_I2)] uint16 i;
+ [case(PT_LONG)] uint32 l;
+ [case(PT_DOUBLE)] double dbl;
+@@ -495,19 +495,19 @@ System Attendant Private Interface
+ [case(PT_OBJECT)] uint32 object;
+ } SPropValue_CTR;
+
+- typedef [public,noprint,nopush,nopull] struct {
++ typedef [public] struct {
+ MAPITAGS ulPropTag;
+ uint32 dwAlignPad;
+ [switch_is(ulPropTag & 0xFFFF)] SPropValue_CTR value;
+ } SPropValue;
+
+- typedef [public,noprint,nopush,nopull] struct {
++ typedef [public] struct {
+ uint32 ulAdrEntryPad;
+ [range(0,100000)] uint32 cValues;
+ [size_is(cValues)]SPropValue *lpProps;
+ } SRow;
+
+- typedef [public,noprint,nopush,nopull] struct {
++ typedef [public] struct {
+ [range(0,100000)] uint32 cRows;
+ [size_is(cRows)] SRow aRow[];
+ } SRowSet;
+--
+2.35.1
+