1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
|
Index: exchange.idl
===================================================================
--- exchange.idl (revision 4004)
+++ exchange.idl (working copy)
@@ -1039,7 +1039,7 @@
[case(ActionType_OP_COPY)] MoveCopy_Action CopyAction;
[case(ActionType_OP_REPLY)] ReplyOOF_Action ReplyAction;
[case(ActionType_OP_OOF_REPLY)] ReplyOOF_Action ReplyOOFAction;
- [case(ActionType_OP_DEFER_ACTION)][flag(NDR_REMAINING)] DATA_BLOB DeferAction;
+ [case(ActionType_OP_DEFER_ACTION)][flag(NDR_REMAINING|NDR_NOALIGN)] DATA_BLOB DeferAction;
[case(ActionType_OP_BOUNCE)] BounceCode BounceCode;
[case(ActionType_OP_TAG)] mapi_SPropValue_wrap PropValue;
[case(ActionType_OP_FORWARD)] ForwardDelegate_Action ForwardAction;
@@ -1057,7 +1057,7 @@
typedef [flag(NDR_NOALIGN)] struct {
uint16 ActionLength;
- [subcontext(0),subcontext_size(ActionLength),flag(NDR_REMAINING)] ActionBlockData ActionBlockData;
+ [subcontext(0),subcontext_size(ActionLength),flag(NDR_REMAINING|NDR_NOALIGN)] ActionBlockData ActionBlockData;
} ActionBlock;
typedef [flag(NDR_NOALIGN)] struct {
@@ -1095,7 +1095,7 @@
typedef [public,flag(NDR_NOALIGN)] struct {
uint16 cValues;
- [flag(NDR_REMAINING)]mapi_SPropValue lpProps[cValues];
+ [flag(NDR_REMAINING|NDR_NOALIGN)]mapi_SPropValue lpProps[cValues];
} mapi_SPropValue_array;
typedef [flag(NDR_NOALIGN)] struct {
@@ -1281,7 +1281,7 @@
// TODO: figure out if "layout" can go
uint8 layout;
// TODO: convert this to a proper structure - see if we already have one.
- [flag(NDR_REMAINING)] DATA_BLOB prop_values;
+ [flag(NDR_REMAINING|NDR_NOALIGN)] DATA_BLOB prop_values;
} RecipientRow;
typedef [flag(NDR_NOALIGN)] struct {
@@ -1356,7 +1356,7 @@
typedef [flag(NDR_NOALIGN)] struct {
uint8 layout;
- [flag(NDR_REMAINING)] DATA_BLOB prop_data;
+ [flag(NDR_REMAINING|NDR_NOALIGN)] DATA_BLOB prop_data;
} GetProps_repl;
/*************************/
@@ -1455,7 +1455,7 @@
typedef [flag(NDR_NOALIGN)]struct {
uint32 idx;
ulRecipClass RecipClass;
- [subcontext(2),flag(NDR_REMAINING)] RecipientRow RecipientRow;
+ [subcontext(2),flag(NDR_REMAINING|NDR_NOALIGN)] RecipientRow RecipientRow;
} ModifyRecipientRow;
typedef [flag(NDR_NOALIGN)] struct {
@@ -1532,7 +1532,7 @@
uint8 handle_idx;
MSGFLAG_READ flags;
/* TEMP HACK for editing notes without crashing Outlook:
- [flag(NDR_REMAINING)] DATA_BLOB clientdata; */
+ [flag(NDR_REMAINING|NDR_NOALIGN)] DATA_BLOB clientdata; */
} SetMessageReadFlag_req;
typedef [nodiscriminant, flag(NDR_NOALIGN)] union {
@@ -1782,7 +1782,7 @@
typedef [nopush,nopull,flag(NDR_NOALIGN)] struct {
uint8 Origin;
uint16 RowCount;
- [flag(NDR_REMAINING)]DATA_BLOB RowData;
+ [flag(NDR_REMAINING|NDR_NOALIGN)]DATA_BLOB RowData;
} QueryRows_repl;
/**************************/
@@ -2394,13 +2394,13 @@
} ReadStream_req;
typedef [flag(NDR_NOALIGN)] struct {
- [subcontext(2), flag(NDR_REMAINING)] DATA_BLOB data;
+ [subcontext(2), flag(NDR_REMAINING|NDR_NOALIGN)] DATA_BLOB data;
} ReadStream_repl;
/*************************/
/* EcDoRpc Function 0x2d */
typedef [flag(NDR_NOALIGN)] struct {
- [subcontext(2), flag(NDR_REMAINING)] DATA_BLOB data;
+ [subcontext(2), flag(NDR_REMAINING|NDR_NOALIGN)] DATA_BLOB data;
} WriteStream_req;
@@ -2900,7 +2900,7 @@
uint16 TotalStepCount;
uint8 Reserved;
uint16 TransferBufferSize;
- [subcontext(0),subcontext_size(TransferBufferSize),flag(NDR_REMAINING)] DATA_BLOB TransferBuffer;
+ [subcontext(0),subcontext_size(TransferBufferSize),flag(NDR_REMAINING|NDR_NOALIGN)] DATA_BLOB TransferBuffer;
} FastTransferSourceGetBuffer_repl;
/**************************/
@@ -2982,7 +2982,7 @@
/* EcDoRpc Function 0x54 */
typedef [flag(NDR_NOALIGN)] struct {
uint16 TransferBufferSize;
- [subcontext(0),subcontext_size(TransferBufferSize),flag(NDR_REMAINING)] DATA_BLOB TransferBuffer;
+ [subcontext(0),subcontext_size(TransferBufferSize),flag(NDR_REMAINING|NDR_NOALIGN)] DATA_BLOB TransferBuffer;
} FastTransferDestinationPutBuffer_req;
typedef [flag(NDR_NOALIGN)] struct {
@@ -3075,7 +3075,7 @@
typedef [flag(NDR_NOALIGN)] struct {
uint32 ExpandedRowCount;
uint16 RowCount;
- [flag(NDR_REMAINING)]DATA_BLOB RowData;
+ [flag(NDR_REMAINING|NDR_NOALIGN)]DATA_BLOB RowData;
} ExpandRow_repl;
/*************************/
@@ -3184,7 +3184,7 @@
typedef [flag(NDR_NOALIGN)] struct {
boolean8 HasFinished;
uint16 DataSize;
- [subcontext(0), subcontext_size(DataSize), flag(NDR_REMAINING)] DATA_BLOB Data;
+ [subcontext(0), subcontext_size(DataSize), flag(NDR_REMAINING|NDR_NOALIGN)] DATA_BLOB Data;
} ReadPerUserInformation_repl;
/*************************/
@@ -3194,7 +3194,7 @@
boolean8 HasFinished;
uint32 DataOffset;
uint16 DataSize;
- [subcontext(0), subcontext_size(DataSize), flag(NDR_REMAINING)] DATA_BLOB Data;
+ [subcontext(0), subcontext_size(DataSize), flag(NDR_REMAINING|NDR_NOALIGN)] DATA_BLOB Data;
GUID ReplGuid; /* Note: ReplGuid gets only included under specific circumstances */
} WritePerUserInformation_req;
@@ -3364,7 +3364,7 @@
SendOptions SendOptions;
SynchronizationFlag SynchronizationFlag;
uint16 RestrictionSize;
- [subcontext(0),subcontext_size(RestrictionSize),flag(NDR_REMAINING)] DATA_BLOB RestrictionData;
+ [subcontext(0),subcontext_size(RestrictionSize),flag(NDR_REMAINING|NDR_NOALIGN)] DATA_BLOB RestrictionData;
SynchronizationExtraFlags SynchronizationExtraFlags;
mapi_SPropTagArray PropertyTags;
} SyncConfigure_req;
@@ -3542,7 +3542,7 @@
} MessageReadState;
typedef [flag(NDR_NOALIGN)] struct {
- [subcontext(2),flag(NDR_REMAINING)] DATA_BLOB MessageReadStates;
+ [subcontext(2),flag(NDR_REMAINING|NDR_NOALIGN)] DATA_BLOB MessageReadStates;
} SyncImportReadStateChanges_req;
typedef [flag(NDR_NOALIGN)] struct {
@@ -3617,7 +3617,7 @@
/*************************/
/* EcDoRpc Function 0x90 */
typedef [flag(NDR_NOALIGN)] struct {
- [subcontext(2), flag(NDR_REMAINING)] DATA_BLOB data;
+ [subcontext(2), flag(NDR_REMAINING|NDR_NOALIGN)] DATA_BLOB data;
} WriteAndCommitStream_req;
@@ -4462,7 +4462,7 @@
uint32 MajorVersion;
uint32 MinorVersion;
uint32 BuildNumber;
- [subcontext(0), subcontext_size(132), flag(NDR_NOALIGN|NDR_REMAINING)] DATA_BLOB Reserved_1;
+ [subcontext(0), subcontext_size(132), flag(NDR_REMAINING|NDR_NOALIGN)] DATA_BLOB Reserved_1;
uint16 ServicePackMajor;
uint16 ServicePackMinor;
uint32 Reserved_2;
@@ -4567,7 +4567,7 @@
[out] uint16 rgwServerVersion[3],
[out] uint16 rgwBestVersion[3],
[in,out] uint32 *pulTimeStamp,
- [in,subcontext(4),flag(NDR_NOALIGN|NDR_REMAINING)] mapi2k7_AuxInfo *rgbAuxIn,
+ [in,subcontext(4),flag(NDR_REMAINING|NDR_NOALIGN)] mapi2k7_AuxInfo *rgbAuxIn,
[in] uint32 cbAuxIn,
[out, length_is(*pcbAuxOut), size_is(*pcbAuxOut)] mapi2k7_AuxInfo *rgbAuxOut,
[in,out][range(0,0x1008)] uint32 *pcbAuxOut
@@ -4588,7 +4588,7 @@
typedef [public,nopull] struct {
RPC_HEADER_EXT header;
- [subcontext(0),flag(NDR_NOALIGN|NDR_REMAINING)] mapi_response *mapi_response;
+ [subcontext(0),flag(NDR_REMAINING|NDR_NOALIGN)] mapi_response *mapi_response;
} mapi2k7_response;
[public,noprint] MAPISTATUS EcDoRpcExt2(
|