6
cpp_quote("#define MAX_RPC_GUID_ARRAY_COUNT (MAX_PAYLOAD / sizeof(struct GUID))")
7
cpp_quote("#define eventlog6_EvtRpcSubscribePull 0x10000000")
8
cpp_quote("#define eventlog6_EvtRpcVarFlagsModified 0x00000001")
11
uuid (f6beaff7-1e19-4fbb-9f8f-b89e2018337c),
13
endpoint("ncacn_ip_tcp:"),
14
helpstring("Eventlog6"),
15
pointer_default(unique)
19
const int MAX_PAYLOAD = 2 * 1024 * 1024;
20
const int MAX_RPC_QUERY_LENGTH = MAX_PAYLOAD / sizeof(uint16_t);
21
const int MAX_RPC_CHANNEL_NAME_LENGTH = 512;
22
const int MAX_RPC_QUERY_CHANNEL_SIZE = 512;
23
const int MAX_RPC_EVENT_ID_SIZE = 256;
24
const int MAX_RPC_FILE_PATH_LENGTH = 32768;
25
const int MAX_RPC_CHANNEL_PATH_LENGTH = 32768;
26
const int MAX_RPC_BOOKMARK_LENGTH = MAX_PAYLOAD / sizeof(uint16_t);
27
const int MAX_RPC_PUBLISHER_ID_LENGTH = 2048;
28
const int MAX_RPC_PROPERTY_BUFFER_SIZE = MAX_PAYLOAD;
29
const int MAX_RPC_FILTER_LENGTH = MAX_RPC_QUERY_LENGTH;
30
const int MAX_RPC_RECORD_COUNT = 1024;
31
const int MAX_RPC_EVENT_SIZE = MAX_PAYLOAD;
32
const int MAX_RPC_BATCH_SIZE = MAX_PAYLOAD;
33
const int MAX_RPC_RENDERED_STRING_SIZE = MAX_PAYLOAD;
34
const int MAX_RPC_CHANNEL_COUNT = 8192;
35
const int MAX_RPC_PUBLISHER_COUNT = 8192;
36
const int MAX_RPC_EVENT_METADATA_COUNT = 256;
37
const int MAX_RPC_VARIANT_LIST_COUNT = 256;
38
const int MAX_RPC_BOOLEAN8_ARRAY_COUNT = MAX_PAYLOAD / sizeof(uint8_t);
39
const int MAX_RPC_UINT32_ARRAY_COUNT = MAX_PAYLOAD / sizeof(uint32_t);
40
const int MAX_RPC_UINT64_ARRAY_COUNT = MAX_PAYLOAD / sizeof(uint64_t);
41
const int MAX_RPC_STRING_ARRAY_COUNT = MAX_PAYLOAD / 512;
42
const int MAX_RPC_STRING_LENGTH = MAX_PAYLOAD / sizeof(uint16_t);
51
[range(0, MAX_RPC_BOOLEAN8_ARRAY_COUNT)] uint32 count;
52
[size_is(count)] boolean8* ptr;
53
} eventlog6_boolean8Array;
56
[range(0, MAX_RPC_UINT32_ARRAY_COUNT)] uint32 count;
57
[size_is(count)] uint32* ptr;
58
} eventlog6_UInt32Array;
61
[range(0, MAX_RPC_UINT64_ARRAY_COUNT)] uint32 count;
62
[size_is(count)] hyper* ptr;
63
} eventlog6_UInt64Array;
66
[range(0, MAX_RPC_STRING_ARRAY_COUNT)] uint32 count;
67
[size_is(count),charset(UTF16),string] uint16 *ptr;
68
} eventlog6_StringArray;
71
[range(0, MAX_RPC_GUID_ARRAY_COUNT)] uint32 count;
72
[size_is(count)] GUID* ptr;
73
} eventlog6_GuidArray;
75
typedef [v1_enum] enum {
76
EvtRpcVarTypeNull = 0,
77
EvtRpcVarTypeboolean8 = 1,
78
EvtRpcVarTypeUInt32 = 2,
79
EvtRpcVarTypeUInt64 = 3,
80
EvtRpcVarTypeString = 4,
81
EvtRpcVarTypeGuid = 5,
82
EvtRpcVarTypeboolean8Array = 6,
83
EvtRpcVarTypeUInt32Array = 7,
84
EvtRpcVarTypeUInt64Array = 8,
85
EvtRpcVarTypeStringArray = 9,
86
EvtRpcVarTypeGuidArray = 10
87
} eventlog6_EvtRpcVariantType;
89
typedef [v1_enum] enum {
90
EvtRpcChannelPath = 0,
91
EvtRpcPublisherName = 1
92
} eventlog6_EvtRpcAssertConfigFlags;
94
typedef [switch_type(eventlog6_EvtRpcVariantType)] union {
95
[case(EvtRpcVarTypeNull)] int nullVal;
96
[case(EvtRpcVarTypeboolean8)] boolean8 boolean8Val;
97
[case(EvtRpcVarTypeUInt32)] uint32 uint32Val;
98
[case(EvtRpcVarTypeUInt64)] hyper uint64Val;
99
[case(EvtRpcVarTypeString)] [charset(UTF16),string] uint16 *stringVal;
100
[case(EvtRpcVarTypeGuid)] GUID *guidVal;
101
[case(EvtRpcVarTypeboolean8Array)] eventlog6_boolean8Array boolean8Array;
102
[case(EvtRpcVarTypeUInt32Array)] eventlog6_UInt32Array uint32Array;
103
[case(EvtRpcVarTypeUInt64Array)] eventlog6_UInt64Array uint64Array;
104
[case(EvtRpcVarTypeStringArray)] eventlog6_StringArray stringArray;
105
[case(EvtRpcVarTypeGuidArray)] eventlog6_GuidArray guidArray;
106
} eventlog6_EvtRpcVariantUnion;
109
eventlog6_EvtRpcVariantType type;
111
[in,ref,switch_is(type)] eventlog6_EvtRpcVariantUnion *var;
112
} eventlog6_EvtRpcVariant;
115
[range(0, MAX_RPC_VARIANT_LIST_COUNT)] uint32 count;
116
[size_is(count)] eventlog6_EvtRpcVariant* props;
117
} eventlog6_EvtRpcVariantList;
120
[charset(UTF16),string] uint16 *name;
122
} eventlog6_EvtRpcQueryChannelInfo;
124
WERROR eventlog6_EvtRpcRegisterRemoteSubscription(
125
[in, unique, range(0, MAX_RPC_CHANNEL_NAME_LENGTH),charset(UTF16),string] uint16 *channelPath,
126
[in, range(1, MAX_RPC_QUERY_LENGTH),charset(UTF16),string] uint16 *query,
127
[in, unique, range(0, MAX_RPC_BOOKMARK_LENGTH),charset(UTF16),string] uint16 *bookmarkXml,
129
[out, ref] policy_handle *handle,
130
[out, ref] policy_handle *control,
131
[out, ref] uint32 *queryChannelInfoSize,
132
[out, size_is(,*queryChannelInfoSize), range(0, MAX_RPC_QUERY_CHANNEL_SIZE)]
133
eventlog6_EvtRpcQueryChannelInfo **queryChannelInfo,
134
[out, ref] eventlog6_RpcInfo *error);
136
WERROR eventlog6_EvtRpcRemoteSubscriptionNextAsync(
137
[in, ref] policy_handle *handle,
138
[in] uint32 numRequestedRecords,
140
[out, ref] uint32 *numActualRecords,
141
[out, size_is(,*numActualRecords), range(0, MAX_RPC_RECORD_COUNT)]
142
uint32 **eventDataIndices,
143
[out, size_is(,*numActualRecords), range(0, MAX_RPC_RECORD_COUNT)]
144
uint32 **eventDataSizes,
145
[out, ref] uint32* resultBufferSize,
146
[out, size_is(,*resultBufferSize), range(0, MAX_RPC_BATCH_SIZE)]
147
uint8 **resultBuffer);
149
WERROR eventlog6_EvtRpcRemoteSubscriptionNext(
150
[in, ref] policy_handle *handle,
151
[in] uint32 numRequestedRecords,
154
[out, ref] uint32 *numActualRecords,
155
[out, size_is(,*numActualRecords), range(0, MAX_RPC_RECORD_COUNT)]
156
uint32 **eventDataIndices,
157
[out, size_is(,*numActualRecords), range(0, MAX_RPC_RECORD_COUNT)]
158
uint32 **eventDataSizes,
159
[out, ref] uint32 *resultBufferSize,
160
[out, size_is(,*resultBufferSize), range(0, MAX_RPC_BATCH_SIZE)]
161
uint8 **resultBuffer);
163
WERROR eventlog6_EvtRpcRemoteSubscriptionWaitAsync(
164
[in, ref] policy_handle *handle);
166
WERROR eventlog6_EvtRpcRegisterControllableOperation(
167
[out, ref] policy_handle *handle);
169
WERROR eventlog6_EvtRpcRegisterLogQuery(
170
[in, unique, range(0, MAX_RPC_CHANNEL_PATH_LENGTH),charset(UTF16),string] uint16 *path,
171
[in, range(1, MAX_RPC_QUERY_LENGTH),charset(UTF16),string] uint16 *query,
173
[out, ref] policy_handle *handle,
174
[out, ref] policy_handle *opControl,
175
[out, ref] uint32 *queryChannelInfoSize,
176
[out, size_is(,*queryChannelInfoSize), range(0, MAX_RPC_QUERY_CHANNEL_SIZE)]
177
eventlog6_EvtRpcQueryChannelInfo **queryChannelInfo,
178
[out, ref] eventlog6_RpcInfo *error);
180
WERROR eventlog6_EvtRpcClearLog(
181
[in, ref] policy_handle *control,
182
[in, range(0, MAX_RPC_CHANNEL_NAME_LENGTH),charset(UTF16),string] uint16 *channelPath,
183
[in, unique, range(0, MAX_RPC_FILE_PATH_LENGTH),charset(UTF16),string] uint16 *backupPath,
185
[out, ref] eventlog6_RpcInfo *error);
187
WERROR eventlog6_EvtRpcExportLog(
188
[in, ref] policy_handle *control,
189
[in, unique, range(0, MAX_RPC_CHANNEL_NAME_LENGTH),charset(UTF16),string] uint16 *channelPath,
190
[in, range(1, MAX_RPC_QUERY_LENGTH),charset(UTF16),string] uint16 *query,
191
[in, range(1, MAX_RPC_FILE_PATH_LENGTH),charset(UTF16),string] uint16 *backupPath,
193
[out, ref] eventlog6_RpcInfo *error);
195
WERROR eventlog6_EvtRpcLocalizeExportLog(
196
[in, ref] policy_handle *control,
197
[in, range(1, MAX_RPC_FILE_PATH_LENGTH),charset(UTF16),string] uint16 *logFilePath,
200
[out, ref] eventlog6_RpcInfo *error);
202
WERROR eventlog6_EvtRpcMessageRender(
203
[in, ref] policy_handle *pubCfgObj,
204
[in, range(1, MAX_RPC_EVENT_ID_SIZE)] uint32 sizeEventId,
205
[in, size_is(sizeEventId)] uint8 *eventId,
206
[in] uint32 messageId,
207
[in] eventlog6_EvtRpcVariantList *values,
209
[in] uint32 maxSizeString,
210
[out, ref] uint32 *actualSizeString,
211
[out, ref] uint32 *neededSizeString,
212
[out, size_is(,*actualSizeString), range(0, MAX_RPC_RENDERED_STRING_SIZE)]
214
[out, ref] eventlog6_RpcInfo *error);
216
WERROR eventlog6_EvtRpcMessageRenderDefault(
217
[in, range(1, MAX_RPC_EVENT_ID_SIZE)] uint32 sizeEventId,
218
[in, size_is(sizeEventId)] uint8 *eventId,
219
[in] uint32 messageId,
220
[in] eventlog6_EvtRpcVariantList *values,
222
[in] uint32 maxSizeString,
223
[out, ref] uint32 *actualSizeString,
224
[out, ref] uint32 *neededSizeString,
225
[out, size_is(,*actualSizeString), range(0, MAX_RPC_RENDERED_STRING_SIZE)]
227
[out, ref] eventlog6_RpcInfo *error);
229
WERROR eventlog6_EvtRpcQueryNext(
230
[in, ref] policy_handle *logQuery,
231
[in] uint32 numRequestedRecords,
232
[in] uint32 timeOutEnd,
234
[out, ref] uint32 *numActualRecords,
235
[out, size_is(,*numActualRecords), range(0, MAX_RPC_RECORD_COUNT)]
236
uint32 **eventDataIndices,
237
[out, size_is(,*numActualRecords), range(0, MAX_RPC_RECORD_COUNT)]
238
uint32 **eventDataSizes,
239
[out, ref] uint32 *resultBufferSize,
240
[out, size_is(,*resultBufferSize), range(0, MAX_RPC_BATCH_SIZE)]
241
uint8 **resultBuffer);
243
WERROR eventlog6_EvtRpcQuerySeek(
244
[in, ref] policy_handle *logQuery,
246
[in, unique, range(0, MAX_RPC_BOOKMARK_LENGTH),charset(UTF16),string] uint16 *bookmarkXml,
249
[out, ref] eventlog6_RpcInfo *error);
251
WERROR eventlog6_EvtRpcClose(
252
[in, out, ref] policy_handle **handle);
254
WERROR eventlog6_EvtRpcCancel(
255
[in, ref] policy_handle *handle);
257
WERROR eventlog6_EvtRpcAssertConfig(
258
[in, range(1, MAX_RPC_CHANNEL_NAME_LENGTH),charset(UTF16),string] uint16 *path,
261
WERROR eventlog6_EvtRpcRetractConfig(
262
[in, range(1, MAX_RPC_CHANNEL_NAME_LENGTH),charset(UTF16),string] uint16 *path,
265
WERROR eventlog6_EvtRpcOpenLogHandle(
266
[in, range(1, MAX_RPC_CHANNEL_NAME_LENGTH),charset(UTF16),string] uint16 *channel,
268
[out, ref] policy_handle *handle,
269
[out, ref] eventlog6_RpcInfo *error);
271
WERROR eventlog6_EvtRpcGetLogFileInfo(
272
[in, ref] policy_handle *logHandle,
273
[in] uint32 propertyId,
274
[in, range(0, MAX_RPC_PROPERTY_BUFFER_SIZE)]
275
uint32 propertyValueBufferSize,
276
[out, size_is(propertyValueBufferSize)] uint8 *propertyValueBuffer,
277
[out, ref] uint32 *propertyValueBufferLength);
279
WERROR eventlog6_EvtRpcGetChannelList(
281
[out, ref] uint32 *numChannelPaths,
282
[out, size_is(,*numChannelPaths), range(0, MAX_RPC_CHANNEL_COUNT),charset(UTF16),string]
283
uint16 ***channelPaths);
285
WERROR eventlog6_EvtRpcGetChannelConfig(
286
[in, range(1, MAX_RPC_CHANNEL_NAME_LENGTH),charset(UTF16),string] uint16 *channelPath,
288
[out, ref] eventlog6_EvtRpcVariantList* props);
290
WERROR eventlog6_EvtRpcPutChannelConfig(
291
[in, range(1, MAX_RPC_CHANNEL_NAME_LENGTH),charset(UTF16),string] uint16 *channelPath,
293
[in] eventlog6_EvtRpcVariantList* props,
294
[out, ref] eventlog6_RpcInfo *error);
296
WERROR eventlog6_EvtRpcGetPublisherList(
298
[out, ref] uint32 *numPublisherIds,
299
[out, size_is(,*numPublisherIds), range(0, MAX_RPC_PUBLISHER_COUNT),charset(UTF16),string]
300
uint16 ***publisherIds);
302
WERROR eventlog6_EvtRpcGetPublisherListForChannel(
303
[in] uint16 *channelName,
305
[out, ref] uint32* numPublisherIds,
306
[out, size_is(,*numPublisherIds), range(0, MAX_RPC_PUBLISHER_COUNT),charset(UTF16),string]
307
uint16 ***publisherIds);
309
WERROR eventlog6_EvtRpcGetPublisherMetadata(
310
[in, unique, range(0, MAX_RPC_PUBLISHER_ID_LENGTH),charset(UTF16),string] uint16 *publisherId,
311
[in, unique, range(0, MAX_RPC_FILE_PATH_LENGTH),charset(UTF16),string] uint16 *logFilePath,
314
[out, ref] eventlog6_EvtRpcVariantList* pubMetadataProps,
315
[out, ref] policy_handle *pubMetadata);
317
WERROR eventlog6_EvtRpcGetPublisherResourceMetadata(
318
[in, ref] policy_handle *handle,
319
[in] uint32 propertyId,
321
[out, ref] eventlog6_EvtRpcVariantList *pubMetadataProps);
323
WERROR eventlog6_EvtRpcGetEventMetadataEnum(
324
[in, ref] policy_handle *pubMetadata,
326
[in, unique, range(0, MAX_RPC_FILTER_LENGTH),charset(UTF16),string] uint16 *reservedForFilter,
327
[out, ref] policy_handle *eventMetaDataEnum);
329
WERROR eventlog6_EvtRpcGetNextEventMetadata(
330
[in, ref] policy_handle *eventMetaDataEnum,
332
[in] uint32 numRequested,
333
[out, ref] uint32 *numReturned,
334
[out, size_is(,*numReturned), range(0, MAX_RPC_EVENT_METADATA_COUNT)]
335
eventlog6_EvtRpcVariantList **eventMetadataInstances);
337
WERROR eventlog6_EvtRpcGetClassicLogDisplayName(
338
[in, range(1, MAX_RPC_CHANNEL_NAME_LENGTH),charset(UTF16),string] uint16 *logName,
341
[out] uint16 **displayName);