]> git.proxmox.com Git - rustc.git/blame - vendor/windows/src/Windows/System/Diagnostics/TraceReporting/mod.rs
Merge 1.70 into proxmox/bookworm
[rustc.git] / vendor / windows / src / Windows / System / Diagnostics / TraceReporting / mod.rs
CommitLineData
353b0b11
FG
1#[doc(hidden)]
2#[repr(transparent)]
3pub struct IPlatformDiagnosticActionsStatics(::windows::core::IUnknown);
4unsafe impl ::windows::core::Interface for IPlatformDiagnosticActionsStatics {
5 type Vtable = IPlatformDiagnosticActionsStatics_Vtbl;
6}
7impl ::core::clone::Clone for IPlatformDiagnosticActionsStatics {
8 fn clone(&self) -> Self {
9 Self(self.0.clone())
10 }
11}
12unsafe impl ::windows::core::ComInterface for IPlatformDiagnosticActionsStatics {
13 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xc1145cfa_9292_4267_890a_9ea3ed072312);
14}
15#[repr(C)]
16#[doc(hidden)]
17pub struct IPlatformDiagnosticActionsStatics_Vtbl {
18 pub base__: ::windows::core::IInspectable_Vtbl,
19 pub IsScenarioEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, scenarioid: ::windows::core::GUID, result__: *mut bool) -> ::windows::core::HRESULT,
20 #[cfg(feature = "Foundation_Collections")]
21 pub TryEscalateScenario: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, scenarioid: ::windows::core::GUID, escalationtype: PlatformDiagnosticEscalationType, outputdirectory: ::std::mem::MaybeUninit<::windows::core::HSTRING>, timestampoutputdirectory: bool, forceescalationupload: bool, triggers: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
22 #[cfg(not(feature = "Foundation_Collections"))]
23 TryEscalateScenario: usize,
24 pub DownloadLatestSettingsForNamespace: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, partner: ::std::mem::MaybeUninit<::windows::core::HSTRING>, feature: ::std::mem::MaybeUninit<::windows::core::HSTRING>, isscenarionamespace: bool, downloadovercostednetwork: bool, downloadoverbattery: bool, result__: *mut PlatformDiagnosticActionState) -> ::windows::core::HRESULT,
25 #[cfg(feature = "Foundation_Collections")]
26 pub GetActiveScenarioList: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
27 #[cfg(not(feature = "Foundation_Collections"))]
28 GetActiveScenarioList: usize,
29 pub ForceUpload: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, latency: PlatformDiagnosticEventBufferLatencies, uploadovercostednetwork: bool, uploadoverbattery: bool, result__: *mut PlatformDiagnosticActionState) -> ::windows::core::HRESULT,
30 pub IsTraceRunning: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, slottype: PlatformDiagnosticTraceSlotType, scenarioid: ::windows::core::GUID, traceprofilehash: u64, result__: *mut PlatformDiagnosticTraceSlotState) -> ::windows::core::HRESULT,
31 pub GetActiveTraceRuntime: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, slottype: PlatformDiagnosticTraceSlotType, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
32 #[cfg(feature = "Foundation_Collections")]
33 pub GetKnownTraceList: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, slottype: PlatformDiagnosticTraceSlotType, result__: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
34 #[cfg(not(feature = "Foundation_Collections"))]
35 GetKnownTraceList: usize,
36}
37#[doc(hidden)]
38#[repr(transparent)]
39pub struct IPlatformDiagnosticTraceInfo(::windows::core::IUnknown);
40unsafe impl ::windows::core::Interface for IPlatformDiagnosticTraceInfo {
41 type Vtable = IPlatformDiagnosticTraceInfo_Vtbl;
42}
43impl ::core::clone::Clone for IPlatformDiagnosticTraceInfo {
44 fn clone(&self) -> Self {
45 Self(self.0.clone())
46 }
47}
48unsafe impl ::windows::core::ComInterface for IPlatformDiagnosticTraceInfo {
49 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xf870ed97_d597_4bf7_88dc_cf5c7dc2a1d2);
50}
51#[repr(C)]
52#[doc(hidden)]
53pub struct IPlatformDiagnosticTraceInfo_Vtbl {
54 pub base__: ::windows::core::IInspectable_Vtbl,
55 pub ScenarioId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut ::windows::core::GUID) -> ::windows::core::HRESULT,
56 pub ProfileHash: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut u64) -> ::windows::core::HRESULT,
57 pub IsExclusive: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
58 pub IsAutoLogger: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut bool) -> ::windows::core::HRESULT,
59 pub MaxTraceDurationFileTime: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut i64) -> ::windows::core::HRESULT,
60 pub Priority: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut PlatformDiagnosticTracePriority) -> ::windows::core::HRESULT,
61}
62#[doc(hidden)]
63#[repr(transparent)]
64pub struct IPlatformDiagnosticTraceRuntimeInfo(::windows::core::IUnknown);
65unsafe impl ::windows::core::Interface for IPlatformDiagnosticTraceRuntimeInfo {
66 type Vtable = IPlatformDiagnosticTraceRuntimeInfo_Vtbl;
67}
68impl ::core::clone::Clone for IPlatformDiagnosticTraceRuntimeInfo {
69 fn clone(&self) -> Self {
70 Self(self.0.clone())
71 }
72}
73unsafe impl ::windows::core::ComInterface for IPlatformDiagnosticTraceRuntimeInfo {
74 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x3d4d5e2d_01d8_4768_8554_1eb1ca610986);
75}
76#[repr(C)]
77#[doc(hidden)]
78pub struct IPlatformDiagnosticTraceRuntimeInfo_Vtbl {
79 pub base__: ::windows::core::IInspectable_Vtbl,
80 pub RuntimeFileTime: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut i64) -> ::windows::core::HRESULT,
81 pub EtwRuntimeFileTime: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut i64) -> ::windows::core::HRESULT,
82}
83#[doc = "*Required features: `\"System_Diagnostics_TraceReporting\"`*"]
84pub struct PlatformDiagnosticActions;
85impl PlatformDiagnosticActions {
86 pub fn IsScenarioEnabled(scenarioid: ::windows::core::GUID) -> ::windows::core::Result<bool> {
87 Self::IPlatformDiagnosticActionsStatics(|this| unsafe {
88 let mut result__ = ::windows::core::zeroed::<bool>();
89 (::windows::core::Interface::vtable(this).IsScenarioEnabled)(::windows::core::Interface::as_raw(this), scenarioid, &mut result__).from_abi(result__)
90 })
91 }
92 #[doc = "*Required features: `\"Foundation_Collections\"`*"]
93 #[cfg(feature = "Foundation_Collections")]
94 pub fn TryEscalateScenario<P0>(scenarioid: ::windows::core::GUID, escalationtype: PlatformDiagnosticEscalationType, outputdirectory: &::windows::core::HSTRING, timestampoutputdirectory: bool, forceescalationupload: bool, triggers: P0) -> ::windows::core::Result<bool>
95 where
96 P0: ::windows::core::TryIntoParam<super::super::super::Foundation::Collections::IMapView<::windows::core::HSTRING, ::windows::core::HSTRING>>,
97 {
98 Self::IPlatformDiagnosticActionsStatics(|this| unsafe {
99 let mut result__ = ::windows::core::zeroed::<bool>();
100 (::windows::core::Interface::vtable(this).TryEscalateScenario)(::windows::core::Interface::as_raw(this), scenarioid, escalationtype, ::core::mem::transmute_copy(outputdirectory), timestampoutputdirectory, forceescalationupload, triggers.try_into_param()?.abi(), &mut result__).from_abi(result__)
101 })
102 }
103 pub fn DownloadLatestSettingsForNamespace(partner: &::windows::core::HSTRING, feature: &::windows::core::HSTRING, isscenarionamespace: bool, downloadovercostednetwork: bool, downloadoverbattery: bool) -> ::windows::core::Result<PlatformDiagnosticActionState> {
104 Self::IPlatformDiagnosticActionsStatics(|this| unsafe {
105 let mut result__ = ::windows::core::zeroed::<PlatformDiagnosticActionState>();
106 (::windows::core::Interface::vtable(this).DownloadLatestSettingsForNamespace)(::windows::core::Interface::as_raw(this), ::core::mem::transmute_copy(partner), ::core::mem::transmute_copy(feature), isscenarionamespace, downloadovercostednetwork, downloadoverbattery, &mut result__).from_abi(result__)
107 })
108 }
109 #[doc = "*Required features: `\"Foundation_Collections\"`*"]
110 #[cfg(feature = "Foundation_Collections")]
111 pub fn GetActiveScenarioList() -> ::windows::core::Result<super::super::super::Foundation::Collections::IVectorView<::windows::core::GUID>> {
112 Self::IPlatformDiagnosticActionsStatics(|this| unsafe {
113 let mut result__ = ::windows::core::zeroed::<super::super::super::Foundation::Collections::IVectorView<::windows::core::GUID>>();
114 (::windows::core::Interface::vtable(this).GetActiveScenarioList)(::windows::core::Interface::as_raw(this), &mut result__).from_abi(result__)
115 })
116 }
117 pub fn ForceUpload(latency: PlatformDiagnosticEventBufferLatencies, uploadovercostednetwork: bool, uploadoverbattery: bool) -> ::windows::core::Result<PlatformDiagnosticActionState> {
118 Self::IPlatformDiagnosticActionsStatics(|this| unsafe {
119 let mut result__ = ::windows::core::zeroed::<PlatformDiagnosticActionState>();
120 (::windows::core::Interface::vtable(this).ForceUpload)(::windows::core::Interface::as_raw(this), latency, uploadovercostednetwork, uploadoverbattery, &mut result__).from_abi(result__)
121 })
122 }
123 pub fn IsTraceRunning(slottype: PlatformDiagnosticTraceSlotType, scenarioid: ::windows::core::GUID, traceprofilehash: u64) -> ::windows::core::Result<PlatformDiagnosticTraceSlotState> {
124 Self::IPlatformDiagnosticActionsStatics(|this| unsafe {
125 let mut result__ = ::windows::core::zeroed::<PlatformDiagnosticTraceSlotState>();
126 (::windows::core::Interface::vtable(this).IsTraceRunning)(::windows::core::Interface::as_raw(this), slottype, scenarioid, traceprofilehash, &mut result__).from_abi(result__)
127 })
128 }
129 pub fn GetActiveTraceRuntime(slottype: PlatformDiagnosticTraceSlotType) -> ::windows::core::Result<PlatformDiagnosticTraceRuntimeInfo> {
130 Self::IPlatformDiagnosticActionsStatics(|this| unsafe {
131 let mut result__ = ::windows::core::zeroed::<PlatformDiagnosticTraceRuntimeInfo>();
132 (::windows::core::Interface::vtable(this).GetActiveTraceRuntime)(::windows::core::Interface::as_raw(this), slottype, &mut result__).from_abi(result__)
133 })
134 }
135 #[doc = "*Required features: `\"Foundation_Collections\"`*"]
136 #[cfg(feature = "Foundation_Collections")]
137 pub fn GetKnownTraceList(slottype: PlatformDiagnosticTraceSlotType) -> ::windows::core::Result<super::super::super::Foundation::Collections::IVectorView<PlatformDiagnosticTraceInfo>> {
138 Self::IPlatformDiagnosticActionsStatics(|this| unsafe {
139 let mut result__ = ::windows::core::zeroed::<super::super::super::Foundation::Collections::IVectorView<PlatformDiagnosticTraceInfo>>();
140 (::windows::core::Interface::vtable(this).GetKnownTraceList)(::windows::core::Interface::as_raw(this), slottype, &mut result__).from_abi(result__)
141 })
142 }
143 #[doc(hidden)]
144 pub fn IPlatformDiagnosticActionsStatics<R, F: FnOnce(&IPlatformDiagnosticActionsStatics) -> ::windows::core::Result<R>>(callback: F) -> ::windows::core::Result<R> {
145 static SHARED: ::windows::imp::FactoryCache<PlatformDiagnosticActions, IPlatformDiagnosticActionsStatics> = ::windows::imp::FactoryCache::new();
146 SHARED.call(callback)
147 }
148}
149impl ::windows::core::RuntimeName for PlatformDiagnosticActions {
150 const NAME: &'static str = "Windows.System.Diagnostics.TraceReporting.PlatformDiagnosticActions";
151}
152#[doc = "*Required features: `\"System_Diagnostics_TraceReporting\"`*"]
153#[repr(transparent)]
154pub struct PlatformDiagnosticTraceInfo(::windows::core::IUnknown);
155impl PlatformDiagnosticTraceInfo {
156 pub fn ScenarioId(&self) -> ::windows::core::Result<::windows::core::GUID> {
157 let this = self;
158 unsafe {
159 let mut result__ = ::windows::core::zeroed::<::windows::core::GUID>();
160 (::windows::core::Interface::vtable(this).ScenarioId)(::windows::core::Interface::as_raw(this), &mut result__).from_abi(result__)
161 }
162 }
163 pub fn ProfileHash(&self) -> ::windows::core::Result<u64> {
164 let this = self;
165 unsafe {
166 let mut result__ = ::windows::core::zeroed::<u64>();
167 (::windows::core::Interface::vtable(this).ProfileHash)(::windows::core::Interface::as_raw(this), &mut result__).from_abi(result__)
168 }
169 }
170 pub fn IsExclusive(&self) -> ::windows::core::Result<bool> {
171 let this = self;
172 unsafe {
173 let mut result__ = ::windows::core::zeroed::<bool>();
174 (::windows::core::Interface::vtable(this).IsExclusive)(::windows::core::Interface::as_raw(this), &mut result__).from_abi(result__)
175 }
176 }
177 pub fn IsAutoLogger(&self) -> ::windows::core::Result<bool> {
178 let this = self;
179 unsafe {
180 let mut result__ = ::windows::core::zeroed::<bool>();
181 (::windows::core::Interface::vtable(this).IsAutoLogger)(::windows::core::Interface::as_raw(this), &mut result__).from_abi(result__)
182 }
183 }
184 pub fn MaxTraceDurationFileTime(&self) -> ::windows::core::Result<i64> {
185 let this = self;
186 unsafe {
187 let mut result__ = ::windows::core::zeroed::<i64>();
188 (::windows::core::Interface::vtable(this).MaxTraceDurationFileTime)(::windows::core::Interface::as_raw(this), &mut result__).from_abi(result__)
189 }
190 }
191 pub fn Priority(&self) -> ::windows::core::Result<PlatformDiagnosticTracePriority> {
192 let this = self;
193 unsafe {
194 let mut result__ = ::windows::core::zeroed::<PlatformDiagnosticTracePriority>();
195 (::windows::core::Interface::vtable(this).Priority)(::windows::core::Interface::as_raw(this), &mut result__).from_abi(result__)
196 }
197 }
198}
199impl ::core::cmp::PartialEq for PlatformDiagnosticTraceInfo {
200 fn eq(&self, other: &Self) -> bool {
201 self.0 == other.0
202 }
203}
204impl ::core::cmp::Eq for PlatformDiagnosticTraceInfo {}
205impl ::core::fmt::Debug for PlatformDiagnosticTraceInfo {
206 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
207 f.debug_tuple("PlatformDiagnosticTraceInfo").field(&self.0).finish()
208 }
209}
210impl ::windows::core::RuntimeType for PlatformDiagnosticTraceInfo {
211 const SIGNATURE: ::windows::imp::ConstBuffer = ::windows::imp::ConstBuffer::from_slice(b"rc(Windows.System.Diagnostics.TraceReporting.PlatformDiagnosticTraceInfo;{f870ed97-d597-4bf7-88dc-cf5c7dc2a1d2})");
212}
213impl ::core::clone::Clone for PlatformDiagnosticTraceInfo {
214 fn clone(&self) -> Self {
215 Self(self.0.clone())
216 }
217}
218unsafe impl ::windows::core::Interface for PlatformDiagnosticTraceInfo {
219 type Vtable = IPlatformDiagnosticTraceInfo_Vtbl;
220}
221unsafe impl ::windows::core::ComInterface for PlatformDiagnosticTraceInfo {
222 const IID: ::windows::core::GUID = <IPlatformDiagnosticTraceInfo as ::windows::core::ComInterface>::IID;
223}
224impl ::windows::core::RuntimeName for PlatformDiagnosticTraceInfo {
225 const NAME: &'static str = "Windows.System.Diagnostics.TraceReporting.PlatformDiagnosticTraceInfo";
226}
227::windows::imp::interface_hierarchy!(PlatformDiagnosticTraceInfo, ::windows::core::IUnknown, ::windows::core::IInspectable);
228unsafe impl ::core::marker::Send for PlatformDiagnosticTraceInfo {}
229unsafe impl ::core::marker::Sync for PlatformDiagnosticTraceInfo {}
230#[doc = "*Required features: `\"System_Diagnostics_TraceReporting\"`*"]
231#[repr(transparent)]
232pub struct PlatformDiagnosticTraceRuntimeInfo(::windows::core::IUnknown);
233impl PlatformDiagnosticTraceRuntimeInfo {
234 pub fn RuntimeFileTime(&self) -> ::windows::core::Result<i64> {
235 let this = self;
236 unsafe {
237 let mut result__ = ::windows::core::zeroed::<i64>();
238 (::windows::core::Interface::vtable(this).RuntimeFileTime)(::windows::core::Interface::as_raw(this), &mut result__).from_abi(result__)
239 }
240 }
241 pub fn EtwRuntimeFileTime(&self) -> ::windows::core::Result<i64> {
242 let this = self;
243 unsafe {
244 let mut result__ = ::windows::core::zeroed::<i64>();
245 (::windows::core::Interface::vtable(this).EtwRuntimeFileTime)(::windows::core::Interface::as_raw(this), &mut result__).from_abi(result__)
246 }
247 }
248}
249impl ::core::cmp::PartialEq for PlatformDiagnosticTraceRuntimeInfo {
250 fn eq(&self, other: &Self) -> bool {
251 self.0 == other.0
252 }
253}
254impl ::core::cmp::Eq for PlatformDiagnosticTraceRuntimeInfo {}
255impl ::core::fmt::Debug for PlatformDiagnosticTraceRuntimeInfo {
256 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
257 f.debug_tuple("PlatformDiagnosticTraceRuntimeInfo").field(&self.0).finish()
258 }
259}
260impl ::windows::core::RuntimeType for PlatformDiagnosticTraceRuntimeInfo {
261 const SIGNATURE: ::windows::imp::ConstBuffer = ::windows::imp::ConstBuffer::from_slice(b"rc(Windows.System.Diagnostics.TraceReporting.PlatformDiagnosticTraceRuntimeInfo;{3d4d5e2d-01d8-4768-8554-1eb1ca610986})");
262}
263impl ::core::clone::Clone for PlatformDiagnosticTraceRuntimeInfo {
264 fn clone(&self) -> Self {
265 Self(self.0.clone())
266 }
267}
268unsafe impl ::windows::core::Interface for PlatformDiagnosticTraceRuntimeInfo {
269 type Vtable = IPlatformDiagnosticTraceRuntimeInfo_Vtbl;
270}
271unsafe impl ::windows::core::ComInterface for PlatformDiagnosticTraceRuntimeInfo {
272 const IID: ::windows::core::GUID = <IPlatformDiagnosticTraceRuntimeInfo as ::windows::core::ComInterface>::IID;
273}
274impl ::windows::core::RuntimeName for PlatformDiagnosticTraceRuntimeInfo {
275 const NAME: &'static str = "Windows.System.Diagnostics.TraceReporting.PlatformDiagnosticTraceRuntimeInfo";
276}
277::windows::imp::interface_hierarchy!(PlatformDiagnosticTraceRuntimeInfo, ::windows::core::IUnknown, ::windows::core::IInspectable);
278unsafe impl ::core::marker::Send for PlatformDiagnosticTraceRuntimeInfo {}
279unsafe impl ::core::marker::Sync for PlatformDiagnosticTraceRuntimeInfo {}
280#[doc = "*Required features: `\"System_Diagnostics_TraceReporting\"`*"]
281#[repr(transparent)]
282#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
283pub struct PlatformDiagnosticActionState(pub i32);
284impl PlatformDiagnosticActionState {
285 pub const Success: Self = Self(0i32);
286 pub const FreeNetworkNotAvailable: Self = Self(1i32);
287 pub const ACPowerNotAvailable: Self = Self(2i32);
288}
289impl ::core::marker::Copy for PlatformDiagnosticActionState {}
290impl ::core::clone::Clone for PlatformDiagnosticActionState {
291 fn clone(&self) -> Self {
292 *self
293 }
294}
295impl ::core::default::Default for PlatformDiagnosticActionState {
296 fn default() -> Self {
297 Self(0)
298 }
299}
300impl ::windows::core::TypeKind for PlatformDiagnosticActionState {
301 type TypeKind = ::windows::core::CopyType;
302}
303impl ::core::fmt::Debug for PlatformDiagnosticActionState {
304 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
305 f.debug_tuple("PlatformDiagnosticActionState").field(&self.0).finish()
306 }
307}
308impl ::windows::core::RuntimeType for PlatformDiagnosticActionState {
309 const SIGNATURE: ::windows::imp::ConstBuffer = ::windows::imp::ConstBuffer::from_slice(b"enum(Windows.System.Diagnostics.TraceReporting.PlatformDiagnosticActionState;i4)");
310}
311#[doc = "*Required features: `\"System_Diagnostics_TraceReporting\"`*"]
312#[repr(transparent)]
313#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
314pub struct PlatformDiagnosticEscalationType(pub i32);
315impl PlatformDiagnosticEscalationType {
316 pub const OnCompletion: Self = Self(0i32);
317 pub const OnFailure: Self = Self(1i32);
318}
319impl ::core::marker::Copy for PlatformDiagnosticEscalationType {}
320impl ::core::clone::Clone for PlatformDiagnosticEscalationType {
321 fn clone(&self) -> Self {
322 *self
323 }
324}
325impl ::core::default::Default for PlatformDiagnosticEscalationType {
326 fn default() -> Self {
327 Self(0)
328 }
329}
330impl ::windows::core::TypeKind for PlatformDiagnosticEscalationType {
331 type TypeKind = ::windows::core::CopyType;
332}
333impl ::core::fmt::Debug for PlatformDiagnosticEscalationType {
334 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
335 f.debug_tuple("PlatformDiagnosticEscalationType").field(&self.0).finish()
336 }
337}
338impl ::windows::core::RuntimeType for PlatformDiagnosticEscalationType {
339 const SIGNATURE: ::windows::imp::ConstBuffer = ::windows::imp::ConstBuffer::from_slice(b"enum(Windows.System.Diagnostics.TraceReporting.PlatformDiagnosticEscalationType;i4)");
340}
341#[doc = "*Required features: `\"System_Diagnostics_TraceReporting\"`*"]
342#[repr(transparent)]
343#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
344pub struct PlatformDiagnosticEventBufferLatencies(pub u32);
345impl PlatformDiagnosticEventBufferLatencies {
346 pub const Normal: Self = Self(1u32);
347 pub const CostDeferred: Self = Self(2u32);
348 pub const Realtime: Self = Self(4u32);
349}
350impl ::core::marker::Copy for PlatformDiagnosticEventBufferLatencies {}
351impl ::core::clone::Clone for PlatformDiagnosticEventBufferLatencies {
352 fn clone(&self) -> Self {
353 *self
354 }
355}
356impl ::core::default::Default for PlatformDiagnosticEventBufferLatencies {
357 fn default() -> Self {
358 Self(0)
359 }
360}
361impl ::windows::core::TypeKind for PlatformDiagnosticEventBufferLatencies {
362 type TypeKind = ::windows::core::CopyType;
363}
364impl ::core::fmt::Debug for PlatformDiagnosticEventBufferLatencies {
365 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
366 f.debug_tuple("PlatformDiagnosticEventBufferLatencies").field(&self.0).finish()
367 }
368}
369impl PlatformDiagnosticEventBufferLatencies {
370 pub const fn contains(&self, other: Self) -> bool {
371 self.0 & other.0 == other.0
372 }
373}
374impl ::core::ops::BitOr for PlatformDiagnosticEventBufferLatencies {
375 type Output = Self;
376 fn bitor(self, other: Self) -> Self {
377 Self(self.0 | other.0)
378 }
379}
380impl ::core::ops::BitAnd for PlatformDiagnosticEventBufferLatencies {
381 type Output = Self;
382 fn bitand(self, other: Self) -> Self {
383 Self(self.0 & other.0)
384 }
385}
386impl ::core::ops::BitOrAssign for PlatformDiagnosticEventBufferLatencies {
387 fn bitor_assign(&mut self, other: Self) {
388 self.0.bitor_assign(other.0)
389 }
390}
391impl ::core::ops::BitAndAssign for PlatformDiagnosticEventBufferLatencies {
392 fn bitand_assign(&mut self, other: Self) {
393 self.0.bitand_assign(other.0)
394 }
395}
396impl ::core::ops::Not for PlatformDiagnosticEventBufferLatencies {
397 type Output = Self;
398 fn not(self) -> Self {
399 Self(self.0.not())
400 }
401}
402impl ::windows::core::RuntimeType for PlatformDiagnosticEventBufferLatencies {
403 const SIGNATURE: ::windows::imp::ConstBuffer = ::windows::imp::ConstBuffer::from_slice(b"enum(Windows.System.Diagnostics.TraceReporting.PlatformDiagnosticEventBufferLatencies;u4)");
404}
405#[doc = "*Required features: `\"System_Diagnostics_TraceReporting\"`*"]
406#[repr(transparent)]
407#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
408pub struct PlatformDiagnosticTracePriority(pub i32);
409impl PlatformDiagnosticTracePriority {
410 pub const Normal: Self = Self(0i32);
411 pub const UserElevated: Self = Self(1i32);
412}
413impl ::core::marker::Copy for PlatformDiagnosticTracePriority {}
414impl ::core::clone::Clone for PlatformDiagnosticTracePriority {
415 fn clone(&self) -> Self {
416 *self
417 }
418}
419impl ::core::default::Default for PlatformDiagnosticTracePriority {
420 fn default() -> Self {
421 Self(0)
422 }
423}
424impl ::windows::core::TypeKind for PlatformDiagnosticTracePriority {
425 type TypeKind = ::windows::core::CopyType;
426}
427impl ::core::fmt::Debug for PlatformDiagnosticTracePriority {
428 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
429 f.debug_tuple("PlatformDiagnosticTracePriority").field(&self.0).finish()
430 }
431}
432impl ::windows::core::RuntimeType for PlatformDiagnosticTracePriority {
433 const SIGNATURE: ::windows::imp::ConstBuffer = ::windows::imp::ConstBuffer::from_slice(b"enum(Windows.System.Diagnostics.TraceReporting.PlatformDiagnosticTracePriority;i4)");
434}
435#[doc = "*Required features: `\"System_Diagnostics_TraceReporting\"`*"]
436#[repr(transparent)]
437#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
438pub struct PlatformDiagnosticTraceSlotState(pub i32);
439impl PlatformDiagnosticTraceSlotState {
440 pub const NotRunning: Self = Self(0i32);
441 pub const Running: Self = Self(1i32);
442 pub const Throttled: Self = Self(2i32);
443}
444impl ::core::marker::Copy for PlatformDiagnosticTraceSlotState {}
445impl ::core::clone::Clone for PlatformDiagnosticTraceSlotState {
446 fn clone(&self) -> Self {
447 *self
448 }
449}
450impl ::core::default::Default for PlatformDiagnosticTraceSlotState {
451 fn default() -> Self {
452 Self(0)
453 }
454}
455impl ::windows::core::TypeKind for PlatformDiagnosticTraceSlotState {
456 type TypeKind = ::windows::core::CopyType;
457}
458impl ::core::fmt::Debug for PlatformDiagnosticTraceSlotState {
459 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
460 f.debug_tuple("PlatformDiagnosticTraceSlotState").field(&self.0).finish()
461 }
462}
463impl ::windows::core::RuntimeType for PlatformDiagnosticTraceSlotState {
464 const SIGNATURE: ::windows::imp::ConstBuffer = ::windows::imp::ConstBuffer::from_slice(b"enum(Windows.System.Diagnostics.TraceReporting.PlatformDiagnosticTraceSlotState;i4)");
465}
466#[doc = "*Required features: `\"System_Diagnostics_TraceReporting\"`*"]
467#[repr(transparent)]
468#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
469pub struct PlatformDiagnosticTraceSlotType(pub i32);
470impl PlatformDiagnosticTraceSlotType {
471 pub const Alternative: Self = Self(0i32);
472 pub const AlwaysOn: Self = Self(1i32);
473 pub const Mini: Self = Self(2i32);
474}
475impl ::core::marker::Copy for PlatformDiagnosticTraceSlotType {}
476impl ::core::clone::Clone for PlatformDiagnosticTraceSlotType {
477 fn clone(&self) -> Self {
478 *self
479 }
480}
481impl ::core::default::Default for PlatformDiagnosticTraceSlotType {
482 fn default() -> Self {
483 Self(0)
484 }
485}
486impl ::windows::core::TypeKind for PlatformDiagnosticTraceSlotType {
487 type TypeKind = ::windows::core::CopyType;
488}
489impl ::core::fmt::Debug for PlatformDiagnosticTraceSlotType {
490 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
491 f.debug_tuple("PlatformDiagnosticTraceSlotType").field(&self.0).finish()
492 }
493}
494impl ::windows::core::RuntimeType for PlatformDiagnosticTraceSlotType {
495 const SIGNATURE: ::windows::imp::ConstBuffer = ::windows::imp::ConstBuffer::from_slice(b"enum(Windows.System.Diagnostics.TraceReporting.PlatformDiagnosticTraceSlotType;i4)");
496}
497#[cfg(feature = "implement")]
498::core::include!("impl.rs");