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
);