blob: 66e2441d1e66d19b86dd90b3692f88e437bb5977 [file] [log] [blame]
#[inline]
pub unsafe fn CreateDataModelManager<P0>(debughost: P0) -> ::windows_core::Result<IDataModelManager>
where
P0: ::windows_core::IntoParam<IDebugHost>,
{
::windows_targets::link!("dbgmodel.dll" "system" fn CreateDataModelManager(debughost : * mut::core::ffi::c_void, manager : *mut * mut::core::ffi::c_void) -> ::windows_core::HRESULT);
let mut result__ = ::std::mem::zeroed();
CreateDataModelManager(debughost.into_param().abi(), &mut result__).from_abi(result__)
}
#[inline]
pub unsafe fn DebugConnect<P0>(remoteoptions: P0, interfaceid: *const ::windows_core::GUID, interface: *mut *mut ::core::ffi::c_void) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
::windows_targets::link!("dbgeng.dll" "system" fn DebugConnect(remoteoptions : ::windows_core::PCSTR, interfaceid : *const ::windows_core::GUID, interface : *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT);
DebugConnect(remoteoptions.into_param().abi(), interfaceid, interface).ok()
}
#[inline]
pub unsafe fn DebugConnectWide<P0>(remoteoptions: P0, interfaceid: *const ::windows_core::GUID, interface: *mut *mut ::core::ffi::c_void) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
::windows_targets::link!("dbgeng.dll" "system" fn DebugConnectWide(remoteoptions : ::windows_core::PCWSTR, interfaceid : *const ::windows_core::GUID, interface : *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT);
DebugConnectWide(remoteoptions.into_param().abi(), interfaceid, interface).ok()
}
#[inline]
pub unsafe fn DebugCreate<T>() -> ::windows_core::Result<T>
where
T: ::windows_core::ComInterface,
{
::windows_targets::link!("dbgeng.dll" "system" fn DebugCreate(interfaceid : *const ::windows_core::GUID, interface : *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT);
let mut result__ = ::std::ptr::null_mut();
DebugCreate(&<T as ::windows_core::ComInterface>::IID, &mut result__).from_abi(result__)
}
#[inline]
pub unsafe fn DebugCreateEx<T>(dbgengoptions: u32) -> ::windows_core::Result<T>
where
T: ::windows_core::ComInterface,
{
::windows_targets::link!("dbgeng.dll" "system" fn DebugCreateEx(interfaceid : *const ::windows_core::GUID, dbgengoptions : u32, interface : *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT);
let mut result__ = ::std::ptr::null_mut();
DebugCreateEx(&<T as ::windows_core::ComInterface>::IID, dbgengoptions, &mut result__).from_abi(result__)
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct DebugBaseEventCallbacks(::windows_core::IUnknown);
impl DebugBaseEventCallbacks {
pub unsafe fn GetInterestMask(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.GetInterestMask)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn Breakpoint<P0>(&self, bp: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IDebugBreakpoint>,
{
(::windows_core::Interface::vtable(self).base__.Breakpoint)(::windows_core::Interface::as_raw(self), bp.into_param().abi()).ok()
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn Exception(&self, exception: *const super::EXCEPTION_RECORD64, firstchance: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).base__.Exception)(::windows_core::Interface::as_raw(self), exception, firstchance).ok()
}
pub unsafe fn CreateThread(&self, handle: u64, dataoffset: u64, startoffset: u64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).base__.CreateThread)(::windows_core::Interface::as_raw(self), handle, dataoffset, startoffset).ok()
}
pub unsafe fn ExitThread(&self, exitcode: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).base__.ExitThread)(::windows_core::Interface::as_raw(self), exitcode).ok()
}
pub unsafe fn CreateProcessA<P0, P1>(&self, imagefilehandle: u64, handle: u64, baseoffset: u64, modulesize: u32, modulename: P0, imagename: P1, checksum: u32, timedatestamp: u32, initialthreadhandle: u64, threaddataoffset: u64, startoffset: u64) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
P1: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).base__.CreateProcessA)(::windows_core::Interface::as_raw(self), imagefilehandle, handle, baseoffset, modulesize, modulename.into_param().abi(), imagename.into_param().abi(), checksum, timedatestamp, initialthreadhandle, threaddataoffset, startoffset).ok()
}
pub unsafe fn ExitProcess(&self, exitcode: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).base__.ExitProcess)(::windows_core::Interface::as_raw(self), exitcode).ok()
}
pub unsafe fn LoadModule<P0, P1>(&self, imagefilehandle: u64, baseoffset: u64, modulesize: u32, modulename: P0, imagename: P1, checksum: u32, timedatestamp: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
P1: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).base__.LoadModule)(::windows_core::Interface::as_raw(self), imagefilehandle, baseoffset, modulesize, modulename.into_param().abi(), imagename.into_param().abi(), checksum, timedatestamp).ok()
}
pub unsafe fn UnloadModule<P0>(&self, imagebasename: P0, baseoffset: u64) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).base__.UnloadModule)(::windows_core::Interface::as_raw(self), imagebasename.into_param().abi(), baseoffset).ok()
}
pub unsafe fn SystemError(&self, error: u32, level: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).base__.SystemError)(::windows_core::Interface::as_raw(self), error, level).ok()
}
pub unsafe fn SessionStatus(&self, status: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).base__.SessionStatus)(::windows_core::Interface::as_raw(self), status).ok()
}
pub unsafe fn ChangeDebuggeeState(&self, flags: u32, argument: u64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).base__.ChangeDebuggeeState)(::windows_core::Interface::as_raw(self), flags, argument).ok()
}
pub unsafe fn ChangeEngineState(&self, flags: u32, argument: u64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).base__.ChangeEngineState)(::windows_core::Interface::as_raw(self), flags, argument).ok()
}
pub unsafe fn ChangeSymbolState(&self, flags: u32, argument: u64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).base__.ChangeSymbolState)(::windows_core::Interface::as_raw(self), flags, argument).ok()
}
}
::windows_core::imp::interface_hierarchy!(DebugBaseEventCallbacks, ::windows_core::IUnknown, IDebugEventCallbacks);
unsafe impl ::windows_core::Interface for DebugBaseEventCallbacks {
type Vtable = DebugBaseEventCallbacks_Vtbl;
}
unsafe impl ::windows_core::ComInterface for DebugBaseEventCallbacks {
const IID: ::windows_core::GUID = ::windows_core::GUID::zeroed();
}
#[repr(C)]
#[doc(hidden)]
pub struct DebugBaseEventCallbacks_Vtbl {
pub base__: IDebugEventCallbacks_Vtbl,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct DebugBaseEventCallbacksWide(::windows_core::IUnknown);
impl DebugBaseEventCallbacksWide {
pub unsafe fn GetInterestMask(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.GetInterestMask)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn Breakpoint<P0>(&self, bp: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IDebugBreakpoint2>,
{
(::windows_core::Interface::vtable(self).base__.Breakpoint)(::windows_core::Interface::as_raw(self), bp.into_param().abi()).ok()
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn Exception(&self, exception: *const super::EXCEPTION_RECORD64, firstchance: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).base__.Exception)(::windows_core::Interface::as_raw(self), exception, firstchance).ok()
}
pub unsafe fn CreateThread(&self, handle: u64, dataoffset: u64, startoffset: u64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).base__.CreateThread)(::windows_core::Interface::as_raw(self), handle, dataoffset, startoffset).ok()
}
pub unsafe fn ExitThread(&self, exitcode: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).base__.ExitThread)(::windows_core::Interface::as_raw(self), exitcode).ok()
}
pub unsafe fn CreateProcessA<P0, P1>(&self, imagefilehandle: u64, handle: u64, baseoffset: u64, modulesize: u32, modulename: P0, imagename: P1, checksum: u32, timedatestamp: u32, initialthreadhandle: u64, threaddataoffset: u64, startoffset: u64) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
P1: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).base__.CreateProcessA)(::windows_core::Interface::as_raw(self), imagefilehandle, handle, baseoffset, modulesize, modulename.into_param().abi(), imagename.into_param().abi(), checksum, timedatestamp, initialthreadhandle, threaddataoffset, startoffset).ok()
}
pub unsafe fn ExitProcess(&self, exitcode: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).base__.ExitProcess)(::windows_core::Interface::as_raw(self), exitcode).ok()
}
pub unsafe fn LoadModule<P0, P1>(&self, imagefilehandle: u64, baseoffset: u64, modulesize: u32, modulename: P0, imagename: P1, checksum: u32, timedatestamp: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
P1: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).base__.LoadModule)(::windows_core::Interface::as_raw(self), imagefilehandle, baseoffset, modulesize, modulename.into_param().abi(), imagename.into_param().abi(), checksum, timedatestamp).ok()
}
pub unsafe fn UnloadModule<P0>(&self, imagebasename: P0, baseoffset: u64) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).base__.UnloadModule)(::windows_core::Interface::as_raw(self), imagebasename.into_param().abi(), baseoffset).ok()
}
pub unsafe fn SystemError(&self, error: u32, level: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).base__.SystemError)(::windows_core::Interface::as_raw(self), error, level).ok()
}
pub unsafe fn SessionStatus(&self, status: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).base__.SessionStatus)(::windows_core::Interface::as_raw(self), status).ok()
}
pub unsafe fn ChangeDebuggeeState(&self, flags: u32, argument: u64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).base__.ChangeDebuggeeState)(::windows_core::Interface::as_raw(self), flags, argument).ok()
}
pub unsafe fn ChangeEngineState(&self, flags: u32, argument: u64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).base__.ChangeEngineState)(::windows_core::Interface::as_raw(self), flags, argument).ok()
}
pub unsafe fn ChangeSymbolState(&self, flags: u32, argument: u64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).base__.ChangeSymbolState)(::windows_core::Interface::as_raw(self), flags, argument).ok()
}
}
::windows_core::imp::interface_hierarchy!(DebugBaseEventCallbacksWide, ::windows_core::IUnknown, IDebugEventCallbacksWide);
unsafe impl ::windows_core::Interface for DebugBaseEventCallbacksWide {
type Vtable = DebugBaseEventCallbacksWide_Vtbl;
}
unsafe impl ::windows_core::ComInterface for DebugBaseEventCallbacksWide {
const IID: ::windows_core::GUID = ::windows_core::GUID::zeroed();
}
#[repr(C)]
#[doc(hidden)]
pub struct DebugBaseEventCallbacksWide_Vtbl {
pub base__: IDebugEventCallbacksWide_Vtbl,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct ICodeAddressConcept(::windows_core::IUnknown);
impl ICodeAddressConcept {
pub unsafe fn GetContainingSymbol<P0>(&self, pcontextobject: P0) -> ::windows_core::Result<IDebugHostSymbol>
where
P0: ::windows_core::IntoParam<IModelObject>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetContainingSymbol)(::windows_core::Interface::as_raw(self), pcontextobject.into_param().abi(), &mut result__).from_abi(result__)
}
}
::windows_core::imp::interface_hierarchy!(ICodeAddressConcept, ::windows_core::IUnknown);
unsafe impl ::windows_core::Interface for ICodeAddressConcept {
type Vtable = ICodeAddressConcept_Vtbl;
}
unsafe impl ::windows_core::ComInterface for ICodeAddressConcept {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0xc7371568_5c78_4a00_a4ab_6ef8823184cb);
}
#[repr(C)]
#[doc(hidden)]
pub struct ICodeAddressConcept_Vtbl {
pub base__: ::windows_core::IUnknown_Vtbl,
pub GetContainingSymbol: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pcontextobject: *mut ::core::ffi::c_void, ppsymbol: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IComparableConcept(::windows_core::IUnknown);
impl IComparableConcept {
pub unsafe fn CompareObjects<P0, P1>(&self, contextobject: P0, otherobject: P1) -> ::windows_core::Result<i32>
where
P0: ::windows_core::IntoParam<IModelObject>,
P1: ::windows_core::IntoParam<IModelObject>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).CompareObjects)(::windows_core::Interface::as_raw(self), contextobject.into_param().abi(), otherobject.into_param().abi(), &mut result__).from_abi(result__)
}
}
::windows_core::imp::interface_hierarchy!(IComparableConcept, ::windows_core::IUnknown);
unsafe impl ::windows_core::Interface for IComparableConcept {
type Vtable = IComparableConcept_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IComparableConcept {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0xa7830646_9f0c_4a31_ba19_503f33e6c8a3);
}
#[repr(C)]
#[doc(hidden)]
pub struct IComparableConcept_Vtbl {
pub base__: ::windows_core::IUnknown_Vtbl,
pub CompareObjects: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, contextobject: *mut ::core::ffi::c_void, otherobject: *mut ::core::ffi::c_void, comparisonresult: *mut i32) -> ::windows_core::HRESULT,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IDataModelConcept(::windows_core::IUnknown);
impl IDataModelConcept {
pub unsafe fn InitializeObject<P0, P1, P2>(&self, modelobject: P0, matchingtypesignature: P1, wildcardmatches: P2) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IModelObject>,
P1: ::windows_core::IntoParam<IDebugHostTypeSignature>,
P2: ::windows_core::IntoParam<IDebugHostSymbolEnumerator>,
{
(::windows_core::Interface::vtable(self).InitializeObject)(::windows_core::Interface::as_raw(self), modelobject.into_param().abi(), matchingtypesignature.into_param().abi(), wildcardmatches.into_param().abi()).ok()
}
pub unsafe fn GetName(&self) -> ::windows_core::Result<::windows_core::BSTR> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetName)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
}
::windows_core::imp::interface_hierarchy!(IDataModelConcept, ::windows_core::IUnknown);
unsafe impl ::windows_core::Interface for IDataModelConcept {
type Vtable = IDataModelConcept_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IDataModelConcept {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0xfcb98d1d_1114_4fbf_b24c_effcb5def0d3);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDataModelConcept_Vtbl {
pub base__: ::windows_core::IUnknown_Vtbl,
pub InitializeObject: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, modelobject: *mut ::core::ffi::c_void, matchingtypesignature: *mut ::core::ffi::c_void, wildcardmatches: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub GetName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, modelname: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IDataModelManager(::windows_core::IUnknown);
impl IDataModelManager {
pub unsafe fn Close(&self) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).Close)(::windows_core::Interface::as_raw(self)).ok()
}
pub unsafe fn CreateNoValue(&self) -> ::windows_core::Result<IModelObject> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).CreateNoValue)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn CreateErrorObject<P0>(&self, hrerror: ::windows_core::HRESULT, pwszmessage: P0) -> ::windows_core::Result<IModelObject>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).CreateErrorObject)(::windows_core::Interface::as_raw(self), hrerror, pwszmessage.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn CreateTypedObject<P0, P1>(&self, context: P0, objectlocation: Location, objecttype: P1) -> ::windows_core::Result<IModelObject>
where
P0: ::windows_core::IntoParam<IDebugHostContext>,
P1: ::windows_core::IntoParam<IDebugHostType>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).CreateTypedObject)(::windows_core::Interface::as_raw(self), context.into_param().abi(), ::core::mem::transmute(objectlocation), objecttype.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn CreateTypedObjectReference<P0, P1>(&self, context: P0, objectlocation: Location, objecttype: P1) -> ::windows_core::Result<IModelObject>
where
P0: ::windows_core::IntoParam<IDebugHostContext>,
P1: ::windows_core::IntoParam<IDebugHostType>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).CreateTypedObjectReference)(::windows_core::Interface::as_raw(self), context.into_param().abi(), ::core::mem::transmute(objectlocation), objecttype.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn CreateSyntheticObject<P0>(&self, context: P0) -> ::windows_core::Result<IModelObject>
where
P0: ::windows_core::IntoParam<IDebugHostContext>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).CreateSyntheticObject)(::windows_core::Interface::as_raw(self), context.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn CreateDataModelObject<P0>(&self, datamodel: P0) -> ::windows_core::Result<IModelObject>
where
P0: ::windows_core::IntoParam<IDataModelConcept>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).CreateDataModelObject)(::windows_core::Interface::as_raw(self), datamodel.into_param().abi(), &mut result__).from_abi(result__)
}
#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub unsafe fn CreateIntrinsicObject(&self, objectkind: ModelObjectKind, intrinsicdata: *const super::super::super::Variant::VARIANT) -> ::windows_core::Result<IModelObject> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).CreateIntrinsicObject)(::windows_core::Interface::as_raw(self), objectkind, intrinsicdata, &mut result__).from_abi(result__)
}
#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub unsafe fn CreateTypedIntrinsicObject<P0>(&self, intrinsicdata: *const super::super::super::Variant::VARIANT, r#type: P0) -> ::windows_core::Result<IModelObject>
where
P0: ::windows_core::IntoParam<IDebugHostType>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).CreateTypedIntrinsicObject)(::windows_core::Interface::as_raw(self), intrinsicdata, r#type.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn GetModelForTypeSignature<P0>(&self, typesignature: P0) -> ::windows_core::Result<IModelObject>
where
P0: ::windows_core::IntoParam<IDebugHostTypeSignature>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetModelForTypeSignature)(::windows_core::Interface::as_raw(self), typesignature.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn GetModelForType<P0>(&self, r#type: P0, datamodel: *mut ::core::option::Option<IModelObject>, typesignature: ::core::option::Option<*mut ::core::option::Option<IDebugHostTypeSignature>>, wildcardmatches: ::core::option::Option<*mut ::core::option::Option<IDebugHostSymbolEnumerator>>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IDebugHostType>,
{
(::windows_core::Interface::vtable(self).GetModelForType)(::windows_core::Interface::as_raw(self), r#type.into_param().abi(), ::core::mem::transmute(datamodel), ::core::mem::transmute(typesignature.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(wildcardmatches.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn RegisterModelForTypeSignature<P0, P1>(&self, typesignature: P0, datamodel: P1) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IDebugHostTypeSignature>,
P1: ::windows_core::IntoParam<IModelObject>,
{
(::windows_core::Interface::vtable(self).RegisterModelForTypeSignature)(::windows_core::Interface::as_raw(self), typesignature.into_param().abi(), datamodel.into_param().abi()).ok()
}
pub unsafe fn UnregisterModelForTypeSignature<P0, P1>(&self, datamodel: P0, typesignature: P1) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IModelObject>,
P1: ::windows_core::IntoParam<IDebugHostTypeSignature>,
{
(::windows_core::Interface::vtable(self).UnregisterModelForTypeSignature)(::windows_core::Interface::as_raw(self), datamodel.into_param().abi(), typesignature.into_param().abi()).ok()
}
pub unsafe fn RegisterExtensionForTypeSignature<P0, P1>(&self, typesignature: P0, datamodel: P1) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IDebugHostTypeSignature>,
P1: ::windows_core::IntoParam<IModelObject>,
{
(::windows_core::Interface::vtable(self).RegisterExtensionForTypeSignature)(::windows_core::Interface::as_raw(self), typesignature.into_param().abi(), datamodel.into_param().abi()).ok()
}
pub unsafe fn UnregisterExtensionForTypeSignature<P0, P1>(&self, datamodel: P0, typesignature: P1) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IModelObject>,
P1: ::windows_core::IntoParam<IDebugHostTypeSignature>,
{
(::windows_core::Interface::vtable(self).UnregisterExtensionForTypeSignature)(::windows_core::Interface::as_raw(self), datamodel.into_param().abi(), typesignature.into_param().abi()).ok()
}
pub unsafe fn CreateMetadataStore<P0>(&self, parentstore: P0) -> ::windows_core::Result<IKeyStore>
where
P0: ::windows_core::IntoParam<IKeyStore>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).CreateMetadataStore)(::windows_core::Interface::as_raw(self), parentstore.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn GetRootNamespace(&self) -> ::windows_core::Result<IModelObject> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetRootNamespace)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn RegisterNamedModel<P0, P1>(&self, modelname: P0, modeobject: P1) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
P1: ::windows_core::IntoParam<IModelObject>,
{
(::windows_core::Interface::vtable(self).RegisterNamedModel)(::windows_core::Interface::as_raw(self), modelname.into_param().abi(), modeobject.into_param().abi()).ok()
}
pub unsafe fn UnregisterNamedModel<P0>(&self, modelname: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).UnregisterNamedModel)(::windows_core::Interface::as_raw(self), modelname.into_param().abi()).ok()
}
pub unsafe fn AcquireNamedModel<P0>(&self, modelname: P0) -> ::windows_core::Result<IModelObject>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).AcquireNamedModel)(::windows_core::Interface::as_raw(self), modelname.into_param().abi(), &mut result__).from_abi(result__)
}
}
::windows_core::imp::interface_hierarchy!(IDataModelManager, ::windows_core::IUnknown);
unsafe impl ::windows_core::Interface for IDataModelManager {
type Vtable = IDataModelManager_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IDataModelManager {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0x73fe19f4_a110_4500_8ed9_3c28896f508c);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDataModelManager_Vtbl {
pub base__: ::windows_core::IUnknown_Vtbl,
pub Close: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub CreateNoValue: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, object: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub CreateErrorObject: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, hrerror: ::windows_core::HRESULT, pwszmessage: ::windows_core::PCWSTR, object: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub CreateTypedObject: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, context: *mut ::core::ffi::c_void, objectlocation: Location, objecttype: *mut ::core::ffi::c_void, object: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub CreateTypedObjectReference: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, context: *mut ::core::ffi::c_void, objectlocation: Location, objecttype: *mut ::core::ffi::c_void, object: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub CreateSyntheticObject: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, context: *mut ::core::ffi::c_void, object: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub CreateDataModelObject: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, datamodel: *mut ::core::ffi::c_void, object: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub CreateIntrinsicObject: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, objectkind: ModelObjectKind, intrinsicdata: *const super::super::super::Variant::VARIANT, object: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
#[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant")))]
CreateIntrinsicObject: usize,
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub CreateTypedIntrinsicObject: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, intrinsicdata: *const super::super::super::Variant::VARIANT, r#type: *mut ::core::ffi::c_void, object: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
#[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant")))]
CreateTypedIntrinsicObject: usize,
pub GetModelForTypeSignature: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, typesignature: *mut ::core::ffi::c_void, datamodel: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub GetModelForType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: *mut ::core::ffi::c_void, datamodel: *mut *mut ::core::ffi::c_void, typesignature: *mut *mut ::core::ffi::c_void, wildcardmatches: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub RegisterModelForTypeSignature: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, typesignature: *mut ::core::ffi::c_void, datamodel: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub UnregisterModelForTypeSignature: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, datamodel: *mut ::core::ffi::c_void, typesignature: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub RegisterExtensionForTypeSignature: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, typesignature: *mut ::core::ffi::c_void, datamodel: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub UnregisterExtensionForTypeSignature: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, datamodel: *mut ::core::ffi::c_void, typesignature: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub CreateMetadataStore: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, parentstore: *mut ::core::ffi::c_void, metadatastore: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub GetRootNamespace: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, rootnamespace: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub RegisterNamedModel: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, modelname: ::windows_core::PCWSTR, modeobject: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub UnregisterNamedModel: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, modelname: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
pub AcquireNamedModel: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, modelname: ::windows_core::PCWSTR, modelobject: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IDataModelManager2(::windows_core::IUnknown);
impl IDataModelManager2 {
pub unsafe fn Close(&self) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).base__.Close)(::windows_core::Interface::as_raw(self)).ok()
}
pub unsafe fn CreateNoValue(&self) -> ::windows_core::Result<IModelObject> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.CreateNoValue)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn CreateErrorObject<P0>(&self, hrerror: ::windows_core::HRESULT, pwszmessage: P0) -> ::windows_core::Result<IModelObject>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.CreateErrorObject)(::windows_core::Interface::as_raw(self), hrerror, pwszmessage.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn CreateTypedObject<P0, P1>(&self, context: P0, objectlocation: Location, objecttype: P1) -> ::windows_core::Result<IModelObject>
where
P0: ::windows_core::IntoParam<IDebugHostContext>,
P1: ::windows_core::IntoParam<IDebugHostType>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.CreateTypedObject)(::windows_core::Interface::as_raw(self), context.into_param().abi(), ::core::mem::transmute(objectlocation), objecttype.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn CreateTypedObjectReference<P0, P1>(&self, context: P0, objectlocation: Location, objecttype: P1) -> ::windows_core::Result<IModelObject>
where
P0: ::windows_core::IntoParam<IDebugHostContext>,
P1: ::windows_core::IntoParam<IDebugHostType>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.CreateTypedObjectReference)(::windows_core::Interface::as_raw(self), context.into_param().abi(), ::core::mem::transmute(objectlocation), objecttype.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn CreateSyntheticObject<P0>(&self, context: P0) -> ::windows_core::Result<IModelObject>
where
P0: ::windows_core::IntoParam<IDebugHostContext>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.CreateSyntheticObject)(::windows_core::Interface::as_raw(self), context.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn CreateDataModelObject<P0>(&self, datamodel: P0) -> ::windows_core::Result<IModelObject>
where
P0: ::windows_core::IntoParam<IDataModelConcept>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.CreateDataModelObject)(::windows_core::Interface::as_raw(self), datamodel.into_param().abi(), &mut result__).from_abi(result__)
}
#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub unsafe fn CreateIntrinsicObject(&self, objectkind: ModelObjectKind, intrinsicdata: *const super::super::super::Variant::VARIANT) -> ::windows_core::Result<IModelObject> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.CreateIntrinsicObject)(::windows_core::Interface::as_raw(self), objectkind, intrinsicdata, &mut result__).from_abi(result__)
}
#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub unsafe fn CreateTypedIntrinsicObject<P0>(&self, intrinsicdata: *const super::super::super::Variant::VARIANT, r#type: P0) -> ::windows_core::Result<IModelObject>
where
P0: ::windows_core::IntoParam<IDebugHostType>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.CreateTypedIntrinsicObject)(::windows_core::Interface::as_raw(self), intrinsicdata, r#type.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn GetModelForTypeSignature<P0>(&self, typesignature: P0) -> ::windows_core::Result<IModelObject>
where
P0: ::windows_core::IntoParam<IDebugHostTypeSignature>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.GetModelForTypeSignature)(::windows_core::Interface::as_raw(self), typesignature.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn GetModelForType<P0>(&self, r#type: P0, datamodel: *mut ::core::option::Option<IModelObject>, typesignature: ::core::option::Option<*mut ::core::option::Option<IDebugHostTypeSignature>>, wildcardmatches: ::core::option::Option<*mut ::core::option::Option<IDebugHostSymbolEnumerator>>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IDebugHostType>,
{
(::windows_core::Interface::vtable(self).base__.GetModelForType)(::windows_core::Interface::as_raw(self), r#type.into_param().abi(), ::core::mem::transmute(datamodel), ::core::mem::transmute(typesignature.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(wildcardmatches.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn RegisterModelForTypeSignature<P0, P1>(&self, typesignature: P0, datamodel: P1) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IDebugHostTypeSignature>,
P1: ::windows_core::IntoParam<IModelObject>,
{
(::windows_core::Interface::vtable(self).base__.RegisterModelForTypeSignature)(::windows_core::Interface::as_raw(self), typesignature.into_param().abi(), datamodel.into_param().abi()).ok()
}
pub unsafe fn UnregisterModelForTypeSignature<P0, P1>(&self, datamodel: P0, typesignature: P1) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IModelObject>,
P1: ::windows_core::IntoParam<IDebugHostTypeSignature>,
{
(::windows_core::Interface::vtable(self).base__.UnregisterModelForTypeSignature)(::windows_core::Interface::as_raw(self), datamodel.into_param().abi(), typesignature.into_param().abi()).ok()
}
pub unsafe fn RegisterExtensionForTypeSignature<P0, P1>(&self, typesignature: P0, datamodel: P1) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IDebugHostTypeSignature>,
P1: ::windows_core::IntoParam<IModelObject>,
{
(::windows_core::Interface::vtable(self).base__.RegisterExtensionForTypeSignature)(::windows_core::Interface::as_raw(self), typesignature.into_param().abi(), datamodel.into_param().abi()).ok()
}
pub unsafe fn UnregisterExtensionForTypeSignature<P0, P1>(&self, datamodel: P0, typesignature: P1) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IModelObject>,
P1: ::windows_core::IntoParam<IDebugHostTypeSignature>,
{
(::windows_core::Interface::vtable(self).base__.UnregisterExtensionForTypeSignature)(::windows_core::Interface::as_raw(self), datamodel.into_param().abi(), typesignature.into_param().abi()).ok()
}
pub unsafe fn CreateMetadataStore<P0>(&self, parentstore: P0) -> ::windows_core::Result<IKeyStore>
where
P0: ::windows_core::IntoParam<IKeyStore>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.CreateMetadataStore)(::windows_core::Interface::as_raw(self), parentstore.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn GetRootNamespace(&self) -> ::windows_core::Result<IModelObject> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.GetRootNamespace)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn RegisterNamedModel<P0, P1>(&self, modelname: P0, modeobject: P1) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
P1: ::windows_core::IntoParam<IModelObject>,
{
(::windows_core::Interface::vtable(self).base__.RegisterNamedModel)(::windows_core::Interface::as_raw(self), modelname.into_param().abi(), modeobject.into_param().abi()).ok()
}
pub unsafe fn UnregisterNamedModel<P0>(&self, modelname: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).base__.UnregisterNamedModel)(::windows_core::Interface::as_raw(self), modelname.into_param().abi()).ok()
}
pub unsafe fn AcquireNamedModel<P0>(&self, modelname: P0) -> ::windows_core::Result<IModelObject>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.AcquireNamedModel)(::windows_core::Interface::as_raw(self), modelname.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn AcquireSubNamespace<P0, P1, P2, P3>(&self, modelname: P0, subnamespacemodelname: P1, accessname: P2, metadata: P3) -> ::windows_core::Result<IModelObject>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
P1: ::windows_core::IntoParam<::windows_core::PCWSTR>,
P2: ::windows_core::IntoParam<::windows_core::PCWSTR>,
P3: ::windows_core::IntoParam<IKeyStore>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).AcquireSubNamespace)(::windows_core::Interface::as_raw(self), modelname.into_param().abi(), subnamespacemodelname.into_param().abi(), accessname.into_param().abi(), metadata.into_param().abi(), &mut result__).from_abi(result__)
}
#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub unsafe fn CreateTypedIntrinsicObjectEx<P0, P1>(&self, context: P0, intrinsicdata: *const super::super::super::Variant::VARIANT, r#type: P1) -> ::windows_core::Result<IModelObject>
where
P0: ::windows_core::IntoParam<IDebugHostContext>,
P1: ::windows_core::IntoParam<IDebugHostType>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).CreateTypedIntrinsicObjectEx)(::windows_core::Interface::as_raw(self), context.into_param().abi(), intrinsicdata, r#type.into_param().abi(), &mut result__).from_abi(result__)
}
}
::windows_core::imp::interface_hierarchy!(IDataModelManager2, ::windows_core::IUnknown, IDataModelManager);
unsafe impl ::windows_core::Interface for IDataModelManager2 {
type Vtable = IDataModelManager2_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IDataModelManager2 {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0xf412c5ea_2284_4622_a660_a697160d3312);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDataModelManager2_Vtbl {
pub base__: IDataModelManager_Vtbl,
pub AcquireSubNamespace: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, modelname: ::windows_core::PCWSTR, subnamespacemodelname: ::windows_core::PCWSTR, accessname: ::windows_core::PCWSTR, metadata: *mut ::core::ffi::c_void, namespacemodelobject: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub CreateTypedIntrinsicObjectEx: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, context: *mut ::core::ffi::c_void, intrinsicdata: *const super::super::super::Variant::VARIANT, r#type: *mut ::core::ffi::c_void, object: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
#[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant")))]
CreateTypedIntrinsicObjectEx: usize,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IDataModelNameBinder(::windows_core::IUnknown);
impl IDataModelNameBinder {
pub unsafe fn BindValue<P0, P1>(&self, contextobject: P0, name: P1, value: *mut ::core::option::Option<IModelObject>, metadata: ::core::option::Option<*mut ::core::option::Option<IKeyStore>>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IModelObject>,
P1: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).BindValue)(::windows_core::Interface::as_raw(self), contextobject.into_param().abi(), name.into_param().abi(), ::core::mem::transmute(value), ::core::mem::transmute(metadata.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn BindReference<P0, P1>(&self, contextobject: P0, name: P1, reference: *mut ::core::option::Option<IModelObject>, metadata: ::core::option::Option<*mut ::core::option::Option<IKeyStore>>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IModelObject>,
P1: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).BindReference)(::windows_core::Interface::as_raw(self), contextobject.into_param().abi(), name.into_param().abi(), ::core::mem::transmute(reference), ::core::mem::transmute(metadata.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn EnumerateValues<P0>(&self, contextobject: P0) -> ::windows_core::Result<IKeyEnumerator>
where
P0: ::windows_core::IntoParam<IModelObject>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).EnumerateValues)(::windows_core::Interface::as_raw(self), contextobject.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn EnumerateReferences<P0>(&self, contextobject: P0) -> ::windows_core::Result<IKeyEnumerator>
where
P0: ::windows_core::IntoParam<IModelObject>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).EnumerateReferences)(::windows_core::Interface::as_raw(self), contextobject.into_param().abi(), &mut result__).from_abi(result__)
}
}
::windows_core::imp::interface_hierarchy!(IDataModelNameBinder, ::windows_core::IUnknown);
unsafe impl ::windows_core::Interface for IDataModelNameBinder {
type Vtable = IDataModelNameBinder_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IDataModelNameBinder {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0xaf352b7b_8292_4c01_b360_2dc3696c65e7);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDataModelNameBinder_Vtbl {
pub base__: ::windows_core::IUnknown_Vtbl,
pub BindValue: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, contextobject: *mut ::core::ffi::c_void, name: ::windows_core::PCWSTR, value: *mut *mut ::core::ffi::c_void, metadata: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub BindReference: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, contextobject: *mut ::core::ffi::c_void, name: ::windows_core::PCWSTR, reference: *mut *mut ::core::ffi::c_void, metadata: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub EnumerateValues: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, contextobject: *mut ::core::ffi::c_void, enumerator: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub EnumerateReferences: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, contextobject: *mut ::core::ffi::c_void, enumerator: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IDataModelScript(::windows_core::IUnknown);
impl IDataModelScript {
pub unsafe fn GetName(&self) -> ::windows_core::Result<::windows_core::BSTR> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetName)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn Rename<P0>(&self, scriptname: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).Rename)(::windows_core::Interface::as_raw(self), scriptname.into_param().abi()).ok()
}
#[doc = "Required features: `\"Win32_System_Com\"`"]
#[cfg(feature = "Win32_System_Com")]
pub unsafe fn Populate<P0>(&self, contentstream: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<super::super::super::Com::IStream>,
{
(::windows_core::Interface::vtable(self).Populate)(::windows_core::Interface::as_raw(self), contentstream.into_param().abi()).ok()
}
pub unsafe fn Execute<P0>(&self, client: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IDataModelScriptClient>,
{
(::windows_core::Interface::vtable(self).Execute)(::windows_core::Interface::as_raw(self), client.into_param().abi()).ok()
}
pub unsafe fn Unlink(&self) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).Unlink)(::windows_core::Interface::as_raw(self)).ok()
}
pub unsafe fn IsInvocable(&self) -> ::windows_core::Result<bool> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).IsInvocable)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn InvokeMain<P0>(&self, client: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IDataModelScriptClient>,
{
(::windows_core::Interface::vtable(self).InvokeMain)(::windows_core::Interface::as_raw(self), client.into_param().abi()).ok()
}
}
::windows_core::imp::interface_hierarchy!(IDataModelScript, ::windows_core::IUnknown);
unsafe impl ::windows_core::Interface for IDataModelScript {
type Vtable = IDataModelScript_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IDataModelScript {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0x7b4d30fc_b14a_49f8_8d87_d9a1480c97f7);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDataModelScript_Vtbl {
pub base__: ::windows_core::IUnknown_Vtbl,
pub GetName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, scriptname: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT,
pub Rename: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, scriptname: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
#[cfg(feature = "Win32_System_Com")]
pub Populate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, contentstream: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_System_Com"))]
Populate: usize,
pub Execute: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, client: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub Unlink: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub IsInvocable: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, isinvocable: *mut bool) -> ::windows_core::HRESULT,
pub InvokeMain: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, client: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IDataModelScriptClient(::windows_core::IUnknown);
impl IDataModelScriptClient {
pub unsafe fn ReportError<P0>(&self, errclass: ErrorClass, hrfail: ::windows_core::HRESULT, message: P0, line: u32, position: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).ReportError)(::windows_core::Interface::as_raw(self), errclass, hrfail, message.into_param().abi(), line, position).ok()
}
}
::windows_core::imp::interface_hierarchy!(IDataModelScriptClient, ::windows_core::IUnknown);
unsafe impl ::windows_core::Interface for IDataModelScriptClient {
type Vtable = IDataModelScriptClient_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IDataModelScriptClient {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0x3b362b0e_89f0_46c6_a663_dfdc95194aef);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDataModelScriptClient_Vtbl {
pub base__: ::windows_core::IUnknown_Vtbl,
pub ReportError: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, errclass: ErrorClass, hrfail: ::windows_core::HRESULT, message: ::windows_core::PCWSTR, line: u32, position: u32) -> ::windows_core::HRESULT,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IDataModelScriptDebug(::windows_core::IUnknown);
impl IDataModelScriptDebug {
pub unsafe fn GetDebugState(&self) -> ScriptDebugState {
(::windows_core::Interface::vtable(self).GetDebugState)(::windows_core::Interface::as_raw(self))
}
pub unsafe fn GetCurrentPosition(&self, currentposition: *mut ScriptDebugPosition, positionspanend: ::core::option::Option<*mut ScriptDebugPosition>, linetext: ::core::option::Option<*mut ::windows_core::BSTR>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetCurrentPosition)(::windows_core::Interface::as_raw(self), currentposition, ::core::mem::transmute(positionspanend.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(linetext.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetStack(&self) -> ::windows_core::Result<IDataModelScriptDebugStack> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetStack)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetBreakpoint(&self, lineposition: u32, columnposition: u32) -> ::windows_core::Result<IDataModelScriptDebugBreakpoint> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).SetBreakpoint)(::windows_core::Interface::as_raw(self), lineposition, columnposition, &mut result__).from_abi(result__)
}
pub unsafe fn FindBreakpointById(&self, breakpointid: u64) -> ::windows_core::Result<IDataModelScriptDebugBreakpoint> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).FindBreakpointById)(::windows_core::Interface::as_raw(self), breakpointid, &mut result__).from_abi(result__)
}
pub unsafe fn EnumerateBreakpoints(&self) -> ::windows_core::Result<IDataModelScriptDebugBreakpointEnumerator> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).EnumerateBreakpoints)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetEventFilter(&self, eventfilter: ScriptDebugEventFilter) -> ::windows_core::Result<bool> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetEventFilter)(::windows_core::Interface::as_raw(self), eventfilter, &mut result__).from_abi(result__)
}
pub unsafe fn SetEventFilter(&self, eventfilter: ScriptDebugEventFilter, isbreakenabled: u8) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetEventFilter)(::windows_core::Interface::as_raw(self), eventfilter, isbreakenabled).ok()
}
pub unsafe fn StartDebugging<P0>(&self, debugclient: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IDataModelScriptDebugClient>,
{
(::windows_core::Interface::vtable(self).StartDebugging)(::windows_core::Interface::as_raw(self), debugclient.into_param().abi()).ok()
}
pub unsafe fn StopDebugging<P0>(&self, debugclient: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IDataModelScriptDebugClient>,
{
(::windows_core::Interface::vtable(self).StopDebugging)(::windows_core::Interface::as_raw(self), debugclient.into_param().abi()).ok()
}
}
::windows_core::imp::interface_hierarchy!(IDataModelScriptDebug, ::windows_core::IUnknown);
unsafe impl ::windows_core::Interface for IDataModelScriptDebug {
type Vtable = IDataModelScriptDebug_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IDataModelScriptDebug {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0xde8e0945_9750_4471_ab76_a8f79d6ec350);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDataModelScriptDebug_Vtbl {
pub base__: ::windows_core::IUnknown_Vtbl,
pub GetDebugState: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ScriptDebugState,
pub GetCurrentPosition: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, currentposition: *mut ScriptDebugPosition, positionspanend: *mut ScriptDebugPosition, linetext: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT,
pub GetStack: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, stack: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub SetBreakpoint: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, lineposition: u32, columnposition: u32, breakpoint: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub FindBreakpointById: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, breakpointid: u64, breakpoint: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub EnumerateBreakpoints: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, breakpointenum: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub GetEventFilter: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, eventfilter: ScriptDebugEventFilter, isbreakenabled: *mut bool) -> ::windows_core::HRESULT,
pub SetEventFilter: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, eventfilter: ScriptDebugEventFilter, isbreakenabled: u8) -> ::windows_core::HRESULT,
pub StartDebugging: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, debugclient: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub StopDebugging: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, debugclient: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IDataModelScriptDebug2(::windows_core::IUnknown);
impl IDataModelScriptDebug2 {
pub unsafe fn GetDebugState(&self) -> ScriptDebugState {
(::windows_core::Interface::vtable(self).base__.GetDebugState)(::windows_core::Interface::as_raw(self))
}
pub unsafe fn GetCurrentPosition(&self, currentposition: *mut ScriptDebugPosition, positionspanend: ::core::option::Option<*mut ScriptDebugPosition>, linetext: ::core::option::Option<*mut ::windows_core::BSTR>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).base__.GetCurrentPosition)(::windows_core::Interface::as_raw(self), currentposition, ::core::mem::transmute(positionspanend.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(linetext.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetStack(&self) -> ::windows_core::Result<IDataModelScriptDebugStack> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.GetStack)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetBreakpoint(&self, lineposition: u32, columnposition: u32) -> ::windows_core::Result<IDataModelScriptDebugBreakpoint> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.SetBreakpoint)(::windows_core::Interface::as_raw(self), lineposition, columnposition, &mut result__).from_abi(result__)
}
pub unsafe fn FindBreakpointById(&self, breakpointid: u64) -> ::windows_core::Result<IDataModelScriptDebugBreakpoint> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.FindBreakpointById)(::windows_core::Interface::as_raw(self), breakpointid, &mut result__).from_abi(result__)
}
pub unsafe fn EnumerateBreakpoints(&self) -> ::windows_core::Result<IDataModelScriptDebugBreakpointEnumerator> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.EnumerateBreakpoints)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetEventFilter(&self, eventfilter: ScriptDebugEventFilter) -> ::windows_core::Result<bool> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.GetEventFilter)(::windows_core::Interface::as_raw(self), eventfilter, &mut result__).from_abi(result__)
}
pub unsafe fn SetEventFilter(&self, eventfilter: ScriptDebugEventFilter, isbreakenabled: u8) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).base__.SetEventFilter)(::windows_core::Interface::as_raw(self), eventfilter, isbreakenabled).ok()
}
pub unsafe fn StartDebugging<P0>(&self, debugclient: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IDataModelScriptDebugClient>,
{
(::windows_core::Interface::vtable(self).base__.StartDebugging)(::windows_core::Interface::as_raw(self), debugclient.into_param().abi()).ok()
}
pub unsafe fn StopDebugging<P0>(&self, debugclient: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IDataModelScriptDebugClient>,
{
(::windows_core::Interface::vtable(self).base__.StopDebugging)(::windows_core::Interface::as_raw(self), debugclient.into_param().abi()).ok()
}
pub unsafe fn SetBreakpointAtFunction<P0>(&self, functionname: P0) -> ::windows_core::Result<IDataModelScriptDebugBreakpoint>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).SetBreakpointAtFunction)(::windows_core::Interface::as_raw(self), functionname.into_param().abi(), &mut result__).from_abi(result__)
}
}
::windows_core::imp::interface_hierarchy!(IDataModelScriptDebug2, ::windows_core::IUnknown, IDataModelScriptDebug);
unsafe impl ::windows_core::Interface for IDataModelScriptDebug2 {
type Vtable = IDataModelScriptDebug2_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IDataModelScriptDebug2 {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0xcbb10ed3_839e_426c_9243_e23535c1ae1a);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDataModelScriptDebug2_Vtbl {
pub base__: IDataModelScriptDebug_Vtbl,
pub SetBreakpointAtFunction: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, functionname: ::windows_core::PCWSTR, breakpoint: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IDataModelScriptDebugBreakpoint(::windows_core::IUnknown);
impl IDataModelScriptDebugBreakpoint {
pub unsafe fn GetId(&self) -> u64 {
(::windows_core::Interface::vtable(self).GetId)(::windows_core::Interface::as_raw(self))
}
pub unsafe fn IsEnabled(&self) -> bool {
(::windows_core::Interface::vtable(self).IsEnabled)(::windows_core::Interface::as_raw(self))
}
pub unsafe fn Enable(&self) {
(::windows_core::Interface::vtable(self).Enable)(::windows_core::Interface::as_raw(self))
}
pub unsafe fn Disable(&self) {
(::windows_core::Interface::vtable(self).Disable)(::windows_core::Interface::as_raw(self))
}
pub unsafe fn Remove(&self) {
(::windows_core::Interface::vtable(self).Remove)(::windows_core::Interface::as_raw(self))
}
pub unsafe fn GetPosition(&self, position: *mut ScriptDebugPosition, positionspanend: ::core::option::Option<*mut ScriptDebugPosition>, linetext: ::core::option::Option<*mut ::windows_core::BSTR>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetPosition)(::windows_core::Interface::as_raw(self), position, ::core::mem::transmute(positionspanend.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(linetext.unwrap_or(::std::ptr::null_mut()))).ok()
}
}
::windows_core::imp::interface_hierarchy!(IDataModelScriptDebugBreakpoint, ::windows_core::IUnknown);
unsafe impl ::windows_core::Interface for IDataModelScriptDebugBreakpoint {
type Vtable = IDataModelScriptDebugBreakpoint_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IDataModelScriptDebugBreakpoint {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0x6bb27b35_02e6_47cb_90a0_5371244032de);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDataModelScriptDebugBreakpoint_Vtbl {
pub base__: ::windows_core::IUnknown_Vtbl,
pub GetId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> u64,
pub IsEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> bool,
pub Enable: unsafe extern "system" fn(this: *mut ::core::ffi::c_void),
pub Disable: unsafe extern "system" fn(this: *mut ::core::ffi::c_void),
pub Remove: unsafe extern "system" fn(this: *mut ::core::ffi::c_void),
pub GetPosition: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, position: *mut ScriptDebugPosition, positionspanend: *mut ScriptDebugPosition, linetext: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IDataModelScriptDebugBreakpointEnumerator(::windows_core::IUnknown);
impl IDataModelScriptDebugBreakpointEnumerator {
pub unsafe fn Reset(&self) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).Reset)(::windows_core::Interface::as_raw(self)).ok()
}
pub unsafe fn GetNext(&self) -> ::windows_core::Result<IDataModelScriptDebugBreakpoint> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetNext)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
}
::windows_core::imp::interface_hierarchy!(IDataModelScriptDebugBreakpointEnumerator, ::windows_core::IUnknown);
unsafe impl ::windows_core::Interface for IDataModelScriptDebugBreakpointEnumerator {
type Vtable = IDataModelScriptDebugBreakpointEnumerator_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IDataModelScriptDebugBreakpointEnumerator {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0x39484a75_b4f3_4799_86da_691afa57b299);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDataModelScriptDebugBreakpointEnumerator_Vtbl {
pub base__: ::windows_core::IUnknown_Vtbl,
pub Reset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub GetNext: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, breakpoint: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IDataModelScriptDebugClient(::windows_core::IUnknown);
impl IDataModelScriptDebugClient {
pub unsafe fn NotifyDebugEvent<P0, P1>(&self, peventinfo: *const ScriptDebugEventInformation, pscript: P0, peventdataobject: P1, resumeeventkind: *mut ScriptExecutionKind) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IDataModelScript>,
P1: ::windows_core::IntoParam<IModelObject>,
{
(::windows_core::Interface::vtable(self).NotifyDebugEvent)(::windows_core::Interface::as_raw(self), peventinfo, pscript.into_param().abi(), peventdataobject.into_param().abi(), resumeeventkind).ok()
}
}
::windows_core::imp::interface_hierarchy!(IDataModelScriptDebugClient, ::windows_core::IUnknown);
unsafe impl ::windows_core::Interface for IDataModelScriptDebugClient {
type Vtable = IDataModelScriptDebugClient_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IDataModelScriptDebugClient {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0x53159b6d_d4c4_471b_a863_5b110ca800ca);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDataModelScriptDebugClient_Vtbl {
pub base__: ::windows_core::IUnknown_Vtbl,
pub NotifyDebugEvent: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, peventinfo: *const ScriptDebugEventInformation, pscript: *mut ::core::ffi::c_void, peventdataobject: *mut ::core::ffi::c_void, resumeeventkind: *mut ScriptExecutionKind) -> ::windows_core::HRESULT,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IDataModelScriptDebugStack(::windows_core::IUnknown);
impl IDataModelScriptDebugStack {
pub unsafe fn GetFrameCount(&self) -> u64 {
(::windows_core::Interface::vtable(self).GetFrameCount)(::windows_core::Interface::as_raw(self))
}
pub unsafe fn GetStackFrame(&self, framenumber: u64) -> ::windows_core::Result<IDataModelScriptDebugStackFrame> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetStackFrame)(::windows_core::Interface::as_raw(self), framenumber, &mut result__).from_abi(result__)
}
}
::windows_core::imp::interface_hierarchy!(IDataModelScriptDebugStack, ::windows_core::IUnknown);
unsafe impl ::windows_core::Interface for IDataModelScriptDebugStack {
type Vtable = IDataModelScriptDebugStack_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IDataModelScriptDebugStack {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0x051364dd_e449_443e_9762_fe578f4a5473);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDataModelScriptDebugStack_Vtbl {
pub base__: ::windows_core::IUnknown_Vtbl,
pub GetFrameCount: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> u64,
pub GetStackFrame: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, framenumber: u64, stackframe: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IDataModelScriptDebugStackFrame(::windows_core::IUnknown);
impl IDataModelScriptDebugStackFrame {
pub unsafe fn GetName(&self) -> ::windows_core::Result<::windows_core::BSTR> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetName)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetPosition(&self, position: *mut ScriptDebugPosition, positionspanend: ::core::option::Option<*mut ScriptDebugPosition>, linetext: ::core::option::Option<*mut ::windows_core::BSTR>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetPosition)(::windows_core::Interface::as_raw(self), position, ::core::mem::transmute(positionspanend.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(linetext.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn IsTransitionPoint(&self) -> ::windows_core::Result<bool> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).IsTransitionPoint)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetTransition(&self, transitionscript: *mut ::core::option::Option<IDataModelScript>, istransitioncontiguous: *mut bool) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetTransition)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(transitionscript), istransitioncontiguous).ok()
}
pub unsafe fn Evaluate<P0>(&self, pwszexpression: P0) -> ::windows_core::Result<IModelObject>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).Evaluate)(::windows_core::Interface::as_raw(self), pwszexpression.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn EnumerateLocals(&self) -> ::windows_core::Result<IDataModelScriptDebugVariableSetEnumerator> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).EnumerateLocals)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn EnumerateArguments(&self) -> ::windows_core::Result<IDataModelScriptDebugVariableSetEnumerator> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).EnumerateArguments)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
}
::windows_core::imp::interface_hierarchy!(IDataModelScriptDebugStackFrame, ::windows_core::IUnknown);
unsafe impl ::windows_core::Interface for IDataModelScriptDebugStackFrame {
type Vtable = IDataModelScriptDebugStackFrame_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IDataModelScriptDebugStackFrame {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0xdec6ed5e_6360_4941_ab4c_a26409de4f82);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDataModelScriptDebugStackFrame_Vtbl {
pub base__: ::windows_core::IUnknown_Vtbl,
pub GetName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, name: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT,
pub GetPosition: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, position: *mut ScriptDebugPosition, positionspanend: *mut ScriptDebugPosition, linetext: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT,
pub IsTransitionPoint: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, istransitionpoint: *mut bool) -> ::windows_core::HRESULT,
pub GetTransition: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, transitionscript: *mut *mut ::core::ffi::c_void, istransitioncontiguous: *mut bool) -> ::windows_core::HRESULT,
pub Evaluate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pwszexpression: ::windows_core::PCWSTR, ppresult: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub EnumerateLocals: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, variablesenum: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub EnumerateArguments: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, variablesenum: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IDataModelScriptDebugVariableSetEnumerator(::windows_core::IUnknown);
impl IDataModelScriptDebugVariableSetEnumerator {
pub unsafe fn Reset(&self) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).Reset)(::windows_core::Interface::as_raw(self)).ok()
}
pub unsafe fn GetNext(&self, variablename: *mut ::windows_core::BSTR, variablevalue: ::core::option::Option<*mut ::core::option::Option<IModelObject>>, variablemetadata: ::core::option::Option<*mut ::core::option::Option<IKeyStore>>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetNext)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(variablename), ::core::mem::transmute(variablevalue.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(variablemetadata.unwrap_or(::std::ptr::null_mut()))).ok()
}
}
::windows_core::imp::interface_hierarchy!(IDataModelScriptDebugVariableSetEnumerator, ::windows_core::IUnknown);
unsafe impl ::windows_core::Interface for IDataModelScriptDebugVariableSetEnumerator {
type Vtable = IDataModelScriptDebugVariableSetEnumerator_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IDataModelScriptDebugVariableSetEnumerator {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0x0f9feed7_d045_4ac3_98a8_a98942cf6a35);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDataModelScriptDebugVariableSetEnumerator_Vtbl {
pub base__: ::windows_core::IUnknown_Vtbl,
pub Reset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub GetNext: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, variablename: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>, variablevalue: *mut *mut ::core::ffi::c_void, variablemetadata: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IDataModelScriptHostContext(::windows_core::IUnknown);
impl IDataModelScriptHostContext {
pub unsafe fn NotifyScriptChange<P0>(&self, script: P0, changekind: ScriptChangeKind) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IDataModelScript>,
{
(::windows_core::Interface::vtable(self).NotifyScriptChange)(::windows_core::Interface::as_raw(self), script.into_param().abi(), changekind).ok()
}
pub unsafe fn GetNamespaceObject(&self) -> ::windows_core::Result<IModelObject> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetNamespaceObject)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
}
::windows_core::imp::interface_hierarchy!(IDataModelScriptHostContext, ::windows_core::IUnknown);
unsafe impl ::windows_core::Interface for IDataModelScriptHostContext {
type Vtable = IDataModelScriptHostContext_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IDataModelScriptHostContext {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0x014d366a_1f23_4981_9219_b2db8b402054);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDataModelScriptHostContext_Vtbl {
pub base__: ::windows_core::IUnknown_Vtbl,
pub NotifyScriptChange: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, script: *mut ::core::ffi::c_void, changekind: ScriptChangeKind) -> ::windows_core::HRESULT,
pub GetNamespaceObject: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, namespaceobject: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IDataModelScriptManager(::windows_core::IUnknown);
impl IDataModelScriptManager {
pub unsafe fn GetDefaultNameBinder(&self) -> ::windows_core::Result<IDataModelNameBinder> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetDefaultNameBinder)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn RegisterScriptProvider<P0>(&self, provider: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IDataModelScriptProvider>,
{
(::windows_core::Interface::vtable(self).RegisterScriptProvider)(::windows_core::Interface::as_raw(self), provider.into_param().abi()).ok()
}
pub unsafe fn UnregisterScriptProvider<P0>(&self, provider: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IDataModelScriptProvider>,
{
(::windows_core::Interface::vtable(self).UnregisterScriptProvider)(::windows_core::Interface::as_raw(self), provider.into_param().abi()).ok()
}
pub unsafe fn FindProviderForScriptType<P0>(&self, scripttype: P0) -> ::windows_core::Result<IDataModelScriptProvider>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).FindProviderForScriptType)(::windows_core::Interface::as_raw(self), scripttype.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn FindProviderForScriptExtension<P0>(&self, scriptextension: P0) -> ::windows_core::Result<IDataModelScriptProvider>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).FindProviderForScriptExtension)(::windows_core::Interface::as_raw(self), scriptextension.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn EnumerateScriptProviders(&self) -> ::windows_core::Result<IDataModelScriptProviderEnumerator> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).EnumerateScriptProviders)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
}
::windows_core::imp::interface_hierarchy!(IDataModelScriptManager, ::windows_core::IUnknown);
unsafe impl ::windows_core::Interface for IDataModelScriptManager {
type Vtable = IDataModelScriptManager_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IDataModelScriptManager {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0x6fd11e33_e5ad_410b_8011_68c6bc4bf80d);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDataModelScriptManager_Vtbl {
pub base__: ::windows_core::IUnknown_Vtbl,
pub GetDefaultNameBinder: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, ppnamebinder: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub RegisterScriptProvider: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, provider: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub UnregisterScriptProvider: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, provider: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub FindProviderForScriptType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, scripttype: ::windows_core::PCWSTR, provider: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub FindProviderForScriptExtension: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, scriptextension: ::windows_core::PCWSTR, provider: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub EnumerateScriptProviders: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, enumerator: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IDataModelScriptProvider(::windows_core::IUnknown);
impl IDataModelScriptProvider {
pub unsafe fn GetName(&self) -> ::windows_core::Result<::windows_core::BSTR> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetName)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetExtension(&self) -> ::windows_core::Result<::windows_core::BSTR> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetExtension)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn CreateScript(&self) -> ::windows_core::Result<IDataModelScript> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).CreateScript)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetDefaultTemplateContent(&self) -> ::windows_core::Result<IDataModelScriptTemplate> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetDefaultTemplateContent)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn EnumerateTemplates(&self) -> ::windows_core::Result<IDataModelScriptTemplateEnumerator> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).EnumerateTemplates)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
}
::windows_core::imp::interface_hierarchy!(IDataModelScriptProvider, ::windows_core::IUnknown);
unsafe impl ::windows_core::Interface for IDataModelScriptProvider {
type Vtable = IDataModelScriptProvider_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IDataModelScriptProvider {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0x513461e0_4fca_48ce_8658_32f3e2056f3b);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDataModelScriptProvider_Vtbl {
pub base__: ::windows_core::IUnknown_Vtbl,
pub GetName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, name: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT,
pub GetExtension: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, extension: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT,
pub CreateScript: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, script: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub GetDefaultTemplateContent: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, templatecontent: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub EnumerateTemplates: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, enumerator: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IDataModelScriptProviderEnumerator(::windows_core::IUnknown);
impl IDataModelScriptProviderEnumerator {
pub unsafe fn Reset(&self) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).Reset)(::windows_core::Interface::as_raw(self)).ok()
}
pub unsafe fn GetNext(&self) -> ::windows_core::Result<IDataModelScriptProvider> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetNext)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
}
::windows_core::imp::interface_hierarchy!(IDataModelScriptProviderEnumerator, ::windows_core::IUnknown);
unsafe impl ::windows_core::Interface for IDataModelScriptProviderEnumerator {
type Vtable = IDataModelScriptProviderEnumerator_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IDataModelScriptProviderEnumerator {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0x95ba00e2_704a_4fe2_a8f1_a7e7d8fb0941);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDataModelScriptProviderEnumerator_Vtbl {
pub base__: ::windows_core::IUnknown_Vtbl,
pub Reset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub GetNext: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, provider: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IDataModelScriptTemplate(::windows_core::IUnknown);
impl IDataModelScriptTemplate {
pub unsafe fn GetName(&self) -> ::windows_core::Result<::windows_core::BSTR> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetName)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetDescription(&self) -> ::windows_core::Result<::windows_core::BSTR> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetDescription)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
#[doc = "Required features: `\"Win32_System_Com\"`"]
#[cfg(feature = "Win32_System_Com")]
pub unsafe fn GetContent(&self) -> ::windows_core::Result<super::super::super::Com::IStream> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetContent)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
}
::windows_core::imp::interface_hierarchy!(IDataModelScriptTemplate, ::windows_core::IUnknown);
unsafe impl ::windows_core::Interface for IDataModelScriptTemplate {
type Vtable = IDataModelScriptTemplate_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IDataModelScriptTemplate {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0x1303dec4_fa3b_4f1b_9224_b953d16babb5);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDataModelScriptTemplate_Vtbl {
pub base__: ::windows_core::IUnknown_Vtbl,
pub GetName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, templatename: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT,
pub GetDescription: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, templatedescription: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT,
#[cfg(feature = "Win32_System_Com")]
pub GetContent: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, contentstream: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_System_Com"))]
GetContent: usize,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IDataModelScriptTemplateEnumerator(::windows_core::IUnknown);
impl IDataModelScriptTemplateEnumerator {
pub unsafe fn Reset(&self) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).Reset)(::windows_core::Interface::as_raw(self)).ok()
}
pub unsafe fn GetNext(&self) -> ::windows_core::Result<IDataModelScriptTemplate> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetNext)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
}
::windows_core::imp::interface_hierarchy!(IDataModelScriptTemplateEnumerator, ::windows_core::IUnknown);
unsafe impl ::windows_core::Interface for IDataModelScriptTemplateEnumerator {
type Vtable = IDataModelScriptTemplateEnumerator_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IDataModelScriptTemplateEnumerator {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0x69ce6ae2_2268_4e6f_b062_20ce62bfe677);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDataModelScriptTemplateEnumerator_Vtbl {
pub base__: ::windows_core::IUnknown_Vtbl,
pub Reset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub GetNext: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, templatecontent: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IDebugAdvanced(::windows_core::IUnknown);
impl IDebugAdvanced {
pub unsafe fn GetThreadContext(&self, context: *mut ::core::ffi::c_void, contextsize: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetThreadContext)(::windows_core::Interface::as_raw(self), context, contextsize).ok()
}
pub unsafe fn SetThreadContext(&self, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetThreadContext)(::windows_core::Interface::as_raw(self), context, contextsize).ok()
}
}
::windows_core::imp::interface_hierarchy!(IDebugAdvanced, ::windows_core::IUnknown);
unsafe impl ::windows_core::Interface for IDebugAdvanced {
type Vtable = IDebugAdvanced_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IDebugAdvanced {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0xf2df5f53_071f_47bd_9de6_5734c3fed689);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugAdvanced_Vtbl {
pub base__: ::windows_core::IUnknown_Vtbl,
pub GetThreadContext: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, context: *mut ::core::ffi::c_void, contextsize: u32) -> ::windows_core::HRESULT,
pub SetThreadContext: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows_core::HRESULT,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IDebugAdvanced2(::windows_core::IUnknown);
impl IDebugAdvanced2 {
pub unsafe fn GetThreadContext(&self, context: *mut ::core::ffi::c_void, contextsize: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetThreadContext)(::windows_core::Interface::as_raw(self), context, contextsize).ok()
}
pub unsafe fn SetThreadContext(&self, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetThreadContext)(::windows_core::Interface::as_raw(self), context, contextsize).ok()
}
pub unsafe fn Request(&self, request: u32, inbuffer: ::core::option::Option<*const ::core::ffi::c_void>, inbuffersize: u32, outbuffer: ::core::option::Option<*mut ::core::ffi::c_void>, outbuffersize: u32, outsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).Request)(::windows_core::Interface::as_raw(self), request, ::core::mem::transmute(inbuffer.unwrap_or(::std::ptr::null())), inbuffersize, ::core::mem::transmute(outbuffer.unwrap_or(::std::ptr::null_mut())), outbuffersize, ::core::mem::transmute(outsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetSourceFileInformation<P0>(&self, which: u32, sourcefile: P0, arg64: u64, arg32: u32, buffer: ::core::option::Option<*mut ::core::ffi::c_void>, buffersize: u32, infosize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).GetSourceFileInformation)(::windows_core::Interface::as_raw(self), which, sourcefile.into_param().abi(), arg64, arg32, ::core::mem::transmute(buffer.unwrap_or(::std::ptr::null_mut())), buffersize, ::core::mem::transmute(infosize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn FindSourceFileAndToken<P0>(&self, startelement: u32, modaddr: u64, file: P0, flags: u32, filetoken: ::core::option::Option<*const ::core::ffi::c_void>, filetokensize: u32, foundelement: ::core::option::Option<*mut u32>, buffer: ::core::option::Option<&mut [u8]>, foundsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).FindSourceFileAndToken)(::windows_core::Interface::as_raw(self), startelement, modaddr, file.into_param().abi(), flags, ::core::mem::transmute(filetoken.unwrap_or(::std::ptr::null())), filetokensize, ::core::mem::transmute(foundelement.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(foundsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetSymbolInformation(&self, which: u32, arg64: u64, arg32: u32, buffer: ::core::option::Option<*mut ::core::ffi::c_void>, buffersize: u32, infosize: ::core::option::Option<*mut u32>, stringbuffer: ::core::option::Option<&mut [u8]>, stringsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSymbolInformation)(::windows_core::Interface::as_raw(self), which, arg64, arg32, ::core::mem::transmute(buffer.unwrap_or(::std::ptr::null_mut())), buffersize, ::core::mem::transmute(infosize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(stringbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), stringbuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(stringsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetSystemObjectInformation(&self, which: u32, arg64: u64, arg32: u32, buffer: ::core::option::Option<*mut ::core::ffi::c_void>, buffersize: u32, infosize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSystemObjectInformation)(::windows_core::Interface::as_raw(self), which, arg64, arg32, ::core::mem::transmute(buffer.unwrap_or(::std::ptr::null_mut())), buffersize, ::core::mem::transmute(infosize.unwrap_or(::std::ptr::null_mut()))).ok()
}
}
::windows_core::imp::interface_hierarchy!(IDebugAdvanced2, ::windows_core::IUnknown);
unsafe impl ::windows_core::Interface for IDebugAdvanced2 {
type Vtable = IDebugAdvanced2_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IDebugAdvanced2 {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0x716d14c9_119b_4ba5_af1f_0890e672416a);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugAdvanced2_Vtbl {
pub base__: ::windows_core::IUnknown_Vtbl,
pub GetThreadContext: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, context: *mut ::core::ffi::c_void, contextsize: u32) -> ::windows_core::HRESULT,
pub SetThreadContext: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows_core::HRESULT,
pub Request: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, request: u32, inbuffer: *const ::core::ffi::c_void, inbuffersize: u32, outbuffer: *mut ::core::ffi::c_void, outbuffersize: u32, outsize: *mut u32) -> ::windows_core::HRESULT,
pub GetSourceFileInformation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, which: u32, sourcefile: ::windows_core::PCSTR, arg64: u64, arg32: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, infosize: *mut u32) -> ::windows_core::HRESULT,
pub FindSourceFileAndToken: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, startelement: u32, modaddr: u64, file: ::windows_core::PCSTR, flags: u32, filetoken: *const ::core::ffi::c_void, filetokensize: u32, foundelement: *mut u32, buffer: ::windows_core::PSTR, buffersize: u32, foundsize: *mut u32) -> ::windows_core::HRESULT,
pub GetSymbolInformation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, which: u32, arg64: u64, arg32: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, infosize: *mut u32, stringbuffer: ::windows_core::PSTR, stringbuffersize: u32, stringsize: *mut u32) -> ::windows_core::HRESULT,
pub GetSystemObjectInformation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, which: u32, arg64: u64, arg32: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, infosize: *mut u32) -> ::windows_core::HRESULT,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IDebugAdvanced3(::windows_core::IUnknown);
impl IDebugAdvanced3 {
pub unsafe fn GetThreadContext(&self, context: *mut ::core::ffi::c_void, contextsize: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetThreadContext)(::windows_core::Interface::as_raw(self), context, contextsize).ok()
}
pub unsafe fn SetThreadContext(&self, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetThreadContext)(::windows_core::Interface::as_raw(self), context, contextsize).ok()
}
pub unsafe fn Request(&self, request: u32, inbuffer: ::core::option::Option<*const ::core::ffi::c_void>, inbuffersize: u32, outbuffer: ::core::option::Option<*mut ::core::ffi::c_void>, outbuffersize: u32, outsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).Request)(::windows_core::Interface::as_raw(self), request, ::core::mem::transmute(inbuffer.unwrap_or(::std::ptr::null())), inbuffersize, ::core::mem::transmute(outbuffer.unwrap_or(::std::ptr::null_mut())), outbuffersize, ::core::mem::transmute(outsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetSourceFileInformation<P0>(&self, which: u32, sourcefile: P0, arg64: u64, arg32: u32, buffer: ::core::option::Option<*mut ::core::ffi::c_void>, buffersize: u32, infosize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).GetSourceFileInformation)(::windows_core::Interface::as_raw(self), which, sourcefile.into_param().abi(), arg64, arg32, ::core::mem::transmute(buffer.unwrap_or(::std::ptr::null_mut())), buffersize, ::core::mem::transmute(infosize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn FindSourceFileAndToken<P0>(&self, startelement: u32, modaddr: u64, file: P0, flags: u32, filetoken: ::core::option::Option<*const ::core::ffi::c_void>, filetokensize: u32, foundelement: ::core::option::Option<*mut u32>, buffer: ::core::option::Option<&mut [u8]>, foundsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).FindSourceFileAndToken)(::windows_core::Interface::as_raw(self), startelement, modaddr, file.into_param().abi(), flags, ::core::mem::transmute(filetoken.unwrap_or(::std::ptr::null())), filetokensize, ::core::mem::transmute(foundelement.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(foundsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetSymbolInformation(&self, which: u32, arg64: u64, arg32: u32, buffer: ::core::option::Option<*mut ::core::ffi::c_void>, buffersize: u32, infosize: ::core::option::Option<*mut u32>, stringbuffer: ::core::option::Option<&mut [u8]>, stringsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSymbolInformation)(::windows_core::Interface::as_raw(self), which, arg64, arg32, ::core::mem::transmute(buffer.unwrap_or(::std::ptr::null_mut())), buffersize, ::core::mem::transmute(infosize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(stringbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), stringbuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(stringsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetSystemObjectInformation(&self, which: u32, arg64: u64, arg32: u32, buffer: ::core::option::Option<*mut ::core::ffi::c_void>, buffersize: u32, infosize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSystemObjectInformation)(::windows_core::Interface::as_raw(self), which, arg64, arg32, ::core::mem::transmute(buffer.unwrap_or(::std::ptr::null_mut())), buffersize, ::core::mem::transmute(infosize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetSourceFileInformationWide<P0>(&self, which: u32, sourcefile: P0, arg64: u64, arg32: u32, buffer: ::core::option::Option<*mut ::core::ffi::c_void>, buffersize: u32, infosize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).GetSourceFileInformationWide)(::windows_core::Interface::as_raw(self), which, sourcefile.into_param().abi(), arg64, arg32, ::core::mem::transmute(buffer.unwrap_or(::std::ptr::null_mut())), buffersize, ::core::mem::transmute(infosize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn FindSourceFileAndTokenWide<P0>(&self, startelement: u32, modaddr: u64, file: P0, flags: u32, filetoken: ::core::option::Option<*const ::core::ffi::c_void>, filetokensize: u32, foundelement: ::core::option::Option<*mut u32>, buffer: ::core::option::Option<&mut [u16]>, foundsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).FindSourceFileAndTokenWide)(::windows_core::Interface::as_raw(self), startelement, modaddr, file.into_param().abi(), flags, ::core::mem::transmute(filetoken.unwrap_or(::std::ptr::null())), filetokensize, ::core::mem::transmute(foundelement.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(foundsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetSymbolInformationWide(&self, which: u32, arg64: u64, arg32: u32, buffer: ::core::option::Option<*mut ::core::ffi::c_void>, buffersize: u32, infosize: ::core::option::Option<*mut u32>, stringbuffer: ::core::option::Option<&mut [u16]>, stringsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSymbolInformationWide)(::windows_core::Interface::as_raw(self), which, arg64, arg32, ::core::mem::transmute(buffer.unwrap_or(::std::ptr::null_mut())), buffersize, ::core::mem::transmute(infosize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(stringbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), stringbuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(stringsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
}
::windows_core::imp::interface_hierarchy!(IDebugAdvanced3, ::windows_core::IUnknown);
unsafe impl ::windows_core::Interface for IDebugAdvanced3 {
type Vtable = IDebugAdvanced3_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IDebugAdvanced3 {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0xcba4abb4_84c4_444d_87ca_a04e13286739);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugAdvanced3_Vtbl {
pub base__: ::windows_core::IUnknown_Vtbl,
pub GetThreadContext: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, context: *mut ::core::ffi::c_void, contextsize: u32) -> ::windows_core::HRESULT,
pub SetThreadContext: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows_core::HRESULT,
pub Request: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, request: u32, inbuffer: *const ::core::ffi::c_void, inbuffersize: u32, outbuffer: *mut ::core::ffi::c_void, outbuffersize: u32, outsize: *mut u32) -> ::windows_core::HRESULT,
pub GetSourceFileInformation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, which: u32, sourcefile: ::windows_core::PCSTR, arg64: u64, arg32: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, infosize: *mut u32) -> ::windows_core::HRESULT,
pub FindSourceFileAndToken: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, startelement: u32, modaddr: u64, file: ::windows_core::PCSTR, flags: u32, filetoken: *const ::core::ffi::c_void, filetokensize: u32, foundelement: *mut u32, buffer: ::windows_core::PSTR, buffersize: u32, foundsize: *mut u32) -> ::windows_core::HRESULT,
pub GetSymbolInformation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, which: u32, arg64: u64, arg32: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, infosize: *mut u32, stringbuffer: ::windows_core::PSTR, stringbuffersize: u32, stringsize: *mut u32) -> ::windows_core::HRESULT,
pub GetSystemObjectInformation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, which: u32, arg64: u64, arg32: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, infosize: *mut u32) -> ::windows_core::HRESULT,
pub GetSourceFileInformationWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, which: u32, sourcefile: ::windows_core::PCWSTR, arg64: u64, arg32: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, infosize: *mut u32) -> ::windows_core::HRESULT,
pub FindSourceFileAndTokenWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, startelement: u32, modaddr: u64, file: ::windows_core::PCWSTR, flags: u32, filetoken: *const ::core::ffi::c_void, filetokensize: u32, foundelement: *mut u32, buffer: ::windows_core::PWSTR, buffersize: u32, foundsize: *mut u32) -> ::windows_core::HRESULT,
pub GetSymbolInformationWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, which: u32, arg64: u64, arg32: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, infosize: *mut u32, stringbuffer: ::windows_core::PWSTR, stringbuffersize: u32, stringsize: *mut u32) -> ::windows_core::HRESULT,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IDebugAdvanced4(::windows_core::IUnknown);
impl IDebugAdvanced4 {
pub unsafe fn GetThreadContext(&self, context: *mut ::core::ffi::c_void, contextsize: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetThreadContext)(::windows_core::Interface::as_raw(self), context, contextsize).ok()
}
pub unsafe fn SetThreadContext(&self, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetThreadContext)(::windows_core::Interface::as_raw(self), context, contextsize).ok()
}
pub unsafe fn Request(&self, request: u32, inbuffer: ::core::option::Option<*const ::core::ffi::c_void>, inbuffersize: u32, outbuffer: ::core::option::Option<*mut ::core::ffi::c_void>, outbuffersize: u32, outsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).Request)(::windows_core::Interface::as_raw(self), request, ::core::mem::transmute(inbuffer.unwrap_or(::std::ptr::null())), inbuffersize, ::core::mem::transmute(outbuffer.unwrap_or(::std::ptr::null_mut())), outbuffersize, ::core::mem::transmute(outsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetSourceFileInformation<P0>(&self, which: u32, sourcefile: P0, arg64: u64, arg32: u32, buffer: ::core::option::Option<*mut ::core::ffi::c_void>, buffersize: u32, infosize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).GetSourceFileInformation)(::windows_core::Interface::as_raw(self), which, sourcefile.into_param().abi(), arg64, arg32, ::core::mem::transmute(buffer.unwrap_or(::std::ptr::null_mut())), buffersize, ::core::mem::transmute(infosize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn FindSourceFileAndToken<P0>(&self, startelement: u32, modaddr: u64, file: P0, flags: u32, filetoken: ::core::option::Option<*const ::core::ffi::c_void>, filetokensize: u32, foundelement: ::core::option::Option<*mut u32>, buffer: ::core::option::Option<&mut [u8]>, foundsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).FindSourceFileAndToken)(::windows_core::Interface::as_raw(self), startelement, modaddr, file.into_param().abi(), flags, ::core::mem::transmute(filetoken.unwrap_or(::std::ptr::null())), filetokensize, ::core::mem::transmute(foundelement.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(foundsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetSymbolInformation(&self, which: u32, arg64: u64, arg32: u32, buffer: ::core::option::Option<*mut ::core::ffi::c_void>, buffersize: u32, infosize: ::core::option::Option<*mut u32>, stringbuffer: ::core::option::Option<&mut [u8]>, stringsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSymbolInformation)(::windows_core::Interface::as_raw(self), which, arg64, arg32, ::core::mem::transmute(buffer.unwrap_or(::std::ptr::null_mut())), buffersize, ::core::mem::transmute(infosize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(stringbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), stringbuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(stringsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetSystemObjectInformation(&self, which: u32, arg64: u64, arg32: u32, buffer: ::core::option::Option<*mut ::core::ffi::c_void>, buffersize: u32, infosize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSystemObjectInformation)(::windows_core::Interface::as_raw(self), which, arg64, arg32, ::core::mem::transmute(buffer.unwrap_or(::std::ptr::null_mut())), buffersize, ::core::mem::transmute(infosize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetSourceFileInformationWide<P0>(&self, which: u32, sourcefile: P0, arg64: u64, arg32: u32, buffer: ::core::option::Option<*mut ::core::ffi::c_void>, buffersize: u32, infosize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).GetSourceFileInformationWide)(::windows_core::Interface::as_raw(self), which, sourcefile.into_param().abi(), arg64, arg32, ::core::mem::transmute(buffer.unwrap_or(::std::ptr::null_mut())), buffersize, ::core::mem::transmute(infosize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn FindSourceFileAndTokenWide<P0>(&self, startelement: u32, modaddr: u64, file: P0, flags: u32, filetoken: ::core::option::Option<*const ::core::ffi::c_void>, filetokensize: u32, foundelement: ::core::option::Option<*mut u32>, buffer: ::core::option::Option<&mut [u16]>, foundsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).FindSourceFileAndTokenWide)(::windows_core::Interface::as_raw(self), startelement, modaddr, file.into_param().abi(), flags, ::core::mem::transmute(filetoken.unwrap_or(::std::ptr::null())), filetokensize, ::core::mem::transmute(foundelement.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(foundsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetSymbolInformationWide(&self, which: u32, arg64: u64, arg32: u32, buffer: ::core::option::Option<*mut ::core::ffi::c_void>, buffersize: u32, infosize: ::core::option::Option<*mut u32>, stringbuffer: ::core::option::Option<&mut [u16]>, stringsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSymbolInformationWide)(::windows_core::Interface::as_raw(self), which, arg64, arg32, ::core::mem::transmute(buffer.unwrap_or(::std::ptr::null_mut())), buffersize, ::core::mem::transmute(infosize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(stringbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), stringbuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(stringsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetSymbolInformationWideEx(&self, which: u32, arg64: u64, arg32: u32, buffer: ::core::option::Option<*mut ::core::ffi::c_void>, buffersize: u32, infosize: ::core::option::Option<*mut u32>, stringbuffer: ::core::option::Option<&mut [u16]>, stringsize: ::core::option::Option<*mut u32>, pinfoex: ::core::option::Option<*mut SYMBOL_INFO_EX>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSymbolInformationWideEx)(
::windows_core::Interface::as_raw(self),
which,
arg64,
arg32,
::core::mem::transmute(buffer.unwrap_or(::std::ptr::null_mut())),
buffersize,
::core::mem::transmute(infosize.unwrap_or(::std::ptr::null_mut())),
::core::mem::transmute(stringbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
stringbuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(stringsize.unwrap_or(::std::ptr::null_mut())),
::core::mem::transmute(pinfoex.unwrap_or(::std::ptr::null_mut())),
)
.ok()
}
}
::windows_core::imp::interface_hierarchy!(IDebugAdvanced4, ::windows_core::IUnknown);
unsafe impl ::windows_core::Interface for IDebugAdvanced4 {
type Vtable = IDebugAdvanced4_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IDebugAdvanced4 {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0xd1069067_2a65_4bf0_ae97_76184b67856b);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugAdvanced4_Vtbl {
pub base__: ::windows_core::IUnknown_Vtbl,
pub GetThreadContext: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, context: *mut ::core::ffi::c_void, contextsize: u32) -> ::windows_core::HRESULT,
pub SetThreadContext: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows_core::HRESULT,
pub Request: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, request: u32, inbuffer: *const ::core::ffi::c_void, inbuffersize: u32, outbuffer: *mut ::core::ffi::c_void, outbuffersize: u32, outsize: *mut u32) -> ::windows_core::HRESULT,
pub GetSourceFileInformation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, which: u32, sourcefile: ::windows_core::PCSTR, arg64: u64, arg32: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, infosize: *mut u32) -> ::windows_core::HRESULT,
pub FindSourceFileAndToken: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, startelement: u32, modaddr: u64, file: ::windows_core::PCSTR, flags: u32, filetoken: *const ::core::ffi::c_void, filetokensize: u32, foundelement: *mut u32, buffer: ::windows_core::PSTR, buffersize: u32, foundsize: *mut u32) -> ::windows_core::HRESULT,
pub GetSymbolInformation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, which: u32, arg64: u64, arg32: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, infosize: *mut u32, stringbuffer: ::windows_core::PSTR, stringbuffersize: u32, stringsize: *mut u32) -> ::windows_core::HRESULT,
pub GetSystemObjectInformation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, which: u32, arg64: u64, arg32: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, infosize: *mut u32) -> ::windows_core::HRESULT,
pub GetSourceFileInformationWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, which: u32, sourcefile: ::windows_core::PCWSTR, arg64: u64, arg32: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, infosize: *mut u32) -> ::windows_core::HRESULT,
pub FindSourceFileAndTokenWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, startelement: u32, modaddr: u64, file: ::windows_core::PCWSTR, flags: u32, filetoken: *const ::core::ffi::c_void, filetokensize: u32, foundelement: *mut u32, buffer: ::windows_core::PWSTR, buffersize: u32, foundsize: *mut u32) -> ::windows_core::HRESULT,
pub GetSymbolInformationWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, which: u32, arg64: u64, arg32: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, infosize: *mut u32, stringbuffer: ::windows_core::PWSTR, stringbuffersize: u32, stringsize: *mut u32) -> ::windows_core::HRESULT,
pub GetSymbolInformationWideEx: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, which: u32, arg64: u64, arg32: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, infosize: *mut u32, stringbuffer: ::windows_core::PWSTR, stringbuffersize: u32, stringsize: *mut u32, pinfoex: *mut SYMBOL_INFO_EX) -> ::windows_core::HRESULT,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IDebugBreakpoint(::windows_core::IUnknown);
impl IDebugBreakpoint {
pub unsafe fn GetId(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetId)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetType(&self, breaktype: *mut u32, proctype: *mut u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetType)(::windows_core::Interface::as_raw(self), breaktype, proctype).ok()
}
pub unsafe fn GetAdder(&self) -> ::windows_core::Result<IDebugClient> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetAdder)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetFlags(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetFlags)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn AddFlags(&self, flags: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).AddFlags)(::windows_core::Interface::as_raw(self), flags).ok()
}
pub unsafe fn RemoveFlags(&self, flags: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).RemoveFlags)(::windows_core::Interface::as_raw(self), flags).ok()
}
pub unsafe fn SetFlags(&self, flags: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetFlags)(::windows_core::Interface::as_raw(self), flags).ok()
}
pub unsafe fn GetOffset(&self) -> ::windows_core::Result<u64> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetOffset)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetOffset(&self, offset: u64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetOffset)(::windows_core::Interface::as_raw(self), offset).ok()
}
pub unsafe fn GetDataParameters(&self, size: *mut u32, accesstype: *mut u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetDataParameters)(::windows_core::Interface::as_raw(self), size, accesstype).ok()
}
pub unsafe fn SetDataParameters(&self, size: u32, accesstype: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetDataParameters)(::windows_core::Interface::as_raw(self), size, accesstype).ok()
}
pub unsafe fn GetPassCount(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetPassCount)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetPassCount(&self, count: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetPassCount)(::windows_core::Interface::as_raw(self), count).ok()
}
pub unsafe fn GetCurrentPassCount(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetCurrentPassCount)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetMatchThreadId(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetMatchThreadId)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetMatchThreadId(&self, thread: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetMatchThreadId)(::windows_core::Interface::as_raw(self), thread).ok()
}
pub unsafe fn GetCommand(&self, buffer: ::core::option::Option<&mut [u8]>, commandsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetCommand)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(commandsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetCommand<P0>(&self, command: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).SetCommand)(::windows_core::Interface::as_raw(self), command.into_param().abi()).ok()
}
pub unsafe fn GetOffsetExpression(&self, buffer: ::core::option::Option<&mut [u8]>, expressionsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetOffsetExpression)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(expressionsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetOffsetExpression<P0>(&self, expression: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).SetOffsetExpression)(::windows_core::Interface::as_raw(self), expression.into_param().abi()).ok()
}
pub unsafe fn GetParameters(&self, params: *mut DEBUG_BREAKPOINT_PARAMETERS) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetParameters)(::windows_core::Interface::as_raw(self), params).ok()
}
}
::windows_core::imp::interface_hierarchy!(IDebugBreakpoint, ::windows_core::IUnknown);
unsafe impl ::windows_core::Interface for IDebugBreakpoint {
type Vtable = IDebugBreakpoint_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IDebugBreakpoint {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0x5bd9d474_5975_423a_b88b_65a8e7110e65);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugBreakpoint_Vtbl {
pub base__: ::windows_core::IUnknown_Vtbl,
pub GetId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: *mut u32) -> ::windows_core::HRESULT,
pub GetType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, breaktype: *mut u32, proctype: *mut u32) -> ::windows_core::HRESULT,
pub GetAdder: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, adder: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub GetFlags: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: *mut u32) -> ::windows_core::HRESULT,
pub AddFlags: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32) -> ::windows_core::HRESULT,
pub RemoveFlags: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32) -> ::windows_core::HRESULT,
pub SetFlags: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32) -> ::windows_core::HRESULT,
pub GetOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows_core::HRESULT,
pub SetOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64) -> ::windows_core::HRESULT,
pub GetDataParameters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, size: *mut u32, accesstype: *mut u32) -> ::windows_core::HRESULT,
pub SetDataParameters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, size: u32, accesstype: u32) -> ::windows_core::HRESULT,
pub GetPassCount: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: *mut u32) -> ::windows_core::HRESULT,
pub SetPassCount: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: u32) -> ::windows_core::HRESULT,
pub GetCurrentPassCount: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: *mut u32) -> ::windows_core::HRESULT,
pub GetMatchThreadId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: *mut u32) -> ::windows_core::HRESULT,
pub SetMatchThreadId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, thread: u32) -> ::windows_core::HRESULT,
pub GetCommand: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PSTR, buffersize: u32, commandsize: *mut u32) -> ::windows_core::HRESULT,
pub SetCommand: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, command: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub GetOffsetExpression: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PSTR, buffersize: u32, expressionsize: *mut u32) -> ::windows_core::HRESULT,
pub SetOffsetExpression: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, expression: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub GetParameters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, params: *mut DEBUG_BREAKPOINT_PARAMETERS) -> ::windows_core::HRESULT,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IDebugBreakpoint2(::windows_core::IUnknown);
impl IDebugBreakpoint2 {
pub unsafe fn GetId(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetId)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetType(&self, breaktype: *mut u32, proctype: *mut u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetType)(::windows_core::Interface::as_raw(self), breaktype, proctype).ok()
}
pub unsafe fn GetAdder(&self) -> ::windows_core::Result<IDebugClient> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetAdder)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetFlags(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetFlags)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn AddFlags(&self, flags: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).AddFlags)(::windows_core::Interface::as_raw(self), flags).ok()
}
pub unsafe fn RemoveFlags(&self, flags: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).RemoveFlags)(::windows_core::Interface::as_raw(self), flags).ok()
}
pub unsafe fn SetFlags(&self, flags: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetFlags)(::windows_core::Interface::as_raw(self), flags).ok()
}
pub unsafe fn GetOffset(&self) -> ::windows_core::Result<u64> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetOffset)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetOffset(&self, offset: u64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetOffset)(::windows_core::Interface::as_raw(self), offset).ok()
}
pub unsafe fn GetDataParameters(&self, size: *mut u32, accesstype: *mut u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetDataParameters)(::windows_core::Interface::as_raw(self), size, accesstype).ok()
}
pub unsafe fn SetDataParameters(&self, size: u32, accesstype: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetDataParameters)(::windows_core::Interface::as_raw(self), size, accesstype).ok()
}
pub unsafe fn GetPassCount(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetPassCount)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetPassCount(&self, count: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetPassCount)(::windows_core::Interface::as_raw(self), count).ok()
}
pub unsafe fn GetCurrentPassCount(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetCurrentPassCount)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetMatchThreadId(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetMatchThreadId)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetMatchThreadId(&self, thread: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetMatchThreadId)(::windows_core::Interface::as_raw(self), thread).ok()
}
pub unsafe fn GetCommand(&self, buffer: ::core::option::Option<&mut [u8]>, commandsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetCommand)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(commandsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetCommand<P0>(&self, command: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).SetCommand)(::windows_core::Interface::as_raw(self), command.into_param().abi()).ok()
}
pub unsafe fn GetOffsetExpression(&self, buffer: ::core::option::Option<&mut [u8]>, expressionsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetOffsetExpression)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(expressionsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetOffsetExpression<P0>(&self, expression: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).SetOffsetExpression)(::windows_core::Interface::as_raw(self), expression.into_param().abi()).ok()
}
pub unsafe fn GetParameters(&self, params: *mut DEBUG_BREAKPOINT_PARAMETERS) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetParameters)(::windows_core::Interface::as_raw(self), params).ok()
}
pub unsafe fn GetCommandWide(&self, buffer: ::core::option::Option<&mut [u16]>, commandsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetCommandWide)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(commandsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetCommandWide<P0>(&self, command: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).SetCommandWide)(::windows_core::Interface::as_raw(self), command.into_param().abi()).ok()
}
pub unsafe fn GetOffsetExpressionWide(&self, buffer: ::core::option::Option<&mut [u16]>, expressionsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetOffsetExpressionWide)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(expressionsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetOffsetExpressionWide<P0>(&self, expression: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).SetOffsetExpressionWide)(::windows_core::Interface::as_raw(self), expression.into_param().abi()).ok()
}
}
::windows_core::imp::interface_hierarchy!(IDebugBreakpoint2, ::windows_core::IUnknown);
unsafe impl ::windows_core::Interface for IDebugBreakpoint2 {
type Vtable = IDebugBreakpoint2_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IDebugBreakpoint2 {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0x1b278d20_79f2_426e_a3f9_c1ddf375d48e);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugBreakpoint2_Vtbl {
pub base__: ::windows_core::IUnknown_Vtbl,
pub GetId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: *mut u32) -> ::windows_core::HRESULT,
pub GetType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, breaktype: *mut u32, proctype: *mut u32) -> ::windows_core::HRESULT,
pub GetAdder: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, adder: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub GetFlags: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: *mut u32) -> ::windows_core::HRESULT,
pub AddFlags: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32) -> ::windows_core::HRESULT,
pub RemoveFlags: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32) -> ::windows_core::HRESULT,
pub SetFlags: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32) -> ::windows_core::HRESULT,
pub GetOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows_core::HRESULT,
pub SetOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64) -> ::windows_core::HRESULT,
pub GetDataParameters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, size: *mut u32, accesstype: *mut u32) -> ::windows_core::HRESULT,
pub SetDataParameters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, size: u32, accesstype: u32) -> ::windows_core::HRESULT,
pub GetPassCount: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: *mut u32) -> ::windows_core::HRESULT,
pub SetPassCount: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: u32) -> ::windows_core::HRESULT,
pub GetCurrentPassCount: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: *mut u32) -> ::windows_core::HRESULT,
pub GetMatchThreadId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: *mut u32) -> ::windows_core::HRESULT,
pub SetMatchThreadId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, thread: u32) -> ::windows_core::HRESULT,
pub GetCommand: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PSTR, buffersize: u32, commandsize: *mut u32) -> ::windows_core::HRESULT,
pub SetCommand: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, command: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub GetOffsetExpression: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PSTR, buffersize: u32, expressionsize: *mut u32) -> ::windows_core::HRESULT,
pub SetOffsetExpression: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, expression: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub GetParameters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, params: *mut DEBUG_BREAKPOINT_PARAMETERS) -> ::windows_core::HRESULT,
pub GetCommandWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PWSTR, buffersize: u32, commandsize: *mut u32) -> ::windows_core::HRESULT,
pub SetCommandWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, command: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
pub GetOffsetExpressionWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PWSTR, buffersize: u32, expressionsize: *mut u32) -> ::windows_core::HRESULT,
pub SetOffsetExpressionWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, expression: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IDebugBreakpoint3(::windows_core::IUnknown);
impl IDebugBreakpoint3 {
pub unsafe fn GetId(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetId)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetType(&self, breaktype: *mut u32, proctype: *mut u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetType)(::windows_core::Interface::as_raw(self), breaktype, proctype).ok()
}
pub unsafe fn GetAdder(&self) -> ::windows_core::Result<IDebugClient> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetAdder)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetFlags(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetFlags)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn AddFlags(&self, flags: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).AddFlags)(::windows_core::Interface::as_raw(self), flags).ok()
}
pub unsafe fn RemoveFlags(&self, flags: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).RemoveFlags)(::windows_core::Interface::as_raw(self), flags).ok()
}
pub unsafe fn SetFlags(&self, flags: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetFlags)(::windows_core::Interface::as_raw(self), flags).ok()
}
pub unsafe fn GetOffset(&self) -> ::windows_core::Result<u64> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetOffset)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetOffset(&self, offset: u64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetOffset)(::windows_core::Interface::as_raw(self), offset).ok()
}
pub unsafe fn GetDataParameters(&self, size: *mut u32, accesstype: *mut u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetDataParameters)(::windows_core::Interface::as_raw(self), size, accesstype).ok()
}
pub unsafe fn SetDataParameters(&self, size: u32, accesstype: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetDataParameters)(::windows_core::Interface::as_raw(self), size, accesstype).ok()
}
pub unsafe fn GetPassCount(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetPassCount)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetPassCount(&self, count: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetPassCount)(::windows_core::Interface::as_raw(self), count).ok()
}
pub unsafe fn GetCurrentPassCount(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetCurrentPassCount)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetMatchThreadId(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetMatchThreadId)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetMatchThreadId(&self, thread: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetMatchThreadId)(::windows_core::Interface::as_raw(self), thread).ok()
}
pub unsafe fn GetCommand(&self, buffer: ::core::option::Option<&mut [u8]>, commandsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetCommand)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(commandsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetCommand<P0>(&self, command: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).SetCommand)(::windows_core::Interface::as_raw(self), command.into_param().abi()).ok()
}
pub unsafe fn GetOffsetExpression(&self, buffer: ::core::option::Option<&mut [u8]>, expressionsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetOffsetExpression)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(expressionsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetOffsetExpression<P0>(&self, expression: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).SetOffsetExpression)(::windows_core::Interface::as_raw(self), expression.into_param().abi()).ok()
}
pub unsafe fn GetParameters(&self, params: *mut DEBUG_BREAKPOINT_PARAMETERS) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetParameters)(::windows_core::Interface::as_raw(self), params).ok()
}
pub unsafe fn GetCommandWide(&self, buffer: ::core::option::Option<&mut [u16]>, commandsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetCommandWide)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(commandsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetCommandWide<P0>(&self, command: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).SetCommandWide)(::windows_core::Interface::as_raw(self), command.into_param().abi()).ok()
}
pub unsafe fn GetOffsetExpressionWide(&self, buffer: ::core::option::Option<&mut [u16]>, expressionsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetOffsetExpressionWide)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(expressionsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetOffsetExpressionWide<P0>(&self, expression: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).SetOffsetExpressionWide)(::windows_core::Interface::as_raw(self), expression.into_param().abi()).ok()
}
pub unsafe fn GetGuid(&self) -> ::windows_core::Result<::windows_core::GUID> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetGuid)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
}
::windows_core::imp::interface_hierarchy!(IDebugBreakpoint3, ::windows_core::IUnknown);
unsafe impl ::windows_core::Interface for IDebugBreakpoint3 {
type Vtable = IDebugBreakpoint3_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IDebugBreakpoint3 {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0x38f5c249_b448_43bb_9835_579d4ec02249);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugBreakpoint3_Vtbl {
pub base__: ::windows_core::IUnknown_Vtbl,
pub GetId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: *mut u32) -> ::windows_core::HRESULT,
pub GetType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, breaktype: *mut u32, proctype: *mut u32) -> ::windows_core::HRESULT,
pub GetAdder: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, adder: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub GetFlags: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: *mut u32) -> ::windows_core::HRESULT,
pub AddFlags: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32) -> ::windows_core::HRESULT,
pub RemoveFlags: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32) -> ::windows_core::HRESULT,
pub SetFlags: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32) -> ::windows_core::HRESULT,
pub GetOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows_core::HRESULT,
pub SetOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64) -> ::windows_core::HRESULT,
pub GetDataParameters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, size: *mut u32, accesstype: *mut u32) -> ::windows_core::HRESULT,
pub SetDataParameters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, size: u32, accesstype: u32) -> ::windows_core::HRESULT,
pub GetPassCount: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: *mut u32) -> ::windows_core::HRESULT,
pub SetPassCount: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: u32) -> ::windows_core::HRESULT,
pub GetCurrentPassCount: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: *mut u32) -> ::windows_core::HRESULT,
pub GetMatchThreadId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: *mut u32) -> ::windows_core::HRESULT,
pub SetMatchThreadId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, thread: u32) -> ::windows_core::HRESULT,
pub GetCommand: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PSTR, buffersize: u32, commandsize: *mut u32) -> ::windows_core::HRESULT,
pub SetCommand: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, command: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub GetOffsetExpression: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PSTR, buffersize: u32, expressionsize: *mut u32) -> ::windows_core::HRESULT,
pub SetOffsetExpression: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, expression: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub GetParameters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, params: *mut DEBUG_BREAKPOINT_PARAMETERS) -> ::windows_core::HRESULT,
pub GetCommandWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PWSTR, buffersize: u32, commandsize: *mut u32) -> ::windows_core::HRESULT,
pub SetCommandWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, command: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
pub GetOffsetExpressionWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PWSTR, buffersize: u32, expressionsize: *mut u32) -> ::windows_core::HRESULT,
pub SetOffsetExpressionWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, expression: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
pub GetGuid: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, guid: *mut ::windows_core::GUID) -> ::windows_core::HRESULT,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IDebugClient(::windows_core::IUnknown);
impl IDebugClient {
pub unsafe fn AttachKernel<P0>(&self, flags: u32, connectoptions: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).AttachKernel)(::windows_core::Interface::as_raw(self), flags, connectoptions.into_param().abi()).ok()
}
pub unsafe fn GetKernelConnectionOptions(&self, buffer: ::core::option::Option<&mut [u8]>, optionssize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetKernelConnectionOptions)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(optionssize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetKernelConnectionOptions<P0>(&self, options: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).SetKernelConnectionOptions)(::windows_core::Interface::as_raw(self), options.into_param().abi()).ok()
}
pub unsafe fn StartProcessServer<P0>(&self, flags: u32, options: P0, reserved: ::core::option::Option<*const ::core::ffi::c_void>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).StartProcessServer)(::windows_core::Interface::as_raw(self), flags, options.into_param().abi(), ::core::mem::transmute(reserved.unwrap_or(::std::ptr::null()))).ok()
}
pub unsafe fn ConnectProcessServer<P0>(&self, remoteoptions: P0) -> ::windows_core::Result<u64>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).ConnectProcessServer)(::windows_core::Interface::as_raw(self), remoteoptions.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn DisconnectProcessServer(&self, server: u64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).DisconnectProcessServer)(::windows_core::Interface::as_raw(self), server).ok()
}
pub unsafe fn GetRunningProcessSystemIds(&self, server: u64, ids: ::core::option::Option<&mut [u32]>, actualcount: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetRunningProcessSystemIds)(::windows_core::Interface::as_raw(self), server, ::core::mem::transmute(ids.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ids.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(actualcount.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetRunningProcessSystemIdByExecutableName<P0>(&self, server: u64, exename: P0, flags: u32) -> ::windows_core::Result<u32>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetRunningProcessSystemIdByExecutableName)(::windows_core::Interface::as_raw(self), server, exename.into_param().abi(), flags, &mut result__).from_abi(result__)
}
pub unsafe fn GetRunningProcessDescription(&self, server: u64, systemid: u32, flags: u32, exename: ::core::option::Option<&mut [u8]>, actualexenamesize: ::core::option::Option<*mut u32>, description: ::core::option::Option<&mut [u8]>, actualdescriptionsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetRunningProcessDescription)(
::windows_core::Interface::as_raw(self),
server,
systemid,
flags,
::core::mem::transmute(exename.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
exename.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(actualexenamesize.unwrap_or(::std::ptr::null_mut())),
::core::mem::transmute(description.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
description.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(actualdescriptionsize.unwrap_or(::std::ptr::null_mut())),
)
.ok()
}
pub unsafe fn AttachProcess(&self, server: u64, processid: u32, attachflags: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).AttachProcess)(::windows_core::Interface::as_raw(self), server, processid, attachflags).ok()
}
pub unsafe fn CreateProcessA<P0>(&self, server: u64, commandline: P0, createflags: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).CreateProcessA)(::windows_core::Interface::as_raw(self), server, commandline.into_param().abi(), createflags).ok()
}
pub unsafe fn CreateProcessAndAttach<P0>(&self, server: u64, commandline: P0, createflags: u32, processid: u32, attachflags: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).CreateProcessAndAttach)(::windows_core::Interface::as_raw(self), server, commandline.into_param().abi(), createflags, processid, attachflags).ok()
}
pub unsafe fn GetProcessOptions(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetProcessOptions)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn AddProcessOptions(&self, options: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).AddProcessOptions)(::windows_core::Interface::as_raw(self), options).ok()
}
pub unsafe fn RemoveProcessOptions(&self, options: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).RemoveProcessOptions)(::windows_core::Interface::as_raw(self), options).ok()
}
pub unsafe fn SetProcessOptions(&self, options: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetProcessOptions)(::windows_core::Interface::as_raw(self), options).ok()
}
pub unsafe fn OpenDumpFile<P0>(&self, dumpfile: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).OpenDumpFile)(::windows_core::Interface::as_raw(self), dumpfile.into_param().abi()).ok()
}
pub unsafe fn WriteDumpFile<P0>(&self, dumpfile: P0, qualifier: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).WriteDumpFile)(::windows_core::Interface::as_raw(self), dumpfile.into_param().abi(), qualifier).ok()
}
pub unsafe fn ConnectSession(&self, flags: u32, historylimit: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).ConnectSession)(::windows_core::Interface::as_raw(self), flags, historylimit).ok()
}
pub unsafe fn StartServer<P0>(&self, options: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).StartServer)(::windows_core::Interface::as_raw(self), options.into_param().abi()).ok()
}
pub unsafe fn OutputServers<P0>(&self, outputcontrol: u32, machine: P0, flags: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).OutputServers)(::windows_core::Interface::as_raw(self), outputcontrol, machine.into_param().abi(), flags).ok()
}
pub unsafe fn TerminateProcesses(&self) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).TerminateProcesses)(::windows_core::Interface::as_raw(self)).ok()
}
pub unsafe fn DetachProcesses(&self) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).DetachProcesses)(::windows_core::Interface::as_raw(self)).ok()
}
pub unsafe fn EndSession(&self, flags: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).EndSession)(::windows_core::Interface::as_raw(self), flags).ok()
}
pub unsafe fn GetExitCode(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetExitCode)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn DispatchCallbacks(&self, timeout: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).DispatchCallbacks)(::windows_core::Interface::as_raw(self), timeout).ok()
}
pub unsafe fn ExitDispatch<P0>(&self, client: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IDebugClient>,
{
(::windows_core::Interface::vtable(self).ExitDispatch)(::windows_core::Interface::as_raw(self), client.into_param().abi()).ok()
}
pub unsafe fn CreateClient(&self) -> ::windows_core::Result<IDebugClient> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).CreateClient)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetInputCallbacks(&self) -> ::windows_core::Result<IDebugInputCallbacks> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetInputCallbacks)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetInputCallbacks<P0>(&self, callbacks: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IDebugInputCallbacks>,
{
(::windows_core::Interface::vtable(self).SetInputCallbacks)(::windows_core::Interface::as_raw(self), callbacks.into_param().abi()).ok()
}
pub unsafe fn GetOutputCallbacks(&self) -> ::windows_core::Result<IDebugOutputCallbacks> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetOutputCallbacks)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetOutputCallbacks<P0>(&self, callbacks: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IDebugOutputCallbacks>,
{
(::windows_core::Interface::vtable(self).SetOutputCallbacks)(::windows_core::Interface::as_raw(self), callbacks.into_param().abi()).ok()
}
pub unsafe fn GetOutputMask(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetOutputMask)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetOutputMask(&self, mask: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetOutputMask)(::windows_core::Interface::as_raw(self), mask).ok()
}
pub unsafe fn GetOtherOutputMask<P0>(&self, client: P0) -> ::windows_core::Result<u32>
where
P0: ::windows_core::IntoParam<IDebugClient>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetOtherOutputMask)(::windows_core::Interface::as_raw(self), client.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn SetOtherOutputMask<P0>(&self, client: P0, mask: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IDebugClient>,
{
(::windows_core::Interface::vtable(self).SetOtherOutputMask)(::windows_core::Interface::as_raw(self), client.into_param().abi(), mask).ok()
}
pub unsafe fn GetOutputWidth(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetOutputWidth)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetOutputWidth(&self, columns: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetOutputWidth)(::windows_core::Interface::as_raw(self), columns).ok()
}
pub unsafe fn GetOutputLinePrefix(&self, buffer: ::core::option::Option<&mut [u8]>, prefixsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetOutputLinePrefix)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(prefixsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetOutputLinePrefix<P0>(&self, prefix: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).SetOutputLinePrefix)(::windows_core::Interface::as_raw(self), prefix.into_param().abi()).ok()
}
pub unsafe fn GetIdentity(&self, buffer: ::core::option::Option<&mut [u8]>, identitysize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetIdentity)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(identitysize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn OutputIdentity<P0>(&self, outputcontrol: u32, flags: u32, format: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).OutputIdentity)(::windows_core::Interface::as_raw(self), outputcontrol, flags, format.into_param().abi()).ok()
}
pub unsafe fn GetEventCallbacks(&self) -> ::windows_core::Result<IDebugEventCallbacks> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetEventCallbacks)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetEventCallbacks<P0>(&self, callbacks: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IDebugEventCallbacks>,
{
(::windows_core::Interface::vtable(self).SetEventCallbacks)(::windows_core::Interface::as_raw(self), callbacks.into_param().abi()).ok()
}
pub unsafe fn FlushCallbacks(&self) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).FlushCallbacks)(::windows_core::Interface::as_raw(self)).ok()
}
}
::windows_core::imp::interface_hierarchy!(IDebugClient, ::windows_core::IUnknown);
unsafe impl ::windows_core::Interface for IDebugClient {
type Vtable = IDebugClient_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IDebugClient {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0x27fe5639_8407_4f47_8364_ee118fb08ac8);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugClient_Vtbl {
pub base__: ::windows_core::IUnknown_Vtbl,
pub AttachKernel: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, connectoptions: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub GetKernelConnectionOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PSTR, buffersize: u32, optionssize: *mut u32) -> ::windows_core::HRESULT,
pub SetKernelConnectionOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub StartProcessServer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, options: ::windows_core::PCSTR, reserved: *const ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub ConnectProcessServer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, remoteoptions: ::windows_core::PCSTR, server: *mut u64) -> ::windows_core::HRESULT,
pub DisconnectProcessServer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64) -> ::windows_core::HRESULT,
pub GetRunningProcessSystemIds: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, ids: *mut u32, count: u32, actualcount: *mut u32) -> ::windows_core::HRESULT,
pub GetRunningProcessSystemIdByExecutableName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, exename: ::windows_core::PCSTR, flags: u32, id: *mut u32) -> ::windows_core::HRESULT,
pub GetRunningProcessDescription: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, systemid: u32, flags: u32, exename: ::windows_core::PSTR, exenamesize: u32, actualexenamesize: *mut u32, description: ::windows_core::PSTR, descriptionsize: u32, actualdescriptionsize: *mut u32) -> ::windows_core::HRESULT,
pub AttachProcess: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, processid: u32, attachflags: u32) -> ::windows_core::HRESULT,
pub CreateProcessA: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows_core::PCSTR, createflags: u32) -> ::windows_core::HRESULT,
pub CreateProcessAndAttach: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows_core::PCSTR, createflags: u32, processid: u32, attachflags: u32) -> ::windows_core::HRESULT,
pub GetProcessOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: *mut u32) -> ::windows_core::HRESULT,
pub AddProcessOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows_core::HRESULT,
pub RemoveProcessOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows_core::HRESULT,
pub SetProcessOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows_core::HRESULT,
pub OpenDumpFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, dumpfile: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub WriteDumpFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, dumpfile: ::windows_core::PCSTR, qualifier: u32) -> ::windows_core::HRESULT,
pub ConnectSession: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, historylimit: u32) -> ::windows_core::HRESULT,
pub StartServer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub OutputServers: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, machine: ::windows_core::PCSTR, flags: u32) -> ::windows_core::HRESULT,
pub TerminateProcesses: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub DetachProcesses: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub EndSession: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32) -> ::windows_core::HRESULT,
pub GetExitCode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, code: *mut u32) -> ::windows_core::HRESULT,
pub DispatchCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, timeout: u32) -> ::windows_core::HRESULT,
pub ExitDispatch: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, client: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub CreateClient: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, client: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub GetInputCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub SetInputCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub GetOutputCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub SetOutputCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub GetOutputMask: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: *mut u32) -> ::windows_core::HRESULT,
pub SetOutputMask: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: u32) -> ::windows_core::HRESULT,
pub GetOtherOutputMask: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, client: *mut ::core::ffi::c_void, mask: *mut u32) -> ::windows_core::HRESULT,
pub SetOtherOutputMask: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, client: *mut ::core::ffi::c_void, mask: u32) -> ::windows_core::HRESULT,
pub GetOutputWidth: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, columns: *mut u32) -> ::windows_core::HRESULT,
pub SetOutputWidth: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, columns: u32) -> ::windows_core::HRESULT,
pub GetOutputLinePrefix: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PSTR, buffersize: u32, prefixsize: *mut u32) -> ::windows_core::HRESULT,
pub SetOutputLinePrefix: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, prefix: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub GetIdentity: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PSTR, buffersize: u32, identitysize: *mut u32) -> ::windows_core::HRESULT,
pub OutputIdentity: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, flags: u32, format: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub GetEventCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub SetEventCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub FlushCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IDebugClient2(::windows_core::IUnknown);
impl IDebugClient2 {
pub unsafe fn AttachKernel<P0>(&self, flags: u32, connectoptions: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).AttachKernel)(::windows_core::Interface::as_raw(self), flags, connectoptions.into_param().abi()).ok()
}
pub unsafe fn GetKernelConnectionOptions(&self, buffer: ::core::option::Option<&mut [u8]>, optionssize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetKernelConnectionOptions)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(optionssize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetKernelConnectionOptions<P0>(&self, options: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).SetKernelConnectionOptions)(::windows_core::Interface::as_raw(self), options.into_param().abi()).ok()
}
pub unsafe fn StartProcessServer<P0>(&self, flags: u32, options: P0, reserved: ::core::option::Option<*const ::core::ffi::c_void>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).StartProcessServer)(::windows_core::Interface::as_raw(self), flags, options.into_param().abi(), ::core::mem::transmute(reserved.unwrap_or(::std::ptr::null()))).ok()
}
pub unsafe fn ConnectProcessServer<P0>(&self, remoteoptions: P0) -> ::windows_core::Result<u64>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).ConnectProcessServer)(::windows_core::Interface::as_raw(self), remoteoptions.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn DisconnectProcessServer(&self, server: u64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).DisconnectProcessServer)(::windows_core::Interface::as_raw(self), server).ok()
}
pub unsafe fn GetRunningProcessSystemIds(&self, server: u64, ids: ::core::option::Option<&mut [u32]>, actualcount: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetRunningProcessSystemIds)(::windows_core::Interface::as_raw(self), server, ::core::mem::transmute(ids.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ids.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(actualcount.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetRunningProcessSystemIdByExecutableName<P0>(&self, server: u64, exename: P0, flags: u32) -> ::windows_core::Result<u32>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetRunningProcessSystemIdByExecutableName)(::windows_core::Interface::as_raw(self), server, exename.into_param().abi(), flags, &mut result__).from_abi(result__)
}
pub unsafe fn GetRunningProcessDescription(&self, server: u64, systemid: u32, flags: u32, exename: ::core::option::Option<&mut [u8]>, actualexenamesize: ::core::option::Option<*mut u32>, description: ::core::option::Option<&mut [u8]>, actualdescriptionsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetRunningProcessDescription)(
::windows_core::Interface::as_raw(self),
server,
systemid,
flags,
::core::mem::transmute(exename.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
exename.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(actualexenamesize.unwrap_or(::std::ptr::null_mut())),
::core::mem::transmute(description.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
description.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(actualdescriptionsize.unwrap_or(::std::ptr::null_mut())),
)
.ok()
}
pub unsafe fn AttachProcess(&self, server: u64, processid: u32, attachflags: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).AttachProcess)(::windows_core::Interface::as_raw(self), server, processid, attachflags).ok()
}
pub unsafe fn CreateProcessA<P0>(&self, server: u64, commandline: P0, createflags: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).CreateProcessA)(::windows_core::Interface::as_raw(self), server, commandline.into_param().abi(), createflags).ok()
}
pub unsafe fn CreateProcessAndAttach<P0>(&self, server: u64, commandline: P0, createflags: u32, processid: u32, attachflags: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).CreateProcessAndAttach)(::windows_core::Interface::as_raw(self), server, commandline.into_param().abi(), createflags, processid, attachflags).ok()
}
pub unsafe fn GetProcessOptions(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetProcessOptions)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn AddProcessOptions(&self, options: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).AddProcessOptions)(::windows_core::Interface::as_raw(self), options).ok()
}
pub unsafe fn RemoveProcessOptions(&self, options: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).RemoveProcessOptions)(::windows_core::Interface::as_raw(self), options).ok()
}
pub unsafe fn SetProcessOptions(&self, options: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetProcessOptions)(::windows_core::Interface::as_raw(self), options).ok()
}
pub unsafe fn OpenDumpFile<P0>(&self, dumpfile: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).OpenDumpFile)(::windows_core::Interface::as_raw(self), dumpfile.into_param().abi()).ok()
}
pub unsafe fn WriteDumpFile<P0>(&self, dumpfile: P0, qualifier: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).WriteDumpFile)(::windows_core::Interface::as_raw(self), dumpfile.into_param().abi(), qualifier).ok()
}
pub unsafe fn ConnectSession(&self, flags: u32, historylimit: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).ConnectSession)(::windows_core::Interface::as_raw(self), flags, historylimit).ok()
}
pub unsafe fn StartServer<P0>(&self, options: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).StartServer)(::windows_core::Interface::as_raw(self), options.into_param().abi()).ok()
}
pub unsafe fn OutputServers<P0>(&self, outputcontrol: u32, machine: P0, flags: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).OutputServers)(::windows_core::Interface::as_raw(self), outputcontrol, machine.into_param().abi(), flags).ok()
}
pub unsafe fn TerminateProcesses(&self) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).TerminateProcesses)(::windows_core::Interface::as_raw(self)).ok()
}
pub unsafe fn DetachProcesses(&self) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).DetachProcesses)(::windows_core::Interface::as_raw(self)).ok()
}
pub unsafe fn EndSession(&self, flags: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).EndSession)(::windows_core::Interface::as_raw(self), flags).ok()
}
pub unsafe fn GetExitCode(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetExitCode)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn DispatchCallbacks(&self, timeout: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).DispatchCallbacks)(::windows_core::Interface::as_raw(self), timeout).ok()
}
pub unsafe fn ExitDispatch<P0>(&self, client: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IDebugClient>,
{
(::windows_core::Interface::vtable(self).ExitDispatch)(::windows_core::Interface::as_raw(self), client.into_param().abi()).ok()
}
pub unsafe fn CreateClient(&self) -> ::windows_core::Result<IDebugClient> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).CreateClient)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetInputCallbacks(&self) -> ::windows_core::Result<IDebugInputCallbacks> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetInputCallbacks)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetInputCallbacks<P0>(&self, callbacks: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IDebugInputCallbacks>,
{
(::windows_core::Interface::vtable(self).SetInputCallbacks)(::windows_core::Interface::as_raw(self), callbacks.into_param().abi()).ok()
}
pub unsafe fn GetOutputCallbacks(&self) -> ::windows_core::Result<IDebugOutputCallbacks> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetOutputCallbacks)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetOutputCallbacks<P0>(&self, callbacks: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IDebugOutputCallbacks>,
{
(::windows_core::Interface::vtable(self).SetOutputCallbacks)(::windows_core::Interface::as_raw(self), callbacks.into_param().abi()).ok()
}
pub unsafe fn GetOutputMask(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetOutputMask)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetOutputMask(&self, mask: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetOutputMask)(::windows_core::Interface::as_raw(self), mask).ok()
}
pub unsafe fn GetOtherOutputMask<P0>(&self, client: P0) -> ::windows_core::Result<u32>
where
P0: ::windows_core::IntoParam<IDebugClient>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetOtherOutputMask)(::windows_core::Interface::as_raw(self), client.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn SetOtherOutputMask<P0>(&self, client: P0, mask: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IDebugClient>,
{
(::windows_core::Interface::vtable(self).SetOtherOutputMask)(::windows_core::Interface::as_raw(self), client.into_param().abi(), mask).ok()
}
pub unsafe fn GetOutputWidth(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetOutputWidth)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetOutputWidth(&self, columns: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetOutputWidth)(::windows_core::Interface::as_raw(self), columns).ok()
}
pub unsafe fn GetOutputLinePrefix(&self, buffer: ::core::option::Option<&mut [u8]>, prefixsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetOutputLinePrefix)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(prefixsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetOutputLinePrefix<P0>(&self, prefix: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).SetOutputLinePrefix)(::windows_core::Interface::as_raw(self), prefix.into_param().abi()).ok()
}
pub unsafe fn GetIdentity(&self, buffer: ::core::option::Option<&mut [u8]>, identitysize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetIdentity)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(identitysize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn OutputIdentity<P0>(&self, outputcontrol: u32, flags: u32, format: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).OutputIdentity)(::windows_core::Interface::as_raw(self), outputcontrol, flags, format.into_param().abi()).ok()
}
pub unsafe fn GetEventCallbacks(&self) -> ::windows_core::Result<IDebugEventCallbacks> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetEventCallbacks)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetEventCallbacks<P0>(&self, callbacks: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IDebugEventCallbacks>,
{
(::windows_core::Interface::vtable(self).SetEventCallbacks)(::windows_core::Interface::as_raw(self), callbacks.into_param().abi()).ok()
}
pub unsafe fn FlushCallbacks(&self) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).FlushCallbacks)(::windows_core::Interface::as_raw(self)).ok()
}
pub unsafe fn WriteDumpFile2<P0, P1>(&self, dumpfile: P0, qualifier: u32, formatflags: u32, comment: P1) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
P1: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).WriteDumpFile2)(::windows_core::Interface::as_raw(self), dumpfile.into_param().abi(), qualifier, formatflags, comment.into_param().abi()).ok()
}
pub unsafe fn AddDumpInformationFile<P0>(&self, infofile: P0, r#type: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).AddDumpInformationFile)(::windows_core::Interface::as_raw(self), infofile.into_param().abi(), r#type).ok()
}
pub unsafe fn EndProcessServer(&self, server: u64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).EndProcessServer)(::windows_core::Interface::as_raw(self), server).ok()
}
pub unsafe fn WaitForProcessServerEnd(&self, timeout: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).WaitForProcessServerEnd)(::windows_core::Interface::as_raw(self), timeout).ok()
}
pub unsafe fn IsKernelDebuggerEnabled(&self) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).IsKernelDebuggerEnabled)(::windows_core::Interface::as_raw(self)).ok()
}
pub unsafe fn TerminateCurrentProcess(&self) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).TerminateCurrentProcess)(::windows_core::Interface::as_raw(self)).ok()
}
pub unsafe fn DetachCurrentProcess(&self) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).DetachCurrentProcess)(::windows_core::Interface::as_raw(self)).ok()
}
pub unsafe fn AbandonCurrentProcess(&self) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).AbandonCurrentProcess)(::windows_core::Interface::as_raw(self)).ok()
}
}
::windows_core::imp::interface_hierarchy!(IDebugClient2, ::windows_core::IUnknown);
unsafe impl ::windows_core::Interface for IDebugClient2 {
type Vtable = IDebugClient2_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IDebugClient2 {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0xedbed635_372e_4dab_bbfe_ed0d2f63be81);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugClient2_Vtbl {
pub base__: ::windows_core::IUnknown_Vtbl,
pub AttachKernel: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, connectoptions: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub GetKernelConnectionOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PSTR, buffersize: u32, optionssize: *mut u32) -> ::windows_core::HRESULT,
pub SetKernelConnectionOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub StartProcessServer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, options: ::windows_core::PCSTR, reserved: *const ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub ConnectProcessServer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, remoteoptions: ::windows_core::PCSTR, server: *mut u64) -> ::windows_core::HRESULT,
pub DisconnectProcessServer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64) -> ::windows_core::HRESULT,
pub GetRunningProcessSystemIds: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, ids: *mut u32, count: u32, actualcount: *mut u32) -> ::windows_core::HRESULT,
pub GetRunningProcessSystemIdByExecutableName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, exename: ::windows_core::PCSTR, flags: u32, id: *mut u32) -> ::windows_core::HRESULT,
pub GetRunningProcessDescription: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, systemid: u32, flags: u32, exename: ::windows_core::PSTR, exenamesize: u32, actualexenamesize: *mut u32, description: ::windows_core::PSTR, descriptionsize: u32, actualdescriptionsize: *mut u32) -> ::windows_core::HRESULT,
pub AttachProcess: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, processid: u32, attachflags: u32) -> ::windows_core::HRESULT,
pub CreateProcessA: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows_core::PCSTR, createflags: u32) -> ::windows_core::HRESULT,
pub CreateProcessAndAttach: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows_core::PCSTR, createflags: u32, processid: u32, attachflags: u32) -> ::windows_core::HRESULT,
pub GetProcessOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: *mut u32) -> ::windows_core::HRESULT,
pub AddProcessOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows_core::HRESULT,
pub RemoveProcessOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows_core::HRESULT,
pub SetProcessOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows_core::HRESULT,
pub OpenDumpFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, dumpfile: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub WriteDumpFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, dumpfile: ::windows_core::PCSTR, qualifier: u32) -> ::windows_core::HRESULT,
pub ConnectSession: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, historylimit: u32) -> ::windows_core::HRESULT,
pub StartServer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub OutputServers: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, machine: ::windows_core::PCSTR, flags: u32) -> ::windows_core::HRESULT,
pub TerminateProcesses: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub DetachProcesses: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub EndSession: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32) -> ::windows_core::HRESULT,
pub GetExitCode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, code: *mut u32) -> ::windows_core::HRESULT,
pub DispatchCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, timeout: u32) -> ::windows_core::HRESULT,
pub ExitDispatch: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, client: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub CreateClient: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, client: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub GetInputCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub SetInputCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub GetOutputCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub SetOutputCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub GetOutputMask: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: *mut u32) -> ::windows_core::HRESULT,
pub SetOutputMask: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: u32) -> ::windows_core::HRESULT,
pub GetOtherOutputMask: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, client: *mut ::core::ffi::c_void, mask: *mut u32) -> ::windows_core::HRESULT,
pub SetOtherOutputMask: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, client: *mut ::core::ffi::c_void, mask: u32) -> ::windows_core::HRESULT,
pub GetOutputWidth: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, columns: *mut u32) -> ::windows_core::HRESULT,
pub SetOutputWidth: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, columns: u32) -> ::windows_core::HRESULT,
pub GetOutputLinePrefix: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PSTR, buffersize: u32, prefixsize: *mut u32) -> ::windows_core::HRESULT,
pub SetOutputLinePrefix: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, prefix: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub GetIdentity: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PSTR, buffersize: u32, identitysize: *mut u32) -> ::windows_core::HRESULT,
pub OutputIdentity: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, flags: u32, format: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub GetEventCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub SetEventCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub FlushCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub WriteDumpFile2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, dumpfile: ::windows_core::PCSTR, qualifier: u32, formatflags: u32, comment: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub AddDumpInformationFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, infofile: ::windows_core::PCSTR, r#type: u32) -> ::windows_core::HRESULT,
pub EndProcessServer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64) -> ::windows_core::HRESULT,
pub WaitForProcessServerEnd: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, timeout: u32) -> ::windows_core::HRESULT,
pub IsKernelDebuggerEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub TerminateCurrentProcess: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub DetachCurrentProcess: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub AbandonCurrentProcess: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IDebugClient3(::windows_core::IUnknown);
impl IDebugClient3 {
pub unsafe fn AttachKernel<P0>(&self, flags: u32, connectoptions: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).AttachKernel)(::windows_core::Interface::as_raw(self), flags, connectoptions.into_param().abi()).ok()
}
pub unsafe fn GetKernelConnectionOptions(&self, buffer: ::core::option::Option<&mut [u8]>, optionssize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetKernelConnectionOptions)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(optionssize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetKernelConnectionOptions<P0>(&self, options: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).SetKernelConnectionOptions)(::windows_core::Interface::as_raw(self), options.into_param().abi()).ok()
}
pub unsafe fn StartProcessServer<P0>(&self, flags: u32, options: P0, reserved: ::core::option::Option<*const ::core::ffi::c_void>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).StartProcessServer)(::windows_core::Interface::as_raw(self), flags, options.into_param().abi(), ::core::mem::transmute(reserved.unwrap_or(::std::ptr::null()))).ok()
}
pub unsafe fn ConnectProcessServer<P0>(&self, remoteoptions: P0) -> ::windows_core::Result<u64>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).ConnectProcessServer)(::windows_core::Interface::as_raw(self), remoteoptions.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn DisconnectProcessServer(&self, server: u64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).DisconnectProcessServer)(::windows_core::Interface::as_raw(self), server).ok()
}
pub unsafe fn GetRunningProcessSystemIds(&self, server: u64, ids: ::core::option::Option<&mut [u32]>, actualcount: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetRunningProcessSystemIds)(::windows_core::Interface::as_raw(self), server, ::core::mem::transmute(ids.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ids.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(actualcount.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetRunningProcessSystemIdByExecutableName<P0>(&self, server: u64, exename: P0, flags: u32) -> ::windows_core::Result<u32>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetRunningProcessSystemIdByExecutableName)(::windows_core::Interface::as_raw(self), server, exename.into_param().abi(), flags, &mut result__).from_abi(result__)
}
pub unsafe fn GetRunningProcessDescription(&self, server: u64, systemid: u32, flags: u32, exename: ::core::option::Option<&mut [u8]>, actualexenamesize: ::core::option::Option<*mut u32>, description: ::core::option::Option<&mut [u8]>, actualdescriptionsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetRunningProcessDescription)(
::windows_core::Interface::as_raw(self),
server,
systemid,
flags,
::core::mem::transmute(exename.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
exename.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(actualexenamesize.unwrap_or(::std::ptr::null_mut())),
::core::mem::transmute(description.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
description.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(actualdescriptionsize.unwrap_or(::std::ptr::null_mut())),
)
.ok()
}
pub unsafe fn AttachProcess(&self, server: u64, processid: u32, attachflags: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).AttachProcess)(::windows_core::Interface::as_raw(self), server, processid, attachflags).ok()
}
pub unsafe fn CreateProcessA<P0>(&self, server: u64, commandline: P0, createflags: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).CreateProcessA)(::windows_core::Interface::as_raw(self), server, commandline.into_param().abi(), createflags).ok()
}
pub unsafe fn CreateProcessAndAttach<P0>(&self, server: u64, commandline: P0, createflags: u32, processid: u32, attachflags: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).CreateProcessAndAttach)(::windows_core::Interface::as_raw(self), server, commandline.into_param().abi(), createflags, processid, attachflags).ok()
}
pub unsafe fn GetProcessOptions(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetProcessOptions)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn AddProcessOptions(&self, options: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).AddProcessOptions)(::windows_core::Interface::as_raw(self), options).ok()
}
pub unsafe fn RemoveProcessOptions(&self, options: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).RemoveProcessOptions)(::windows_core::Interface::as_raw(self), options).ok()
}
pub unsafe fn SetProcessOptions(&self, options: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetProcessOptions)(::windows_core::Interface::as_raw(self), options).ok()
}
pub unsafe fn OpenDumpFile<P0>(&self, dumpfile: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).OpenDumpFile)(::windows_core::Interface::as_raw(self), dumpfile.into_param().abi()).ok()
}
pub unsafe fn WriteDumpFile<P0>(&self, dumpfile: P0, qualifier: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).WriteDumpFile)(::windows_core::Interface::as_raw(self), dumpfile.into_param().abi(), qualifier).ok()
}
pub unsafe fn ConnectSession(&self, flags: u32, historylimit: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).ConnectSession)(::windows_core::Interface::as_raw(self), flags, historylimit).ok()
}
pub unsafe fn StartServer<P0>(&self, options: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).StartServer)(::windows_core::Interface::as_raw(self), options.into_param().abi()).ok()
}
pub unsafe fn OutputServers<P0>(&self, outputcontrol: u32, machine: P0, flags: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).OutputServers)(::windows_core::Interface::as_raw(self), outputcontrol, machine.into_param().abi(), flags).ok()
}
pub unsafe fn TerminateProcesses(&self) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).TerminateProcesses)(::windows_core::Interface::as_raw(self)).ok()
}
pub unsafe fn DetachProcesses(&self) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).DetachProcesses)(::windows_core::Interface::as_raw(self)).ok()
}
pub unsafe fn EndSession(&self, flags: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).EndSession)(::windows_core::Interface::as_raw(self), flags).ok()
}
pub unsafe fn GetExitCode(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetExitCode)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn DispatchCallbacks(&self, timeout: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).DispatchCallbacks)(::windows_core::Interface::as_raw(self), timeout).ok()
}
pub unsafe fn ExitDispatch<P0>(&self, client: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IDebugClient>,
{
(::windows_core::Interface::vtable(self).ExitDispatch)(::windows_core::Interface::as_raw(self), client.into_param().abi()).ok()
}
pub unsafe fn CreateClient(&self) -> ::windows_core::Result<IDebugClient> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).CreateClient)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetInputCallbacks(&self) -> ::windows_core::Result<IDebugInputCallbacks> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetInputCallbacks)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetInputCallbacks<P0>(&self, callbacks: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IDebugInputCallbacks>,
{
(::windows_core::Interface::vtable(self).SetInputCallbacks)(::windows_core::Interface::as_raw(self), callbacks.into_param().abi()).ok()
}
pub unsafe fn GetOutputCallbacks(&self) -> ::windows_core::Result<IDebugOutputCallbacks> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetOutputCallbacks)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetOutputCallbacks<P0>(&self, callbacks: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IDebugOutputCallbacks>,
{
(::windows_core::Interface::vtable(self).SetOutputCallbacks)(::windows_core::Interface::as_raw(self), callbacks.into_param().abi()).ok()
}
pub unsafe fn GetOutputMask(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetOutputMask)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetOutputMask(&self, mask: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetOutputMask)(::windows_core::Interface::as_raw(self), mask).ok()
}
pub unsafe fn GetOtherOutputMask<P0>(&self, client: P0) -> ::windows_core::Result<u32>
where
P0: ::windows_core::IntoParam<IDebugClient>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetOtherOutputMask)(::windows_core::Interface::as_raw(self), client.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn SetOtherOutputMask<P0>(&self, client: P0, mask: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IDebugClient>,
{
(::windows_core::Interface::vtable(self).SetOtherOutputMask)(::windows_core::Interface::as_raw(self), client.into_param().abi(), mask).ok()
}
pub unsafe fn GetOutputWidth(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetOutputWidth)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetOutputWidth(&self, columns: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetOutputWidth)(::windows_core::Interface::as_raw(self), columns).ok()
}
pub unsafe fn GetOutputLinePrefix(&self, buffer: ::core::option::Option<&mut [u8]>, prefixsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetOutputLinePrefix)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(prefixsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetOutputLinePrefix<P0>(&self, prefix: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).SetOutputLinePrefix)(::windows_core::Interface::as_raw(self), prefix.into_param().abi()).ok()
}
pub unsafe fn GetIdentity(&self, buffer: ::core::option::Option<&mut [u8]>, identitysize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetIdentity)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(identitysize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn OutputIdentity<P0>(&self, outputcontrol: u32, flags: u32, format: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).OutputIdentity)(::windows_core::Interface::as_raw(self), outputcontrol, flags, format.into_param().abi()).ok()
}
pub unsafe fn GetEventCallbacks(&self) -> ::windows_core::Result<IDebugEventCallbacks> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetEventCallbacks)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetEventCallbacks<P0>(&self, callbacks: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IDebugEventCallbacks>,
{
(::windows_core::Interface::vtable(self).SetEventCallbacks)(::windows_core::Interface::as_raw(self), callbacks.into_param().abi()).ok()
}
pub unsafe fn FlushCallbacks(&self) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).FlushCallbacks)(::windows_core::Interface::as_raw(self)).ok()
}
pub unsafe fn WriteDumpFile2<P0, P1>(&self, dumpfile: P0, qualifier: u32, formatflags: u32, comment: P1) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
P1: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).WriteDumpFile2)(::windows_core::Interface::as_raw(self), dumpfile.into_param().abi(), qualifier, formatflags, comment.into_param().abi()).ok()
}
pub unsafe fn AddDumpInformationFile<P0>(&self, infofile: P0, r#type: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).AddDumpInformationFile)(::windows_core::Interface::as_raw(self), infofile.into_param().abi(), r#type).ok()
}
pub unsafe fn EndProcessServer(&self, server: u64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).EndProcessServer)(::windows_core::Interface::as_raw(self), server).ok()
}
pub unsafe fn WaitForProcessServerEnd(&self, timeout: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).WaitForProcessServerEnd)(::windows_core::Interface::as_raw(self), timeout).ok()
}
pub unsafe fn IsKernelDebuggerEnabled(&self) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).IsKernelDebuggerEnabled)(::windows_core::Interface::as_raw(self)).ok()
}
pub unsafe fn TerminateCurrentProcess(&self) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).TerminateCurrentProcess)(::windows_core::Interface::as_raw(self)).ok()
}
pub unsafe fn DetachCurrentProcess(&self) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).DetachCurrentProcess)(::windows_core::Interface::as_raw(self)).ok()
}
pub unsafe fn AbandonCurrentProcess(&self) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).AbandonCurrentProcess)(::windows_core::Interface::as_raw(self)).ok()
}
pub unsafe fn GetRunningProcessSystemIdByExecutableNameWide<P0>(&self, server: u64, exename: P0, flags: u32) -> ::windows_core::Result<u32>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetRunningProcessSystemIdByExecutableNameWide)(::windows_core::Interface::as_raw(self), server, exename.into_param().abi(), flags, &mut result__).from_abi(result__)
}
pub unsafe fn GetRunningProcessDescriptionWide(&self, server: u64, systemid: u32, flags: u32, exename: ::core::option::Option<&mut [u16]>, actualexenamesize: ::core::option::Option<*mut u32>, description: ::core::option::Option<&mut [u16]>, actualdescriptionsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetRunningProcessDescriptionWide)(
::windows_core::Interface::as_raw(self),
server,
systemid,
flags,
::core::mem::transmute(exename.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
exename.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(actualexenamesize.unwrap_or(::std::ptr::null_mut())),
::core::mem::transmute(description.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
description.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(actualdescriptionsize.unwrap_or(::std::ptr::null_mut())),
)
.ok()
}
pub unsafe fn CreateProcessWide<P0>(&self, server: u64, commandline: P0, createflags: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).CreateProcessWide)(::windows_core::Interface::as_raw(self), server, commandline.into_param().abi(), createflags).ok()
}
pub unsafe fn CreateProcessAndAttachWide<P0>(&self, server: u64, commandline: P0, createflags: u32, processid: u32, attachflags: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).CreateProcessAndAttachWide)(::windows_core::Interface::as_raw(self), server, commandline.into_param().abi(), createflags, processid, attachflags).ok()
}
}
::windows_core::imp::interface_hierarchy!(IDebugClient3, ::windows_core::IUnknown);
unsafe impl ::windows_core::Interface for IDebugClient3 {
type Vtable = IDebugClient3_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IDebugClient3 {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0xdd492d7f_71b8_4ad6_a8dc_1c887479ff91);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugClient3_Vtbl {
pub base__: ::windows_core::IUnknown_Vtbl,
pub AttachKernel: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, connectoptions: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub GetKernelConnectionOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PSTR, buffersize: u32, optionssize: *mut u32) -> ::windows_core::HRESULT,
pub SetKernelConnectionOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub StartProcessServer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, options: ::windows_core::PCSTR, reserved: *const ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub ConnectProcessServer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, remoteoptions: ::windows_core::PCSTR, server: *mut u64) -> ::windows_core::HRESULT,
pub DisconnectProcessServer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64) -> ::windows_core::HRESULT,
pub GetRunningProcessSystemIds: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, ids: *mut u32, count: u32, actualcount: *mut u32) -> ::windows_core::HRESULT,
pub GetRunningProcessSystemIdByExecutableName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, exename: ::windows_core::PCSTR, flags: u32, id: *mut u32) -> ::windows_core::HRESULT,
pub GetRunningProcessDescription: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, systemid: u32, flags: u32, exename: ::windows_core::PSTR, exenamesize: u32, actualexenamesize: *mut u32, description: ::windows_core::PSTR, descriptionsize: u32, actualdescriptionsize: *mut u32) -> ::windows_core::HRESULT,
pub AttachProcess: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, processid: u32, attachflags: u32) -> ::windows_core::HRESULT,
pub CreateProcessA: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows_core::PCSTR, createflags: u32) -> ::windows_core::HRESULT,
pub CreateProcessAndAttach: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows_core::PCSTR, createflags: u32, processid: u32, attachflags: u32) -> ::windows_core::HRESULT,
pub GetProcessOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: *mut u32) -> ::windows_core::HRESULT,
pub AddProcessOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows_core::HRESULT,
pub RemoveProcessOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows_core::HRESULT,
pub SetProcessOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows_core::HRESULT,
pub OpenDumpFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, dumpfile: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub WriteDumpFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, dumpfile: ::windows_core::PCSTR, qualifier: u32) -> ::windows_core::HRESULT,
pub ConnectSession: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, historylimit: u32) -> ::windows_core::HRESULT,
pub StartServer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub OutputServers: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, machine: ::windows_core::PCSTR, flags: u32) -> ::windows_core::HRESULT,
pub TerminateProcesses: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub DetachProcesses: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub EndSession: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32) -> ::windows_core::HRESULT,
pub GetExitCode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, code: *mut u32) -> ::windows_core::HRESULT,
pub DispatchCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, timeout: u32) -> ::windows_core::HRESULT,
pub ExitDispatch: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, client: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub CreateClient: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, client: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub GetInputCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub SetInputCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub GetOutputCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub SetOutputCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub GetOutputMask: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: *mut u32) -> ::windows_core::HRESULT,
pub SetOutputMask: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: u32) -> ::windows_core::HRESULT,
pub GetOtherOutputMask: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, client: *mut ::core::ffi::c_void, mask: *mut u32) -> ::windows_core::HRESULT,
pub SetOtherOutputMask: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, client: *mut ::core::ffi::c_void, mask: u32) -> ::windows_core::HRESULT,
pub GetOutputWidth: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, columns: *mut u32) -> ::windows_core::HRESULT,
pub SetOutputWidth: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, columns: u32) -> ::windows_core::HRESULT,
pub GetOutputLinePrefix: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PSTR, buffersize: u32, prefixsize: *mut u32) -> ::windows_core::HRESULT,
pub SetOutputLinePrefix: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, prefix: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub GetIdentity: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PSTR, buffersize: u32, identitysize: *mut u32) -> ::windows_core::HRESULT,
pub OutputIdentity: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, flags: u32, format: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub GetEventCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub SetEventCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub FlushCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub WriteDumpFile2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, dumpfile: ::windows_core::PCSTR, qualifier: u32, formatflags: u32, comment: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub AddDumpInformationFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, infofile: ::windows_core::PCSTR, r#type: u32) -> ::windows_core::HRESULT,
pub EndProcessServer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64) -> ::windows_core::HRESULT,
pub WaitForProcessServerEnd: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, timeout: u32) -> ::windows_core::HRESULT,
pub IsKernelDebuggerEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub TerminateCurrentProcess: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub DetachCurrentProcess: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub AbandonCurrentProcess: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub GetRunningProcessSystemIdByExecutableNameWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, exename: ::windows_core::PCWSTR, flags: u32, id: *mut u32) -> ::windows_core::HRESULT,
pub GetRunningProcessDescriptionWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, systemid: u32, flags: u32, exename: ::windows_core::PWSTR, exenamesize: u32, actualexenamesize: *mut u32, description: ::windows_core::PWSTR, descriptionsize: u32, actualdescriptionsize: *mut u32) -> ::windows_core::HRESULT,
pub CreateProcessWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows_core::PCWSTR, createflags: u32) -> ::windows_core::HRESULT,
pub CreateProcessAndAttachWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows_core::PCWSTR, createflags: u32, processid: u32, attachflags: u32) -> ::windows_core::HRESULT,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IDebugClient4(::windows_core::IUnknown);
impl IDebugClient4 {
pub unsafe fn AttachKernel<P0>(&self, flags: u32, connectoptions: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).AttachKernel)(::windows_core::Interface::as_raw(self), flags, connectoptions.into_param().abi()).ok()
}
pub unsafe fn GetKernelConnectionOptions(&self, buffer: ::core::option::Option<&mut [u8]>, optionssize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetKernelConnectionOptions)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(optionssize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetKernelConnectionOptions<P0>(&self, options: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).SetKernelConnectionOptions)(::windows_core::Interface::as_raw(self), options.into_param().abi()).ok()
}
pub unsafe fn StartProcessServer<P0>(&self, flags: u32, options: P0, reserved: ::core::option::Option<*const ::core::ffi::c_void>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).StartProcessServer)(::windows_core::Interface::as_raw(self), flags, options.into_param().abi(), ::core::mem::transmute(reserved.unwrap_or(::std::ptr::null()))).ok()
}
pub unsafe fn ConnectProcessServer<P0>(&self, remoteoptions: P0) -> ::windows_core::Result<u64>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).ConnectProcessServer)(::windows_core::Interface::as_raw(self), remoteoptions.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn DisconnectProcessServer(&self, server: u64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).DisconnectProcessServer)(::windows_core::Interface::as_raw(self), server).ok()
}
pub unsafe fn GetRunningProcessSystemIds(&self, server: u64, ids: ::core::option::Option<&mut [u32]>, actualcount: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetRunningProcessSystemIds)(::windows_core::Interface::as_raw(self), server, ::core::mem::transmute(ids.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ids.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(actualcount.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetRunningProcessSystemIdByExecutableName<P0>(&self, server: u64, exename: P0, flags: u32) -> ::windows_core::Result<u32>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetRunningProcessSystemIdByExecutableName)(::windows_core::Interface::as_raw(self), server, exename.into_param().abi(), flags, &mut result__).from_abi(result__)
}
pub unsafe fn GetRunningProcessDescription(&self, server: u64, systemid: u32, flags: u32, exename: ::core::option::Option<&mut [u8]>, actualexenamesize: ::core::option::Option<*mut u32>, description: ::core::option::Option<&mut [u8]>, actualdescriptionsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetRunningProcessDescription)(
::windows_core::Interface::as_raw(self),
server,
systemid,
flags,
::core::mem::transmute(exename.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
exename.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(actualexenamesize.unwrap_or(::std::ptr::null_mut())),
::core::mem::transmute(description.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
description.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(actualdescriptionsize.unwrap_or(::std::ptr::null_mut())),
)
.ok()
}
pub unsafe fn AttachProcess(&self, server: u64, processid: u32, attachflags: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).AttachProcess)(::windows_core::Interface::as_raw(self), server, processid, attachflags).ok()
}
pub unsafe fn CreateProcessA<P0>(&self, server: u64, commandline: P0, createflags: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).CreateProcessA)(::windows_core::Interface::as_raw(self), server, commandline.into_param().abi(), createflags).ok()
}
pub unsafe fn CreateProcessAndAttach<P0>(&self, server: u64, commandline: P0, createflags: u32, processid: u32, attachflags: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).CreateProcessAndAttach)(::windows_core::Interface::as_raw(self), server, commandline.into_param().abi(), createflags, processid, attachflags).ok()
}
pub unsafe fn GetProcessOptions(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetProcessOptions)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn AddProcessOptions(&self, options: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).AddProcessOptions)(::windows_core::Interface::as_raw(self), options).ok()
}
pub unsafe fn RemoveProcessOptions(&self, options: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).RemoveProcessOptions)(::windows_core::Interface::as_raw(self), options).ok()
}
pub unsafe fn SetProcessOptions(&self, options: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetProcessOptions)(::windows_core::Interface::as_raw(self), options).ok()
}
pub unsafe fn OpenDumpFile<P0>(&self, dumpfile: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).OpenDumpFile)(::windows_core::Interface::as_raw(self), dumpfile.into_param().abi()).ok()
}
pub unsafe fn WriteDumpFile<P0>(&self, dumpfile: P0, qualifier: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).WriteDumpFile)(::windows_core::Interface::as_raw(self), dumpfile.into_param().abi(), qualifier).ok()
}
pub unsafe fn ConnectSession(&self, flags: u32, historylimit: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).ConnectSession)(::windows_core::Interface::as_raw(self), flags, historylimit).ok()
}
pub unsafe fn StartServer<P0>(&self, options: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).StartServer)(::windows_core::Interface::as_raw(self), options.into_param().abi()).ok()
}
pub unsafe fn OutputServers<P0>(&self, outputcontrol: u32, machine: P0, flags: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).OutputServers)(::windows_core::Interface::as_raw(self), outputcontrol, machine.into_param().abi(), flags).ok()
}
pub unsafe fn TerminateProcesses(&self) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).TerminateProcesses)(::windows_core::Interface::as_raw(self)).ok()
}
pub unsafe fn DetachProcesses(&self) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).DetachProcesses)(::windows_core::Interface::as_raw(self)).ok()
}
pub unsafe fn EndSession(&self, flags: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).EndSession)(::windows_core::Interface::as_raw(self), flags).ok()
}
pub unsafe fn GetExitCode(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetExitCode)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn DispatchCallbacks(&self, timeout: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).DispatchCallbacks)(::windows_core::Interface::as_raw(self), timeout).ok()
}
pub unsafe fn ExitDispatch<P0>(&self, client: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IDebugClient>,
{
(::windows_core::Interface::vtable(self).ExitDispatch)(::windows_core::Interface::as_raw(self), client.into_param().abi()).ok()
}
pub unsafe fn CreateClient(&self) -> ::windows_core::Result<IDebugClient> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).CreateClient)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetInputCallbacks(&self) -> ::windows_core::Result<IDebugInputCallbacks> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetInputCallbacks)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetInputCallbacks<P0>(&self, callbacks: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IDebugInputCallbacks>,
{
(::windows_core::Interface::vtable(self).SetInputCallbacks)(::windows_core::Interface::as_raw(self), callbacks.into_param().abi()).ok()
}
pub unsafe fn GetOutputCallbacks(&self) -> ::windows_core::Result<IDebugOutputCallbacks> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetOutputCallbacks)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetOutputCallbacks<P0>(&self, callbacks: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IDebugOutputCallbacks>,
{
(::windows_core::Interface::vtable(self).SetOutputCallbacks)(::windows_core::Interface::as_raw(self), callbacks.into_param().abi()).ok()
}
pub unsafe fn GetOutputMask(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetOutputMask)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetOutputMask(&self, mask: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetOutputMask)(::windows_core::Interface::as_raw(self), mask).ok()
}
pub unsafe fn GetOtherOutputMask<P0>(&self, client: P0) -> ::windows_core::Result<u32>
where
P0: ::windows_core::IntoParam<IDebugClient>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetOtherOutputMask)(::windows_core::Interface::as_raw(self), client.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn SetOtherOutputMask<P0>(&self, client: P0, mask: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IDebugClient>,
{
(::windows_core::Interface::vtable(self).SetOtherOutputMask)(::windows_core::Interface::as_raw(self), client.into_param().abi(), mask).ok()
}
pub unsafe fn GetOutputWidth(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetOutputWidth)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetOutputWidth(&self, columns: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetOutputWidth)(::windows_core::Interface::as_raw(self), columns).ok()
}
pub unsafe fn GetOutputLinePrefix(&self, buffer: ::core::option::Option<&mut [u8]>, prefixsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetOutputLinePrefix)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(prefixsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetOutputLinePrefix<P0>(&self, prefix: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).SetOutputLinePrefix)(::windows_core::Interface::as_raw(self), prefix.into_param().abi()).ok()
}
pub unsafe fn GetIdentity(&self, buffer: ::core::option::Option<&mut [u8]>, identitysize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetIdentity)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(identitysize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn OutputIdentity<P0>(&self, outputcontrol: u32, flags: u32, format: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).OutputIdentity)(::windows_core::Interface::as_raw(self), outputcontrol, flags, format.into_param().abi()).ok()
}
pub unsafe fn GetEventCallbacks(&self) -> ::windows_core::Result<IDebugEventCallbacks> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetEventCallbacks)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetEventCallbacks<P0>(&self, callbacks: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IDebugEventCallbacks>,
{
(::windows_core::Interface::vtable(self).SetEventCallbacks)(::windows_core::Interface::as_raw(self), callbacks.into_param().abi()).ok()
}
pub unsafe fn FlushCallbacks(&self) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).FlushCallbacks)(::windows_core::Interface::as_raw(self)).ok()
}
pub unsafe fn WriteDumpFile2<P0, P1>(&self, dumpfile: P0, qualifier: u32, formatflags: u32, comment: P1) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
P1: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).WriteDumpFile2)(::windows_core::Interface::as_raw(self), dumpfile.into_param().abi(), qualifier, formatflags, comment.into_param().abi()).ok()
}
pub unsafe fn AddDumpInformationFile<P0>(&self, infofile: P0, r#type: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).AddDumpInformationFile)(::windows_core::Interface::as_raw(self), infofile.into_param().abi(), r#type).ok()
}
pub unsafe fn EndProcessServer(&self, server: u64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).EndProcessServer)(::windows_core::Interface::as_raw(self), server).ok()
}
pub unsafe fn WaitForProcessServerEnd(&self, timeout: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).WaitForProcessServerEnd)(::windows_core::Interface::as_raw(self), timeout).ok()
}
pub unsafe fn IsKernelDebuggerEnabled(&self) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).IsKernelDebuggerEnabled)(::windows_core::Interface::as_raw(self)).ok()
}
pub unsafe fn TerminateCurrentProcess(&self) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).TerminateCurrentProcess)(::windows_core::Interface::as_raw(self)).ok()
}
pub unsafe fn DetachCurrentProcess(&self) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).DetachCurrentProcess)(::windows_core::Interface::as_raw(self)).ok()
}
pub unsafe fn AbandonCurrentProcess(&self) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).AbandonCurrentProcess)(::windows_core::Interface::as_raw(self)).ok()
}
pub unsafe fn GetRunningProcessSystemIdByExecutableNameWide<P0>(&self, server: u64, exename: P0, flags: u32) -> ::windows_core::Result<u32>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetRunningProcessSystemIdByExecutableNameWide)(::windows_core::Interface::as_raw(self), server, exename.into_param().abi(), flags, &mut result__).from_abi(result__)
}
pub unsafe fn GetRunningProcessDescriptionWide(&self, server: u64, systemid: u32, flags: u32, exename: ::core::option::Option<&mut [u16]>, actualexenamesize: ::core::option::Option<*mut u32>, description: ::core::option::Option<&mut [u16]>, actualdescriptionsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetRunningProcessDescriptionWide)(
::windows_core::Interface::as_raw(self),
server,
systemid,
flags,
::core::mem::transmute(exename.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
exename.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(actualexenamesize.unwrap_or(::std::ptr::null_mut())),
::core::mem::transmute(description.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
description.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(actualdescriptionsize.unwrap_or(::std::ptr::null_mut())),
)
.ok()
}
pub unsafe fn CreateProcessWide<P0>(&self, server: u64, commandline: P0, createflags: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).CreateProcessWide)(::windows_core::Interface::as_raw(self), server, commandline.into_param().abi(), createflags).ok()
}
pub unsafe fn CreateProcessAndAttachWide<P0>(&self, server: u64, commandline: P0, createflags: u32, processid: u32, attachflags: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).CreateProcessAndAttachWide)(::windows_core::Interface::as_raw(self), server, commandline.into_param().abi(), createflags, processid, attachflags).ok()
}
pub unsafe fn OpenDumpFileWide<P0>(&self, filename: P0, filehandle: u64) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).OpenDumpFileWide)(::windows_core::Interface::as_raw(self), filename.into_param().abi(), filehandle).ok()
}
pub unsafe fn WriteDumpFileWide<P0, P1>(&self, filename: P0, filehandle: u64, qualifier: u32, formatflags: u32, comment: P1) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
P1: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).WriteDumpFileWide)(::windows_core::Interface::as_raw(self), filename.into_param().abi(), filehandle, qualifier, formatflags, comment.into_param().abi()).ok()
}
pub unsafe fn AddDumpInformationFileWide<P0>(&self, filename: P0, filehandle: u64, r#type: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).AddDumpInformationFileWide)(::windows_core::Interface::as_raw(self), filename.into_param().abi(), filehandle, r#type).ok()
}
pub unsafe fn GetNumberDumpFiles(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetNumberDumpFiles)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetDumpFile(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<*mut u32>, handle: ::core::option::Option<*mut u64>, r#type: *mut u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetDumpFile)(::windows_core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(handle.unwrap_or(::std::ptr::null_mut())), r#type).ok()
}
pub unsafe fn GetDumpFileWide(&self, index: u32, buffer: ::core::option::Option<&mut [u16]>, namesize: ::core::option::Option<*mut u32>, handle: ::core::option::Option<*mut u64>, r#type: *mut u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetDumpFileWide)(::windows_core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(handle.unwrap_or(::std::ptr::null_mut())), r#type).ok()
}
}
::windows_core::imp::interface_hierarchy!(IDebugClient4, ::windows_core::IUnknown);
unsafe impl ::windows_core::Interface for IDebugClient4 {
type Vtable = IDebugClient4_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IDebugClient4 {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0xca83c3de_5089_4cf8_93c8_d892387f2a5e);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugClient4_Vtbl {
pub base__: ::windows_core::IUnknown_Vtbl,
pub AttachKernel: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, connectoptions: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub GetKernelConnectionOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PSTR, buffersize: u32, optionssize: *mut u32) -> ::windows_core::HRESULT,
pub SetKernelConnectionOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub StartProcessServer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, options: ::windows_core::PCSTR, reserved: *const ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub ConnectProcessServer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, remoteoptions: ::windows_core::PCSTR, server: *mut u64) -> ::windows_core::HRESULT,
pub DisconnectProcessServer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64) -> ::windows_core::HRESULT,
pub GetRunningProcessSystemIds: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, ids: *mut u32, count: u32, actualcount: *mut u32) -> ::windows_core::HRESULT,
pub GetRunningProcessSystemIdByExecutableName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, exename: ::windows_core::PCSTR, flags: u32, id: *mut u32) -> ::windows_core::HRESULT,
pub GetRunningProcessDescription: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, systemid: u32, flags: u32, exename: ::windows_core::PSTR, exenamesize: u32, actualexenamesize: *mut u32, description: ::windows_core::PSTR, descriptionsize: u32, actualdescriptionsize: *mut u32) -> ::windows_core::HRESULT,
pub AttachProcess: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, processid: u32, attachflags: u32) -> ::windows_core::HRESULT,
pub CreateProcessA: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows_core::PCSTR, createflags: u32) -> ::windows_core::HRESULT,
pub CreateProcessAndAttach: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows_core::PCSTR, createflags: u32, processid: u32, attachflags: u32) -> ::windows_core::HRESULT,
pub GetProcessOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: *mut u32) -> ::windows_core::HRESULT,
pub AddProcessOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows_core::HRESULT,
pub RemoveProcessOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows_core::HRESULT,
pub SetProcessOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows_core::HRESULT,
pub OpenDumpFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, dumpfile: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub WriteDumpFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, dumpfile: ::windows_core::PCSTR, qualifier: u32) -> ::windows_core::HRESULT,
pub ConnectSession: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, historylimit: u32) -> ::windows_core::HRESULT,
pub StartServer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub OutputServers: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, machine: ::windows_core::PCSTR, flags: u32) -> ::windows_core::HRESULT,
pub TerminateProcesses: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub DetachProcesses: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub EndSession: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32) -> ::windows_core::HRESULT,
pub GetExitCode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, code: *mut u32) -> ::windows_core::HRESULT,
pub DispatchCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, timeout: u32) -> ::windows_core::HRESULT,
pub ExitDispatch: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, client: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub CreateClient: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, client: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub GetInputCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub SetInputCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub GetOutputCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub SetOutputCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub GetOutputMask: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: *mut u32) -> ::windows_core::HRESULT,
pub SetOutputMask: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: u32) -> ::windows_core::HRESULT,
pub GetOtherOutputMask: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, client: *mut ::core::ffi::c_void, mask: *mut u32) -> ::windows_core::HRESULT,
pub SetOtherOutputMask: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, client: *mut ::core::ffi::c_void, mask: u32) -> ::windows_core::HRESULT,
pub GetOutputWidth: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, columns: *mut u32) -> ::windows_core::HRESULT,
pub SetOutputWidth: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, columns: u32) -> ::windows_core::HRESULT,
pub GetOutputLinePrefix: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PSTR, buffersize: u32, prefixsize: *mut u32) -> ::windows_core::HRESULT,
pub SetOutputLinePrefix: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, prefix: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub GetIdentity: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PSTR, buffersize: u32, identitysize: *mut u32) -> ::windows_core::HRESULT,
pub OutputIdentity: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, flags: u32, format: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub GetEventCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub SetEventCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub FlushCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub WriteDumpFile2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, dumpfile: ::windows_core::PCSTR, qualifier: u32, formatflags: u32, comment: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub AddDumpInformationFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, infofile: ::windows_core::PCSTR, r#type: u32) -> ::windows_core::HRESULT,
pub EndProcessServer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64) -> ::windows_core::HRESULT,
pub WaitForProcessServerEnd: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, timeout: u32) -> ::windows_core::HRESULT,
pub IsKernelDebuggerEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub TerminateCurrentProcess: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub DetachCurrentProcess: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub AbandonCurrentProcess: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub GetRunningProcessSystemIdByExecutableNameWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, exename: ::windows_core::PCWSTR, flags: u32, id: *mut u32) -> ::windows_core::HRESULT,
pub GetRunningProcessDescriptionWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, systemid: u32, flags: u32, exename: ::windows_core::PWSTR, exenamesize: u32, actualexenamesize: *mut u32, description: ::windows_core::PWSTR, descriptionsize: u32, actualdescriptionsize: *mut u32) -> ::windows_core::HRESULT,
pub CreateProcessWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows_core::PCWSTR, createflags: u32) -> ::windows_core::HRESULT,
pub CreateProcessAndAttachWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows_core::PCWSTR, createflags: u32, processid: u32, attachflags: u32) -> ::windows_core::HRESULT,
pub OpenDumpFileWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, filename: ::windows_core::PCWSTR, filehandle: u64) -> ::windows_core::HRESULT,
pub WriteDumpFileWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, filename: ::windows_core::PCWSTR, filehandle: u64, qualifier: u32, formatflags: u32, comment: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
pub AddDumpInformationFileWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, filename: ::windows_core::PCWSTR, filehandle: u64, r#type: u32) -> ::windows_core::HRESULT,
pub GetNumberDumpFiles: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows_core::HRESULT,
pub GetDumpFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows_core::PSTR, buffersize: u32, namesize: *mut u32, handle: *mut u64, r#type: *mut u32) -> ::windows_core::HRESULT,
pub GetDumpFileWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows_core::PWSTR, buffersize: u32, namesize: *mut u32, handle: *mut u64, r#type: *mut u32) -> ::windows_core::HRESULT,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IDebugClient5(::windows_core::IUnknown);
impl IDebugClient5 {
pub unsafe fn AttachKernel<P0>(&self, flags: u32, connectoptions: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).AttachKernel)(::windows_core::Interface::as_raw(self), flags, connectoptions.into_param().abi()).ok()
}
pub unsafe fn GetKernelConnectionOptions(&self, buffer: ::core::option::Option<&mut [u8]>, optionssize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetKernelConnectionOptions)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(optionssize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetKernelConnectionOptions<P0>(&self, options: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).SetKernelConnectionOptions)(::windows_core::Interface::as_raw(self), options.into_param().abi()).ok()
}
pub unsafe fn StartProcessServer<P0>(&self, flags: u32, options: P0, reserved: ::core::option::Option<*const ::core::ffi::c_void>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).StartProcessServer)(::windows_core::Interface::as_raw(self), flags, options.into_param().abi(), ::core::mem::transmute(reserved.unwrap_or(::std::ptr::null()))).ok()
}
pub unsafe fn ConnectProcessServer<P0>(&self, remoteoptions: P0) -> ::windows_core::Result<u64>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).ConnectProcessServer)(::windows_core::Interface::as_raw(self), remoteoptions.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn DisconnectProcessServer(&self, server: u64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).DisconnectProcessServer)(::windows_core::Interface::as_raw(self), server).ok()
}
pub unsafe fn GetRunningProcessSystemIds(&self, server: u64, ids: ::core::option::Option<&mut [u32]>, actualcount: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetRunningProcessSystemIds)(::windows_core::Interface::as_raw(self), server, ::core::mem::transmute(ids.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ids.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(actualcount.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetRunningProcessSystemIdByExecutableName<P0>(&self, server: u64, exename: P0, flags: u32) -> ::windows_core::Result<u32>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetRunningProcessSystemIdByExecutableName)(::windows_core::Interface::as_raw(self), server, exename.into_param().abi(), flags, &mut result__).from_abi(result__)
}
pub unsafe fn GetRunningProcessDescription(&self, server: u64, systemid: u32, flags: u32, exename: ::core::option::Option<&mut [u8]>, actualexenamesize: ::core::option::Option<*mut u32>, description: ::core::option::Option<&mut [u8]>, actualdescriptionsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetRunningProcessDescription)(
::windows_core::Interface::as_raw(self),
server,
systemid,
flags,
::core::mem::transmute(exename.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
exename.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(actualexenamesize.unwrap_or(::std::ptr::null_mut())),
::core::mem::transmute(description.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
description.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(actualdescriptionsize.unwrap_or(::std::ptr::null_mut())),
)
.ok()
}
pub unsafe fn AttachProcess(&self, server: u64, processid: u32, attachflags: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).AttachProcess)(::windows_core::Interface::as_raw(self), server, processid, attachflags).ok()
}
pub unsafe fn CreateProcessA<P0>(&self, server: u64, commandline: P0, createflags: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).CreateProcessA)(::windows_core::Interface::as_raw(self), server, commandline.into_param().abi(), createflags).ok()
}
pub unsafe fn CreateProcessAndAttach<P0>(&self, server: u64, commandline: P0, createflags: u32, processid: u32, attachflags: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).CreateProcessAndAttach)(::windows_core::Interface::as_raw(self), server, commandline.into_param().abi(), createflags, processid, attachflags).ok()
}
pub unsafe fn GetProcessOptions(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetProcessOptions)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn AddProcessOptions(&self, options: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).AddProcessOptions)(::windows_core::Interface::as_raw(self), options).ok()
}
pub unsafe fn RemoveProcessOptions(&self, options: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).RemoveProcessOptions)(::windows_core::Interface::as_raw(self), options).ok()
}
pub unsafe fn SetProcessOptions(&self, options: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetProcessOptions)(::windows_core::Interface::as_raw(self), options).ok()
}
pub unsafe fn OpenDumpFile<P0>(&self, dumpfile: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).OpenDumpFile)(::windows_core::Interface::as_raw(self), dumpfile.into_param().abi()).ok()
}
pub unsafe fn WriteDumpFile<P0>(&self, dumpfile: P0, qualifier: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).WriteDumpFile)(::windows_core::Interface::as_raw(self), dumpfile.into_param().abi(), qualifier).ok()
}
pub unsafe fn ConnectSession(&self, flags: u32, historylimit: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).ConnectSession)(::windows_core::Interface::as_raw(self), flags, historylimit).ok()
}
pub unsafe fn StartServer<P0>(&self, options: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).StartServer)(::windows_core::Interface::as_raw(self), options.into_param().abi()).ok()
}
pub unsafe fn OutputServers<P0>(&self, outputcontrol: u32, machine: P0, flags: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).OutputServers)(::windows_core::Interface::as_raw(self), outputcontrol, machine.into_param().abi(), flags).ok()
}
pub unsafe fn TerminateProcesses(&self) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).TerminateProcesses)(::windows_core::Interface::as_raw(self)).ok()
}
pub unsafe fn DetachProcesses(&self) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).DetachProcesses)(::windows_core::Interface::as_raw(self)).ok()
}
pub unsafe fn EndSession(&self, flags: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).EndSession)(::windows_core::Interface::as_raw(self), flags).ok()
}
pub unsafe fn GetExitCode(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetExitCode)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn DispatchCallbacks(&self, timeout: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).DispatchCallbacks)(::windows_core::Interface::as_raw(self), timeout).ok()
}
pub unsafe fn ExitDispatch<P0>(&self, client: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IDebugClient>,
{
(::windows_core::Interface::vtable(self).ExitDispatch)(::windows_core::Interface::as_raw(self), client.into_param().abi()).ok()
}
pub unsafe fn CreateClient(&self) -> ::windows_core::Result<IDebugClient> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).CreateClient)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetInputCallbacks(&self) -> ::windows_core::Result<IDebugInputCallbacks> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetInputCallbacks)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetInputCallbacks<P0>(&self, callbacks: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IDebugInputCallbacks>,
{
(::windows_core::Interface::vtable(self).SetInputCallbacks)(::windows_core::Interface::as_raw(self), callbacks.into_param().abi()).ok()
}
pub unsafe fn GetOutputCallbacks(&self) -> ::windows_core::Result<IDebugOutputCallbacks> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetOutputCallbacks)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetOutputCallbacks<P0>(&self, callbacks: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IDebugOutputCallbacks>,
{
(::windows_core::Interface::vtable(self).SetOutputCallbacks)(::windows_core::Interface::as_raw(self), callbacks.into_param().abi()).ok()
}
pub unsafe fn GetOutputMask(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetOutputMask)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetOutputMask(&self, mask: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetOutputMask)(::windows_core::Interface::as_raw(self), mask).ok()
}
pub unsafe fn GetOtherOutputMask<P0>(&self, client: P0) -> ::windows_core::Result<u32>
where
P0: ::windows_core::IntoParam<IDebugClient>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetOtherOutputMask)(::windows_core::Interface::as_raw(self), client.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn SetOtherOutputMask<P0>(&self, client: P0, mask: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IDebugClient>,
{
(::windows_core::Interface::vtable(self).SetOtherOutputMask)(::windows_core::Interface::as_raw(self), client.into_param().abi(), mask).ok()
}
pub unsafe fn GetOutputWidth(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetOutputWidth)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetOutputWidth(&self, columns: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetOutputWidth)(::windows_core::Interface::as_raw(self), columns).ok()
}
pub unsafe fn GetOutputLinePrefix(&self, buffer: ::core::option::Option<&mut [u8]>, prefixsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetOutputLinePrefix)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(prefixsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetOutputLinePrefix<P0>(&self, prefix: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).SetOutputLinePrefix)(::windows_core::Interface::as_raw(self), prefix.into_param().abi()).ok()
}
pub unsafe fn GetIdentity(&self, buffer: ::core::option::Option<&mut [u8]>, identitysize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetIdentity)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(identitysize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn OutputIdentity<P0>(&self, outputcontrol: u32, flags: u32, format: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).OutputIdentity)(::windows_core::Interface::as_raw(self), outputcontrol, flags, format.into_param().abi()).ok()
}
pub unsafe fn GetEventCallbacks(&self) -> ::windows_core::Result<IDebugEventCallbacks> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetEventCallbacks)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetEventCallbacks<P0>(&self, callbacks: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IDebugEventCallbacks>,
{
(::windows_core::Interface::vtable(self).SetEventCallbacks)(::windows_core::Interface::as_raw(self), callbacks.into_param().abi()).ok()
}
pub unsafe fn FlushCallbacks(&self) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).FlushCallbacks)(::windows_core::Interface::as_raw(self)).ok()
}
pub unsafe fn WriteDumpFile2<P0, P1>(&self, dumpfile: P0, qualifier: u32, formatflags: u32, comment: P1) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
P1: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).WriteDumpFile2)(::windows_core::Interface::as_raw(self), dumpfile.into_param().abi(), qualifier, formatflags, comment.into_param().abi()).ok()
}
pub unsafe fn AddDumpInformationFile<P0>(&self, infofile: P0, r#type: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).AddDumpInformationFile)(::windows_core::Interface::as_raw(self), infofile.into_param().abi(), r#type).ok()
}
pub unsafe fn EndProcessServer(&self, server: u64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).EndProcessServer)(::windows_core::Interface::as_raw(self), server).ok()
}
pub unsafe fn WaitForProcessServerEnd(&self, timeout: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).WaitForProcessServerEnd)(::windows_core::Interface::as_raw(self), timeout).ok()
}
pub unsafe fn IsKernelDebuggerEnabled(&self) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).IsKernelDebuggerEnabled)(::windows_core::Interface::as_raw(self)).ok()
}
pub unsafe fn TerminateCurrentProcess(&self) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).TerminateCurrentProcess)(::windows_core::Interface::as_raw(self)).ok()
}
pub unsafe fn DetachCurrentProcess(&self) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).DetachCurrentProcess)(::windows_core::Interface::as_raw(self)).ok()
}
pub unsafe fn AbandonCurrentProcess(&self) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).AbandonCurrentProcess)(::windows_core::Interface::as_raw(self)).ok()
}
pub unsafe fn GetRunningProcessSystemIdByExecutableNameWide<P0>(&self, server: u64, exename: P0, flags: u32) -> ::windows_core::Result<u32>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetRunningProcessSystemIdByExecutableNameWide)(::windows_core::Interface::as_raw(self), server, exename.into_param().abi(), flags, &mut result__).from_abi(result__)
}
pub unsafe fn GetRunningProcessDescriptionWide(&self, server: u64, systemid: u32, flags: u32, exename: ::core::option::Option<&mut [u16]>, actualexenamesize: ::core::option::Option<*mut u32>, description: ::core::option::Option<&mut [u16]>, actualdescriptionsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetRunningProcessDescriptionWide)(
::windows_core::Interface::as_raw(self),
server,
systemid,
flags,
::core::mem::transmute(exename.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
exename.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(actualexenamesize.unwrap_or(::std::ptr::null_mut())),
::core::mem::transmute(description.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
description.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(actualdescriptionsize.unwrap_or(::std::ptr::null_mut())),
)
.ok()
}
pub unsafe fn CreateProcessWide<P0>(&self, server: u64, commandline: P0, createflags: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).CreateProcessWide)(::windows_core::Interface::as_raw(self), server, commandline.into_param().abi(), createflags).ok()
}
pub unsafe fn CreateProcessAndAttachWide<P0>(&self, server: u64, commandline: P0, createflags: u32, processid: u32, attachflags: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).CreateProcessAndAttachWide)(::windows_core::Interface::as_raw(self), server, commandline.into_param().abi(), createflags, processid, attachflags).ok()
}
pub unsafe fn OpenDumpFileWide<P0>(&self, filename: P0, filehandle: u64) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).OpenDumpFileWide)(::windows_core::Interface::as_raw(self), filename.into_param().abi(), filehandle).ok()
}
pub unsafe fn WriteDumpFileWide<P0, P1>(&self, filename: P0, filehandle: u64, qualifier: u32, formatflags: u32, comment: P1) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
P1: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).WriteDumpFileWide)(::windows_core::Interface::as_raw(self), filename.into_param().abi(), filehandle, qualifier, formatflags, comment.into_param().abi()).ok()
}
pub unsafe fn AddDumpInformationFileWide<P0>(&self, filename: P0, filehandle: u64, r#type: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).AddDumpInformationFileWide)(::windows_core::Interface::as_raw(self), filename.into_param().abi(), filehandle, r#type).ok()
}
pub unsafe fn GetNumberDumpFiles(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetNumberDumpFiles)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetDumpFile(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<*mut u32>, handle: ::core::option::Option<*mut u64>, r#type: *mut u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetDumpFile)(::windows_core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(handle.unwrap_or(::std::ptr::null_mut())), r#type).ok()
}
pub unsafe fn GetDumpFileWide(&self, index: u32, buffer: ::core::option::Option<&mut [u16]>, namesize: ::core::option::Option<*mut u32>, handle: ::core::option::Option<*mut u64>, r#type: *mut u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetDumpFileWide)(::windows_core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(handle.unwrap_or(::std::ptr::null_mut())), r#type).ok()
}
pub unsafe fn AttachKernelWide<P0>(&self, flags: u32, connectoptions: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).AttachKernelWide)(::windows_core::Interface::as_raw(self), flags, connectoptions.into_param().abi()).ok()
}
pub unsafe fn GetKernelConnectionOptionsWide(&self, buffer: ::core::option::Option<&mut [u16]>, optionssize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetKernelConnectionOptionsWide)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(optionssize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetKernelConnectionOptionsWide<P0>(&self, options: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).SetKernelConnectionOptionsWide)(::windows_core::Interface::as_raw(self), options.into_param().abi()).ok()
}
pub unsafe fn StartProcessServerWide<P0>(&self, flags: u32, options: P0, reserved: ::core::option::Option<*const ::core::ffi::c_void>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).StartProcessServerWide)(::windows_core::Interface::as_raw(self), flags, options.into_param().abi(), ::core::mem::transmute(reserved.unwrap_or(::std::ptr::null()))).ok()
}
pub unsafe fn ConnectProcessServerWide<P0>(&self, remoteoptions: P0) -> ::windows_core::Result<u64>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).ConnectProcessServerWide)(::windows_core::Interface::as_raw(self), remoteoptions.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn StartServerWide<P0>(&self, options: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).StartServerWide)(::windows_core::Interface::as_raw(self), options.into_param().abi()).ok()
}
pub unsafe fn OutputServersWide<P0>(&self, outputcontrol: u32, machine: P0, flags: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).OutputServersWide)(::windows_core::Interface::as_raw(self), outputcontrol, machine.into_param().abi(), flags).ok()
}
pub unsafe fn GetOutputCallbacksWide(&self) -> ::windows_core::Result<IDebugOutputCallbacksWide> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetOutputCallbacksWide)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetOutputCallbacksWide<P0>(&self, callbacks: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IDebugOutputCallbacksWide>,
{
(::windows_core::Interface::vtable(self).SetOutputCallbacksWide)(::windows_core::Interface::as_raw(self), callbacks.into_param().abi()).ok()
}
pub unsafe fn GetOutputLinePrefixWide(&self, buffer: ::core::option::Option<&mut [u16]>, prefixsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetOutputLinePrefixWide)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(prefixsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetOutputLinePrefixWide<P0>(&self, prefix: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).SetOutputLinePrefixWide)(::windows_core::Interface::as_raw(self), prefix.into_param().abi()).ok()
}
pub unsafe fn GetIdentityWide(&self, buffer: ::core::option::Option<&mut [u16]>, identitysize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetIdentityWide)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(identitysize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn OutputIdentityWide<P0>(&self, outputcontrol: u32, flags: u32, format: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).OutputIdentityWide)(::windows_core::Interface::as_raw(self), outputcontrol, flags, format.into_param().abi()).ok()
}
pub unsafe fn GetEventCallbacksWide(&self) -> ::windows_core::Result<IDebugEventCallbacksWide> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetEventCallbacksWide)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetEventCallbacksWide<P0>(&self, callbacks: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IDebugEventCallbacksWide>,
{
(::windows_core::Interface::vtable(self).SetEventCallbacksWide)(::windows_core::Interface::as_raw(self), callbacks.into_param().abi()).ok()
}
pub unsafe fn CreateProcess2<P0, P1, P2>(&self, server: u64, commandline: P0, optionsbuffer: *const ::core::ffi::c_void, optionsbuffersize: u32, initialdirectory: P1, environment: P2) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
P1: ::windows_core::IntoParam<::windows_core::PCSTR>,
P2: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).CreateProcess2)(::windows_core::Interface::as_raw(self), server, commandline.into_param().abi(), optionsbuffer, optionsbuffersize, initialdirectory.into_param().abi(), environment.into_param().abi()).ok()
}
pub unsafe fn CreateProcess2Wide<P0, P1, P2>(&self, server: u64, commandline: P0, optionsbuffer: *const ::core::ffi::c_void, optionsbuffersize: u32, initialdirectory: P1, environment: P2) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
P1: ::windows_core::IntoParam<::windows_core::PCWSTR>,
P2: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).CreateProcess2Wide)(::windows_core::Interface::as_raw(self), server, commandline.into_param().abi(), optionsbuffer, optionsbuffersize, initialdirectory.into_param().abi(), environment.into_param().abi()).ok()
}
pub unsafe fn CreateProcessAndAttach2<P0, P1, P2>(&self, server: u64, commandline: P0, optionsbuffer: *const ::core::ffi::c_void, optionsbuffersize: u32, initialdirectory: P1, environment: P2, processid: u32, attachflags: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
P1: ::windows_core::IntoParam<::windows_core::PCSTR>,
P2: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).CreateProcessAndAttach2)(::windows_core::Interface::as_raw(self), server, commandline.into_param().abi(), optionsbuffer, optionsbuffersize, initialdirectory.into_param().abi(), environment.into_param().abi(), processid, attachflags).ok()
}
pub unsafe fn CreateProcessAndAttach2Wide<P0, P1, P2>(&self, server: u64, commandline: P0, optionsbuffer: *const ::core::ffi::c_void, optionsbuffersize: u32, initialdirectory: P1, environment: P2, processid: u32, attachflags: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
P1: ::windows_core::IntoParam<::windows_core::PCWSTR>,
P2: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).CreateProcessAndAttach2Wide)(::windows_core::Interface::as_raw(self), server, commandline.into_param().abi(), optionsbuffer, optionsbuffersize, initialdirectory.into_param().abi(), environment.into_param().abi(), processid, attachflags).ok()
}
pub unsafe fn PushOutputLinePrefix<P0>(&self, newprefix: P0) -> ::windows_core::Result<u64>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).PushOutputLinePrefix)(::windows_core::Interface::as_raw(self), newprefix.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn PushOutputLinePrefixWide<P0>(&self, newprefix: P0) -> ::windows_core::Result<u64>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).PushOutputLinePrefixWide)(::windows_core::Interface::as_raw(self), newprefix.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn PopOutputLinePrefix(&self, handle: u64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).PopOutputLinePrefix)(::windows_core::Interface::as_raw(self), handle).ok()
}
pub unsafe fn GetNumberInputCallbacks(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetNumberInputCallbacks)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetNumberOutputCallbacks(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetNumberOutputCallbacks)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetNumberEventCallbacks(&self, eventflags: u32) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetNumberEventCallbacks)(::windows_core::Interface::as_raw(self), eventflags, &mut result__).from_abi(result__)
}
pub unsafe fn GetQuitLockString(&self, buffer: ::core::option::Option<&mut [u8]>, stringsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetQuitLockString)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(stringsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetQuitLockString<P0>(&self, string: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).SetQuitLockString)(::windows_core::Interface::as_raw(self), string.into_param().abi()).ok()
}
pub unsafe fn GetQuitLockStringWide(&self, buffer: ::core::option::Option<&mut [u16]>, stringsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetQuitLockStringWide)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(stringsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetQuitLockStringWide<P0>(&self, string: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).SetQuitLockStringWide)(::windows_core::Interface::as_raw(self), string.into_param().abi()).ok()
}
}
::windows_core::imp::interface_hierarchy!(IDebugClient5, ::windows_core::IUnknown);
unsafe impl ::windows_core::Interface for IDebugClient5 {
type Vtable = IDebugClient5_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IDebugClient5 {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0xe3acb9d7_7ec2_4f0c_a0da_e81e0cbbe628);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugClient5_Vtbl {
pub base__: ::windows_core::IUnknown_Vtbl,
pub AttachKernel: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, connectoptions: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub GetKernelConnectionOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PSTR, buffersize: u32, optionssize: *mut u32) -> ::windows_core::HRESULT,
pub SetKernelConnectionOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub StartProcessServer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, options: ::windows_core::PCSTR, reserved: *const ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub ConnectProcessServer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, remoteoptions: ::windows_core::PCSTR, server: *mut u64) -> ::windows_core::HRESULT,
pub DisconnectProcessServer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64) -> ::windows_core::HRESULT,
pub GetRunningProcessSystemIds: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, ids: *mut u32, count: u32, actualcount: *mut u32) -> ::windows_core::HRESULT,
pub GetRunningProcessSystemIdByExecutableName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, exename: ::windows_core::PCSTR, flags: u32, id: *mut u32) -> ::windows_core::HRESULT,
pub GetRunningProcessDescription: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, systemid: u32, flags: u32, exename: ::windows_core::PSTR, exenamesize: u32, actualexenamesize: *mut u32, description: ::windows_core::PSTR, descriptionsize: u32, actualdescriptionsize: *mut u32) -> ::windows_core::HRESULT,
pub AttachProcess: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, processid: u32, attachflags: u32) -> ::windows_core::HRESULT,
pub CreateProcessA: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows_core::PCSTR, createflags: u32) -> ::windows_core::HRESULT,
pub CreateProcessAndAttach: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows_core::PCSTR, createflags: u32, processid: u32, attachflags: u32) -> ::windows_core::HRESULT,
pub GetProcessOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: *mut u32) -> ::windows_core::HRESULT,
pub AddProcessOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows_core::HRESULT,
pub RemoveProcessOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows_core::HRESULT,
pub SetProcessOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows_core::HRESULT,
pub OpenDumpFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, dumpfile: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub WriteDumpFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, dumpfile: ::windows_core::PCSTR, qualifier: u32) -> ::windows_core::HRESULT,
pub ConnectSession: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, historylimit: u32) -> ::windows_core::HRESULT,
pub StartServer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub OutputServers: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, machine: ::windows_core::PCSTR, flags: u32) -> ::windows_core::HRESULT,
pub TerminateProcesses: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub DetachProcesses: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub EndSession: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32) -> ::windows_core::HRESULT,
pub GetExitCode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, code: *mut u32) -> ::windows_core::HRESULT,
pub DispatchCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, timeout: u32) -> ::windows_core::HRESULT,
pub ExitDispatch: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, client: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub CreateClient: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, client: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub GetInputCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub SetInputCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub GetOutputCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub SetOutputCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub GetOutputMask: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: *mut u32) -> ::windows_core::HRESULT,
pub SetOutputMask: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: u32) -> ::windows_core::HRESULT,
pub GetOtherOutputMask: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, client: *mut ::core::ffi::c_void, mask: *mut u32) -> ::windows_core::HRESULT,
pub SetOtherOutputMask: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, client: *mut ::core::ffi::c_void, mask: u32) -> ::windows_core::HRESULT,
pub GetOutputWidth: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, columns: *mut u32) -> ::windows_core::HRESULT,
pub SetOutputWidth: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, columns: u32) -> ::windows_core::HRESULT,
pub GetOutputLinePrefix: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PSTR, buffersize: u32, prefixsize: *mut u32) -> ::windows_core::HRESULT,
pub SetOutputLinePrefix: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, prefix: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub GetIdentity: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PSTR, buffersize: u32, identitysize: *mut u32) -> ::windows_core::HRESULT,
pub OutputIdentity: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, flags: u32, format: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub GetEventCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub SetEventCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub FlushCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub WriteDumpFile2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, dumpfile: ::windows_core::PCSTR, qualifier: u32, formatflags: u32, comment: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub AddDumpInformationFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, infofile: ::windows_core::PCSTR, r#type: u32) -> ::windows_core::HRESULT,
pub EndProcessServer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64) -> ::windows_core::HRESULT,
pub WaitForProcessServerEnd: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, timeout: u32) -> ::windows_core::HRESULT,
pub IsKernelDebuggerEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub TerminateCurrentProcess: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub DetachCurrentProcess: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub AbandonCurrentProcess: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub GetRunningProcessSystemIdByExecutableNameWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, exename: ::windows_core::PCWSTR, flags: u32, id: *mut u32) -> ::windows_core::HRESULT,
pub GetRunningProcessDescriptionWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, systemid: u32, flags: u32, exename: ::windows_core::PWSTR, exenamesize: u32, actualexenamesize: *mut u32, description: ::windows_core::PWSTR, descriptionsize: u32, actualdescriptionsize: *mut u32) -> ::windows_core::HRESULT,
pub CreateProcessWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows_core::PCWSTR, createflags: u32) -> ::windows_core::HRESULT,
pub CreateProcessAndAttachWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows_core::PCWSTR, createflags: u32, processid: u32, attachflags: u32) -> ::windows_core::HRESULT,
pub OpenDumpFileWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, filename: ::windows_core::PCWSTR, filehandle: u64) -> ::windows_core::HRESULT,
pub WriteDumpFileWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, filename: ::windows_core::PCWSTR, filehandle: u64, qualifier: u32, formatflags: u32, comment: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
pub AddDumpInformationFileWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, filename: ::windows_core::PCWSTR, filehandle: u64, r#type: u32) -> ::windows_core::HRESULT,
pub GetNumberDumpFiles: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows_core::HRESULT,
pub GetDumpFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows_core::PSTR, buffersize: u32, namesize: *mut u32, handle: *mut u64, r#type: *mut u32) -> ::windows_core::HRESULT,
pub GetDumpFileWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows_core::PWSTR, buffersize: u32, namesize: *mut u32, handle: *mut u64, r#type: *mut u32) -> ::windows_core::HRESULT,
pub AttachKernelWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, connectoptions: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
pub GetKernelConnectionOptionsWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PWSTR, buffersize: u32, optionssize: *mut u32) -> ::windows_core::HRESULT,
pub SetKernelConnectionOptionsWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
pub StartProcessServerWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, options: ::windows_core::PCWSTR, reserved: *const ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub ConnectProcessServerWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, remoteoptions: ::windows_core::PCWSTR, server: *mut u64) -> ::windows_core::HRESULT,
pub StartServerWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
pub OutputServersWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, machine: ::windows_core::PCWSTR, flags: u32) -> ::windows_core::HRESULT,
pub GetOutputCallbacksWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub SetOutputCallbacksWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub GetOutputLinePrefixWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PWSTR, buffersize: u32, prefixsize: *mut u32) -> ::windows_core::HRESULT,
pub SetOutputLinePrefixWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, prefix: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
pub GetIdentityWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PWSTR, buffersize: u32, identitysize: *mut u32) -> ::windows_core::HRESULT,
pub OutputIdentityWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, flags: u32, format: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
pub GetEventCallbacksWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub SetEventCallbacksWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub CreateProcess2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows_core::PCSTR, optionsbuffer: *const ::core::ffi::c_void, optionsbuffersize: u32, initialdirectory: ::windows_core::PCSTR, environment: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub CreateProcess2Wide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows_core::PCWSTR, optionsbuffer: *const ::core::ffi::c_void, optionsbuffersize: u32, initialdirectory: ::windows_core::PCWSTR, environment: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
pub CreateProcessAndAttach2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows_core::PCSTR, optionsbuffer: *const ::core::ffi::c_void, optionsbuffersize: u32, initialdirectory: ::windows_core::PCSTR, environment: ::windows_core::PCSTR, processid: u32, attachflags: u32) -> ::windows_core::HRESULT,
pub CreateProcessAndAttach2Wide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows_core::PCWSTR, optionsbuffer: *const ::core::ffi::c_void, optionsbuffersize: u32, initialdirectory: ::windows_core::PCWSTR, environment: ::windows_core::PCWSTR, processid: u32, attachflags: u32) -> ::windows_core::HRESULT,
pub PushOutputLinePrefix: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, newprefix: ::windows_core::PCSTR, handle: *mut u64) -> ::windows_core::HRESULT,
pub PushOutputLinePrefixWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, newprefix: ::windows_core::PCWSTR, handle: *mut u64) -> ::windows_core::HRESULT,
pub PopOutputLinePrefix: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64) -> ::windows_core::HRESULT,
pub GetNumberInputCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: *mut u32) -> ::windows_core::HRESULT,
pub GetNumberOutputCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: *mut u32) -> ::windows_core::HRESULT,
pub GetNumberEventCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, eventflags: u32, count: *mut u32) -> ::windows_core::HRESULT,
pub GetQuitLockString: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PSTR, buffersize: u32, stringsize: *mut u32) -> ::windows_core::HRESULT,
pub SetQuitLockString: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, string: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub GetQuitLockStringWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PWSTR, buffersize: u32, stringsize: *mut u32) -> ::windows_core::HRESULT,
pub SetQuitLockStringWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, string: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IDebugClient6(::windows_core::IUnknown);
impl IDebugClient6 {
pub unsafe fn AttachKernel<P0>(&self, flags: u32, connectoptions: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).AttachKernel)(::windows_core::Interface::as_raw(self), flags, connectoptions.into_param().abi()).ok()
}
pub unsafe fn GetKernelConnectionOptions(&self, buffer: ::core::option::Option<&mut [u8]>, optionssize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetKernelConnectionOptions)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(optionssize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetKernelConnectionOptions<P0>(&self, options: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).SetKernelConnectionOptions)(::windows_core::Interface::as_raw(self), options.into_param().abi()).ok()
}
pub unsafe fn StartProcessServer<P0>(&self, flags: u32, options: P0, reserved: ::core::option::Option<*const ::core::ffi::c_void>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).StartProcessServer)(::windows_core::Interface::as_raw(self), flags, options.into_param().abi(), ::core::mem::transmute(reserved.unwrap_or(::std::ptr::null()))).ok()
}
pub unsafe fn ConnectProcessServer<P0>(&self, remoteoptions: P0) -> ::windows_core::Result<u64>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).ConnectProcessServer)(::windows_core::Interface::as_raw(self), remoteoptions.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn DisconnectProcessServer(&self, server: u64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).DisconnectProcessServer)(::windows_core::Interface::as_raw(self), server).ok()
}
pub unsafe fn GetRunningProcessSystemIds(&self, server: u64, ids: ::core::option::Option<&mut [u32]>, actualcount: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetRunningProcessSystemIds)(::windows_core::Interface::as_raw(self), server, ::core::mem::transmute(ids.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ids.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(actualcount.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetRunningProcessSystemIdByExecutableName<P0>(&self, server: u64, exename: P0, flags: u32) -> ::windows_core::Result<u32>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetRunningProcessSystemIdByExecutableName)(::windows_core::Interface::as_raw(self), server, exename.into_param().abi(), flags, &mut result__).from_abi(result__)
}
pub unsafe fn GetRunningProcessDescription(&self, server: u64, systemid: u32, flags: u32, exename: ::core::option::Option<&mut [u8]>, actualexenamesize: ::core::option::Option<*mut u32>, description: ::core::option::Option<&mut [u8]>, actualdescriptionsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetRunningProcessDescription)(
::windows_core::Interface::as_raw(self),
server,
systemid,
flags,
::core::mem::transmute(exename.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
exename.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(actualexenamesize.unwrap_or(::std::ptr::null_mut())),
::core::mem::transmute(description.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
description.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(actualdescriptionsize.unwrap_or(::std::ptr::null_mut())),
)
.ok()
}
pub unsafe fn AttachProcess(&self, server: u64, processid: u32, attachflags: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).AttachProcess)(::windows_core::Interface::as_raw(self), server, processid, attachflags).ok()
}
pub unsafe fn CreateProcessA<P0>(&self, server: u64, commandline: P0, createflags: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).CreateProcessA)(::windows_core::Interface::as_raw(self), server, commandline.into_param().abi(), createflags).ok()
}
pub unsafe fn CreateProcessAndAttach<P0>(&self, server: u64, commandline: P0, createflags: u32, processid: u32, attachflags: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).CreateProcessAndAttach)(::windows_core::Interface::as_raw(self), server, commandline.into_param().abi(), createflags, processid, attachflags).ok()
}
pub unsafe fn GetProcessOptions(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetProcessOptions)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn AddProcessOptions(&self, options: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).AddProcessOptions)(::windows_core::Interface::as_raw(self), options).ok()
}
pub unsafe fn RemoveProcessOptions(&self, options: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).RemoveProcessOptions)(::windows_core::Interface::as_raw(self), options).ok()
}
pub unsafe fn SetProcessOptions(&self, options: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetProcessOptions)(::windows_core::Interface::as_raw(self), options).ok()
}
pub unsafe fn OpenDumpFile<P0>(&self, dumpfile: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).OpenDumpFile)(::windows_core::Interface::as_raw(self), dumpfile.into_param().abi()).ok()
}
pub unsafe fn WriteDumpFile<P0>(&self, dumpfile: P0, qualifier: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).WriteDumpFile)(::windows_core::Interface::as_raw(self), dumpfile.into_param().abi(), qualifier).ok()
}
pub unsafe fn ConnectSession(&self, flags: u32, historylimit: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).ConnectSession)(::windows_core::Interface::as_raw(self), flags, historylimit).ok()
}
pub unsafe fn StartServer<P0>(&self, options: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).StartServer)(::windows_core::Interface::as_raw(self), options.into_param().abi()).ok()
}
pub unsafe fn OutputServers<P0>(&self, outputcontrol: u32, machine: P0, flags: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).OutputServers)(::windows_core::Interface::as_raw(self), outputcontrol, machine.into_param().abi(), flags).ok()
}
pub unsafe fn TerminateProcesses(&self) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).TerminateProcesses)(::windows_core::Interface::as_raw(self)).ok()
}
pub unsafe fn DetachProcesses(&self) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).DetachProcesses)(::windows_core::Interface::as_raw(self)).ok()
}
pub unsafe fn EndSession(&self, flags: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).EndSession)(::windows_core::Interface::as_raw(self), flags).ok()
}
pub unsafe fn GetExitCode(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetExitCode)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn DispatchCallbacks(&self, timeout: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).DispatchCallbacks)(::windows_core::Interface::as_raw(self), timeout).ok()
}
pub unsafe fn ExitDispatch<P0>(&self, client: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IDebugClient>,
{
(::windows_core::Interface::vtable(self).ExitDispatch)(::windows_core::Interface::as_raw(self), client.into_param().abi()).ok()
}
pub unsafe fn CreateClient(&self) -> ::windows_core::Result<IDebugClient> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).CreateClient)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetInputCallbacks(&self) -> ::windows_core::Result<IDebugInputCallbacks> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetInputCallbacks)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetInputCallbacks<P0>(&self, callbacks: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IDebugInputCallbacks>,
{
(::windows_core::Interface::vtable(self).SetInputCallbacks)(::windows_core::Interface::as_raw(self), callbacks.into_param().abi()).ok()
}
pub unsafe fn GetOutputCallbacks(&self) -> ::windows_core::Result<IDebugOutputCallbacks> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetOutputCallbacks)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetOutputCallbacks<P0>(&self, callbacks: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IDebugOutputCallbacks>,
{
(::windows_core::Interface::vtable(self).SetOutputCallbacks)(::windows_core::Interface::as_raw(self), callbacks.into_param().abi()).ok()
}
pub unsafe fn GetOutputMask(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetOutputMask)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetOutputMask(&self, mask: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetOutputMask)(::windows_core::Interface::as_raw(self), mask).ok()
}
pub unsafe fn GetOtherOutputMask<P0>(&self, client: P0) -> ::windows_core::Result<u32>
where
P0: ::windows_core::IntoParam<IDebugClient>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetOtherOutputMask)(::windows_core::Interface::as_raw(self), client.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn SetOtherOutputMask<P0>(&self, client: P0, mask: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IDebugClient>,
{
(::windows_core::Interface::vtable(self).SetOtherOutputMask)(::windows_core::Interface::as_raw(self), client.into_param().abi(), mask).ok()
}
pub unsafe fn GetOutputWidth(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetOutputWidth)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetOutputWidth(&self, columns: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetOutputWidth)(::windows_core::Interface::as_raw(self), columns).ok()
}
pub unsafe fn GetOutputLinePrefix(&self, buffer: ::core::option::Option<&mut [u8]>, prefixsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetOutputLinePrefix)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(prefixsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetOutputLinePrefix<P0>(&self, prefix: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).SetOutputLinePrefix)(::windows_core::Interface::as_raw(self), prefix.into_param().abi()).ok()
}
pub unsafe fn GetIdentity(&self, buffer: ::core::option::Option<&mut [u8]>, identitysize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetIdentity)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(identitysize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn OutputIdentity<P0>(&self, outputcontrol: u32, flags: u32, format: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).OutputIdentity)(::windows_core::Interface::as_raw(self), outputcontrol, flags, format.into_param().abi()).ok()
}
pub unsafe fn GetEventCallbacks(&self) -> ::windows_core::Result<IDebugEventCallbacks> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetEventCallbacks)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetEventCallbacks<P0>(&self, callbacks: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IDebugEventCallbacks>,
{
(::windows_core::Interface::vtable(self).SetEventCallbacks)(::windows_core::Interface::as_raw(self), callbacks.into_param().abi()).ok()
}
pub unsafe fn FlushCallbacks(&self) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).FlushCallbacks)(::windows_core::Interface::as_raw(self)).ok()
}
pub unsafe fn WriteDumpFile2<P0, P1>(&self, dumpfile: P0, qualifier: u32, formatflags: u32, comment: P1) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
P1: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).WriteDumpFile2)(::windows_core::Interface::as_raw(self), dumpfile.into_param().abi(), qualifier, formatflags, comment.into_param().abi()).ok()
}
pub unsafe fn AddDumpInformationFile<P0>(&self, infofile: P0, r#type: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).AddDumpInformationFile)(::windows_core::Interface::as_raw(self), infofile.into_param().abi(), r#type).ok()
}
pub unsafe fn EndProcessServer(&self, server: u64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).EndProcessServer)(::windows_core::Interface::as_raw(self), server).ok()
}
pub unsafe fn WaitForProcessServerEnd(&self, timeout: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).WaitForProcessServerEnd)(::windows_core::Interface::as_raw(self), timeout).ok()
}
pub unsafe fn IsKernelDebuggerEnabled(&self) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).IsKernelDebuggerEnabled)(::windows_core::Interface::as_raw(self)).ok()
}
pub unsafe fn TerminateCurrentProcess(&self) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).TerminateCurrentProcess)(::windows_core::Interface::as_raw(self)).ok()
}
pub unsafe fn DetachCurrentProcess(&self) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).DetachCurrentProcess)(::windows_core::Interface::as_raw(self)).ok()
}
pub unsafe fn AbandonCurrentProcess(&self) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).AbandonCurrentProcess)(::windows_core::Interface::as_raw(self)).ok()
}
pub unsafe fn GetRunningProcessSystemIdByExecutableNameWide<P0>(&self, server: u64, exename: P0, flags: u32) -> ::windows_core::Result<u32>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetRunningProcessSystemIdByExecutableNameWide)(::windows_core::Interface::as_raw(self), server, exename.into_param().abi(), flags, &mut result__).from_abi(result__)
}
pub unsafe fn GetRunningProcessDescriptionWide(&self, server: u64, systemid: u32, flags: u32, exename: ::core::option::Option<&mut [u16]>, actualexenamesize: ::core::option::Option<*mut u32>, description: ::core::option::Option<&mut [u16]>, actualdescriptionsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetRunningProcessDescriptionWide)(
::windows_core::Interface::as_raw(self),
server,
systemid,
flags,
::core::mem::transmute(exename.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
exename.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(actualexenamesize.unwrap_or(::std::ptr::null_mut())),
::core::mem::transmute(description.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
description.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(actualdescriptionsize.unwrap_or(::std::ptr::null_mut())),
)
.ok()
}
pub unsafe fn CreateProcessWide<P0>(&self, server: u64, commandline: P0, createflags: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).CreateProcessWide)(::windows_core::Interface::as_raw(self), server, commandline.into_param().abi(), createflags).ok()
}
pub unsafe fn CreateProcessAndAttachWide<P0>(&self, server: u64, commandline: P0, createflags: u32, processid: u32, attachflags: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).CreateProcessAndAttachWide)(::windows_core::Interface::as_raw(self), server, commandline.into_param().abi(), createflags, processid, attachflags).ok()
}
pub unsafe fn OpenDumpFileWide<P0>(&self, filename: P0, filehandle: u64) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).OpenDumpFileWide)(::windows_core::Interface::as_raw(self), filename.into_param().abi(), filehandle).ok()
}
pub unsafe fn WriteDumpFileWide<P0, P1>(&self, filename: P0, filehandle: u64, qualifier: u32, formatflags: u32, comment: P1) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
P1: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).WriteDumpFileWide)(::windows_core::Interface::as_raw(self), filename.into_param().abi(), filehandle, qualifier, formatflags, comment.into_param().abi()).ok()
}
pub unsafe fn AddDumpInformationFileWide<P0>(&self, filename: P0, filehandle: u64, r#type: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).AddDumpInformationFileWide)(::windows_core::Interface::as_raw(self), filename.into_param().abi(), filehandle, r#type).ok()
}
pub unsafe fn GetNumberDumpFiles(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetNumberDumpFiles)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetDumpFile(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<*mut u32>, handle: ::core::option::Option<*mut u64>, r#type: *mut u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetDumpFile)(::windows_core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(handle.unwrap_or(::std::ptr::null_mut())), r#type).ok()
}
pub unsafe fn GetDumpFileWide(&self, index: u32, buffer: ::core::option::Option<&mut [u16]>, namesize: ::core::option::Option<*mut u32>, handle: ::core::option::Option<*mut u64>, r#type: *mut u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetDumpFileWide)(::windows_core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(handle.unwrap_or(::std::ptr::null_mut())), r#type).ok()
}
pub unsafe fn AttachKernelWide<P0>(&self, flags: u32, connectoptions: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).AttachKernelWide)(::windows_core::Interface::as_raw(self), flags, connectoptions.into_param().abi()).ok()
}
pub unsafe fn GetKernelConnectionOptionsWide(&self, buffer: ::core::option::Option<&mut [u16]>, optionssize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetKernelConnectionOptionsWide)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(optionssize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetKernelConnectionOptionsWide<P0>(&self, options: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).SetKernelConnectionOptionsWide)(::windows_core::Interface::as_raw(self), options.into_param().abi()).ok()
}
pub unsafe fn StartProcessServerWide<P0>(&self, flags: u32, options: P0, reserved: ::core::option::Option<*const ::core::ffi::c_void>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).StartProcessServerWide)(::windows_core::Interface::as_raw(self), flags, options.into_param().abi(), ::core::mem::transmute(reserved.unwrap_or(::std::ptr::null()))).ok()
}
pub unsafe fn ConnectProcessServerWide<P0>(&self, remoteoptions: P0) -> ::windows_core::Result<u64>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).ConnectProcessServerWide)(::windows_core::Interface::as_raw(self), remoteoptions.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn StartServerWide<P0>(&self, options: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).StartServerWide)(::windows_core::Interface::as_raw(self), options.into_param().abi()).ok()
}
pub unsafe fn OutputServersWide<P0>(&self, outputcontrol: u32, machine: P0, flags: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).OutputServersWide)(::windows_core::Interface::as_raw(self), outputcontrol, machine.into_param().abi(), flags).ok()
}
pub unsafe fn GetOutputCallbacksWide(&self) -> ::windows_core::Result<IDebugOutputCallbacksWide> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetOutputCallbacksWide)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetOutputCallbacksWide<P0>(&self, callbacks: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IDebugOutputCallbacksWide>,
{
(::windows_core::Interface::vtable(self).SetOutputCallbacksWide)(::windows_core::Interface::as_raw(self), callbacks.into_param().abi()).ok()
}
pub unsafe fn GetOutputLinePrefixWide(&self, buffer: ::core::option::Option<&mut [u16]>, prefixsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetOutputLinePrefixWide)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(prefixsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetOutputLinePrefixWide<P0>(&self, prefix: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).SetOutputLinePrefixWide)(::windows_core::Interface::as_raw(self), prefix.into_param().abi()).ok()
}
pub unsafe fn GetIdentityWide(&self, buffer: ::core::option::Option<&mut [u16]>, identitysize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetIdentityWide)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(identitysize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn OutputIdentityWide<P0>(&self, outputcontrol: u32, flags: u32, format: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).OutputIdentityWide)(::windows_core::Interface::as_raw(self), outputcontrol, flags, format.into_param().abi()).ok()
}
pub unsafe fn GetEventCallbacksWide(&self) -> ::windows_core::Result<IDebugEventCallbacksWide> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetEventCallbacksWide)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetEventCallbacksWide<P0>(&self, callbacks: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IDebugEventCallbacksWide>,
{
(::windows_core::Interface::vtable(self).SetEventCallbacksWide)(::windows_core::Interface::as_raw(self), callbacks.into_param().abi()).ok()
}
pub unsafe fn CreateProcess2<P0, P1, P2>(&self, server: u64, commandline: P0, optionsbuffer: *const ::core::ffi::c_void, optionsbuffersize: u32, initialdirectory: P1, environment: P2) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
P1: ::windows_core::IntoParam<::windows_core::PCSTR>,
P2: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).CreateProcess2)(::windows_core::Interface::as_raw(self), server, commandline.into_param().abi(), optionsbuffer, optionsbuffersize, initialdirectory.into_param().abi(), environment.into_param().abi()).ok()
}
pub unsafe fn CreateProcess2Wide<P0, P1, P2>(&self, server: u64, commandline: P0, optionsbuffer: *const ::core::ffi::c_void, optionsbuffersize: u32, initialdirectory: P1, environment: P2) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
P1: ::windows_core::IntoParam<::windows_core::PCWSTR>,
P2: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).CreateProcess2Wide)(::windows_core::Interface::as_raw(self), server, commandline.into_param().abi(), optionsbuffer, optionsbuffersize, initialdirectory.into_param().abi(), environment.into_param().abi()).ok()
}
pub unsafe fn CreateProcessAndAttach2<P0, P1, P2>(&self, server: u64, commandline: P0, optionsbuffer: *const ::core::ffi::c_void, optionsbuffersize: u32, initialdirectory: P1, environment: P2, processid: u32, attachflags: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
P1: ::windows_core::IntoParam<::windows_core::PCSTR>,
P2: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).CreateProcessAndAttach2)(::windows_core::Interface::as_raw(self), server, commandline.into_param().abi(), optionsbuffer, optionsbuffersize, initialdirectory.into_param().abi(), environment.into_param().abi(), processid, attachflags).ok()
}
pub unsafe fn CreateProcessAndAttach2Wide<P0, P1, P2>(&self, server: u64, commandline: P0, optionsbuffer: *const ::core::ffi::c_void, optionsbuffersize: u32, initialdirectory: P1, environment: P2, processid: u32, attachflags: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
P1: ::windows_core::IntoParam<::windows_core::PCWSTR>,
P2: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).CreateProcessAndAttach2Wide)(::windows_core::Interface::as_raw(self), server, commandline.into_param().abi(), optionsbuffer, optionsbuffersize, initialdirectory.into_param().abi(), environment.into_param().abi(), processid, attachflags).ok()
}
pub unsafe fn PushOutputLinePrefix<P0>(&self, newprefix: P0) -> ::windows_core::Result<u64>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).PushOutputLinePrefix)(::windows_core::Interface::as_raw(self), newprefix.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn PushOutputLinePrefixWide<P0>(&self, newprefix: P0) -> ::windows_core::Result<u64>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).PushOutputLinePrefixWide)(::windows_core::Interface::as_raw(self), newprefix.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn PopOutputLinePrefix(&self, handle: u64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).PopOutputLinePrefix)(::windows_core::Interface::as_raw(self), handle).ok()
}
pub unsafe fn GetNumberInputCallbacks(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetNumberInputCallbacks)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetNumberOutputCallbacks(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetNumberOutputCallbacks)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetNumberEventCallbacks(&self, eventflags: u32) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetNumberEventCallbacks)(::windows_core::Interface::as_raw(self), eventflags, &mut result__).from_abi(result__)
}
pub unsafe fn GetQuitLockString(&self, buffer: ::core::option::Option<&mut [u8]>, stringsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetQuitLockString)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(stringsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetQuitLockString<P0>(&self, string: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).SetQuitLockString)(::windows_core::Interface::as_raw(self), string.into_param().abi()).ok()
}
pub unsafe fn GetQuitLockStringWide(&self, buffer: ::core::option::Option<&mut [u16]>, stringsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetQuitLockStringWide)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(stringsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetQuitLockStringWide<P0>(&self, string: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).SetQuitLockStringWide)(::windows_core::Interface::as_raw(self), string.into_param().abi()).ok()
}
pub unsafe fn SetEventContextCallbacks<P0>(&self, callbacks: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IDebugEventContextCallbacks>,
{
(::windows_core::Interface::vtable(self).SetEventContextCallbacks)(::windows_core::Interface::as_raw(self), callbacks.into_param().abi()).ok()
}
}
::windows_core::imp::interface_hierarchy!(IDebugClient6, ::windows_core::IUnknown);
unsafe impl ::windows_core::Interface for IDebugClient6 {
type Vtable = IDebugClient6_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IDebugClient6 {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0xfd28b4c5_c498_4686_a28e_62cad2154eb3);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugClient6_Vtbl {
pub base__: ::windows_core::IUnknown_Vtbl,
pub AttachKernel: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, connectoptions: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub GetKernelConnectionOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PSTR, buffersize: u32, optionssize: *mut u32) -> ::windows_core::HRESULT,
pub SetKernelConnectionOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub StartProcessServer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, options: ::windows_core::PCSTR, reserved: *const ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub ConnectProcessServer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, remoteoptions: ::windows_core::PCSTR, server: *mut u64) -> ::windows_core::HRESULT,
pub DisconnectProcessServer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64) -> ::windows_core::HRESULT,
pub GetRunningProcessSystemIds: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, ids: *mut u32, count: u32, actualcount: *mut u32) -> ::windows_core::HRESULT,
pub GetRunningProcessSystemIdByExecutableName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, exename: ::windows_core::PCSTR, flags: u32, id: *mut u32) -> ::windows_core::HRESULT,
pub GetRunningProcessDescription: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, systemid: u32, flags: u32, exename: ::windows_core::PSTR, exenamesize: u32, actualexenamesize: *mut u32, description: ::windows_core::PSTR, descriptionsize: u32, actualdescriptionsize: *mut u32) -> ::windows_core::HRESULT,
pub AttachProcess: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, processid: u32, attachflags: u32) -> ::windows_core::HRESULT,
pub CreateProcessA: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows_core::PCSTR, createflags: u32) -> ::windows_core::HRESULT,
pub CreateProcessAndAttach: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows_core::PCSTR, createflags: u32, processid: u32, attachflags: u32) -> ::windows_core::HRESULT,
pub GetProcessOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: *mut u32) -> ::windows_core::HRESULT,
pub AddProcessOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows_core::HRESULT,
pub RemoveProcessOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows_core::HRESULT,
pub SetProcessOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows_core::HRESULT,
pub OpenDumpFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, dumpfile: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub WriteDumpFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, dumpfile: ::windows_core::PCSTR, qualifier: u32) -> ::windows_core::HRESULT,
pub ConnectSession: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, historylimit: u32) -> ::windows_core::HRESULT,
pub StartServer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub OutputServers: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, machine: ::windows_core::PCSTR, flags: u32) -> ::windows_core::HRESULT,
pub TerminateProcesses: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub DetachProcesses: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub EndSession: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32) -> ::windows_core::HRESULT,
pub GetExitCode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, code: *mut u32) -> ::windows_core::HRESULT,
pub DispatchCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, timeout: u32) -> ::windows_core::HRESULT,
pub ExitDispatch: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, client: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub CreateClient: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, client: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub GetInputCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub SetInputCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub GetOutputCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub SetOutputCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub GetOutputMask: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: *mut u32) -> ::windows_core::HRESULT,
pub SetOutputMask: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: u32) -> ::windows_core::HRESULT,
pub GetOtherOutputMask: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, client: *mut ::core::ffi::c_void, mask: *mut u32) -> ::windows_core::HRESULT,
pub SetOtherOutputMask: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, client: *mut ::core::ffi::c_void, mask: u32) -> ::windows_core::HRESULT,
pub GetOutputWidth: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, columns: *mut u32) -> ::windows_core::HRESULT,
pub SetOutputWidth: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, columns: u32) -> ::windows_core::HRESULT,
pub GetOutputLinePrefix: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PSTR, buffersize: u32, prefixsize: *mut u32) -> ::windows_core::HRESULT,
pub SetOutputLinePrefix: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, prefix: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub GetIdentity: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PSTR, buffersize: u32, identitysize: *mut u32) -> ::windows_core::HRESULT,
pub OutputIdentity: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, flags: u32, format: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub GetEventCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub SetEventCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub FlushCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub WriteDumpFile2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, dumpfile: ::windows_core::PCSTR, qualifier: u32, formatflags: u32, comment: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub AddDumpInformationFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, infofile: ::windows_core::PCSTR, r#type: u32) -> ::windows_core::HRESULT,
pub EndProcessServer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64) -> ::windows_core::HRESULT,
pub WaitForProcessServerEnd: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, timeout: u32) -> ::windows_core::HRESULT,
pub IsKernelDebuggerEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub TerminateCurrentProcess: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub DetachCurrentProcess: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub AbandonCurrentProcess: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub GetRunningProcessSystemIdByExecutableNameWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, exename: ::windows_core::PCWSTR, flags: u32, id: *mut u32) -> ::windows_core::HRESULT,
pub GetRunningProcessDescriptionWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, systemid: u32, flags: u32, exename: ::windows_core::PWSTR, exenamesize: u32, actualexenamesize: *mut u32, description: ::windows_core::PWSTR, descriptionsize: u32, actualdescriptionsize: *mut u32) -> ::windows_core::HRESULT,
pub CreateProcessWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows_core::PCWSTR, createflags: u32) -> ::windows_core::HRESULT,
pub CreateProcessAndAttachWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows_core::PCWSTR, createflags: u32, processid: u32, attachflags: u32) -> ::windows_core::HRESULT,
pub OpenDumpFileWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, filename: ::windows_core::PCWSTR, filehandle: u64) -> ::windows_core::HRESULT,
pub WriteDumpFileWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, filename: ::windows_core::PCWSTR, filehandle: u64, qualifier: u32, formatflags: u32, comment: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
pub AddDumpInformationFileWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, filename: ::windows_core::PCWSTR, filehandle: u64, r#type: u32) -> ::windows_core::HRESULT,
pub GetNumberDumpFiles: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows_core::HRESULT,
pub GetDumpFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows_core::PSTR, buffersize: u32, namesize: *mut u32, handle: *mut u64, r#type: *mut u32) -> ::windows_core::HRESULT,
pub GetDumpFileWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows_core::PWSTR, buffersize: u32, namesize: *mut u32, handle: *mut u64, r#type: *mut u32) -> ::windows_core::HRESULT,
pub AttachKernelWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, connectoptions: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
pub GetKernelConnectionOptionsWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PWSTR, buffersize: u32, optionssize: *mut u32) -> ::windows_core::HRESULT,
pub SetKernelConnectionOptionsWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
pub StartProcessServerWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, options: ::windows_core::PCWSTR, reserved: *const ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub ConnectProcessServerWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, remoteoptions: ::windows_core::PCWSTR, server: *mut u64) -> ::windows_core::HRESULT,
pub StartServerWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
pub OutputServersWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, machine: ::windows_core::PCWSTR, flags: u32) -> ::windows_core::HRESULT,
pub GetOutputCallbacksWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub SetOutputCallbacksWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub GetOutputLinePrefixWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PWSTR, buffersize: u32, prefixsize: *mut u32) -> ::windows_core::HRESULT,
pub SetOutputLinePrefixWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, prefix: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
pub GetIdentityWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PWSTR, buffersize: u32, identitysize: *mut u32) -> ::windows_core::HRESULT,
pub OutputIdentityWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, flags: u32, format: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
pub GetEventCallbacksWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub SetEventCallbacksWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub CreateProcess2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows_core::PCSTR, optionsbuffer: *const ::core::ffi::c_void, optionsbuffersize: u32, initialdirectory: ::windows_core::PCSTR, environment: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub CreateProcess2Wide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows_core::PCWSTR, optionsbuffer: *const ::core::ffi::c_void, optionsbuffersize: u32, initialdirectory: ::windows_core::PCWSTR, environment: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
pub CreateProcessAndAttach2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows_core::PCSTR, optionsbuffer: *const ::core::ffi::c_void, optionsbuffersize: u32, initialdirectory: ::windows_core::PCSTR, environment: ::windows_core::PCSTR, processid: u32, attachflags: u32) -> ::windows_core::HRESULT,
pub CreateProcessAndAttach2Wide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows_core::PCWSTR, optionsbuffer: *const ::core::ffi::c_void, optionsbuffersize: u32, initialdirectory: ::windows_core::PCWSTR, environment: ::windows_core::PCWSTR, processid: u32, attachflags: u32) -> ::windows_core::HRESULT,
pub PushOutputLinePrefix: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, newprefix: ::windows_core::PCSTR, handle: *mut u64) -> ::windows_core::HRESULT,
pub PushOutputLinePrefixWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, newprefix: ::windows_core::PCWSTR, handle: *mut u64) -> ::windows_core::HRESULT,
pub PopOutputLinePrefix: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64) -> ::windows_core::HRESULT,
pub GetNumberInputCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: *mut u32) -> ::windows_core::HRESULT,
pub GetNumberOutputCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: *mut u32) -> ::windows_core::HRESULT,
pub GetNumberEventCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, eventflags: u32, count: *mut u32) -> ::windows_core::HRESULT,
pub GetQuitLockString: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PSTR, buffersize: u32, stringsize: *mut u32) -> ::windows_core::HRESULT,
pub SetQuitLockString: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, string: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub GetQuitLockStringWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PWSTR, buffersize: u32, stringsize: *mut u32) -> ::windows_core::HRESULT,
pub SetQuitLockStringWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, string: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
pub SetEventContextCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IDebugClient7(::windows_core::IUnknown);
impl IDebugClient7 {
pub unsafe fn AttachKernel<P0>(&self, flags: u32, connectoptions: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).AttachKernel)(::windows_core::Interface::as_raw(self), flags, connectoptions.into_param().abi()).ok()
}
pub unsafe fn GetKernelConnectionOptions(&self, buffer: ::core::option::Option<&mut [u8]>, optionssize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetKernelConnectionOptions)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(optionssize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetKernelConnectionOptions<P0>(&self, options: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).SetKernelConnectionOptions)(::windows_core::Interface::as_raw(self), options.into_param().abi()).ok()
}
pub unsafe fn StartProcessServer<P0>(&self, flags: u32, options: P0, reserved: ::core::option::Option<*const ::core::ffi::c_void>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).StartProcessServer)(::windows_core::Interface::as_raw(self), flags, options.into_param().abi(), ::core::mem::transmute(reserved.unwrap_or(::std::ptr::null()))).ok()
}
pub unsafe fn ConnectProcessServer<P0>(&self, remoteoptions: P0) -> ::windows_core::Result<u64>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).ConnectProcessServer)(::windows_core::Interface::as_raw(self), remoteoptions.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn DisconnectProcessServer(&self, server: u64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).DisconnectProcessServer)(::windows_core::Interface::as_raw(self), server).ok()
}
pub unsafe fn GetRunningProcessSystemIds(&self, server: u64, ids: ::core::option::Option<&mut [u32]>, actualcount: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetRunningProcessSystemIds)(::windows_core::Interface::as_raw(self), server, ::core::mem::transmute(ids.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ids.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(actualcount.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetRunningProcessSystemIdByExecutableName<P0>(&self, server: u64, exename: P0, flags: u32) -> ::windows_core::Result<u32>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetRunningProcessSystemIdByExecutableName)(::windows_core::Interface::as_raw(self), server, exename.into_param().abi(), flags, &mut result__).from_abi(result__)
}
pub unsafe fn GetRunningProcessDescription(&self, server: u64, systemid: u32, flags: u32, exename: ::core::option::Option<&mut [u8]>, actualexenamesize: ::core::option::Option<*mut u32>, description: ::core::option::Option<&mut [u8]>, actualdescriptionsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetRunningProcessDescription)(
::windows_core::Interface::as_raw(self),
server,
systemid,
flags,
::core::mem::transmute(exename.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
exename.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(actualexenamesize.unwrap_or(::std::ptr::null_mut())),
::core::mem::transmute(description.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
description.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(actualdescriptionsize.unwrap_or(::std::ptr::null_mut())),
)
.ok()
}
pub unsafe fn AttachProcess(&self, server: u64, processid: u32, attachflags: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).AttachProcess)(::windows_core::Interface::as_raw(self), server, processid, attachflags).ok()
}
pub unsafe fn CreateProcessA<P0>(&self, server: u64, commandline: P0, createflags: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).CreateProcessA)(::windows_core::Interface::as_raw(self), server, commandline.into_param().abi(), createflags).ok()
}
pub unsafe fn CreateProcessAndAttach<P0>(&self, server: u64, commandline: P0, createflags: u32, processid: u32, attachflags: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).CreateProcessAndAttach)(::windows_core::Interface::as_raw(self), server, commandline.into_param().abi(), createflags, processid, attachflags).ok()
}
pub unsafe fn GetProcessOptions(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetProcessOptions)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn AddProcessOptions(&self, options: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).AddProcessOptions)(::windows_core::Interface::as_raw(self), options).ok()
}
pub unsafe fn RemoveProcessOptions(&self, options: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).RemoveProcessOptions)(::windows_core::Interface::as_raw(self), options).ok()
}
pub unsafe fn SetProcessOptions(&self, options: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetProcessOptions)(::windows_core::Interface::as_raw(self), options).ok()
}
pub unsafe fn OpenDumpFile<P0>(&self, dumpfile: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).OpenDumpFile)(::windows_core::Interface::as_raw(self), dumpfile.into_param().abi()).ok()
}
pub unsafe fn WriteDumpFile<P0>(&self, dumpfile: P0, qualifier: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).WriteDumpFile)(::windows_core::Interface::as_raw(self), dumpfile.into_param().abi(), qualifier).ok()
}
pub unsafe fn ConnectSession(&self, flags: u32, historylimit: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).ConnectSession)(::windows_core::Interface::as_raw(self), flags, historylimit).ok()
}
pub unsafe fn StartServer<P0>(&self, options: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).StartServer)(::windows_core::Interface::as_raw(self), options.into_param().abi()).ok()
}
pub unsafe fn OutputServers<P0>(&self, outputcontrol: u32, machine: P0, flags: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).OutputServers)(::windows_core::Interface::as_raw(self), outputcontrol, machine.into_param().abi(), flags).ok()
}
pub unsafe fn TerminateProcesses(&self) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).TerminateProcesses)(::windows_core::Interface::as_raw(self)).ok()
}
pub unsafe fn DetachProcesses(&self) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).DetachProcesses)(::windows_core::Interface::as_raw(self)).ok()
}
pub unsafe fn EndSession(&self, flags: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).EndSession)(::windows_core::Interface::as_raw(self), flags).ok()
}
pub unsafe fn GetExitCode(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetExitCode)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn DispatchCallbacks(&self, timeout: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).DispatchCallbacks)(::windows_core::Interface::as_raw(self), timeout).ok()
}
pub unsafe fn ExitDispatch<P0>(&self, client: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IDebugClient>,
{
(::windows_core::Interface::vtable(self).ExitDispatch)(::windows_core::Interface::as_raw(self), client.into_param().abi()).ok()
}
pub unsafe fn CreateClient(&self) -> ::windows_core::Result<IDebugClient> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).CreateClient)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetInputCallbacks(&self) -> ::windows_core::Result<IDebugInputCallbacks> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetInputCallbacks)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetInputCallbacks<P0>(&self, callbacks: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IDebugInputCallbacks>,
{
(::windows_core::Interface::vtable(self).SetInputCallbacks)(::windows_core::Interface::as_raw(self), callbacks.into_param().abi()).ok()
}
pub unsafe fn GetOutputCallbacks(&self) -> ::windows_core::Result<IDebugOutputCallbacks> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetOutputCallbacks)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetOutputCallbacks<P0>(&self, callbacks: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IDebugOutputCallbacks>,
{
(::windows_core::Interface::vtable(self).SetOutputCallbacks)(::windows_core::Interface::as_raw(self), callbacks.into_param().abi()).ok()
}
pub unsafe fn GetOutputMask(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetOutputMask)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetOutputMask(&self, mask: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetOutputMask)(::windows_core::Interface::as_raw(self), mask).ok()
}
pub unsafe fn GetOtherOutputMask<P0>(&self, client: P0) -> ::windows_core::Result<u32>
where
P0: ::windows_core::IntoParam<IDebugClient>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetOtherOutputMask)(::windows_core::Interface::as_raw(self), client.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn SetOtherOutputMask<P0>(&self, client: P0, mask: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IDebugClient>,
{
(::windows_core::Interface::vtable(self).SetOtherOutputMask)(::windows_core::Interface::as_raw(self), client.into_param().abi(), mask).ok()
}
pub unsafe fn GetOutputWidth(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetOutputWidth)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetOutputWidth(&self, columns: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetOutputWidth)(::windows_core::Interface::as_raw(self), columns).ok()
}
pub unsafe fn GetOutputLinePrefix(&self, buffer: ::core::option::Option<&mut [u8]>, prefixsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetOutputLinePrefix)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(prefixsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetOutputLinePrefix<P0>(&self, prefix: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).SetOutputLinePrefix)(::windows_core::Interface::as_raw(self), prefix.into_param().abi()).ok()
}
pub unsafe fn GetIdentity(&self, buffer: ::core::option::Option<&mut [u8]>, identitysize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetIdentity)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(identitysize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn OutputIdentity<P0>(&self, outputcontrol: u32, flags: u32, format: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).OutputIdentity)(::windows_core::Interface::as_raw(self), outputcontrol, flags, format.into_param().abi()).ok()
}
pub unsafe fn GetEventCallbacks(&self) -> ::windows_core::Result<IDebugEventCallbacks> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetEventCallbacks)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetEventCallbacks<P0>(&self, callbacks: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IDebugEventCallbacks>,
{
(::windows_core::Interface::vtable(self).SetEventCallbacks)(::windows_core::Interface::as_raw(self), callbacks.into_param().abi()).ok()
}
pub unsafe fn FlushCallbacks(&self) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).FlushCallbacks)(::windows_core::Interface::as_raw(self)).ok()
}
pub unsafe fn WriteDumpFile2<P0, P1>(&self, dumpfile: P0, qualifier: u32, formatflags: u32, comment: P1) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
P1: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).WriteDumpFile2)(::windows_core::Interface::as_raw(self), dumpfile.into_param().abi(), qualifier, formatflags, comment.into_param().abi()).ok()
}
pub unsafe fn AddDumpInformationFile<P0>(&self, infofile: P0, r#type: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).AddDumpInformationFile)(::windows_core::Interface::as_raw(self), infofile.into_param().abi(), r#type).ok()
}
pub unsafe fn EndProcessServer(&self, server: u64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).EndProcessServer)(::windows_core::Interface::as_raw(self), server).ok()
}
pub unsafe fn WaitForProcessServerEnd(&self, timeout: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).WaitForProcessServerEnd)(::windows_core::Interface::as_raw(self), timeout).ok()
}
pub unsafe fn IsKernelDebuggerEnabled(&self) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).IsKernelDebuggerEnabled)(::windows_core::Interface::as_raw(self)).ok()
}
pub unsafe fn TerminateCurrentProcess(&self) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).TerminateCurrentProcess)(::windows_core::Interface::as_raw(self)).ok()
}
pub unsafe fn DetachCurrentProcess(&self) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).DetachCurrentProcess)(::windows_core::Interface::as_raw(self)).ok()
}
pub unsafe fn AbandonCurrentProcess(&self) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).AbandonCurrentProcess)(::windows_core::Interface::as_raw(self)).ok()
}
pub unsafe fn GetRunningProcessSystemIdByExecutableNameWide<P0>(&self, server: u64, exename: P0, flags: u32) -> ::windows_core::Result<u32>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetRunningProcessSystemIdByExecutableNameWide)(::windows_core::Interface::as_raw(self), server, exename.into_param().abi(), flags, &mut result__).from_abi(result__)
}
pub unsafe fn GetRunningProcessDescriptionWide(&self, server: u64, systemid: u32, flags: u32, exename: ::core::option::Option<&mut [u16]>, actualexenamesize: ::core::option::Option<*mut u32>, description: ::core::option::Option<&mut [u16]>, actualdescriptionsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetRunningProcessDescriptionWide)(
::windows_core::Interface::as_raw(self),
server,
systemid,
flags,
::core::mem::transmute(exename.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
exename.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(actualexenamesize.unwrap_or(::std::ptr::null_mut())),
::core::mem::transmute(description.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
description.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(actualdescriptionsize.unwrap_or(::std::ptr::null_mut())),
)
.ok()
}
pub unsafe fn CreateProcessWide<P0>(&self, server: u64, commandline: P0, createflags: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).CreateProcessWide)(::windows_core::Interface::as_raw(self), server, commandline.into_param().abi(), createflags).ok()
}
pub unsafe fn CreateProcessAndAttachWide<P0>(&self, server: u64, commandline: P0, createflags: u32, processid: u32, attachflags: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).CreateProcessAndAttachWide)(::windows_core::Interface::as_raw(self), server, commandline.into_param().abi(), createflags, processid, attachflags).ok()
}
pub unsafe fn OpenDumpFileWide<P0>(&self, filename: P0, filehandle: u64) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).OpenDumpFileWide)(::windows_core::Interface::as_raw(self), filename.into_param().abi(), filehandle).ok()
}
pub unsafe fn WriteDumpFileWide<P0, P1>(&self, filename: P0, filehandle: u64, qualifier: u32, formatflags: u32, comment: P1) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
P1: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).WriteDumpFileWide)(::windows_core::Interface::as_raw(self), filename.into_param().abi(), filehandle, qualifier, formatflags, comment.into_param().abi()).ok()
}
pub unsafe fn AddDumpInformationFileWide<P0>(&self, filename: P0, filehandle: u64, r#type: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).AddDumpInformationFileWide)(::windows_core::Interface::as_raw(self), filename.into_param().abi(), filehandle, r#type).ok()
}
pub unsafe fn GetNumberDumpFiles(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetNumberDumpFiles)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetDumpFile(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<*mut u32>, handle: ::core::option::Option<*mut u64>, r#type: *mut u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetDumpFile)(::windows_core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(handle.unwrap_or(::std::ptr::null_mut())), r#type).ok()
}
pub unsafe fn GetDumpFileWide(&self, index: u32, buffer: ::core::option::Option<&mut [u16]>, namesize: ::core::option::Option<*mut u32>, handle: ::core::option::Option<*mut u64>, r#type: *mut u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetDumpFileWide)(::windows_core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(handle.unwrap_or(::std::ptr::null_mut())), r#type).ok()
}
pub unsafe fn AttachKernelWide<P0>(&self, flags: u32, connectoptions: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).AttachKernelWide)(::windows_core::Interface::as_raw(self), flags, connectoptions.into_param().abi()).ok()
}
pub unsafe fn GetKernelConnectionOptionsWide(&self, buffer: ::core::option::Option<&mut [u16]>, optionssize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetKernelConnectionOptionsWide)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(optionssize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetKernelConnectionOptionsWide<P0>(&self, options: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).SetKernelConnectionOptionsWide)(::windows_core::Interface::as_raw(self), options.into_param().abi()).ok()
}
pub unsafe fn StartProcessServerWide<P0>(&self, flags: u32, options: P0, reserved: ::core::option::Option<*const ::core::ffi::c_void>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).StartProcessServerWide)(::windows_core::Interface::as_raw(self), flags, options.into_param().abi(), ::core::mem::transmute(reserved.unwrap_or(::std::ptr::null()))).ok()
}
pub unsafe fn ConnectProcessServerWide<P0>(&self, remoteoptions: P0) -> ::windows_core::Result<u64>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).ConnectProcessServerWide)(::windows_core::Interface::as_raw(self), remoteoptions.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn StartServerWide<P0>(&self, options: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).StartServerWide)(::windows_core::Interface::as_raw(self), options.into_param().abi()).ok()
}
pub unsafe fn OutputServersWide<P0>(&self, outputcontrol: u32, machine: P0, flags: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).OutputServersWide)(::windows_core::Interface::as_raw(self), outputcontrol, machine.into_param().abi(), flags).ok()
}
pub unsafe fn GetOutputCallbacksWide(&self) -> ::windows_core::Result<IDebugOutputCallbacksWide> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetOutputCallbacksWide)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetOutputCallbacksWide<P0>(&self, callbacks: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IDebugOutputCallbacksWide>,
{
(::windows_core::Interface::vtable(self).SetOutputCallbacksWide)(::windows_core::Interface::as_raw(self), callbacks.into_param().abi()).ok()
}
pub unsafe fn GetOutputLinePrefixWide(&self, buffer: ::core::option::Option<&mut [u16]>, prefixsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetOutputLinePrefixWide)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(prefixsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetOutputLinePrefixWide<P0>(&self, prefix: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).SetOutputLinePrefixWide)(::windows_core::Interface::as_raw(self), prefix.into_param().abi()).ok()
}
pub unsafe fn GetIdentityWide(&self, buffer: ::core::option::Option<&mut [u16]>, identitysize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetIdentityWide)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(identitysize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn OutputIdentityWide<P0>(&self, outputcontrol: u32, flags: u32, format: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).OutputIdentityWide)(::windows_core::Interface::as_raw(self), outputcontrol, flags, format.into_param().abi()).ok()
}
pub unsafe fn GetEventCallbacksWide(&self) -> ::windows_core::Result<IDebugEventCallbacksWide> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetEventCallbacksWide)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetEventCallbacksWide<P0>(&self, callbacks: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IDebugEventCallbacksWide>,
{
(::windows_core::Interface::vtable(self).SetEventCallbacksWide)(::windows_core::Interface::as_raw(self), callbacks.into_param().abi()).ok()
}
pub unsafe fn CreateProcess2<P0, P1, P2>(&self, server: u64, commandline: P0, optionsbuffer: *const ::core::ffi::c_void, optionsbuffersize: u32, initialdirectory: P1, environment: P2) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
P1: ::windows_core::IntoParam<::windows_core::PCSTR>,
P2: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).CreateProcess2)(::windows_core::Interface::as_raw(self), server, commandline.into_param().abi(), optionsbuffer, optionsbuffersize, initialdirectory.into_param().abi(), environment.into_param().abi()).ok()
}
pub unsafe fn CreateProcess2Wide<P0, P1, P2>(&self, server: u64, commandline: P0, optionsbuffer: *const ::core::ffi::c_void, optionsbuffersize: u32, initialdirectory: P1, environment: P2) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
P1: ::windows_core::IntoParam<::windows_core::PCWSTR>,
P2: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).CreateProcess2Wide)(::windows_core::Interface::as_raw(self), server, commandline.into_param().abi(), optionsbuffer, optionsbuffersize, initialdirectory.into_param().abi(), environment.into_param().abi()).ok()
}
pub unsafe fn CreateProcessAndAttach2<P0, P1, P2>(&self, server: u64, commandline: P0, optionsbuffer: *const ::core::ffi::c_void, optionsbuffersize: u32, initialdirectory: P1, environment: P2, processid: u32, attachflags: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
P1: ::windows_core::IntoParam<::windows_core::PCSTR>,
P2: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).CreateProcessAndAttach2)(::windows_core::Interface::as_raw(self), server, commandline.into_param().abi(), optionsbuffer, optionsbuffersize, initialdirectory.into_param().abi(), environment.into_param().abi(), processid, attachflags).ok()
}
pub unsafe fn CreateProcessAndAttach2Wide<P0, P1, P2>(&self, server: u64, commandline: P0, optionsbuffer: *const ::core::ffi::c_void, optionsbuffersize: u32, initialdirectory: P1, environment: P2, processid: u32, attachflags: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
P1: ::windows_core::IntoParam<::windows_core::PCWSTR>,
P2: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).CreateProcessAndAttach2Wide)(::windows_core::Interface::as_raw(self), server, commandline.into_param().abi(), optionsbuffer, optionsbuffersize, initialdirectory.into_param().abi(), environment.into_param().abi(), processid, attachflags).ok()
}
pub unsafe fn PushOutputLinePrefix<P0>(&self, newprefix: P0) -> ::windows_core::Result<u64>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).PushOutputLinePrefix)(::windows_core::Interface::as_raw(self), newprefix.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn PushOutputLinePrefixWide<P0>(&self, newprefix: P0) -> ::windows_core::Result<u64>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).PushOutputLinePrefixWide)(::windows_core::Interface::as_raw(self), newprefix.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn PopOutputLinePrefix(&self, handle: u64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).PopOutputLinePrefix)(::windows_core::Interface::as_raw(self), handle).ok()
}
pub unsafe fn GetNumberInputCallbacks(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetNumberInputCallbacks)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetNumberOutputCallbacks(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetNumberOutputCallbacks)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetNumberEventCallbacks(&self, eventflags: u32) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetNumberEventCallbacks)(::windows_core::Interface::as_raw(self), eventflags, &mut result__).from_abi(result__)
}
pub unsafe fn GetQuitLockString(&self, buffer: ::core::option::Option<&mut [u8]>, stringsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetQuitLockString)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(stringsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetQuitLockString<P0>(&self, string: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).SetQuitLockString)(::windows_core::Interface::as_raw(self), string.into_param().abi()).ok()
}
pub unsafe fn GetQuitLockStringWide(&self, buffer: ::core::option::Option<&mut [u16]>, stringsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetQuitLockStringWide)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(stringsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetQuitLockStringWide<P0>(&self, string: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).SetQuitLockStringWide)(::windows_core::Interface::as_raw(self), string.into_param().abi()).ok()
}
pub unsafe fn SetEventContextCallbacks<P0>(&self, callbacks: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IDebugEventContextCallbacks>,
{
(::windows_core::Interface::vtable(self).SetEventContextCallbacks)(::windows_core::Interface::as_raw(self), callbacks.into_param().abi()).ok()
}
pub unsafe fn SetClientContext(&self, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetClientContext)(::windows_core::Interface::as_raw(self), context, contextsize).ok()
}
}
::windows_core::imp::interface_hierarchy!(IDebugClient7, ::windows_core::IUnknown);
unsafe impl ::windows_core::Interface for IDebugClient7 {
type Vtable = IDebugClient7_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IDebugClient7 {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0x13586be3_542e_481e_b1f2_8497ba74f9a9);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugClient7_Vtbl {
pub base__: ::windows_core::IUnknown_Vtbl,
pub AttachKernel: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, connectoptions: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub GetKernelConnectionOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PSTR, buffersize: u32, optionssize: *mut u32) -> ::windows_core::HRESULT,
pub SetKernelConnectionOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub StartProcessServer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, options: ::windows_core::PCSTR, reserved: *const ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub ConnectProcessServer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, remoteoptions: ::windows_core::PCSTR, server: *mut u64) -> ::windows_core::HRESULT,
pub DisconnectProcessServer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64) -> ::windows_core::HRESULT,
pub GetRunningProcessSystemIds: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, ids: *mut u32, count: u32, actualcount: *mut u32) -> ::windows_core::HRESULT,
pub GetRunningProcessSystemIdByExecutableName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, exename: ::windows_core::PCSTR, flags: u32, id: *mut u32) -> ::windows_core::HRESULT,
pub GetRunningProcessDescription: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, systemid: u32, flags: u32, exename: ::windows_core::PSTR, exenamesize: u32, actualexenamesize: *mut u32, description: ::windows_core::PSTR, descriptionsize: u32, actualdescriptionsize: *mut u32) -> ::windows_core::HRESULT,
pub AttachProcess: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, processid: u32, attachflags: u32) -> ::windows_core::HRESULT,
pub CreateProcessA: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows_core::PCSTR, createflags: u32) -> ::windows_core::HRESULT,
pub CreateProcessAndAttach: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows_core::PCSTR, createflags: u32, processid: u32, attachflags: u32) -> ::windows_core::HRESULT,
pub GetProcessOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: *mut u32) -> ::windows_core::HRESULT,
pub AddProcessOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows_core::HRESULT,
pub RemoveProcessOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows_core::HRESULT,
pub SetProcessOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows_core::HRESULT,
pub OpenDumpFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, dumpfile: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub WriteDumpFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, dumpfile: ::windows_core::PCSTR, qualifier: u32) -> ::windows_core::HRESULT,
pub ConnectSession: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, historylimit: u32) -> ::windows_core::HRESULT,
pub StartServer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub OutputServers: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, machine: ::windows_core::PCSTR, flags: u32) -> ::windows_core::HRESULT,
pub TerminateProcesses: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub DetachProcesses: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub EndSession: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32) -> ::windows_core::HRESULT,
pub GetExitCode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, code: *mut u32) -> ::windows_core::HRESULT,
pub DispatchCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, timeout: u32) -> ::windows_core::HRESULT,
pub ExitDispatch: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, client: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub CreateClient: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, client: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub GetInputCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub SetInputCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub GetOutputCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub SetOutputCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub GetOutputMask: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: *mut u32) -> ::windows_core::HRESULT,
pub SetOutputMask: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: u32) -> ::windows_core::HRESULT,
pub GetOtherOutputMask: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, client: *mut ::core::ffi::c_void, mask: *mut u32) -> ::windows_core::HRESULT,
pub SetOtherOutputMask: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, client: *mut ::core::ffi::c_void, mask: u32) -> ::windows_core::HRESULT,
pub GetOutputWidth: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, columns: *mut u32) -> ::windows_core::HRESULT,
pub SetOutputWidth: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, columns: u32) -> ::windows_core::HRESULT,
pub GetOutputLinePrefix: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PSTR, buffersize: u32, prefixsize: *mut u32) -> ::windows_core::HRESULT,
pub SetOutputLinePrefix: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, prefix: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub GetIdentity: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PSTR, buffersize: u32, identitysize: *mut u32) -> ::windows_core::HRESULT,
pub OutputIdentity: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, flags: u32, format: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub GetEventCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub SetEventCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub FlushCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub WriteDumpFile2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, dumpfile: ::windows_core::PCSTR, qualifier: u32, formatflags: u32, comment: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub AddDumpInformationFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, infofile: ::windows_core::PCSTR, r#type: u32) -> ::windows_core::HRESULT,
pub EndProcessServer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64) -> ::windows_core::HRESULT,
pub WaitForProcessServerEnd: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, timeout: u32) -> ::windows_core::HRESULT,
pub IsKernelDebuggerEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub TerminateCurrentProcess: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub DetachCurrentProcess: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub AbandonCurrentProcess: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub GetRunningProcessSystemIdByExecutableNameWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, exename: ::windows_core::PCWSTR, flags: u32, id: *mut u32) -> ::windows_core::HRESULT,
pub GetRunningProcessDescriptionWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, systemid: u32, flags: u32, exename: ::windows_core::PWSTR, exenamesize: u32, actualexenamesize: *mut u32, description: ::windows_core::PWSTR, descriptionsize: u32, actualdescriptionsize: *mut u32) -> ::windows_core::HRESULT,
pub CreateProcessWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows_core::PCWSTR, createflags: u32) -> ::windows_core::HRESULT,
pub CreateProcessAndAttachWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows_core::PCWSTR, createflags: u32, processid: u32, attachflags: u32) -> ::windows_core::HRESULT,
pub OpenDumpFileWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, filename: ::windows_core::PCWSTR, filehandle: u64) -> ::windows_core::HRESULT,
pub WriteDumpFileWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, filename: ::windows_core::PCWSTR, filehandle: u64, qualifier: u32, formatflags: u32, comment: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
pub AddDumpInformationFileWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, filename: ::windows_core::PCWSTR, filehandle: u64, r#type: u32) -> ::windows_core::HRESULT,
pub GetNumberDumpFiles: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows_core::HRESULT,
pub GetDumpFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows_core::PSTR, buffersize: u32, namesize: *mut u32, handle: *mut u64, r#type: *mut u32) -> ::windows_core::HRESULT,
pub GetDumpFileWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows_core::PWSTR, buffersize: u32, namesize: *mut u32, handle: *mut u64, r#type: *mut u32) -> ::windows_core::HRESULT,
pub AttachKernelWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, connectoptions: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
pub GetKernelConnectionOptionsWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PWSTR, buffersize: u32, optionssize: *mut u32) -> ::windows_core::HRESULT,
pub SetKernelConnectionOptionsWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
pub StartProcessServerWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, options: ::windows_core::PCWSTR, reserved: *const ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub ConnectProcessServerWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, remoteoptions: ::windows_core::PCWSTR, server: *mut u64) -> ::windows_core::HRESULT,
pub StartServerWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
pub OutputServersWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, machine: ::windows_core::PCWSTR, flags: u32) -> ::windows_core::HRESULT,
pub GetOutputCallbacksWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub SetOutputCallbacksWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub GetOutputLinePrefixWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PWSTR, buffersize: u32, prefixsize: *mut u32) -> ::windows_core::HRESULT,
pub SetOutputLinePrefixWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, prefix: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
pub GetIdentityWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PWSTR, buffersize: u32, identitysize: *mut u32) -> ::windows_core::HRESULT,
pub OutputIdentityWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, flags: u32, format: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
pub GetEventCallbacksWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub SetEventCallbacksWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub CreateProcess2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows_core::PCSTR, optionsbuffer: *const ::core::ffi::c_void, optionsbuffersize: u32, initialdirectory: ::windows_core::PCSTR, environment: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub CreateProcess2Wide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows_core::PCWSTR, optionsbuffer: *const ::core::ffi::c_void, optionsbuffersize: u32, initialdirectory: ::windows_core::PCWSTR, environment: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
pub CreateProcessAndAttach2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows_core::PCSTR, optionsbuffer: *const ::core::ffi::c_void, optionsbuffersize: u32, initialdirectory: ::windows_core::PCSTR, environment: ::windows_core::PCSTR, processid: u32, attachflags: u32) -> ::windows_core::HRESULT,
pub CreateProcessAndAttach2Wide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows_core::PCWSTR, optionsbuffer: *const ::core::ffi::c_void, optionsbuffersize: u32, initialdirectory: ::windows_core::PCWSTR, environment: ::windows_core::PCWSTR, processid: u32, attachflags: u32) -> ::windows_core::HRESULT,
pub PushOutputLinePrefix: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, newprefix: ::windows_core::PCSTR, handle: *mut u64) -> ::windows_core::HRESULT,
pub PushOutputLinePrefixWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, newprefix: ::windows_core::PCWSTR, handle: *mut u64) -> ::windows_core::HRESULT,
pub PopOutputLinePrefix: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64) -> ::windows_core::HRESULT,
pub GetNumberInputCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: *mut u32) -> ::windows_core::HRESULT,
pub GetNumberOutputCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: *mut u32) -> ::windows_core::HRESULT,
pub GetNumberEventCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, eventflags: u32, count: *mut u32) -> ::windows_core::HRESULT,
pub GetQuitLockString: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PSTR, buffersize: u32, stringsize: *mut u32) -> ::windows_core::HRESULT,
pub SetQuitLockString: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, string: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub GetQuitLockStringWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PWSTR, buffersize: u32, stringsize: *mut u32) -> ::windows_core::HRESULT,
pub SetQuitLockStringWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, string: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
pub SetEventContextCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub SetClientContext: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows_core::HRESULT,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IDebugClient8(::windows_core::IUnknown);
impl IDebugClient8 {
pub unsafe fn AttachKernel<P0>(&self, flags: u32, connectoptions: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).AttachKernel)(::windows_core::Interface::as_raw(self), flags, connectoptions.into_param().abi()).ok()
}
pub unsafe fn GetKernelConnectionOptions(&self, buffer: ::core::option::Option<&mut [u8]>, optionssize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetKernelConnectionOptions)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(optionssize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetKernelConnectionOptions<P0>(&self, options: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).SetKernelConnectionOptions)(::windows_core::Interface::as_raw(self), options.into_param().abi()).ok()
}
pub unsafe fn StartProcessServer<P0>(&self, flags: u32, options: P0, reserved: ::core::option::Option<*const ::core::ffi::c_void>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).StartProcessServer)(::windows_core::Interface::as_raw(self), flags, options.into_param().abi(), ::core::mem::transmute(reserved.unwrap_or(::std::ptr::null()))).ok()
}
pub unsafe fn ConnectProcessServer<P0>(&self, remoteoptions: P0) -> ::windows_core::Result<u64>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).ConnectProcessServer)(::windows_core::Interface::as_raw(self), remoteoptions.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn DisconnectProcessServer(&self, server: u64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).DisconnectProcessServer)(::windows_core::Interface::as_raw(self), server).ok()
}
pub unsafe fn GetRunningProcessSystemIds(&self, server: u64, ids: ::core::option::Option<&mut [u32]>, actualcount: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetRunningProcessSystemIds)(::windows_core::Interface::as_raw(self), server, ::core::mem::transmute(ids.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ids.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(actualcount.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetRunningProcessSystemIdByExecutableName<P0>(&self, server: u64, exename: P0, flags: u32) -> ::windows_core::Result<u32>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetRunningProcessSystemIdByExecutableName)(::windows_core::Interface::as_raw(self), server, exename.into_param().abi(), flags, &mut result__).from_abi(result__)
}
pub unsafe fn GetRunningProcessDescription(&self, server: u64, systemid: u32, flags: u32, exename: ::core::option::Option<&mut [u8]>, actualexenamesize: ::core::option::Option<*mut u32>, description: ::core::option::Option<&mut [u8]>, actualdescriptionsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetRunningProcessDescription)(
::windows_core::Interface::as_raw(self),
server,
systemid,
flags,
::core::mem::transmute(exename.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
exename.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(actualexenamesize.unwrap_or(::std::ptr::null_mut())),
::core::mem::transmute(description.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
description.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(actualdescriptionsize.unwrap_or(::std::ptr::null_mut())),
)
.ok()
}
pub unsafe fn AttachProcess(&self, server: u64, processid: u32, attachflags: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).AttachProcess)(::windows_core::Interface::as_raw(self), server, processid, attachflags).ok()
}
pub unsafe fn CreateProcessA<P0>(&self, server: u64, commandline: P0, createflags: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).CreateProcessA)(::windows_core::Interface::as_raw(self), server, commandline.into_param().abi(), createflags).ok()
}
pub unsafe fn CreateProcessAndAttach<P0>(&self, server: u64, commandline: P0, createflags: u32, processid: u32, attachflags: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).CreateProcessAndAttach)(::windows_core::Interface::as_raw(self), server, commandline.into_param().abi(), createflags, processid, attachflags).ok()
}
pub unsafe fn GetProcessOptions(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetProcessOptions)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn AddProcessOptions(&self, options: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).AddProcessOptions)(::windows_core::Interface::as_raw(self), options).ok()
}
pub unsafe fn RemoveProcessOptions(&self, options: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).RemoveProcessOptions)(::windows_core::Interface::as_raw(self), options).ok()
}
pub unsafe fn SetProcessOptions(&self, options: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetProcessOptions)(::windows_core::Interface::as_raw(self), options).ok()
}
pub unsafe fn OpenDumpFile<P0>(&self, dumpfile: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).OpenDumpFile)(::windows_core::Interface::as_raw(self), dumpfile.into_param().abi()).ok()
}
pub unsafe fn WriteDumpFile<P0>(&self, dumpfile: P0, qualifier: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).WriteDumpFile)(::windows_core::Interface::as_raw(self), dumpfile.into_param().abi(), qualifier).ok()
}
pub unsafe fn ConnectSession(&self, flags: u32, historylimit: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).ConnectSession)(::windows_core::Interface::as_raw(self), flags, historylimit).ok()
}
pub unsafe fn StartServer<P0>(&self, options: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).StartServer)(::windows_core::Interface::as_raw(self), options.into_param().abi()).ok()
}
pub unsafe fn OutputServers<P0>(&self, outputcontrol: u32, machine: P0, flags: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).OutputServers)(::windows_core::Interface::as_raw(self), outputcontrol, machine.into_param().abi(), flags).ok()
}
pub unsafe fn TerminateProcesses(&self) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).TerminateProcesses)(::windows_core::Interface::as_raw(self)).ok()
}
pub unsafe fn DetachProcesses(&self) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).DetachProcesses)(::windows_core::Interface::as_raw(self)).ok()
}
pub unsafe fn EndSession(&self, flags: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).EndSession)(::windows_core::Interface::as_raw(self), flags).ok()
}
pub unsafe fn GetExitCode(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetExitCode)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn DispatchCallbacks(&self, timeout: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).DispatchCallbacks)(::windows_core::Interface::as_raw(self), timeout).ok()
}
pub unsafe fn ExitDispatch<P0>(&self, client: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IDebugClient>,
{
(::windows_core::Interface::vtable(self).ExitDispatch)(::windows_core::Interface::as_raw(self), client.into_param().abi()).ok()
}
pub unsafe fn CreateClient(&self) -> ::windows_core::Result<IDebugClient> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).CreateClient)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetInputCallbacks(&self) -> ::windows_core::Result<IDebugInputCallbacks> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetInputCallbacks)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetInputCallbacks<P0>(&self, callbacks: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IDebugInputCallbacks>,
{
(::windows_core::Interface::vtable(self).SetInputCallbacks)(::windows_core::Interface::as_raw(self), callbacks.into_param().abi()).ok()
}
pub unsafe fn GetOutputCallbacks(&self) -> ::windows_core::Result<IDebugOutputCallbacks> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetOutputCallbacks)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetOutputCallbacks<P0>(&self, callbacks: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IDebugOutputCallbacks>,
{
(::windows_core::Interface::vtable(self).SetOutputCallbacks)(::windows_core::Interface::as_raw(self), callbacks.into_param().abi()).ok()
}
pub unsafe fn GetOutputMask(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetOutputMask)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetOutputMask(&self, mask: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetOutputMask)(::windows_core::Interface::as_raw(self), mask).ok()
}
pub unsafe fn GetOtherOutputMask<P0>(&self, client: P0) -> ::windows_core::Result<u32>
where
P0: ::windows_core::IntoParam<IDebugClient>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetOtherOutputMask)(::windows_core::Interface::as_raw(self), client.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn SetOtherOutputMask<P0>(&self, client: P0, mask: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IDebugClient>,
{
(::windows_core::Interface::vtable(self).SetOtherOutputMask)(::windows_core::Interface::as_raw(self), client.into_param().abi(), mask).ok()
}
pub unsafe fn GetOutputWidth(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetOutputWidth)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetOutputWidth(&self, columns: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetOutputWidth)(::windows_core::Interface::as_raw(self), columns).ok()
}
pub unsafe fn GetOutputLinePrefix(&self, buffer: ::core::option::Option<&mut [u8]>, prefixsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetOutputLinePrefix)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(prefixsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetOutputLinePrefix<P0>(&self, prefix: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).SetOutputLinePrefix)(::windows_core::Interface::as_raw(self), prefix.into_param().abi()).ok()
}
pub unsafe fn GetIdentity(&self, buffer: ::core::option::Option<&mut [u8]>, identitysize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetIdentity)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(identitysize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn OutputIdentity<P0>(&self, outputcontrol: u32, flags: u32, format: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).OutputIdentity)(::windows_core::Interface::as_raw(self), outputcontrol, flags, format.into_param().abi()).ok()
}
pub unsafe fn GetEventCallbacks(&self) -> ::windows_core::Result<IDebugEventCallbacks> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetEventCallbacks)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetEventCallbacks<P0>(&self, callbacks: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IDebugEventCallbacks>,
{
(::windows_core::Interface::vtable(self).SetEventCallbacks)(::windows_core::Interface::as_raw(self), callbacks.into_param().abi()).ok()
}
pub unsafe fn FlushCallbacks(&self) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).FlushCallbacks)(::windows_core::Interface::as_raw(self)).ok()
}
pub unsafe fn WriteDumpFile2<P0, P1>(&self, dumpfile: P0, qualifier: u32, formatflags: u32, comment: P1) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
P1: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).WriteDumpFile2)(::windows_core::Interface::as_raw(self), dumpfile.into_param().abi(), qualifier, formatflags, comment.into_param().abi()).ok()
}
pub unsafe fn AddDumpInformationFile<P0>(&self, infofile: P0, r#type: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).AddDumpInformationFile)(::windows_core::Interface::as_raw(self), infofile.into_param().abi(), r#type).ok()
}
pub unsafe fn EndProcessServer(&self, server: u64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).EndProcessServer)(::windows_core::Interface::as_raw(self), server).ok()
}
pub unsafe fn WaitForProcessServerEnd(&self, timeout: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).WaitForProcessServerEnd)(::windows_core::Interface::as_raw(self), timeout).ok()
}
pub unsafe fn IsKernelDebuggerEnabled(&self) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).IsKernelDebuggerEnabled)(::windows_core::Interface::as_raw(self)).ok()
}
pub unsafe fn TerminateCurrentProcess(&self) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).TerminateCurrentProcess)(::windows_core::Interface::as_raw(self)).ok()
}
pub unsafe fn DetachCurrentProcess(&self) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).DetachCurrentProcess)(::windows_core::Interface::as_raw(self)).ok()
}
pub unsafe fn AbandonCurrentProcess(&self) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).AbandonCurrentProcess)(::windows_core::Interface::as_raw(self)).ok()
}
pub unsafe fn GetRunningProcessSystemIdByExecutableNameWide<P0>(&self, server: u64, exename: P0, flags: u32) -> ::windows_core::Result<u32>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetRunningProcessSystemIdByExecutableNameWide)(::windows_core::Interface::as_raw(self), server, exename.into_param().abi(), flags, &mut result__).from_abi(result__)
}
pub unsafe fn GetRunningProcessDescriptionWide(&self, server: u64, systemid: u32, flags: u32, exename: ::core::option::Option<&mut [u16]>, actualexenamesize: ::core::option::Option<*mut u32>, description: ::core::option::Option<&mut [u16]>, actualdescriptionsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetRunningProcessDescriptionWide)(
::windows_core::Interface::as_raw(self),
server,
systemid,
flags,
::core::mem::transmute(exename.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
exename.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(actualexenamesize.unwrap_or(::std::ptr::null_mut())),
::core::mem::transmute(description.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
description.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(actualdescriptionsize.unwrap_or(::std::ptr::null_mut())),
)
.ok()
}
pub unsafe fn CreateProcessWide<P0>(&self, server: u64, commandline: P0, createflags: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).CreateProcessWide)(::windows_core::Interface::as_raw(self), server, commandline.into_param().abi(), createflags).ok()
}
pub unsafe fn CreateProcessAndAttachWide<P0>(&self, server: u64, commandline: P0, createflags: u32, processid: u32, attachflags: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).CreateProcessAndAttachWide)(::windows_core::Interface::as_raw(self), server, commandline.into_param().abi(), createflags, processid, attachflags).ok()
}
pub unsafe fn OpenDumpFileWide<P0>(&self, filename: P0, filehandle: u64) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).OpenDumpFileWide)(::windows_core::Interface::as_raw(self), filename.into_param().abi(), filehandle).ok()
}
pub unsafe fn WriteDumpFileWide<P0, P1>(&self, filename: P0, filehandle: u64, qualifier: u32, formatflags: u32, comment: P1) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
P1: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).WriteDumpFileWide)(::windows_core::Interface::as_raw(self), filename.into_param().abi(), filehandle, qualifier, formatflags, comment.into_param().abi()).ok()
}
pub unsafe fn AddDumpInformationFileWide<P0>(&self, filename: P0, filehandle: u64, r#type: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).AddDumpInformationFileWide)(::windows_core::Interface::as_raw(self), filename.into_param().abi(), filehandle, r#type).ok()
}
pub unsafe fn GetNumberDumpFiles(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetNumberDumpFiles)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetDumpFile(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<*mut u32>, handle: ::core::option::Option<*mut u64>, r#type: *mut u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetDumpFile)(::windows_core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(handle.unwrap_or(::std::ptr::null_mut())), r#type).ok()
}
pub unsafe fn GetDumpFileWide(&self, index: u32, buffer: ::core::option::Option<&mut [u16]>, namesize: ::core::option::Option<*mut u32>, handle: ::core::option::Option<*mut u64>, r#type: *mut u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetDumpFileWide)(::windows_core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(handle.unwrap_or(::std::ptr::null_mut())), r#type).ok()
}
pub unsafe fn AttachKernelWide<P0>(&self, flags: u32, connectoptions: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).AttachKernelWide)(::windows_core::Interface::as_raw(self), flags, connectoptions.into_param().abi()).ok()
}
pub unsafe fn GetKernelConnectionOptionsWide(&self, buffer: ::core::option::Option<&mut [u16]>, optionssize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetKernelConnectionOptionsWide)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(optionssize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetKernelConnectionOptionsWide<P0>(&self, options: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).SetKernelConnectionOptionsWide)(::windows_core::Interface::as_raw(self), options.into_param().abi()).ok()
}
pub unsafe fn StartProcessServerWide<P0>(&self, flags: u32, options: P0, reserved: ::core::option::Option<*const ::core::ffi::c_void>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).StartProcessServerWide)(::windows_core::Interface::as_raw(self), flags, options.into_param().abi(), ::core::mem::transmute(reserved.unwrap_or(::std::ptr::null()))).ok()
}
pub unsafe fn ConnectProcessServerWide<P0>(&self, remoteoptions: P0) -> ::windows_core::Result<u64>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).ConnectProcessServerWide)(::windows_core::Interface::as_raw(self), remoteoptions.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn StartServerWide<P0>(&self, options: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).StartServerWide)(::windows_core::Interface::as_raw(self), options.into_param().abi()).ok()
}
pub unsafe fn OutputServersWide<P0>(&self, outputcontrol: u32, machine: P0, flags: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).OutputServersWide)(::windows_core::Interface::as_raw(self), outputcontrol, machine.into_param().abi(), flags).ok()
}
pub unsafe fn GetOutputCallbacksWide(&self) -> ::windows_core::Result<IDebugOutputCallbacksWide> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetOutputCallbacksWide)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetOutputCallbacksWide<P0>(&self, callbacks: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IDebugOutputCallbacksWide>,
{
(::windows_core::Interface::vtable(self).SetOutputCallbacksWide)(::windows_core::Interface::as_raw(self), callbacks.into_param().abi()).ok()
}
pub unsafe fn GetOutputLinePrefixWide(&self, buffer: ::core::option::Option<&mut [u16]>, prefixsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetOutputLinePrefixWide)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(prefixsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetOutputLinePrefixWide<P0>(&self, prefix: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).SetOutputLinePrefixWide)(::windows_core::Interface::as_raw(self), prefix.into_param().abi()).ok()
}
pub unsafe fn GetIdentityWide(&self, buffer: ::core::option::Option<&mut [u16]>, identitysize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetIdentityWide)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(identitysize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn OutputIdentityWide<P0>(&self, outputcontrol: u32, flags: u32, format: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).OutputIdentityWide)(::windows_core::Interface::as_raw(self), outputcontrol, flags, format.into_param().abi()).ok()
}
pub unsafe fn GetEventCallbacksWide(&self) -> ::windows_core::Result<IDebugEventCallbacksWide> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetEventCallbacksWide)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetEventCallbacksWide<P0>(&self, callbacks: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IDebugEventCallbacksWide>,
{
(::windows_core::Interface::vtable(self).SetEventCallbacksWide)(::windows_core::Interface::as_raw(self), callbacks.into_param().abi()).ok()
}
pub unsafe fn CreateProcess2<P0, P1, P2>(&self, server: u64, commandline: P0, optionsbuffer: *const ::core::ffi::c_void, optionsbuffersize: u32, initialdirectory: P1, environment: P2) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
P1: ::windows_core::IntoParam<::windows_core::PCSTR>,
P2: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).CreateProcess2)(::windows_core::Interface::as_raw(self), server, commandline.into_param().abi(), optionsbuffer, optionsbuffersize, initialdirectory.into_param().abi(), environment.into_param().abi()).ok()
}
pub unsafe fn CreateProcess2Wide<P0, P1, P2>(&self, server: u64, commandline: P0, optionsbuffer: *const ::core::ffi::c_void, optionsbuffersize: u32, initialdirectory: P1, environment: P2) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
P1: ::windows_core::IntoParam<::windows_core::PCWSTR>,
P2: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).CreateProcess2Wide)(::windows_core::Interface::as_raw(self), server, commandline.into_param().abi(), optionsbuffer, optionsbuffersize, initialdirectory.into_param().abi(), environment.into_param().abi()).ok()
}
pub unsafe fn CreateProcessAndAttach2<P0, P1, P2>(&self, server: u64, commandline: P0, optionsbuffer: *const ::core::ffi::c_void, optionsbuffersize: u32, initialdirectory: P1, environment: P2, processid: u32, attachflags: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
P1: ::windows_core::IntoParam<::windows_core::PCSTR>,
P2: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).CreateProcessAndAttach2)(::windows_core::Interface::as_raw(self), server, commandline.into_param().abi(), optionsbuffer, optionsbuffersize, initialdirectory.into_param().abi(), environment.into_param().abi(), processid, attachflags).ok()
}
pub unsafe fn CreateProcessAndAttach2Wide<P0, P1, P2>(&self, server: u64, commandline: P0, optionsbuffer: *const ::core::ffi::c_void, optionsbuffersize: u32, initialdirectory: P1, environment: P2, processid: u32, attachflags: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
P1: ::windows_core::IntoParam<::windows_core::PCWSTR>,
P2: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).CreateProcessAndAttach2Wide)(::windows_core::Interface::as_raw(self), server, commandline.into_param().abi(), optionsbuffer, optionsbuffersize, initialdirectory.into_param().abi(), environment.into_param().abi(), processid, attachflags).ok()
}
pub unsafe fn PushOutputLinePrefix<P0>(&self, newprefix: P0) -> ::windows_core::Result<u64>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).PushOutputLinePrefix)(::windows_core::Interface::as_raw(self), newprefix.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn PushOutputLinePrefixWide<P0>(&self, newprefix: P0) -> ::windows_core::Result<u64>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).PushOutputLinePrefixWide)(::windows_core::Interface::as_raw(self), newprefix.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn PopOutputLinePrefix(&self, handle: u64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).PopOutputLinePrefix)(::windows_core::Interface::as_raw(self), handle).ok()
}
pub unsafe fn GetNumberInputCallbacks(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetNumberInputCallbacks)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetNumberOutputCallbacks(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetNumberOutputCallbacks)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetNumberEventCallbacks(&self, eventflags: u32) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetNumberEventCallbacks)(::windows_core::Interface::as_raw(self), eventflags, &mut result__).from_abi(result__)
}
pub unsafe fn GetQuitLockString(&self, buffer: ::core::option::Option<&mut [u8]>, stringsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetQuitLockString)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(stringsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetQuitLockString<P0>(&self, string: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).SetQuitLockString)(::windows_core::Interface::as_raw(self), string.into_param().abi()).ok()
}
pub unsafe fn GetQuitLockStringWide(&self, buffer: ::core::option::Option<&mut [u16]>, stringsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetQuitLockStringWide)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(stringsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetQuitLockStringWide<P0>(&self, string: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).SetQuitLockStringWide)(::windows_core::Interface::as_raw(self), string.into_param().abi()).ok()
}
pub unsafe fn SetEventContextCallbacks<P0>(&self, callbacks: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IDebugEventContextCallbacks>,
{
(::windows_core::Interface::vtable(self).SetEventContextCallbacks)(::windows_core::Interface::as_raw(self), callbacks.into_param().abi()).ok()
}
pub unsafe fn SetClientContext(&self, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetClientContext)(::windows_core::Interface::as_raw(self), context, contextsize).ok()
}
pub unsafe fn OpenDumpFileWide2<P0>(&self, filename: P0, filehandle: u64, alternatearch: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).OpenDumpFileWide2)(::windows_core::Interface::as_raw(self), filename.into_param().abi(), filehandle, alternatearch).ok()
}
}
::windows_core::imp::interface_hierarchy!(IDebugClient8, ::windows_core::IUnknown);
unsafe impl ::windows_core::Interface for IDebugClient8 {
type Vtable = IDebugClient8_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IDebugClient8 {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0xcec43add_6375_469e_83d5_414e4033c19a);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugClient8_Vtbl {
pub base__: ::windows_core::IUnknown_Vtbl,
pub AttachKernel: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, connectoptions: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub GetKernelConnectionOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PSTR, buffersize: u32, optionssize: *mut u32) -> ::windows_core::HRESULT,
pub SetKernelConnectionOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub StartProcessServer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, options: ::windows_core::PCSTR, reserved: *const ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub ConnectProcessServer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, remoteoptions: ::windows_core::PCSTR, server: *mut u64) -> ::windows_core::HRESULT,
pub DisconnectProcessServer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64) -> ::windows_core::HRESULT,
pub GetRunningProcessSystemIds: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, ids: *mut u32, count: u32, actualcount: *mut u32) -> ::windows_core::HRESULT,
pub GetRunningProcessSystemIdByExecutableName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, exename: ::windows_core::PCSTR, flags: u32, id: *mut u32) -> ::windows_core::HRESULT,
pub GetRunningProcessDescription: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, systemid: u32, flags: u32, exename: ::windows_core::PSTR, exenamesize: u32, actualexenamesize: *mut u32, description: ::windows_core::PSTR, descriptionsize: u32, actualdescriptionsize: *mut u32) -> ::windows_core::HRESULT,
pub AttachProcess: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, processid: u32, attachflags: u32) -> ::windows_core::HRESULT,
pub CreateProcessA: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows_core::PCSTR, createflags: u32) -> ::windows_core::HRESULT,
pub CreateProcessAndAttach: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows_core::PCSTR, createflags: u32, processid: u32, attachflags: u32) -> ::windows_core::HRESULT,
pub GetProcessOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: *mut u32) -> ::windows_core::HRESULT,
pub AddProcessOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows_core::HRESULT,
pub RemoveProcessOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows_core::HRESULT,
pub SetProcessOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows_core::HRESULT,
pub OpenDumpFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, dumpfile: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub WriteDumpFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, dumpfile: ::windows_core::PCSTR, qualifier: u32) -> ::windows_core::HRESULT,
pub ConnectSession: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, historylimit: u32) -> ::windows_core::HRESULT,
pub StartServer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub OutputServers: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, machine: ::windows_core::PCSTR, flags: u32) -> ::windows_core::HRESULT,
pub TerminateProcesses: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub DetachProcesses: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub EndSession: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32) -> ::windows_core::HRESULT,
pub GetExitCode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, code: *mut u32) -> ::windows_core::HRESULT,
pub DispatchCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, timeout: u32) -> ::windows_core::HRESULT,
pub ExitDispatch: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, client: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub CreateClient: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, client: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub GetInputCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub SetInputCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub GetOutputCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub SetOutputCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub GetOutputMask: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: *mut u32) -> ::windows_core::HRESULT,
pub SetOutputMask: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: u32) -> ::windows_core::HRESULT,
pub GetOtherOutputMask: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, client: *mut ::core::ffi::c_void, mask: *mut u32) -> ::windows_core::HRESULT,
pub SetOtherOutputMask: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, client: *mut ::core::ffi::c_void, mask: u32) -> ::windows_core::HRESULT,
pub GetOutputWidth: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, columns: *mut u32) -> ::windows_core::HRESULT,
pub SetOutputWidth: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, columns: u32) -> ::windows_core::HRESULT,
pub GetOutputLinePrefix: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PSTR, buffersize: u32, prefixsize: *mut u32) -> ::windows_core::HRESULT,
pub SetOutputLinePrefix: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, prefix: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub GetIdentity: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PSTR, buffersize: u32, identitysize: *mut u32) -> ::windows_core::HRESULT,
pub OutputIdentity: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, flags: u32, format: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub GetEventCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub SetEventCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub FlushCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub WriteDumpFile2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, dumpfile: ::windows_core::PCSTR, qualifier: u32, formatflags: u32, comment: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub AddDumpInformationFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, infofile: ::windows_core::PCSTR, r#type: u32) -> ::windows_core::HRESULT,
pub EndProcessServer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64) -> ::windows_core::HRESULT,
pub WaitForProcessServerEnd: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, timeout: u32) -> ::windows_core::HRESULT,
pub IsKernelDebuggerEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub TerminateCurrentProcess: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub DetachCurrentProcess: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub AbandonCurrentProcess: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub GetRunningProcessSystemIdByExecutableNameWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, exename: ::windows_core::PCWSTR, flags: u32, id: *mut u32) -> ::windows_core::HRESULT,
pub GetRunningProcessDescriptionWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, systemid: u32, flags: u32, exename: ::windows_core::PWSTR, exenamesize: u32, actualexenamesize: *mut u32, description: ::windows_core::PWSTR, descriptionsize: u32, actualdescriptionsize: *mut u32) -> ::windows_core::HRESULT,
pub CreateProcessWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows_core::PCWSTR, createflags: u32) -> ::windows_core::HRESULT,
pub CreateProcessAndAttachWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows_core::PCWSTR, createflags: u32, processid: u32, attachflags: u32) -> ::windows_core::HRESULT,
pub OpenDumpFileWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, filename: ::windows_core::PCWSTR, filehandle: u64) -> ::windows_core::HRESULT,
pub WriteDumpFileWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, filename: ::windows_core::PCWSTR, filehandle: u64, qualifier: u32, formatflags: u32, comment: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
pub AddDumpInformationFileWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, filename: ::windows_core::PCWSTR, filehandle: u64, r#type: u32) -> ::windows_core::HRESULT,
pub GetNumberDumpFiles: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows_core::HRESULT,
pub GetDumpFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows_core::PSTR, buffersize: u32, namesize: *mut u32, handle: *mut u64, r#type: *mut u32) -> ::windows_core::HRESULT,
pub GetDumpFileWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows_core::PWSTR, buffersize: u32, namesize: *mut u32, handle: *mut u64, r#type: *mut u32) -> ::windows_core::HRESULT,
pub AttachKernelWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, connectoptions: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
pub GetKernelConnectionOptionsWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PWSTR, buffersize: u32, optionssize: *mut u32) -> ::windows_core::HRESULT,
pub SetKernelConnectionOptionsWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
pub StartProcessServerWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, options: ::windows_core::PCWSTR, reserved: *const ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub ConnectProcessServerWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, remoteoptions: ::windows_core::PCWSTR, server: *mut u64) -> ::windows_core::HRESULT,
pub StartServerWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
pub OutputServersWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, machine: ::windows_core::PCWSTR, flags: u32) -> ::windows_core::HRESULT,
pub GetOutputCallbacksWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub SetOutputCallbacksWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub GetOutputLinePrefixWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PWSTR, buffersize: u32, prefixsize: *mut u32) -> ::windows_core::HRESULT,
pub SetOutputLinePrefixWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, prefix: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
pub GetIdentityWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PWSTR, buffersize: u32, identitysize: *mut u32) -> ::windows_core::HRESULT,
pub OutputIdentityWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, flags: u32, format: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
pub GetEventCallbacksWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub SetEventCallbacksWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub CreateProcess2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows_core::PCSTR, optionsbuffer: *const ::core::ffi::c_void, optionsbuffersize: u32, initialdirectory: ::windows_core::PCSTR, environment: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub CreateProcess2Wide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows_core::PCWSTR, optionsbuffer: *const ::core::ffi::c_void, optionsbuffersize: u32, initialdirectory: ::windows_core::PCWSTR, environment: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
pub CreateProcessAndAttach2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows_core::PCSTR, optionsbuffer: *const ::core::ffi::c_void, optionsbuffersize: u32, initialdirectory: ::windows_core::PCSTR, environment: ::windows_core::PCSTR, processid: u32, attachflags: u32) -> ::windows_core::HRESULT,
pub CreateProcessAndAttach2Wide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, commandline: ::windows_core::PCWSTR, optionsbuffer: *const ::core::ffi::c_void, optionsbuffersize: u32, initialdirectory: ::windows_core::PCWSTR, environment: ::windows_core::PCWSTR, processid: u32, attachflags: u32) -> ::windows_core::HRESULT,
pub PushOutputLinePrefix: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, newprefix: ::windows_core::PCSTR, handle: *mut u64) -> ::windows_core::HRESULT,
pub PushOutputLinePrefixWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, newprefix: ::windows_core::PCWSTR, handle: *mut u64) -> ::windows_core::HRESULT,
pub PopOutputLinePrefix: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64) -> ::windows_core::HRESULT,
pub GetNumberInputCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: *mut u32) -> ::windows_core::HRESULT,
pub GetNumberOutputCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: *mut u32) -> ::windows_core::HRESULT,
pub GetNumberEventCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, eventflags: u32, count: *mut u32) -> ::windows_core::HRESULT,
pub GetQuitLockString: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PSTR, buffersize: u32, stringsize: *mut u32) -> ::windows_core::HRESULT,
pub SetQuitLockString: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, string: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub GetQuitLockStringWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PWSTR, buffersize: u32, stringsize: *mut u32) -> ::windows_core::HRESULT,
pub SetQuitLockStringWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, string: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
pub SetEventContextCallbacks: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbacks: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub SetClientContext: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows_core::HRESULT,
pub OpenDumpFileWide2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, filename: ::windows_core::PCWSTR, filehandle: u64, alternatearch: u32) -> ::windows_core::HRESULT,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IDebugControl(::windows_core::IUnknown);
impl IDebugControl {
pub unsafe fn GetInterrupt(&self) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetInterrupt)(::windows_core::Interface::as_raw(self)).ok()
}
pub unsafe fn SetInterrupt(&self, flags: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetInterrupt)(::windows_core::Interface::as_raw(self), flags).ok()
}
pub unsafe fn GetInterruptTimeout(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetInterruptTimeout)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetInterruptTimeout(&self, seconds: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetInterruptTimeout)(::windows_core::Interface::as_raw(self), seconds).ok()
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn GetLogFile(&self, buffer: ::core::option::Option<&mut [u8]>, filesize: ::core::option::Option<*mut u32>, append: *mut super::super::super::super::Foundation::BOOL) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetLogFile)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(filesize.unwrap_or(::std::ptr::null_mut())), append).ok()
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn OpenLogFile<P0, P1>(&self, file: P0, append: P1) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
P1: ::windows_core::IntoParam<super::super::super::super::Foundation::BOOL>,
{
(::windows_core::Interface::vtable(self).OpenLogFile)(::windows_core::Interface::as_raw(self), file.into_param().abi(), append.into_param().abi()).ok()
}
pub unsafe fn CloseLogFile(&self) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).CloseLogFile)(::windows_core::Interface::as_raw(self)).ok()
}
pub unsafe fn GetLogMask(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetLogMask)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetLogMask(&self, mask: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetLogMask)(::windows_core::Interface::as_raw(self), mask).ok()
}
pub unsafe fn Input(&self, buffer: &mut [u8], inputsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).Input)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_ptr()), buffer.len().try_into().unwrap(), ::core::mem::transmute(inputsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn ReturnInput<P0>(&self, buffer: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).ReturnInput)(::windows_core::Interface::as_raw(self), buffer.into_param().abi()).ok()
}
pub unsafe fn Output<P0>(&self, mask: u32, format: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).Output)(::windows_core::Interface::as_raw(self), mask, format.into_param().abi()).ok()
}
pub unsafe fn OutputVaList<P0>(&self, mask: u32, format: P0, args: *const i8) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).OutputVaList)(::windows_core::Interface::as_raw(self), mask, format.into_param().abi(), args).ok()
}
pub unsafe fn ControlledOutput<P0>(&self, outputcontrol: u32, mask: u32, format: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).ControlledOutput)(::windows_core::Interface::as_raw(self), outputcontrol, mask, format.into_param().abi()).ok()
}
pub unsafe fn ControlledOutputVaList<P0>(&self, outputcontrol: u32, mask: u32, format: P0, args: *const i8) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).ControlledOutputVaList)(::windows_core::Interface::as_raw(self), outputcontrol, mask, format.into_param().abi(), args).ok()
}
pub unsafe fn OutputPrompt<P0>(&self, outputcontrol: u32, format: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).OutputPrompt)(::windows_core::Interface::as_raw(self), outputcontrol, format.into_param().abi()).ok()
}
pub unsafe fn OutputPromptVaList<P0>(&self, outputcontrol: u32, format: P0, args: *const i8) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).OutputPromptVaList)(::windows_core::Interface::as_raw(self), outputcontrol, format.into_param().abi(), args).ok()
}
pub unsafe fn GetPromptText(&self, buffer: ::core::option::Option<&mut [u8]>, textsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetPromptText)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(textsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn OutputCurrentState(&self, outputcontrol: u32, flags: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).OutputCurrentState)(::windows_core::Interface::as_raw(self), outputcontrol, flags).ok()
}
pub unsafe fn OutputVersionInformation(&self, outputcontrol: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).OutputVersionInformation)(::windows_core::Interface::as_raw(self), outputcontrol).ok()
}
pub unsafe fn GetNotifyEventHandle(&self) -> ::windows_core::Result<u64> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetNotifyEventHandle)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetNotifyEventHandle(&self, handle: u64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetNotifyEventHandle)(::windows_core::Interface::as_raw(self), handle).ok()
}
pub unsafe fn Assemble<P0>(&self, offset: u64, instr: P0) -> ::windows_core::Result<u64>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).Assemble)(::windows_core::Interface::as_raw(self), offset, instr.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn Disassemble(&self, offset: u64, flags: u32, buffer: ::core::option::Option<&mut [u8]>, disassemblysize: ::core::option::Option<*mut u32>, endoffset: *mut u64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).Disassemble)(::windows_core::Interface::as_raw(self), offset, flags, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(disassemblysize.unwrap_or(::std::ptr::null_mut())), endoffset).ok()
}
pub unsafe fn GetDisassembleEffectiveOffset(&self) -> ::windows_core::Result<u64> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetDisassembleEffectiveOffset)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn OutputDisassembly(&self, outputcontrol: u32, offset: u64, flags: u32) -> ::windows_core::Result<u64> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).OutputDisassembly)(::windows_core::Interface::as_raw(self), outputcontrol, offset, flags, &mut result__).from_abi(result__)
}
pub unsafe fn OutputDisassemblyLines(&self, outputcontrol: u32, previouslines: u32, offset: u64, flags: u32, offsetline: ::core::option::Option<*mut u32>, startoffset: ::core::option::Option<*mut u64>, endoffset: ::core::option::Option<*mut u64>, lineoffsets: ::core::option::Option<&mut [u64]>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).OutputDisassemblyLines)(::windows_core::Interface::as_raw(self), outputcontrol, previouslines, lineoffsets.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), offset, flags, ::core::mem::transmute(offsetline.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(startoffset.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(endoffset.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(lineoffsets.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok()
}
pub unsafe fn GetNearInstruction(&self, offset: u64, delta: i32) -> ::windows_core::Result<u64> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetNearInstruction)(::windows_core::Interface::as_raw(self), offset, delta, &mut result__).from_abi(result__)
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn GetStackTrace(&self, frameoffset: u64, stackoffset: u64, instructionoffset: u64, frames: &mut [DEBUG_STACK_FRAME], framesfilled: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetStackTrace)(::windows_core::Interface::as_raw(self), frameoffset, stackoffset, instructionoffset, ::core::mem::transmute(frames.as_ptr()), frames.len().try_into().unwrap(), ::core::mem::transmute(framesfilled.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetReturnOffset(&self) -> ::windows_core::Result<u64> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetReturnOffset)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn OutputStackTrace(&self, outputcontrol: u32, frames: ::core::option::Option<&[DEBUG_STACK_FRAME]>, flags: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).OutputStackTrace)(::windows_core::Interface::as_raw(self), outputcontrol, ::core::mem::transmute(frames.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), frames.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), flags).ok()
}
pub unsafe fn GetDebuggeeType(&self, class: *mut u32, qualifier: *mut u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetDebuggeeType)(::windows_core::Interface::as_raw(self), class, qualifier).ok()
}
pub unsafe fn GetActualProcessorType(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetActualProcessorType)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetExecutingProcessorType(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetExecutingProcessorType)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetNumberPossibleExecutingProcessorTypes(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetNumberPossibleExecutingProcessorTypes)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetPossibleExecutingProcessorTypes(&self, start: u32, types: &mut [u32]) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetPossibleExecutingProcessorTypes)(::windows_core::Interface::as_raw(self), start, types.len().try_into().unwrap(), ::core::mem::transmute(types.as_ptr())).ok()
}
pub unsafe fn GetNumberProcessors(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetNumberProcessors)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetSystemVersion(&self, platformid: *mut u32, major: *mut u32, minor: *mut u32, servicepackstring: ::core::option::Option<&mut [u8]>, servicepackstringused: ::core::option::Option<*mut u32>, servicepacknumber: *mut u32, buildstring: ::core::option::Option<&mut [u8]>, buildstringused: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSystemVersion)(
::windows_core::Interface::as_raw(self),
platformid,
major,
minor,
::core::mem::transmute(servicepackstring.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
servicepackstring.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(servicepackstringused.unwrap_or(::std::ptr::null_mut())),
servicepacknumber,
::core::mem::transmute(buildstring.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
buildstring.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(buildstringused.unwrap_or(::std::ptr::null_mut())),
)
.ok()
}
pub unsafe fn GetPageSize(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetPageSize)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn IsPointer64Bit(&self) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).IsPointer64Bit)(::windows_core::Interface::as_raw(self)).ok()
}
pub unsafe fn ReadBugCheckData(&self, code: *mut u32, arg1: *mut u64, arg2: *mut u64, arg3: *mut u64, arg4: *mut u64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).ReadBugCheckData)(::windows_core::Interface::as_raw(self), code, arg1, arg2, arg3, arg4).ok()
}
pub unsafe fn GetNumberSupportedProcessorTypes(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetNumberSupportedProcessorTypes)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetSupportedProcessorTypes(&self, start: u32, types: &mut [u32]) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSupportedProcessorTypes)(::windows_core::Interface::as_raw(self), start, types.len().try_into().unwrap(), ::core::mem::transmute(types.as_ptr())).ok()
}
pub unsafe fn GetProcessorTypeNames(&self, r#type: u32, fullnamebuffer: ::core::option::Option<&mut [u8]>, fullnamesize: ::core::option::Option<*mut u32>, abbrevnamebuffer: ::core::option::Option<&mut [u8]>, abbrevnamesize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetProcessorTypeNames)(
::windows_core::Interface::as_raw(self),
r#type,
::core::mem::transmute(fullnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
fullnamebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(fullnamesize.unwrap_or(::std::ptr::null_mut())),
::core::mem::transmute(abbrevnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
abbrevnamebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(abbrevnamesize.unwrap_or(::std::ptr::null_mut())),
)
.ok()
}
pub unsafe fn GetEffectiveProcessorType(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetEffectiveProcessorType)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetEffectiveProcessorType(&self, r#type: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetEffectiveProcessorType)(::windows_core::Interface::as_raw(self), r#type).ok()
}
pub unsafe fn GetExecutionStatus(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetExecutionStatus)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetExecutionStatus(&self, status: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetExecutionStatus)(::windows_core::Interface::as_raw(self), status).ok()
}
pub unsafe fn GetCodeLevel(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetCodeLevel)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetCodeLevel(&self, level: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetCodeLevel)(::windows_core::Interface::as_raw(self), level).ok()
}
pub unsafe fn GetEngineOptions(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetEngineOptions)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn AddEngineOptions(&self, options: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).AddEngineOptions)(::windows_core::Interface::as_raw(self), options).ok()
}
pub unsafe fn RemoveEngineOptions(&self, options: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).RemoveEngineOptions)(::windows_core::Interface::as_raw(self), options).ok()
}
pub unsafe fn SetEngineOptions(&self, options: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetEngineOptions)(::windows_core::Interface::as_raw(self), options).ok()
}
pub unsafe fn GetSystemErrorControl(&self, outputlevel: *mut u32, breaklevel: *mut u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSystemErrorControl)(::windows_core::Interface::as_raw(self), outputlevel, breaklevel).ok()
}
pub unsafe fn SetSystemErrorControl(&self, outputlevel: u32, breaklevel: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetSystemErrorControl)(::windows_core::Interface::as_raw(self), outputlevel, breaklevel).ok()
}
pub unsafe fn GetTextMacro(&self, slot: u32, buffer: ::core::option::Option<&mut [u8]>, macrosize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetTextMacro)(::windows_core::Interface::as_raw(self), slot, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(macrosize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetTextMacro<P0>(&self, slot: u32, r#macro: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).SetTextMacro)(::windows_core::Interface::as_raw(self), slot, r#macro.into_param().abi()).ok()
}
pub unsafe fn GetRadix(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetRadix)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetRadix(&self, radix: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetRadix)(::windows_core::Interface::as_raw(self), radix).ok()
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn Evaluate<P0>(&self, expression: P0, desiredtype: u32, value: *mut DEBUG_VALUE, remainderindex: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).Evaluate)(::windows_core::Interface::as_raw(self), expression.into_param().abi(), desiredtype, value, ::core::mem::transmute(remainderindex.unwrap_or(::std::ptr::null_mut()))).ok()
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn CoerceValue(&self, r#in: *const DEBUG_VALUE, outtype: u32, out: *mut DEBUG_VALUE) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).CoerceValue)(::windows_core::Interface::as_raw(self), r#in, outtype, out).ok()
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn CoerceValues(&self, count: u32, r#in: *const DEBUG_VALUE, outtypes: *const u32, out: *mut DEBUG_VALUE) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).CoerceValues)(::windows_core::Interface::as_raw(self), count, r#in, outtypes, out).ok()
}
pub unsafe fn Execute<P0>(&self, outputcontrol: u32, command: P0, flags: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).Execute)(::windows_core::Interface::as_raw(self), outputcontrol, command.into_param().abi(), flags).ok()
}
pub unsafe fn ExecuteCommandFile<P0>(&self, outputcontrol: u32, commandfile: P0, flags: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).ExecuteCommandFile)(::windows_core::Interface::as_raw(self), outputcontrol, commandfile.into_param().abi(), flags).ok()
}
pub unsafe fn GetNumberBreakpoints(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetNumberBreakpoints)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetBreakpointByIndex(&self, index: u32) -> ::windows_core::Result<IDebugBreakpoint> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetBreakpointByIndex)(::windows_core::Interface::as_raw(self), index, &mut result__).from_abi(result__)
}
pub unsafe fn GetBreakpointById(&self, id: u32) -> ::windows_core::Result<IDebugBreakpoint> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetBreakpointById)(::windows_core::Interface::as_raw(self), id, &mut result__).from_abi(result__)
}
pub unsafe fn GetBreakpointParameters(&self, count: u32, ids: ::core::option::Option<*const u32>, start: u32, params: *mut DEBUG_BREAKPOINT_PARAMETERS) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetBreakpointParameters)(::windows_core::Interface::as_raw(self), count, ::core::mem::transmute(ids.unwrap_or(::std::ptr::null())), start, params).ok()
}
pub unsafe fn AddBreakpoint(&self, r#type: u32, desiredid: u32) -> ::windows_core::Result<IDebugBreakpoint> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).AddBreakpoint)(::windows_core::Interface::as_raw(self), r#type, desiredid, &mut result__).from_abi(result__)
}
pub unsafe fn RemoveBreakpoint<P0>(&self, bp: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IDebugBreakpoint>,
{
(::windows_core::Interface::vtable(self).RemoveBreakpoint)(::windows_core::Interface::as_raw(self), bp.into_param().abi()).ok()
}
pub unsafe fn AddExtension<P0>(&self, path: P0, flags: u32) -> ::windows_core::Result<u64>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).AddExtension)(::windows_core::Interface::as_raw(self), path.into_param().abi(), flags, &mut result__).from_abi(result__)
}
pub unsafe fn RemoveExtension(&self, handle: u64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).RemoveExtension)(::windows_core::Interface::as_raw(self), handle).ok()
}
pub unsafe fn GetExtensionByPath<P0>(&self, path: P0) -> ::windows_core::Result<u64>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetExtensionByPath)(::windows_core::Interface::as_raw(self), path.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn CallExtension<P0, P1>(&self, handle: u64, function: P0, arguments: P1) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
P1: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).CallExtension)(::windows_core::Interface::as_raw(self), handle, function.into_param().abi(), arguments.into_param().abi()).ok()
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn GetExtensionFunction<P0>(&self, handle: u64, funcname: P0, function: *mut super::super::super::super::Foundation::FARPROC) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).GetExtensionFunction)(::windows_core::Interface::as_raw(self), handle, funcname.into_param().abi(), function).ok()
}
#[doc = "Required features: `\"Win32_System_Kernel\"`"]
#[cfg(feature = "Win32_System_Kernel")]
pub unsafe fn GetWindbgExtensionApis32(&self, api: *mut WINDBG_EXTENSION_APIS32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetWindbgExtensionApis32)(::windows_core::Interface::as_raw(self), api).ok()
}
#[doc = "Required features: `\"Win32_System_Kernel\"`"]
#[cfg(feature = "Win32_System_Kernel")]
pub unsafe fn GetWindbgExtensionApis64(&self, api: *mut WINDBG_EXTENSION_APIS64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetWindbgExtensionApis64)(::windows_core::Interface::as_raw(self), api).ok()
}
pub unsafe fn GetNumberEventFilters(&self, specificevents: *mut u32, specificexceptions: *mut u32, arbitraryexceptions: *mut u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetNumberEventFilters)(::windows_core::Interface::as_raw(self), specificevents, specificexceptions, arbitraryexceptions).ok()
}
pub unsafe fn GetEventFilterText(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, textsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetEventFilterText)(::windows_core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(textsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetEventFilterCommand(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, commandsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetEventFilterCommand)(::windows_core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(commandsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetEventFilterCommand<P0>(&self, index: u32, command: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).SetEventFilterCommand)(::windows_core::Interface::as_raw(self), index, command.into_param().abi()).ok()
}
pub unsafe fn GetSpecificFilterParameters(&self, start: u32, params: &mut [DEBUG_SPECIFIC_FILTER_PARAMETERS]) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSpecificFilterParameters)(::windows_core::Interface::as_raw(self), start, params.len().try_into().unwrap(), ::core::mem::transmute(params.as_ptr())).ok()
}
pub unsafe fn SetSpecificFilterParameters(&self, start: u32, params: &[DEBUG_SPECIFIC_FILTER_PARAMETERS]) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetSpecificFilterParameters)(::windows_core::Interface::as_raw(self), start, params.len().try_into().unwrap(), ::core::mem::transmute(params.as_ptr())).ok()
}
pub unsafe fn GetSpecificFilterArgument(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, argumentsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSpecificFilterArgument)(::windows_core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(argumentsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetSpecificFilterArgument<P0>(&self, index: u32, argument: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).SetSpecificFilterArgument)(::windows_core::Interface::as_raw(self), index, argument.into_param().abi()).ok()
}
pub unsafe fn GetExceptionFilterParameters(&self, count: u32, codes: ::core::option::Option<*const u32>, start: u32, params: *mut DEBUG_EXCEPTION_FILTER_PARAMETERS) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetExceptionFilterParameters)(::windows_core::Interface::as_raw(self), count, ::core::mem::transmute(codes.unwrap_or(::std::ptr::null())), start, params).ok()
}
pub unsafe fn SetExceptionFilterParameters(&self, params: &[DEBUG_EXCEPTION_FILTER_PARAMETERS]) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetExceptionFilterParameters)(::windows_core::Interface::as_raw(self), params.len().try_into().unwrap(), ::core::mem::transmute(params.as_ptr())).ok()
}
pub unsafe fn GetExceptionFilterSecondCommand(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, commandsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetExceptionFilterSecondCommand)(::windows_core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(commandsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetExceptionFilterSecondCommand<P0>(&self, index: u32, command: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).SetExceptionFilterSecondCommand)(::windows_core::Interface::as_raw(self), index, command.into_param().abi()).ok()
}
pub unsafe fn WaitForEvent(&self, flags: u32, timeout: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).WaitForEvent)(::windows_core::Interface::as_raw(self), flags, timeout).ok()
}
pub unsafe fn GetLastEventInformation(&self, r#type: *mut u32, processid: *mut u32, threadid: *mut u32, extrainformation: ::core::option::Option<*mut ::core::ffi::c_void>, extrainformationsize: u32, extrainformationused: ::core::option::Option<*mut u32>, description: ::core::option::Option<&mut [u8]>, descriptionused: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetLastEventInformation)(
::windows_core::Interface::as_raw(self),
r#type,
processid,
threadid,
::core::mem::transmute(extrainformation.unwrap_or(::std::ptr::null_mut())),
extrainformationsize,
::core::mem::transmute(extrainformationused.unwrap_or(::std::ptr::null_mut())),
::core::mem::transmute(description.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
description.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(descriptionused.unwrap_or(::std::ptr::null_mut())),
)
.ok()
}
}
::windows_core::imp::interface_hierarchy!(IDebugControl, ::windows_core::IUnknown);
unsafe impl ::windows_core::Interface for IDebugControl {
type Vtable = IDebugControl_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IDebugControl {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0x5182e668_105e_416e_ad92_24ef800424ba);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugControl_Vtbl {
pub base__: ::windows_core::IUnknown_Vtbl,
pub GetInterrupt: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub SetInterrupt: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32) -> ::windows_core::HRESULT,
pub GetInterruptTimeout: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, seconds: *mut u32) -> ::windows_core::HRESULT,
pub SetInterruptTimeout: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, seconds: u32) -> ::windows_core::HRESULT,
#[cfg(feature = "Win32_Foundation")]
pub GetLogFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PSTR, buffersize: u32, filesize: *mut u32, append: *mut super::super::super::super::Foundation::BOOL) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
GetLogFile: usize,
#[cfg(feature = "Win32_Foundation")]
pub OpenLogFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, file: ::windows_core::PCSTR, append: super::super::super::super::Foundation::BOOL) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
OpenLogFile: usize,
pub CloseLogFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub GetLogMask: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: *mut u32) -> ::windows_core::HRESULT,
pub SetLogMask: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: u32) -> ::windows_core::HRESULT,
pub Input: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PSTR, buffersize: u32, inputsize: *mut u32) -> ::windows_core::HRESULT,
pub ReturnInput: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub Output: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: u32, format: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub OutputVaList: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: u32, format: ::windows_core::PCSTR, args: *const i8) -> ::windows_core::HRESULT,
pub ControlledOutput: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, mask: u32, format: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub ControlledOutputVaList: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, mask: u32, format: ::windows_core::PCSTR, args: *const i8) -> ::windows_core::HRESULT,
pub OutputPrompt: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, format: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub OutputPromptVaList: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, format: ::windows_core::PCSTR, args: *const i8) -> ::windows_core::HRESULT,
pub GetPromptText: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PSTR, buffersize: u32, textsize: *mut u32) -> ::windows_core::HRESULT,
pub OutputCurrentState: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, flags: u32) -> ::windows_core::HRESULT,
pub OutputVersionInformation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32) -> ::windows_core::HRESULT,
pub GetNotifyEventHandle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: *mut u64) -> ::windows_core::HRESULT,
pub SetNotifyEventHandle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64) -> ::windows_core::HRESULT,
pub Assemble: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, instr: ::windows_core::PCSTR, endoffset: *mut u64) -> ::windows_core::HRESULT,
pub Disassemble: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, flags: u32, buffer: ::windows_core::PSTR, buffersize: u32, disassemblysize: *mut u32, endoffset: *mut u64) -> ::windows_core::HRESULT,
pub GetDisassembleEffectiveOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows_core::HRESULT,
pub OutputDisassembly: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, offset: u64, flags: u32, endoffset: *mut u64) -> ::windows_core::HRESULT,
pub OutputDisassemblyLines: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, previouslines: u32, totallines: u32, offset: u64, flags: u32, offsetline: *mut u32, startoffset: *mut u64, endoffset: *mut u64, lineoffsets: *mut u64) -> ::windows_core::HRESULT,
pub GetNearInstruction: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, delta: i32, nearoffset: *mut u64) -> ::windows_core::HRESULT,
#[cfg(feature = "Win32_Foundation")]
pub GetStackTrace: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, frameoffset: u64, stackoffset: u64, instructionoffset: u64, frames: *mut DEBUG_STACK_FRAME, framessize: u32, framesfilled: *mut u32) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
GetStackTrace: usize,
pub GetReturnOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows_core::HRESULT,
#[cfg(feature = "Win32_Foundation")]
pub OutputStackTrace: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, frames: *const DEBUG_STACK_FRAME, framessize: u32, flags: u32) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
OutputStackTrace: usize,
pub GetDebuggeeType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, class: *mut u32, qualifier: *mut u32) -> ::windows_core::HRESULT,
pub GetActualProcessorType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: *mut u32) -> ::windows_core::HRESULT,
pub GetExecutingProcessorType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: *mut u32) -> ::windows_core::HRESULT,
pub GetNumberPossibleExecutingProcessorTypes: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows_core::HRESULT,
pub GetPossibleExecutingProcessorTypes: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, start: u32, count: u32, types: *mut u32) -> ::windows_core::HRESULT,
pub GetNumberProcessors: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows_core::HRESULT,
pub GetSystemVersion: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, platformid: *mut u32, major: *mut u32, minor: *mut u32, servicepackstring: ::windows_core::PSTR, servicepackstringsize: u32, servicepackstringused: *mut u32, servicepacknumber: *mut u32, buildstring: ::windows_core::PSTR, buildstringsize: u32, buildstringused: *mut u32) -> ::windows_core::HRESULT,
pub GetPageSize: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, size: *mut u32) -> ::windows_core::HRESULT,
pub IsPointer64Bit: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub ReadBugCheckData: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, code: *mut u32, arg1: *mut u64, arg2: *mut u64, arg3: *mut u64, arg4: *mut u64) -> ::windows_core::HRESULT,
pub GetNumberSupportedProcessorTypes: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows_core::HRESULT,
pub GetSupportedProcessorTypes: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, start: u32, count: u32, types: *mut u32) -> ::windows_core::HRESULT,
pub GetProcessorTypeNames: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: u32, fullnamebuffer: ::windows_core::PSTR, fullnamebuffersize: u32, fullnamesize: *mut u32, abbrevnamebuffer: ::windows_core::PSTR, abbrevnamebuffersize: u32, abbrevnamesize: *mut u32) -> ::windows_core::HRESULT,
pub GetEffectiveProcessorType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: *mut u32) -> ::windows_core::HRESULT,
pub SetEffectiveProcessorType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: u32) -> ::windows_core::HRESULT,
pub GetExecutionStatus: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, status: *mut u32) -> ::windows_core::HRESULT,
pub SetExecutionStatus: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, status: u32) -> ::windows_core::HRESULT,
pub GetCodeLevel: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, level: *mut u32) -> ::windows_core::HRESULT,
pub SetCodeLevel: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, level: u32) -> ::windows_core::HRESULT,
pub GetEngineOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: *mut u32) -> ::windows_core::HRESULT,
pub AddEngineOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows_core::HRESULT,
pub RemoveEngineOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows_core::HRESULT,
pub SetEngineOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows_core::HRESULT,
pub GetSystemErrorControl: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputlevel: *mut u32, breaklevel: *mut u32) -> ::windows_core::HRESULT,
pub SetSystemErrorControl: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputlevel: u32, breaklevel: u32) -> ::windows_core::HRESULT,
pub GetTextMacro: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, slot: u32, buffer: ::windows_core::PSTR, buffersize: u32, macrosize: *mut u32) -> ::windows_core::HRESULT,
pub SetTextMacro: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, slot: u32, r#macro: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub GetRadix: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, radix: *mut u32) -> ::windows_core::HRESULT,
pub SetRadix: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, radix: u32) -> ::windows_core::HRESULT,
#[cfg(feature = "Win32_Foundation")]
pub Evaluate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, expression: ::windows_core::PCSTR, desiredtype: u32, value: *mut DEBUG_VALUE, remainderindex: *mut u32) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
Evaluate: usize,
#[cfg(feature = "Win32_Foundation")]
pub CoerceValue: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#in: *const DEBUG_VALUE, outtype: u32, out: *mut DEBUG_VALUE) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
CoerceValue: usize,
#[cfg(feature = "Win32_Foundation")]
pub CoerceValues: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: u32, r#in: *const DEBUG_VALUE, outtypes: *const u32, out: *mut DEBUG_VALUE) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
CoerceValues: usize,
pub Execute: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, command: ::windows_core::PCSTR, flags: u32) -> ::windows_core::HRESULT,
pub ExecuteCommandFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, commandfile: ::windows_core::PCSTR, flags: u32) -> ::windows_core::HRESULT,
pub GetNumberBreakpoints: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows_core::HRESULT,
pub GetBreakpointByIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, bp: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub GetBreakpointById: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: u32, bp: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub GetBreakpointParameters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: u32, ids: *const u32, start: u32, params: *mut DEBUG_BREAKPOINT_PARAMETERS) -> ::windows_core::HRESULT,
pub AddBreakpoint: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: u32, desiredid: u32, bp: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub RemoveBreakpoint: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, bp: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub AddExtension: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, path: ::windows_core::PCSTR, flags: u32, handle: *mut u64) -> ::windows_core::HRESULT,
pub RemoveExtension: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64) -> ::windows_core::HRESULT,
pub GetExtensionByPath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, path: ::windows_core::PCSTR, handle: *mut u64) -> ::windows_core::HRESULT,
pub CallExtension: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64, function: ::windows_core::PCSTR, arguments: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
#[cfg(feature = "Win32_Foundation")]
pub GetExtensionFunction: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64, funcname: ::windows_core::PCSTR, function: *mut super::super::super::super::Foundation::FARPROC) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
GetExtensionFunction: usize,
#[cfg(feature = "Win32_System_Kernel")]
pub GetWindbgExtensionApis32: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, api: *mut WINDBG_EXTENSION_APIS32) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_System_Kernel"))]
GetWindbgExtensionApis32: usize,
#[cfg(feature = "Win32_System_Kernel")]
pub GetWindbgExtensionApis64: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, api: *mut WINDBG_EXTENSION_APIS64) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_System_Kernel"))]
GetWindbgExtensionApis64: usize,
pub GetNumberEventFilters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, specificevents: *mut u32, specificexceptions: *mut u32, arbitraryexceptions: *mut u32) -> ::windows_core::HRESULT,
pub GetEventFilterText: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows_core::PSTR, buffersize: u32, textsize: *mut u32) -> ::windows_core::HRESULT,
pub GetEventFilterCommand: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows_core::PSTR, buffersize: u32, commandsize: *mut u32) -> ::windows_core::HRESULT,
pub SetEventFilterCommand: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, command: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub GetSpecificFilterParameters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, start: u32, count: u32, params: *mut DEBUG_SPECIFIC_FILTER_PARAMETERS) -> ::windows_core::HRESULT,
pub SetSpecificFilterParameters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, start: u32, count: u32, params: *const DEBUG_SPECIFIC_FILTER_PARAMETERS) -> ::windows_core::HRESULT,
pub GetSpecificFilterArgument: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows_core::PSTR, buffersize: u32, argumentsize: *mut u32) -> ::windows_core::HRESULT,
pub SetSpecificFilterArgument: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, argument: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub GetExceptionFilterParameters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: u32, codes: *const u32, start: u32, params: *mut DEBUG_EXCEPTION_FILTER_PARAMETERS) -> ::windows_core::HRESULT,
pub SetExceptionFilterParameters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: u32, params: *const DEBUG_EXCEPTION_FILTER_PARAMETERS) -> ::windows_core::HRESULT,
pub GetExceptionFilterSecondCommand: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows_core::PSTR, buffersize: u32, commandsize: *mut u32) -> ::windows_core::HRESULT,
pub SetExceptionFilterSecondCommand: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, command: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub WaitForEvent: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, timeout: u32) -> ::windows_core::HRESULT,
pub GetLastEventInformation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: *mut u32, processid: *mut u32, threadid: *mut u32, extrainformation: *mut ::core::ffi::c_void, extrainformationsize: u32, extrainformationused: *mut u32, description: ::windows_core::PSTR, descriptionsize: u32, descriptionused: *mut u32) -> ::windows_core::HRESULT,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IDebugControl2(::windows_core::IUnknown);
impl IDebugControl2 {
pub unsafe fn GetInterrupt(&self) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetInterrupt)(::windows_core::Interface::as_raw(self)).ok()
}
pub unsafe fn SetInterrupt(&self, flags: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetInterrupt)(::windows_core::Interface::as_raw(self), flags).ok()
}
pub unsafe fn GetInterruptTimeout(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetInterruptTimeout)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetInterruptTimeout(&self, seconds: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetInterruptTimeout)(::windows_core::Interface::as_raw(self), seconds).ok()
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn GetLogFile(&self, buffer: ::core::option::Option<&mut [u8]>, filesize: ::core::option::Option<*mut u32>, append: *mut super::super::super::super::Foundation::BOOL) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetLogFile)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(filesize.unwrap_or(::std::ptr::null_mut())), append).ok()
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn OpenLogFile<P0, P1>(&self, file: P0, append: P1) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
P1: ::windows_core::IntoParam<super::super::super::super::Foundation::BOOL>,
{
(::windows_core::Interface::vtable(self).OpenLogFile)(::windows_core::Interface::as_raw(self), file.into_param().abi(), append.into_param().abi()).ok()
}
pub unsafe fn CloseLogFile(&self) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).CloseLogFile)(::windows_core::Interface::as_raw(self)).ok()
}
pub unsafe fn GetLogMask(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetLogMask)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetLogMask(&self, mask: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetLogMask)(::windows_core::Interface::as_raw(self), mask).ok()
}
pub unsafe fn Input(&self, buffer: &mut [u8], inputsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).Input)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_ptr()), buffer.len().try_into().unwrap(), ::core::mem::transmute(inputsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn ReturnInput<P0>(&self, buffer: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).ReturnInput)(::windows_core::Interface::as_raw(self), buffer.into_param().abi()).ok()
}
pub unsafe fn Output<P0>(&self, mask: u32, format: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).Output)(::windows_core::Interface::as_raw(self), mask, format.into_param().abi()).ok()
}
pub unsafe fn OutputVaList<P0>(&self, mask: u32, format: P0, args: *const i8) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).OutputVaList)(::windows_core::Interface::as_raw(self), mask, format.into_param().abi(), args).ok()
}
pub unsafe fn ControlledOutput<P0>(&self, outputcontrol: u32, mask: u32, format: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).ControlledOutput)(::windows_core::Interface::as_raw(self), outputcontrol, mask, format.into_param().abi()).ok()
}
pub unsafe fn ControlledOutputVaList<P0>(&self, outputcontrol: u32, mask: u32, format: P0, args: *const i8) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).ControlledOutputVaList)(::windows_core::Interface::as_raw(self), outputcontrol, mask, format.into_param().abi(), args).ok()
}
pub unsafe fn OutputPrompt<P0>(&self, outputcontrol: u32, format: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).OutputPrompt)(::windows_core::Interface::as_raw(self), outputcontrol, format.into_param().abi()).ok()
}
pub unsafe fn OutputPromptVaList<P0>(&self, outputcontrol: u32, format: P0, args: *const i8) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).OutputPromptVaList)(::windows_core::Interface::as_raw(self), outputcontrol, format.into_param().abi(), args).ok()
}
pub unsafe fn GetPromptText(&self, buffer: ::core::option::Option<&mut [u8]>, textsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetPromptText)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(textsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn OutputCurrentState(&self, outputcontrol: u32, flags: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).OutputCurrentState)(::windows_core::Interface::as_raw(self), outputcontrol, flags).ok()
}
pub unsafe fn OutputVersionInformation(&self, outputcontrol: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).OutputVersionInformation)(::windows_core::Interface::as_raw(self), outputcontrol).ok()
}
pub unsafe fn GetNotifyEventHandle(&self) -> ::windows_core::Result<u64> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetNotifyEventHandle)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetNotifyEventHandle(&self, handle: u64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetNotifyEventHandle)(::windows_core::Interface::as_raw(self), handle).ok()
}
pub unsafe fn Assemble<P0>(&self, offset: u64, instr: P0) -> ::windows_core::Result<u64>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).Assemble)(::windows_core::Interface::as_raw(self), offset, instr.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn Disassemble(&self, offset: u64, flags: u32, buffer: ::core::option::Option<&mut [u8]>, disassemblysize: ::core::option::Option<*mut u32>, endoffset: *mut u64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).Disassemble)(::windows_core::Interface::as_raw(self), offset, flags, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(disassemblysize.unwrap_or(::std::ptr::null_mut())), endoffset).ok()
}
pub unsafe fn GetDisassembleEffectiveOffset(&self) -> ::windows_core::Result<u64> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetDisassembleEffectiveOffset)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn OutputDisassembly(&self, outputcontrol: u32, offset: u64, flags: u32) -> ::windows_core::Result<u64> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).OutputDisassembly)(::windows_core::Interface::as_raw(self), outputcontrol, offset, flags, &mut result__).from_abi(result__)
}
pub unsafe fn OutputDisassemblyLines(&self, outputcontrol: u32, previouslines: u32, offset: u64, flags: u32, offsetline: ::core::option::Option<*mut u32>, startoffset: ::core::option::Option<*mut u64>, endoffset: ::core::option::Option<*mut u64>, lineoffsets: ::core::option::Option<&mut [u64]>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).OutputDisassemblyLines)(::windows_core::Interface::as_raw(self), outputcontrol, previouslines, lineoffsets.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), offset, flags, ::core::mem::transmute(offsetline.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(startoffset.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(endoffset.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(lineoffsets.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok()
}
pub unsafe fn GetNearInstruction(&self, offset: u64, delta: i32) -> ::windows_core::Result<u64> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetNearInstruction)(::windows_core::Interface::as_raw(self), offset, delta, &mut result__).from_abi(result__)
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn GetStackTrace(&self, frameoffset: u64, stackoffset: u64, instructionoffset: u64, frames: &mut [DEBUG_STACK_FRAME], framesfilled: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetStackTrace)(::windows_core::Interface::as_raw(self), frameoffset, stackoffset, instructionoffset, ::core::mem::transmute(frames.as_ptr()), frames.len().try_into().unwrap(), ::core::mem::transmute(framesfilled.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetReturnOffset(&self) -> ::windows_core::Result<u64> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetReturnOffset)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn OutputStackTrace(&self, outputcontrol: u32, frames: ::core::option::Option<&[DEBUG_STACK_FRAME]>, flags: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).OutputStackTrace)(::windows_core::Interface::as_raw(self), outputcontrol, ::core::mem::transmute(frames.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), frames.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), flags).ok()
}
pub unsafe fn GetDebuggeeType(&self, class: *mut u32, qualifier: *mut u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetDebuggeeType)(::windows_core::Interface::as_raw(self), class, qualifier).ok()
}
pub unsafe fn GetActualProcessorType(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetActualProcessorType)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetExecutingProcessorType(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetExecutingProcessorType)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetNumberPossibleExecutingProcessorTypes(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetNumberPossibleExecutingProcessorTypes)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetPossibleExecutingProcessorTypes(&self, start: u32, types: &mut [u32]) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetPossibleExecutingProcessorTypes)(::windows_core::Interface::as_raw(self), start, types.len().try_into().unwrap(), ::core::mem::transmute(types.as_ptr())).ok()
}
pub unsafe fn GetNumberProcessors(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetNumberProcessors)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetSystemVersion(&self, platformid: *mut u32, major: *mut u32, minor: *mut u32, servicepackstring: ::core::option::Option<&mut [u8]>, servicepackstringused: ::core::option::Option<*mut u32>, servicepacknumber: *mut u32, buildstring: ::core::option::Option<&mut [u8]>, buildstringused: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSystemVersion)(
::windows_core::Interface::as_raw(self),
platformid,
major,
minor,
::core::mem::transmute(servicepackstring.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
servicepackstring.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(servicepackstringused.unwrap_or(::std::ptr::null_mut())),
servicepacknumber,
::core::mem::transmute(buildstring.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
buildstring.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(buildstringused.unwrap_or(::std::ptr::null_mut())),
)
.ok()
}
pub unsafe fn GetPageSize(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetPageSize)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn IsPointer64Bit(&self) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).IsPointer64Bit)(::windows_core::Interface::as_raw(self)).ok()
}
pub unsafe fn ReadBugCheckData(&self, code: *mut u32, arg1: *mut u64, arg2: *mut u64, arg3: *mut u64, arg4: *mut u64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).ReadBugCheckData)(::windows_core::Interface::as_raw(self), code, arg1, arg2, arg3, arg4).ok()
}
pub unsafe fn GetNumberSupportedProcessorTypes(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetNumberSupportedProcessorTypes)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetSupportedProcessorTypes(&self, start: u32, types: &mut [u32]) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSupportedProcessorTypes)(::windows_core::Interface::as_raw(self), start, types.len().try_into().unwrap(), ::core::mem::transmute(types.as_ptr())).ok()
}
pub unsafe fn GetProcessorTypeNames(&self, r#type: u32, fullnamebuffer: ::core::option::Option<&mut [u8]>, fullnamesize: ::core::option::Option<*mut u32>, abbrevnamebuffer: ::core::option::Option<&mut [u8]>, abbrevnamesize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetProcessorTypeNames)(
::windows_core::Interface::as_raw(self),
r#type,
::core::mem::transmute(fullnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
fullnamebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(fullnamesize.unwrap_or(::std::ptr::null_mut())),
::core::mem::transmute(abbrevnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
abbrevnamebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(abbrevnamesize.unwrap_or(::std::ptr::null_mut())),
)
.ok()
}
pub unsafe fn GetEffectiveProcessorType(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetEffectiveProcessorType)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetEffectiveProcessorType(&self, r#type: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetEffectiveProcessorType)(::windows_core::Interface::as_raw(self), r#type).ok()
}
pub unsafe fn GetExecutionStatus(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetExecutionStatus)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetExecutionStatus(&self, status: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetExecutionStatus)(::windows_core::Interface::as_raw(self), status).ok()
}
pub unsafe fn GetCodeLevel(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetCodeLevel)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetCodeLevel(&self, level: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetCodeLevel)(::windows_core::Interface::as_raw(self), level).ok()
}
pub unsafe fn GetEngineOptions(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetEngineOptions)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn AddEngineOptions(&self, options: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).AddEngineOptions)(::windows_core::Interface::as_raw(self), options).ok()
}
pub unsafe fn RemoveEngineOptions(&self, options: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).RemoveEngineOptions)(::windows_core::Interface::as_raw(self), options).ok()
}
pub unsafe fn SetEngineOptions(&self, options: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetEngineOptions)(::windows_core::Interface::as_raw(self), options).ok()
}
pub unsafe fn GetSystemErrorControl(&self, outputlevel: *mut u32, breaklevel: *mut u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSystemErrorControl)(::windows_core::Interface::as_raw(self), outputlevel, breaklevel).ok()
}
pub unsafe fn SetSystemErrorControl(&self, outputlevel: u32, breaklevel: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetSystemErrorControl)(::windows_core::Interface::as_raw(self), outputlevel, breaklevel).ok()
}
pub unsafe fn GetTextMacro(&self, slot: u32, buffer: ::core::option::Option<&mut [u8]>, macrosize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetTextMacro)(::windows_core::Interface::as_raw(self), slot, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(macrosize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetTextMacro<P0>(&self, slot: u32, r#macro: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).SetTextMacro)(::windows_core::Interface::as_raw(self), slot, r#macro.into_param().abi()).ok()
}
pub unsafe fn GetRadix(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetRadix)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetRadix(&self, radix: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetRadix)(::windows_core::Interface::as_raw(self), radix).ok()
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn Evaluate<P0>(&self, expression: P0, desiredtype: u32, value: *mut DEBUG_VALUE, remainderindex: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).Evaluate)(::windows_core::Interface::as_raw(self), expression.into_param().abi(), desiredtype, value, ::core::mem::transmute(remainderindex.unwrap_or(::std::ptr::null_mut()))).ok()
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn CoerceValue(&self, r#in: *const DEBUG_VALUE, outtype: u32, out: *mut DEBUG_VALUE) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).CoerceValue)(::windows_core::Interface::as_raw(self), r#in, outtype, out).ok()
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn CoerceValues(&self, count: u32, r#in: *const DEBUG_VALUE, outtypes: *const u32, out: *mut DEBUG_VALUE) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).CoerceValues)(::windows_core::Interface::as_raw(self), count, r#in, outtypes, out).ok()
}
pub unsafe fn Execute<P0>(&self, outputcontrol: u32, command: P0, flags: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).Execute)(::windows_core::Interface::as_raw(self), outputcontrol, command.into_param().abi(), flags).ok()
}
pub unsafe fn ExecuteCommandFile<P0>(&self, outputcontrol: u32, commandfile: P0, flags: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).ExecuteCommandFile)(::windows_core::Interface::as_raw(self), outputcontrol, commandfile.into_param().abi(), flags).ok()
}
pub unsafe fn GetNumberBreakpoints(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetNumberBreakpoints)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetBreakpointByIndex(&self, index: u32) -> ::windows_core::Result<IDebugBreakpoint> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetBreakpointByIndex)(::windows_core::Interface::as_raw(self), index, &mut result__).from_abi(result__)
}
pub unsafe fn GetBreakpointById(&self, id: u32) -> ::windows_core::Result<IDebugBreakpoint> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetBreakpointById)(::windows_core::Interface::as_raw(self), id, &mut result__).from_abi(result__)
}
pub unsafe fn GetBreakpointParameters(&self, count: u32, ids: ::core::option::Option<*const u32>, start: u32, params: *mut DEBUG_BREAKPOINT_PARAMETERS) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetBreakpointParameters)(::windows_core::Interface::as_raw(self), count, ::core::mem::transmute(ids.unwrap_or(::std::ptr::null())), start, params).ok()
}
pub unsafe fn AddBreakpoint(&self, r#type: u32, desiredid: u32) -> ::windows_core::Result<IDebugBreakpoint> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).AddBreakpoint)(::windows_core::Interface::as_raw(self), r#type, desiredid, &mut result__).from_abi(result__)
}
pub unsafe fn RemoveBreakpoint<P0>(&self, bp: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IDebugBreakpoint>,
{
(::windows_core::Interface::vtable(self).RemoveBreakpoint)(::windows_core::Interface::as_raw(self), bp.into_param().abi()).ok()
}
pub unsafe fn AddExtension<P0>(&self, path: P0, flags: u32) -> ::windows_core::Result<u64>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).AddExtension)(::windows_core::Interface::as_raw(self), path.into_param().abi(), flags, &mut result__).from_abi(result__)
}
pub unsafe fn RemoveExtension(&self, handle: u64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).RemoveExtension)(::windows_core::Interface::as_raw(self), handle).ok()
}
pub unsafe fn GetExtensionByPath<P0>(&self, path: P0) -> ::windows_core::Result<u64>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetExtensionByPath)(::windows_core::Interface::as_raw(self), path.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn CallExtension<P0, P1>(&self, handle: u64, function: P0, arguments: P1) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
P1: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).CallExtension)(::windows_core::Interface::as_raw(self), handle, function.into_param().abi(), arguments.into_param().abi()).ok()
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn GetExtensionFunction<P0>(&self, handle: u64, funcname: P0, function: *mut super::super::super::super::Foundation::FARPROC) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).GetExtensionFunction)(::windows_core::Interface::as_raw(self), handle, funcname.into_param().abi(), function).ok()
}
#[doc = "Required features: `\"Win32_System_Kernel\"`"]
#[cfg(feature = "Win32_System_Kernel")]
pub unsafe fn GetWindbgExtensionApis32(&self, api: *mut WINDBG_EXTENSION_APIS32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetWindbgExtensionApis32)(::windows_core::Interface::as_raw(self), api).ok()
}
#[doc = "Required features: `\"Win32_System_Kernel\"`"]
#[cfg(feature = "Win32_System_Kernel")]
pub unsafe fn GetWindbgExtensionApis64(&self, api: *mut WINDBG_EXTENSION_APIS64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetWindbgExtensionApis64)(::windows_core::Interface::as_raw(self), api).ok()
}
pub unsafe fn GetNumberEventFilters(&self, specificevents: *mut u32, specificexceptions: *mut u32, arbitraryexceptions: *mut u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetNumberEventFilters)(::windows_core::Interface::as_raw(self), specificevents, specificexceptions, arbitraryexceptions).ok()
}
pub unsafe fn GetEventFilterText(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, textsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetEventFilterText)(::windows_core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(textsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetEventFilterCommand(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, commandsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetEventFilterCommand)(::windows_core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(commandsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetEventFilterCommand<P0>(&self, index: u32, command: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).SetEventFilterCommand)(::windows_core::Interface::as_raw(self), index, command.into_param().abi()).ok()
}
pub unsafe fn GetSpecificFilterParameters(&self, start: u32, params: &mut [DEBUG_SPECIFIC_FILTER_PARAMETERS]) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSpecificFilterParameters)(::windows_core::Interface::as_raw(self), start, params.len().try_into().unwrap(), ::core::mem::transmute(params.as_ptr())).ok()
}
pub unsafe fn SetSpecificFilterParameters(&self, start: u32, params: &[DEBUG_SPECIFIC_FILTER_PARAMETERS]) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetSpecificFilterParameters)(::windows_core::Interface::as_raw(self), start, params.len().try_into().unwrap(), ::core::mem::transmute(params.as_ptr())).ok()
}
pub unsafe fn GetSpecificFilterArgument(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, argumentsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSpecificFilterArgument)(::windows_core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(argumentsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetSpecificFilterArgument<P0>(&self, index: u32, argument: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).SetSpecificFilterArgument)(::windows_core::Interface::as_raw(self), index, argument.into_param().abi()).ok()
}
pub unsafe fn GetExceptionFilterParameters(&self, count: u32, codes: ::core::option::Option<*const u32>, start: u32, params: *mut DEBUG_EXCEPTION_FILTER_PARAMETERS) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetExceptionFilterParameters)(::windows_core::Interface::as_raw(self), count, ::core::mem::transmute(codes.unwrap_or(::std::ptr::null())), start, params).ok()
}
pub unsafe fn SetExceptionFilterParameters(&self, params: &[DEBUG_EXCEPTION_FILTER_PARAMETERS]) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetExceptionFilterParameters)(::windows_core::Interface::as_raw(self), params.len().try_into().unwrap(), ::core::mem::transmute(params.as_ptr())).ok()
}
pub unsafe fn GetExceptionFilterSecondCommand(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, commandsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetExceptionFilterSecondCommand)(::windows_core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(commandsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetExceptionFilterSecondCommand<P0>(&self, index: u32, command: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).SetExceptionFilterSecondCommand)(::windows_core::Interface::as_raw(self), index, command.into_param().abi()).ok()
}
pub unsafe fn WaitForEvent(&self, flags: u32, timeout: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).WaitForEvent)(::windows_core::Interface::as_raw(self), flags, timeout).ok()
}
pub unsafe fn GetLastEventInformation(&self, r#type: *mut u32, processid: *mut u32, threadid: *mut u32, extrainformation: ::core::option::Option<*mut ::core::ffi::c_void>, extrainformationsize: u32, extrainformationused: ::core::option::Option<*mut u32>, description: ::core::option::Option<&mut [u8]>, descriptionused: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetLastEventInformation)(
::windows_core::Interface::as_raw(self),
r#type,
processid,
threadid,
::core::mem::transmute(extrainformation.unwrap_or(::std::ptr::null_mut())),
extrainformationsize,
::core::mem::transmute(extrainformationused.unwrap_or(::std::ptr::null_mut())),
::core::mem::transmute(description.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
description.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(descriptionused.unwrap_or(::std::ptr::null_mut())),
)
.ok()
}
pub unsafe fn GetCurrentTimeDate(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetCurrentTimeDate)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetCurrentSystemUpTime(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetCurrentSystemUpTime)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetDumpFormatFlags(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetDumpFormatFlags)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetNumberTextReplacements(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetNumberTextReplacements)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetTextReplacement<P0>(&self, srctext: P0, index: u32, srcbuffer: ::core::option::Option<&mut [u8]>, srcsize: ::core::option::Option<*mut u32>, dstbuffer: ::core::option::Option<&mut [u8]>, dstsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).GetTextReplacement)(
::windows_core::Interface::as_raw(self),
srctext.into_param().abi(),
index,
::core::mem::transmute(srcbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
srcbuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(srcsize.unwrap_or(::std::ptr::null_mut())),
::core::mem::transmute(dstbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
dstbuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(dstsize.unwrap_or(::std::ptr::null_mut())),
)
.ok()
}
pub unsafe fn SetTextReplacement<P0, P1>(&self, srctext: P0, dsttext: P1) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
P1: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).SetTextReplacement)(::windows_core::Interface::as_raw(self), srctext.into_param().abi(), dsttext.into_param().abi()).ok()
}
pub unsafe fn RemoveTextReplacements(&self) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).RemoveTextReplacements)(::windows_core::Interface::as_raw(self)).ok()
}
pub unsafe fn OutputTextReplacements(&self, outputcontrol: u32, flags: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).OutputTextReplacements)(::windows_core::Interface::as_raw(self), outputcontrol, flags).ok()
}
}
::windows_core::imp::interface_hierarchy!(IDebugControl2, ::windows_core::IUnknown);
unsafe impl ::windows_core::Interface for IDebugControl2 {
type Vtable = IDebugControl2_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IDebugControl2 {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0xd4366723_44df_4bed_8c7e_4c05424f4588);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugControl2_Vtbl {
pub base__: ::windows_core::IUnknown_Vtbl,
pub GetInterrupt: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub SetInterrupt: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32) -> ::windows_core::HRESULT,
pub GetInterruptTimeout: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, seconds: *mut u32) -> ::windows_core::HRESULT,
pub SetInterruptTimeout: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, seconds: u32) -> ::windows_core::HRESULT,
#[cfg(feature = "Win32_Foundation")]
pub GetLogFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PSTR, buffersize: u32, filesize: *mut u32, append: *mut super::super::super::super::Foundation::BOOL) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
GetLogFile: usize,
#[cfg(feature = "Win32_Foundation")]
pub OpenLogFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, file: ::windows_core::PCSTR, append: super::super::super::super::Foundation::BOOL) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
OpenLogFile: usize,
pub CloseLogFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub GetLogMask: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: *mut u32) -> ::windows_core::HRESULT,
pub SetLogMask: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: u32) -> ::windows_core::HRESULT,
pub Input: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PSTR, buffersize: u32, inputsize: *mut u32) -> ::windows_core::HRESULT,
pub ReturnInput: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub Output: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: u32, format: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub OutputVaList: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: u32, format: ::windows_core::PCSTR, args: *const i8) -> ::windows_core::HRESULT,
pub ControlledOutput: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, mask: u32, format: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub ControlledOutputVaList: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, mask: u32, format: ::windows_core::PCSTR, args: *const i8) -> ::windows_core::HRESULT,
pub OutputPrompt: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, format: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub OutputPromptVaList: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, format: ::windows_core::PCSTR, args: *const i8) -> ::windows_core::HRESULT,
pub GetPromptText: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PSTR, buffersize: u32, textsize: *mut u32) -> ::windows_core::HRESULT,
pub OutputCurrentState: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, flags: u32) -> ::windows_core::HRESULT,
pub OutputVersionInformation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32) -> ::windows_core::HRESULT,
pub GetNotifyEventHandle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: *mut u64) -> ::windows_core::HRESULT,
pub SetNotifyEventHandle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64) -> ::windows_core::HRESULT,
pub Assemble: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, instr: ::windows_core::PCSTR, endoffset: *mut u64) -> ::windows_core::HRESULT,
pub Disassemble: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, flags: u32, buffer: ::windows_core::PSTR, buffersize: u32, disassemblysize: *mut u32, endoffset: *mut u64) -> ::windows_core::HRESULT,
pub GetDisassembleEffectiveOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows_core::HRESULT,
pub OutputDisassembly: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, offset: u64, flags: u32, endoffset: *mut u64) -> ::windows_core::HRESULT,
pub OutputDisassemblyLines: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, previouslines: u32, totallines: u32, offset: u64, flags: u32, offsetline: *mut u32, startoffset: *mut u64, endoffset: *mut u64, lineoffsets: *mut u64) -> ::windows_core::HRESULT,
pub GetNearInstruction: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, delta: i32, nearoffset: *mut u64) -> ::windows_core::HRESULT,
#[cfg(feature = "Win32_Foundation")]
pub GetStackTrace: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, frameoffset: u64, stackoffset: u64, instructionoffset: u64, frames: *mut DEBUG_STACK_FRAME, framessize: u32, framesfilled: *mut u32) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
GetStackTrace: usize,
pub GetReturnOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows_core::HRESULT,
#[cfg(feature = "Win32_Foundation")]
pub OutputStackTrace: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, frames: *const DEBUG_STACK_FRAME, framessize: u32, flags: u32) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
OutputStackTrace: usize,
pub GetDebuggeeType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, class: *mut u32, qualifier: *mut u32) -> ::windows_core::HRESULT,
pub GetActualProcessorType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: *mut u32) -> ::windows_core::HRESULT,
pub GetExecutingProcessorType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: *mut u32) -> ::windows_core::HRESULT,
pub GetNumberPossibleExecutingProcessorTypes: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows_core::HRESULT,
pub GetPossibleExecutingProcessorTypes: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, start: u32, count: u32, types: *mut u32) -> ::windows_core::HRESULT,
pub GetNumberProcessors: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows_core::HRESULT,
pub GetSystemVersion: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, platformid: *mut u32, major: *mut u32, minor: *mut u32, servicepackstring: ::windows_core::PSTR, servicepackstringsize: u32, servicepackstringused: *mut u32, servicepacknumber: *mut u32, buildstring: ::windows_core::PSTR, buildstringsize: u32, buildstringused: *mut u32) -> ::windows_core::HRESULT,
pub GetPageSize: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, size: *mut u32) -> ::windows_core::HRESULT,
pub IsPointer64Bit: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub ReadBugCheckData: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, code: *mut u32, arg1: *mut u64, arg2: *mut u64, arg3: *mut u64, arg4: *mut u64) -> ::windows_core::HRESULT,
pub GetNumberSupportedProcessorTypes: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows_core::HRESULT,
pub GetSupportedProcessorTypes: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, start: u32, count: u32, types: *mut u32) -> ::windows_core::HRESULT,
pub GetProcessorTypeNames: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: u32, fullnamebuffer: ::windows_core::PSTR, fullnamebuffersize: u32, fullnamesize: *mut u32, abbrevnamebuffer: ::windows_core::PSTR, abbrevnamebuffersize: u32, abbrevnamesize: *mut u32) -> ::windows_core::HRESULT,
pub GetEffectiveProcessorType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: *mut u32) -> ::windows_core::HRESULT,
pub SetEffectiveProcessorType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: u32) -> ::windows_core::HRESULT,
pub GetExecutionStatus: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, status: *mut u32) -> ::windows_core::HRESULT,
pub SetExecutionStatus: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, status: u32) -> ::windows_core::HRESULT,
pub GetCodeLevel: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, level: *mut u32) -> ::windows_core::HRESULT,
pub SetCodeLevel: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, level: u32) -> ::windows_core::HRESULT,
pub GetEngineOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: *mut u32) -> ::windows_core::HRESULT,
pub AddEngineOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows_core::HRESULT,
pub RemoveEngineOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows_core::HRESULT,
pub SetEngineOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows_core::HRESULT,
pub GetSystemErrorControl: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputlevel: *mut u32, breaklevel: *mut u32) -> ::windows_core::HRESULT,
pub SetSystemErrorControl: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputlevel: u32, breaklevel: u32) -> ::windows_core::HRESULT,
pub GetTextMacro: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, slot: u32, buffer: ::windows_core::PSTR, buffersize: u32, macrosize: *mut u32) -> ::windows_core::HRESULT,
pub SetTextMacro: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, slot: u32, r#macro: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub GetRadix: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, radix: *mut u32) -> ::windows_core::HRESULT,
pub SetRadix: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, radix: u32) -> ::windows_core::HRESULT,
#[cfg(feature = "Win32_Foundation")]
pub Evaluate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, expression: ::windows_core::PCSTR, desiredtype: u32, value: *mut DEBUG_VALUE, remainderindex: *mut u32) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
Evaluate: usize,
#[cfg(feature = "Win32_Foundation")]
pub CoerceValue: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#in: *const DEBUG_VALUE, outtype: u32, out: *mut DEBUG_VALUE) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
CoerceValue: usize,
#[cfg(feature = "Win32_Foundation")]
pub CoerceValues: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: u32, r#in: *const DEBUG_VALUE, outtypes: *const u32, out: *mut DEBUG_VALUE) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
CoerceValues: usize,
pub Execute: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, command: ::windows_core::PCSTR, flags: u32) -> ::windows_core::HRESULT,
pub ExecuteCommandFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, commandfile: ::windows_core::PCSTR, flags: u32) -> ::windows_core::HRESULT,
pub GetNumberBreakpoints: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows_core::HRESULT,
pub GetBreakpointByIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, bp: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub GetBreakpointById: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: u32, bp: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub GetBreakpointParameters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: u32, ids: *const u32, start: u32, params: *mut DEBUG_BREAKPOINT_PARAMETERS) -> ::windows_core::HRESULT,
pub AddBreakpoint: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: u32, desiredid: u32, bp: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub RemoveBreakpoint: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, bp: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub AddExtension: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, path: ::windows_core::PCSTR, flags: u32, handle: *mut u64) -> ::windows_core::HRESULT,
pub RemoveExtension: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64) -> ::windows_core::HRESULT,
pub GetExtensionByPath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, path: ::windows_core::PCSTR, handle: *mut u64) -> ::windows_core::HRESULT,
pub CallExtension: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64, function: ::windows_core::PCSTR, arguments: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
#[cfg(feature = "Win32_Foundation")]
pub GetExtensionFunction: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64, funcname: ::windows_core::PCSTR, function: *mut super::super::super::super::Foundation::FARPROC) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
GetExtensionFunction: usize,
#[cfg(feature = "Win32_System_Kernel")]
pub GetWindbgExtensionApis32: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, api: *mut WINDBG_EXTENSION_APIS32) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_System_Kernel"))]
GetWindbgExtensionApis32: usize,
#[cfg(feature = "Win32_System_Kernel")]
pub GetWindbgExtensionApis64: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, api: *mut WINDBG_EXTENSION_APIS64) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_System_Kernel"))]
GetWindbgExtensionApis64: usize,
pub GetNumberEventFilters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, specificevents: *mut u32, specificexceptions: *mut u32, arbitraryexceptions: *mut u32) -> ::windows_core::HRESULT,
pub GetEventFilterText: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows_core::PSTR, buffersize: u32, textsize: *mut u32) -> ::windows_core::HRESULT,
pub GetEventFilterCommand: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows_core::PSTR, buffersize: u32, commandsize: *mut u32) -> ::windows_core::HRESULT,
pub SetEventFilterCommand: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, command: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub GetSpecificFilterParameters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, start: u32, count: u32, params: *mut DEBUG_SPECIFIC_FILTER_PARAMETERS) -> ::windows_core::HRESULT,
pub SetSpecificFilterParameters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, start: u32, count: u32, params: *const DEBUG_SPECIFIC_FILTER_PARAMETERS) -> ::windows_core::HRESULT,
pub GetSpecificFilterArgument: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows_core::PSTR, buffersize: u32, argumentsize: *mut u32) -> ::windows_core::HRESULT,
pub SetSpecificFilterArgument: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, argument: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub GetExceptionFilterParameters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: u32, codes: *const u32, start: u32, params: *mut DEBUG_EXCEPTION_FILTER_PARAMETERS) -> ::windows_core::HRESULT,
pub SetExceptionFilterParameters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: u32, params: *const DEBUG_EXCEPTION_FILTER_PARAMETERS) -> ::windows_core::HRESULT,
pub GetExceptionFilterSecondCommand: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows_core::PSTR, buffersize: u32, commandsize: *mut u32) -> ::windows_core::HRESULT,
pub SetExceptionFilterSecondCommand: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, command: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub WaitForEvent: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, timeout: u32) -> ::windows_core::HRESULT,
pub GetLastEventInformation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: *mut u32, processid: *mut u32, threadid: *mut u32, extrainformation: *mut ::core::ffi::c_void, extrainformationsize: u32, extrainformationused: *mut u32, description: ::windows_core::PSTR, descriptionsize: u32, descriptionused: *mut u32) -> ::windows_core::HRESULT,
pub GetCurrentTimeDate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, timedate: *mut u32) -> ::windows_core::HRESULT,
pub GetCurrentSystemUpTime: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, uptime: *mut u32) -> ::windows_core::HRESULT,
pub GetDumpFormatFlags: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, formatflags: *mut u32) -> ::windows_core::HRESULT,
pub GetNumberTextReplacements: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, numrepl: *mut u32) -> ::windows_core::HRESULT,
pub GetTextReplacement: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, srctext: ::windows_core::PCSTR, index: u32, srcbuffer: ::windows_core::PSTR, srcbuffersize: u32, srcsize: *mut u32, dstbuffer: ::windows_core::PSTR, dstbuffersize: u32, dstsize: *mut u32) -> ::windows_core::HRESULT,
pub SetTextReplacement: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, srctext: ::windows_core::PCSTR, dsttext: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub RemoveTextReplacements: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub OutputTextReplacements: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, flags: u32) -> ::windows_core::HRESULT,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IDebugControl3(::windows_core::IUnknown);
impl IDebugControl3 {
pub unsafe fn GetInterrupt(&self) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetInterrupt)(::windows_core::Interface::as_raw(self)).ok()
}
pub unsafe fn SetInterrupt(&self, flags: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetInterrupt)(::windows_core::Interface::as_raw(self), flags).ok()
}
pub unsafe fn GetInterruptTimeout(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetInterruptTimeout)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetInterruptTimeout(&self, seconds: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetInterruptTimeout)(::windows_core::Interface::as_raw(self), seconds).ok()
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn GetLogFile(&self, buffer: ::core::option::Option<&mut [u8]>, filesize: ::core::option::Option<*mut u32>, append: *mut super::super::super::super::Foundation::BOOL) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetLogFile)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(filesize.unwrap_or(::std::ptr::null_mut())), append).ok()
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn OpenLogFile<P0, P1>(&self, file: P0, append: P1) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
P1: ::windows_core::IntoParam<super::super::super::super::Foundation::BOOL>,
{
(::windows_core::Interface::vtable(self).OpenLogFile)(::windows_core::Interface::as_raw(self), file.into_param().abi(), append.into_param().abi()).ok()
}
pub unsafe fn CloseLogFile(&self) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).CloseLogFile)(::windows_core::Interface::as_raw(self)).ok()
}
pub unsafe fn GetLogMask(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetLogMask)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetLogMask(&self, mask: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetLogMask)(::windows_core::Interface::as_raw(self), mask).ok()
}
pub unsafe fn Input(&self, buffer: &mut [u8], inputsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).Input)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_ptr()), buffer.len().try_into().unwrap(), ::core::mem::transmute(inputsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn ReturnInput<P0>(&self, buffer: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).ReturnInput)(::windows_core::Interface::as_raw(self), buffer.into_param().abi()).ok()
}
pub unsafe fn Output<P0>(&self, mask: u32, format: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).Output)(::windows_core::Interface::as_raw(self), mask, format.into_param().abi()).ok()
}
pub unsafe fn OutputVaList<P0>(&self, mask: u32, format: P0, args: *const i8) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).OutputVaList)(::windows_core::Interface::as_raw(self), mask, format.into_param().abi(), args).ok()
}
pub unsafe fn ControlledOutput<P0>(&self, outputcontrol: u32, mask: u32, format: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).ControlledOutput)(::windows_core::Interface::as_raw(self), outputcontrol, mask, format.into_param().abi()).ok()
}
pub unsafe fn ControlledOutputVaList<P0>(&self, outputcontrol: u32, mask: u32, format: P0, args: *const i8) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).ControlledOutputVaList)(::windows_core::Interface::as_raw(self), outputcontrol, mask, format.into_param().abi(), args).ok()
}
pub unsafe fn OutputPrompt<P0>(&self, outputcontrol: u32, format: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).OutputPrompt)(::windows_core::Interface::as_raw(self), outputcontrol, format.into_param().abi()).ok()
}
pub unsafe fn OutputPromptVaList<P0>(&self, outputcontrol: u32, format: P0, args: *const i8) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).OutputPromptVaList)(::windows_core::Interface::as_raw(self), outputcontrol, format.into_param().abi(), args).ok()
}
pub unsafe fn GetPromptText(&self, buffer: ::core::option::Option<&mut [u8]>, textsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetPromptText)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(textsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn OutputCurrentState(&self, outputcontrol: u32, flags: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).OutputCurrentState)(::windows_core::Interface::as_raw(self), outputcontrol, flags).ok()
}
pub unsafe fn OutputVersionInformation(&self, outputcontrol: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).OutputVersionInformation)(::windows_core::Interface::as_raw(self), outputcontrol).ok()
}
pub unsafe fn GetNotifyEventHandle(&self) -> ::windows_core::Result<u64> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetNotifyEventHandle)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetNotifyEventHandle(&self, handle: u64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetNotifyEventHandle)(::windows_core::Interface::as_raw(self), handle).ok()
}
pub unsafe fn Assemble<P0>(&self, offset: u64, instr: P0) -> ::windows_core::Result<u64>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).Assemble)(::windows_core::Interface::as_raw(self), offset, instr.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn Disassemble(&self, offset: u64, flags: u32, buffer: ::core::option::Option<&mut [u8]>, disassemblysize: ::core::option::Option<*mut u32>, endoffset: *mut u64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).Disassemble)(::windows_core::Interface::as_raw(self), offset, flags, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(disassemblysize.unwrap_or(::std::ptr::null_mut())), endoffset).ok()
}
pub unsafe fn GetDisassembleEffectiveOffset(&self) -> ::windows_core::Result<u64> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetDisassembleEffectiveOffset)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn OutputDisassembly(&self, outputcontrol: u32, offset: u64, flags: u32) -> ::windows_core::Result<u64> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).OutputDisassembly)(::windows_core::Interface::as_raw(self), outputcontrol, offset, flags, &mut result__).from_abi(result__)
}
pub unsafe fn OutputDisassemblyLines(&self, outputcontrol: u32, previouslines: u32, offset: u64, flags: u32, offsetline: ::core::option::Option<*mut u32>, startoffset: ::core::option::Option<*mut u64>, endoffset: ::core::option::Option<*mut u64>, lineoffsets: ::core::option::Option<&mut [u64]>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).OutputDisassemblyLines)(::windows_core::Interface::as_raw(self), outputcontrol, previouslines, lineoffsets.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), offset, flags, ::core::mem::transmute(offsetline.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(startoffset.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(endoffset.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(lineoffsets.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok()
}
pub unsafe fn GetNearInstruction(&self, offset: u64, delta: i32) -> ::windows_core::Result<u64> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetNearInstruction)(::windows_core::Interface::as_raw(self), offset, delta, &mut result__).from_abi(result__)
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn GetStackTrace(&self, frameoffset: u64, stackoffset: u64, instructionoffset: u64, frames: &mut [DEBUG_STACK_FRAME], framesfilled: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetStackTrace)(::windows_core::Interface::as_raw(self), frameoffset, stackoffset, instructionoffset, ::core::mem::transmute(frames.as_ptr()), frames.len().try_into().unwrap(), ::core::mem::transmute(framesfilled.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetReturnOffset(&self) -> ::windows_core::Result<u64> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetReturnOffset)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn OutputStackTrace(&self, outputcontrol: u32, frames: ::core::option::Option<&[DEBUG_STACK_FRAME]>, flags: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).OutputStackTrace)(::windows_core::Interface::as_raw(self), outputcontrol, ::core::mem::transmute(frames.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), frames.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), flags).ok()
}
pub unsafe fn GetDebuggeeType(&self, class: *mut u32, qualifier: *mut u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetDebuggeeType)(::windows_core::Interface::as_raw(self), class, qualifier).ok()
}
pub unsafe fn GetActualProcessorType(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetActualProcessorType)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetExecutingProcessorType(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetExecutingProcessorType)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetNumberPossibleExecutingProcessorTypes(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetNumberPossibleExecutingProcessorTypes)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetPossibleExecutingProcessorTypes(&self, start: u32, types: &mut [u32]) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetPossibleExecutingProcessorTypes)(::windows_core::Interface::as_raw(self), start, types.len().try_into().unwrap(), ::core::mem::transmute(types.as_ptr())).ok()
}
pub unsafe fn GetNumberProcessors(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetNumberProcessors)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetSystemVersion(&self, platformid: *mut u32, major: *mut u32, minor: *mut u32, servicepackstring: ::core::option::Option<&mut [u8]>, servicepackstringused: ::core::option::Option<*mut u32>, servicepacknumber: *mut u32, buildstring: ::core::option::Option<&mut [u8]>, buildstringused: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSystemVersion)(
::windows_core::Interface::as_raw(self),
platformid,
major,
minor,
::core::mem::transmute(servicepackstring.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
servicepackstring.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(servicepackstringused.unwrap_or(::std::ptr::null_mut())),
servicepacknumber,
::core::mem::transmute(buildstring.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
buildstring.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(buildstringused.unwrap_or(::std::ptr::null_mut())),
)
.ok()
}
pub unsafe fn GetPageSize(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetPageSize)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn IsPointer64Bit(&self) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).IsPointer64Bit)(::windows_core::Interface::as_raw(self)).ok()
}
pub unsafe fn ReadBugCheckData(&self, code: *mut u32, arg1: *mut u64, arg2: *mut u64, arg3: *mut u64, arg4: *mut u64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).ReadBugCheckData)(::windows_core::Interface::as_raw(self), code, arg1, arg2, arg3, arg4).ok()
}
pub unsafe fn GetNumberSupportedProcessorTypes(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetNumberSupportedProcessorTypes)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetSupportedProcessorTypes(&self, start: u32, types: &mut [u32]) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSupportedProcessorTypes)(::windows_core::Interface::as_raw(self), start, types.len().try_into().unwrap(), ::core::mem::transmute(types.as_ptr())).ok()
}
pub unsafe fn GetProcessorTypeNames(&self, r#type: u32, fullnamebuffer: ::core::option::Option<&mut [u8]>, fullnamesize: ::core::option::Option<*mut u32>, abbrevnamebuffer: ::core::option::Option<&mut [u8]>, abbrevnamesize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetProcessorTypeNames)(
::windows_core::Interface::as_raw(self),
r#type,
::core::mem::transmute(fullnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
fullnamebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(fullnamesize.unwrap_or(::std::ptr::null_mut())),
::core::mem::transmute(abbrevnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
abbrevnamebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(abbrevnamesize.unwrap_or(::std::ptr::null_mut())),
)
.ok()
}
pub unsafe fn GetEffectiveProcessorType(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetEffectiveProcessorType)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetEffectiveProcessorType(&self, r#type: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetEffectiveProcessorType)(::windows_core::Interface::as_raw(self), r#type).ok()
}
pub unsafe fn GetExecutionStatus(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetExecutionStatus)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetExecutionStatus(&self, status: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetExecutionStatus)(::windows_core::Interface::as_raw(self), status).ok()
}
pub unsafe fn GetCodeLevel(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetCodeLevel)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetCodeLevel(&self, level: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetCodeLevel)(::windows_core::Interface::as_raw(self), level).ok()
}
pub unsafe fn GetEngineOptions(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetEngineOptions)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn AddEngineOptions(&self, options: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).AddEngineOptions)(::windows_core::Interface::as_raw(self), options).ok()
}
pub unsafe fn RemoveEngineOptions(&self, options: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).RemoveEngineOptions)(::windows_core::Interface::as_raw(self), options).ok()
}
pub unsafe fn SetEngineOptions(&self, options: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetEngineOptions)(::windows_core::Interface::as_raw(self), options).ok()
}
pub unsafe fn GetSystemErrorControl(&self, outputlevel: *mut u32, breaklevel: *mut u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSystemErrorControl)(::windows_core::Interface::as_raw(self), outputlevel, breaklevel).ok()
}
pub unsafe fn SetSystemErrorControl(&self, outputlevel: u32, breaklevel: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetSystemErrorControl)(::windows_core::Interface::as_raw(self), outputlevel, breaklevel).ok()
}
pub unsafe fn GetTextMacro(&self, slot: u32, buffer: ::core::option::Option<&mut [u8]>, macrosize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetTextMacro)(::windows_core::Interface::as_raw(self), slot, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(macrosize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetTextMacro<P0>(&self, slot: u32, r#macro: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).SetTextMacro)(::windows_core::Interface::as_raw(self), slot, r#macro.into_param().abi()).ok()
}
pub unsafe fn GetRadix(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetRadix)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetRadix(&self, radix: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetRadix)(::windows_core::Interface::as_raw(self), radix).ok()
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn Evaluate<P0>(&self, expression: P0, desiredtype: u32, value: *mut DEBUG_VALUE, remainderindex: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).Evaluate)(::windows_core::Interface::as_raw(self), expression.into_param().abi(), desiredtype, value, ::core::mem::transmute(remainderindex.unwrap_or(::std::ptr::null_mut()))).ok()
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn CoerceValue(&self, r#in: *const DEBUG_VALUE, outtype: u32, out: *mut DEBUG_VALUE) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).CoerceValue)(::windows_core::Interface::as_raw(self), r#in, outtype, out).ok()
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn CoerceValues(&self, count: u32, r#in: *const DEBUG_VALUE, outtypes: *const u32, out: *mut DEBUG_VALUE) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).CoerceValues)(::windows_core::Interface::as_raw(self), count, r#in, outtypes, out).ok()
}
pub unsafe fn Execute<P0>(&self, outputcontrol: u32, command: P0, flags: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).Execute)(::windows_core::Interface::as_raw(self), outputcontrol, command.into_param().abi(), flags).ok()
}
pub unsafe fn ExecuteCommandFile<P0>(&self, outputcontrol: u32, commandfile: P0, flags: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).ExecuteCommandFile)(::windows_core::Interface::as_raw(self), outputcontrol, commandfile.into_param().abi(), flags).ok()
}
pub unsafe fn GetNumberBreakpoints(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetNumberBreakpoints)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetBreakpointByIndex(&self, index: u32) -> ::windows_core::Result<IDebugBreakpoint> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetBreakpointByIndex)(::windows_core::Interface::as_raw(self), index, &mut result__).from_abi(result__)
}
pub unsafe fn GetBreakpointById(&self, id: u32) -> ::windows_core::Result<IDebugBreakpoint> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetBreakpointById)(::windows_core::Interface::as_raw(self), id, &mut result__).from_abi(result__)
}
pub unsafe fn GetBreakpointParameters(&self, count: u32, ids: ::core::option::Option<*const u32>, start: u32, params: *mut DEBUG_BREAKPOINT_PARAMETERS) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetBreakpointParameters)(::windows_core::Interface::as_raw(self), count, ::core::mem::transmute(ids.unwrap_or(::std::ptr::null())), start, params).ok()
}
pub unsafe fn AddBreakpoint(&self, r#type: u32, desiredid: u32) -> ::windows_core::Result<IDebugBreakpoint> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).AddBreakpoint)(::windows_core::Interface::as_raw(self), r#type, desiredid, &mut result__).from_abi(result__)
}
pub unsafe fn RemoveBreakpoint<P0>(&self, bp: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IDebugBreakpoint>,
{
(::windows_core::Interface::vtable(self).RemoveBreakpoint)(::windows_core::Interface::as_raw(self), bp.into_param().abi()).ok()
}
pub unsafe fn AddExtension<P0>(&self, path: P0, flags: u32) -> ::windows_core::Result<u64>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).AddExtension)(::windows_core::Interface::as_raw(self), path.into_param().abi(), flags, &mut result__).from_abi(result__)
}
pub unsafe fn RemoveExtension(&self, handle: u64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).RemoveExtension)(::windows_core::Interface::as_raw(self), handle).ok()
}
pub unsafe fn GetExtensionByPath<P0>(&self, path: P0) -> ::windows_core::Result<u64>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetExtensionByPath)(::windows_core::Interface::as_raw(self), path.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn CallExtension<P0, P1>(&self, handle: u64, function: P0, arguments: P1) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
P1: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).CallExtension)(::windows_core::Interface::as_raw(self), handle, function.into_param().abi(), arguments.into_param().abi()).ok()
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn GetExtensionFunction<P0>(&self, handle: u64, funcname: P0, function: *mut super::super::super::super::Foundation::FARPROC) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).GetExtensionFunction)(::windows_core::Interface::as_raw(self), handle, funcname.into_param().abi(), function).ok()
}
#[doc = "Required features: `\"Win32_System_Kernel\"`"]
#[cfg(feature = "Win32_System_Kernel")]
pub unsafe fn GetWindbgExtensionApis32(&self, api: *mut WINDBG_EXTENSION_APIS32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetWindbgExtensionApis32)(::windows_core::Interface::as_raw(self), api).ok()
}
#[doc = "Required features: `\"Win32_System_Kernel\"`"]
#[cfg(feature = "Win32_System_Kernel")]
pub unsafe fn GetWindbgExtensionApis64(&self, api: *mut WINDBG_EXTENSION_APIS64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetWindbgExtensionApis64)(::windows_core::Interface::as_raw(self), api).ok()
}
pub unsafe fn GetNumberEventFilters(&self, specificevents: *mut u32, specificexceptions: *mut u32, arbitraryexceptions: *mut u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetNumberEventFilters)(::windows_core::Interface::as_raw(self), specificevents, specificexceptions, arbitraryexceptions).ok()
}
pub unsafe fn GetEventFilterText(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, textsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetEventFilterText)(::windows_core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(textsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetEventFilterCommand(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, commandsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetEventFilterCommand)(::windows_core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(commandsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetEventFilterCommand<P0>(&self, index: u32, command: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).SetEventFilterCommand)(::windows_core::Interface::as_raw(self), index, command.into_param().abi()).ok()
}
pub unsafe fn GetSpecificFilterParameters(&self, start: u32, params: &mut [DEBUG_SPECIFIC_FILTER_PARAMETERS]) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSpecificFilterParameters)(::windows_core::Interface::as_raw(self), start, params.len().try_into().unwrap(), ::core::mem::transmute(params.as_ptr())).ok()
}
pub unsafe fn SetSpecificFilterParameters(&self, start: u32, params: &[DEBUG_SPECIFIC_FILTER_PARAMETERS]) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetSpecificFilterParameters)(::windows_core::Interface::as_raw(self), start, params.len().try_into().unwrap(), ::core::mem::transmute(params.as_ptr())).ok()
}
pub unsafe fn GetSpecificFilterArgument(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, argumentsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSpecificFilterArgument)(::windows_core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(argumentsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetSpecificFilterArgument<P0>(&self, index: u32, argument: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).SetSpecificFilterArgument)(::windows_core::Interface::as_raw(self), index, argument.into_param().abi()).ok()
}
pub unsafe fn GetExceptionFilterParameters(&self, count: u32, codes: ::core::option::Option<*const u32>, start: u32, params: *mut DEBUG_EXCEPTION_FILTER_PARAMETERS) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetExceptionFilterParameters)(::windows_core::Interface::as_raw(self), count, ::core::mem::transmute(codes.unwrap_or(::std::ptr::null())), start, params).ok()
}
pub unsafe fn SetExceptionFilterParameters(&self, params: &[DEBUG_EXCEPTION_FILTER_PARAMETERS]) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetExceptionFilterParameters)(::windows_core::Interface::as_raw(self), params.len().try_into().unwrap(), ::core::mem::transmute(params.as_ptr())).ok()
}
pub unsafe fn GetExceptionFilterSecondCommand(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, commandsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetExceptionFilterSecondCommand)(::windows_core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(commandsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetExceptionFilterSecondCommand<P0>(&self, index: u32, command: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).SetExceptionFilterSecondCommand)(::windows_core::Interface::as_raw(self), index, command.into_param().abi()).ok()
}
pub unsafe fn WaitForEvent(&self, flags: u32, timeout: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).WaitForEvent)(::windows_core::Interface::as_raw(self), flags, timeout).ok()
}
pub unsafe fn GetLastEventInformation(&self, r#type: *mut u32, processid: *mut u32, threadid: *mut u32, extrainformation: ::core::option::Option<*mut ::core::ffi::c_void>, extrainformationsize: u32, extrainformationused: ::core::option::Option<*mut u32>, description: ::core::option::Option<&mut [u8]>, descriptionused: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetLastEventInformation)(
::windows_core::Interface::as_raw(self),
r#type,
processid,
threadid,
::core::mem::transmute(extrainformation.unwrap_or(::std::ptr::null_mut())),
extrainformationsize,
::core::mem::transmute(extrainformationused.unwrap_or(::std::ptr::null_mut())),
::core::mem::transmute(description.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
description.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(descriptionused.unwrap_or(::std::ptr::null_mut())),
)
.ok()
}
pub unsafe fn GetCurrentTimeDate(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetCurrentTimeDate)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetCurrentSystemUpTime(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetCurrentSystemUpTime)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetDumpFormatFlags(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetDumpFormatFlags)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetNumberTextReplacements(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetNumberTextReplacements)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetTextReplacement<P0>(&self, srctext: P0, index: u32, srcbuffer: ::core::option::Option<&mut [u8]>, srcsize: ::core::option::Option<*mut u32>, dstbuffer: ::core::option::Option<&mut [u8]>, dstsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).GetTextReplacement)(
::windows_core::Interface::as_raw(self),
srctext.into_param().abi(),
index,
::core::mem::transmute(srcbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
srcbuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(srcsize.unwrap_or(::std::ptr::null_mut())),
::core::mem::transmute(dstbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
dstbuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(dstsize.unwrap_or(::std::ptr::null_mut())),
)
.ok()
}
pub unsafe fn SetTextReplacement<P0, P1>(&self, srctext: P0, dsttext: P1) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
P1: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).SetTextReplacement)(::windows_core::Interface::as_raw(self), srctext.into_param().abi(), dsttext.into_param().abi()).ok()
}
pub unsafe fn RemoveTextReplacements(&self) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).RemoveTextReplacements)(::windows_core::Interface::as_raw(self)).ok()
}
pub unsafe fn OutputTextReplacements(&self, outputcontrol: u32, flags: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).OutputTextReplacements)(::windows_core::Interface::as_raw(self), outputcontrol, flags).ok()
}
pub unsafe fn GetAssemblyOptions(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetAssemblyOptions)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn AddAssemblyOptions(&self, options: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).AddAssemblyOptions)(::windows_core::Interface::as_raw(self), options).ok()
}
pub unsafe fn RemoveAssemblyOptions(&self, options: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).RemoveAssemblyOptions)(::windows_core::Interface::as_raw(self), options).ok()
}
pub unsafe fn SetAssemblyOptions(&self, options: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetAssemblyOptions)(::windows_core::Interface::as_raw(self), options).ok()
}
pub unsafe fn GetExpressionSyntax(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetExpressionSyntax)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetExpressionSyntax(&self, flags: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetExpressionSyntax)(::windows_core::Interface::as_raw(self), flags).ok()
}
pub unsafe fn SetExpressionSyntaxByName<P0>(&self, abbrevname: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).SetExpressionSyntaxByName)(::windows_core::Interface::as_raw(self), abbrevname.into_param().abi()).ok()
}
pub unsafe fn GetNumberExpressionSyntaxes(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetNumberExpressionSyntaxes)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetExpressionSyntaxNames(&self, index: u32, fullnamebuffer: ::core::option::Option<&mut [u8]>, fullnamesize: ::core::option::Option<*mut u32>, abbrevnamebuffer: ::core::option::Option<&mut [u8]>, abbrevnamesize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetExpressionSyntaxNames)(
::windows_core::Interface::as_raw(self),
index,
::core::mem::transmute(fullnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
fullnamebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(fullnamesize.unwrap_or(::std::ptr::null_mut())),
::core::mem::transmute(abbrevnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
abbrevnamebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(abbrevnamesize.unwrap_or(::std::ptr::null_mut())),
)
.ok()
}
pub unsafe fn GetNumberEvents(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetNumberEvents)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetEventIndexDescription<P0>(&self, index: u32, which: u32, buffer: P0, buffersize: u32, descsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).GetEventIndexDescription)(::windows_core::Interface::as_raw(self), index, which, buffer.into_param().abi(), buffersize, ::core::mem::transmute(descsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetCurrentEventIndex(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetCurrentEventIndex)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetNextEventIndex(&self, relation: u32, value: u32) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).SetNextEventIndex)(::windows_core::Interface::as_raw(self), relation, value, &mut result__).from_abi(result__)
}
}
::windows_core::imp::interface_hierarchy!(IDebugControl3, ::windows_core::IUnknown);
unsafe impl ::windows_core::Interface for IDebugControl3 {
type Vtable = IDebugControl3_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IDebugControl3 {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0x7df74a86_b03f_407f_90ab_a20dadcead08);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugControl3_Vtbl {
pub base__: ::windows_core::IUnknown_Vtbl,
pub GetInterrupt: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub SetInterrupt: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32) -> ::windows_core::HRESULT,
pub GetInterruptTimeout: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, seconds: *mut u32) -> ::windows_core::HRESULT,
pub SetInterruptTimeout: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, seconds: u32) -> ::windows_core::HRESULT,
#[cfg(feature = "Win32_Foundation")]
pub GetLogFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PSTR, buffersize: u32, filesize: *mut u32, append: *mut super::super::super::super::Foundation::BOOL) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
GetLogFile: usize,
#[cfg(feature = "Win32_Foundation")]
pub OpenLogFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, file: ::windows_core::PCSTR, append: super::super::super::super::Foundation::BOOL) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
OpenLogFile: usize,
pub CloseLogFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub GetLogMask: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: *mut u32) -> ::windows_core::HRESULT,
pub SetLogMask: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: u32) -> ::windows_core::HRESULT,
pub Input: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PSTR, buffersize: u32, inputsize: *mut u32) -> ::windows_core::HRESULT,
pub ReturnInput: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub Output: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: u32, format: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub OutputVaList: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: u32, format: ::windows_core::PCSTR, args: *const i8) -> ::windows_core::HRESULT,
pub ControlledOutput: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, mask: u32, format: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub ControlledOutputVaList: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, mask: u32, format: ::windows_core::PCSTR, args: *const i8) -> ::windows_core::HRESULT,
pub OutputPrompt: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, format: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub OutputPromptVaList: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, format: ::windows_core::PCSTR, args: *const i8) -> ::windows_core::HRESULT,
pub GetPromptText: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PSTR, buffersize: u32, textsize: *mut u32) -> ::windows_core::HRESULT,
pub OutputCurrentState: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, flags: u32) -> ::windows_core::HRESULT,
pub OutputVersionInformation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32) -> ::windows_core::HRESULT,
pub GetNotifyEventHandle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: *mut u64) -> ::windows_core::HRESULT,
pub SetNotifyEventHandle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64) -> ::windows_core::HRESULT,
pub Assemble: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, instr: ::windows_core::PCSTR, endoffset: *mut u64) -> ::windows_core::HRESULT,
pub Disassemble: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, flags: u32, buffer: ::windows_core::PSTR, buffersize: u32, disassemblysize: *mut u32, endoffset: *mut u64) -> ::windows_core::HRESULT,
pub GetDisassembleEffectiveOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows_core::HRESULT,
pub OutputDisassembly: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, offset: u64, flags: u32, endoffset: *mut u64) -> ::windows_core::HRESULT,
pub OutputDisassemblyLines: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, previouslines: u32, totallines: u32, offset: u64, flags: u32, offsetline: *mut u32, startoffset: *mut u64, endoffset: *mut u64, lineoffsets: *mut u64) -> ::windows_core::HRESULT,
pub GetNearInstruction: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, delta: i32, nearoffset: *mut u64) -> ::windows_core::HRESULT,
#[cfg(feature = "Win32_Foundation")]
pub GetStackTrace: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, frameoffset: u64, stackoffset: u64, instructionoffset: u64, frames: *mut DEBUG_STACK_FRAME, framessize: u32, framesfilled: *mut u32) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
GetStackTrace: usize,
pub GetReturnOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows_core::HRESULT,
#[cfg(feature = "Win32_Foundation")]
pub OutputStackTrace: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, frames: *const DEBUG_STACK_FRAME, framessize: u32, flags: u32) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
OutputStackTrace: usize,
pub GetDebuggeeType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, class: *mut u32, qualifier: *mut u32) -> ::windows_core::HRESULT,
pub GetActualProcessorType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: *mut u32) -> ::windows_core::HRESULT,
pub GetExecutingProcessorType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: *mut u32) -> ::windows_core::HRESULT,
pub GetNumberPossibleExecutingProcessorTypes: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows_core::HRESULT,
pub GetPossibleExecutingProcessorTypes: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, start: u32, count: u32, types: *mut u32) -> ::windows_core::HRESULT,
pub GetNumberProcessors: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows_core::HRESULT,
pub GetSystemVersion: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, platformid: *mut u32, major: *mut u32, minor: *mut u32, servicepackstring: ::windows_core::PSTR, servicepackstringsize: u32, servicepackstringused: *mut u32, servicepacknumber: *mut u32, buildstring: ::windows_core::PSTR, buildstringsize: u32, buildstringused: *mut u32) -> ::windows_core::HRESULT,
pub GetPageSize: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, size: *mut u32) -> ::windows_core::HRESULT,
pub IsPointer64Bit: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub ReadBugCheckData: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, code: *mut u32, arg1: *mut u64, arg2: *mut u64, arg3: *mut u64, arg4: *mut u64) -> ::windows_core::HRESULT,
pub GetNumberSupportedProcessorTypes: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows_core::HRESULT,
pub GetSupportedProcessorTypes: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, start: u32, count: u32, types: *mut u32) -> ::windows_core::HRESULT,
pub GetProcessorTypeNames: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: u32, fullnamebuffer: ::windows_core::PSTR, fullnamebuffersize: u32, fullnamesize: *mut u32, abbrevnamebuffer: ::windows_core::PSTR, abbrevnamebuffersize: u32, abbrevnamesize: *mut u32) -> ::windows_core::HRESULT,
pub GetEffectiveProcessorType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: *mut u32) -> ::windows_core::HRESULT,
pub SetEffectiveProcessorType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: u32) -> ::windows_core::HRESULT,
pub GetExecutionStatus: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, status: *mut u32) -> ::windows_core::HRESULT,
pub SetExecutionStatus: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, status: u32) -> ::windows_core::HRESULT,
pub GetCodeLevel: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, level: *mut u32) -> ::windows_core::HRESULT,
pub SetCodeLevel: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, level: u32) -> ::windows_core::HRESULT,
pub GetEngineOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: *mut u32) -> ::windows_core::HRESULT,
pub AddEngineOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows_core::HRESULT,
pub RemoveEngineOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows_core::HRESULT,
pub SetEngineOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows_core::HRESULT,
pub GetSystemErrorControl: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputlevel: *mut u32, breaklevel: *mut u32) -> ::windows_core::HRESULT,
pub SetSystemErrorControl: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputlevel: u32, breaklevel: u32) -> ::windows_core::HRESULT,
pub GetTextMacro: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, slot: u32, buffer: ::windows_core::PSTR, buffersize: u32, macrosize: *mut u32) -> ::windows_core::HRESULT,
pub SetTextMacro: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, slot: u32, r#macro: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub GetRadix: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, radix: *mut u32) -> ::windows_core::HRESULT,
pub SetRadix: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, radix: u32) -> ::windows_core::HRESULT,
#[cfg(feature = "Win32_Foundation")]
pub Evaluate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, expression: ::windows_core::PCSTR, desiredtype: u32, value: *mut DEBUG_VALUE, remainderindex: *mut u32) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
Evaluate: usize,
#[cfg(feature = "Win32_Foundation")]
pub CoerceValue: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#in: *const DEBUG_VALUE, outtype: u32, out: *mut DEBUG_VALUE) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
CoerceValue: usize,
#[cfg(feature = "Win32_Foundation")]
pub CoerceValues: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: u32, r#in: *const DEBUG_VALUE, outtypes: *const u32, out: *mut DEBUG_VALUE) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
CoerceValues: usize,
pub Execute: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, command: ::windows_core::PCSTR, flags: u32) -> ::windows_core::HRESULT,
pub ExecuteCommandFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, commandfile: ::windows_core::PCSTR, flags: u32) -> ::windows_core::HRESULT,
pub GetNumberBreakpoints: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows_core::HRESULT,
pub GetBreakpointByIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, bp: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub GetBreakpointById: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: u32, bp: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub GetBreakpointParameters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: u32, ids: *const u32, start: u32, params: *mut DEBUG_BREAKPOINT_PARAMETERS) -> ::windows_core::HRESULT,
pub AddBreakpoint: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: u32, desiredid: u32, bp: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub RemoveBreakpoint: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, bp: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub AddExtension: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, path: ::windows_core::PCSTR, flags: u32, handle: *mut u64) -> ::windows_core::HRESULT,
pub RemoveExtension: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64) -> ::windows_core::HRESULT,
pub GetExtensionByPath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, path: ::windows_core::PCSTR, handle: *mut u64) -> ::windows_core::HRESULT,
pub CallExtension: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64, function: ::windows_core::PCSTR, arguments: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
#[cfg(feature = "Win32_Foundation")]
pub GetExtensionFunction: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64, funcname: ::windows_core::PCSTR, function: *mut super::super::super::super::Foundation::FARPROC) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
GetExtensionFunction: usize,
#[cfg(feature = "Win32_System_Kernel")]
pub GetWindbgExtensionApis32: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, api: *mut WINDBG_EXTENSION_APIS32) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_System_Kernel"))]
GetWindbgExtensionApis32: usize,
#[cfg(feature = "Win32_System_Kernel")]
pub GetWindbgExtensionApis64: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, api: *mut WINDBG_EXTENSION_APIS64) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_System_Kernel"))]
GetWindbgExtensionApis64: usize,
pub GetNumberEventFilters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, specificevents: *mut u32, specificexceptions: *mut u32, arbitraryexceptions: *mut u32) -> ::windows_core::HRESULT,
pub GetEventFilterText: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows_core::PSTR, buffersize: u32, textsize: *mut u32) -> ::windows_core::HRESULT,
pub GetEventFilterCommand: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows_core::PSTR, buffersize: u32, commandsize: *mut u32) -> ::windows_core::HRESULT,
pub SetEventFilterCommand: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, command: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub GetSpecificFilterParameters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, start: u32, count: u32, params: *mut DEBUG_SPECIFIC_FILTER_PARAMETERS) -> ::windows_core::HRESULT,
pub SetSpecificFilterParameters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, start: u32, count: u32, params: *const DEBUG_SPECIFIC_FILTER_PARAMETERS) -> ::windows_core::HRESULT,
pub GetSpecificFilterArgument: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows_core::PSTR, buffersize: u32, argumentsize: *mut u32) -> ::windows_core::HRESULT,
pub SetSpecificFilterArgument: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, argument: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub GetExceptionFilterParameters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: u32, codes: *const u32, start: u32, params: *mut DEBUG_EXCEPTION_FILTER_PARAMETERS) -> ::windows_core::HRESULT,
pub SetExceptionFilterParameters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: u32, params: *const DEBUG_EXCEPTION_FILTER_PARAMETERS) -> ::windows_core::HRESULT,
pub GetExceptionFilterSecondCommand: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows_core::PSTR, buffersize: u32, commandsize: *mut u32) -> ::windows_core::HRESULT,
pub SetExceptionFilterSecondCommand: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, command: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub WaitForEvent: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, timeout: u32) -> ::windows_core::HRESULT,
pub GetLastEventInformation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: *mut u32, processid: *mut u32, threadid: *mut u32, extrainformation: *mut ::core::ffi::c_void, extrainformationsize: u32, extrainformationused: *mut u32, description: ::windows_core::PSTR, descriptionsize: u32, descriptionused: *mut u32) -> ::windows_core::HRESULT,
pub GetCurrentTimeDate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, timedate: *mut u32) -> ::windows_core::HRESULT,
pub GetCurrentSystemUpTime: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, uptime: *mut u32) -> ::windows_core::HRESULT,
pub GetDumpFormatFlags: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, formatflags: *mut u32) -> ::windows_core::HRESULT,
pub GetNumberTextReplacements: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, numrepl: *mut u32) -> ::windows_core::HRESULT,
pub GetTextReplacement: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, srctext: ::windows_core::PCSTR, index: u32, srcbuffer: ::windows_core::PSTR, srcbuffersize: u32, srcsize: *mut u32, dstbuffer: ::windows_core::PSTR, dstbuffersize: u32, dstsize: *mut u32) -> ::windows_core::HRESULT,
pub SetTextReplacement: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, srctext: ::windows_core::PCSTR, dsttext: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub RemoveTextReplacements: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub OutputTextReplacements: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, flags: u32) -> ::windows_core::HRESULT,
pub GetAssemblyOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: *mut u32) -> ::windows_core::HRESULT,
pub AddAssemblyOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows_core::HRESULT,
pub RemoveAssemblyOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows_core::HRESULT,
pub SetAssemblyOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows_core::HRESULT,
pub GetExpressionSyntax: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: *mut u32) -> ::windows_core::HRESULT,
pub SetExpressionSyntax: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32) -> ::windows_core::HRESULT,
pub SetExpressionSyntaxByName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, abbrevname: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub GetNumberExpressionSyntaxes: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows_core::HRESULT,
pub GetExpressionSyntaxNames: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, fullnamebuffer: ::windows_core::PSTR, fullnamebuffersize: u32, fullnamesize: *mut u32, abbrevnamebuffer: ::windows_core::PSTR, abbrevnamebuffersize: u32, abbrevnamesize: *mut u32) -> ::windows_core::HRESULT,
pub GetNumberEvents: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, events: *mut u32) -> ::windows_core::HRESULT,
pub GetEventIndexDescription: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, which: u32, buffer: ::windows_core::PCSTR, buffersize: u32, descsize: *mut u32) -> ::windows_core::HRESULT,
pub GetCurrentEventIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: *mut u32) -> ::windows_core::HRESULT,
pub SetNextEventIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, relation: u32, value: u32, nextindex: *mut u32) -> ::windows_core::HRESULT,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IDebugControl4(::windows_core::IUnknown);
impl IDebugControl4 {
pub unsafe fn GetInterrupt(&self) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetInterrupt)(::windows_core::Interface::as_raw(self)).ok()
}
pub unsafe fn SetInterrupt(&self, flags: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetInterrupt)(::windows_core::Interface::as_raw(self), flags).ok()
}
pub unsafe fn GetInterruptTimeout(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetInterruptTimeout)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetInterruptTimeout(&self, seconds: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetInterruptTimeout)(::windows_core::Interface::as_raw(self), seconds).ok()
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn GetLogFile(&self, buffer: ::core::option::Option<&mut [u8]>, filesize: ::core::option::Option<*mut u32>, append: *mut super::super::super::super::Foundation::BOOL) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetLogFile)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(filesize.unwrap_or(::std::ptr::null_mut())), append).ok()
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn OpenLogFile<P0, P1>(&self, file: P0, append: P1) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
P1: ::windows_core::IntoParam<super::super::super::super::Foundation::BOOL>,
{
(::windows_core::Interface::vtable(self).OpenLogFile)(::windows_core::Interface::as_raw(self), file.into_param().abi(), append.into_param().abi()).ok()
}
pub unsafe fn CloseLogFile(&self) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).CloseLogFile)(::windows_core::Interface::as_raw(self)).ok()
}
pub unsafe fn GetLogMask(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetLogMask)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetLogMask(&self, mask: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetLogMask)(::windows_core::Interface::as_raw(self), mask).ok()
}
pub unsafe fn Input(&self, buffer: &mut [u8], inputsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).Input)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_ptr()), buffer.len().try_into().unwrap(), ::core::mem::transmute(inputsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn ReturnInput<P0>(&self, buffer: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).ReturnInput)(::windows_core::Interface::as_raw(self), buffer.into_param().abi()).ok()
}
pub unsafe fn Output<P0>(&self, mask: u32, format: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).Output)(::windows_core::Interface::as_raw(self), mask, format.into_param().abi()).ok()
}
pub unsafe fn OutputVaList<P0>(&self, mask: u32, format: P0, args: *const i8) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).OutputVaList)(::windows_core::Interface::as_raw(self), mask, format.into_param().abi(), args).ok()
}
pub unsafe fn ControlledOutput<P0>(&self, outputcontrol: u32, mask: u32, format: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).ControlledOutput)(::windows_core::Interface::as_raw(self), outputcontrol, mask, format.into_param().abi()).ok()
}
pub unsafe fn ControlledOutputVaList<P0>(&self, outputcontrol: u32, mask: u32, format: P0, args: *const i8) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).ControlledOutputVaList)(::windows_core::Interface::as_raw(self), outputcontrol, mask, format.into_param().abi(), args).ok()
}
pub unsafe fn OutputPrompt<P0>(&self, outputcontrol: u32, format: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).OutputPrompt)(::windows_core::Interface::as_raw(self), outputcontrol, format.into_param().abi()).ok()
}
pub unsafe fn OutputPromptVaList<P0>(&self, outputcontrol: u32, format: P0, args: *const i8) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).OutputPromptVaList)(::windows_core::Interface::as_raw(self), outputcontrol, format.into_param().abi(), args).ok()
}
pub unsafe fn GetPromptText(&self, buffer: ::core::option::Option<&mut [u8]>, textsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetPromptText)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(textsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn OutputCurrentState(&self, outputcontrol: u32, flags: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).OutputCurrentState)(::windows_core::Interface::as_raw(self), outputcontrol, flags).ok()
}
pub unsafe fn OutputVersionInformation(&self, outputcontrol: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).OutputVersionInformation)(::windows_core::Interface::as_raw(self), outputcontrol).ok()
}
pub unsafe fn GetNotifyEventHandle(&self) -> ::windows_core::Result<u64> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetNotifyEventHandle)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetNotifyEventHandle(&self, handle: u64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetNotifyEventHandle)(::windows_core::Interface::as_raw(self), handle).ok()
}
pub unsafe fn Assemble<P0>(&self, offset: u64, instr: P0) -> ::windows_core::Result<u64>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).Assemble)(::windows_core::Interface::as_raw(self), offset, instr.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn Disassemble(&self, offset: u64, flags: u32, buffer: ::core::option::Option<&mut [u8]>, disassemblysize: ::core::option::Option<*mut u32>, endoffset: *mut u64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).Disassemble)(::windows_core::Interface::as_raw(self), offset, flags, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(disassemblysize.unwrap_or(::std::ptr::null_mut())), endoffset).ok()
}
pub unsafe fn GetDisassembleEffectiveOffset(&self) -> ::windows_core::Result<u64> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetDisassembleEffectiveOffset)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn OutputDisassembly(&self, outputcontrol: u32, offset: u64, flags: u32) -> ::windows_core::Result<u64> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).OutputDisassembly)(::windows_core::Interface::as_raw(self), outputcontrol, offset, flags, &mut result__).from_abi(result__)
}
pub unsafe fn OutputDisassemblyLines(&self, outputcontrol: u32, previouslines: u32, offset: u64, flags: u32, offsetline: ::core::option::Option<*mut u32>, startoffset: ::core::option::Option<*mut u64>, endoffset: ::core::option::Option<*mut u64>, lineoffsets: ::core::option::Option<&mut [u64]>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).OutputDisassemblyLines)(::windows_core::Interface::as_raw(self), outputcontrol, previouslines, lineoffsets.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), offset, flags, ::core::mem::transmute(offsetline.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(startoffset.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(endoffset.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(lineoffsets.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok()
}
pub unsafe fn GetNearInstruction(&self, offset: u64, delta: i32) -> ::windows_core::Result<u64> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetNearInstruction)(::windows_core::Interface::as_raw(self), offset, delta, &mut result__).from_abi(result__)
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn GetStackTrace(&self, frameoffset: u64, stackoffset: u64, instructionoffset: u64, frames: &mut [DEBUG_STACK_FRAME], framesfilled: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetStackTrace)(::windows_core::Interface::as_raw(self), frameoffset, stackoffset, instructionoffset, ::core::mem::transmute(frames.as_ptr()), frames.len().try_into().unwrap(), ::core::mem::transmute(framesfilled.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetReturnOffset(&self) -> ::windows_core::Result<u64> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetReturnOffset)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn OutputStackTrace(&self, outputcontrol: u32, frames: ::core::option::Option<&[DEBUG_STACK_FRAME]>, flags: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).OutputStackTrace)(::windows_core::Interface::as_raw(self), outputcontrol, ::core::mem::transmute(frames.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), frames.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), flags).ok()
}
pub unsafe fn GetDebuggeeType(&self, class: *mut u32, qualifier: *mut u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetDebuggeeType)(::windows_core::Interface::as_raw(self), class, qualifier).ok()
}
pub unsafe fn GetActualProcessorType(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetActualProcessorType)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetExecutingProcessorType(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetExecutingProcessorType)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetNumberPossibleExecutingProcessorTypes(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetNumberPossibleExecutingProcessorTypes)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetPossibleExecutingProcessorTypes(&self, start: u32, types: &mut [u32]) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetPossibleExecutingProcessorTypes)(::windows_core::Interface::as_raw(self), start, types.len().try_into().unwrap(), ::core::mem::transmute(types.as_ptr())).ok()
}
pub unsafe fn GetNumberProcessors(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetNumberProcessors)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetSystemVersion(&self, platformid: *mut u32, major: *mut u32, minor: *mut u32, servicepackstring: ::core::option::Option<&mut [u8]>, servicepackstringused: ::core::option::Option<*mut u32>, servicepacknumber: *mut u32, buildstring: ::core::option::Option<&mut [u8]>, buildstringused: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSystemVersion)(
::windows_core::Interface::as_raw(self),
platformid,
major,
minor,
::core::mem::transmute(servicepackstring.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
servicepackstring.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(servicepackstringused.unwrap_or(::std::ptr::null_mut())),
servicepacknumber,
::core::mem::transmute(buildstring.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
buildstring.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(buildstringused.unwrap_or(::std::ptr::null_mut())),
)
.ok()
}
pub unsafe fn GetPageSize(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetPageSize)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn IsPointer64Bit(&self) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).IsPointer64Bit)(::windows_core::Interface::as_raw(self)).ok()
}
pub unsafe fn ReadBugCheckData(&self, code: *mut u32, arg1: *mut u64, arg2: *mut u64, arg3: *mut u64, arg4: *mut u64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).ReadBugCheckData)(::windows_core::Interface::as_raw(self), code, arg1, arg2, arg3, arg4).ok()
}
pub unsafe fn GetNumberSupportedProcessorTypes(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetNumberSupportedProcessorTypes)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetSupportedProcessorTypes(&self, start: u32, types: &mut [u32]) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSupportedProcessorTypes)(::windows_core::Interface::as_raw(self), start, types.len().try_into().unwrap(), ::core::mem::transmute(types.as_ptr())).ok()
}
pub unsafe fn GetProcessorTypeNames(&self, r#type: u32, fullnamebuffer: ::core::option::Option<&mut [u8]>, fullnamesize: ::core::option::Option<*mut u32>, abbrevnamebuffer: ::core::option::Option<&mut [u8]>, abbrevnamesize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetProcessorTypeNames)(
::windows_core::Interface::as_raw(self),
r#type,
::core::mem::transmute(fullnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
fullnamebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(fullnamesize.unwrap_or(::std::ptr::null_mut())),
::core::mem::transmute(abbrevnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
abbrevnamebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(abbrevnamesize.unwrap_or(::std::ptr::null_mut())),
)
.ok()
}
pub unsafe fn GetEffectiveProcessorType(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetEffectiveProcessorType)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetEffectiveProcessorType(&self, r#type: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetEffectiveProcessorType)(::windows_core::Interface::as_raw(self), r#type).ok()
}
pub unsafe fn GetExecutionStatus(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetExecutionStatus)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetExecutionStatus(&self, status: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetExecutionStatus)(::windows_core::Interface::as_raw(self), status).ok()
}
pub unsafe fn GetCodeLevel(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetCodeLevel)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetCodeLevel(&self, level: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetCodeLevel)(::windows_core::Interface::as_raw(self), level).ok()
}
pub unsafe fn GetEngineOptions(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetEngineOptions)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn AddEngineOptions(&self, options: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).AddEngineOptions)(::windows_core::Interface::as_raw(self), options).ok()
}
pub unsafe fn RemoveEngineOptions(&self, options: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).RemoveEngineOptions)(::windows_core::Interface::as_raw(self), options).ok()
}
pub unsafe fn SetEngineOptions(&self, options: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetEngineOptions)(::windows_core::Interface::as_raw(self), options).ok()
}
pub unsafe fn GetSystemErrorControl(&self, outputlevel: *mut u32, breaklevel: *mut u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSystemErrorControl)(::windows_core::Interface::as_raw(self), outputlevel, breaklevel).ok()
}
pub unsafe fn SetSystemErrorControl(&self, outputlevel: u32, breaklevel: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetSystemErrorControl)(::windows_core::Interface::as_raw(self), outputlevel, breaklevel).ok()
}
pub unsafe fn GetTextMacro(&self, slot: u32, buffer: ::core::option::Option<&mut [u8]>, macrosize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetTextMacro)(::windows_core::Interface::as_raw(self), slot, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(macrosize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetTextMacro<P0>(&self, slot: u32, r#macro: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).SetTextMacro)(::windows_core::Interface::as_raw(self), slot, r#macro.into_param().abi()).ok()
}
pub unsafe fn GetRadix(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetRadix)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetRadix(&self, radix: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetRadix)(::windows_core::Interface::as_raw(self), radix).ok()
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn Evaluate<P0>(&self, expression: P0, desiredtype: u32, value: *mut DEBUG_VALUE, remainderindex: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).Evaluate)(::windows_core::Interface::as_raw(self), expression.into_param().abi(), desiredtype, value, ::core::mem::transmute(remainderindex.unwrap_or(::std::ptr::null_mut()))).ok()
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn CoerceValue(&self, r#in: *const DEBUG_VALUE, outtype: u32, out: *mut DEBUG_VALUE) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).CoerceValue)(::windows_core::Interface::as_raw(self), r#in, outtype, out).ok()
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn CoerceValues(&self, count: u32, r#in: *const DEBUG_VALUE, outtypes: *const u32, out: *mut DEBUG_VALUE) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).CoerceValues)(::windows_core::Interface::as_raw(self), count, r#in, outtypes, out).ok()
}
pub unsafe fn Execute<P0>(&self, outputcontrol: u32, command: P0, flags: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).Execute)(::windows_core::Interface::as_raw(self), outputcontrol, command.into_param().abi(), flags).ok()
}
pub unsafe fn ExecuteCommandFile<P0>(&self, outputcontrol: u32, commandfile: P0, flags: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).ExecuteCommandFile)(::windows_core::Interface::as_raw(self), outputcontrol, commandfile.into_param().abi(), flags).ok()
}
pub unsafe fn GetNumberBreakpoints(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetNumberBreakpoints)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetBreakpointByIndex(&self, index: u32) -> ::windows_core::Result<IDebugBreakpoint> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetBreakpointByIndex)(::windows_core::Interface::as_raw(self), index, &mut result__).from_abi(result__)
}
pub unsafe fn GetBreakpointById(&self, id: u32) -> ::windows_core::Result<IDebugBreakpoint> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetBreakpointById)(::windows_core::Interface::as_raw(self), id, &mut result__).from_abi(result__)
}
pub unsafe fn GetBreakpointParameters(&self, count: u32, ids: ::core::option::Option<*const u32>, start: u32, params: *mut DEBUG_BREAKPOINT_PARAMETERS) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetBreakpointParameters)(::windows_core::Interface::as_raw(self), count, ::core::mem::transmute(ids.unwrap_or(::std::ptr::null())), start, params).ok()
}
pub unsafe fn AddBreakpoint(&self, r#type: u32, desiredid: u32) -> ::windows_core::Result<IDebugBreakpoint> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).AddBreakpoint)(::windows_core::Interface::as_raw(self), r#type, desiredid, &mut result__).from_abi(result__)
}
pub unsafe fn RemoveBreakpoint<P0>(&self, bp: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IDebugBreakpoint>,
{
(::windows_core::Interface::vtable(self).RemoveBreakpoint)(::windows_core::Interface::as_raw(self), bp.into_param().abi()).ok()
}
pub unsafe fn AddExtension<P0>(&self, path: P0, flags: u32) -> ::windows_core::Result<u64>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).AddExtension)(::windows_core::Interface::as_raw(self), path.into_param().abi(), flags, &mut result__).from_abi(result__)
}
pub unsafe fn RemoveExtension(&self, handle: u64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).RemoveExtension)(::windows_core::Interface::as_raw(self), handle).ok()
}
pub unsafe fn GetExtensionByPath<P0>(&self, path: P0) -> ::windows_core::Result<u64>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetExtensionByPath)(::windows_core::Interface::as_raw(self), path.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn CallExtension<P0, P1>(&self, handle: u64, function: P0, arguments: P1) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
P1: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).CallExtension)(::windows_core::Interface::as_raw(self), handle, function.into_param().abi(), arguments.into_param().abi()).ok()
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn GetExtensionFunction<P0>(&self, handle: u64, funcname: P0, function: *mut super::super::super::super::Foundation::FARPROC) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).GetExtensionFunction)(::windows_core::Interface::as_raw(self), handle, funcname.into_param().abi(), function).ok()
}
#[doc = "Required features: `\"Win32_System_Kernel\"`"]
#[cfg(feature = "Win32_System_Kernel")]
pub unsafe fn GetWindbgExtensionApis32(&self, api: *mut WINDBG_EXTENSION_APIS32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetWindbgExtensionApis32)(::windows_core::Interface::as_raw(self), api).ok()
}
#[doc = "Required features: `\"Win32_System_Kernel\"`"]
#[cfg(feature = "Win32_System_Kernel")]
pub unsafe fn GetWindbgExtensionApis64(&self, api: *mut WINDBG_EXTENSION_APIS64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetWindbgExtensionApis64)(::windows_core::Interface::as_raw(self), api).ok()
}
pub unsafe fn GetNumberEventFilters(&self, specificevents: *mut u32, specificexceptions: *mut u32, arbitraryexceptions: *mut u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetNumberEventFilters)(::windows_core::Interface::as_raw(self), specificevents, specificexceptions, arbitraryexceptions).ok()
}
pub unsafe fn GetEventFilterText(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, textsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetEventFilterText)(::windows_core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(textsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetEventFilterCommand(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, commandsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetEventFilterCommand)(::windows_core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(commandsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetEventFilterCommand<P0>(&self, index: u32, command: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).SetEventFilterCommand)(::windows_core::Interface::as_raw(self), index, command.into_param().abi()).ok()
}
pub unsafe fn GetSpecificFilterParameters(&self, start: u32, params: &mut [DEBUG_SPECIFIC_FILTER_PARAMETERS]) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSpecificFilterParameters)(::windows_core::Interface::as_raw(self), start, params.len().try_into().unwrap(), ::core::mem::transmute(params.as_ptr())).ok()
}
pub unsafe fn SetSpecificFilterParameters(&self, start: u32, params: &[DEBUG_SPECIFIC_FILTER_PARAMETERS]) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetSpecificFilterParameters)(::windows_core::Interface::as_raw(self), start, params.len().try_into().unwrap(), ::core::mem::transmute(params.as_ptr())).ok()
}
pub unsafe fn GetSpecificFilterArgument(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, argumentsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSpecificFilterArgument)(::windows_core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(argumentsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetSpecificFilterArgument<P0>(&self, index: u32, argument: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).SetSpecificFilterArgument)(::windows_core::Interface::as_raw(self), index, argument.into_param().abi()).ok()
}
pub unsafe fn GetExceptionFilterParameters(&self, count: u32, codes: ::core::option::Option<*const u32>, start: u32, params: *mut DEBUG_EXCEPTION_FILTER_PARAMETERS) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetExceptionFilterParameters)(::windows_core::Interface::as_raw(self), count, ::core::mem::transmute(codes.unwrap_or(::std::ptr::null())), start, params).ok()
}
pub unsafe fn SetExceptionFilterParameters(&self, params: &[DEBUG_EXCEPTION_FILTER_PARAMETERS]) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetExceptionFilterParameters)(::windows_core::Interface::as_raw(self), params.len().try_into().unwrap(), ::core::mem::transmute(params.as_ptr())).ok()
}
pub unsafe fn GetExceptionFilterSecondCommand(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, commandsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetExceptionFilterSecondCommand)(::windows_core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(commandsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetExceptionFilterSecondCommand<P0>(&self, index: u32, command: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).SetExceptionFilterSecondCommand)(::windows_core::Interface::as_raw(self), index, command.into_param().abi()).ok()
}
pub unsafe fn WaitForEvent(&self, flags: u32, timeout: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).WaitForEvent)(::windows_core::Interface::as_raw(self), flags, timeout).ok()
}
pub unsafe fn GetLastEventInformation(&self, r#type: *mut u32, processid: *mut u32, threadid: *mut u32, extrainformation: ::core::option::Option<*mut ::core::ffi::c_void>, extrainformationsize: u32, extrainformationused: ::core::option::Option<*mut u32>, description: ::core::option::Option<&mut [u8]>, descriptionused: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetLastEventInformation)(
::windows_core::Interface::as_raw(self),
r#type,
processid,
threadid,
::core::mem::transmute(extrainformation.unwrap_or(::std::ptr::null_mut())),
extrainformationsize,
::core::mem::transmute(extrainformationused.unwrap_or(::std::ptr::null_mut())),
::core::mem::transmute(description.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
description.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(descriptionused.unwrap_or(::std::ptr::null_mut())),
)
.ok()
}
pub unsafe fn GetCurrentTimeDate(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetCurrentTimeDate)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetCurrentSystemUpTime(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetCurrentSystemUpTime)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetDumpFormatFlags(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetDumpFormatFlags)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetNumberTextReplacements(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetNumberTextReplacements)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetTextReplacement<P0>(&self, srctext: P0, index: u32, srcbuffer: ::core::option::Option<&mut [u8]>, srcsize: ::core::option::Option<*mut u32>, dstbuffer: ::core::option::Option<&mut [u8]>, dstsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).GetTextReplacement)(
::windows_core::Interface::as_raw(self),
srctext.into_param().abi(),
index,
::core::mem::transmute(srcbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
srcbuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(srcsize.unwrap_or(::std::ptr::null_mut())),
::core::mem::transmute(dstbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
dstbuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(dstsize.unwrap_or(::std::ptr::null_mut())),
)
.ok()
}
pub unsafe fn SetTextReplacement<P0, P1>(&self, srctext: P0, dsttext: P1) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
P1: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).SetTextReplacement)(::windows_core::Interface::as_raw(self), srctext.into_param().abi(), dsttext.into_param().abi()).ok()
}
pub unsafe fn RemoveTextReplacements(&self) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).RemoveTextReplacements)(::windows_core::Interface::as_raw(self)).ok()
}
pub unsafe fn OutputTextReplacements(&self, outputcontrol: u32, flags: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).OutputTextReplacements)(::windows_core::Interface::as_raw(self), outputcontrol, flags).ok()
}
pub unsafe fn GetAssemblyOptions(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetAssemblyOptions)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn AddAssemblyOptions(&self, options: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).AddAssemblyOptions)(::windows_core::Interface::as_raw(self), options).ok()
}
pub unsafe fn RemoveAssemblyOptions(&self, options: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).RemoveAssemblyOptions)(::windows_core::Interface::as_raw(self), options).ok()
}
pub unsafe fn SetAssemblyOptions(&self, options: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetAssemblyOptions)(::windows_core::Interface::as_raw(self), options).ok()
}
pub unsafe fn GetExpressionSyntax(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetExpressionSyntax)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetExpressionSyntax(&self, flags: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetExpressionSyntax)(::windows_core::Interface::as_raw(self), flags).ok()
}
pub unsafe fn SetExpressionSyntaxByName<P0>(&self, abbrevname: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).SetExpressionSyntaxByName)(::windows_core::Interface::as_raw(self), abbrevname.into_param().abi()).ok()
}
pub unsafe fn GetNumberExpressionSyntaxes(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetNumberExpressionSyntaxes)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetExpressionSyntaxNames(&self, index: u32, fullnamebuffer: ::core::option::Option<&mut [u8]>, fullnamesize: ::core::option::Option<*mut u32>, abbrevnamebuffer: ::core::option::Option<&mut [u8]>, abbrevnamesize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetExpressionSyntaxNames)(
::windows_core::Interface::as_raw(self),
index,
::core::mem::transmute(fullnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
fullnamebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(fullnamesize.unwrap_or(::std::ptr::null_mut())),
::core::mem::transmute(abbrevnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
abbrevnamebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(abbrevnamesize.unwrap_or(::std::ptr::null_mut())),
)
.ok()
}
pub unsafe fn GetNumberEvents(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetNumberEvents)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetEventIndexDescription<P0>(&self, index: u32, which: u32, buffer: P0, buffersize: u32, descsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).GetEventIndexDescription)(::windows_core::Interface::as_raw(self), index, which, buffer.into_param().abi(), buffersize, ::core::mem::transmute(descsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetCurrentEventIndex(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetCurrentEventIndex)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetNextEventIndex(&self, relation: u32, value: u32) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).SetNextEventIndex)(::windows_core::Interface::as_raw(self), relation, value, &mut result__).from_abi(result__)
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn GetLogFileWide(&self, buffer: ::core::option::Option<&mut [u16]>, filesize: ::core::option::Option<*mut u32>, append: *mut super::super::super::super::Foundation::BOOL) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetLogFileWide)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(filesize.unwrap_or(::std::ptr::null_mut())), append).ok()
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn OpenLogFileWide<P0, P1>(&self, file: P0, append: P1) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
P1: ::windows_core::IntoParam<super::super::super::super::Foundation::BOOL>,
{
(::windows_core::Interface::vtable(self).OpenLogFileWide)(::windows_core::Interface::as_raw(self), file.into_param().abi(), append.into_param().abi()).ok()
}
pub unsafe fn InputWide(&self, buffer: &mut [u16], inputsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).InputWide)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_ptr()), buffer.len().try_into().unwrap(), ::core::mem::transmute(inputsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn ReturnInputWide<P0>(&self, buffer: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).ReturnInputWide)(::windows_core::Interface::as_raw(self), buffer.into_param().abi()).ok()
}
pub unsafe fn OutputWide<P0>(&self, mask: u32, format: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).OutputWide)(::windows_core::Interface::as_raw(self), mask, format.into_param().abi()).ok()
}
pub unsafe fn OutputVaListWide<P0>(&self, mask: u32, format: P0, args: *const i8) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).OutputVaListWide)(::windows_core::Interface::as_raw(self), mask, format.into_param().abi(), args).ok()
}
pub unsafe fn ControlledOutputWide<P0>(&self, outputcontrol: u32, mask: u32, format: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).ControlledOutputWide)(::windows_core::Interface::as_raw(self), outputcontrol, mask, format.into_param().abi()).ok()
}
pub unsafe fn ControlledOutputVaListWide<P0>(&self, outputcontrol: u32, mask: u32, format: P0, args: *const i8) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).ControlledOutputVaListWide)(::windows_core::Interface::as_raw(self), outputcontrol, mask, format.into_param().abi(), args).ok()
}
pub unsafe fn OutputPromptWide<P0>(&self, outputcontrol: u32, format: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).OutputPromptWide)(::windows_core::Interface::as_raw(self), outputcontrol, format.into_param().abi()).ok()
}
pub unsafe fn OutputPromptVaListWide<P0>(&self, outputcontrol: u32, format: P0, args: *const i8) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).OutputPromptVaListWide)(::windows_core::Interface::as_raw(self), outputcontrol, format.into_param().abi(), args).ok()
}
pub unsafe fn GetPromptTextWide(&self, buffer: ::core::option::Option<&mut [u16]>, textsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetPromptTextWide)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(textsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn AssembleWide<P0>(&self, offset: u64, instr: P0) -> ::windows_core::Result<u64>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).AssembleWide)(::windows_core::Interface::as_raw(self), offset, instr.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn DisassembleWide(&self, offset: u64, flags: u32, buffer: ::core::option::Option<&mut [u16]>, disassemblysize: ::core::option::Option<*mut u32>, endoffset: *mut u64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).DisassembleWide)(::windows_core::Interface::as_raw(self), offset, flags, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(disassemblysize.unwrap_or(::std::ptr::null_mut())), endoffset).ok()
}
pub unsafe fn GetProcessorTypeNamesWide(&self, r#type: u32, fullnamebuffer: ::core::option::Option<&mut [u16]>, fullnamesize: ::core::option::Option<*mut u32>, abbrevnamebuffer: ::core::option::Option<&mut [u16]>, abbrevnamesize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetProcessorTypeNamesWide)(
::windows_core::Interface::as_raw(self),
r#type,
::core::mem::transmute(fullnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
fullnamebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(fullnamesize.unwrap_or(::std::ptr::null_mut())),
::core::mem::transmute(abbrevnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
abbrevnamebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(abbrevnamesize.unwrap_or(::std::ptr::null_mut())),
)
.ok()
}
pub unsafe fn GetTextMacroWide(&self, slot: u32, buffer: ::core::option::Option<&mut [u16]>, macrosize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetTextMacroWide)(::windows_core::Interface::as_raw(self), slot, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(macrosize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetTextMacroWide<P0>(&self, slot: u32, r#macro: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).SetTextMacroWide)(::windows_core::Interface::as_raw(self), slot, r#macro.into_param().abi()).ok()
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn EvaluateWide<P0>(&self, expression: P0, desiredtype: u32, value: *mut DEBUG_VALUE, remainderindex: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).EvaluateWide)(::windows_core::Interface::as_raw(self), expression.into_param().abi(), desiredtype, value, ::core::mem::transmute(remainderindex.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn ExecuteWide<P0>(&self, outputcontrol: u32, command: P0, flags: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).ExecuteWide)(::windows_core::Interface::as_raw(self), outputcontrol, command.into_param().abi(), flags).ok()
}
pub unsafe fn ExecuteCommandFileWide<P0>(&self, outputcontrol: u32, commandfile: P0, flags: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).ExecuteCommandFileWide)(::windows_core::Interface::as_raw(self), outputcontrol, commandfile.into_param().abi(), flags).ok()
}
pub unsafe fn GetBreakpointByIndex2(&self, index: u32) -> ::windows_core::Result<IDebugBreakpoint2> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetBreakpointByIndex2)(::windows_core::Interface::as_raw(self), index, &mut result__).from_abi(result__)
}
pub unsafe fn GetBreakpointById2(&self, id: u32) -> ::windows_core::Result<IDebugBreakpoint2> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetBreakpointById2)(::windows_core::Interface::as_raw(self), id, &mut result__).from_abi(result__)
}
pub unsafe fn AddBreakpoint2(&self, r#type: u32, desiredid: u32) -> ::windows_core::Result<IDebugBreakpoint2> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).AddBreakpoint2)(::windows_core::Interface::as_raw(self), r#type, desiredid, &mut result__).from_abi(result__)
}
pub unsafe fn RemoveBreakpoint2<P0>(&self, bp: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IDebugBreakpoint2>,
{
(::windows_core::Interface::vtable(self).RemoveBreakpoint2)(::windows_core::Interface::as_raw(self), bp.into_param().abi()).ok()
}
pub unsafe fn AddExtensionWide<P0>(&self, path: P0, flags: u32) -> ::windows_core::Result<u64>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).AddExtensionWide)(::windows_core::Interface::as_raw(self), path.into_param().abi(), flags, &mut result__).from_abi(result__)
}
pub unsafe fn GetExtensionByPathWide<P0>(&self, path: P0) -> ::windows_core::Result<u64>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetExtensionByPathWide)(::windows_core::Interface::as_raw(self), path.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn CallExtensionWide<P0, P1>(&self, handle: u64, function: P0, arguments: P1) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
P1: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).CallExtensionWide)(::windows_core::Interface::as_raw(self), handle, function.into_param().abi(), arguments.into_param().abi()).ok()
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn GetExtensionFunctionWide<P0>(&self, handle: u64, funcname: P0, function: *mut super::super::super::super::Foundation::FARPROC) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).GetExtensionFunctionWide)(::windows_core::Interface::as_raw(self), handle, funcname.into_param().abi(), function).ok()
}
pub unsafe fn GetEventFilterTextWide(&self, index: u32, buffer: ::core::option::Option<&mut [u16]>, textsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetEventFilterTextWide)(::windows_core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(textsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetEventFilterCommandWide(&self, index: u32, buffer: ::core::option::Option<&mut [u16]>, commandsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetEventFilterCommandWide)(::windows_core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(commandsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetEventFilterCommandWide<P0>(&self, index: u32, command: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).SetEventFilterCommandWide)(::windows_core::Interface::as_raw(self), index, command.into_param().abi()).ok()
}
pub unsafe fn GetSpecificFilterArgumentWide(&self, index: u32, buffer: ::core::option::Option<&mut [u16]>, argumentsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSpecificFilterArgumentWide)(::windows_core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(argumentsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetSpecificFilterArgumentWide<P0>(&self, index: u32, argument: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).SetSpecificFilterArgumentWide)(::windows_core::Interface::as_raw(self), index, argument.into_param().abi()).ok()
}
pub unsafe fn GetExceptionFilterSecondCommandWide(&self, index: u32, buffer: ::core::option::Option<&mut [u16]>, commandsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetExceptionFilterSecondCommandWide)(::windows_core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(commandsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetExceptionFilterSecondCommandWide<P0>(&self, index: u32, command: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).SetExceptionFilterSecondCommandWide)(::windows_core::Interface::as_raw(self), index, command.into_param().abi()).ok()
}
pub unsafe fn GetLastEventInformationWide(&self, r#type: *mut u32, processid: *mut u32, threadid: *mut u32, extrainformation: ::core::option::Option<*mut ::core::ffi::c_void>, extrainformationsize: u32, extrainformationused: ::core::option::Option<*mut u32>, description: ::core::option::Option<&mut [u16]>, descriptionused: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetLastEventInformationWide)(
::windows_core::Interface::as_raw(self),
r#type,
processid,
threadid,
::core::mem::transmute(extrainformation.unwrap_or(::std::ptr::null_mut())),
extrainformationsize,
::core::mem::transmute(extrainformationused.unwrap_or(::std::ptr::null_mut())),
::core::mem::transmute(description.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
description.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(descriptionused.unwrap_or(::std::ptr::null_mut())),
)
.ok()
}
pub unsafe fn GetTextReplacementWide<P0>(&self, srctext: P0, index: u32, srcbuffer: ::core::option::Option<&mut [u16]>, srcsize: ::core::option::Option<*mut u32>, dstbuffer: ::core::option::Option<&mut [u16]>, dstsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).GetTextReplacementWide)(
::windows_core::Interface::as_raw(self),
srctext.into_param().abi(),
index,
::core::mem::transmute(srcbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
srcbuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(srcsize.unwrap_or(::std::ptr::null_mut())),
::core::mem::transmute(dstbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
dstbuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(dstsize.unwrap_or(::std::ptr::null_mut())),
)
.ok()
}
pub unsafe fn SetTextReplacementWide<P0, P1>(&self, srctext: P0, dsttext: P1) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
P1: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).SetTextReplacementWide)(::windows_core::Interface::as_raw(self), srctext.into_param().abi(), dsttext.into_param().abi()).ok()
}
pub unsafe fn SetExpressionSyntaxByNameWide<P0>(&self, abbrevname: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).SetExpressionSyntaxByNameWide)(::windows_core::Interface::as_raw(self), abbrevname.into_param().abi()).ok()
}
pub unsafe fn GetExpressionSyntaxNamesWide(&self, index: u32, fullnamebuffer: ::core::option::Option<&mut [u16]>, fullnamesize: ::core::option::Option<*mut u32>, abbrevnamebuffer: ::core::option::Option<&mut [u16]>, abbrevnamesize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetExpressionSyntaxNamesWide)(
::windows_core::Interface::as_raw(self),
index,
::core::mem::transmute(fullnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
fullnamebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(fullnamesize.unwrap_or(::std::ptr::null_mut())),
::core::mem::transmute(abbrevnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
abbrevnamebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(abbrevnamesize.unwrap_or(::std::ptr::null_mut())),
)
.ok()
}
pub unsafe fn GetEventIndexDescriptionWide<P0>(&self, index: u32, which: u32, buffer: P0, buffersize: u32, descsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).GetEventIndexDescriptionWide)(::windows_core::Interface::as_raw(self), index, which, buffer.into_param().abi(), buffersize, ::core::mem::transmute(descsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetLogFile2(&self, buffer: ::core::option::Option<&mut [u8]>, filesize: ::core::option::Option<*mut u32>, flags: *mut u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetLogFile2)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(filesize.unwrap_or(::std::ptr::null_mut())), flags).ok()
}
pub unsafe fn OpenLogFile2<P0>(&self, file: P0, flags: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).OpenLogFile2)(::windows_core::Interface::as_raw(self), file.into_param().abi(), flags).ok()
}
pub unsafe fn GetLogFile2Wide(&self, buffer: ::core::option::Option<&mut [u16]>, filesize: ::core::option::Option<*mut u32>, flags: *mut u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetLogFile2Wide)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(filesize.unwrap_or(::std::ptr::null_mut())), flags).ok()
}
pub unsafe fn OpenLogFile2Wide<P0>(&self, file: P0, flags: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).OpenLogFile2Wide)(::windows_core::Interface::as_raw(self), file.into_param().abi(), flags).ok()
}
pub unsafe fn GetSystemVersionValues(&self, platformid: *mut u32, win32major: *mut u32, win32minor: *mut u32, kdmajor: ::core::option::Option<*mut u32>, kdminor: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSystemVersionValues)(::windows_core::Interface::as_raw(self), platformid, win32major, win32minor, ::core::mem::transmute(kdmajor.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(kdminor.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetSystemVersionString(&self, which: u32, buffer: ::core::option::Option<&mut [u8]>, stringsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSystemVersionString)(::windows_core::Interface::as_raw(self), which, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(stringsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetSystemVersionStringWide(&self, which: u32, buffer: ::core::option::Option<&mut [u16]>, stringsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSystemVersionStringWide)(::windows_core::Interface::as_raw(self), which, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(stringsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn GetContextStackTrace(&self, startcontext: ::core::option::Option<*const ::core::ffi::c_void>, startcontextsize: u32, frames: ::core::option::Option<&mut [DEBUG_STACK_FRAME]>, framecontexts: ::core::option::Option<*mut ::core::ffi::c_void>, framecontextssize: u32, framecontextsentrysize: u32, framesfilled: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetContextStackTrace)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(startcontext.unwrap_or(::std::ptr::null())), startcontextsize, ::core::mem::transmute(frames.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), frames.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(framecontexts.unwrap_or(::std::ptr::null_mut())), framecontextssize, framecontextsentrysize, ::core::mem::transmute(framesfilled.unwrap_or(::std::ptr::null_mut()))).ok()
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn OutputContextStackTrace(&self, outputcontrol: u32, frames: &[DEBUG_STACK_FRAME], framecontexts: *const ::core::ffi::c_void, framecontextssize: u32, framecontextsentrysize: u32, flags: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).OutputContextStackTrace)(::windows_core::Interface::as_raw(self), outputcontrol, ::core::mem::transmute(frames.as_ptr()), frames.len().try_into().unwrap(), framecontexts, framecontextssize, framecontextsentrysize, flags).ok()
}
pub unsafe fn GetStoredEventInformation(&self, r#type: *mut u32, processid: *mut u32, threadid: *mut u32, context: ::core::option::Option<*mut ::core::ffi::c_void>, contextsize: u32, contextused: ::core::option::Option<*mut u32>, extrainformation: ::core::option::Option<*mut ::core::ffi::c_void>, extrainformationsize: u32, extrainformationused: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetStoredEventInformation)(::windows_core::Interface::as_raw(self), r#type, processid, threadid, ::core::mem::transmute(context.unwrap_or(::std::ptr::null_mut())), contextsize, ::core::mem::transmute(contextused.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(extrainformation.unwrap_or(::std::ptr::null_mut())), extrainformationsize, ::core::mem::transmute(extrainformationused.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetManagedStatus(&self, flags: ::core::option::Option<*mut u32>, whichstring: u32, string: ::core::option::Option<&mut [u8]>, stringneeded: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetManagedStatus)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(flags.unwrap_or(::std::ptr::null_mut())), whichstring, ::core::mem::transmute(string.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), string.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(stringneeded.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetManagedStatusWide(&self, flags: ::core::option::Option<*mut u32>, whichstring: u32, string: ::core::option::Option<&mut [u16]>, stringneeded: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetManagedStatusWide)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(flags.unwrap_or(::std::ptr::null_mut())), whichstring, ::core::mem::transmute(string.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), string.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(stringneeded.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn ResetManagedStatus(&self, flags: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).ResetManagedStatus)(::windows_core::Interface::as_raw(self), flags).ok()
}
}
::windows_core::imp::interface_hierarchy!(IDebugControl4, ::windows_core::IUnknown);
unsafe impl ::windows_core::Interface for IDebugControl4 {
type Vtable = IDebugControl4_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IDebugControl4 {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0x94e60ce9_9b41_4b19_9fc0_6d9eb35272b3);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugControl4_Vtbl {
pub base__: ::windows_core::IUnknown_Vtbl,
pub GetInterrupt: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub SetInterrupt: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32) -> ::windows_core::HRESULT,
pub GetInterruptTimeout: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, seconds: *mut u32) -> ::windows_core::HRESULT,
pub SetInterruptTimeout: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, seconds: u32) -> ::windows_core::HRESULT,
#[cfg(feature = "Win32_Foundation")]
pub GetLogFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PSTR, buffersize: u32, filesize: *mut u32, append: *mut super::super::super::super::Foundation::BOOL) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
GetLogFile: usize,
#[cfg(feature = "Win32_Foundation")]
pub OpenLogFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, file: ::windows_core::PCSTR, append: super::super::super::super::Foundation::BOOL) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
OpenLogFile: usize,
pub CloseLogFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub GetLogMask: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: *mut u32) -> ::windows_core::HRESULT,
pub SetLogMask: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: u32) -> ::windows_core::HRESULT,
pub Input: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PSTR, buffersize: u32, inputsize: *mut u32) -> ::windows_core::HRESULT,
pub ReturnInput: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub Output: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: u32, format: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub OutputVaList: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: u32, format: ::windows_core::PCSTR, args: *const i8) -> ::windows_core::HRESULT,
pub ControlledOutput: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, mask: u32, format: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub ControlledOutputVaList: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, mask: u32, format: ::windows_core::PCSTR, args: *const i8) -> ::windows_core::HRESULT,
pub OutputPrompt: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, format: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub OutputPromptVaList: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, format: ::windows_core::PCSTR, args: *const i8) -> ::windows_core::HRESULT,
pub GetPromptText: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PSTR, buffersize: u32, textsize: *mut u32) -> ::windows_core::HRESULT,
pub OutputCurrentState: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, flags: u32) -> ::windows_core::HRESULT,
pub OutputVersionInformation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32) -> ::windows_core::HRESULT,
pub GetNotifyEventHandle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: *mut u64) -> ::windows_core::HRESULT,
pub SetNotifyEventHandle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64) -> ::windows_core::HRESULT,
pub Assemble: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, instr: ::windows_core::PCSTR, endoffset: *mut u64) -> ::windows_core::HRESULT,
pub Disassemble: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, flags: u32, buffer: ::windows_core::PSTR, buffersize: u32, disassemblysize: *mut u32, endoffset: *mut u64) -> ::windows_core::HRESULT,
pub GetDisassembleEffectiveOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows_core::HRESULT,
pub OutputDisassembly: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, offset: u64, flags: u32, endoffset: *mut u64) -> ::windows_core::HRESULT,
pub OutputDisassemblyLines: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, previouslines: u32, totallines: u32, offset: u64, flags: u32, offsetline: *mut u32, startoffset: *mut u64, endoffset: *mut u64, lineoffsets: *mut u64) -> ::windows_core::HRESULT,
pub GetNearInstruction: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, delta: i32, nearoffset: *mut u64) -> ::windows_core::HRESULT,
#[cfg(feature = "Win32_Foundation")]
pub GetStackTrace: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, frameoffset: u64, stackoffset: u64, instructionoffset: u64, frames: *mut DEBUG_STACK_FRAME, framessize: u32, framesfilled: *mut u32) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
GetStackTrace: usize,
pub GetReturnOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows_core::HRESULT,
#[cfg(feature = "Win32_Foundation")]
pub OutputStackTrace: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, frames: *const DEBUG_STACK_FRAME, framessize: u32, flags: u32) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
OutputStackTrace: usize,
pub GetDebuggeeType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, class: *mut u32, qualifier: *mut u32) -> ::windows_core::HRESULT,
pub GetActualProcessorType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: *mut u32) -> ::windows_core::HRESULT,
pub GetExecutingProcessorType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: *mut u32) -> ::windows_core::HRESULT,
pub GetNumberPossibleExecutingProcessorTypes: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows_core::HRESULT,
pub GetPossibleExecutingProcessorTypes: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, start: u32, count: u32, types: *mut u32) -> ::windows_core::HRESULT,
pub GetNumberProcessors: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows_core::HRESULT,
pub GetSystemVersion: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, platformid: *mut u32, major: *mut u32, minor: *mut u32, servicepackstring: ::windows_core::PSTR, servicepackstringsize: u32, servicepackstringused: *mut u32, servicepacknumber: *mut u32, buildstring: ::windows_core::PSTR, buildstringsize: u32, buildstringused: *mut u32) -> ::windows_core::HRESULT,
pub GetPageSize: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, size: *mut u32) -> ::windows_core::HRESULT,
pub IsPointer64Bit: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub ReadBugCheckData: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, code: *mut u32, arg1: *mut u64, arg2: *mut u64, arg3: *mut u64, arg4: *mut u64) -> ::windows_core::HRESULT,
pub GetNumberSupportedProcessorTypes: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows_core::HRESULT,
pub GetSupportedProcessorTypes: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, start: u32, count: u32, types: *mut u32) -> ::windows_core::HRESULT,
pub GetProcessorTypeNames: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: u32, fullnamebuffer: ::windows_core::PSTR, fullnamebuffersize: u32, fullnamesize: *mut u32, abbrevnamebuffer: ::windows_core::PSTR, abbrevnamebuffersize: u32, abbrevnamesize: *mut u32) -> ::windows_core::HRESULT,
pub GetEffectiveProcessorType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: *mut u32) -> ::windows_core::HRESULT,
pub SetEffectiveProcessorType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: u32) -> ::windows_core::HRESULT,
pub GetExecutionStatus: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, status: *mut u32) -> ::windows_core::HRESULT,
pub SetExecutionStatus: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, status: u32) -> ::windows_core::HRESULT,
pub GetCodeLevel: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, level: *mut u32) -> ::windows_core::HRESULT,
pub SetCodeLevel: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, level: u32) -> ::windows_core::HRESULT,
pub GetEngineOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: *mut u32) -> ::windows_core::HRESULT,
pub AddEngineOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows_core::HRESULT,
pub RemoveEngineOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows_core::HRESULT,
pub SetEngineOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows_core::HRESULT,
pub GetSystemErrorControl: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputlevel: *mut u32, breaklevel: *mut u32) -> ::windows_core::HRESULT,
pub SetSystemErrorControl: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputlevel: u32, breaklevel: u32) -> ::windows_core::HRESULT,
pub GetTextMacro: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, slot: u32, buffer: ::windows_core::PSTR, buffersize: u32, macrosize: *mut u32) -> ::windows_core::HRESULT,
pub SetTextMacro: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, slot: u32, r#macro: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub GetRadix: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, radix: *mut u32) -> ::windows_core::HRESULT,
pub SetRadix: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, radix: u32) -> ::windows_core::HRESULT,
#[cfg(feature = "Win32_Foundation")]
pub Evaluate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, expression: ::windows_core::PCSTR, desiredtype: u32, value: *mut DEBUG_VALUE, remainderindex: *mut u32) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
Evaluate: usize,
#[cfg(feature = "Win32_Foundation")]
pub CoerceValue: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#in: *const DEBUG_VALUE, outtype: u32, out: *mut DEBUG_VALUE) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
CoerceValue: usize,
#[cfg(feature = "Win32_Foundation")]
pub CoerceValues: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: u32, r#in: *const DEBUG_VALUE, outtypes: *const u32, out: *mut DEBUG_VALUE) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
CoerceValues: usize,
pub Execute: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, command: ::windows_core::PCSTR, flags: u32) -> ::windows_core::HRESULT,
pub ExecuteCommandFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, commandfile: ::windows_core::PCSTR, flags: u32) -> ::windows_core::HRESULT,
pub GetNumberBreakpoints: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows_core::HRESULT,
pub GetBreakpointByIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, bp: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub GetBreakpointById: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: u32, bp: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub GetBreakpointParameters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: u32, ids: *const u32, start: u32, params: *mut DEBUG_BREAKPOINT_PARAMETERS) -> ::windows_core::HRESULT,
pub AddBreakpoint: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: u32, desiredid: u32, bp: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub RemoveBreakpoint: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, bp: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub AddExtension: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, path: ::windows_core::PCSTR, flags: u32, handle: *mut u64) -> ::windows_core::HRESULT,
pub RemoveExtension: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64) -> ::windows_core::HRESULT,
pub GetExtensionByPath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, path: ::windows_core::PCSTR, handle: *mut u64) -> ::windows_core::HRESULT,
pub CallExtension: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64, function: ::windows_core::PCSTR, arguments: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
#[cfg(feature = "Win32_Foundation")]
pub GetExtensionFunction: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64, funcname: ::windows_core::PCSTR, function: *mut super::super::super::super::Foundation::FARPROC) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
GetExtensionFunction: usize,
#[cfg(feature = "Win32_System_Kernel")]
pub GetWindbgExtensionApis32: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, api: *mut WINDBG_EXTENSION_APIS32) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_System_Kernel"))]
GetWindbgExtensionApis32: usize,
#[cfg(feature = "Win32_System_Kernel")]
pub GetWindbgExtensionApis64: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, api: *mut WINDBG_EXTENSION_APIS64) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_System_Kernel"))]
GetWindbgExtensionApis64: usize,
pub GetNumberEventFilters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, specificevents: *mut u32, specificexceptions: *mut u32, arbitraryexceptions: *mut u32) -> ::windows_core::HRESULT,
pub GetEventFilterText: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows_core::PSTR, buffersize: u32, textsize: *mut u32) -> ::windows_core::HRESULT,
pub GetEventFilterCommand: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows_core::PSTR, buffersize: u32, commandsize: *mut u32) -> ::windows_core::HRESULT,
pub SetEventFilterCommand: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, command: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub GetSpecificFilterParameters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, start: u32, count: u32, params: *mut DEBUG_SPECIFIC_FILTER_PARAMETERS) -> ::windows_core::HRESULT,
pub SetSpecificFilterParameters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, start: u32, count: u32, params: *const DEBUG_SPECIFIC_FILTER_PARAMETERS) -> ::windows_core::HRESULT,
pub GetSpecificFilterArgument: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows_core::PSTR, buffersize: u32, argumentsize: *mut u32) -> ::windows_core::HRESULT,
pub SetSpecificFilterArgument: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, argument: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub GetExceptionFilterParameters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: u32, codes: *const u32, start: u32, params: *mut DEBUG_EXCEPTION_FILTER_PARAMETERS) -> ::windows_core::HRESULT,
pub SetExceptionFilterParameters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: u32, params: *const DEBUG_EXCEPTION_FILTER_PARAMETERS) -> ::windows_core::HRESULT,
pub GetExceptionFilterSecondCommand: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows_core::PSTR, buffersize: u32, commandsize: *mut u32) -> ::windows_core::HRESULT,
pub SetExceptionFilterSecondCommand: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, command: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub WaitForEvent: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, timeout: u32) -> ::windows_core::HRESULT,
pub GetLastEventInformation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: *mut u32, processid: *mut u32, threadid: *mut u32, extrainformation: *mut ::core::ffi::c_void, extrainformationsize: u32, extrainformationused: *mut u32, description: ::windows_core::PSTR, descriptionsize: u32, descriptionused: *mut u32) -> ::windows_core::HRESULT,
pub GetCurrentTimeDate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, timedate: *mut u32) -> ::windows_core::HRESULT,
pub GetCurrentSystemUpTime: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, uptime: *mut u32) -> ::windows_core::HRESULT,
pub GetDumpFormatFlags: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, formatflags: *mut u32) -> ::windows_core::HRESULT,
pub GetNumberTextReplacements: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, numrepl: *mut u32) -> ::windows_core::HRESULT,
pub GetTextReplacement: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, srctext: ::windows_core::PCSTR, index: u32, srcbuffer: ::windows_core::PSTR, srcbuffersize: u32, srcsize: *mut u32, dstbuffer: ::windows_core::PSTR, dstbuffersize: u32, dstsize: *mut u32) -> ::windows_core::HRESULT,
pub SetTextReplacement: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, srctext: ::windows_core::PCSTR, dsttext: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub RemoveTextReplacements: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub OutputTextReplacements: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, flags: u32) -> ::windows_core::HRESULT,
pub GetAssemblyOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: *mut u32) -> ::windows_core::HRESULT,
pub AddAssemblyOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows_core::HRESULT,
pub RemoveAssemblyOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows_core::HRESULT,
pub SetAssemblyOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows_core::HRESULT,
pub GetExpressionSyntax: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: *mut u32) -> ::windows_core::HRESULT,
pub SetExpressionSyntax: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32) -> ::windows_core::HRESULT,
pub SetExpressionSyntaxByName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, abbrevname: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub GetNumberExpressionSyntaxes: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows_core::HRESULT,
pub GetExpressionSyntaxNames: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, fullnamebuffer: ::windows_core::PSTR, fullnamebuffersize: u32, fullnamesize: *mut u32, abbrevnamebuffer: ::windows_core::PSTR, abbrevnamebuffersize: u32, abbrevnamesize: *mut u32) -> ::windows_core::HRESULT,
pub GetNumberEvents: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, events: *mut u32) -> ::windows_core::HRESULT,
pub GetEventIndexDescription: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, which: u32, buffer: ::windows_core::PCSTR, buffersize: u32, descsize: *mut u32) -> ::windows_core::HRESULT,
pub GetCurrentEventIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: *mut u32) -> ::windows_core::HRESULT,
pub SetNextEventIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, relation: u32, value: u32, nextindex: *mut u32) -> ::windows_core::HRESULT,
#[cfg(feature = "Win32_Foundation")]
pub GetLogFileWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PWSTR, buffersize: u32, filesize: *mut u32, append: *mut super::super::super::super::Foundation::BOOL) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
GetLogFileWide: usize,
#[cfg(feature = "Win32_Foundation")]
pub OpenLogFileWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, file: ::windows_core::PCWSTR, append: super::super::super::super::Foundation::BOOL) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
OpenLogFileWide: usize,
pub InputWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PWSTR, buffersize: u32, inputsize: *mut u32) -> ::windows_core::HRESULT,
pub ReturnInputWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
pub OutputWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: u32, format: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
pub OutputVaListWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: u32, format: ::windows_core::PCWSTR, args: *const i8) -> ::windows_core::HRESULT,
pub ControlledOutputWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, mask: u32, format: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
pub ControlledOutputVaListWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, mask: u32, format: ::windows_core::PCWSTR, args: *const i8) -> ::windows_core::HRESULT,
pub OutputPromptWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, format: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
pub OutputPromptVaListWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, format: ::windows_core::PCWSTR, args: *const i8) -> ::windows_core::HRESULT,
pub GetPromptTextWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PWSTR, buffersize: u32, textsize: *mut u32) -> ::windows_core::HRESULT,
pub AssembleWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, instr: ::windows_core::PCWSTR, endoffset: *mut u64) -> ::windows_core::HRESULT,
pub DisassembleWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, flags: u32, buffer: ::windows_core::PWSTR, buffersize: u32, disassemblysize: *mut u32, endoffset: *mut u64) -> ::windows_core::HRESULT,
pub GetProcessorTypeNamesWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: u32, fullnamebuffer: ::windows_core::PWSTR, fullnamebuffersize: u32, fullnamesize: *mut u32, abbrevnamebuffer: ::windows_core::PWSTR, abbrevnamebuffersize: u32, abbrevnamesize: *mut u32) -> ::windows_core::HRESULT,
pub GetTextMacroWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, slot: u32, buffer: ::windows_core::PWSTR, buffersize: u32, macrosize: *mut u32) -> ::windows_core::HRESULT,
pub SetTextMacroWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, slot: u32, r#macro: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
#[cfg(feature = "Win32_Foundation")]
pub EvaluateWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, expression: ::windows_core::PCWSTR, desiredtype: u32, value: *mut DEBUG_VALUE, remainderindex: *mut u32) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
EvaluateWide: usize,
pub ExecuteWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, command: ::windows_core::PCWSTR, flags: u32) -> ::windows_core::HRESULT,
pub ExecuteCommandFileWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, commandfile: ::windows_core::PCWSTR, flags: u32) -> ::windows_core::HRESULT,
pub GetBreakpointByIndex2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, bp: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub GetBreakpointById2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: u32, bp: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub AddBreakpoint2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: u32, desiredid: u32, bp: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub RemoveBreakpoint2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, bp: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub AddExtensionWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, path: ::windows_core::PCWSTR, flags: u32, handle: *mut u64) -> ::windows_core::HRESULT,
pub GetExtensionByPathWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, path: ::windows_core::PCWSTR, handle: *mut u64) -> ::windows_core::HRESULT,
pub CallExtensionWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64, function: ::windows_core::PCWSTR, arguments: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
#[cfg(feature = "Win32_Foundation")]
pub GetExtensionFunctionWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64, funcname: ::windows_core::PCWSTR, function: *mut super::super::super::super::Foundation::FARPROC) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
GetExtensionFunctionWide: usize,
pub GetEventFilterTextWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows_core::PWSTR, buffersize: u32, textsize: *mut u32) -> ::windows_core::HRESULT,
pub GetEventFilterCommandWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows_core::PWSTR, buffersize: u32, commandsize: *mut u32) -> ::windows_core::HRESULT,
pub SetEventFilterCommandWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, command: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
pub GetSpecificFilterArgumentWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows_core::PWSTR, buffersize: u32, argumentsize: *mut u32) -> ::windows_core::HRESULT,
pub SetSpecificFilterArgumentWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, argument: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
pub GetExceptionFilterSecondCommandWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows_core::PWSTR, buffersize: u32, commandsize: *mut u32) -> ::windows_core::HRESULT,
pub SetExceptionFilterSecondCommandWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, command: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
pub GetLastEventInformationWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: *mut u32, processid: *mut u32, threadid: *mut u32, extrainformation: *mut ::core::ffi::c_void, extrainformationsize: u32, extrainformationused: *mut u32, description: ::windows_core::PWSTR, descriptionsize: u32, descriptionused: *mut u32) -> ::windows_core::HRESULT,
pub GetTextReplacementWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, srctext: ::windows_core::PCWSTR, index: u32, srcbuffer: ::windows_core::PWSTR, srcbuffersize: u32, srcsize: *mut u32, dstbuffer: ::windows_core::PWSTR, dstbuffersize: u32, dstsize: *mut u32) -> ::windows_core::HRESULT,
pub SetTextReplacementWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, srctext: ::windows_core::PCWSTR, dsttext: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
pub SetExpressionSyntaxByNameWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, abbrevname: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
pub GetExpressionSyntaxNamesWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, fullnamebuffer: ::windows_core::PWSTR, fullnamebuffersize: u32, fullnamesize: *mut u32, abbrevnamebuffer: ::windows_core::PWSTR, abbrevnamebuffersize: u32, abbrevnamesize: *mut u32) -> ::windows_core::HRESULT,
pub GetEventIndexDescriptionWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, which: u32, buffer: ::windows_core::PCWSTR, buffersize: u32, descsize: *mut u32) -> ::windows_core::HRESULT,
pub GetLogFile2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PSTR, buffersize: u32, filesize: *mut u32, flags: *mut u32) -> ::windows_core::HRESULT,
pub OpenLogFile2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, file: ::windows_core::PCSTR, flags: u32) -> ::windows_core::HRESULT,
pub GetLogFile2Wide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PWSTR, buffersize: u32, filesize: *mut u32, flags: *mut u32) -> ::windows_core::HRESULT,
pub OpenLogFile2Wide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, file: ::windows_core::PCWSTR, flags: u32) -> ::windows_core::HRESULT,
pub GetSystemVersionValues: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, platformid: *mut u32, win32major: *mut u32, win32minor: *mut u32, kdmajor: *mut u32, kdminor: *mut u32) -> ::windows_core::HRESULT,
pub GetSystemVersionString: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, which: u32, buffer: ::windows_core::PSTR, buffersize: u32, stringsize: *mut u32) -> ::windows_core::HRESULT,
pub GetSystemVersionStringWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, which: u32, buffer: ::windows_core::PWSTR, buffersize: u32, stringsize: *mut u32) -> ::windows_core::HRESULT,
#[cfg(feature = "Win32_Foundation")]
pub GetContextStackTrace: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, startcontext: *const ::core::ffi::c_void, startcontextsize: u32, frames: *mut DEBUG_STACK_FRAME, framessize: u32, framecontexts: *mut ::core::ffi::c_void, framecontextssize: u32, framecontextsentrysize: u32, framesfilled: *mut u32) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
GetContextStackTrace: usize,
#[cfg(feature = "Win32_Foundation")]
pub OutputContextStackTrace: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, frames: *const DEBUG_STACK_FRAME, framessize: u32, framecontexts: *const ::core::ffi::c_void, framecontextssize: u32, framecontextsentrysize: u32, flags: u32) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
OutputContextStackTrace: usize,
pub GetStoredEventInformation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: *mut u32, processid: *mut u32, threadid: *mut u32, context: *mut ::core::ffi::c_void, contextsize: u32, contextused: *mut u32, extrainformation: *mut ::core::ffi::c_void, extrainformationsize: u32, extrainformationused: *mut u32) -> ::windows_core::HRESULT,
pub GetManagedStatus: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: *mut u32, whichstring: u32, string: ::windows_core::PSTR, stringsize: u32, stringneeded: *mut u32) -> ::windows_core::HRESULT,
pub GetManagedStatusWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: *mut u32, whichstring: u32, string: ::windows_core::PWSTR, stringsize: u32, stringneeded: *mut u32) -> ::windows_core::HRESULT,
pub ResetManagedStatus: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32) -> ::windows_core::HRESULT,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IDebugControl5(::windows_core::IUnknown);
impl IDebugControl5 {
pub unsafe fn GetInterrupt(&self) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetInterrupt)(::windows_core::Interface::as_raw(self)).ok()
}
pub unsafe fn SetInterrupt(&self, flags: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetInterrupt)(::windows_core::Interface::as_raw(self), flags).ok()
}
pub unsafe fn GetInterruptTimeout(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetInterruptTimeout)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetInterruptTimeout(&self, seconds: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetInterruptTimeout)(::windows_core::Interface::as_raw(self), seconds).ok()
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn GetLogFile(&self, buffer: ::core::option::Option<&mut [u8]>, filesize: ::core::option::Option<*mut u32>, append: *mut super::super::super::super::Foundation::BOOL) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetLogFile)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(filesize.unwrap_or(::std::ptr::null_mut())), append).ok()
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn OpenLogFile<P0, P1>(&self, file: P0, append: P1) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
P1: ::windows_core::IntoParam<super::super::super::super::Foundation::BOOL>,
{
(::windows_core::Interface::vtable(self).OpenLogFile)(::windows_core::Interface::as_raw(self), file.into_param().abi(), append.into_param().abi()).ok()
}
pub unsafe fn CloseLogFile(&self) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).CloseLogFile)(::windows_core::Interface::as_raw(self)).ok()
}
pub unsafe fn GetLogMask(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetLogMask)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetLogMask(&self, mask: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetLogMask)(::windows_core::Interface::as_raw(self), mask).ok()
}
pub unsafe fn Input(&self, buffer: &mut [u8], inputsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).Input)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_ptr()), buffer.len().try_into().unwrap(), ::core::mem::transmute(inputsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn ReturnInput<P0>(&self, buffer: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).ReturnInput)(::windows_core::Interface::as_raw(self), buffer.into_param().abi()).ok()
}
pub unsafe fn Output<P0>(&self, mask: u32, format: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).Output)(::windows_core::Interface::as_raw(self), mask, format.into_param().abi()).ok()
}
pub unsafe fn OutputVaList<P0>(&self, mask: u32, format: P0, args: *const i8) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).OutputVaList)(::windows_core::Interface::as_raw(self), mask, format.into_param().abi(), args).ok()
}
pub unsafe fn ControlledOutput<P0>(&self, outputcontrol: u32, mask: u32, format: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).ControlledOutput)(::windows_core::Interface::as_raw(self), outputcontrol, mask, format.into_param().abi()).ok()
}
pub unsafe fn ControlledOutputVaList<P0>(&self, outputcontrol: u32, mask: u32, format: P0, args: *const i8) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).ControlledOutputVaList)(::windows_core::Interface::as_raw(self), outputcontrol, mask, format.into_param().abi(), args).ok()
}
pub unsafe fn OutputPrompt<P0>(&self, outputcontrol: u32, format: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).OutputPrompt)(::windows_core::Interface::as_raw(self), outputcontrol, format.into_param().abi()).ok()
}
pub unsafe fn OutputPromptVaList<P0>(&self, outputcontrol: u32, format: P0, args: *const i8) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).OutputPromptVaList)(::windows_core::Interface::as_raw(self), outputcontrol, format.into_param().abi(), args).ok()
}
pub unsafe fn GetPromptText(&self, buffer: ::core::option::Option<&mut [u8]>, textsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetPromptText)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(textsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn OutputCurrentState(&self, outputcontrol: u32, flags: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).OutputCurrentState)(::windows_core::Interface::as_raw(self), outputcontrol, flags).ok()
}
pub unsafe fn OutputVersionInformation(&self, outputcontrol: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).OutputVersionInformation)(::windows_core::Interface::as_raw(self), outputcontrol).ok()
}
pub unsafe fn GetNotifyEventHandle(&self) -> ::windows_core::Result<u64> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetNotifyEventHandle)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetNotifyEventHandle(&self, handle: u64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetNotifyEventHandle)(::windows_core::Interface::as_raw(self), handle).ok()
}
pub unsafe fn Assemble<P0>(&self, offset: u64, instr: P0) -> ::windows_core::Result<u64>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).Assemble)(::windows_core::Interface::as_raw(self), offset, instr.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn Disassemble(&self, offset: u64, flags: u32, buffer: ::core::option::Option<&mut [u8]>, disassemblysize: ::core::option::Option<*mut u32>, endoffset: *mut u64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).Disassemble)(::windows_core::Interface::as_raw(self), offset, flags, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(disassemblysize.unwrap_or(::std::ptr::null_mut())), endoffset).ok()
}
pub unsafe fn GetDisassembleEffectiveOffset(&self) -> ::windows_core::Result<u64> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetDisassembleEffectiveOffset)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn OutputDisassembly(&self, outputcontrol: u32, offset: u64, flags: u32) -> ::windows_core::Result<u64> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).OutputDisassembly)(::windows_core::Interface::as_raw(self), outputcontrol, offset, flags, &mut result__).from_abi(result__)
}
pub unsafe fn OutputDisassemblyLines(&self, outputcontrol: u32, previouslines: u32, offset: u64, flags: u32, offsetline: ::core::option::Option<*mut u32>, startoffset: ::core::option::Option<*mut u64>, endoffset: ::core::option::Option<*mut u64>, lineoffsets: ::core::option::Option<&mut [u64]>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).OutputDisassemblyLines)(::windows_core::Interface::as_raw(self), outputcontrol, previouslines, lineoffsets.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), offset, flags, ::core::mem::transmute(offsetline.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(startoffset.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(endoffset.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(lineoffsets.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok()
}
pub unsafe fn GetNearInstruction(&self, offset: u64, delta: i32) -> ::windows_core::Result<u64> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetNearInstruction)(::windows_core::Interface::as_raw(self), offset, delta, &mut result__).from_abi(result__)
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn GetStackTrace(&self, frameoffset: u64, stackoffset: u64, instructionoffset: u64, frames: &mut [DEBUG_STACK_FRAME], framesfilled: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetStackTrace)(::windows_core::Interface::as_raw(self), frameoffset, stackoffset, instructionoffset, ::core::mem::transmute(frames.as_ptr()), frames.len().try_into().unwrap(), ::core::mem::transmute(framesfilled.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetReturnOffset(&self) -> ::windows_core::Result<u64> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetReturnOffset)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn OutputStackTrace(&self, outputcontrol: u32, frames: ::core::option::Option<&[DEBUG_STACK_FRAME]>, flags: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).OutputStackTrace)(::windows_core::Interface::as_raw(self), outputcontrol, ::core::mem::transmute(frames.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), frames.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), flags).ok()
}
pub unsafe fn GetDebuggeeType(&self, class: *mut u32, qualifier: *mut u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetDebuggeeType)(::windows_core::Interface::as_raw(self), class, qualifier).ok()
}
pub unsafe fn GetActualProcessorType(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetActualProcessorType)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetExecutingProcessorType(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetExecutingProcessorType)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetNumberPossibleExecutingProcessorTypes(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetNumberPossibleExecutingProcessorTypes)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetPossibleExecutingProcessorTypes(&self, start: u32, types: &mut [u32]) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetPossibleExecutingProcessorTypes)(::windows_core::Interface::as_raw(self), start, types.len().try_into().unwrap(), ::core::mem::transmute(types.as_ptr())).ok()
}
pub unsafe fn GetNumberProcessors(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetNumberProcessors)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetSystemVersion(&self, platformid: *mut u32, major: *mut u32, minor: *mut u32, servicepackstring: ::core::option::Option<&mut [u8]>, servicepackstringused: ::core::option::Option<*mut u32>, servicepacknumber: *mut u32, buildstring: ::core::option::Option<&mut [u8]>, buildstringused: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSystemVersion)(
::windows_core::Interface::as_raw(self),
platformid,
major,
minor,
::core::mem::transmute(servicepackstring.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
servicepackstring.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(servicepackstringused.unwrap_or(::std::ptr::null_mut())),
servicepacknumber,
::core::mem::transmute(buildstring.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
buildstring.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(buildstringused.unwrap_or(::std::ptr::null_mut())),
)
.ok()
}
pub unsafe fn GetPageSize(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetPageSize)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn IsPointer64Bit(&self) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).IsPointer64Bit)(::windows_core::Interface::as_raw(self)).ok()
}
pub unsafe fn ReadBugCheckData(&self, code: *mut u32, arg1: *mut u64, arg2: *mut u64, arg3: *mut u64, arg4: *mut u64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).ReadBugCheckData)(::windows_core::Interface::as_raw(self), code, arg1, arg2, arg3, arg4).ok()
}
pub unsafe fn GetNumberSupportedProcessorTypes(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetNumberSupportedProcessorTypes)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetSupportedProcessorTypes(&self, start: u32, types: &mut [u32]) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSupportedProcessorTypes)(::windows_core::Interface::as_raw(self), start, types.len().try_into().unwrap(), ::core::mem::transmute(types.as_ptr())).ok()
}
pub unsafe fn GetProcessorTypeNames(&self, r#type: u32, fullnamebuffer: ::core::option::Option<&mut [u8]>, fullnamesize: ::core::option::Option<*mut u32>, abbrevnamebuffer: ::core::option::Option<&mut [u8]>, abbrevnamesize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetProcessorTypeNames)(
::windows_core::Interface::as_raw(self),
r#type,
::core::mem::transmute(fullnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
fullnamebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(fullnamesize.unwrap_or(::std::ptr::null_mut())),
::core::mem::transmute(abbrevnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
abbrevnamebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(abbrevnamesize.unwrap_or(::std::ptr::null_mut())),
)
.ok()
}
pub unsafe fn GetEffectiveProcessorType(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetEffectiveProcessorType)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetEffectiveProcessorType(&self, r#type: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetEffectiveProcessorType)(::windows_core::Interface::as_raw(self), r#type).ok()
}
pub unsafe fn GetExecutionStatus(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetExecutionStatus)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetExecutionStatus(&self, status: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetExecutionStatus)(::windows_core::Interface::as_raw(self), status).ok()
}
pub unsafe fn GetCodeLevel(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetCodeLevel)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetCodeLevel(&self, level: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetCodeLevel)(::windows_core::Interface::as_raw(self), level).ok()
}
pub unsafe fn GetEngineOptions(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetEngineOptions)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn AddEngineOptions(&self, options: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).AddEngineOptions)(::windows_core::Interface::as_raw(self), options).ok()
}
pub unsafe fn RemoveEngineOptions(&self, options: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).RemoveEngineOptions)(::windows_core::Interface::as_raw(self), options).ok()
}
pub unsafe fn SetEngineOptions(&self, options: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetEngineOptions)(::windows_core::Interface::as_raw(self), options).ok()
}
pub unsafe fn GetSystemErrorControl(&self, outputlevel: *mut u32, breaklevel: *mut u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSystemErrorControl)(::windows_core::Interface::as_raw(self), outputlevel, breaklevel).ok()
}
pub unsafe fn SetSystemErrorControl(&self, outputlevel: u32, breaklevel: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetSystemErrorControl)(::windows_core::Interface::as_raw(self), outputlevel, breaklevel).ok()
}
pub unsafe fn GetTextMacro(&self, slot: u32, buffer: ::core::option::Option<&mut [u8]>, macrosize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetTextMacro)(::windows_core::Interface::as_raw(self), slot, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(macrosize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetTextMacro<P0>(&self, slot: u32, r#macro: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).SetTextMacro)(::windows_core::Interface::as_raw(self), slot, r#macro.into_param().abi()).ok()
}
pub unsafe fn GetRadix(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetRadix)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetRadix(&self, radix: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetRadix)(::windows_core::Interface::as_raw(self), radix).ok()
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn Evaluate<P0>(&self, expression: P0, desiredtype: u32, value: *mut DEBUG_VALUE, remainderindex: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).Evaluate)(::windows_core::Interface::as_raw(self), expression.into_param().abi(), desiredtype, value, ::core::mem::transmute(remainderindex.unwrap_or(::std::ptr::null_mut()))).ok()
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn CoerceValue(&self, r#in: *const DEBUG_VALUE, outtype: u32, out: *mut DEBUG_VALUE) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).CoerceValue)(::windows_core::Interface::as_raw(self), r#in, outtype, out).ok()
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn CoerceValues(&self, count: u32, r#in: *const DEBUG_VALUE, outtypes: *const u32, out: *mut DEBUG_VALUE) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).CoerceValues)(::windows_core::Interface::as_raw(self), count, r#in, outtypes, out).ok()
}
pub unsafe fn Execute<P0>(&self, outputcontrol: u32, command: P0, flags: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).Execute)(::windows_core::Interface::as_raw(self), outputcontrol, command.into_param().abi(), flags).ok()
}
pub unsafe fn ExecuteCommandFile<P0>(&self, outputcontrol: u32, commandfile: P0, flags: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).ExecuteCommandFile)(::windows_core::Interface::as_raw(self), outputcontrol, commandfile.into_param().abi(), flags).ok()
}
pub unsafe fn GetNumberBreakpoints(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetNumberBreakpoints)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetBreakpointByIndex(&self, index: u32) -> ::windows_core::Result<IDebugBreakpoint> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetBreakpointByIndex)(::windows_core::Interface::as_raw(self), index, &mut result__).from_abi(result__)
}
pub unsafe fn GetBreakpointById(&self, id: u32) -> ::windows_core::Result<IDebugBreakpoint> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetBreakpointById)(::windows_core::Interface::as_raw(self), id, &mut result__).from_abi(result__)
}
pub unsafe fn GetBreakpointParameters(&self, count: u32, ids: ::core::option::Option<*const u32>, start: u32, params: *mut DEBUG_BREAKPOINT_PARAMETERS) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetBreakpointParameters)(::windows_core::Interface::as_raw(self), count, ::core::mem::transmute(ids.unwrap_or(::std::ptr::null())), start, params).ok()
}
pub unsafe fn AddBreakpoint(&self, r#type: u32, desiredid: u32) -> ::windows_core::Result<IDebugBreakpoint> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).AddBreakpoint)(::windows_core::Interface::as_raw(self), r#type, desiredid, &mut result__).from_abi(result__)
}
pub unsafe fn RemoveBreakpoint<P0>(&self, bp: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IDebugBreakpoint>,
{
(::windows_core::Interface::vtable(self).RemoveBreakpoint)(::windows_core::Interface::as_raw(self), bp.into_param().abi()).ok()
}
pub unsafe fn AddExtension<P0>(&self, path: P0, flags: u32) -> ::windows_core::Result<u64>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).AddExtension)(::windows_core::Interface::as_raw(self), path.into_param().abi(), flags, &mut result__).from_abi(result__)
}
pub unsafe fn RemoveExtension(&self, handle: u64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).RemoveExtension)(::windows_core::Interface::as_raw(self), handle).ok()
}
pub unsafe fn GetExtensionByPath<P0>(&self, path: P0) -> ::windows_core::Result<u64>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetExtensionByPath)(::windows_core::Interface::as_raw(self), path.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn CallExtension<P0, P1>(&self, handle: u64, function: P0, arguments: P1) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
P1: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).CallExtension)(::windows_core::Interface::as_raw(self), handle, function.into_param().abi(), arguments.into_param().abi()).ok()
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn GetExtensionFunction<P0>(&self, handle: u64, funcname: P0, function: *mut super::super::super::super::Foundation::FARPROC) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).GetExtensionFunction)(::windows_core::Interface::as_raw(self), handle, funcname.into_param().abi(), function).ok()
}
#[doc = "Required features: `\"Win32_System_Kernel\"`"]
#[cfg(feature = "Win32_System_Kernel")]
pub unsafe fn GetWindbgExtensionApis32(&self, api: *mut WINDBG_EXTENSION_APIS32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetWindbgExtensionApis32)(::windows_core::Interface::as_raw(self), api).ok()
}
#[doc = "Required features: `\"Win32_System_Kernel\"`"]
#[cfg(feature = "Win32_System_Kernel")]
pub unsafe fn GetWindbgExtensionApis64(&self, api: *mut WINDBG_EXTENSION_APIS64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetWindbgExtensionApis64)(::windows_core::Interface::as_raw(self), api).ok()
}
pub unsafe fn GetNumberEventFilters(&self, specificevents: *mut u32, specificexceptions: *mut u32, arbitraryexceptions: *mut u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetNumberEventFilters)(::windows_core::Interface::as_raw(self), specificevents, specificexceptions, arbitraryexceptions).ok()
}
pub unsafe fn GetEventFilterText(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, textsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetEventFilterText)(::windows_core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(textsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetEventFilterCommand(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, commandsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetEventFilterCommand)(::windows_core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(commandsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetEventFilterCommand<P0>(&self, index: u32, command: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).SetEventFilterCommand)(::windows_core::Interface::as_raw(self), index, command.into_param().abi()).ok()
}
pub unsafe fn GetSpecificFilterParameters(&self, start: u32, params: &mut [DEBUG_SPECIFIC_FILTER_PARAMETERS]) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSpecificFilterParameters)(::windows_core::Interface::as_raw(self), start, params.len().try_into().unwrap(), ::core::mem::transmute(params.as_ptr())).ok()
}
pub unsafe fn SetSpecificFilterParameters(&self, start: u32, params: &[DEBUG_SPECIFIC_FILTER_PARAMETERS]) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetSpecificFilterParameters)(::windows_core::Interface::as_raw(self), start, params.len().try_into().unwrap(), ::core::mem::transmute(params.as_ptr())).ok()
}
pub unsafe fn GetSpecificFilterArgument(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, argumentsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSpecificFilterArgument)(::windows_core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(argumentsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetSpecificFilterArgument<P0>(&self, index: u32, argument: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).SetSpecificFilterArgument)(::windows_core::Interface::as_raw(self), index, argument.into_param().abi()).ok()
}
pub unsafe fn GetExceptionFilterParameters(&self, count: u32, codes: ::core::option::Option<*const u32>, start: u32, params: *mut DEBUG_EXCEPTION_FILTER_PARAMETERS) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetExceptionFilterParameters)(::windows_core::Interface::as_raw(self), count, ::core::mem::transmute(codes.unwrap_or(::std::ptr::null())), start, params).ok()
}
pub unsafe fn SetExceptionFilterParameters(&self, params: &[DEBUG_EXCEPTION_FILTER_PARAMETERS]) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetExceptionFilterParameters)(::windows_core::Interface::as_raw(self), params.len().try_into().unwrap(), ::core::mem::transmute(params.as_ptr())).ok()
}
pub unsafe fn GetExceptionFilterSecondCommand(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, commandsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetExceptionFilterSecondCommand)(::windows_core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(commandsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetExceptionFilterSecondCommand<P0>(&self, index: u32, command: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).SetExceptionFilterSecondCommand)(::windows_core::Interface::as_raw(self), index, command.into_param().abi()).ok()
}
pub unsafe fn WaitForEvent(&self, flags: u32, timeout: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).WaitForEvent)(::windows_core::Interface::as_raw(self), flags, timeout).ok()
}
pub unsafe fn GetLastEventInformation(&self, r#type: *mut u32, processid: *mut u32, threadid: *mut u32, extrainformation: ::core::option::Option<*mut ::core::ffi::c_void>, extrainformationsize: u32, extrainformationused: ::core::option::Option<*mut u32>, description: ::core::option::Option<&mut [u8]>, descriptionused: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetLastEventInformation)(
::windows_core::Interface::as_raw(self),
r#type,
processid,
threadid,
::core::mem::transmute(extrainformation.unwrap_or(::std::ptr::null_mut())),
extrainformationsize,
::core::mem::transmute(extrainformationused.unwrap_or(::std::ptr::null_mut())),
::core::mem::transmute(description.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
description.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(descriptionused.unwrap_or(::std::ptr::null_mut())),
)
.ok()
}
pub unsafe fn GetCurrentTimeDate(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetCurrentTimeDate)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetCurrentSystemUpTime(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetCurrentSystemUpTime)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetDumpFormatFlags(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetDumpFormatFlags)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetNumberTextReplacements(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetNumberTextReplacements)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetTextReplacement<P0>(&self, srctext: P0, index: u32, srcbuffer: ::core::option::Option<&mut [u8]>, srcsize: ::core::option::Option<*mut u32>, dstbuffer: ::core::option::Option<&mut [u8]>, dstsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).GetTextReplacement)(
::windows_core::Interface::as_raw(self),
srctext.into_param().abi(),
index,
::core::mem::transmute(srcbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
srcbuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(srcsize.unwrap_or(::std::ptr::null_mut())),
::core::mem::transmute(dstbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
dstbuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(dstsize.unwrap_or(::std::ptr::null_mut())),
)
.ok()
}
pub unsafe fn SetTextReplacement<P0, P1>(&self, srctext: P0, dsttext: P1) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
P1: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).SetTextReplacement)(::windows_core::Interface::as_raw(self), srctext.into_param().abi(), dsttext.into_param().abi()).ok()
}
pub unsafe fn RemoveTextReplacements(&self) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).RemoveTextReplacements)(::windows_core::Interface::as_raw(self)).ok()
}
pub unsafe fn OutputTextReplacements(&self, outputcontrol: u32, flags: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).OutputTextReplacements)(::windows_core::Interface::as_raw(self), outputcontrol, flags).ok()
}
pub unsafe fn GetAssemblyOptions(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetAssemblyOptions)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn AddAssemblyOptions(&self, options: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).AddAssemblyOptions)(::windows_core::Interface::as_raw(self), options).ok()
}
pub unsafe fn RemoveAssemblyOptions(&self, options: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).RemoveAssemblyOptions)(::windows_core::Interface::as_raw(self), options).ok()
}
pub unsafe fn SetAssemblyOptions(&self, options: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetAssemblyOptions)(::windows_core::Interface::as_raw(self), options).ok()
}
pub unsafe fn GetExpressionSyntax(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetExpressionSyntax)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetExpressionSyntax(&self, flags: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetExpressionSyntax)(::windows_core::Interface::as_raw(self), flags).ok()
}
pub unsafe fn SetExpressionSyntaxByName<P0>(&self, abbrevname: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).SetExpressionSyntaxByName)(::windows_core::Interface::as_raw(self), abbrevname.into_param().abi()).ok()
}
pub unsafe fn GetNumberExpressionSyntaxes(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetNumberExpressionSyntaxes)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetExpressionSyntaxNames(&self, index: u32, fullnamebuffer: ::core::option::Option<&mut [u8]>, fullnamesize: ::core::option::Option<*mut u32>, abbrevnamebuffer: ::core::option::Option<&mut [u8]>, abbrevnamesize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetExpressionSyntaxNames)(
::windows_core::Interface::as_raw(self),
index,
::core::mem::transmute(fullnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
fullnamebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(fullnamesize.unwrap_or(::std::ptr::null_mut())),
::core::mem::transmute(abbrevnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
abbrevnamebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(abbrevnamesize.unwrap_or(::std::ptr::null_mut())),
)
.ok()
}
pub unsafe fn GetNumberEvents(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetNumberEvents)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetEventIndexDescription<P0>(&self, index: u32, which: u32, buffer: P0, buffersize: u32, descsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).GetEventIndexDescription)(::windows_core::Interface::as_raw(self), index, which, buffer.into_param().abi(), buffersize, ::core::mem::transmute(descsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetCurrentEventIndex(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetCurrentEventIndex)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetNextEventIndex(&self, relation: u32, value: u32) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).SetNextEventIndex)(::windows_core::Interface::as_raw(self), relation, value, &mut result__).from_abi(result__)
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn GetLogFileWide(&self, buffer: ::core::option::Option<&mut [u16]>, filesize: ::core::option::Option<*mut u32>, append: *mut super::super::super::super::Foundation::BOOL) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetLogFileWide)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(filesize.unwrap_or(::std::ptr::null_mut())), append).ok()
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn OpenLogFileWide<P0, P1>(&self, file: P0, append: P1) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
P1: ::windows_core::IntoParam<super::super::super::super::Foundation::BOOL>,
{
(::windows_core::Interface::vtable(self).OpenLogFileWide)(::windows_core::Interface::as_raw(self), file.into_param().abi(), append.into_param().abi()).ok()
}
pub unsafe fn InputWide(&self, buffer: &mut [u16], inputsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).InputWide)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_ptr()), buffer.len().try_into().unwrap(), ::core::mem::transmute(inputsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn ReturnInputWide<P0>(&self, buffer: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).ReturnInputWide)(::windows_core::Interface::as_raw(self), buffer.into_param().abi()).ok()
}
pub unsafe fn OutputWide<P0>(&self, mask: u32, format: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).OutputWide)(::windows_core::Interface::as_raw(self), mask, format.into_param().abi()).ok()
}
pub unsafe fn OutputVaListWide<P0>(&self, mask: u32, format: P0, args: *const i8) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).OutputVaListWide)(::windows_core::Interface::as_raw(self), mask, format.into_param().abi(), args).ok()
}
pub unsafe fn ControlledOutputWide<P0>(&self, outputcontrol: u32, mask: u32, format: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).ControlledOutputWide)(::windows_core::Interface::as_raw(self), outputcontrol, mask, format.into_param().abi()).ok()
}
pub unsafe fn ControlledOutputVaListWide<P0>(&self, outputcontrol: u32, mask: u32, format: P0, args: *const i8) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).ControlledOutputVaListWide)(::windows_core::Interface::as_raw(self), outputcontrol, mask, format.into_param().abi(), args).ok()
}
pub unsafe fn OutputPromptWide<P0>(&self, outputcontrol: u32, format: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).OutputPromptWide)(::windows_core::Interface::as_raw(self), outputcontrol, format.into_param().abi()).ok()
}
pub unsafe fn OutputPromptVaListWide<P0>(&self, outputcontrol: u32, format: P0, args: *const i8) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).OutputPromptVaListWide)(::windows_core::Interface::as_raw(self), outputcontrol, format.into_param().abi(), args).ok()
}
pub unsafe fn GetPromptTextWide(&self, buffer: ::core::option::Option<&mut [u16]>, textsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetPromptTextWide)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(textsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn AssembleWide<P0>(&self, offset: u64, instr: P0) -> ::windows_core::Result<u64>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).AssembleWide)(::windows_core::Interface::as_raw(self), offset, instr.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn DisassembleWide(&self, offset: u64, flags: u32, buffer: ::core::option::Option<&mut [u16]>, disassemblysize: ::core::option::Option<*mut u32>, endoffset: *mut u64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).DisassembleWide)(::windows_core::Interface::as_raw(self), offset, flags, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(disassemblysize.unwrap_or(::std::ptr::null_mut())), endoffset).ok()
}
pub unsafe fn GetProcessorTypeNamesWide(&self, r#type: u32, fullnamebuffer: ::core::option::Option<&mut [u16]>, fullnamesize: ::core::option::Option<*mut u32>, abbrevnamebuffer: ::core::option::Option<&mut [u16]>, abbrevnamesize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetProcessorTypeNamesWide)(
::windows_core::Interface::as_raw(self),
r#type,
::core::mem::transmute(fullnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
fullnamebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(fullnamesize.unwrap_or(::std::ptr::null_mut())),
::core::mem::transmute(abbrevnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
abbrevnamebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(abbrevnamesize.unwrap_or(::std::ptr::null_mut())),
)
.ok()
}
pub unsafe fn GetTextMacroWide(&self, slot: u32, buffer: ::core::option::Option<&mut [u16]>, macrosize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetTextMacroWide)(::windows_core::Interface::as_raw(self), slot, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(macrosize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetTextMacroWide<P0>(&self, slot: u32, r#macro: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).SetTextMacroWide)(::windows_core::Interface::as_raw(self), slot, r#macro.into_param().abi()).ok()
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn EvaluateWide<P0>(&self, expression: P0, desiredtype: u32, value: *mut DEBUG_VALUE, remainderindex: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).EvaluateWide)(::windows_core::Interface::as_raw(self), expression.into_param().abi(), desiredtype, value, ::core::mem::transmute(remainderindex.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn ExecuteWide<P0>(&self, outputcontrol: u32, command: P0, flags: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).ExecuteWide)(::windows_core::Interface::as_raw(self), outputcontrol, command.into_param().abi(), flags).ok()
}
pub unsafe fn ExecuteCommandFileWide<P0>(&self, outputcontrol: u32, commandfile: P0, flags: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).ExecuteCommandFileWide)(::windows_core::Interface::as_raw(self), outputcontrol, commandfile.into_param().abi(), flags).ok()
}
pub unsafe fn GetBreakpointByIndex2(&self, index: u32) -> ::windows_core::Result<IDebugBreakpoint2> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetBreakpointByIndex2)(::windows_core::Interface::as_raw(self), index, &mut result__).from_abi(result__)
}
pub unsafe fn GetBreakpointById2(&self, id: u32) -> ::windows_core::Result<IDebugBreakpoint2> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetBreakpointById2)(::windows_core::Interface::as_raw(self), id, &mut result__).from_abi(result__)
}
pub unsafe fn AddBreakpoint2(&self, r#type: u32, desiredid: u32) -> ::windows_core::Result<IDebugBreakpoint2> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).AddBreakpoint2)(::windows_core::Interface::as_raw(self), r#type, desiredid, &mut result__).from_abi(result__)
}
pub unsafe fn RemoveBreakpoint2<P0>(&self, bp: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IDebugBreakpoint2>,
{
(::windows_core::Interface::vtable(self).RemoveBreakpoint2)(::windows_core::Interface::as_raw(self), bp.into_param().abi()).ok()
}
pub unsafe fn AddExtensionWide<P0>(&self, path: P0, flags: u32) -> ::windows_core::Result<u64>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).AddExtensionWide)(::windows_core::Interface::as_raw(self), path.into_param().abi(), flags, &mut result__).from_abi(result__)
}
pub unsafe fn GetExtensionByPathWide<P0>(&self, path: P0) -> ::windows_core::Result<u64>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetExtensionByPathWide)(::windows_core::Interface::as_raw(self), path.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn CallExtensionWide<P0, P1>(&self, handle: u64, function: P0, arguments: P1) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
P1: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).CallExtensionWide)(::windows_core::Interface::as_raw(self), handle, function.into_param().abi(), arguments.into_param().abi()).ok()
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn GetExtensionFunctionWide<P0>(&self, handle: u64, funcname: P0, function: *mut super::super::super::super::Foundation::FARPROC) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).GetExtensionFunctionWide)(::windows_core::Interface::as_raw(self), handle, funcname.into_param().abi(), function).ok()
}
pub unsafe fn GetEventFilterTextWide(&self, index: u32, buffer: ::core::option::Option<&mut [u16]>, textsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetEventFilterTextWide)(::windows_core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(textsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetEventFilterCommandWide(&self, index: u32, buffer: ::core::option::Option<&mut [u16]>, commandsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetEventFilterCommandWide)(::windows_core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(commandsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetEventFilterCommandWide<P0>(&self, index: u32, command: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).SetEventFilterCommandWide)(::windows_core::Interface::as_raw(self), index, command.into_param().abi()).ok()
}
pub unsafe fn GetSpecificFilterArgumentWide(&self, index: u32, buffer: ::core::option::Option<&mut [u16]>, argumentsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSpecificFilterArgumentWide)(::windows_core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(argumentsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetSpecificFilterArgumentWide<P0>(&self, index: u32, argument: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).SetSpecificFilterArgumentWide)(::windows_core::Interface::as_raw(self), index, argument.into_param().abi()).ok()
}
pub unsafe fn GetExceptionFilterSecondCommandWide(&self, index: u32, buffer: ::core::option::Option<&mut [u16]>, commandsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetExceptionFilterSecondCommandWide)(::windows_core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(commandsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetExceptionFilterSecondCommandWide<P0>(&self, index: u32, command: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).SetExceptionFilterSecondCommandWide)(::windows_core::Interface::as_raw(self), index, command.into_param().abi()).ok()
}
pub unsafe fn GetLastEventInformationWide(&self, r#type: *mut u32, processid: *mut u32, threadid: *mut u32, extrainformation: ::core::option::Option<*mut ::core::ffi::c_void>, extrainformationsize: u32, extrainformationused: ::core::option::Option<*mut u32>, description: ::core::option::Option<&mut [u16]>, descriptionused: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetLastEventInformationWide)(
::windows_core::Interface::as_raw(self),
r#type,
processid,
threadid,
::core::mem::transmute(extrainformation.unwrap_or(::std::ptr::null_mut())),
extrainformationsize,
::core::mem::transmute(extrainformationused.unwrap_or(::std::ptr::null_mut())),
::core::mem::transmute(description.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
description.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(descriptionused.unwrap_or(::std::ptr::null_mut())),
)
.ok()
}
pub unsafe fn GetTextReplacementWide<P0>(&self, srctext: P0, index: u32, srcbuffer: ::core::option::Option<&mut [u16]>, srcsize: ::core::option::Option<*mut u32>, dstbuffer: ::core::option::Option<&mut [u16]>, dstsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).GetTextReplacementWide)(
::windows_core::Interface::as_raw(self),
srctext.into_param().abi(),
index,
::core::mem::transmute(srcbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
srcbuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(srcsize.unwrap_or(::std::ptr::null_mut())),
::core::mem::transmute(dstbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
dstbuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(dstsize.unwrap_or(::std::ptr::null_mut())),
)
.ok()
}
pub unsafe fn SetTextReplacementWide<P0, P1>(&self, srctext: P0, dsttext: P1) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
P1: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).SetTextReplacementWide)(::windows_core::Interface::as_raw(self), srctext.into_param().abi(), dsttext.into_param().abi()).ok()
}
pub unsafe fn SetExpressionSyntaxByNameWide<P0>(&self, abbrevname: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).SetExpressionSyntaxByNameWide)(::windows_core::Interface::as_raw(self), abbrevname.into_param().abi()).ok()
}
pub unsafe fn GetExpressionSyntaxNamesWide(&self, index: u32, fullnamebuffer: ::core::option::Option<&mut [u16]>, fullnamesize: ::core::option::Option<*mut u32>, abbrevnamebuffer: ::core::option::Option<&mut [u16]>, abbrevnamesize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetExpressionSyntaxNamesWide)(
::windows_core::Interface::as_raw(self),
index,
::core::mem::transmute(fullnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
fullnamebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(fullnamesize.unwrap_or(::std::ptr::null_mut())),
::core::mem::transmute(abbrevnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
abbrevnamebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(abbrevnamesize.unwrap_or(::std::ptr::null_mut())),
)
.ok()
}
pub unsafe fn GetEventIndexDescriptionWide<P0>(&self, index: u32, which: u32, buffer: P0, buffersize: u32, descsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).GetEventIndexDescriptionWide)(::windows_core::Interface::as_raw(self), index, which, buffer.into_param().abi(), buffersize, ::core::mem::transmute(descsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetLogFile2(&self, buffer: ::core::option::Option<&mut [u8]>, filesize: ::core::option::Option<*mut u32>, flags: *mut u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetLogFile2)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(filesize.unwrap_or(::std::ptr::null_mut())), flags).ok()
}
pub unsafe fn OpenLogFile2<P0>(&self, file: P0, flags: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).OpenLogFile2)(::windows_core::Interface::as_raw(self), file.into_param().abi(), flags).ok()
}
pub unsafe fn GetLogFile2Wide(&self, buffer: ::core::option::Option<&mut [u16]>, filesize: ::core::option::Option<*mut u32>, flags: *mut u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetLogFile2Wide)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(filesize.unwrap_or(::std::ptr::null_mut())), flags).ok()
}
pub unsafe fn OpenLogFile2Wide<P0>(&self, file: P0, flags: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).OpenLogFile2Wide)(::windows_core::Interface::as_raw(self), file.into_param().abi(), flags).ok()
}
pub unsafe fn GetSystemVersionValues(&self, platformid: *mut u32, win32major: *mut u32, win32minor: *mut u32, kdmajor: ::core::option::Option<*mut u32>, kdminor: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSystemVersionValues)(::windows_core::Interface::as_raw(self), platformid, win32major, win32minor, ::core::mem::transmute(kdmajor.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(kdminor.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetSystemVersionString(&self, which: u32, buffer: ::core::option::Option<&mut [u8]>, stringsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSystemVersionString)(::windows_core::Interface::as_raw(self), which, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(stringsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetSystemVersionStringWide(&self, which: u32, buffer: ::core::option::Option<&mut [u16]>, stringsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSystemVersionStringWide)(::windows_core::Interface::as_raw(self), which, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(stringsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn GetContextStackTrace(&self, startcontext: ::core::option::Option<*const ::core::ffi::c_void>, startcontextsize: u32, frames: ::core::option::Option<&mut [DEBUG_STACK_FRAME]>, framecontexts: ::core::option::Option<*mut ::core::ffi::c_void>, framecontextssize: u32, framecontextsentrysize: u32, framesfilled: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetContextStackTrace)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(startcontext.unwrap_or(::std::ptr::null())), startcontextsize, ::core::mem::transmute(frames.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), frames.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(framecontexts.unwrap_or(::std::ptr::null_mut())), framecontextssize, framecontextsentrysize, ::core::mem::transmute(framesfilled.unwrap_or(::std::ptr::null_mut()))).ok()
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn OutputContextStackTrace(&self, outputcontrol: u32, frames: &[DEBUG_STACK_FRAME], framecontexts: *const ::core::ffi::c_void, framecontextssize: u32, framecontextsentrysize: u32, flags: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).OutputContextStackTrace)(::windows_core::Interface::as_raw(self), outputcontrol, ::core::mem::transmute(frames.as_ptr()), frames.len().try_into().unwrap(), framecontexts, framecontextssize, framecontextsentrysize, flags).ok()
}
pub unsafe fn GetStoredEventInformation(&self, r#type: *mut u32, processid: *mut u32, threadid: *mut u32, context: ::core::option::Option<*mut ::core::ffi::c_void>, contextsize: u32, contextused: ::core::option::Option<*mut u32>, extrainformation: ::core::option::Option<*mut ::core::ffi::c_void>, extrainformationsize: u32, extrainformationused: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetStoredEventInformation)(::windows_core::Interface::as_raw(self), r#type, processid, threadid, ::core::mem::transmute(context.unwrap_or(::std::ptr::null_mut())), contextsize, ::core::mem::transmute(contextused.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(extrainformation.unwrap_or(::std::ptr::null_mut())), extrainformationsize, ::core::mem::transmute(extrainformationused.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetManagedStatus(&self, flags: ::core::option::Option<*mut u32>, whichstring: u32, string: ::core::option::Option<&mut [u8]>, stringneeded: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetManagedStatus)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(flags.unwrap_or(::std::ptr::null_mut())), whichstring, ::core::mem::transmute(string.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), string.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(stringneeded.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetManagedStatusWide(&self, flags: ::core::option::Option<*mut u32>, whichstring: u32, string: ::core::option::Option<&mut [u16]>, stringneeded: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetManagedStatusWide)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(flags.unwrap_or(::std::ptr::null_mut())), whichstring, ::core::mem::transmute(string.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), string.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(stringneeded.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn ResetManagedStatus(&self, flags: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).ResetManagedStatus)(::windows_core::Interface::as_raw(self), flags).ok()
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn GetStackTraceEx(&self, frameoffset: u64, stackoffset: u64, instructionoffset: u64, frames: &mut [DEBUG_STACK_FRAME_EX], framesfilled: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetStackTraceEx)(::windows_core::Interface::as_raw(self), frameoffset, stackoffset, instructionoffset, ::core::mem::transmute(frames.as_ptr()), frames.len().try_into().unwrap(), ::core::mem::transmute(framesfilled.unwrap_or(::std::ptr::null_mut()))).ok()
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn OutputStackTraceEx(&self, outputcontrol: u32, frames: ::core::option::Option<&[DEBUG_STACK_FRAME_EX]>, flags: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).OutputStackTraceEx)(::windows_core::Interface::as_raw(self), outputcontrol, ::core::mem::transmute(frames.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), frames.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), flags).ok()
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn GetContextStackTraceEx(&self, startcontext: ::core::option::Option<*const ::core::ffi::c_void>, startcontextsize: u32, frames: ::core::option::Option<&mut [DEBUG_STACK_FRAME_EX]>, framecontexts: ::core::option::Option<*mut ::core::ffi::c_void>, framecontextssize: u32, framecontextsentrysize: u32, framesfilled: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetContextStackTraceEx)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(startcontext.unwrap_or(::std::ptr::null())), startcontextsize, ::core::mem::transmute(frames.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), frames.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(framecontexts.unwrap_or(::std::ptr::null_mut())), framecontextssize, framecontextsentrysize, ::core::mem::transmute(framesfilled.unwrap_or(::std::ptr::null_mut()))).ok()
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn OutputContextStackTraceEx(&self, outputcontrol: u32, frames: &[DEBUG_STACK_FRAME_EX], framecontexts: *const ::core::ffi::c_void, framecontextssize: u32, framecontextsentrysize: u32, flags: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).OutputContextStackTraceEx)(::windows_core::Interface::as_raw(self), outputcontrol, ::core::mem::transmute(frames.as_ptr()), frames.len().try_into().unwrap(), framecontexts, framecontextssize, framecontextsentrysize, flags).ok()
}
pub unsafe fn GetBreakpointByGuid(&self, guid: *const ::windows_core::GUID) -> ::windows_core::Result<IDebugBreakpoint3> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetBreakpointByGuid)(::windows_core::Interface::as_raw(self), guid, &mut result__).from_abi(result__)
}
}
::windows_core::imp::interface_hierarchy!(IDebugControl5, ::windows_core::IUnknown);
unsafe impl ::windows_core::Interface for IDebugControl5 {
type Vtable = IDebugControl5_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IDebugControl5 {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0xb2ffe162_2412_429f_8d1d_5bf6dd824696);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugControl5_Vtbl {
pub base__: ::windows_core::IUnknown_Vtbl,
pub GetInterrupt: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub SetInterrupt: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32) -> ::windows_core::HRESULT,
pub GetInterruptTimeout: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, seconds: *mut u32) -> ::windows_core::HRESULT,
pub SetInterruptTimeout: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, seconds: u32) -> ::windows_core::HRESULT,
#[cfg(feature = "Win32_Foundation")]
pub GetLogFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PSTR, buffersize: u32, filesize: *mut u32, append: *mut super::super::super::super::Foundation::BOOL) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
GetLogFile: usize,
#[cfg(feature = "Win32_Foundation")]
pub OpenLogFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, file: ::windows_core::PCSTR, append: super::super::super::super::Foundation::BOOL) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
OpenLogFile: usize,
pub CloseLogFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub GetLogMask: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: *mut u32) -> ::windows_core::HRESULT,
pub SetLogMask: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: u32) -> ::windows_core::HRESULT,
pub Input: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PSTR, buffersize: u32, inputsize: *mut u32) -> ::windows_core::HRESULT,
pub ReturnInput: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub Output: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: u32, format: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub OutputVaList: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: u32, format: ::windows_core::PCSTR, args: *const i8) -> ::windows_core::HRESULT,
pub ControlledOutput: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, mask: u32, format: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub ControlledOutputVaList: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, mask: u32, format: ::windows_core::PCSTR, args: *const i8) -> ::windows_core::HRESULT,
pub OutputPrompt: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, format: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub OutputPromptVaList: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, format: ::windows_core::PCSTR, args: *const i8) -> ::windows_core::HRESULT,
pub GetPromptText: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PSTR, buffersize: u32, textsize: *mut u32) -> ::windows_core::HRESULT,
pub OutputCurrentState: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, flags: u32) -> ::windows_core::HRESULT,
pub OutputVersionInformation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32) -> ::windows_core::HRESULT,
pub GetNotifyEventHandle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: *mut u64) -> ::windows_core::HRESULT,
pub SetNotifyEventHandle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64) -> ::windows_core::HRESULT,
pub Assemble: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, instr: ::windows_core::PCSTR, endoffset: *mut u64) -> ::windows_core::HRESULT,
pub Disassemble: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, flags: u32, buffer: ::windows_core::PSTR, buffersize: u32, disassemblysize: *mut u32, endoffset: *mut u64) -> ::windows_core::HRESULT,
pub GetDisassembleEffectiveOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows_core::HRESULT,
pub OutputDisassembly: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, offset: u64, flags: u32, endoffset: *mut u64) -> ::windows_core::HRESULT,
pub OutputDisassemblyLines: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, previouslines: u32, totallines: u32, offset: u64, flags: u32, offsetline: *mut u32, startoffset: *mut u64, endoffset: *mut u64, lineoffsets: *mut u64) -> ::windows_core::HRESULT,
pub GetNearInstruction: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, delta: i32, nearoffset: *mut u64) -> ::windows_core::HRESULT,
#[cfg(feature = "Win32_Foundation")]
pub GetStackTrace: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, frameoffset: u64, stackoffset: u64, instructionoffset: u64, frames: *mut DEBUG_STACK_FRAME, framessize: u32, framesfilled: *mut u32) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
GetStackTrace: usize,
pub GetReturnOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows_core::HRESULT,
#[cfg(feature = "Win32_Foundation")]
pub OutputStackTrace: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, frames: *const DEBUG_STACK_FRAME, framessize: u32, flags: u32) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
OutputStackTrace: usize,
pub GetDebuggeeType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, class: *mut u32, qualifier: *mut u32) -> ::windows_core::HRESULT,
pub GetActualProcessorType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: *mut u32) -> ::windows_core::HRESULT,
pub GetExecutingProcessorType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: *mut u32) -> ::windows_core::HRESULT,
pub GetNumberPossibleExecutingProcessorTypes: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows_core::HRESULT,
pub GetPossibleExecutingProcessorTypes: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, start: u32, count: u32, types: *mut u32) -> ::windows_core::HRESULT,
pub GetNumberProcessors: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows_core::HRESULT,
pub GetSystemVersion: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, platformid: *mut u32, major: *mut u32, minor: *mut u32, servicepackstring: ::windows_core::PSTR, servicepackstringsize: u32, servicepackstringused: *mut u32, servicepacknumber: *mut u32, buildstring: ::windows_core::PSTR, buildstringsize: u32, buildstringused: *mut u32) -> ::windows_core::HRESULT,
pub GetPageSize: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, size: *mut u32) -> ::windows_core::HRESULT,
pub IsPointer64Bit: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub ReadBugCheckData: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, code: *mut u32, arg1: *mut u64, arg2: *mut u64, arg3: *mut u64, arg4: *mut u64) -> ::windows_core::HRESULT,
pub GetNumberSupportedProcessorTypes: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows_core::HRESULT,
pub GetSupportedProcessorTypes: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, start: u32, count: u32, types: *mut u32) -> ::windows_core::HRESULT,
pub GetProcessorTypeNames: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: u32, fullnamebuffer: ::windows_core::PSTR, fullnamebuffersize: u32, fullnamesize: *mut u32, abbrevnamebuffer: ::windows_core::PSTR, abbrevnamebuffersize: u32, abbrevnamesize: *mut u32) -> ::windows_core::HRESULT,
pub GetEffectiveProcessorType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: *mut u32) -> ::windows_core::HRESULT,
pub SetEffectiveProcessorType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: u32) -> ::windows_core::HRESULT,
pub GetExecutionStatus: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, status: *mut u32) -> ::windows_core::HRESULT,
pub SetExecutionStatus: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, status: u32) -> ::windows_core::HRESULT,
pub GetCodeLevel: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, level: *mut u32) -> ::windows_core::HRESULT,
pub SetCodeLevel: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, level: u32) -> ::windows_core::HRESULT,
pub GetEngineOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: *mut u32) -> ::windows_core::HRESULT,
pub AddEngineOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows_core::HRESULT,
pub RemoveEngineOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows_core::HRESULT,
pub SetEngineOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows_core::HRESULT,
pub GetSystemErrorControl: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputlevel: *mut u32, breaklevel: *mut u32) -> ::windows_core::HRESULT,
pub SetSystemErrorControl: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputlevel: u32, breaklevel: u32) -> ::windows_core::HRESULT,
pub GetTextMacro: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, slot: u32, buffer: ::windows_core::PSTR, buffersize: u32, macrosize: *mut u32) -> ::windows_core::HRESULT,
pub SetTextMacro: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, slot: u32, r#macro: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub GetRadix: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, radix: *mut u32) -> ::windows_core::HRESULT,
pub SetRadix: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, radix: u32) -> ::windows_core::HRESULT,
#[cfg(feature = "Win32_Foundation")]
pub Evaluate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, expression: ::windows_core::PCSTR, desiredtype: u32, value: *mut DEBUG_VALUE, remainderindex: *mut u32) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
Evaluate: usize,
#[cfg(feature = "Win32_Foundation")]
pub CoerceValue: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#in: *const DEBUG_VALUE, outtype: u32, out: *mut DEBUG_VALUE) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
CoerceValue: usize,
#[cfg(feature = "Win32_Foundation")]
pub CoerceValues: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: u32, r#in: *const DEBUG_VALUE, outtypes: *const u32, out: *mut DEBUG_VALUE) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
CoerceValues: usize,
pub Execute: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, command: ::windows_core::PCSTR, flags: u32) -> ::windows_core::HRESULT,
pub ExecuteCommandFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, commandfile: ::windows_core::PCSTR, flags: u32) -> ::windows_core::HRESULT,
pub GetNumberBreakpoints: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows_core::HRESULT,
pub GetBreakpointByIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, bp: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub GetBreakpointById: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: u32, bp: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub GetBreakpointParameters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: u32, ids: *const u32, start: u32, params: *mut DEBUG_BREAKPOINT_PARAMETERS) -> ::windows_core::HRESULT,
pub AddBreakpoint: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: u32, desiredid: u32, bp: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub RemoveBreakpoint: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, bp: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub AddExtension: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, path: ::windows_core::PCSTR, flags: u32, handle: *mut u64) -> ::windows_core::HRESULT,
pub RemoveExtension: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64) -> ::windows_core::HRESULT,
pub GetExtensionByPath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, path: ::windows_core::PCSTR, handle: *mut u64) -> ::windows_core::HRESULT,
pub CallExtension: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64, function: ::windows_core::PCSTR, arguments: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
#[cfg(feature = "Win32_Foundation")]
pub GetExtensionFunction: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64, funcname: ::windows_core::PCSTR, function: *mut super::super::super::super::Foundation::FARPROC) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
GetExtensionFunction: usize,
#[cfg(feature = "Win32_System_Kernel")]
pub GetWindbgExtensionApis32: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, api: *mut WINDBG_EXTENSION_APIS32) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_System_Kernel"))]
GetWindbgExtensionApis32: usize,
#[cfg(feature = "Win32_System_Kernel")]
pub GetWindbgExtensionApis64: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, api: *mut WINDBG_EXTENSION_APIS64) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_System_Kernel"))]
GetWindbgExtensionApis64: usize,
pub GetNumberEventFilters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, specificevents: *mut u32, specificexceptions: *mut u32, arbitraryexceptions: *mut u32) -> ::windows_core::HRESULT,
pub GetEventFilterText: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows_core::PSTR, buffersize: u32, textsize: *mut u32) -> ::windows_core::HRESULT,
pub GetEventFilterCommand: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows_core::PSTR, buffersize: u32, commandsize: *mut u32) -> ::windows_core::HRESULT,
pub SetEventFilterCommand: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, command: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub GetSpecificFilterParameters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, start: u32, count: u32, params: *mut DEBUG_SPECIFIC_FILTER_PARAMETERS) -> ::windows_core::HRESULT,
pub SetSpecificFilterParameters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, start: u32, count: u32, params: *const DEBUG_SPECIFIC_FILTER_PARAMETERS) -> ::windows_core::HRESULT,
pub GetSpecificFilterArgument: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows_core::PSTR, buffersize: u32, argumentsize: *mut u32) -> ::windows_core::HRESULT,
pub SetSpecificFilterArgument: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, argument: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub GetExceptionFilterParameters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: u32, codes: *const u32, start: u32, params: *mut DEBUG_EXCEPTION_FILTER_PARAMETERS) -> ::windows_core::HRESULT,
pub SetExceptionFilterParameters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: u32, params: *const DEBUG_EXCEPTION_FILTER_PARAMETERS) -> ::windows_core::HRESULT,
pub GetExceptionFilterSecondCommand: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows_core::PSTR, buffersize: u32, commandsize: *mut u32) -> ::windows_core::HRESULT,
pub SetExceptionFilterSecondCommand: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, command: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub WaitForEvent: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, timeout: u32) -> ::windows_core::HRESULT,
pub GetLastEventInformation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: *mut u32, processid: *mut u32, threadid: *mut u32, extrainformation: *mut ::core::ffi::c_void, extrainformationsize: u32, extrainformationused: *mut u32, description: ::windows_core::PSTR, descriptionsize: u32, descriptionused: *mut u32) -> ::windows_core::HRESULT,
pub GetCurrentTimeDate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, timedate: *mut u32) -> ::windows_core::HRESULT,
pub GetCurrentSystemUpTime: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, uptime: *mut u32) -> ::windows_core::HRESULT,
pub GetDumpFormatFlags: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, formatflags: *mut u32) -> ::windows_core::HRESULT,
pub GetNumberTextReplacements: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, numrepl: *mut u32) -> ::windows_core::HRESULT,
pub GetTextReplacement: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, srctext: ::windows_core::PCSTR, index: u32, srcbuffer: ::windows_core::PSTR, srcbuffersize: u32, srcsize: *mut u32, dstbuffer: ::windows_core::PSTR, dstbuffersize: u32, dstsize: *mut u32) -> ::windows_core::HRESULT,
pub SetTextReplacement: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, srctext: ::windows_core::PCSTR, dsttext: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub RemoveTextReplacements: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub OutputTextReplacements: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, flags: u32) -> ::windows_core::HRESULT,
pub GetAssemblyOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: *mut u32) -> ::windows_core::HRESULT,
pub AddAssemblyOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows_core::HRESULT,
pub RemoveAssemblyOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows_core::HRESULT,
pub SetAssemblyOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows_core::HRESULT,
pub GetExpressionSyntax: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: *mut u32) -> ::windows_core::HRESULT,
pub SetExpressionSyntax: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32) -> ::windows_core::HRESULT,
pub SetExpressionSyntaxByName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, abbrevname: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub GetNumberExpressionSyntaxes: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows_core::HRESULT,
pub GetExpressionSyntaxNames: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, fullnamebuffer: ::windows_core::PSTR, fullnamebuffersize: u32, fullnamesize: *mut u32, abbrevnamebuffer: ::windows_core::PSTR, abbrevnamebuffersize: u32, abbrevnamesize: *mut u32) -> ::windows_core::HRESULT,
pub GetNumberEvents: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, events: *mut u32) -> ::windows_core::HRESULT,
pub GetEventIndexDescription: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, which: u32, buffer: ::windows_core::PCSTR, buffersize: u32, descsize: *mut u32) -> ::windows_core::HRESULT,
pub GetCurrentEventIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: *mut u32) -> ::windows_core::HRESULT,
pub SetNextEventIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, relation: u32, value: u32, nextindex: *mut u32) -> ::windows_core::HRESULT,
#[cfg(feature = "Win32_Foundation")]
pub GetLogFileWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PWSTR, buffersize: u32, filesize: *mut u32, append: *mut super::super::super::super::Foundation::BOOL) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
GetLogFileWide: usize,
#[cfg(feature = "Win32_Foundation")]
pub OpenLogFileWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, file: ::windows_core::PCWSTR, append: super::super::super::super::Foundation::BOOL) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
OpenLogFileWide: usize,
pub InputWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PWSTR, buffersize: u32, inputsize: *mut u32) -> ::windows_core::HRESULT,
pub ReturnInputWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
pub OutputWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: u32, format: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
pub OutputVaListWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: u32, format: ::windows_core::PCWSTR, args: *const i8) -> ::windows_core::HRESULT,
pub ControlledOutputWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, mask: u32, format: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
pub ControlledOutputVaListWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, mask: u32, format: ::windows_core::PCWSTR, args: *const i8) -> ::windows_core::HRESULT,
pub OutputPromptWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, format: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
pub OutputPromptVaListWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, format: ::windows_core::PCWSTR, args: *const i8) -> ::windows_core::HRESULT,
pub GetPromptTextWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PWSTR, buffersize: u32, textsize: *mut u32) -> ::windows_core::HRESULT,
pub AssembleWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, instr: ::windows_core::PCWSTR, endoffset: *mut u64) -> ::windows_core::HRESULT,
pub DisassembleWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, flags: u32, buffer: ::windows_core::PWSTR, buffersize: u32, disassemblysize: *mut u32, endoffset: *mut u64) -> ::windows_core::HRESULT,
pub GetProcessorTypeNamesWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: u32, fullnamebuffer: ::windows_core::PWSTR, fullnamebuffersize: u32, fullnamesize: *mut u32, abbrevnamebuffer: ::windows_core::PWSTR, abbrevnamebuffersize: u32, abbrevnamesize: *mut u32) -> ::windows_core::HRESULT,
pub GetTextMacroWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, slot: u32, buffer: ::windows_core::PWSTR, buffersize: u32, macrosize: *mut u32) -> ::windows_core::HRESULT,
pub SetTextMacroWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, slot: u32, r#macro: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
#[cfg(feature = "Win32_Foundation")]
pub EvaluateWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, expression: ::windows_core::PCWSTR, desiredtype: u32, value: *mut DEBUG_VALUE, remainderindex: *mut u32) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
EvaluateWide: usize,
pub ExecuteWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, command: ::windows_core::PCWSTR, flags: u32) -> ::windows_core::HRESULT,
pub ExecuteCommandFileWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, commandfile: ::windows_core::PCWSTR, flags: u32) -> ::windows_core::HRESULT,
pub GetBreakpointByIndex2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, bp: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub GetBreakpointById2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: u32, bp: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub AddBreakpoint2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: u32, desiredid: u32, bp: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub RemoveBreakpoint2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, bp: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub AddExtensionWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, path: ::windows_core::PCWSTR, flags: u32, handle: *mut u64) -> ::windows_core::HRESULT,
pub GetExtensionByPathWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, path: ::windows_core::PCWSTR, handle: *mut u64) -> ::windows_core::HRESULT,
pub CallExtensionWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64, function: ::windows_core::PCWSTR, arguments: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
#[cfg(feature = "Win32_Foundation")]
pub GetExtensionFunctionWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64, funcname: ::windows_core::PCWSTR, function: *mut super::super::super::super::Foundation::FARPROC) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
GetExtensionFunctionWide: usize,
pub GetEventFilterTextWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows_core::PWSTR, buffersize: u32, textsize: *mut u32) -> ::windows_core::HRESULT,
pub GetEventFilterCommandWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows_core::PWSTR, buffersize: u32, commandsize: *mut u32) -> ::windows_core::HRESULT,
pub SetEventFilterCommandWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, command: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
pub GetSpecificFilterArgumentWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows_core::PWSTR, buffersize: u32, argumentsize: *mut u32) -> ::windows_core::HRESULT,
pub SetSpecificFilterArgumentWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, argument: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
pub GetExceptionFilterSecondCommandWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows_core::PWSTR, buffersize: u32, commandsize: *mut u32) -> ::windows_core::HRESULT,
pub SetExceptionFilterSecondCommandWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, command: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
pub GetLastEventInformationWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: *mut u32, processid: *mut u32, threadid: *mut u32, extrainformation: *mut ::core::ffi::c_void, extrainformationsize: u32, extrainformationused: *mut u32, description: ::windows_core::PWSTR, descriptionsize: u32, descriptionused: *mut u32) -> ::windows_core::HRESULT,
pub GetTextReplacementWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, srctext: ::windows_core::PCWSTR, index: u32, srcbuffer: ::windows_core::PWSTR, srcbuffersize: u32, srcsize: *mut u32, dstbuffer: ::windows_core::PWSTR, dstbuffersize: u32, dstsize: *mut u32) -> ::windows_core::HRESULT,
pub SetTextReplacementWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, srctext: ::windows_core::PCWSTR, dsttext: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
pub SetExpressionSyntaxByNameWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, abbrevname: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
pub GetExpressionSyntaxNamesWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, fullnamebuffer: ::windows_core::PWSTR, fullnamebuffersize: u32, fullnamesize: *mut u32, abbrevnamebuffer: ::windows_core::PWSTR, abbrevnamebuffersize: u32, abbrevnamesize: *mut u32) -> ::windows_core::HRESULT,
pub GetEventIndexDescriptionWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, which: u32, buffer: ::windows_core::PCWSTR, buffersize: u32, descsize: *mut u32) -> ::windows_core::HRESULT,
pub GetLogFile2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PSTR, buffersize: u32, filesize: *mut u32, flags: *mut u32) -> ::windows_core::HRESULT,
pub OpenLogFile2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, file: ::windows_core::PCSTR, flags: u32) -> ::windows_core::HRESULT,
pub GetLogFile2Wide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PWSTR, buffersize: u32, filesize: *mut u32, flags: *mut u32) -> ::windows_core::HRESULT,
pub OpenLogFile2Wide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, file: ::windows_core::PCWSTR, flags: u32) -> ::windows_core::HRESULT,
pub GetSystemVersionValues: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, platformid: *mut u32, win32major: *mut u32, win32minor: *mut u32, kdmajor: *mut u32, kdminor: *mut u32) -> ::windows_core::HRESULT,
pub GetSystemVersionString: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, which: u32, buffer: ::windows_core::PSTR, buffersize: u32, stringsize: *mut u32) -> ::windows_core::HRESULT,
pub GetSystemVersionStringWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, which: u32, buffer: ::windows_core::PWSTR, buffersize: u32, stringsize: *mut u32) -> ::windows_core::HRESULT,
#[cfg(feature = "Win32_Foundation")]
pub GetContextStackTrace: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, startcontext: *const ::core::ffi::c_void, startcontextsize: u32, frames: *mut DEBUG_STACK_FRAME, framessize: u32, framecontexts: *mut ::core::ffi::c_void, framecontextssize: u32, framecontextsentrysize: u32, framesfilled: *mut u32) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
GetContextStackTrace: usize,
#[cfg(feature = "Win32_Foundation")]
pub OutputContextStackTrace: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, frames: *const DEBUG_STACK_FRAME, framessize: u32, framecontexts: *const ::core::ffi::c_void, framecontextssize: u32, framecontextsentrysize: u32, flags: u32) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
OutputContextStackTrace: usize,
pub GetStoredEventInformation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: *mut u32, processid: *mut u32, threadid: *mut u32, context: *mut ::core::ffi::c_void, contextsize: u32, contextused: *mut u32, extrainformation: *mut ::core::ffi::c_void, extrainformationsize: u32, extrainformationused: *mut u32) -> ::windows_core::HRESULT,
pub GetManagedStatus: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: *mut u32, whichstring: u32, string: ::windows_core::PSTR, stringsize: u32, stringneeded: *mut u32) -> ::windows_core::HRESULT,
pub GetManagedStatusWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: *mut u32, whichstring: u32, string: ::windows_core::PWSTR, stringsize: u32, stringneeded: *mut u32) -> ::windows_core::HRESULT,
pub ResetManagedStatus: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32) -> ::windows_core::HRESULT,
#[cfg(feature = "Win32_Foundation")]
pub GetStackTraceEx: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, frameoffset: u64, stackoffset: u64, instructionoffset: u64, frames: *mut DEBUG_STACK_FRAME_EX, framessize: u32, framesfilled: *mut u32) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
GetStackTraceEx: usize,
#[cfg(feature = "Win32_Foundation")]
pub OutputStackTraceEx: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, frames: *const DEBUG_STACK_FRAME_EX, framessize: u32, flags: u32) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
OutputStackTraceEx: usize,
#[cfg(feature = "Win32_Foundation")]
pub GetContextStackTraceEx: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, startcontext: *const ::core::ffi::c_void, startcontextsize: u32, frames: *mut DEBUG_STACK_FRAME_EX, framessize: u32, framecontexts: *mut ::core::ffi::c_void, framecontextssize: u32, framecontextsentrysize: u32, framesfilled: *mut u32) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
GetContextStackTraceEx: usize,
#[cfg(feature = "Win32_Foundation")]
pub OutputContextStackTraceEx: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, frames: *const DEBUG_STACK_FRAME_EX, framessize: u32, framecontexts: *const ::core::ffi::c_void, framecontextssize: u32, framecontextsentrysize: u32, flags: u32) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
OutputContextStackTraceEx: usize,
pub GetBreakpointByGuid: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, guid: *const ::windows_core::GUID, bp: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IDebugControl6(::windows_core::IUnknown);
impl IDebugControl6 {
pub unsafe fn GetInterrupt(&self) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetInterrupt)(::windows_core::Interface::as_raw(self)).ok()
}
pub unsafe fn SetInterrupt(&self, flags: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetInterrupt)(::windows_core::Interface::as_raw(self), flags).ok()
}
pub unsafe fn GetInterruptTimeout(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetInterruptTimeout)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetInterruptTimeout(&self, seconds: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetInterruptTimeout)(::windows_core::Interface::as_raw(self), seconds).ok()
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn GetLogFile(&self, buffer: ::core::option::Option<&mut [u8]>, filesize: ::core::option::Option<*mut u32>, append: *mut super::super::super::super::Foundation::BOOL) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetLogFile)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(filesize.unwrap_or(::std::ptr::null_mut())), append).ok()
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn OpenLogFile<P0, P1>(&self, file: P0, append: P1) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
P1: ::windows_core::IntoParam<super::super::super::super::Foundation::BOOL>,
{
(::windows_core::Interface::vtable(self).OpenLogFile)(::windows_core::Interface::as_raw(self), file.into_param().abi(), append.into_param().abi()).ok()
}
pub unsafe fn CloseLogFile(&self) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).CloseLogFile)(::windows_core::Interface::as_raw(self)).ok()
}
pub unsafe fn GetLogMask(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetLogMask)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetLogMask(&self, mask: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetLogMask)(::windows_core::Interface::as_raw(self), mask).ok()
}
pub unsafe fn Input(&self, buffer: &mut [u8], inputsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).Input)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_ptr()), buffer.len().try_into().unwrap(), ::core::mem::transmute(inputsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn ReturnInput<P0>(&self, buffer: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).ReturnInput)(::windows_core::Interface::as_raw(self), buffer.into_param().abi()).ok()
}
pub unsafe fn Output<P0>(&self, mask: u32, format: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).Output)(::windows_core::Interface::as_raw(self), mask, format.into_param().abi()).ok()
}
pub unsafe fn OutputVaList<P0>(&self, mask: u32, format: P0, args: *const i8) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).OutputVaList)(::windows_core::Interface::as_raw(self), mask, format.into_param().abi(), args).ok()
}
pub unsafe fn ControlledOutput<P0>(&self, outputcontrol: u32, mask: u32, format: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).ControlledOutput)(::windows_core::Interface::as_raw(self), outputcontrol, mask, format.into_param().abi()).ok()
}
pub unsafe fn ControlledOutputVaList<P0>(&self, outputcontrol: u32, mask: u32, format: P0, args: *const i8) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).ControlledOutputVaList)(::windows_core::Interface::as_raw(self), outputcontrol, mask, format.into_param().abi(), args).ok()
}
pub unsafe fn OutputPrompt<P0>(&self, outputcontrol: u32, format: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).OutputPrompt)(::windows_core::Interface::as_raw(self), outputcontrol, format.into_param().abi()).ok()
}
pub unsafe fn OutputPromptVaList<P0>(&self, outputcontrol: u32, format: P0, args: *const i8) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).OutputPromptVaList)(::windows_core::Interface::as_raw(self), outputcontrol, format.into_param().abi(), args).ok()
}
pub unsafe fn GetPromptText(&self, buffer: ::core::option::Option<&mut [u8]>, textsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetPromptText)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(textsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn OutputCurrentState(&self, outputcontrol: u32, flags: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).OutputCurrentState)(::windows_core::Interface::as_raw(self), outputcontrol, flags).ok()
}
pub unsafe fn OutputVersionInformation(&self, outputcontrol: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).OutputVersionInformation)(::windows_core::Interface::as_raw(self), outputcontrol).ok()
}
pub unsafe fn GetNotifyEventHandle(&self) -> ::windows_core::Result<u64> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetNotifyEventHandle)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetNotifyEventHandle(&self, handle: u64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetNotifyEventHandle)(::windows_core::Interface::as_raw(self), handle).ok()
}
pub unsafe fn Assemble<P0>(&self, offset: u64, instr: P0) -> ::windows_core::Result<u64>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).Assemble)(::windows_core::Interface::as_raw(self), offset, instr.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn Disassemble(&self, offset: u64, flags: u32, buffer: ::core::option::Option<&mut [u8]>, disassemblysize: ::core::option::Option<*mut u32>, endoffset: *mut u64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).Disassemble)(::windows_core::Interface::as_raw(self), offset, flags, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(disassemblysize.unwrap_or(::std::ptr::null_mut())), endoffset).ok()
}
pub unsafe fn GetDisassembleEffectiveOffset(&self) -> ::windows_core::Result<u64> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetDisassembleEffectiveOffset)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn OutputDisassembly(&self, outputcontrol: u32, offset: u64, flags: u32) -> ::windows_core::Result<u64> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).OutputDisassembly)(::windows_core::Interface::as_raw(self), outputcontrol, offset, flags, &mut result__).from_abi(result__)
}
pub unsafe fn OutputDisassemblyLines(&self, outputcontrol: u32, previouslines: u32, offset: u64, flags: u32, offsetline: ::core::option::Option<*mut u32>, startoffset: ::core::option::Option<*mut u64>, endoffset: ::core::option::Option<*mut u64>, lineoffsets: ::core::option::Option<&mut [u64]>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).OutputDisassemblyLines)(::windows_core::Interface::as_raw(self), outputcontrol, previouslines, lineoffsets.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), offset, flags, ::core::mem::transmute(offsetline.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(startoffset.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(endoffset.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(lineoffsets.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok()
}
pub unsafe fn GetNearInstruction(&self, offset: u64, delta: i32) -> ::windows_core::Result<u64> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetNearInstruction)(::windows_core::Interface::as_raw(self), offset, delta, &mut result__).from_abi(result__)
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn GetStackTrace(&self, frameoffset: u64, stackoffset: u64, instructionoffset: u64, frames: &mut [DEBUG_STACK_FRAME], framesfilled: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetStackTrace)(::windows_core::Interface::as_raw(self), frameoffset, stackoffset, instructionoffset, ::core::mem::transmute(frames.as_ptr()), frames.len().try_into().unwrap(), ::core::mem::transmute(framesfilled.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetReturnOffset(&self) -> ::windows_core::Result<u64> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetReturnOffset)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn OutputStackTrace(&self, outputcontrol: u32, frames: ::core::option::Option<&[DEBUG_STACK_FRAME]>, flags: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).OutputStackTrace)(::windows_core::Interface::as_raw(self), outputcontrol, ::core::mem::transmute(frames.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), frames.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), flags).ok()
}
pub unsafe fn GetDebuggeeType(&self, class: *mut u32, qualifier: *mut u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetDebuggeeType)(::windows_core::Interface::as_raw(self), class, qualifier).ok()
}
pub unsafe fn GetActualProcessorType(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetActualProcessorType)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetExecutingProcessorType(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetExecutingProcessorType)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetNumberPossibleExecutingProcessorTypes(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetNumberPossibleExecutingProcessorTypes)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetPossibleExecutingProcessorTypes(&self, start: u32, types: &mut [u32]) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetPossibleExecutingProcessorTypes)(::windows_core::Interface::as_raw(self), start, types.len().try_into().unwrap(), ::core::mem::transmute(types.as_ptr())).ok()
}
pub unsafe fn GetNumberProcessors(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetNumberProcessors)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetSystemVersion(&self, platformid: *mut u32, major: *mut u32, minor: *mut u32, servicepackstring: ::core::option::Option<&mut [u8]>, servicepackstringused: ::core::option::Option<*mut u32>, servicepacknumber: *mut u32, buildstring: ::core::option::Option<&mut [u8]>, buildstringused: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSystemVersion)(
::windows_core::Interface::as_raw(self),
platformid,
major,
minor,
::core::mem::transmute(servicepackstring.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
servicepackstring.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(servicepackstringused.unwrap_or(::std::ptr::null_mut())),
servicepacknumber,
::core::mem::transmute(buildstring.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
buildstring.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(buildstringused.unwrap_or(::std::ptr::null_mut())),
)
.ok()
}
pub unsafe fn GetPageSize(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetPageSize)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn IsPointer64Bit(&self) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).IsPointer64Bit)(::windows_core::Interface::as_raw(self)).ok()
}
pub unsafe fn ReadBugCheckData(&self, code: *mut u32, arg1: *mut u64, arg2: *mut u64, arg3: *mut u64, arg4: *mut u64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).ReadBugCheckData)(::windows_core::Interface::as_raw(self), code, arg1, arg2, arg3, arg4).ok()
}
pub unsafe fn GetNumberSupportedProcessorTypes(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetNumberSupportedProcessorTypes)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetSupportedProcessorTypes(&self, start: u32, types: &mut [u32]) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSupportedProcessorTypes)(::windows_core::Interface::as_raw(self), start, types.len().try_into().unwrap(), ::core::mem::transmute(types.as_ptr())).ok()
}
pub unsafe fn GetProcessorTypeNames(&self, r#type: u32, fullnamebuffer: ::core::option::Option<&mut [u8]>, fullnamesize: ::core::option::Option<*mut u32>, abbrevnamebuffer: ::core::option::Option<&mut [u8]>, abbrevnamesize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetProcessorTypeNames)(
::windows_core::Interface::as_raw(self),
r#type,
::core::mem::transmute(fullnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
fullnamebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(fullnamesize.unwrap_or(::std::ptr::null_mut())),
::core::mem::transmute(abbrevnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
abbrevnamebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(abbrevnamesize.unwrap_or(::std::ptr::null_mut())),
)
.ok()
}
pub unsafe fn GetEffectiveProcessorType(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetEffectiveProcessorType)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetEffectiveProcessorType(&self, r#type: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetEffectiveProcessorType)(::windows_core::Interface::as_raw(self), r#type).ok()
}
pub unsafe fn GetExecutionStatus(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetExecutionStatus)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetExecutionStatus(&self, status: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetExecutionStatus)(::windows_core::Interface::as_raw(self), status).ok()
}
pub unsafe fn GetCodeLevel(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetCodeLevel)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetCodeLevel(&self, level: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetCodeLevel)(::windows_core::Interface::as_raw(self), level).ok()
}
pub unsafe fn GetEngineOptions(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetEngineOptions)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn AddEngineOptions(&self, options: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).AddEngineOptions)(::windows_core::Interface::as_raw(self), options).ok()
}
pub unsafe fn RemoveEngineOptions(&self, options: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).RemoveEngineOptions)(::windows_core::Interface::as_raw(self), options).ok()
}
pub unsafe fn SetEngineOptions(&self, options: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetEngineOptions)(::windows_core::Interface::as_raw(self), options).ok()
}
pub unsafe fn GetSystemErrorControl(&self, outputlevel: *mut u32, breaklevel: *mut u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSystemErrorControl)(::windows_core::Interface::as_raw(self), outputlevel, breaklevel).ok()
}
pub unsafe fn SetSystemErrorControl(&self, outputlevel: u32, breaklevel: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetSystemErrorControl)(::windows_core::Interface::as_raw(self), outputlevel, breaklevel).ok()
}
pub unsafe fn GetTextMacro(&self, slot: u32, buffer: ::core::option::Option<&mut [u8]>, macrosize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetTextMacro)(::windows_core::Interface::as_raw(self), slot, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(macrosize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetTextMacro<P0>(&self, slot: u32, r#macro: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).SetTextMacro)(::windows_core::Interface::as_raw(self), slot, r#macro.into_param().abi()).ok()
}
pub unsafe fn GetRadix(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetRadix)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetRadix(&self, radix: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetRadix)(::windows_core::Interface::as_raw(self), radix).ok()
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn Evaluate<P0>(&self, expression: P0, desiredtype: u32, value: *mut DEBUG_VALUE, remainderindex: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).Evaluate)(::windows_core::Interface::as_raw(self), expression.into_param().abi(), desiredtype, value, ::core::mem::transmute(remainderindex.unwrap_or(::std::ptr::null_mut()))).ok()
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn CoerceValue(&self, r#in: *const DEBUG_VALUE, outtype: u32, out: *mut DEBUG_VALUE) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).CoerceValue)(::windows_core::Interface::as_raw(self), r#in, outtype, out).ok()
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn CoerceValues(&self, count: u32, r#in: *const DEBUG_VALUE, outtypes: *const u32, out: *mut DEBUG_VALUE) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).CoerceValues)(::windows_core::Interface::as_raw(self), count, r#in, outtypes, out).ok()
}
pub unsafe fn Execute<P0>(&self, outputcontrol: u32, command: P0, flags: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).Execute)(::windows_core::Interface::as_raw(self), outputcontrol, command.into_param().abi(), flags).ok()
}
pub unsafe fn ExecuteCommandFile<P0>(&self, outputcontrol: u32, commandfile: P0, flags: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).ExecuteCommandFile)(::windows_core::Interface::as_raw(self), outputcontrol, commandfile.into_param().abi(), flags).ok()
}
pub unsafe fn GetNumberBreakpoints(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetNumberBreakpoints)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetBreakpointByIndex(&self, index: u32) -> ::windows_core::Result<IDebugBreakpoint> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetBreakpointByIndex)(::windows_core::Interface::as_raw(self), index, &mut result__).from_abi(result__)
}
pub unsafe fn GetBreakpointById(&self, id: u32) -> ::windows_core::Result<IDebugBreakpoint> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetBreakpointById)(::windows_core::Interface::as_raw(self), id, &mut result__).from_abi(result__)
}
pub unsafe fn GetBreakpointParameters(&self, count: u32, ids: ::core::option::Option<*const u32>, start: u32, params: *mut DEBUG_BREAKPOINT_PARAMETERS) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetBreakpointParameters)(::windows_core::Interface::as_raw(self), count, ::core::mem::transmute(ids.unwrap_or(::std::ptr::null())), start, params).ok()
}
pub unsafe fn AddBreakpoint(&self, r#type: u32, desiredid: u32) -> ::windows_core::Result<IDebugBreakpoint> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).AddBreakpoint)(::windows_core::Interface::as_raw(self), r#type, desiredid, &mut result__).from_abi(result__)
}
pub unsafe fn RemoveBreakpoint<P0>(&self, bp: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IDebugBreakpoint>,
{
(::windows_core::Interface::vtable(self).RemoveBreakpoint)(::windows_core::Interface::as_raw(self), bp.into_param().abi()).ok()
}
pub unsafe fn AddExtension<P0>(&self, path: P0, flags: u32) -> ::windows_core::Result<u64>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).AddExtension)(::windows_core::Interface::as_raw(self), path.into_param().abi(), flags, &mut result__).from_abi(result__)
}
pub unsafe fn RemoveExtension(&self, handle: u64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).RemoveExtension)(::windows_core::Interface::as_raw(self), handle).ok()
}
pub unsafe fn GetExtensionByPath<P0>(&self, path: P0) -> ::windows_core::Result<u64>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetExtensionByPath)(::windows_core::Interface::as_raw(self), path.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn CallExtension<P0, P1>(&self, handle: u64, function: P0, arguments: P1) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
P1: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).CallExtension)(::windows_core::Interface::as_raw(self), handle, function.into_param().abi(), arguments.into_param().abi()).ok()
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn GetExtensionFunction<P0>(&self, handle: u64, funcname: P0, function: *mut super::super::super::super::Foundation::FARPROC) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).GetExtensionFunction)(::windows_core::Interface::as_raw(self), handle, funcname.into_param().abi(), function).ok()
}
#[doc = "Required features: `\"Win32_System_Kernel\"`"]
#[cfg(feature = "Win32_System_Kernel")]
pub unsafe fn GetWindbgExtensionApis32(&self, api: *mut WINDBG_EXTENSION_APIS32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetWindbgExtensionApis32)(::windows_core::Interface::as_raw(self), api).ok()
}
#[doc = "Required features: `\"Win32_System_Kernel\"`"]
#[cfg(feature = "Win32_System_Kernel")]
pub unsafe fn GetWindbgExtensionApis64(&self, api: *mut WINDBG_EXTENSION_APIS64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetWindbgExtensionApis64)(::windows_core::Interface::as_raw(self), api).ok()
}
pub unsafe fn GetNumberEventFilters(&self, specificevents: *mut u32, specificexceptions: *mut u32, arbitraryexceptions: *mut u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetNumberEventFilters)(::windows_core::Interface::as_raw(self), specificevents, specificexceptions, arbitraryexceptions).ok()
}
pub unsafe fn GetEventFilterText(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, textsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetEventFilterText)(::windows_core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(textsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetEventFilterCommand(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, commandsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetEventFilterCommand)(::windows_core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(commandsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetEventFilterCommand<P0>(&self, index: u32, command: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).SetEventFilterCommand)(::windows_core::Interface::as_raw(self), index, command.into_param().abi()).ok()
}
pub unsafe fn GetSpecificFilterParameters(&self, start: u32, params: &mut [DEBUG_SPECIFIC_FILTER_PARAMETERS]) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSpecificFilterParameters)(::windows_core::Interface::as_raw(self), start, params.len().try_into().unwrap(), ::core::mem::transmute(params.as_ptr())).ok()
}
pub unsafe fn SetSpecificFilterParameters(&self, start: u32, params: &[DEBUG_SPECIFIC_FILTER_PARAMETERS]) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetSpecificFilterParameters)(::windows_core::Interface::as_raw(self), start, params.len().try_into().unwrap(), ::core::mem::transmute(params.as_ptr())).ok()
}
pub unsafe fn GetSpecificFilterArgument(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, argumentsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSpecificFilterArgument)(::windows_core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(argumentsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetSpecificFilterArgument<P0>(&self, index: u32, argument: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).SetSpecificFilterArgument)(::windows_core::Interface::as_raw(self), index, argument.into_param().abi()).ok()
}
pub unsafe fn GetExceptionFilterParameters(&self, count: u32, codes: ::core::option::Option<*const u32>, start: u32, params: *mut DEBUG_EXCEPTION_FILTER_PARAMETERS) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetExceptionFilterParameters)(::windows_core::Interface::as_raw(self), count, ::core::mem::transmute(codes.unwrap_or(::std::ptr::null())), start, params).ok()
}
pub unsafe fn SetExceptionFilterParameters(&self, params: &[DEBUG_EXCEPTION_FILTER_PARAMETERS]) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetExceptionFilterParameters)(::windows_core::Interface::as_raw(self), params.len().try_into().unwrap(), ::core::mem::transmute(params.as_ptr())).ok()
}
pub unsafe fn GetExceptionFilterSecondCommand(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, commandsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetExceptionFilterSecondCommand)(::windows_core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(commandsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetExceptionFilterSecondCommand<P0>(&self, index: u32, command: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).SetExceptionFilterSecondCommand)(::windows_core::Interface::as_raw(self), index, command.into_param().abi()).ok()
}
pub unsafe fn WaitForEvent(&self, flags: u32, timeout: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).WaitForEvent)(::windows_core::Interface::as_raw(self), flags, timeout).ok()
}
pub unsafe fn GetLastEventInformation(&self, r#type: *mut u32, processid: *mut u32, threadid: *mut u32, extrainformation: ::core::option::Option<*mut ::core::ffi::c_void>, extrainformationsize: u32, extrainformationused: ::core::option::Option<*mut u32>, description: ::core::option::Option<&mut [u8]>, descriptionused: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetLastEventInformation)(
::windows_core::Interface::as_raw(self),
r#type,
processid,
threadid,
::core::mem::transmute(extrainformation.unwrap_or(::std::ptr::null_mut())),
extrainformationsize,
::core::mem::transmute(extrainformationused.unwrap_or(::std::ptr::null_mut())),
::core::mem::transmute(description.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
description.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(descriptionused.unwrap_or(::std::ptr::null_mut())),
)
.ok()
}
pub unsafe fn GetCurrentTimeDate(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetCurrentTimeDate)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetCurrentSystemUpTime(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetCurrentSystemUpTime)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetDumpFormatFlags(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetDumpFormatFlags)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetNumberTextReplacements(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetNumberTextReplacements)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetTextReplacement<P0>(&self, srctext: P0, index: u32, srcbuffer: ::core::option::Option<&mut [u8]>, srcsize: ::core::option::Option<*mut u32>, dstbuffer: ::core::option::Option<&mut [u8]>, dstsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).GetTextReplacement)(
::windows_core::Interface::as_raw(self),
srctext.into_param().abi(),
index,
::core::mem::transmute(srcbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
srcbuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(srcsize.unwrap_or(::std::ptr::null_mut())),
::core::mem::transmute(dstbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
dstbuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(dstsize.unwrap_or(::std::ptr::null_mut())),
)
.ok()
}
pub unsafe fn SetTextReplacement<P0, P1>(&self, srctext: P0, dsttext: P1) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
P1: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).SetTextReplacement)(::windows_core::Interface::as_raw(self), srctext.into_param().abi(), dsttext.into_param().abi()).ok()
}
pub unsafe fn RemoveTextReplacements(&self) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).RemoveTextReplacements)(::windows_core::Interface::as_raw(self)).ok()
}
pub unsafe fn OutputTextReplacements(&self, outputcontrol: u32, flags: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).OutputTextReplacements)(::windows_core::Interface::as_raw(self), outputcontrol, flags).ok()
}
pub unsafe fn GetAssemblyOptions(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetAssemblyOptions)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn AddAssemblyOptions(&self, options: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).AddAssemblyOptions)(::windows_core::Interface::as_raw(self), options).ok()
}
pub unsafe fn RemoveAssemblyOptions(&self, options: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).RemoveAssemblyOptions)(::windows_core::Interface::as_raw(self), options).ok()
}
pub unsafe fn SetAssemblyOptions(&self, options: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetAssemblyOptions)(::windows_core::Interface::as_raw(self), options).ok()
}
pub unsafe fn GetExpressionSyntax(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetExpressionSyntax)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetExpressionSyntax(&self, flags: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetExpressionSyntax)(::windows_core::Interface::as_raw(self), flags).ok()
}
pub unsafe fn SetExpressionSyntaxByName<P0>(&self, abbrevname: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).SetExpressionSyntaxByName)(::windows_core::Interface::as_raw(self), abbrevname.into_param().abi()).ok()
}
pub unsafe fn GetNumberExpressionSyntaxes(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetNumberExpressionSyntaxes)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetExpressionSyntaxNames(&self, index: u32, fullnamebuffer: ::core::option::Option<&mut [u8]>, fullnamesize: ::core::option::Option<*mut u32>, abbrevnamebuffer: ::core::option::Option<&mut [u8]>, abbrevnamesize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetExpressionSyntaxNames)(
::windows_core::Interface::as_raw(self),
index,
::core::mem::transmute(fullnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
fullnamebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(fullnamesize.unwrap_or(::std::ptr::null_mut())),
::core::mem::transmute(abbrevnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
abbrevnamebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(abbrevnamesize.unwrap_or(::std::ptr::null_mut())),
)
.ok()
}
pub unsafe fn GetNumberEvents(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetNumberEvents)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetEventIndexDescription<P0>(&self, index: u32, which: u32, buffer: P0, buffersize: u32, descsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).GetEventIndexDescription)(::windows_core::Interface::as_raw(self), index, which, buffer.into_param().abi(), buffersize, ::core::mem::transmute(descsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetCurrentEventIndex(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetCurrentEventIndex)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetNextEventIndex(&self, relation: u32, value: u32) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).SetNextEventIndex)(::windows_core::Interface::as_raw(self), relation, value, &mut result__).from_abi(result__)
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn GetLogFileWide(&self, buffer: ::core::option::Option<&mut [u16]>, filesize: ::core::option::Option<*mut u32>, append: *mut super::super::super::super::Foundation::BOOL) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetLogFileWide)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(filesize.unwrap_or(::std::ptr::null_mut())), append).ok()
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn OpenLogFileWide<P0, P1>(&self, file: P0, append: P1) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
P1: ::windows_core::IntoParam<super::super::super::super::Foundation::BOOL>,
{
(::windows_core::Interface::vtable(self).OpenLogFileWide)(::windows_core::Interface::as_raw(self), file.into_param().abi(), append.into_param().abi()).ok()
}
pub unsafe fn InputWide(&self, buffer: &mut [u16], inputsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).InputWide)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_ptr()), buffer.len().try_into().unwrap(), ::core::mem::transmute(inputsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn ReturnInputWide<P0>(&self, buffer: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).ReturnInputWide)(::windows_core::Interface::as_raw(self), buffer.into_param().abi()).ok()
}
pub unsafe fn OutputWide<P0>(&self, mask: u32, format: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).OutputWide)(::windows_core::Interface::as_raw(self), mask, format.into_param().abi()).ok()
}
pub unsafe fn OutputVaListWide<P0>(&self, mask: u32, format: P0, args: *const i8) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).OutputVaListWide)(::windows_core::Interface::as_raw(self), mask, format.into_param().abi(), args).ok()
}
pub unsafe fn ControlledOutputWide<P0>(&self, outputcontrol: u32, mask: u32, format: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).ControlledOutputWide)(::windows_core::Interface::as_raw(self), outputcontrol, mask, format.into_param().abi()).ok()
}
pub unsafe fn ControlledOutputVaListWide<P0>(&self, outputcontrol: u32, mask: u32, format: P0, args: *const i8) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).ControlledOutputVaListWide)(::windows_core::Interface::as_raw(self), outputcontrol, mask, format.into_param().abi(), args).ok()
}
pub unsafe fn OutputPromptWide<P0>(&self, outputcontrol: u32, format: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).OutputPromptWide)(::windows_core::Interface::as_raw(self), outputcontrol, format.into_param().abi()).ok()
}
pub unsafe fn OutputPromptVaListWide<P0>(&self, outputcontrol: u32, format: P0, args: *const i8) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).OutputPromptVaListWide)(::windows_core::Interface::as_raw(self), outputcontrol, format.into_param().abi(), args).ok()
}
pub unsafe fn GetPromptTextWide(&self, buffer: ::core::option::Option<&mut [u16]>, textsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetPromptTextWide)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(textsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn AssembleWide<P0>(&self, offset: u64, instr: P0) -> ::windows_core::Result<u64>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).AssembleWide)(::windows_core::Interface::as_raw(self), offset, instr.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn DisassembleWide(&self, offset: u64, flags: u32, buffer: ::core::option::Option<&mut [u16]>, disassemblysize: ::core::option::Option<*mut u32>, endoffset: *mut u64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).DisassembleWide)(::windows_core::Interface::as_raw(self), offset, flags, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(disassemblysize.unwrap_or(::std::ptr::null_mut())), endoffset).ok()
}
pub unsafe fn GetProcessorTypeNamesWide(&self, r#type: u32, fullnamebuffer: ::core::option::Option<&mut [u16]>, fullnamesize: ::core::option::Option<*mut u32>, abbrevnamebuffer: ::core::option::Option<&mut [u16]>, abbrevnamesize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetProcessorTypeNamesWide)(
::windows_core::Interface::as_raw(self),
r#type,
::core::mem::transmute(fullnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
fullnamebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(fullnamesize.unwrap_or(::std::ptr::null_mut())),
::core::mem::transmute(abbrevnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
abbrevnamebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(abbrevnamesize.unwrap_or(::std::ptr::null_mut())),
)
.ok()
}
pub unsafe fn GetTextMacroWide(&self, slot: u32, buffer: ::core::option::Option<&mut [u16]>, macrosize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetTextMacroWide)(::windows_core::Interface::as_raw(self), slot, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(macrosize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetTextMacroWide<P0>(&self, slot: u32, r#macro: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).SetTextMacroWide)(::windows_core::Interface::as_raw(self), slot, r#macro.into_param().abi()).ok()
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn EvaluateWide<P0>(&self, expression: P0, desiredtype: u32, value: *mut DEBUG_VALUE, remainderindex: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).EvaluateWide)(::windows_core::Interface::as_raw(self), expression.into_param().abi(), desiredtype, value, ::core::mem::transmute(remainderindex.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn ExecuteWide<P0>(&self, outputcontrol: u32, command: P0, flags: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).ExecuteWide)(::windows_core::Interface::as_raw(self), outputcontrol, command.into_param().abi(), flags).ok()
}
pub unsafe fn ExecuteCommandFileWide<P0>(&self, outputcontrol: u32, commandfile: P0, flags: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).ExecuteCommandFileWide)(::windows_core::Interface::as_raw(self), outputcontrol, commandfile.into_param().abi(), flags).ok()
}
pub unsafe fn GetBreakpointByIndex2(&self, index: u32) -> ::windows_core::Result<IDebugBreakpoint2> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetBreakpointByIndex2)(::windows_core::Interface::as_raw(self), index, &mut result__).from_abi(result__)
}
pub unsafe fn GetBreakpointById2(&self, id: u32) -> ::windows_core::Result<IDebugBreakpoint2> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetBreakpointById2)(::windows_core::Interface::as_raw(self), id, &mut result__).from_abi(result__)
}
pub unsafe fn AddBreakpoint2(&self, r#type: u32, desiredid: u32) -> ::windows_core::Result<IDebugBreakpoint2> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).AddBreakpoint2)(::windows_core::Interface::as_raw(self), r#type, desiredid, &mut result__).from_abi(result__)
}
pub unsafe fn RemoveBreakpoint2<P0>(&self, bp: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IDebugBreakpoint2>,
{
(::windows_core::Interface::vtable(self).RemoveBreakpoint2)(::windows_core::Interface::as_raw(self), bp.into_param().abi()).ok()
}
pub unsafe fn AddExtensionWide<P0>(&self, path: P0, flags: u32) -> ::windows_core::Result<u64>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).AddExtensionWide)(::windows_core::Interface::as_raw(self), path.into_param().abi(), flags, &mut result__).from_abi(result__)
}
pub unsafe fn GetExtensionByPathWide<P0>(&self, path: P0) -> ::windows_core::Result<u64>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetExtensionByPathWide)(::windows_core::Interface::as_raw(self), path.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn CallExtensionWide<P0, P1>(&self, handle: u64, function: P0, arguments: P1) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
P1: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).CallExtensionWide)(::windows_core::Interface::as_raw(self), handle, function.into_param().abi(), arguments.into_param().abi()).ok()
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn GetExtensionFunctionWide<P0>(&self, handle: u64, funcname: P0, function: *mut super::super::super::super::Foundation::FARPROC) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).GetExtensionFunctionWide)(::windows_core::Interface::as_raw(self), handle, funcname.into_param().abi(), function).ok()
}
pub unsafe fn GetEventFilterTextWide(&self, index: u32, buffer: ::core::option::Option<&mut [u16]>, textsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetEventFilterTextWide)(::windows_core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(textsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetEventFilterCommandWide(&self, index: u32, buffer: ::core::option::Option<&mut [u16]>, commandsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetEventFilterCommandWide)(::windows_core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(commandsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetEventFilterCommandWide<P0>(&self, index: u32, command: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).SetEventFilterCommandWide)(::windows_core::Interface::as_raw(self), index, command.into_param().abi()).ok()
}
pub unsafe fn GetSpecificFilterArgumentWide(&self, index: u32, buffer: ::core::option::Option<&mut [u16]>, argumentsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSpecificFilterArgumentWide)(::windows_core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(argumentsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetSpecificFilterArgumentWide<P0>(&self, index: u32, argument: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).SetSpecificFilterArgumentWide)(::windows_core::Interface::as_raw(self), index, argument.into_param().abi()).ok()
}
pub unsafe fn GetExceptionFilterSecondCommandWide(&self, index: u32, buffer: ::core::option::Option<&mut [u16]>, commandsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetExceptionFilterSecondCommandWide)(::windows_core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(commandsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetExceptionFilterSecondCommandWide<P0>(&self, index: u32, command: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).SetExceptionFilterSecondCommandWide)(::windows_core::Interface::as_raw(self), index, command.into_param().abi()).ok()
}
pub unsafe fn GetLastEventInformationWide(&self, r#type: *mut u32, processid: *mut u32, threadid: *mut u32, extrainformation: ::core::option::Option<*mut ::core::ffi::c_void>, extrainformationsize: u32, extrainformationused: ::core::option::Option<*mut u32>, description: ::core::option::Option<&mut [u16]>, descriptionused: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetLastEventInformationWide)(
::windows_core::Interface::as_raw(self),
r#type,
processid,
threadid,
::core::mem::transmute(extrainformation.unwrap_or(::std::ptr::null_mut())),
extrainformationsize,
::core::mem::transmute(extrainformationused.unwrap_or(::std::ptr::null_mut())),
::core::mem::transmute(description.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
description.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(descriptionused.unwrap_or(::std::ptr::null_mut())),
)
.ok()
}
pub unsafe fn GetTextReplacementWide<P0>(&self, srctext: P0, index: u32, srcbuffer: ::core::option::Option<&mut [u16]>, srcsize: ::core::option::Option<*mut u32>, dstbuffer: ::core::option::Option<&mut [u16]>, dstsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).GetTextReplacementWide)(
::windows_core::Interface::as_raw(self),
srctext.into_param().abi(),
index,
::core::mem::transmute(srcbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
srcbuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(srcsize.unwrap_or(::std::ptr::null_mut())),
::core::mem::transmute(dstbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
dstbuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(dstsize.unwrap_or(::std::ptr::null_mut())),
)
.ok()
}
pub unsafe fn SetTextReplacementWide<P0, P1>(&self, srctext: P0, dsttext: P1) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
P1: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).SetTextReplacementWide)(::windows_core::Interface::as_raw(self), srctext.into_param().abi(), dsttext.into_param().abi()).ok()
}
pub unsafe fn SetExpressionSyntaxByNameWide<P0>(&self, abbrevname: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).SetExpressionSyntaxByNameWide)(::windows_core::Interface::as_raw(self), abbrevname.into_param().abi()).ok()
}
pub unsafe fn GetExpressionSyntaxNamesWide(&self, index: u32, fullnamebuffer: ::core::option::Option<&mut [u16]>, fullnamesize: ::core::option::Option<*mut u32>, abbrevnamebuffer: ::core::option::Option<&mut [u16]>, abbrevnamesize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetExpressionSyntaxNamesWide)(
::windows_core::Interface::as_raw(self),
index,
::core::mem::transmute(fullnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
fullnamebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(fullnamesize.unwrap_or(::std::ptr::null_mut())),
::core::mem::transmute(abbrevnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
abbrevnamebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(abbrevnamesize.unwrap_or(::std::ptr::null_mut())),
)
.ok()
}
pub unsafe fn GetEventIndexDescriptionWide<P0>(&self, index: u32, which: u32, buffer: P0, buffersize: u32, descsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).GetEventIndexDescriptionWide)(::windows_core::Interface::as_raw(self), index, which, buffer.into_param().abi(), buffersize, ::core::mem::transmute(descsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetLogFile2(&self, buffer: ::core::option::Option<&mut [u8]>, filesize: ::core::option::Option<*mut u32>, flags: *mut u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetLogFile2)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(filesize.unwrap_or(::std::ptr::null_mut())), flags).ok()
}
pub unsafe fn OpenLogFile2<P0>(&self, file: P0, flags: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).OpenLogFile2)(::windows_core::Interface::as_raw(self), file.into_param().abi(), flags).ok()
}
pub unsafe fn GetLogFile2Wide(&self, buffer: ::core::option::Option<&mut [u16]>, filesize: ::core::option::Option<*mut u32>, flags: *mut u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetLogFile2Wide)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(filesize.unwrap_or(::std::ptr::null_mut())), flags).ok()
}
pub unsafe fn OpenLogFile2Wide<P0>(&self, file: P0, flags: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).OpenLogFile2Wide)(::windows_core::Interface::as_raw(self), file.into_param().abi(), flags).ok()
}
pub unsafe fn GetSystemVersionValues(&self, platformid: *mut u32, win32major: *mut u32, win32minor: *mut u32, kdmajor: ::core::option::Option<*mut u32>, kdminor: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSystemVersionValues)(::windows_core::Interface::as_raw(self), platformid, win32major, win32minor, ::core::mem::transmute(kdmajor.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(kdminor.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetSystemVersionString(&self, which: u32, buffer: ::core::option::Option<&mut [u8]>, stringsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSystemVersionString)(::windows_core::Interface::as_raw(self), which, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(stringsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetSystemVersionStringWide(&self, which: u32, buffer: ::core::option::Option<&mut [u16]>, stringsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSystemVersionStringWide)(::windows_core::Interface::as_raw(self), which, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(stringsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn GetContextStackTrace(&self, startcontext: ::core::option::Option<*const ::core::ffi::c_void>, startcontextsize: u32, frames: ::core::option::Option<&mut [DEBUG_STACK_FRAME]>, framecontexts: ::core::option::Option<*mut ::core::ffi::c_void>, framecontextssize: u32, framecontextsentrysize: u32, framesfilled: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetContextStackTrace)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(startcontext.unwrap_or(::std::ptr::null())), startcontextsize, ::core::mem::transmute(frames.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), frames.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(framecontexts.unwrap_or(::std::ptr::null_mut())), framecontextssize, framecontextsentrysize, ::core::mem::transmute(framesfilled.unwrap_or(::std::ptr::null_mut()))).ok()
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn OutputContextStackTrace(&self, outputcontrol: u32, frames: &[DEBUG_STACK_FRAME], framecontexts: *const ::core::ffi::c_void, framecontextssize: u32, framecontextsentrysize: u32, flags: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).OutputContextStackTrace)(::windows_core::Interface::as_raw(self), outputcontrol, ::core::mem::transmute(frames.as_ptr()), frames.len().try_into().unwrap(), framecontexts, framecontextssize, framecontextsentrysize, flags).ok()
}
pub unsafe fn GetStoredEventInformation(&self, r#type: *mut u32, processid: *mut u32, threadid: *mut u32, context: ::core::option::Option<*mut ::core::ffi::c_void>, contextsize: u32, contextused: ::core::option::Option<*mut u32>, extrainformation: ::core::option::Option<*mut ::core::ffi::c_void>, extrainformationsize: u32, extrainformationused: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetStoredEventInformation)(::windows_core::Interface::as_raw(self), r#type, processid, threadid, ::core::mem::transmute(context.unwrap_or(::std::ptr::null_mut())), contextsize, ::core::mem::transmute(contextused.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(extrainformation.unwrap_or(::std::ptr::null_mut())), extrainformationsize, ::core::mem::transmute(extrainformationused.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetManagedStatus(&self, flags: ::core::option::Option<*mut u32>, whichstring: u32, string: ::core::option::Option<&mut [u8]>, stringneeded: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetManagedStatus)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(flags.unwrap_or(::std::ptr::null_mut())), whichstring, ::core::mem::transmute(string.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), string.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(stringneeded.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetManagedStatusWide(&self, flags: ::core::option::Option<*mut u32>, whichstring: u32, string: ::core::option::Option<&mut [u16]>, stringneeded: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetManagedStatusWide)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(flags.unwrap_or(::std::ptr::null_mut())), whichstring, ::core::mem::transmute(string.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), string.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(stringneeded.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn ResetManagedStatus(&self, flags: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).ResetManagedStatus)(::windows_core::Interface::as_raw(self), flags).ok()
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn GetStackTraceEx(&self, frameoffset: u64, stackoffset: u64, instructionoffset: u64, frames: &mut [DEBUG_STACK_FRAME_EX], framesfilled: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetStackTraceEx)(::windows_core::Interface::as_raw(self), frameoffset, stackoffset, instructionoffset, ::core::mem::transmute(frames.as_ptr()), frames.len().try_into().unwrap(), ::core::mem::transmute(framesfilled.unwrap_or(::std::ptr::null_mut()))).ok()
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn OutputStackTraceEx(&self, outputcontrol: u32, frames: ::core::option::Option<&[DEBUG_STACK_FRAME_EX]>, flags: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).OutputStackTraceEx)(::windows_core::Interface::as_raw(self), outputcontrol, ::core::mem::transmute(frames.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), frames.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), flags).ok()
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn GetContextStackTraceEx(&self, startcontext: ::core::option::Option<*const ::core::ffi::c_void>, startcontextsize: u32, frames: ::core::option::Option<&mut [DEBUG_STACK_FRAME_EX]>, framecontexts: ::core::option::Option<*mut ::core::ffi::c_void>, framecontextssize: u32, framecontextsentrysize: u32, framesfilled: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetContextStackTraceEx)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(startcontext.unwrap_or(::std::ptr::null())), startcontextsize, ::core::mem::transmute(frames.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), frames.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(framecontexts.unwrap_or(::std::ptr::null_mut())), framecontextssize, framecontextsentrysize, ::core::mem::transmute(framesfilled.unwrap_or(::std::ptr::null_mut()))).ok()
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn OutputContextStackTraceEx(&self, outputcontrol: u32, frames: &[DEBUG_STACK_FRAME_EX], framecontexts: *const ::core::ffi::c_void, framecontextssize: u32, framecontextsentrysize: u32, flags: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).OutputContextStackTraceEx)(::windows_core::Interface::as_raw(self), outputcontrol, ::core::mem::transmute(frames.as_ptr()), frames.len().try_into().unwrap(), framecontexts, framecontextssize, framecontextsentrysize, flags).ok()
}
pub unsafe fn GetBreakpointByGuid(&self, guid: *const ::windows_core::GUID) -> ::windows_core::Result<IDebugBreakpoint3> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetBreakpointByGuid)(::windows_core::Interface::as_raw(self), guid, &mut result__).from_abi(result__)
}
pub unsafe fn GetExecutionStatusEx(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetExecutionStatusEx)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetSynchronizationStatus(&self, sendsattempted: *mut u32, secondssincelastresponse: *mut u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSynchronizationStatus)(::windows_core::Interface::as_raw(self), sendsattempted, secondssincelastresponse).ok()
}
}
::windows_core::imp::interface_hierarchy!(IDebugControl6, ::windows_core::IUnknown);
unsafe impl ::windows_core::Interface for IDebugControl6 {
type Vtable = IDebugControl6_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IDebugControl6 {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0xbc0d583f_126d_43a1_9cc4_a860ab1d537b);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugControl6_Vtbl {
pub base__: ::windows_core::IUnknown_Vtbl,
pub GetInterrupt: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub SetInterrupt: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32) -> ::windows_core::HRESULT,
pub GetInterruptTimeout: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, seconds: *mut u32) -> ::windows_core::HRESULT,
pub SetInterruptTimeout: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, seconds: u32) -> ::windows_core::HRESULT,
#[cfg(feature = "Win32_Foundation")]
pub GetLogFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PSTR, buffersize: u32, filesize: *mut u32, append: *mut super::super::super::super::Foundation::BOOL) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
GetLogFile: usize,
#[cfg(feature = "Win32_Foundation")]
pub OpenLogFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, file: ::windows_core::PCSTR, append: super::super::super::super::Foundation::BOOL) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
OpenLogFile: usize,
pub CloseLogFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub GetLogMask: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: *mut u32) -> ::windows_core::HRESULT,
pub SetLogMask: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: u32) -> ::windows_core::HRESULT,
pub Input: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PSTR, buffersize: u32, inputsize: *mut u32) -> ::windows_core::HRESULT,
pub ReturnInput: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub Output: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: u32, format: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub OutputVaList: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: u32, format: ::windows_core::PCSTR, args: *const i8) -> ::windows_core::HRESULT,
pub ControlledOutput: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, mask: u32, format: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub ControlledOutputVaList: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, mask: u32, format: ::windows_core::PCSTR, args: *const i8) -> ::windows_core::HRESULT,
pub OutputPrompt: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, format: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub OutputPromptVaList: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, format: ::windows_core::PCSTR, args: *const i8) -> ::windows_core::HRESULT,
pub GetPromptText: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PSTR, buffersize: u32, textsize: *mut u32) -> ::windows_core::HRESULT,
pub OutputCurrentState: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, flags: u32) -> ::windows_core::HRESULT,
pub OutputVersionInformation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32) -> ::windows_core::HRESULT,
pub GetNotifyEventHandle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: *mut u64) -> ::windows_core::HRESULT,
pub SetNotifyEventHandle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64) -> ::windows_core::HRESULT,
pub Assemble: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, instr: ::windows_core::PCSTR, endoffset: *mut u64) -> ::windows_core::HRESULT,
pub Disassemble: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, flags: u32, buffer: ::windows_core::PSTR, buffersize: u32, disassemblysize: *mut u32, endoffset: *mut u64) -> ::windows_core::HRESULT,
pub GetDisassembleEffectiveOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows_core::HRESULT,
pub OutputDisassembly: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, offset: u64, flags: u32, endoffset: *mut u64) -> ::windows_core::HRESULT,
pub OutputDisassemblyLines: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, previouslines: u32, totallines: u32, offset: u64, flags: u32, offsetline: *mut u32, startoffset: *mut u64, endoffset: *mut u64, lineoffsets: *mut u64) -> ::windows_core::HRESULT,
pub GetNearInstruction: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, delta: i32, nearoffset: *mut u64) -> ::windows_core::HRESULT,
#[cfg(feature = "Win32_Foundation")]
pub GetStackTrace: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, frameoffset: u64, stackoffset: u64, instructionoffset: u64, frames: *mut DEBUG_STACK_FRAME, framessize: u32, framesfilled: *mut u32) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
GetStackTrace: usize,
pub GetReturnOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows_core::HRESULT,
#[cfg(feature = "Win32_Foundation")]
pub OutputStackTrace: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, frames: *const DEBUG_STACK_FRAME, framessize: u32, flags: u32) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
OutputStackTrace: usize,
pub GetDebuggeeType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, class: *mut u32, qualifier: *mut u32) -> ::windows_core::HRESULT,
pub GetActualProcessorType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: *mut u32) -> ::windows_core::HRESULT,
pub GetExecutingProcessorType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: *mut u32) -> ::windows_core::HRESULT,
pub GetNumberPossibleExecutingProcessorTypes: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows_core::HRESULT,
pub GetPossibleExecutingProcessorTypes: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, start: u32, count: u32, types: *mut u32) -> ::windows_core::HRESULT,
pub GetNumberProcessors: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows_core::HRESULT,
pub GetSystemVersion: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, platformid: *mut u32, major: *mut u32, minor: *mut u32, servicepackstring: ::windows_core::PSTR, servicepackstringsize: u32, servicepackstringused: *mut u32, servicepacknumber: *mut u32, buildstring: ::windows_core::PSTR, buildstringsize: u32, buildstringused: *mut u32) -> ::windows_core::HRESULT,
pub GetPageSize: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, size: *mut u32) -> ::windows_core::HRESULT,
pub IsPointer64Bit: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub ReadBugCheckData: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, code: *mut u32, arg1: *mut u64, arg2: *mut u64, arg3: *mut u64, arg4: *mut u64) -> ::windows_core::HRESULT,
pub GetNumberSupportedProcessorTypes: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows_core::HRESULT,
pub GetSupportedProcessorTypes: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, start: u32, count: u32, types: *mut u32) -> ::windows_core::HRESULT,
pub GetProcessorTypeNames: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: u32, fullnamebuffer: ::windows_core::PSTR, fullnamebuffersize: u32, fullnamesize: *mut u32, abbrevnamebuffer: ::windows_core::PSTR, abbrevnamebuffersize: u32, abbrevnamesize: *mut u32) -> ::windows_core::HRESULT,
pub GetEffectiveProcessorType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: *mut u32) -> ::windows_core::HRESULT,
pub SetEffectiveProcessorType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: u32) -> ::windows_core::HRESULT,
pub GetExecutionStatus: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, status: *mut u32) -> ::windows_core::HRESULT,
pub SetExecutionStatus: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, status: u32) -> ::windows_core::HRESULT,
pub GetCodeLevel: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, level: *mut u32) -> ::windows_core::HRESULT,
pub SetCodeLevel: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, level: u32) -> ::windows_core::HRESULT,
pub GetEngineOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: *mut u32) -> ::windows_core::HRESULT,
pub AddEngineOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows_core::HRESULT,
pub RemoveEngineOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows_core::HRESULT,
pub SetEngineOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows_core::HRESULT,
pub GetSystemErrorControl: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputlevel: *mut u32, breaklevel: *mut u32) -> ::windows_core::HRESULT,
pub SetSystemErrorControl: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputlevel: u32, breaklevel: u32) -> ::windows_core::HRESULT,
pub GetTextMacro: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, slot: u32, buffer: ::windows_core::PSTR, buffersize: u32, macrosize: *mut u32) -> ::windows_core::HRESULT,
pub SetTextMacro: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, slot: u32, r#macro: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub GetRadix: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, radix: *mut u32) -> ::windows_core::HRESULT,
pub SetRadix: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, radix: u32) -> ::windows_core::HRESULT,
#[cfg(feature = "Win32_Foundation")]
pub Evaluate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, expression: ::windows_core::PCSTR, desiredtype: u32, value: *mut DEBUG_VALUE, remainderindex: *mut u32) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
Evaluate: usize,
#[cfg(feature = "Win32_Foundation")]
pub CoerceValue: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#in: *const DEBUG_VALUE, outtype: u32, out: *mut DEBUG_VALUE) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
CoerceValue: usize,
#[cfg(feature = "Win32_Foundation")]
pub CoerceValues: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: u32, r#in: *const DEBUG_VALUE, outtypes: *const u32, out: *mut DEBUG_VALUE) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
CoerceValues: usize,
pub Execute: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, command: ::windows_core::PCSTR, flags: u32) -> ::windows_core::HRESULT,
pub ExecuteCommandFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, commandfile: ::windows_core::PCSTR, flags: u32) -> ::windows_core::HRESULT,
pub GetNumberBreakpoints: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows_core::HRESULT,
pub GetBreakpointByIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, bp: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub GetBreakpointById: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: u32, bp: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub GetBreakpointParameters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: u32, ids: *const u32, start: u32, params: *mut DEBUG_BREAKPOINT_PARAMETERS) -> ::windows_core::HRESULT,
pub AddBreakpoint: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: u32, desiredid: u32, bp: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub RemoveBreakpoint: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, bp: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub AddExtension: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, path: ::windows_core::PCSTR, flags: u32, handle: *mut u64) -> ::windows_core::HRESULT,
pub RemoveExtension: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64) -> ::windows_core::HRESULT,
pub GetExtensionByPath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, path: ::windows_core::PCSTR, handle: *mut u64) -> ::windows_core::HRESULT,
pub CallExtension: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64, function: ::windows_core::PCSTR, arguments: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
#[cfg(feature = "Win32_Foundation")]
pub GetExtensionFunction: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64, funcname: ::windows_core::PCSTR, function: *mut super::super::super::super::Foundation::FARPROC) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
GetExtensionFunction: usize,
#[cfg(feature = "Win32_System_Kernel")]
pub GetWindbgExtensionApis32: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, api: *mut WINDBG_EXTENSION_APIS32) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_System_Kernel"))]
GetWindbgExtensionApis32: usize,
#[cfg(feature = "Win32_System_Kernel")]
pub GetWindbgExtensionApis64: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, api: *mut WINDBG_EXTENSION_APIS64) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_System_Kernel"))]
GetWindbgExtensionApis64: usize,
pub GetNumberEventFilters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, specificevents: *mut u32, specificexceptions: *mut u32, arbitraryexceptions: *mut u32) -> ::windows_core::HRESULT,
pub GetEventFilterText: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows_core::PSTR, buffersize: u32, textsize: *mut u32) -> ::windows_core::HRESULT,
pub GetEventFilterCommand: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows_core::PSTR, buffersize: u32, commandsize: *mut u32) -> ::windows_core::HRESULT,
pub SetEventFilterCommand: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, command: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub GetSpecificFilterParameters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, start: u32, count: u32, params: *mut DEBUG_SPECIFIC_FILTER_PARAMETERS) -> ::windows_core::HRESULT,
pub SetSpecificFilterParameters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, start: u32, count: u32, params: *const DEBUG_SPECIFIC_FILTER_PARAMETERS) -> ::windows_core::HRESULT,
pub GetSpecificFilterArgument: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows_core::PSTR, buffersize: u32, argumentsize: *mut u32) -> ::windows_core::HRESULT,
pub SetSpecificFilterArgument: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, argument: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub GetExceptionFilterParameters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: u32, codes: *const u32, start: u32, params: *mut DEBUG_EXCEPTION_FILTER_PARAMETERS) -> ::windows_core::HRESULT,
pub SetExceptionFilterParameters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: u32, params: *const DEBUG_EXCEPTION_FILTER_PARAMETERS) -> ::windows_core::HRESULT,
pub GetExceptionFilterSecondCommand: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows_core::PSTR, buffersize: u32, commandsize: *mut u32) -> ::windows_core::HRESULT,
pub SetExceptionFilterSecondCommand: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, command: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub WaitForEvent: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, timeout: u32) -> ::windows_core::HRESULT,
pub GetLastEventInformation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: *mut u32, processid: *mut u32, threadid: *mut u32, extrainformation: *mut ::core::ffi::c_void, extrainformationsize: u32, extrainformationused: *mut u32, description: ::windows_core::PSTR, descriptionsize: u32, descriptionused: *mut u32) -> ::windows_core::HRESULT,
pub GetCurrentTimeDate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, timedate: *mut u32) -> ::windows_core::HRESULT,
pub GetCurrentSystemUpTime: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, uptime: *mut u32) -> ::windows_core::HRESULT,
pub GetDumpFormatFlags: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, formatflags: *mut u32) -> ::windows_core::HRESULT,
pub GetNumberTextReplacements: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, numrepl: *mut u32) -> ::windows_core::HRESULT,
pub GetTextReplacement: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, srctext: ::windows_core::PCSTR, index: u32, srcbuffer: ::windows_core::PSTR, srcbuffersize: u32, srcsize: *mut u32, dstbuffer: ::windows_core::PSTR, dstbuffersize: u32, dstsize: *mut u32) -> ::windows_core::HRESULT,
pub SetTextReplacement: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, srctext: ::windows_core::PCSTR, dsttext: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub RemoveTextReplacements: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub OutputTextReplacements: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, flags: u32) -> ::windows_core::HRESULT,
pub GetAssemblyOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: *mut u32) -> ::windows_core::HRESULT,
pub AddAssemblyOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows_core::HRESULT,
pub RemoveAssemblyOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows_core::HRESULT,
pub SetAssemblyOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows_core::HRESULT,
pub GetExpressionSyntax: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: *mut u32) -> ::windows_core::HRESULT,
pub SetExpressionSyntax: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32) -> ::windows_core::HRESULT,
pub SetExpressionSyntaxByName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, abbrevname: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub GetNumberExpressionSyntaxes: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows_core::HRESULT,
pub GetExpressionSyntaxNames: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, fullnamebuffer: ::windows_core::PSTR, fullnamebuffersize: u32, fullnamesize: *mut u32, abbrevnamebuffer: ::windows_core::PSTR, abbrevnamebuffersize: u32, abbrevnamesize: *mut u32) -> ::windows_core::HRESULT,
pub GetNumberEvents: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, events: *mut u32) -> ::windows_core::HRESULT,
pub GetEventIndexDescription: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, which: u32, buffer: ::windows_core::PCSTR, buffersize: u32, descsize: *mut u32) -> ::windows_core::HRESULT,
pub GetCurrentEventIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: *mut u32) -> ::windows_core::HRESULT,
pub SetNextEventIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, relation: u32, value: u32, nextindex: *mut u32) -> ::windows_core::HRESULT,
#[cfg(feature = "Win32_Foundation")]
pub GetLogFileWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PWSTR, buffersize: u32, filesize: *mut u32, append: *mut super::super::super::super::Foundation::BOOL) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
GetLogFileWide: usize,
#[cfg(feature = "Win32_Foundation")]
pub OpenLogFileWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, file: ::windows_core::PCWSTR, append: super::super::super::super::Foundation::BOOL) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
OpenLogFileWide: usize,
pub InputWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PWSTR, buffersize: u32, inputsize: *mut u32) -> ::windows_core::HRESULT,
pub ReturnInputWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
pub OutputWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: u32, format: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
pub OutputVaListWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: u32, format: ::windows_core::PCWSTR, args: *const i8) -> ::windows_core::HRESULT,
pub ControlledOutputWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, mask: u32, format: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
pub ControlledOutputVaListWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, mask: u32, format: ::windows_core::PCWSTR, args: *const i8) -> ::windows_core::HRESULT,
pub OutputPromptWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, format: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
pub OutputPromptVaListWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, format: ::windows_core::PCWSTR, args: *const i8) -> ::windows_core::HRESULT,
pub GetPromptTextWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PWSTR, buffersize: u32, textsize: *mut u32) -> ::windows_core::HRESULT,
pub AssembleWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, instr: ::windows_core::PCWSTR, endoffset: *mut u64) -> ::windows_core::HRESULT,
pub DisassembleWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, flags: u32, buffer: ::windows_core::PWSTR, buffersize: u32, disassemblysize: *mut u32, endoffset: *mut u64) -> ::windows_core::HRESULT,
pub GetProcessorTypeNamesWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: u32, fullnamebuffer: ::windows_core::PWSTR, fullnamebuffersize: u32, fullnamesize: *mut u32, abbrevnamebuffer: ::windows_core::PWSTR, abbrevnamebuffersize: u32, abbrevnamesize: *mut u32) -> ::windows_core::HRESULT,
pub GetTextMacroWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, slot: u32, buffer: ::windows_core::PWSTR, buffersize: u32, macrosize: *mut u32) -> ::windows_core::HRESULT,
pub SetTextMacroWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, slot: u32, r#macro: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
#[cfg(feature = "Win32_Foundation")]
pub EvaluateWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, expression: ::windows_core::PCWSTR, desiredtype: u32, value: *mut DEBUG_VALUE, remainderindex: *mut u32) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
EvaluateWide: usize,
pub ExecuteWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, command: ::windows_core::PCWSTR, flags: u32) -> ::windows_core::HRESULT,
pub ExecuteCommandFileWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, commandfile: ::windows_core::PCWSTR, flags: u32) -> ::windows_core::HRESULT,
pub GetBreakpointByIndex2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, bp: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub GetBreakpointById2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: u32, bp: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub AddBreakpoint2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: u32, desiredid: u32, bp: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub RemoveBreakpoint2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, bp: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub AddExtensionWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, path: ::windows_core::PCWSTR, flags: u32, handle: *mut u64) -> ::windows_core::HRESULT,
pub GetExtensionByPathWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, path: ::windows_core::PCWSTR, handle: *mut u64) -> ::windows_core::HRESULT,
pub CallExtensionWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64, function: ::windows_core::PCWSTR, arguments: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
#[cfg(feature = "Win32_Foundation")]
pub GetExtensionFunctionWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64, funcname: ::windows_core::PCWSTR, function: *mut super::super::super::super::Foundation::FARPROC) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
GetExtensionFunctionWide: usize,
pub GetEventFilterTextWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows_core::PWSTR, buffersize: u32, textsize: *mut u32) -> ::windows_core::HRESULT,
pub GetEventFilterCommandWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows_core::PWSTR, buffersize: u32, commandsize: *mut u32) -> ::windows_core::HRESULT,
pub SetEventFilterCommandWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, command: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
pub GetSpecificFilterArgumentWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows_core::PWSTR, buffersize: u32, argumentsize: *mut u32) -> ::windows_core::HRESULT,
pub SetSpecificFilterArgumentWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, argument: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
pub GetExceptionFilterSecondCommandWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows_core::PWSTR, buffersize: u32, commandsize: *mut u32) -> ::windows_core::HRESULT,
pub SetExceptionFilterSecondCommandWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, command: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
pub GetLastEventInformationWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: *mut u32, processid: *mut u32, threadid: *mut u32, extrainformation: *mut ::core::ffi::c_void, extrainformationsize: u32, extrainformationused: *mut u32, description: ::windows_core::PWSTR, descriptionsize: u32, descriptionused: *mut u32) -> ::windows_core::HRESULT,
pub GetTextReplacementWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, srctext: ::windows_core::PCWSTR, index: u32, srcbuffer: ::windows_core::PWSTR, srcbuffersize: u32, srcsize: *mut u32, dstbuffer: ::windows_core::PWSTR, dstbuffersize: u32, dstsize: *mut u32) -> ::windows_core::HRESULT,
pub SetTextReplacementWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, srctext: ::windows_core::PCWSTR, dsttext: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
pub SetExpressionSyntaxByNameWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, abbrevname: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
pub GetExpressionSyntaxNamesWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, fullnamebuffer: ::windows_core::PWSTR, fullnamebuffersize: u32, fullnamesize: *mut u32, abbrevnamebuffer: ::windows_core::PWSTR, abbrevnamebuffersize: u32, abbrevnamesize: *mut u32) -> ::windows_core::HRESULT,
pub GetEventIndexDescriptionWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, which: u32, buffer: ::windows_core::PCWSTR, buffersize: u32, descsize: *mut u32) -> ::windows_core::HRESULT,
pub GetLogFile2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PSTR, buffersize: u32, filesize: *mut u32, flags: *mut u32) -> ::windows_core::HRESULT,
pub OpenLogFile2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, file: ::windows_core::PCSTR, flags: u32) -> ::windows_core::HRESULT,
pub GetLogFile2Wide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PWSTR, buffersize: u32, filesize: *mut u32, flags: *mut u32) -> ::windows_core::HRESULT,
pub OpenLogFile2Wide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, file: ::windows_core::PCWSTR, flags: u32) -> ::windows_core::HRESULT,
pub GetSystemVersionValues: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, platformid: *mut u32, win32major: *mut u32, win32minor: *mut u32, kdmajor: *mut u32, kdminor: *mut u32) -> ::windows_core::HRESULT,
pub GetSystemVersionString: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, which: u32, buffer: ::windows_core::PSTR, buffersize: u32, stringsize: *mut u32) -> ::windows_core::HRESULT,
pub GetSystemVersionStringWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, which: u32, buffer: ::windows_core::PWSTR, buffersize: u32, stringsize: *mut u32) -> ::windows_core::HRESULT,
#[cfg(feature = "Win32_Foundation")]
pub GetContextStackTrace: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, startcontext: *const ::core::ffi::c_void, startcontextsize: u32, frames: *mut DEBUG_STACK_FRAME, framessize: u32, framecontexts: *mut ::core::ffi::c_void, framecontextssize: u32, framecontextsentrysize: u32, framesfilled: *mut u32) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
GetContextStackTrace: usize,
#[cfg(feature = "Win32_Foundation")]
pub OutputContextStackTrace: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, frames: *const DEBUG_STACK_FRAME, framessize: u32, framecontexts: *const ::core::ffi::c_void, framecontextssize: u32, framecontextsentrysize: u32, flags: u32) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
OutputContextStackTrace: usize,
pub GetStoredEventInformation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: *mut u32, processid: *mut u32, threadid: *mut u32, context: *mut ::core::ffi::c_void, contextsize: u32, contextused: *mut u32, extrainformation: *mut ::core::ffi::c_void, extrainformationsize: u32, extrainformationused: *mut u32) -> ::windows_core::HRESULT,
pub GetManagedStatus: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: *mut u32, whichstring: u32, string: ::windows_core::PSTR, stringsize: u32, stringneeded: *mut u32) -> ::windows_core::HRESULT,
pub GetManagedStatusWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: *mut u32, whichstring: u32, string: ::windows_core::PWSTR, stringsize: u32, stringneeded: *mut u32) -> ::windows_core::HRESULT,
pub ResetManagedStatus: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32) -> ::windows_core::HRESULT,
#[cfg(feature = "Win32_Foundation")]
pub GetStackTraceEx: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, frameoffset: u64, stackoffset: u64, instructionoffset: u64, frames: *mut DEBUG_STACK_FRAME_EX, framessize: u32, framesfilled: *mut u32) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
GetStackTraceEx: usize,
#[cfg(feature = "Win32_Foundation")]
pub OutputStackTraceEx: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, frames: *const DEBUG_STACK_FRAME_EX, framessize: u32, flags: u32) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
OutputStackTraceEx: usize,
#[cfg(feature = "Win32_Foundation")]
pub GetContextStackTraceEx: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, startcontext: *const ::core::ffi::c_void, startcontextsize: u32, frames: *mut DEBUG_STACK_FRAME_EX, framessize: u32, framecontexts: *mut ::core::ffi::c_void, framecontextssize: u32, framecontextsentrysize: u32, framesfilled: *mut u32) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
GetContextStackTraceEx: usize,
#[cfg(feature = "Win32_Foundation")]
pub OutputContextStackTraceEx: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, frames: *const DEBUG_STACK_FRAME_EX, framessize: u32, framecontexts: *const ::core::ffi::c_void, framecontextssize: u32, framecontextsentrysize: u32, flags: u32) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
OutputContextStackTraceEx: usize,
pub GetBreakpointByGuid: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, guid: *const ::windows_core::GUID, bp: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub GetExecutionStatusEx: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, status: *mut u32) -> ::windows_core::HRESULT,
pub GetSynchronizationStatus: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, sendsattempted: *mut u32, secondssincelastresponse: *mut u32) -> ::windows_core::HRESULT,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IDebugControl7(::windows_core::IUnknown);
impl IDebugControl7 {
pub unsafe fn GetInterrupt(&self) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetInterrupt)(::windows_core::Interface::as_raw(self)).ok()
}
pub unsafe fn SetInterrupt(&self, flags: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetInterrupt)(::windows_core::Interface::as_raw(self), flags).ok()
}
pub unsafe fn GetInterruptTimeout(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetInterruptTimeout)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetInterruptTimeout(&self, seconds: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetInterruptTimeout)(::windows_core::Interface::as_raw(self), seconds).ok()
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn GetLogFile(&self, buffer: ::core::option::Option<&mut [u8]>, filesize: ::core::option::Option<*mut u32>, append: *mut super::super::super::super::Foundation::BOOL) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetLogFile)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(filesize.unwrap_or(::std::ptr::null_mut())), append).ok()
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn OpenLogFile<P0, P1>(&self, file: P0, append: P1) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
P1: ::windows_core::IntoParam<super::super::super::super::Foundation::BOOL>,
{
(::windows_core::Interface::vtable(self).OpenLogFile)(::windows_core::Interface::as_raw(self), file.into_param().abi(), append.into_param().abi()).ok()
}
pub unsafe fn CloseLogFile(&self) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).CloseLogFile)(::windows_core::Interface::as_raw(self)).ok()
}
pub unsafe fn GetLogMask(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetLogMask)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetLogMask(&self, mask: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetLogMask)(::windows_core::Interface::as_raw(self), mask).ok()
}
pub unsafe fn Input(&self, buffer: &mut [u8], inputsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).Input)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_ptr()), buffer.len().try_into().unwrap(), ::core::mem::transmute(inputsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn ReturnInput<P0>(&self, buffer: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).ReturnInput)(::windows_core::Interface::as_raw(self), buffer.into_param().abi()).ok()
}
pub unsafe fn Output<P0>(&self, mask: u32, format: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).Output)(::windows_core::Interface::as_raw(self), mask, format.into_param().abi()).ok()
}
pub unsafe fn OutputVaList<P0>(&self, mask: u32, format: P0, args: *const i8) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).OutputVaList)(::windows_core::Interface::as_raw(self), mask, format.into_param().abi(), args).ok()
}
pub unsafe fn ControlledOutput<P0>(&self, outputcontrol: u32, mask: u32, format: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).ControlledOutput)(::windows_core::Interface::as_raw(self), outputcontrol, mask, format.into_param().abi()).ok()
}
pub unsafe fn ControlledOutputVaList<P0>(&self, outputcontrol: u32, mask: u32, format: P0, args: *const i8) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).ControlledOutputVaList)(::windows_core::Interface::as_raw(self), outputcontrol, mask, format.into_param().abi(), args).ok()
}
pub unsafe fn OutputPrompt<P0>(&self, outputcontrol: u32, format: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).OutputPrompt)(::windows_core::Interface::as_raw(self), outputcontrol, format.into_param().abi()).ok()
}
pub unsafe fn OutputPromptVaList<P0>(&self, outputcontrol: u32, format: P0, args: *const i8) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).OutputPromptVaList)(::windows_core::Interface::as_raw(self), outputcontrol, format.into_param().abi(), args).ok()
}
pub unsafe fn GetPromptText(&self, buffer: ::core::option::Option<&mut [u8]>, textsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetPromptText)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(textsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn OutputCurrentState(&self, outputcontrol: u32, flags: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).OutputCurrentState)(::windows_core::Interface::as_raw(self), outputcontrol, flags).ok()
}
pub unsafe fn OutputVersionInformation(&self, outputcontrol: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).OutputVersionInformation)(::windows_core::Interface::as_raw(self), outputcontrol).ok()
}
pub unsafe fn GetNotifyEventHandle(&self) -> ::windows_core::Result<u64> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetNotifyEventHandle)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetNotifyEventHandle(&self, handle: u64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetNotifyEventHandle)(::windows_core::Interface::as_raw(self), handle).ok()
}
pub unsafe fn Assemble<P0>(&self, offset: u64, instr: P0) -> ::windows_core::Result<u64>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).Assemble)(::windows_core::Interface::as_raw(self), offset, instr.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn Disassemble(&self, offset: u64, flags: u32, buffer: ::core::option::Option<&mut [u8]>, disassemblysize: ::core::option::Option<*mut u32>, endoffset: *mut u64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).Disassemble)(::windows_core::Interface::as_raw(self), offset, flags, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(disassemblysize.unwrap_or(::std::ptr::null_mut())), endoffset).ok()
}
pub unsafe fn GetDisassembleEffectiveOffset(&self) -> ::windows_core::Result<u64> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetDisassembleEffectiveOffset)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn OutputDisassembly(&self, outputcontrol: u32, offset: u64, flags: u32) -> ::windows_core::Result<u64> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).OutputDisassembly)(::windows_core::Interface::as_raw(self), outputcontrol, offset, flags, &mut result__).from_abi(result__)
}
pub unsafe fn OutputDisassemblyLines(&self, outputcontrol: u32, previouslines: u32, offset: u64, flags: u32, offsetline: ::core::option::Option<*mut u32>, startoffset: ::core::option::Option<*mut u64>, endoffset: ::core::option::Option<*mut u64>, lineoffsets: ::core::option::Option<&mut [u64]>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).OutputDisassemblyLines)(::windows_core::Interface::as_raw(self), outputcontrol, previouslines, lineoffsets.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), offset, flags, ::core::mem::transmute(offsetline.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(startoffset.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(endoffset.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(lineoffsets.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok()
}
pub unsafe fn GetNearInstruction(&self, offset: u64, delta: i32) -> ::windows_core::Result<u64> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetNearInstruction)(::windows_core::Interface::as_raw(self), offset, delta, &mut result__).from_abi(result__)
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn GetStackTrace(&self, frameoffset: u64, stackoffset: u64, instructionoffset: u64, frames: &mut [DEBUG_STACK_FRAME], framesfilled: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetStackTrace)(::windows_core::Interface::as_raw(self), frameoffset, stackoffset, instructionoffset, ::core::mem::transmute(frames.as_ptr()), frames.len().try_into().unwrap(), ::core::mem::transmute(framesfilled.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetReturnOffset(&self) -> ::windows_core::Result<u64> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetReturnOffset)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn OutputStackTrace(&self, outputcontrol: u32, frames: ::core::option::Option<&[DEBUG_STACK_FRAME]>, flags: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).OutputStackTrace)(::windows_core::Interface::as_raw(self), outputcontrol, ::core::mem::transmute(frames.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), frames.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), flags).ok()
}
pub unsafe fn GetDebuggeeType(&self, class: *mut u32, qualifier: *mut u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetDebuggeeType)(::windows_core::Interface::as_raw(self), class, qualifier).ok()
}
pub unsafe fn GetActualProcessorType(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetActualProcessorType)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetExecutingProcessorType(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetExecutingProcessorType)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetNumberPossibleExecutingProcessorTypes(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetNumberPossibleExecutingProcessorTypes)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetPossibleExecutingProcessorTypes(&self, start: u32, types: &mut [u32]) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetPossibleExecutingProcessorTypes)(::windows_core::Interface::as_raw(self), start, types.len().try_into().unwrap(), ::core::mem::transmute(types.as_ptr())).ok()
}
pub unsafe fn GetNumberProcessors(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetNumberProcessors)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetSystemVersion(&self, platformid: *mut u32, major: *mut u32, minor: *mut u32, servicepackstring: ::core::option::Option<&mut [u8]>, servicepackstringused: ::core::option::Option<*mut u32>, servicepacknumber: *mut u32, buildstring: ::core::option::Option<&mut [u8]>, buildstringused: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSystemVersion)(
::windows_core::Interface::as_raw(self),
platformid,
major,
minor,
::core::mem::transmute(servicepackstring.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
servicepackstring.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(servicepackstringused.unwrap_or(::std::ptr::null_mut())),
servicepacknumber,
::core::mem::transmute(buildstring.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
buildstring.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(buildstringused.unwrap_or(::std::ptr::null_mut())),
)
.ok()
}
pub unsafe fn GetPageSize(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetPageSize)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn IsPointer64Bit(&self) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).IsPointer64Bit)(::windows_core::Interface::as_raw(self)).ok()
}
pub unsafe fn ReadBugCheckData(&self, code: *mut u32, arg1: *mut u64, arg2: *mut u64, arg3: *mut u64, arg4: *mut u64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).ReadBugCheckData)(::windows_core::Interface::as_raw(self), code, arg1, arg2, arg3, arg4).ok()
}
pub unsafe fn GetNumberSupportedProcessorTypes(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetNumberSupportedProcessorTypes)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetSupportedProcessorTypes(&self, start: u32, types: &mut [u32]) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSupportedProcessorTypes)(::windows_core::Interface::as_raw(self), start, types.len().try_into().unwrap(), ::core::mem::transmute(types.as_ptr())).ok()
}
pub unsafe fn GetProcessorTypeNames(&self, r#type: u32, fullnamebuffer: ::core::option::Option<&mut [u8]>, fullnamesize: ::core::option::Option<*mut u32>, abbrevnamebuffer: ::core::option::Option<&mut [u8]>, abbrevnamesize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetProcessorTypeNames)(
::windows_core::Interface::as_raw(self),
r#type,
::core::mem::transmute(fullnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
fullnamebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(fullnamesize.unwrap_or(::std::ptr::null_mut())),
::core::mem::transmute(abbrevnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
abbrevnamebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(abbrevnamesize.unwrap_or(::std::ptr::null_mut())),
)
.ok()
}
pub unsafe fn GetEffectiveProcessorType(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetEffectiveProcessorType)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetEffectiveProcessorType(&self, r#type: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetEffectiveProcessorType)(::windows_core::Interface::as_raw(self), r#type).ok()
}
pub unsafe fn GetExecutionStatus(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetExecutionStatus)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetExecutionStatus(&self, status: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetExecutionStatus)(::windows_core::Interface::as_raw(self), status).ok()
}
pub unsafe fn GetCodeLevel(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetCodeLevel)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetCodeLevel(&self, level: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetCodeLevel)(::windows_core::Interface::as_raw(self), level).ok()
}
pub unsafe fn GetEngineOptions(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetEngineOptions)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn AddEngineOptions(&self, options: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).AddEngineOptions)(::windows_core::Interface::as_raw(self), options).ok()
}
pub unsafe fn RemoveEngineOptions(&self, options: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).RemoveEngineOptions)(::windows_core::Interface::as_raw(self), options).ok()
}
pub unsafe fn SetEngineOptions(&self, options: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetEngineOptions)(::windows_core::Interface::as_raw(self), options).ok()
}
pub unsafe fn GetSystemErrorControl(&self, outputlevel: *mut u32, breaklevel: *mut u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSystemErrorControl)(::windows_core::Interface::as_raw(self), outputlevel, breaklevel).ok()
}
pub unsafe fn SetSystemErrorControl(&self, outputlevel: u32, breaklevel: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetSystemErrorControl)(::windows_core::Interface::as_raw(self), outputlevel, breaklevel).ok()
}
pub unsafe fn GetTextMacro(&self, slot: u32, buffer: ::core::option::Option<&mut [u8]>, macrosize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetTextMacro)(::windows_core::Interface::as_raw(self), slot, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(macrosize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetTextMacro<P0>(&self, slot: u32, r#macro: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).SetTextMacro)(::windows_core::Interface::as_raw(self), slot, r#macro.into_param().abi()).ok()
}
pub unsafe fn GetRadix(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetRadix)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetRadix(&self, radix: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetRadix)(::windows_core::Interface::as_raw(self), radix).ok()
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn Evaluate<P0>(&self, expression: P0, desiredtype: u32, value: *mut DEBUG_VALUE, remainderindex: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).Evaluate)(::windows_core::Interface::as_raw(self), expression.into_param().abi(), desiredtype, value, ::core::mem::transmute(remainderindex.unwrap_or(::std::ptr::null_mut()))).ok()
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn CoerceValue(&self, r#in: *const DEBUG_VALUE, outtype: u32, out: *mut DEBUG_VALUE) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).CoerceValue)(::windows_core::Interface::as_raw(self), r#in, outtype, out).ok()
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn CoerceValues(&self, count: u32, r#in: *const DEBUG_VALUE, outtypes: *const u32, out: *mut DEBUG_VALUE) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).CoerceValues)(::windows_core::Interface::as_raw(self), count, r#in, outtypes, out).ok()
}
pub unsafe fn Execute<P0>(&self, outputcontrol: u32, command: P0, flags: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).Execute)(::windows_core::Interface::as_raw(self), outputcontrol, command.into_param().abi(), flags).ok()
}
pub unsafe fn ExecuteCommandFile<P0>(&self, outputcontrol: u32, commandfile: P0, flags: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).ExecuteCommandFile)(::windows_core::Interface::as_raw(self), outputcontrol, commandfile.into_param().abi(), flags).ok()
}
pub unsafe fn GetNumberBreakpoints(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetNumberBreakpoints)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetBreakpointByIndex(&self, index: u32) -> ::windows_core::Result<IDebugBreakpoint> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetBreakpointByIndex)(::windows_core::Interface::as_raw(self), index, &mut result__).from_abi(result__)
}
pub unsafe fn GetBreakpointById(&self, id: u32) -> ::windows_core::Result<IDebugBreakpoint> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetBreakpointById)(::windows_core::Interface::as_raw(self), id, &mut result__).from_abi(result__)
}
pub unsafe fn GetBreakpointParameters(&self, count: u32, ids: ::core::option::Option<*const u32>, start: u32, params: *mut DEBUG_BREAKPOINT_PARAMETERS) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetBreakpointParameters)(::windows_core::Interface::as_raw(self), count, ::core::mem::transmute(ids.unwrap_or(::std::ptr::null())), start, params).ok()
}
pub unsafe fn AddBreakpoint(&self, r#type: u32, desiredid: u32) -> ::windows_core::Result<IDebugBreakpoint> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).AddBreakpoint)(::windows_core::Interface::as_raw(self), r#type, desiredid, &mut result__).from_abi(result__)
}
pub unsafe fn RemoveBreakpoint<P0>(&self, bp: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IDebugBreakpoint>,
{
(::windows_core::Interface::vtable(self).RemoveBreakpoint)(::windows_core::Interface::as_raw(self), bp.into_param().abi()).ok()
}
pub unsafe fn AddExtension<P0>(&self, path: P0, flags: u32) -> ::windows_core::Result<u64>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).AddExtension)(::windows_core::Interface::as_raw(self), path.into_param().abi(), flags, &mut result__).from_abi(result__)
}
pub unsafe fn RemoveExtension(&self, handle: u64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).RemoveExtension)(::windows_core::Interface::as_raw(self), handle).ok()
}
pub unsafe fn GetExtensionByPath<P0>(&self, path: P0) -> ::windows_core::Result<u64>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetExtensionByPath)(::windows_core::Interface::as_raw(self), path.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn CallExtension<P0, P1>(&self, handle: u64, function: P0, arguments: P1) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
P1: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).CallExtension)(::windows_core::Interface::as_raw(self), handle, function.into_param().abi(), arguments.into_param().abi()).ok()
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn GetExtensionFunction<P0>(&self, handle: u64, funcname: P0, function: *mut super::super::super::super::Foundation::FARPROC) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).GetExtensionFunction)(::windows_core::Interface::as_raw(self), handle, funcname.into_param().abi(), function).ok()
}
#[doc = "Required features: `\"Win32_System_Kernel\"`"]
#[cfg(feature = "Win32_System_Kernel")]
pub unsafe fn GetWindbgExtensionApis32(&self, api: *mut WINDBG_EXTENSION_APIS32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetWindbgExtensionApis32)(::windows_core::Interface::as_raw(self), api).ok()
}
#[doc = "Required features: `\"Win32_System_Kernel\"`"]
#[cfg(feature = "Win32_System_Kernel")]
pub unsafe fn GetWindbgExtensionApis64(&self, api: *mut WINDBG_EXTENSION_APIS64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetWindbgExtensionApis64)(::windows_core::Interface::as_raw(self), api).ok()
}
pub unsafe fn GetNumberEventFilters(&self, specificevents: *mut u32, specificexceptions: *mut u32, arbitraryexceptions: *mut u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetNumberEventFilters)(::windows_core::Interface::as_raw(self), specificevents, specificexceptions, arbitraryexceptions).ok()
}
pub unsafe fn GetEventFilterText(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, textsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetEventFilterText)(::windows_core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(textsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetEventFilterCommand(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, commandsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetEventFilterCommand)(::windows_core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(commandsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetEventFilterCommand<P0>(&self, index: u32, command: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).SetEventFilterCommand)(::windows_core::Interface::as_raw(self), index, command.into_param().abi()).ok()
}
pub unsafe fn GetSpecificFilterParameters(&self, start: u32, params: &mut [DEBUG_SPECIFIC_FILTER_PARAMETERS]) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSpecificFilterParameters)(::windows_core::Interface::as_raw(self), start, params.len().try_into().unwrap(), ::core::mem::transmute(params.as_ptr())).ok()
}
pub unsafe fn SetSpecificFilterParameters(&self, start: u32, params: &[DEBUG_SPECIFIC_FILTER_PARAMETERS]) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetSpecificFilterParameters)(::windows_core::Interface::as_raw(self), start, params.len().try_into().unwrap(), ::core::mem::transmute(params.as_ptr())).ok()
}
pub unsafe fn GetSpecificFilterArgument(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, argumentsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSpecificFilterArgument)(::windows_core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(argumentsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetSpecificFilterArgument<P0>(&self, index: u32, argument: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).SetSpecificFilterArgument)(::windows_core::Interface::as_raw(self), index, argument.into_param().abi()).ok()
}
pub unsafe fn GetExceptionFilterParameters(&self, count: u32, codes: ::core::option::Option<*const u32>, start: u32, params: *mut DEBUG_EXCEPTION_FILTER_PARAMETERS) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetExceptionFilterParameters)(::windows_core::Interface::as_raw(self), count, ::core::mem::transmute(codes.unwrap_or(::std::ptr::null())), start, params).ok()
}
pub unsafe fn SetExceptionFilterParameters(&self, params: &[DEBUG_EXCEPTION_FILTER_PARAMETERS]) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetExceptionFilterParameters)(::windows_core::Interface::as_raw(self), params.len().try_into().unwrap(), ::core::mem::transmute(params.as_ptr())).ok()
}
pub unsafe fn GetExceptionFilterSecondCommand(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, commandsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetExceptionFilterSecondCommand)(::windows_core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(commandsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetExceptionFilterSecondCommand<P0>(&self, index: u32, command: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).SetExceptionFilterSecondCommand)(::windows_core::Interface::as_raw(self), index, command.into_param().abi()).ok()
}
pub unsafe fn WaitForEvent(&self, flags: u32, timeout: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).WaitForEvent)(::windows_core::Interface::as_raw(self), flags, timeout).ok()
}
pub unsafe fn GetLastEventInformation(&self, r#type: *mut u32, processid: *mut u32, threadid: *mut u32, extrainformation: ::core::option::Option<*mut ::core::ffi::c_void>, extrainformationsize: u32, extrainformationused: ::core::option::Option<*mut u32>, description: ::core::option::Option<&mut [u8]>, descriptionused: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetLastEventInformation)(
::windows_core::Interface::as_raw(self),
r#type,
processid,
threadid,
::core::mem::transmute(extrainformation.unwrap_or(::std::ptr::null_mut())),
extrainformationsize,
::core::mem::transmute(extrainformationused.unwrap_or(::std::ptr::null_mut())),
::core::mem::transmute(description.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
description.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(descriptionused.unwrap_or(::std::ptr::null_mut())),
)
.ok()
}
pub unsafe fn GetCurrentTimeDate(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetCurrentTimeDate)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetCurrentSystemUpTime(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetCurrentSystemUpTime)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetDumpFormatFlags(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetDumpFormatFlags)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetNumberTextReplacements(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetNumberTextReplacements)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetTextReplacement<P0>(&self, srctext: P0, index: u32, srcbuffer: ::core::option::Option<&mut [u8]>, srcsize: ::core::option::Option<*mut u32>, dstbuffer: ::core::option::Option<&mut [u8]>, dstsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).GetTextReplacement)(
::windows_core::Interface::as_raw(self),
srctext.into_param().abi(),
index,
::core::mem::transmute(srcbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
srcbuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(srcsize.unwrap_or(::std::ptr::null_mut())),
::core::mem::transmute(dstbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
dstbuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(dstsize.unwrap_or(::std::ptr::null_mut())),
)
.ok()
}
pub unsafe fn SetTextReplacement<P0, P1>(&self, srctext: P0, dsttext: P1) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
P1: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).SetTextReplacement)(::windows_core::Interface::as_raw(self), srctext.into_param().abi(), dsttext.into_param().abi()).ok()
}
pub unsafe fn RemoveTextReplacements(&self) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).RemoveTextReplacements)(::windows_core::Interface::as_raw(self)).ok()
}
pub unsafe fn OutputTextReplacements(&self, outputcontrol: u32, flags: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).OutputTextReplacements)(::windows_core::Interface::as_raw(self), outputcontrol, flags).ok()
}
pub unsafe fn GetAssemblyOptions(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetAssemblyOptions)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn AddAssemblyOptions(&self, options: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).AddAssemblyOptions)(::windows_core::Interface::as_raw(self), options).ok()
}
pub unsafe fn RemoveAssemblyOptions(&self, options: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).RemoveAssemblyOptions)(::windows_core::Interface::as_raw(self), options).ok()
}
pub unsafe fn SetAssemblyOptions(&self, options: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetAssemblyOptions)(::windows_core::Interface::as_raw(self), options).ok()
}
pub unsafe fn GetExpressionSyntax(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetExpressionSyntax)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetExpressionSyntax(&self, flags: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetExpressionSyntax)(::windows_core::Interface::as_raw(self), flags).ok()
}
pub unsafe fn SetExpressionSyntaxByName<P0>(&self, abbrevname: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).SetExpressionSyntaxByName)(::windows_core::Interface::as_raw(self), abbrevname.into_param().abi()).ok()
}
pub unsafe fn GetNumberExpressionSyntaxes(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetNumberExpressionSyntaxes)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetExpressionSyntaxNames(&self, index: u32, fullnamebuffer: ::core::option::Option<&mut [u8]>, fullnamesize: ::core::option::Option<*mut u32>, abbrevnamebuffer: ::core::option::Option<&mut [u8]>, abbrevnamesize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetExpressionSyntaxNames)(
::windows_core::Interface::as_raw(self),
index,
::core::mem::transmute(fullnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
fullnamebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(fullnamesize.unwrap_or(::std::ptr::null_mut())),
::core::mem::transmute(abbrevnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
abbrevnamebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(abbrevnamesize.unwrap_or(::std::ptr::null_mut())),
)
.ok()
}
pub unsafe fn GetNumberEvents(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetNumberEvents)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetEventIndexDescription<P0>(&self, index: u32, which: u32, buffer: P0, buffersize: u32, descsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).GetEventIndexDescription)(::windows_core::Interface::as_raw(self), index, which, buffer.into_param().abi(), buffersize, ::core::mem::transmute(descsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetCurrentEventIndex(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetCurrentEventIndex)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetNextEventIndex(&self, relation: u32, value: u32) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).SetNextEventIndex)(::windows_core::Interface::as_raw(self), relation, value, &mut result__).from_abi(result__)
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn GetLogFileWide(&self, buffer: ::core::option::Option<&mut [u16]>, filesize: ::core::option::Option<*mut u32>, append: *mut super::super::super::super::Foundation::BOOL) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetLogFileWide)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(filesize.unwrap_or(::std::ptr::null_mut())), append).ok()
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn OpenLogFileWide<P0, P1>(&self, file: P0, append: P1) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
P1: ::windows_core::IntoParam<super::super::super::super::Foundation::BOOL>,
{
(::windows_core::Interface::vtable(self).OpenLogFileWide)(::windows_core::Interface::as_raw(self), file.into_param().abi(), append.into_param().abi()).ok()
}
pub unsafe fn InputWide(&self, buffer: &mut [u16], inputsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).InputWide)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_ptr()), buffer.len().try_into().unwrap(), ::core::mem::transmute(inputsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn ReturnInputWide<P0>(&self, buffer: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).ReturnInputWide)(::windows_core::Interface::as_raw(self), buffer.into_param().abi()).ok()
}
pub unsafe fn OutputWide<P0>(&self, mask: u32, format: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).OutputWide)(::windows_core::Interface::as_raw(self), mask, format.into_param().abi()).ok()
}
pub unsafe fn OutputVaListWide<P0>(&self, mask: u32, format: P0, args: *const i8) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).OutputVaListWide)(::windows_core::Interface::as_raw(self), mask, format.into_param().abi(), args).ok()
}
pub unsafe fn ControlledOutputWide<P0>(&self, outputcontrol: u32, mask: u32, format: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).ControlledOutputWide)(::windows_core::Interface::as_raw(self), outputcontrol, mask, format.into_param().abi()).ok()
}
pub unsafe fn ControlledOutputVaListWide<P0>(&self, outputcontrol: u32, mask: u32, format: P0, args: *const i8) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).ControlledOutputVaListWide)(::windows_core::Interface::as_raw(self), outputcontrol, mask, format.into_param().abi(), args).ok()
}
pub unsafe fn OutputPromptWide<P0>(&self, outputcontrol: u32, format: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).OutputPromptWide)(::windows_core::Interface::as_raw(self), outputcontrol, format.into_param().abi()).ok()
}
pub unsafe fn OutputPromptVaListWide<P0>(&self, outputcontrol: u32, format: P0, args: *const i8) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).OutputPromptVaListWide)(::windows_core::Interface::as_raw(self), outputcontrol, format.into_param().abi(), args).ok()
}
pub unsafe fn GetPromptTextWide(&self, buffer: ::core::option::Option<&mut [u16]>, textsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetPromptTextWide)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(textsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn AssembleWide<P0>(&self, offset: u64, instr: P0) -> ::windows_core::Result<u64>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).AssembleWide)(::windows_core::Interface::as_raw(self), offset, instr.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn DisassembleWide(&self, offset: u64, flags: u32, buffer: ::core::option::Option<&mut [u16]>, disassemblysize: ::core::option::Option<*mut u32>, endoffset: *mut u64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).DisassembleWide)(::windows_core::Interface::as_raw(self), offset, flags, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(disassemblysize.unwrap_or(::std::ptr::null_mut())), endoffset).ok()
}
pub unsafe fn GetProcessorTypeNamesWide(&self, r#type: u32, fullnamebuffer: ::core::option::Option<&mut [u16]>, fullnamesize: ::core::option::Option<*mut u32>, abbrevnamebuffer: ::core::option::Option<&mut [u16]>, abbrevnamesize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetProcessorTypeNamesWide)(
::windows_core::Interface::as_raw(self),
r#type,
::core::mem::transmute(fullnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
fullnamebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(fullnamesize.unwrap_or(::std::ptr::null_mut())),
::core::mem::transmute(abbrevnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
abbrevnamebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(abbrevnamesize.unwrap_or(::std::ptr::null_mut())),
)
.ok()
}
pub unsafe fn GetTextMacroWide(&self, slot: u32, buffer: ::core::option::Option<&mut [u16]>, macrosize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetTextMacroWide)(::windows_core::Interface::as_raw(self), slot, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(macrosize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetTextMacroWide<P0>(&self, slot: u32, r#macro: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).SetTextMacroWide)(::windows_core::Interface::as_raw(self), slot, r#macro.into_param().abi()).ok()
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn EvaluateWide<P0>(&self, expression: P0, desiredtype: u32, value: *mut DEBUG_VALUE, remainderindex: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).EvaluateWide)(::windows_core::Interface::as_raw(self), expression.into_param().abi(), desiredtype, value, ::core::mem::transmute(remainderindex.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn ExecuteWide<P0>(&self, outputcontrol: u32, command: P0, flags: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).ExecuteWide)(::windows_core::Interface::as_raw(self), outputcontrol, command.into_param().abi(), flags).ok()
}
pub unsafe fn ExecuteCommandFileWide<P0>(&self, outputcontrol: u32, commandfile: P0, flags: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).ExecuteCommandFileWide)(::windows_core::Interface::as_raw(self), outputcontrol, commandfile.into_param().abi(), flags).ok()
}
pub unsafe fn GetBreakpointByIndex2(&self, index: u32) -> ::windows_core::Result<IDebugBreakpoint2> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetBreakpointByIndex2)(::windows_core::Interface::as_raw(self), index, &mut result__).from_abi(result__)
}
pub unsafe fn GetBreakpointById2(&self, id: u32) -> ::windows_core::Result<IDebugBreakpoint2> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetBreakpointById2)(::windows_core::Interface::as_raw(self), id, &mut result__).from_abi(result__)
}
pub unsafe fn AddBreakpoint2(&self, r#type: u32, desiredid: u32) -> ::windows_core::Result<IDebugBreakpoint2> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).AddBreakpoint2)(::windows_core::Interface::as_raw(self), r#type, desiredid, &mut result__).from_abi(result__)
}
pub unsafe fn RemoveBreakpoint2<P0>(&self, bp: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IDebugBreakpoint2>,
{
(::windows_core::Interface::vtable(self).RemoveBreakpoint2)(::windows_core::Interface::as_raw(self), bp.into_param().abi()).ok()
}
pub unsafe fn AddExtensionWide<P0>(&self, path: P0, flags: u32) -> ::windows_core::Result<u64>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).AddExtensionWide)(::windows_core::Interface::as_raw(self), path.into_param().abi(), flags, &mut result__).from_abi(result__)
}
pub unsafe fn GetExtensionByPathWide<P0>(&self, path: P0) -> ::windows_core::Result<u64>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetExtensionByPathWide)(::windows_core::Interface::as_raw(self), path.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn CallExtensionWide<P0, P1>(&self, handle: u64, function: P0, arguments: P1) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
P1: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).CallExtensionWide)(::windows_core::Interface::as_raw(self), handle, function.into_param().abi(), arguments.into_param().abi()).ok()
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn GetExtensionFunctionWide<P0>(&self, handle: u64, funcname: P0, function: *mut super::super::super::super::Foundation::FARPROC) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).GetExtensionFunctionWide)(::windows_core::Interface::as_raw(self), handle, funcname.into_param().abi(), function).ok()
}
pub unsafe fn GetEventFilterTextWide(&self, index: u32, buffer: ::core::option::Option<&mut [u16]>, textsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetEventFilterTextWide)(::windows_core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(textsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetEventFilterCommandWide(&self, index: u32, buffer: ::core::option::Option<&mut [u16]>, commandsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetEventFilterCommandWide)(::windows_core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(commandsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetEventFilterCommandWide<P0>(&self, index: u32, command: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).SetEventFilterCommandWide)(::windows_core::Interface::as_raw(self), index, command.into_param().abi()).ok()
}
pub unsafe fn GetSpecificFilterArgumentWide(&self, index: u32, buffer: ::core::option::Option<&mut [u16]>, argumentsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSpecificFilterArgumentWide)(::windows_core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(argumentsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetSpecificFilterArgumentWide<P0>(&self, index: u32, argument: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).SetSpecificFilterArgumentWide)(::windows_core::Interface::as_raw(self), index, argument.into_param().abi()).ok()
}
pub unsafe fn GetExceptionFilterSecondCommandWide(&self, index: u32, buffer: ::core::option::Option<&mut [u16]>, commandsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetExceptionFilterSecondCommandWide)(::windows_core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(commandsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetExceptionFilterSecondCommandWide<P0>(&self, index: u32, command: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).SetExceptionFilterSecondCommandWide)(::windows_core::Interface::as_raw(self), index, command.into_param().abi()).ok()
}
pub unsafe fn GetLastEventInformationWide(&self, r#type: *mut u32, processid: *mut u32, threadid: *mut u32, extrainformation: ::core::option::Option<*mut ::core::ffi::c_void>, extrainformationsize: u32, extrainformationused: ::core::option::Option<*mut u32>, description: ::core::option::Option<&mut [u16]>, descriptionused: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetLastEventInformationWide)(
::windows_core::Interface::as_raw(self),
r#type,
processid,
threadid,
::core::mem::transmute(extrainformation.unwrap_or(::std::ptr::null_mut())),
extrainformationsize,
::core::mem::transmute(extrainformationused.unwrap_or(::std::ptr::null_mut())),
::core::mem::transmute(description.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
description.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(descriptionused.unwrap_or(::std::ptr::null_mut())),
)
.ok()
}
pub unsafe fn GetTextReplacementWide<P0>(&self, srctext: P0, index: u32, srcbuffer: ::core::option::Option<&mut [u16]>, srcsize: ::core::option::Option<*mut u32>, dstbuffer: ::core::option::Option<&mut [u16]>, dstsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).GetTextReplacementWide)(
::windows_core::Interface::as_raw(self),
srctext.into_param().abi(),
index,
::core::mem::transmute(srcbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
srcbuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(srcsize.unwrap_or(::std::ptr::null_mut())),
::core::mem::transmute(dstbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
dstbuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(dstsize.unwrap_or(::std::ptr::null_mut())),
)
.ok()
}
pub unsafe fn SetTextReplacementWide<P0, P1>(&self, srctext: P0, dsttext: P1) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
P1: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).SetTextReplacementWide)(::windows_core::Interface::as_raw(self), srctext.into_param().abi(), dsttext.into_param().abi()).ok()
}
pub unsafe fn SetExpressionSyntaxByNameWide<P0>(&self, abbrevname: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).SetExpressionSyntaxByNameWide)(::windows_core::Interface::as_raw(self), abbrevname.into_param().abi()).ok()
}
pub unsafe fn GetExpressionSyntaxNamesWide(&self, index: u32, fullnamebuffer: ::core::option::Option<&mut [u16]>, fullnamesize: ::core::option::Option<*mut u32>, abbrevnamebuffer: ::core::option::Option<&mut [u16]>, abbrevnamesize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetExpressionSyntaxNamesWide)(
::windows_core::Interface::as_raw(self),
index,
::core::mem::transmute(fullnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
fullnamebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(fullnamesize.unwrap_or(::std::ptr::null_mut())),
::core::mem::transmute(abbrevnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
abbrevnamebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(abbrevnamesize.unwrap_or(::std::ptr::null_mut())),
)
.ok()
}
pub unsafe fn GetEventIndexDescriptionWide<P0>(&self, index: u32, which: u32, buffer: P0, buffersize: u32, descsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).GetEventIndexDescriptionWide)(::windows_core::Interface::as_raw(self), index, which, buffer.into_param().abi(), buffersize, ::core::mem::transmute(descsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetLogFile2(&self, buffer: ::core::option::Option<&mut [u8]>, filesize: ::core::option::Option<*mut u32>, flags: *mut u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetLogFile2)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(filesize.unwrap_or(::std::ptr::null_mut())), flags).ok()
}
pub unsafe fn OpenLogFile2<P0>(&self, file: P0, flags: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).OpenLogFile2)(::windows_core::Interface::as_raw(self), file.into_param().abi(), flags).ok()
}
pub unsafe fn GetLogFile2Wide(&self, buffer: ::core::option::Option<&mut [u16]>, filesize: ::core::option::Option<*mut u32>, flags: *mut u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetLogFile2Wide)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(filesize.unwrap_or(::std::ptr::null_mut())), flags).ok()
}
pub unsafe fn OpenLogFile2Wide<P0>(&self, file: P0, flags: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).OpenLogFile2Wide)(::windows_core::Interface::as_raw(self), file.into_param().abi(), flags).ok()
}
pub unsafe fn GetSystemVersionValues(&self, platformid: *mut u32, win32major: *mut u32, win32minor: *mut u32, kdmajor: ::core::option::Option<*mut u32>, kdminor: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSystemVersionValues)(::windows_core::Interface::as_raw(self), platformid, win32major, win32minor, ::core::mem::transmute(kdmajor.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(kdminor.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetSystemVersionString(&self, which: u32, buffer: ::core::option::Option<&mut [u8]>, stringsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSystemVersionString)(::windows_core::Interface::as_raw(self), which, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(stringsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetSystemVersionStringWide(&self, which: u32, buffer: ::core::option::Option<&mut [u16]>, stringsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSystemVersionStringWide)(::windows_core::Interface::as_raw(self), which, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(stringsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn GetContextStackTrace(&self, startcontext: ::core::option::Option<*const ::core::ffi::c_void>, startcontextsize: u32, frames: ::core::option::Option<&mut [DEBUG_STACK_FRAME]>, framecontexts: ::core::option::Option<*mut ::core::ffi::c_void>, framecontextssize: u32, framecontextsentrysize: u32, framesfilled: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetContextStackTrace)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(startcontext.unwrap_or(::std::ptr::null())), startcontextsize, ::core::mem::transmute(frames.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), frames.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(framecontexts.unwrap_or(::std::ptr::null_mut())), framecontextssize, framecontextsentrysize, ::core::mem::transmute(framesfilled.unwrap_or(::std::ptr::null_mut()))).ok()
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn OutputContextStackTrace(&self, outputcontrol: u32, frames: &[DEBUG_STACK_FRAME], framecontexts: *const ::core::ffi::c_void, framecontextssize: u32, framecontextsentrysize: u32, flags: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).OutputContextStackTrace)(::windows_core::Interface::as_raw(self), outputcontrol, ::core::mem::transmute(frames.as_ptr()), frames.len().try_into().unwrap(), framecontexts, framecontextssize, framecontextsentrysize, flags).ok()
}
pub unsafe fn GetStoredEventInformation(&self, r#type: *mut u32, processid: *mut u32, threadid: *mut u32, context: ::core::option::Option<*mut ::core::ffi::c_void>, contextsize: u32, contextused: ::core::option::Option<*mut u32>, extrainformation: ::core::option::Option<*mut ::core::ffi::c_void>, extrainformationsize: u32, extrainformationused: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetStoredEventInformation)(::windows_core::Interface::as_raw(self), r#type, processid, threadid, ::core::mem::transmute(context.unwrap_or(::std::ptr::null_mut())), contextsize, ::core::mem::transmute(contextused.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(extrainformation.unwrap_or(::std::ptr::null_mut())), extrainformationsize, ::core::mem::transmute(extrainformationused.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetManagedStatus(&self, flags: ::core::option::Option<*mut u32>, whichstring: u32, string: ::core::option::Option<&mut [u8]>, stringneeded: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetManagedStatus)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(flags.unwrap_or(::std::ptr::null_mut())), whichstring, ::core::mem::transmute(string.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), string.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(stringneeded.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetManagedStatusWide(&self, flags: ::core::option::Option<*mut u32>, whichstring: u32, string: ::core::option::Option<&mut [u16]>, stringneeded: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetManagedStatusWide)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(flags.unwrap_or(::std::ptr::null_mut())), whichstring, ::core::mem::transmute(string.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), string.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(stringneeded.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn ResetManagedStatus(&self, flags: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).ResetManagedStatus)(::windows_core::Interface::as_raw(self), flags).ok()
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn GetStackTraceEx(&self, frameoffset: u64, stackoffset: u64, instructionoffset: u64, frames: &mut [DEBUG_STACK_FRAME_EX], framesfilled: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetStackTraceEx)(::windows_core::Interface::as_raw(self), frameoffset, stackoffset, instructionoffset, ::core::mem::transmute(frames.as_ptr()), frames.len().try_into().unwrap(), ::core::mem::transmute(framesfilled.unwrap_or(::std::ptr::null_mut()))).ok()
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn OutputStackTraceEx(&self, outputcontrol: u32, frames: ::core::option::Option<&[DEBUG_STACK_FRAME_EX]>, flags: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).OutputStackTraceEx)(::windows_core::Interface::as_raw(self), outputcontrol, ::core::mem::transmute(frames.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), frames.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), flags).ok()
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn GetContextStackTraceEx(&self, startcontext: ::core::option::Option<*const ::core::ffi::c_void>, startcontextsize: u32, frames: ::core::option::Option<&mut [DEBUG_STACK_FRAME_EX]>, framecontexts: ::core::option::Option<*mut ::core::ffi::c_void>, framecontextssize: u32, framecontextsentrysize: u32, framesfilled: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetContextStackTraceEx)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(startcontext.unwrap_or(::std::ptr::null())), startcontextsize, ::core::mem::transmute(frames.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), frames.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(framecontexts.unwrap_or(::std::ptr::null_mut())), framecontextssize, framecontextsentrysize, ::core::mem::transmute(framesfilled.unwrap_or(::std::ptr::null_mut()))).ok()
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn OutputContextStackTraceEx(&self, outputcontrol: u32, frames: &[DEBUG_STACK_FRAME_EX], framecontexts: *const ::core::ffi::c_void, framecontextssize: u32, framecontextsentrysize: u32, flags: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).OutputContextStackTraceEx)(::windows_core::Interface::as_raw(self), outputcontrol, ::core::mem::transmute(frames.as_ptr()), frames.len().try_into().unwrap(), framecontexts, framecontextssize, framecontextsentrysize, flags).ok()
}
pub unsafe fn GetBreakpointByGuid(&self, guid: *const ::windows_core::GUID) -> ::windows_core::Result<IDebugBreakpoint3> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetBreakpointByGuid)(::windows_core::Interface::as_raw(self), guid, &mut result__).from_abi(result__)
}
pub unsafe fn GetExecutionStatusEx(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetExecutionStatusEx)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetSynchronizationStatus(&self, sendsattempted: *mut u32, secondssincelastresponse: *mut u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSynchronizationStatus)(::windows_core::Interface::as_raw(self), sendsattempted, secondssincelastresponse).ok()
}
pub unsafe fn GetDebuggeeType2(&self, flags: u32, class: *mut u32, qualifier: *mut u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetDebuggeeType2)(::windows_core::Interface::as_raw(self), flags, class, qualifier).ok()
}
}
::windows_core::imp::interface_hierarchy!(IDebugControl7, ::windows_core::IUnknown);
unsafe impl ::windows_core::Interface for IDebugControl7 {
type Vtable = IDebugControl7_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IDebugControl7 {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0xb86fb3b1_80d4_475b_aea3_cf06539cf63a);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugControl7_Vtbl {
pub base__: ::windows_core::IUnknown_Vtbl,
pub GetInterrupt: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub SetInterrupt: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32) -> ::windows_core::HRESULT,
pub GetInterruptTimeout: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, seconds: *mut u32) -> ::windows_core::HRESULT,
pub SetInterruptTimeout: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, seconds: u32) -> ::windows_core::HRESULT,
#[cfg(feature = "Win32_Foundation")]
pub GetLogFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PSTR, buffersize: u32, filesize: *mut u32, append: *mut super::super::super::super::Foundation::BOOL) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
GetLogFile: usize,
#[cfg(feature = "Win32_Foundation")]
pub OpenLogFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, file: ::windows_core::PCSTR, append: super::super::super::super::Foundation::BOOL) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
OpenLogFile: usize,
pub CloseLogFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub GetLogMask: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: *mut u32) -> ::windows_core::HRESULT,
pub SetLogMask: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: u32) -> ::windows_core::HRESULT,
pub Input: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PSTR, buffersize: u32, inputsize: *mut u32) -> ::windows_core::HRESULT,
pub ReturnInput: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub Output: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: u32, format: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub OutputVaList: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: u32, format: ::windows_core::PCSTR, args: *const i8) -> ::windows_core::HRESULT,
pub ControlledOutput: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, mask: u32, format: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub ControlledOutputVaList: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, mask: u32, format: ::windows_core::PCSTR, args: *const i8) -> ::windows_core::HRESULT,
pub OutputPrompt: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, format: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub OutputPromptVaList: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, format: ::windows_core::PCSTR, args: *const i8) -> ::windows_core::HRESULT,
pub GetPromptText: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PSTR, buffersize: u32, textsize: *mut u32) -> ::windows_core::HRESULT,
pub OutputCurrentState: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, flags: u32) -> ::windows_core::HRESULT,
pub OutputVersionInformation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32) -> ::windows_core::HRESULT,
pub GetNotifyEventHandle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: *mut u64) -> ::windows_core::HRESULT,
pub SetNotifyEventHandle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64) -> ::windows_core::HRESULT,
pub Assemble: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, instr: ::windows_core::PCSTR, endoffset: *mut u64) -> ::windows_core::HRESULT,
pub Disassemble: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, flags: u32, buffer: ::windows_core::PSTR, buffersize: u32, disassemblysize: *mut u32, endoffset: *mut u64) -> ::windows_core::HRESULT,
pub GetDisassembleEffectiveOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows_core::HRESULT,
pub OutputDisassembly: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, offset: u64, flags: u32, endoffset: *mut u64) -> ::windows_core::HRESULT,
pub OutputDisassemblyLines: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, previouslines: u32, totallines: u32, offset: u64, flags: u32, offsetline: *mut u32, startoffset: *mut u64, endoffset: *mut u64, lineoffsets: *mut u64) -> ::windows_core::HRESULT,
pub GetNearInstruction: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, delta: i32, nearoffset: *mut u64) -> ::windows_core::HRESULT,
#[cfg(feature = "Win32_Foundation")]
pub GetStackTrace: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, frameoffset: u64, stackoffset: u64, instructionoffset: u64, frames: *mut DEBUG_STACK_FRAME, framessize: u32, framesfilled: *mut u32) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
GetStackTrace: usize,
pub GetReturnOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows_core::HRESULT,
#[cfg(feature = "Win32_Foundation")]
pub OutputStackTrace: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, frames: *const DEBUG_STACK_FRAME, framessize: u32, flags: u32) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
OutputStackTrace: usize,
pub GetDebuggeeType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, class: *mut u32, qualifier: *mut u32) -> ::windows_core::HRESULT,
pub GetActualProcessorType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: *mut u32) -> ::windows_core::HRESULT,
pub GetExecutingProcessorType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: *mut u32) -> ::windows_core::HRESULT,
pub GetNumberPossibleExecutingProcessorTypes: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows_core::HRESULT,
pub GetPossibleExecutingProcessorTypes: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, start: u32, count: u32, types: *mut u32) -> ::windows_core::HRESULT,
pub GetNumberProcessors: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows_core::HRESULT,
pub GetSystemVersion: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, platformid: *mut u32, major: *mut u32, minor: *mut u32, servicepackstring: ::windows_core::PSTR, servicepackstringsize: u32, servicepackstringused: *mut u32, servicepacknumber: *mut u32, buildstring: ::windows_core::PSTR, buildstringsize: u32, buildstringused: *mut u32) -> ::windows_core::HRESULT,
pub GetPageSize: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, size: *mut u32) -> ::windows_core::HRESULT,
pub IsPointer64Bit: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub ReadBugCheckData: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, code: *mut u32, arg1: *mut u64, arg2: *mut u64, arg3: *mut u64, arg4: *mut u64) -> ::windows_core::HRESULT,
pub GetNumberSupportedProcessorTypes: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows_core::HRESULT,
pub GetSupportedProcessorTypes: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, start: u32, count: u32, types: *mut u32) -> ::windows_core::HRESULT,
pub GetProcessorTypeNames: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: u32, fullnamebuffer: ::windows_core::PSTR, fullnamebuffersize: u32, fullnamesize: *mut u32, abbrevnamebuffer: ::windows_core::PSTR, abbrevnamebuffersize: u32, abbrevnamesize: *mut u32) -> ::windows_core::HRESULT,
pub GetEffectiveProcessorType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: *mut u32) -> ::windows_core::HRESULT,
pub SetEffectiveProcessorType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: u32) -> ::windows_core::HRESULT,
pub GetExecutionStatus: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, status: *mut u32) -> ::windows_core::HRESULT,
pub SetExecutionStatus: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, status: u32) -> ::windows_core::HRESULT,
pub GetCodeLevel: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, level: *mut u32) -> ::windows_core::HRESULT,
pub SetCodeLevel: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, level: u32) -> ::windows_core::HRESULT,
pub GetEngineOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: *mut u32) -> ::windows_core::HRESULT,
pub AddEngineOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows_core::HRESULT,
pub RemoveEngineOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows_core::HRESULT,
pub SetEngineOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows_core::HRESULT,
pub GetSystemErrorControl: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputlevel: *mut u32, breaklevel: *mut u32) -> ::windows_core::HRESULT,
pub SetSystemErrorControl: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputlevel: u32, breaklevel: u32) -> ::windows_core::HRESULT,
pub GetTextMacro: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, slot: u32, buffer: ::windows_core::PSTR, buffersize: u32, macrosize: *mut u32) -> ::windows_core::HRESULT,
pub SetTextMacro: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, slot: u32, r#macro: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub GetRadix: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, radix: *mut u32) -> ::windows_core::HRESULT,
pub SetRadix: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, radix: u32) -> ::windows_core::HRESULT,
#[cfg(feature = "Win32_Foundation")]
pub Evaluate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, expression: ::windows_core::PCSTR, desiredtype: u32, value: *mut DEBUG_VALUE, remainderindex: *mut u32) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
Evaluate: usize,
#[cfg(feature = "Win32_Foundation")]
pub CoerceValue: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#in: *const DEBUG_VALUE, outtype: u32, out: *mut DEBUG_VALUE) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
CoerceValue: usize,
#[cfg(feature = "Win32_Foundation")]
pub CoerceValues: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: u32, r#in: *const DEBUG_VALUE, outtypes: *const u32, out: *mut DEBUG_VALUE) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
CoerceValues: usize,
pub Execute: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, command: ::windows_core::PCSTR, flags: u32) -> ::windows_core::HRESULT,
pub ExecuteCommandFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, commandfile: ::windows_core::PCSTR, flags: u32) -> ::windows_core::HRESULT,
pub GetNumberBreakpoints: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows_core::HRESULT,
pub GetBreakpointByIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, bp: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub GetBreakpointById: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: u32, bp: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub GetBreakpointParameters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: u32, ids: *const u32, start: u32, params: *mut DEBUG_BREAKPOINT_PARAMETERS) -> ::windows_core::HRESULT,
pub AddBreakpoint: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: u32, desiredid: u32, bp: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub RemoveBreakpoint: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, bp: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub AddExtension: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, path: ::windows_core::PCSTR, flags: u32, handle: *mut u64) -> ::windows_core::HRESULT,
pub RemoveExtension: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64) -> ::windows_core::HRESULT,
pub GetExtensionByPath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, path: ::windows_core::PCSTR, handle: *mut u64) -> ::windows_core::HRESULT,
pub CallExtension: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64, function: ::windows_core::PCSTR, arguments: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
#[cfg(feature = "Win32_Foundation")]
pub GetExtensionFunction: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64, funcname: ::windows_core::PCSTR, function: *mut super::super::super::super::Foundation::FARPROC) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
GetExtensionFunction: usize,
#[cfg(feature = "Win32_System_Kernel")]
pub GetWindbgExtensionApis32: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, api: *mut WINDBG_EXTENSION_APIS32) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_System_Kernel"))]
GetWindbgExtensionApis32: usize,
#[cfg(feature = "Win32_System_Kernel")]
pub GetWindbgExtensionApis64: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, api: *mut WINDBG_EXTENSION_APIS64) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_System_Kernel"))]
GetWindbgExtensionApis64: usize,
pub GetNumberEventFilters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, specificevents: *mut u32, specificexceptions: *mut u32, arbitraryexceptions: *mut u32) -> ::windows_core::HRESULT,
pub GetEventFilterText: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows_core::PSTR, buffersize: u32, textsize: *mut u32) -> ::windows_core::HRESULT,
pub GetEventFilterCommand: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows_core::PSTR, buffersize: u32, commandsize: *mut u32) -> ::windows_core::HRESULT,
pub SetEventFilterCommand: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, command: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub GetSpecificFilterParameters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, start: u32, count: u32, params: *mut DEBUG_SPECIFIC_FILTER_PARAMETERS) -> ::windows_core::HRESULT,
pub SetSpecificFilterParameters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, start: u32, count: u32, params: *const DEBUG_SPECIFIC_FILTER_PARAMETERS) -> ::windows_core::HRESULT,
pub GetSpecificFilterArgument: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows_core::PSTR, buffersize: u32, argumentsize: *mut u32) -> ::windows_core::HRESULT,
pub SetSpecificFilterArgument: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, argument: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub GetExceptionFilterParameters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: u32, codes: *const u32, start: u32, params: *mut DEBUG_EXCEPTION_FILTER_PARAMETERS) -> ::windows_core::HRESULT,
pub SetExceptionFilterParameters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: u32, params: *const DEBUG_EXCEPTION_FILTER_PARAMETERS) -> ::windows_core::HRESULT,
pub GetExceptionFilterSecondCommand: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows_core::PSTR, buffersize: u32, commandsize: *mut u32) -> ::windows_core::HRESULT,
pub SetExceptionFilterSecondCommand: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, command: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub WaitForEvent: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, timeout: u32) -> ::windows_core::HRESULT,
pub GetLastEventInformation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: *mut u32, processid: *mut u32, threadid: *mut u32, extrainformation: *mut ::core::ffi::c_void, extrainformationsize: u32, extrainformationused: *mut u32, description: ::windows_core::PSTR, descriptionsize: u32, descriptionused: *mut u32) -> ::windows_core::HRESULT,
pub GetCurrentTimeDate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, timedate: *mut u32) -> ::windows_core::HRESULT,
pub GetCurrentSystemUpTime: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, uptime: *mut u32) -> ::windows_core::HRESULT,
pub GetDumpFormatFlags: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, formatflags: *mut u32) -> ::windows_core::HRESULT,
pub GetNumberTextReplacements: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, numrepl: *mut u32) -> ::windows_core::HRESULT,
pub GetTextReplacement: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, srctext: ::windows_core::PCSTR, index: u32, srcbuffer: ::windows_core::PSTR, srcbuffersize: u32, srcsize: *mut u32, dstbuffer: ::windows_core::PSTR, dstbuffersize: u32, dstsize: *mut u32) -> ::windows_core::HRESULT,
pub SetTextReplacement: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, srctext: ::windows_core::PCSTR, dsttext: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub RemoveTextReplacements: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub OutputTextReplacements: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, flags: u32) -> ::windows_core::HRESULT,
pub GetAssemblyOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: *mut u32) -> ::windows_core::HRESULT,
pub AddAssemblyOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows_core::HRESULT,
pub RemoveAssemblyOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows_core::HRESULT,
pub SetAssemblyOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows_core::HRESULT,
pub GetExpressionSyntax: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: *mut u32) -> ::windows_core::HRESULT,
pub SetExpressionSyntax: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32) -> ::windows_core::HRESULT,
pub SetExpressionSyntaxByName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, abbrevname: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub GetNumberExpressionSyntaxes: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows_core::HRESULT,
pub GetExpressionSyntaxNames: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, fullnamebuffer: ::windows_core::PSTR, fullnamebuffersize: u32, fullnamesize: *mut u32, abbrevnamebuffer: ::windows_core::PSTR, abbrevnamebuffersize: u32, abbrevnamesize: *mut u32) -> ::windows_core::HRESULT,
pub GetNumberEvents: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, events: *mut u32) -> ::windows_core::HRESULT,
pub GetEventIndexDescription: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, which: u32, buffer: ::windows_core::PCSTR, buffersize: u32, descsize: *mut u32) -> ::windows_core::HRESULT,
pub GetCurrentEventIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: *mut u32) -> ::windows_core::HRESULT,
pub SetNextEventIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, relation: u32, value: u32, nextindex: *mut u32) -> ::windows_core::HRESULT,
#[cfg(feature = "Win32_Foundation")]
pub GetLogFileWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PWSTR, buffersize: u32, filesize: *mut u32, append: *mut super::super::super::super::Foundation::BOOL) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
GetLogFileWide: usize,
#[cfg(feature = "Win32_Foundation")]
pub OpenLogFileWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, file: ::windows_core::PCWSTR, append: super::super::super::super::Foundation::BOOL) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
OpenLogFileWide: usize,
pub InputWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PWSTR, buffersize: u32, inputsize: *mut u32) -> ::windows_core::HRESULT,
pub ReturnInputWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
pub OutputWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: u32, format: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
pub OutputVaListWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: u32, format: ::windows_core::PCWSTR, args: *const i8) -> ::windows_core::HRESULT,
pub ControlledOutputWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, mask: u32, format: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
pub ControlledOutputVaListWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, mask: u32, format: ::windows_core::PCWSTR, args: *const i8) -> ::windows_core::HRESULT,
pub OutputPromptWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, format: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
pub OutputPromptVaListWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, format: ::windows_core::PCWSTR, args: *const i8) -> ::windows_core::HRESULT,
pub GetPromptTextWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PWSTR, buffersize: u32, textsize: *mut u32) -> ::windows_core::HRESULT,
pub AssembleWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, instr: ::windows_core::PCWSTR, endoffset: *mut u64) -> ::windows_core::HRESULT,
pub DisassembleWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, flags: u32, buffer: ::windows_core::PWSTR, buffersize: u32, disassemblysize: *mut u32, endoffset: *mut u64) -> ::windows_core::HRESULT,
pub GetProcessorTypeNamesWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: u32, fullnamebuffer: ::windows_core::PWSTR, fullnamebuffersize: u32, fullnamesize: *mut u32, abbrevnamebuffer: ::windows_core::PWSTR, abbrevnamebuffersize: u32, abbrevnamesize: *mut u32) -> ::windows_core::HRESULT,
pub GetTextMacroWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, slot: u32, buffer: ::windows_core::PWSTR, buffersize: u32, macrosize: *mut u32) -> ::windows_core::HRESULT,
pub SetTextMacroWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, slot: u32, r#macro: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
#[cfg(feature = "Win32_Foundation")]
pub EvaluateWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, expression: ::windows_core::PCWSTR, desiredtype: u32, value: *mut DEBUG_VALUE, remainderindex: *mut u32) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
EvaluateWide: usize,
pub ExecuteWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, command: ::windows_core::PCWSTR, flags: u32) -> ::windows_core::HRESULT,
pub ExecuteCommandFileWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, commandfile: ::windows_core::PCWSTR, flags: u32) -> ::windows_core::HRESULT,
pub GetBreakpointByIndex2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, bp: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub GetBreakpointById2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: u32, bp: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub AddBreakpoint2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: u32, desiredid: u32, bp: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub RemoveBreakpoint2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, bp: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub AddExtensionWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, path: ::windows_core::PCWSTR, flags: u32, handle: *mut u64) -> ::windows_core::HRESULT,
pub GetExtensionByPathWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, path: ::windows_core::PCWSTR, handle: *mut u64) -> ::windows_core::HRESULT,
pub CallExtensionWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64, function: ::windows_core::PCWSTR, arguments: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
#[cfg(feature = "Win32_Foundation")]
pub GetExtensionFunctionWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64, funcname: ::windows_core::PCWSTR, function: *mut super::super::super::super::Foundation::FARPROC) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
GetExtensionFunctionWide: usize,
pub GetEventFilterTextWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows_core::PWSTR, buffersize: u32, textsize: *mut u32) -> ::windows_core::HRESULT,
pub GetEventFilterCommandWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows_core::PWSTR, buffersize: u32, commandsize: *mut u32) -> ::windows_core::HRESULT,
pub SetEventFilterCommandWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, command: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
pub GetSpecificFilterArgumentWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows_core::PWSTR, buffersize: u32, argumentsize: *mut u32) -> ::windows_core::HRESULT,
pub SetSpecificFilterArgumentWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, argument: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
pub GetExceptionFilterSecondCommandWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows_core::PWSTR, buffersize: u32, commandsize: *mut u32) -> ::windows_core::HRESULT,
pub SetExceptionFilterSecondCommandWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, command: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
pub GetLastEventInformationWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: *mut u32, processid: *mut u32, threadid: *mut u32, extrainformation: *mut ::core::ffi::c_void, extrainformationsize: u32, extrainformationused: *mut u32, description: ::windows_core::PWSTR, descriptionsize: u32, descriptionused: *mut u32) -> ::windows_core::HRESULT,
pub GetTextReplacementWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, srctext: ::windows_core::PCWSTR, index: u32, srcbuffer: ::windows_core::PWSTR, srcbuffersize: u32, srcsize: *mut u32, dstbuffer: ::windows_core::PWSTR, dstbuffersize: u32, dstsize: *mut u32) -> ::windows_core::HRESULT,
pub SetTextReplacementWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, srctext: ::windows_core::PCWSTR, dsttext: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
pub SetExpressionSyntaxByNameWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, abbrevname: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
pub GetExpressionSyntaxNamesWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, fullnamebuffer: ::windows_core::PWSTR, fullnamebuffersize: u32, fullnamesize: *mut u32, abbrevnamebuffer: ::windows_core::PWSTR, abbrevnamebuffersize: u32, abbrevnamesize: *mut u32) -> ::windows_core::HRESULT,
pub GetEventIndexDescriptionWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, which: u32, buffer: ::windows_core::PCWSTR, buffersize: u32, descsize: *mut u32) -> ::windows_core::HRESULT,
pub GetLogFile2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PSTR, buffersize: u32, filesize: *mut u32, flags: *mut u32) -> ::windows_core::HRESULT,
pub OpenLogFile2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, file: ::windows_core::PCSTR, flags: u32) -> ::windows_core::HRESULT,
pub GetLogFile2Wide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PWSTR, buffersize: u32, filesize: *mut u32, flags: *mut u32) -> ::windows_core::HRESULT,
pub OpenLogFile2Wide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, file: ::windows_core::PCWSTR, flags: u32) -> ::windows_core::HRESULT,
pub GetSystemVersionValues: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, platformid: *mut u32, win32major: *mut u32, win32minor: *mut u32, kdmajor: *mut u32, kdminor: *mut u32) -> ::windows_core::HRESULT,
pub GetSystemVersionString: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, which: u32, buffer: ::windows_core::PSTR, buffersize: u32, stringsize: *mut u32) -> ::windows_core::HRESULT,
pub GetSystemVersionStringWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, which: u32, buffer: ::windows_core::PWSTR, buffersize: u32, stringsize: *mut u32) -> ::windows_core::HRESULT,
#[cfg(feature = "Win32_Foundation")]
pub GetContextStackTrace: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, startcontext: *const ::core::ffi::c_void, startcontextsize: u32, frames: *mut DEBUG_STACK_FRAME, framessize: u32, framecontexts: *mut ::core::ffi::c_void, framecontextssize: u32, framecontextsentrysize: u32, framesfilled: *mut u32) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
GetContextStackTrace: usize,
#[cfg(feature = "Win32_Foundation")]
pub OutputContextStackTrace: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, frames: *const DEBUG_STACK_FRAME, framessize: u32, framecontexts: *const ::core::ffi::c_void, framecontextssize: u32, framecontextsentrysize: u32, flags: u32) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
OutputContextStackTrace: usize,
pub GetStoredEventInformation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: *mut u32, processid: *mut u32, threadid: *mut u32, context: *mut ::core::ffi::c_void, contextsize: u32, contextused: *mut u32, extrainformation: *mut ::core::ffi::c_void, extrainformationsize: u32, extrainformationused: *mut u32) -> ::windows_core::HRESULT,
pub GetManagedStatus: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: *mut u32, whichstring: u32, string: ::windows_core::PSTR, stringsize: u32, stringneeded: *mut u32) -> ::windows_core::HRESULT,
pub GetManagedStatusWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: *mut u32, whichstring: u32, string: ::windows_core::PWSTR, stringsize: u32, stringneeded: *mut u32) -> ::windows_core::HRESULT,
pub ResetManagedStatus: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32) -> ::windows_core::HRESULT,
#[cfg(feature = "Win32_Foundation")]
pub GetStackTraceEx: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, frameoffset: u64, stackoffset: u64, instructionoffset: u64, frames: *mut DEBUG_STACK_FRAME_EX, framessize: u32, framesfilled: *mut u32) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
GetStackTraceEx: usize,
#[cfg(feature = "Win32_Foundation")]
pub OutputStackTraceEx: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, frames: *const DEBUG_STACK_FRAME_EX, framessize: u32, flags: u32) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
OutputStackTraceEx: usize,
#[cfg(feature = "Win32_Foundation")]
pub GetContextStackTraceEx: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, startcontext: *const ::core::ffi::c_void, startcontextsize: u32, frames: *mut DEBUG_STACK_FRAME_EX, framessize: u32, framecontexts: *mut ::core::ffi::c_void, framecontextssize: u32, framecontextsentrysize: u32, framesfilled: *mut u32) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
GetContextStackTraceEx: usize,
#[cfg(feature = "Win32_Foundation")]
pub OutputContextStackTraceEx: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, frames: *const DEBUG_STACK_FRAME_EX, framessize: u32, framecontexts: *const ::core::ffi::c_void, framecontextssize: u32, framecontextsentrysize: u32, flags: u32) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
OutputContextStackTraceEx: usize,
pub GetBreakpointByGuid: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, guid: *const ::windows_core::GUID, bp: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub GetExecutionStatusEx: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, status: *mut u32) -> ::windows_core::HRESULT,
pub GetSynchronizationStatus: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, sendsattempted: *mut u32, secondssincelastresponse: *mut u32) -> ::windows_core::HRESULT,
pub GetDebuggeeType2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, class: *mut u32, qualifier: *mut u32) -> ::windows_core::HRESULT,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IDebugDataSpaces(::windows_core::IUnknown);
impl IDebugDataSpaces {
pub unsafe fn ReadVirtual(&self, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).ReadVirtual)(::windows_core::Interface::as_raw(self), offset, buffer, buffersize, ::core::mem::transmute(bytesread.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn WriteVirtual(&self, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).WriteVirtual)(::windows_core::Interface::as_raw(self), offset, buffer, buffersize, ::core::mem::transmute(byteswritten.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SearchVirtual(&self, offset: u64, length: u64, pattern: *const ::core::ffi::c_void, patternsize: u32, patterngranularity: u32) -> ::windows_core::Result<u64> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).SearchVirtual)(::windows_core::Interface::as_raw(self), offset, length, pattern, patternsize, patterngranularity, &mut result__).from_abi(result__)
}
pub unsafe fn ReadVirtualUncached(&self, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).ReadVirtualUncached)(::windows_core::Interface::as_raw(self), offset, buffer, buffersize, ::core::mem::transmute(bytesread.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn WriteVirtualUncached(&self, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).WriteVirtualUncached)(::windows_core::Interface::as_raw(self), offset, buffer, buffersize, ::core::mem::transmute(byteswritten.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn ReadPointersVirtual(&self, offset: u64, ptrs: &mut [u64]) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).ReadPointersVirtual)(::windows_core::Interface::as_raw(self), ptrs.len().try_into().unwrap(), offset, ::core::mem::transmute(ptrs.as_ptr())).ok()
}
pub unsafe fn WritePointersVirtual(&self, offset: u64, ptrs: &[u64]) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).WritePointersVirtual)(::windows_core::Interface::as_raw(self), ptrs.len().try_into().unwrap(), offset, ::core::mem::transmute(ptrs.as_ptr())).ok()
}
pub unsafe fn ReadPhysical(&self, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).ReadPhysical)(::windows_core::Interface::as_raw(self), offset, buffer, buffersize, ::core::mem::transmute(bytesread.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn WritePhysical(&self, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).WritePhysical)(::windows_core::Interface::as_raw(self), offset, buffer, buffersize, ::core::mem::transmute(byteswritten.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn ReadControl(&self, processor: u32, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).ReadControl)(::windows_core::Interface::as_raw(self), processor, offset, buffer, buffersize, ::core::mem::transmute(bytesread.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn WriteControl(&self, processor: u32, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).WriteControl)(::windows_core::Interface::as_raw(self), processor, offset, buffer, buffersize, ::core::mem::transmute(byteswritten.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn ReadIo(&self, interfacetype: u32, busnumber: u32, addressspace: u32, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).ReadIo)(::windows_core::Interface::as_raw(self), interfacetype, busnumber, addressspace, offset, buffer, buffersize, ::core::mem::transmute(bytesread.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn WriteIo(&self, interfacetype: u32, busnumber: u32, addressspace: u32, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).WriteIo)(::windows_core::Interface::as_raw(self), interfacetype, busnumber, addressspace, offset, buffer, buffersize, ::core::mem::transmute(byteswritten.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn ReadMsr(&self, msr: u32) -> ::windows_core::Result<u64> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).ReadMsr)(::windows_core::Interface::as_raw(self), msr, &mut result__).from_abi(result__)
}
pub unsafe fn WriteMsr(&self, msr: u32, value: u64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).WriteMsr)(::windows_core::Interface::as_raw(self), msr, value).ok()
}
pub unsafe fn ReadBusData(&self, busdatatype: u32, busnumber: u32, slotnumber: u32, offset: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).ReadBusData)(::windows_core::Interface::as_raw(self), busdatatype, busnumber, slotnumber, offset, buffer, buffersize, ::core::mem::transmute(bytesread.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn WriteBusData(&self, busdatatype: u32, busnumber: u32, slotnumber: u32, offset: u32, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).WriteBusData)(::windows_core::Interface::as_raw(self), busdatatype, busnumber, slotnumber, offset, buffer, buffersize, ::core::mem::transmute(byteswritten.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn CheckLowMemory(&self) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).CheckLowMemory)(::windows_core::Interface::as_raw(self)).ok()
}
pub unsafe fn ReadDebuggerData(&self, index: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, datasize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).ReadDebuggerData)(::windows_core::Interface::as_raw(self), index, buffer, buffersize, ::core::mem::transmute(datasize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn ReadProcessorSystemData(&self, processor: u32, index: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, datasize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).ReadProcessorSystemData)(::windows_core::Interface::as_raw(self), processor, index, buffer, buffersize, ::core::mem::transmute(datasize.unwrap_or(::std::ptr::null_mut()))).ok()
}
}
::windows_core::imp::interface_hierarchy!(IDebugDataSpaces, ::windows_core::IUnknown);
unsafe impl ::windows_core::Interface for IDebugDataSpaces {
type Vtable = IDebugDataSpaces_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IDebugDataSpaces {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0x88f7dfab_3ea7_4c3a_aefb_c4e8106173aa);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugDataSpaces_Vtbl {
pub base__: ::windows_core::IUnknown_Vtbl,
pub ReadVirtual: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows_core::HRESULT,
pub WriteVirtual: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows_core::HRESULT,
pub SearchVirtual: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, length: u64, pattern: *const ::core::ffi::c_void, patternsize: u32, patterngranularity: u32, matchoffset: *mut u64) -> ::windows_core::HRESULT,
pub ReadVirtualUncached: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows_core::HRESULT,
pub WriteVirtualUncached: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows_core::HRESULT,
pub ReadPointersVirtual: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: u32, offset: u64, ptrs: *mut u64) -> ::windows_core::HRESULT,
pub WritePointersVirtual: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: u32, offset: u64, ptrs: *const u64) -> ::windows_core::HRESULT,
pub ReadPhysical: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows_core::HRESULT,
pub WritePhysical: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows_core::HRESULT,
pub ReadControl: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, processor: u32, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows_core::HRESULT,
pub WriteControl: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, processor: u32, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows_core::HRESULT,
pub ReadIo: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, interfacetype: u32, busnumber: u32, addressspace: u32, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows_core::HRESULT,
pub WriteIo: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, interfacetype: u32, busnumber: u32, addressspace: u32, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows_core::HRESULT,
pub ReadMsr: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, msr: u32, value: *mut u64) -> ::windows_core::HRESULT,
pub WriteMsr: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, msr: u32, value: u64) -> ::windows_core::HRESULT,
pub ReadBusData: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, busdatatype: u32, busnumber: u32, slotnumber: u32, offset: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows_core::HRESULT,
pub WriteBusData: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, busdatatype: u32, busnumber: u32, slotnumber: u32, offset: u32, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows_core::HRESULT,
pub CheckLowMemory: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub ReadDebuggerData: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, datasize: *mut u32) -> ::windows_core::HRESULT,
pub ReadProcessorSystemData: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, processor: u32, index: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, datasize: *mut u32) -> ::windows_core::HRESULT,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IDebugDataSpaces2(::windows_core::IUnknown);
impl IDebugDataSpaces2 {
pub unsafe fn ReadVirtual(&self, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).ReadVirtual)(::windows_core::Interface::as_raw(self), offset, buffer, buffersize, ::core::mem::transmute(bytesread.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn WriteVirtual(&self, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).WriteVirtual)(::windows_core::Interface::as_raw(self), offset, buffer, buffersize, ::core::mem::transmute(byteswritten.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SearchVirtual(&self, offset: u64, length: u64, pattern: *const ::core::ffi::c_void, patternsize: u32, patterngranularity: u32) -> ::windows_core::Result<u64> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).SearchVirtual)(::windows_core::Interface::as_raw(self), offset, length, pattern, patternsize, patterngranularity, &mut result__).from_abi(result__)
}
pub unsafe fn ReadVirtualUncached(&self, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).ReadVirtualUncached)(::windows_core::Interface::as_raw(self), offset, buffer, buffersize, ::core::mem::transmute(bytesread.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn WriteVirtualUncached(&self, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).WriteVirtualUncached)(::windows_core::Interface::as_raw(self), offset, buffer, buffersize, ::core::mem::transmute(byteswritten.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn ReadPointersVirtual(&self, offset: u64, ptrs: &mut [u64]) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).ReadPointersVirtual)(::windows_core::Interface::as_raw(self), ptrs.len().try_into().unwrap(), offset, ::core::mem::transmute(ptrs.as_ptr())).ok()
}
pub unsafe fn WritePointersVirtual(&self, offset: u64, ptrs: &[u64]) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).WritePointersVirtual)(::windows_core::Interface::as_raw(self), ptrs.len().try_into().unwrap(), offset, ::core::mem::transmute(ptrs.as_ptr())).ok()
}
pub unsafe fn ReadPhysical(&self, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).ReadPhysical)(::windows_core::Interface::as_raw(self), offset, buffer, buffersize, ::core::mem::transmute(bytesread.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn WritePhysical(&self, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).WritePhysical)(::windows_core::Interface::as_raw(self), offset, buffer, buffersize, ::core::mem::transmute(byteswritten.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn ReadControl(&self, processor: u32, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).ReadControl)(::windows_core::Interface::as_raw(self), processor, offset, buffer, buffersize, ::core::mem::transmute(bytesread.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn WriteControl(&self, processor: u32, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).WriteControl)(::windows_core::Interface::as_raw(self), processor, offset, buffer, buffersize, ::core::mem::transmute(byteswritten.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn ReadIo(&self, interfacetype: u32, busnumber: u32, addressspace: u32, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).ReadIo)(::windows_core::Interface::as_raw(self), interfacetype, busnumber, addressspace, offset, buffer, buffersize, ::core::mem::transmute(bytesread.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn WriteIo(&self, interfacetype: u32, busnumber: u32, addressspace: u32, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).WriteIo)(::windows_core::Interface::as_raw(self), interfacetype, busnumber, addressspace, offset, buffer, buffersize, ::core::mem::transmute(byteswritten.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn ReadMsr(&self, msr: u32) -> ::windows_core::Result<u64> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).ReadMsr)(::windows_core::Interface::as_raw(self), msr, &mut result__).from_abi(result__)
}
pub unsafe fn WriteMsr(&self, msr: u32, value: u64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).WriteMsr)(::windows_core::Interface::as_raw(self), msr, value).ok()
}
pub unsafe fn ReadBusData(&self, busdatatype: u32, busnumber: u32, slotnumber: u32, offset: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).ReadBusData)(::windows_core::Interface::as_raw(self), busdatatype, busnumber, slotnumber, offset, buffer, buffersize, ::core::mem::transmute(bytesread.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn WriteBusData(&self, busdatatype: u32, busnumber: u32, slotnumber: u32, offset: u32, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).WriteBusData)(::windows_core::Interface::as_raw(self), busdatatype, busnumber, slotnumber, offset, buffer, buffersize, ::core::mem::transmute(byteswritten.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn CheckLowMemory(&self) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).CheckLowMemory)(::windows_core::Interface::as_raw(self)).ok()
}
pub unsafe fn ReadDebuggerData(&self, index: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, datasize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).ReadDebuggerData)(::windows_core::Interface::as_raw(self), index, buffer, buffersize, ::core::mem::transmute(datasize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn ReadProcessorSystemData(&self, processor: u32, index: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, datasize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).ReadProcessorSystemData)(::windows_core::Interface::as_raw(self), processor, index, buffer, buffersize, ::core::mem::transmute(datasize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn VirtualToPhysical(&self, r#virtual: u64) -> ::windows_core::Result<u64> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).VirtualToPhysical)(::windows_core::Interface::as_raw(self), r#virtual, &mut result__).from_abi(result__)
}
pub unsafe fn GetVirtualTranslationPhysicalOffsets(&self, r#virtual: u64, offsets: ::core::option::Option<&mut [u64]>, levels: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetVirtualTranslationPhysicalOffsets)(::windows_core::Interface::as_raw(self), r#virtual, ::core::mem::transmute(offsets.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), offsets.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(levels.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn ReadHandleData(&self, handle: u64, datatype: u32, buffer: ::core::option::Option<*mut ::core::ffi::c_void>, buffersize: u32, datasize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).ReadHandleData)(::windows_core::Interface::as_raw(self), handle, datatype, ::core::mem::transmute(buffer.unwrap_or(::std::ptr::null_mut())), buffersize, ::core::mem::transmute(datasize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn FillVirtual(&self, start: u64, size: u32, pattern: *const ::core::ffi::c_void, patternsize: u32, filled: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).FillVirtual)(::windows_core::Interface::as_raw(self), start, size, pattern, patternsize, ::core::mem::transmute(filled.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn FillPhysical(&self, start: u64, size: u32, pattern: *const ::core::ffi::c_void, patternsize: u32, filled: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).FillPhysical)(::windows_core::Interface::as_raw(self), start, size, pattern, patternsize, ::core::mem::transmute(filled.unwrap_or(::std::ptr::null_mut()))).ok()
}
#[doc = "Required features: `\"Win32_System_Memory\"`"]
#[cfg(feature = "Win32_System_Memory")]
pub unsafe fn QueryVirtual(&self, offset: u64, info: *mut super::super::super::Memory::MEMORY_BASIC_INFORMATION64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).QueryVirtual)(::windows_core::Interface::as_raw(self), offset, info).ok()
}
}
::windows_core::imp::interface_hierarchy!(IDebugDataSpaces2, ::windows_core::IUnknown);
unsafe impl ::windows_core::Interface for IDebugDataSpaces2 {
type Vtable = IDebugDataSpaces2_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IDebugDataSpaces2 {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0x7a5e852f_96e9_468f_ac1b_0b3addc4a049);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugDataSpaces2_Vtbl {
pub base__: ::windows_core::IUnknown_Vtbl,
pub ReadVirtual: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows_core::HRESULT,
pub WriteVirtual: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows_core::HRESULT,
pub SearchVirtual: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, length: u64, pattern: *const ::core::ffi::c_void, patternsize: u32, patterngranularity: u32, matchoffset: *mut u64) -> ::windows_core::HRESULT,
pub ReadVirtualUncached: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows_core::HRESULT,
pub WriteVirtualUncached: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows_core::HRESULT,
pub ReadPointersVirtual: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: u32, offset: u64, ptrs: *mut u64) -> ::windows_core::HRESULT,
pub WritePointersVirtual: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: u32, offset: u64, ptrs: *const u64) -> ::windows_core::HRESULT,
pub ReadPhysical: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows_core::HRESULT,
pub WritePhysical: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows_core::HRESULT,
pub ReadControl: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, processor: u32, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows_core::HRESULT,
pub WriteControl: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, processor: u32, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows_core::HRESULT,
pub ReadIo: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, interfacetype: u32, busnumber: u32, addressspace: u32, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows_core::HRESULT,
pub WriteIo: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, interfacetype: u32, busnumber: u32, addressspace: u32, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows_core::HRESULT,
pub ReadMsr: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, msr: u32, value: *mut u64) -> ::windows_core::HRESULT,
pub WriteMsr: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, msr: u32, value: u64) -> ::windows_core::HRESULT,
pub ReadBusData: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, busdatatype: u32, busnumber: u32, slotnumber: u32, offset: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows_core::HRESULT,
pub WriteBusData: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, busdatatype: u32, busnumber: u32, slotnumber: u32, offset: u32, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows_core::HRESULT,
pub CheckLowMemory: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub ReadDebuggerData: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, datasize: *mut u32) -> ::windows_core::HRESULT,
pub ReadProcessorSystemData: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, processor: u32, index: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, datasize: *mut u32) -> ::windows_core::HRESULT,
pub VirtualToPhysical: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#virtual: u64, physical: *mut u64) -> ::windows_core::HRESULT,
pub GetVirtualTranslationPhysicalOffsets: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#virtual: u64, offsets: *mut u64, offsetssize: u32, levels: *mut u32) -> ::windows_core::HRESULT,
pub ReadHandleData: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64, datatype: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, datasize: *mut u32) -> ::windows_core::HRESULT,
pub FillVirtual: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, start: u64, size: u32, pattern: *const ::core::ffi::c_void, patternsize: u32, filled: *mut u32) -> ::windows_core::HRESULT,
pub FillPhysical: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, start: u64, size: u32, pattern: *const ::core::ffi::c_void, patternsize: u32, filled: *mut u32) -> ::windows_core::HRESULT,
#[cfg(feature = "Win32_System_Memory")]
pub QueryVirtual: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, info: *mut super::super::super::Memory::MEMORY_BASIC_INFORMATION64) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_System_Memory"))]
QueryVirtual: usize,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IDebugDataSpaces3(::windows_core::IUnknown);
impl IDebugDataSpaces3 {
pub unsafe fn ReadVirtual(&self, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).ReadVirtual)(::windows_core::Interface::as_raw(self), offset, buffer, buffersize, ::core::mem::transmute(bytesread.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn WriteVirtual(&self, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).WriteVirtual)(::windows_core::Interface::as_raw(self), offset, buffer, buffersize, ::core::mem::transmute(byteswritten.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SearchVirtual(&self, offset: u64, length: u64, pattern: *const ::core::ffi::c_void, patternsize: u32, patterngranularity: u32) -> ::windows_core::Result<u64> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).SearchVirtual)(::windows_core::Interface::as_raw(self), offset, length, pattern, patternsize, patterngranularity, &mut result__).from_abi(result__)
}
pub unsafe fn ReadVirtualUncached(&self, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).ReadVirtualUncached)(::windows_core::Interface::as_raw(self), offset, buffer, buffersize, ::core::mem::transmute(bytesread.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn WriteVirtualUncached(&self, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).WriteVirtualUncached)(::windows_core::Interface::as_raw(self), offset, buffer, buffersize, ::core::mem::transmute(byteswritten.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn ReadPointersVirtual(&self, offset: u64, ptrs: &mut [u64]) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).ReadPointersVirtual)(::windows_core::Interface::as_raw(self), ptrs.len().try_into().unwrap(), offset, ::core::mem::transmute(ptrs.as_ptr())).ok()
}
pub unsafe fn WritePointersVirtual(&self, offset: u64, ptrs: &[u64]) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).WritePointersVirtual)(::windows_core::Interface::as_raw(self), ptrs.len().try_into().unwrap(), offset, ::core::mem::transmute(ptrs.as_ptr())).ok()
}
pub unsafe fn ReadPhysical(&self, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).ReadPhysical)(::windows_core::Interface::as_raw(self), offset, buffer, buffersize, ::core::mem::transmute(bytesread.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn WritePhysical(&self, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).WritePhysical)(::windows_core::Interface::as_raw(self), offset, buffer, buffersize, ::core::mem::transmute(byteswritten.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn ReadControl(&self, processor: u32, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).ReadControl)(::windows_core::Interface::as_raw(self), processor, offset, buffer, buffersize, ::core::mem::transmute(bytesread.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn WriteControl(&self, processor: u32, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).WriteControl)(::windows_core::Interface::as_raw(self), processor, offset, buffer, buffersize, ::core::mem::transmute(byteswritten.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn ReadIo(&self, interfacetype: u32, busnumber: u32, addressspace: u32, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).ReadIo)(::windows_core::Interface::as_raw(self), interfacetype, busnumber, addressspace, offset, buffer, buffersize, ::core::mem::transmute(bytesread.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn WriteIo(&self, interfacetype: u32, busnumber: u32, addressspace: u32, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).WriteIo)(::windows_core::Interface::as_raw(self), interfacetype, busnumber, addressspace, offset, buffer, buffersize, ::core::mem::transmute(byteswritten.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn ReadMsr(&self, msr: u32) -> ::windows_core::Result<u64> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).ReadMsr)(::windows_core::Interface::as_raw(self), msr, &mut result__).from_abi(result__)
}
pub unsafe fn WriteMsr(&self, msr: u32, value: u64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).WriteMsr)(::windows_core::Interface::as_raw(self), msr, value).ok()
}
pub unsafe fn ReadBusData(&self, busdatatype: u32, busnumber: u32, slotnumber: u32, offset: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).ReadBusData)(::windows_core::Interface::as_raw(self), busdatatype, busnumber, slotnumber, offset, buffer, buffersize, ::core::mem::transmute(bytesread.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn WriteBusData(&self, busdatatype: u32, busnumber: u32, slotnumber: u32, offset: u32, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).WriteBusData)(::windows_core::Interface::as_raw(self), busdatatype, busnumber, slotnumber, offset, buffer, buffersize, ::core::mem::transmute(byteswritten.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn CheckLowMemory(&self) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).CheckLowMemory)(::windows_core::Interface::as_raw(self)).ok()
}
pub unsafe fn ReadDebuggerData(&self, index: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, datasize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).ReadDebuggerData)(::windows_core::Interface::as_raw(self), index, buffer, buffersize, ::core::mem::transmute(datasize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn ReadProcessorSystemData(&self, processor: u32, index: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, datasize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).ReadProcessorSystemData)(::windows_core::Interface::as_raw(self), processor, index, buffer, buffersize, ::core::mem::transmute(datasize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn VirtualToPhysical(&self, r#virtual: u64) -> ::windows_core::Result<u64> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).VirtualToPhysical)(::windows_core::Interface::as_raw(self), r#virtual, &mut result__).from_abi(result__)
}
pub unsafe fn GetVirtualTranslationPhysicalOffsets(&self, r#virtual: u64, offsets: ::core::option::Option<&mut [u64]>, levels: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetVirtualTranslationPhysicalOffsets)(::windows_core::Interface::as_raw(self), r#virtual, ::core::mem::transmute(offsets.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), offsets.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(levels.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn ReadHandleData(&self, handle: u64, datatype: u32, buffer: ::core::option::Option<*mut ::core::ffi::c_void>, buffersize: u32, datasize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).ReadHandleData)(::windows_core::Interface::as_raw(self), handle, datatype, ::core::mem::transmute(buffer.unwrap_or(::std::ptr::null_mut())), buffersize, ::core::mem::transmute(datasize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn FillVirtual(&self, start: u64, size: u32, pattern: *const ::core::ffi::c_void, patternsize: u32, filled: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).FillVirtual)(::windows_core::Interface::as_raw(self), start, size, pattern, patternsize, ::core::mem::transmute(filled.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn FillPhysical(&self, start: u64, size: u32, pattern: *const ::core::ffi::c_void, patternsize: u32, filled: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).FillPhysical)(::windows_core::Interface::as_raw(self), start, size, pattern, patternsize, ::core::mem::transmute(filled.unwrap_or(::std::ptr::null_mut()))).ok()
}
#[doc = "Required features: `\"Win32_System_Memory\"`"]
#[cfg(feature = "Win32_System_Memory")]
pub unsafe fn QueryVirtual(&self, offset: u64, info: *mut super::super::super::Memory::MEMORY_BASIC_INFORMATION64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).QueryVirtual)(::windows_core::Interface::as_raw(self), offset, info).ok()
}
#[doc = "Required features: `\"Win32_System_SystemInformation\"`"]
#[cfg(feature = "Win32_System_SystemInformation")]
pub unsafe fn ReadImageNtHeaders(&self, imagebase: u64, headers: *mut super::IMAGE_NT_HEADERS64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).ReadImageNtHeaders)(::windows_core::Interface::as_raw(self), imagebase, headers).ok()
}
pub unsafe fn ReadTagged(&self, tag: *const ::windows_core::GUID, offset: u32, buffer: ::core::option::Option<*mut ::core::ffi::c_void>, buffersize: u32, totalsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).ReadTagged)(::windows_core::Interface::as_raw(self), tag, offset, ::core::mem::transmute(buffer.unwrap_or(::std::ptr::null_mut())), buffersize, ::core::mem::transmute(totalsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn StartEnumTagged(&self) -> ::windows_core::Result<u64> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).StartEnumTagged)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetNextTagged(&self, handle: u64, tag: *mut ::windows_core::GUID, size: *mut u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetNextTagged)(::windows_core::Interface::as_raw(self), handle, tag, size).ok()
}
pub unsafe fn EndEnumTagged(&self, handle: u64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).EndEnumTagged)(::windows_core::Interface::as_raw(self), handle).ok()
}
}
::windows_core::imp::interface_hierarchy!(IDebugDataSpaces3, ::windows_core::IUnknown);
unsafe impl ::windows_core::Interface for IDebugDataSpaces3 {
type Vtable = IDebugDataSpaces3_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IDebugDataSpaces3 {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0x23f79d6c_8aaf_4f7c_a607_9995f5407e63);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugDataSpaces3_Vtbl {
pub base__: ::windows_core::IUnknown_Vtbl,
pub ReadVirtual: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows_core::HRESULT,
pub WriteVirtual: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows_core::HRESULT,
pub SearchVirtual: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, length: u64, pattern: *const ::core::ffi::c_void, patternsize: u32, patterngranularity: u32, matchoffset: *mut u64) -> ::windows_core::HRESULT,
pub ReadVirtualUncached: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows_core::HRESULT,
pub WriteVirtualUncached: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows_core::HRESULT,
pub ReadPointersVirtual: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: u32, offset: u64, ptrs: *mut u64) -> ::windows_core::HRESULT,
pub WritePointersVirtual: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: u32, offset: u64, ptrs: *const u64) -> ::windows_core::HRESULT,
pub ReadPhysical: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows_core::HRESULT,
pub WritePhysical: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows_core::HRESULT,
pub ReadControl: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, processor: u32, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows_core::HRESULT,
pub WriteControl: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, processor: u32, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows_core::HRESULT,
pub ReadIo: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, interfacetype: u32, busnumber: u32, addressspace: u32, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows_core::HRESULT,
pub WriteIo: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, interfacetype: u32, busnumber: u32, addressspace: u32, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows_core::HRESULT,
pub ReadMsr: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, msr: u32, value: *mut u64) -> ::windows_core::HRESULT,
pub WriteMsr: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, msr: u32, value: u64) -> ::windows_core::HRESULT,
pub ReadBusData: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, busdatatype: u32, busnumber: u32, slotnumber: u32, offset: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows_core::HRESULT,
pub WriteBusData: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, busdatatype: u32, busnumber: u32, slotnumber: u32, offset: u32, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows_core::HRESULT,
pub CheckLowMemory: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub ReadDebuggerData: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, datasize: *mut u32) -> ::windows_core::HRESULT,
pub ReadProcessorSystemData: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, processor: u32, index: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, datasize: *mut u32) -> ::windows_core::HRESULT,
pub VirtualToPhysical: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#virtual: u64, physical: *mut u64) -> ::windows_core::HRESULT,
pub GetVirtualTranslationPhysicalOffsets: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#virtual: u64, offsets: *mut u64, offsetssize: u32, levels: *mut u32) -> ::windows_core::HRESULT,
pub ReadHandleData: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64, datatype: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, datasize: *mut u32) -> ::windows_core::HRESULT,
pub FillVirtual: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, start: u64, size: u32, pattern: *const ::core::ffi::c_void, patternsize: u32, filled: *mut u32) -> ::windows_core::HRESULT,
pub FillPhysical: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, start: u64, size: u32, pattern: *const ::core::ffi::c_void, patternsize: u32, filled: *mut u32) -> ::windows_core::HRESULT,
#[cfg(feature = "Win32_System_Memory")]
pub QueryVirtual: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, info: *mut super::super::super::Memory::MEMORY_BASIC_INFORMATION64) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_System_Memory"))]
QueryVirtual: usize,
#[cfg(feature = "Win32_System_SystemInformation")]
pub ReadImageNtHeaders: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, imagebase: u64, headers: *mut super::IMAGE_NT_HEADERS64) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_System_SystemInformation"))]
ReadImageNtHeaders: usize,
pub ReadTagged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, tag: *const ::windows_core::GUID, offset: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, totalsize: *mut u32) -> ::windows_core::HRESULT,
pub StartEnumTagged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: *mut u64) -> ::windows_core::HRESULT,
pub GetNextTagged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64, tag: *mut ::windows_core::GUID, size: *mut u32) -> ::windows_core::HRESULT,
pub EndEnumTagged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64) -> ::windows_core::HRESULT,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IDebugDataSpaces4(::windows_core::IUnknown);
impl IDebugDataSpaces4 {
pub unsafe fn ReadVirtual(&self, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).ReadVirtual)(::windows_core::Interface::as_raw(self), offset, buffer, buffersize, ::core::mem::transmute(bytesread.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn WriteVirtual(&self, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).WriteVirtual)(::windows_core::Interface::as_raw(self), offset, buffer, buffersize, ::core::mem::transmute(byteswritten.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SearchVirtual(&self, offset: u64, length: u64, pattern: *const ::core::ffi::c_void, patternsize: u32, patterngranularity: u32) -> ::windows_core::Result<u64> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).SearchVirtual)(::windows_core::Interface::as_raw(self), offset, length, pattern, patternsize, patterngranularity, &mut result__).from_abi(result__)
}
pub unsafe fn ReadVirtualUncached(&self, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).ReadVirtualUncached)(::windows_core::Interface::as_raw(self), offset, buffer, buffersize, ::core::mem::transmute(bytesread.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn WriteVirtualUncached(&self, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).WriteVirtualUncached)(::windows_core::Interface::as_raw(self), offset, buffer, buffersize, ::core::mem::transmute(byteswritten.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn ReadPointersVirtual(&self, offset: u64, ptrs: &mut [u64]) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).ReadPointersVirtual)(::windows_core::Interface::as_raw(self), ptrs.len().try_into().unwrap(), offset, ::core::mem::transmute(ptrs.as_ptr())).ok()
}
pub unsafe fn WritePointersVirtual(&self, offset: u64, ptrs: &[u64]) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).WritePointersVirtual)(::windows_core::Interface::as_raw(self), ptrs.len().try_into().unwrap(), offset, ::core::mem::transmute(ptrs.as_ptr())).ok()
}
pub unsafe fn ReadPhysical(&self, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).ReadPhysical)(::windows_core::Interface::as_raw(self), offset, buffer, buffersize, ::core::mem::transmute(bytesread.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn WritePhysical(&self, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).WritePhysical)(::windows_core::Interface::as_raw(self), offset, buffer, buffersize, ::core::mem::transmute(byteswritten.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn ReadControl(&self, processor: u32, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).ReadControl)(::windows_core::Interface::as_raw(self), processor, offset, buffer, buffersize, ::core::mem::transmute(bytesread.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn WriteControl(&self, processor: u32, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).WriteControl)(::windows_core::Interface::as_raw(self), processor, offset, buffer, buffersize, ::core::mem::transmute(byteswritten.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn ReadIo(&self, interfacetype: u32, busnumber: u32, addressspace: u32, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).ReadIo)(::windows_core::Interface::as_raw(self), interfacetype, busnumber, addressspace, offset, buffer, buffersize, ::core::mem::transmute(bytesread.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn WriteIo(&self, interfacetype: u32, busnumber: u32, addressspace: u32, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).WriteIo)(::windows_core::Interface::as_raw(self), interfacetype, busnumber, addressspace, offset, buffer, buffersize, ::core::mem::transmute(byteswritten.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn ReadMsr(&self, msr: u32) -> ::windows_core::Result<u64> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).ReadMsr)(::windows_core::Interface::as_raw(self), msr, &mut result__).from_abi(result__)
}
pub unsafe fn WriteMsr(&self, msr: u32, value: u64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).WriteMsr)(::windows_core::Interface::as_raw(self), msr, value).ok()
}
pub unsafe fn ReadBusData(&self, busdatatype: u32, busnumber: u32, slotnumber: u32, offset: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).ReadBusData)(::windows_core::Interface::as_raw(self), busdatatype, busnumber, slotnumber, offset, buffer, buffersize, ::core::mem::transmute(bytesread.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn WriteBusData(&self, busdatatype: u32, busnumber: u32, slotnumber: u32, offset: u32, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).WriteBusData)(::windows_core::Interface::as_raw(self), busdatatype, busnumber, slotnumber, offset, buffer, buffersize, ::core::mem::transmute(byteswritten.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn CheckLowMemory(&self) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).CheckLowMemory)(::windows_core::Interface::as_raw(self)).ok()
}
pub unsafe fn ReadDebuggerData(&self, index: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, datasize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).ReadDebuggerData)(::windows_core::Interface::as_raw(self), index, buffer, buffersize, ::core::mem::transmute(datasize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn ReadProcessorSystemData(&self, processor: u32, index: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, datasize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).ReadProcessorSystemData)(::windows_core::Interface::as_raw(self), processor, index, buffer, buffersize, ::core::mem::transmute(datasize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn VirtualToPhysical(&self, r#virtual: u64) -> ::windows_core::Result<u64> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).VirtualToPhysical)(::windows_core::Interface::as_raw(self), r#virtual, &mut result__).from_abi(result__)
}
pub unsafe fn GetVirtualTranslationPhysicalOffsets(&self, r#virtual: u64, offsets: ::core::option::Option<&mut [u64]>, levels: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetVirtualTranslationPhysicalOffsets)(::windows_core::Interface::as_raw(self), r#virtual, ::core::mem::transmute(offsets.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), offsets.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(levels.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn ReadHandleData(&self, handle: u64, datatype: u32, buffer: ::core::option::Option<*mut ::core::ffi::c_void>, buffersize: u32, datasize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).ReadHandleData)(::windows_core::Interface::as_raw(self), handle, datatype, ::core::mem::transmute(buffer.unwrap_or(::std::ptr::null_mut())), buffersize, ::core::mem::transmute(datasize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn FillVirtual(&self, start: u64, size: u32, pattern: *const ::core::ffi::c_void, patternsize: u32, filled: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).FillVirtual)(::windows_core::Interface::as_raw(self), start, size, pattern, patternsize, ::core::mem::transmute(filled.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn FillPhysical(&self, start: u64, size: u32, pattern: *const ::core::ffi::c_void, patternsize: u32, filled: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).FillPhysical)(::windows_core::Interface::as_raw(self), start, size, pattern, patternsize, ::core::mem::transmute(filled.unwrap_or(::std::ptr::null_mut()))).ok()
}
#[doc = "Required features: `\"Win32_System_Memory\"`"]
#[cfg(feature = "Win32_System_Memory")]
pub unsafe fn QueryVirtual(&self, offset: u64, info: *mut super::super::super::Memory::MEMORY_BASIC_INFORMATION64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).QueryVirtual)(::windows_core::Interface::as_raw(self), offset, info).ok()
}
#[doc = "Required features: `\"Win32_System_SystemInformation\"`"]
#[cfg(feature = "Win32_System_SystemInformation")]
pub unsafe fn ReadImageNtHeaders(&self, imagebase: u64, headers: *mut super::IMAGE_NT_HEADERS64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).ReadImageNtHeaders)(::windows_core::Interface::as_raw(self), imagebase, headers).ok()
}
pub unsafe fn ReadTagged(&self, tag: *const ::windows_core::GUID, offset: u32, buffer: ::core::option::Option<*mut ::core::ffi::c_void>, buffersize: u32, totalsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).ReadTagged)(::windows_core::Interface::as_raw(self), tag, offset, ::core::mem::transmute(buffer.unwrap_or(::std::ptr::null_mut())), buffersize, ::core::mem::transmute(totalsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn StartEnumTagged(&self) -> ::windows_core::Result<u64> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).StartEnumTagged)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetNextTagged(&self, handle: u64, tag: *mut ::windows_core::GUID, size: *mut u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetNextTagged)(::windows_core::Interface::as_raw(self), handle, tag, size).ok()
}
pub unsafe fn EndEnumTagged(&self, handle: u64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).EndEnumTagged)(::windows_core::Interface::as_raw(self), handle).ok()
}
pub unsafe fn GetOffsetInformation(&self, space: u32, which: u32, offset: u64, buffer: ::core::option::Option<*mut ::core::ffi::c_void>, buffersize: u32, infosize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetOffsetInformation)(::windows_core::Interface::as_raw(self), space, which, offset, ::core::mem::transmute(buffer.unwrap_or(::std::ptr::null_mut())), buffersize, ::core::mem::transmute(infosize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetNextDifferentlyValidOffsetVirtual(&self, offset: u64) -> ::windows_core::Result<u64> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetNextDifferentlyValidOffsetVirtual)(::windows_core::Interface::as_raw(self), offset, &mut result__).from_abi(result__)
}
pub unsafe fn GetValidRegionVirtual(&self, base: u64, size: u32, validbase: *mut u64, validsize: *mut u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetValidRegionVirtual)(::windows_core::Interface::as_raw(self), base, size, validbase, validsize).ok()
}
pub unsafe fn SearchVirtual2(&self, offset: u64, length: u64, flags: u32, pattern: *const ::core::ffi::c_void, patternsize: u32, patterngranularity: u32) -> ::windows_core::Result<u64> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).SearchVirtual2)(::windows_core::Interface::as_raw(self), offset, length, flags, pattern, patternsize, patterngranularity, &mut result__).from_abi(result__)
}
pub unsafe fn ReadMultiByteStringVirtual(&self, offset: u64, maxbytes: u32, buffer: ::core::option::Option<&mut [u8]>, stringbytes: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).ReadMultiByteStringVirtual)(::windows_core::Interface::as_raw(self), offset, maxbytes, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(stringbytes.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn ReadMultiByteStringVirtualWide(&self, offset: u64, maxbytes: u32, codepage: u32, buffer: ::core::option::Option<&mut [u16]>, stringbytes: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).ReadMultiByteStringVirtualWide)(::windows_core::Interface::as_raw(self), offset, maxbytes, codepage, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(stringbytes.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn ReadUnicodeStringVirtual(&self, offset: u64, maxbytes: u32, codepage: u32, buffer: ::core::option::Option<&mut [u8]>, stringbytes: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).ReadUnicodeStringVirtual)(::windows_core::Interface::as_raw(self), offset, maxbytes, codepage, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(stringbytes.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn ReadUnicodeStringVirtualWide(&self, offset: u64, maxbytes: u32, buffer: ::core::option::Option<&mut [u16]>, stringbytes: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).ReadUnicodeStringVirtualWide)(::windows_core::Interface::as_raw(self), offset, maxbytes, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(stringbytes.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn ReadPhysical2(&self, offset: u64, flags: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).ReadPhysical2)(::windows_core::Interface::as_raw(self), offset, flags, buffer, buffersize, ::core::mem::transmute(bytesread.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn WritePhysical2(&self, offset: u64, flags: u32, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).WritePhysical2)(::windows_core::Interface::as_raw(self), offset, flags, buffer, buffersize, ::core::mem::transmute(byteswritten.unwrap_or(::std::ptr::null_mut()))).ok()
}
}
::windows_core::imp::interface_hierarchy!(IDebugDataSpaces4, ::windows_core::IUnknown);
unsafe impl ::windows_core::Interface for IDebugDataSpaces4 {
type Vtable = IDebugDataSpaces4_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IDebugDataSpaces4 {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0xd98ada1f_29e9_4ef5_a6c0_e53349883212);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugDataSpaces4_Vtbl {
pub base__: ::windows_core::IUnknown_Vtbl,
pub ReadVirtual: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows_core::HRESULT,
pub WriteVirtual: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows_core::HRESULT,
pub SearchVirtual: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, length: u64, pattern: *const ::core::ffi::c_void, patternsize: u32, patterngranularity: u32, matchoffset: *mut u64) -> ::windows_core::HRESULT,
pub ReadVirtualUncached: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows_core::HRESULT,
pub WriteVirtualUncached: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows_core::HRESULT,
pub ReadPointersVirtual: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: u32, offset: u64, ptrs: *mut u64) -> ::windows_core::HRESULT,
pub WritePointersVirtual: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: u32, offset: u64, ptrs: *const u64) -> ::windows_core::HRESULT,
pub ReadPhysical: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows_core::HRESULT,
pub WritePhysical: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows_core::HRESULT,
pub ReadControl: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, processor: u32, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows_core::HRESULT,
pub WriteControl: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, processor: u32, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows_core::HRESULT,
pub ReadIo: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, interfacetype: u32, busnumber: u32, addressspace: u32, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows_core::HRESULT,
pub WriteIo: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, interfacetype: u32, busnumber: u32, addressspace: u32, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows_core::HRESULT,
pub ReadMsr: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, msr: u32, value: *mut u64) -> ::windows_core::HRESULT,
pub WriteMsr: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, msr: u32, value: u64) -> ::windows_core::HRESULT,
pub ReadBusData: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, busdatatype: u32, busnumber: u32, slotnumber: u32, offset: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows_core::HRESULT,
pub WriteBusData: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, busdatatype: u32, busnumber: u32, slotnumber: u32, offset: u32, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows_core::HRESULT,
pub CheckLowMemory: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub ReadDebuggerData: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, datasize: *mut u32) -> ::windows_core::HRESULT,
pub ReadProcessorSystemData: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, processor: u32, index: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, datasize: *mut u32) -> ::windows_core::HRESULT,
pub VirtualToPhysical: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#virtual: u64, physical: *mut u64) -> ::windows_core::HRESULT,
pub GetVirtualTranslationPhysicalOffsets: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#virtual: u64, offsets: *mut u64, offsetssize: u32, levels: *mut u32) -> ::windows_core::HRESULT,
pub ReadHandleData: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64, datatype: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, datasize: *mut u32) -> ::windows_core::HRESULT,
pub FillVirtual: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, start: u64, size: u32, pattern: *const ::core::ffi::c_void, patternsize: u32, filled: *mut u32) -> ::windows_core::HRESULT,
pub FillPhysical: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, start: u64, size: u32, pattern: *const ::core::ffi::c_void, patternsize: u32, filled: *mut u32) -> ::windows_core::HRESULT,
#[cfg(feature = "Win32_System_Memory")]
pub QueryVirtual: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, info: *mut super::super::super::Memory::MEMORY_BASIC_INFORMATION64) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_System_Memory"))]
QueryVirtual: usize,
#[cfg(feature = "Win32_System_SystemInformation")]
pub ReadImageNtHeaders: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, imagebase: u64, headers: *mut super::IMAGE_NT_HEADERS64) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_System_SystemInformation"))]
ReadImageNtHeaders: usize,
pub ReadTagged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, tag: *const ::windows_core::GUID, offset: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, totalsize: *mut u32) -> ::windows_core::HRESULT,
pub StartEnumTagged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: *mut u64) -> ::windows_core::HRESULT,
pub GetNextTagged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64, tag: *mut ::windows_core::GUID, size: *mut u32) -> ::windows_core::HRESULT,
pub EndEnumTagged: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64) -> ::windows_core::HRESULT,
pub GetOffsetInformation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, space: u32, which: u32, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, infosize: *mut u32) -> ::windows_core::HRESULT,
pub GetNextDifferentlyValidOffsetVirtual: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, nextoffset: *mut u64) -> ::windows_core::HRESULT,
pub GetValidRegionVirtual: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, base: u64, size: u32, validbase: *mut u64, validsize: *mut u32) -> ::windows_core::HRESULT,
pub SearchVirtual2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, length: u64, flags: u32, pattern: *const ::core::ffi::c_void, patternsize: u32, patterngranularity: u32, matchoffset: *mut u64) -> ::windows_core::HRESULT,
pub ReadMultiByteStringVirtual: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, maxbytes: u32, buffer: ::windows_core::PSTR, buffersize: u32, stringbytes: *mut u32) -> ::windows_core::HRESULT,
pub ReadMultiByteStringVirtualWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, maxbytes: u32, codepage: u32, buffer: ::windows_core::PWSTR, buffersize: u32, stringbytes: *mut u32) -> ::windows_core::HRESULT,
pub ReadUnicodeStringVirtual: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, maxbytes: u32, codepage: u32, buffer: ::windows_core::PSTR, buffersize: u32, stringbytes: *mut u32) -> ::windows_core::HRESULT,
pub ReadUnicodeStringVirtualWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, maxbytes: u32, buffer: ::windows_core::PWSTR, buffersize: u32, stringbytes: *mut u32) -> ::windows_core::HRESULT,
pub ReadPhysical2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, flags: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows_core::HRESULT,
pub WritePhysical2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, flags: u32, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows_core::HRESULT,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IDebugEventCallbacks(::windows_core::IUnknown);
impl IDebugEventCallbacks {
pub unsafe fn GetInterestMask(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetInterestMask)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn Breakpoint<P0>(&self, bp: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IDebugBreakpoint>,
{
(::windows_core::Interface::vtable(self).Breakpoint)(::windows_core::Interface::as_raw(self), bp.into_param().abi()).ok()
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn Exception(&self, exception: *const super::EXCEPTION_RECORD64, firstchance: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).Exception)(::windows_core::Interface::as_raw(self), exception, firstchance).ok()
}
pub unsafe fn CreateThread(&self, handle: u64, dataoffset: u64, startoffset: u64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).CreateThread)(::windows_core::Interface::as_raw(self), handle, dataoffset, startoffset).ok()
}
pub unsafe fn ExitThread(&self, exitcode: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).ExitThread)(::windows_core::Interface::as_raw(self), exitcode).ok()
}
pub unsafe fn CreateProcessA<P0, P1>(&self, imagefilehandle: u64, handle: u64, baseoffset: u64, modulesize: u32, modulename: P0, imagename: P1, checksum: u32, timedatestamp: u32, initialthreadhandle: u64, threaddataoffset: u64, startoffset: u64) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
P1: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).CreateProcessA)(::windows_core::Interface::as_raw(self), imagefilehandle, handle, baseoffset, modulesize, modulename.into_param().abi(), imagename.into_param().abi(), checksum, timedatestamp, initialthreadhandle, threaddataoffset, startoffset).ok()
}
pub unsafe fn ExitProcess(&self, exitcode: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).ExitProcess)(::windows_core::Interface::as_raw(self), exitcode).ok()
}
pub unsafe fn LoadModule<P0, P1>(&self, imagefilehandle: u64, baseoffset: u64, modulesize: u32, modulename: P0, imagename: P1, checksum: u32, timedatestamp: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
P1: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).LoadModule)(::windows_core::Interface::as_raw(self), imagefilehandle, baseoffset, modulesize, modulename.into_param().abi(), imagename.into_param().abi(), checksum, timedatestamp).ok()
}
pub unsafe fn UnloadModule<P0>(&self, imagebasename: P0, baseoffset: u64) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).UnloadModule)(::windows_core::Interface::as_raw(self), imagebasename.into_param().abi(), baseoffset).ok()
}
pub unsafe fn SystemError(&self, error: u32, level: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SystemError)(::windows_core::Interface::as_raw(self), error, level).ok()
}
pub unsafe fn SessionStatus(&self, status: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SessionStatus)(::windows_core::Interface::as_raw(self), status).ok()
}
pub unsafe fn ChangeDebuggeeState(&self, flags: u32, argument: u64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).ChangeDebuggeeState)(::windows_core::Interface::as_raw(self), flags, argument).ok()
}
pub unsafe fn ChangeEngineState(&self, flags: u32, argument: u64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).ChangeEngineState)(::windows_core::Interface::as_raw(self), flags, argument).ok()
}
pub unsafe fn ChangeSymbolState(&self, flags: u32, argument: u64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).ChangeSymbolState)(::windows_core::Interface::as_raw(self), flags, argument).ok()
}
}
::windows_core::imp::interface_hierarchy!(IDebugEventCallbacks, ::windows_core::IUnknown);
unsafe impl ::windows_core::Interface for IDebugEventCallbacks {
type Vtable = IDebugEventCallbacks_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IDebugEventCallbacks {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0x337be28b_5036_4d72_b6bf_c45fbb9f2eaa);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugEventCallbacks_Vtbl {
pub base__: ::windows_core::IUnknown_Vtbl,
pub GetInterestMask: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: *mut u32) -> ::windows_core::HRESULT,
pub Breakpoint: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, bp: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
#[cfg(feature = "Win32_Foundation")]
pub Exception: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, exception: *const super::EXCEPTION_RECORD64, firstchance: u32) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
Exception: usize,
pub CreateThread: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64, dataoffset: u64, startoffset: u64) -> ::windows_core::HRESULT,
pub ExitThread: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, exitcode: u32) -> ::windows_core::HRESULT,
pub CreateProcessA: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, imagefilehandle: u64, handle: u64, baseoffset: u64, modulesize: u32, modulename: ::windows_core::PCSTR, imagename: ::windows_core::PCSTR, checksum: u32, timedatestamp: u32, initialthreadhandle: u64, threaddataoffset: u64, startoffset: u64) -> ::windows_core::HRESULT,
pub ExitProcess: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, exitcode: u32) -> ::windows_core::HRESULT,
pub LoadModule: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, imagefilehandle: u64, baseoffset: u64, modulesize: u32, modulename: ::windows_core::PCSTR, imagename: ::windows_core::PCSTR, checksum: u32, timedatestamp: u32) -> ::windows_core::HRESULT,
pub UnloadModule: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, imagebasename: ::windows_core::PCSTR, baseoffset: u64) -> ::windows_core::HRESULT,
pub SystemError: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, error: u32, level: u32) -> ::windows_core::HRESULT,
pub SessionStatus: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, status: u32) -> ::windows_core::HRESULT,
pub ChangeDebuggeeState: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, argument: u64) -> ::windows_core::HRESULT,
pub ChangeEngineState: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, argument: u64) -> ::windows_core::HRESULT,
pub ChangeSymbolState: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, argument: u64) -> ::windows_core::HRESULT,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IDebugEventCallbacksWide(::windows_core::IUnknown);
impl IDebugEventCallbacksWide {
pub unsafe fn GetInterestMask(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetInterestMask)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn Breakpoint<P0>(&self, bp: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IDebugBreakpoint2>,
{
(::windows_core::Interface::vtable(self).Breakpoint)(::windows_core::Interface::as_raw(self), bp.into_param().abi()).ok()
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn Exception(&self, exception: *const super::EXCEPTION_RECORD64, firstchance: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).Exception)(::windows_core::Interface::as_raw(self), exception, firstchance).ok()
}
pub unsafe fn CreateThread(&self, handle: u64, dataoffset: u64, startoffset: u64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).CreateThread)(::windows_core::Interface::as_raw(self), handle, dataoffset, startoffset).ok()
}
pub unsafe fn ExitThread(&self, exitcode: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).ExitThread)(::windows_core::Interface::as_raw(self), exitcode).ok()
}
pub unsafe fn CreateProcessA<P0, P1>(&self, imagefilehandle: u64, handle: u64, baseoffset: u64, modulesize: u32, modulename: P0, imagename: P1, checksum: u32, timedatestamp: u32, initialthreadhandle: u64, threaddataoffset: u64, startoffset: u64) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
P1: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).CreateProcessA)(::windows_core::Interface::as_raw(self), imagefilehandle, handle, baseoffset, modulesize, modulename.into_param().abi(), imagename.into_param().abi(), checksum, timedatestamp, initialthreadhandle, threaddataoffset, startoffset).ok()
}
pub unsafe fn ExitProcess(&self, exitcode: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).ExitProcess)(::windows_core::Interface::as_raw(self), exitcode).ok()
}
pub unsafe fn LoadModule<P0, P1>(&self, imagefilehandle: u64, baseoffset: u64, modulesize: u32, modulename: P0, imagename: P1, checksum: u32, timedatestamp: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
P1: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).LoadModule)(::windows_core::Interface::as_raw(self), imagefilehandle, baseoffset, modulesize, modulename.into_param().abi(), imagename.into_param().abi(), checksum, timedatestamp).ok()
}
pub unsafe fn UnloadModule<P0>(&self, imagebasename: P0, baseoffset: u64) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).UnloadModule)(::windows_core::Interface::as_raw(self), imagebasename.into_param().abi(), baseoffset).ok()
}
pub unsafe fn SystemError(&self, error: u32, level: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SystemError)(::windows_core::Interface::as_raw(self), error, level).ok()
}
pub unsafe fn SessionStatus(&self, status: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SessionStatus)(::windows_core::Interface::as_raw(self), status).ok()
}
pub unsafe fn ChangeDebuggeeState(&self, flags: u32, argument: u64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).ChangeDebuggeeState)(::windows_core::Interface::as_raw(self), flags, argument).ok()
}
pub unsafe fn ChangeEngineState(&self, flags: u32, argument: u64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).ChangeEngineState)(::windows_core::Interface::as_raw(self), flags, argument).ok()
}
pub unsafe fn ChangeSymbolState(&self, flags: u32, argument: u64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).ChangeSymbolState)(::windows_core::Interface::as_raw(self), flags, argument).ok()
}
}
::windows_core::imp::interface_hierarchy!(IDebugEventCallbacksWide, ::windows_core::IUnknown);
unsafe impl ::windows_core::Interface for IDebugEventCallbacksWide {
type Vtable = IDebugEventCallbacksWide_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IDebugEventCallbacksWide {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0x0690e046_9c23_45ac_a04f_987ac29ad0d3);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugEventCallbacksWide_Vtbl {
pub base__: ::windows_core::IUnknown_Vtbl,
pub GetInterestMask: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: *mut u32) -> ::windows_core::HRESULT,
pub Breakpoint: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, bp: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
#[cfg(feature = "Win32_Foundation")]
pub Exception: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, exception: *const super::EXCEPTION_RECORD64, firstchance: u32) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
Exception: usize,
pub CreateThread: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64, dataoffset: u64, startoffset: u64) -> ::windows_core::HRESULT,
pub ExitThread: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, exitcode: u32) -> ::windows_core::HRESULT,
pub CreateProcessA: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, imagefilehandle: u64, handle: u64, baseoffset: u64, modulesize: u32, modulename: ::windows_core::PCWSTR, imagename: ::windows_core::PCWSTR, checksum: u32, timedatestamp: u32, initialthreadhandle: u64, threaddataoffset: u64, startoffset: u64) -> ::windows_core::HRESULT,
pub ExitProcess: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, exitcode: u32) -> ::windows_core::HRESULT,
pub LoadModule: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, imagefilehandle: u64, baseoffset: u64, modulesize: u32, modulename: ::windows_core::PCWSTR, imagename: ::windows_core::PCWSTR, checksum: u32, timedatestamp: u32) -> ::windows_core::HRESULT,
pub UnloadModule: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, imagebasename: ::windows_core::PCWSTR, baseoffset: u64) -> ::windows_core::HRESULT,
pub SystemError: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, error: u32, level: u32) -> ::windows_core::HRESULT,
pub SessionStatus: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, status: u32) -> ::windows_core::HRESULT,
pub ChangeDebuggeeState: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, argument: u64) -> ::windows_core::HRESULT,
pub ChangeEngineState: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, argument: u64) -> ::windows_core::HRESULT,
pub ChangeSymbolState: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, argument: u64) -> ::windows_core::HRESULT,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IDebugEventContextCallbacks(::windows_core::IUnknown);
impl IDebugEventContextCallbacks {
pub unsafe fn GetInterestMask(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetInterestMask)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn Breakpoint<P0>(&self, bp: P0, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IDebugBreakpoint2>,
{
(::windows_core::Interface::vtable(self).Breakpoint)(::windows_core::Interface::as_raw(self), bp.into_param().abi(), context, contextsize).ok()
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn Exception(&self, exception: *const super::EXCEPTION_RECORD64, firstchance: u32, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).Exception)(::windows_core::Interface::as_raw(self), exception, firstchance, context, contextsize).ok()
}
pub unsafe fn CreateThread(&self, handle: u64, dataoffset: u64, startoffset: u64, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).CreateThread)(::windows_core::Interface::as_raw(self), handle, dataoffset, startoffset, context, contextsize).ok()
}
pub unsafe fn ExitThread(&self, exitcode: u32, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).ExitThread)(::windows_core::Interface::as_raw(self), exitcode, context, contextsize).ok()
}
pub unsafe fn CreateProcessA<P0, P1>(&self, imagefilehandle: u64, handle: u64, baseoffset: u64, modulesize: u32, modulename: P0, imagename: P1, checksum: u32, timedatestamp: u32, initialthreadhandle: u64, threaddataoffset: u64, startoffset: u64, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
P1: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).CreateProcessA)(::windows_core::Interface::as_raw(self), imagefilehandle, handle, baseoffset, modulesize, modulename.into_param().abi(), imagename.into_param().abi(), checksum, timedatestamp, initialthreadhandle, threaddataoffset, startoffset, context, contextsize).ok()
}
pub unsafe fn ExitProcess(&self, exitcode: u32, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).ExitProcess)(::windows_core::Interface::as_raw(self), exitcode, context, contextsize).ok()
}
pub unsafe fn LoadModule<P0, P1>(&self, imagefilehandle: u64, baseoffset: u64, modulesize: u32, modulename: P0, imagename: P1, checksum: u32, timedatestamp: u32, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
P1: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).LoadModule)(::windows_core::Interface::as_raw(self), imagefilehandle, baseoffset, modulesize, modulename.into_param().abi(), imagename.into_param().abi(), checksum, timedatestamp, context, contextsize).ok()
}
pub unsafe fn UnloadModule<P0>(&self, imagebasename: P0, baseoffset: u64, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).UnloadModule)(::windows_core::Interface::as_raw(self), imagebasename.into_param().abi(), baseoffset, context, contextsize).ok()
}
pub unsafe fn SystemError(&self, error: u32, level: u32, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SystemError)(::windows_core::Interface::as_raw(self), error, level, context, contextsize).ok()
}
pub unsafe fn SessionStatus(&self, status: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SessionStatus)(::windows_core::Interface::as_raw(self), status).ok()
}
pub unsafe fn ChangeDebuggeeState(&self, flags: u32, argument: u64, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).ChangeDebuggeeState)(::windows_core::Interface::as_raw(self), flags, argument, context, contextsize).ok()
}
pub unsafe fn ChangeEngineState(&self, flags: u32, argument: u64, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).ChangeEngineState)(::windows_core::Interface::as_raw(self), flags, argument, context, contextsize).ok()
}
pub unsafe fn ChangeSymbolState(&self, flags: u32, argument: u64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).ChangeSymbolState)(::windows_core::Interface::as_raw(self), flags, argument).ok()
}
}
::windows_core::imp::interface_hierarchy!(IDebugEventContextCallbacks, ::windows_core::IUnknown);
unsafe impl ::windows_core::Interface for IDebugEventContextCallbacks {
type Vtable = IDebugEventContextCallbacks_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IDebugEventContextCallbacks {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0x61a4905b_23f9_4247_b3c5_53d087529ab7);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugEventContextCallbacks_Vtbl {
pub base__: ::windows_core::IUnknown_Vtbl,
pub GetInterestMask: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: *mut u32) -> ::windows_core::HRESULT,
pub Breakpoint: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, bp: *mut ::core::ffi::c_void, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows_core::HRESULT,
#[cfg(feature = "Win32_Foundation")]
pub Exception: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, exception: *const super::EXCEPTION_RECORD64, firstchance: u32, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
Exception: usize,
pub CreateThread: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64, dataoffset: u64, startoffset: u64, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows_core::HRESULT,
pub ExitThread: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, exitcode: u32, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows_core::HRESULT,
pub CreateProcessA: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, imagefilehandle: u64, handle: u64, baseoffset: u64, modulesize: u32, modulename: ::windows_core::PCWSTR, imagename: ::windows_core::PCWSTR, checksum: u32, timedatestamp: u32, initialthreadhandle: u64, threaddataoffset: u64, startoffset: u64, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows_core::HRESULT,
pub ExitProcess: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, exitcode: u32, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows_core::HRESULT,
pub LoadModule: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, imagefilehandle: u64, baseoffset: u64, modulesize: u32, modulename: ::windows_core::PCWSTR, imagename: ::windows_core::PCWSTR, checksum: u32, timedatestamp: u32, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows_core::HRESULT,
pub UnloadModule: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, imagebasename: ::windows_core::PCWSTR, baseoffset: u64, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows_core::HRESULT,
pub SystemError: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, error: u32, level: u32, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows_core::HRESULT,
pub SessionStatus: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, status: u32) -> ::windows_core::HRESULT,
pub ChangeDebuggeeState: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, argument: u64, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows_core::HRESULT,
pub ChangeEngineState: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, argument: u64, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows_core::HRESULT,
pub ChangeSymbolState: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, argument: u64) -> ::windows_core::HRESULT,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IDebugFAEntryTags(::std::ptr::NonNull<::std::ffi::c_void>);
impl IDebugFAEntryTags {
pub unsafe fn GetType(&self, tag: DEBUG_FLR_PARAM_TYPE) -> FA_ENTRY_TYPE {
(::windows_core::Interface::vtable(self).GetType)(::windows_core::Interface::as_raw(self), tag)
}
pub unsafe fn SetType(&self, tag: DEBUG_FLR_PARAM_TYPE, entrytype: FA_ENTRY_TYPE) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetType)(::windows_core::Interface::as_raw(self), tag, entrytype).ok()
}
pub unsafe fn GetProperties(&self, tag: DEBUG_FLR_PARAM_TYPE, name: ::windows_core::PSTR, namesize: ::core::option::Option<*mut u32>, description: ::windows_core::PSTR, descsize: ::core::option::Option<*mut u32>, flags: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetProperties)(::windows_core::Interface::as_raw(self), tag, ::core::mem::transmute(name), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(description), ::core::mem::transmute(descsize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(flags.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetProperties<P0, P1>(&self, tag: DEBUG_FLR_PARAM_TYPE, name: P0, description: P1, flags: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
P1: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).SetProperties)(::windows_core::Interface::as_raw(self), tag, name.into_param().abi(), description.into_param().abi(), flags).ok()
}
pub unsafe fn GetTagByName<P0, P1>(&self, pluginid: P0, tagname: P1) -> ::windows_core::Result<DEBUG_FLR_PARAM_TYPE>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
P1: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetTagByName)(::windows_core::Interface::as_raw(self), pluginid.into_param().abi(), tagname.into_param().abi(), &mut result__).from_abi(result__)
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn IsValidTagToSet(&self, tag: DEBUG_FLR_PARAM_TYPE) -> super::super::super::super::Foundation::BOOL {
(::windows_core::Interface::vtable(self).IsValidTagToSet)(::windows_core::Interface::as_raw(self), tag)
}
}
unsafe impl ::windows_core::Interface for IDebugFAEntryTags {
type Vtable = IDebugFAEntryTags_Vtbl;
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugFAEntryTags_Vtbl {
pub GetType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, tag: DEBUG_FLR_PARAM_TYPE) -> FA_ENTRY_TYPE,
pub SetType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, tag: DEBUG_FLR_PARAM_TYPE, entrytype: FA_ENTRY_TYPE) -> ::windows_core::HRESULT,
pub GetProperties: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, tag: DEBUG_FLR_PARAM_TYPE, name: ::windows_core::PSTR, namesize: *mut u32, description: ::windows_core::PSTR, descsize: *mut u32, flags: *mut u32) -> ::windows_core::HRESULT,
pub SetProperties: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, tag: DEBUG_FLR_PARAM_TYPE, name: ::windows_core::PCSTR, description: ::windows_core::PCSTR, flags: u32) -> ::windows_core::HRESULT,
pub GetTagByName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pluginid: ::windows_core::PCSTR, tagname: ::windows_core::PCSTR, tag: *mut DEBUG_FLR_PARAM_TYPE) -> ::windows_core::HRESULT,
#[cfg(feature = "Win32_Foundation")]
pub IsValidTagToSet: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, tag: DEBUG_FLR_PARAM_TYPE) -> super::super::super::super::Foundation::BOOL,
#[cfg(not(feature = "Win32_Foundation"))]
IsValidTagToSet: usize,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IDebugFailureAnalysis(::windows_core::IUnknown);
impl IDebugFailureAnalysis {
pub unsafe fn GetFailureClass(&self) -> u32 {
(::windows_core::Interface::vtable(self).GetFailureClass)(::windows_core::Interface::as_raw(self))
}
pub unsafe fn GetFailureType(&self) -> DEBUG_FAILURE_TYPE {
(::windows_core::Interface::vtable(self).GetFailureType)(::windows_core::Interface::as_raw(self))
}
pub unsafe fn GetFailureCode(&self) -> u32 {
(::windows_core::Interface::vtable(self).GetFailureCode)(::windows_core::Interface::as_raw(self))
}
pub unsafe fn Get(&self, tag: DEBUG_FLR_PARAM_TYPE) -> *mut FA_ENTRY {
(::windows_core::Interface::vtable(self).Get)(::windows_core::Interface::as_raw(self), tag)
}
pub unsafe fn GetNext(&self, entry: *mut FA_ENTRY, tag: DEBUG_FLR_PARAM_TYPE, tagmask: DEBUG_FLR_PARAM_TYPE) -> *mut FA_ENTRY {
(::windows_core::Interface::vtable(self).GetNext)(::windows_core::Interface::as_raw(self), entry, tag, tagmask)
}
pub unsafe fn GetString(&self, tag: DEBUG_FLR_PARAM_TYPE, str: &mut [u8]) -> *mut FA_ENTRY {
(::windows_core::Interface::vtable(self).GetString)(::windows_core::Interface::as_raw(self), tag, ::core::mem::transmute(str.as_ptr()), str.len().try_into().unwrap())
}
pub unsafe fn GetBuffer(&self, tag: DEBUG_FLR_PARAM_TYPE, buf: *mut ::core::ffi::c_void, size: u32) -> *mut FA_ENTRY {
(::windows_core::Interface::vtable(self).GetBuffer)(::windows_core::Interface::as_raw(self), tag, buf, size)
}
pub unsafe fn GetUlong(&self, tag: DEBUG_FLR_PARAM_TYPE, value: *mut u32) -> *mut FA_ENTRY {
(::windows_core::Interface::vtable(self).GetUlong)(::windows_core::Interface::as_raw(self), tag, value)
}
pub unsafe fn GetUlong64(&self, tag: DEBUG_FLR_PARAM_TYPE, value: *mut u64) -> *mut FA_ENTRY {
(::windows_core::Interface::vtable(self).GetUlong64)(::windows_core::Interface::as_raw(self), tag, value)
}
pub unsafe fn NextEntry(&self, entry: ::core::option::Option<*const FA_ENTRY>) -> *mut FA_ENTRY {
(::windows_core::Interface::vtable(self).NextEntry)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(entry.unwrap_or(::std::ptr::null())))
}
}
::windows_core::imp::interface_hierarchy!(IDebugFailureAnalysis, ::windows_core::IUnknown);
unsafe impl ::windows_core::Interface for IDebugFailureAnalysis {
type Vtable = IDebugFailureAnalysis_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IDebugFailureAnalysis {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0xed0de363_451f_4943_820c_62dccdfa7e6d);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugFailureAnalysis_Vtbl {
pub base__: ::windows_core::IUnknown_Vtbl,
pub GetFailureClass: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> u32,
pub GetFailureType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> DEBUG_FAILURE_TYPE,
pub GetFailureCode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> u32,
pub Get: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, tag: DEBUG_FLR_PARAM_TYPE) -> *mut FA_ENTRY,
pub GetNext: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, entry: *mut FA_ENTRY, tag: DEBUG_FLR_PARAM_TYPE, tagmask: DEBUG_FLR_PARAM_TYPE) -> *mut FA_ENTRY,
pub GetString: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, tag: DEBUG_FLR_PARAM_TYPE, str: ::windows_core::PSTR, maxsize: u32) -> *mut FA_ENTRY,
pub GetBuffer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, tag: DEBUG_FLR_PARAM_TYPE, buf: *mut ::core::ffi::c_void, size: u32) -> *mut FA_ENTRY,
pub GetUlong: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, tag: DEBUG_FLR_PARAM_TYPE, value: *mut u32) -> *mut FA_ENTRY,
pub GetUlong64: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, tag: DEBUG_FLR_PARAM_TYPE, value: *mut u64) -> *mut FA_ENTRY,
pub NextEntry: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, entry: *const FA_ENTRY) -> *mut FA_ENTRY,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IDebugFailureAnalysis2(::windows_core::IUnknown);
impl IDebugFailureAnalysis2 {
pub unsafe fn GetFailureClass(&self) -> u32 {
(::windows_core::Interface::vtable(self).GetFailureClass)(::windows_core::Interface::as_raw(self))
}
pub unsafe fn GetFailureType(&self) -> DEBUG_FAILURE_TYPE {
(::windows_core::Interface::vtable(self).GetFailureType)(::windows_core::Interface::as_raw(self))
}
pub unsafe fn GetFailureCode(&self) -> u32 {
(::windows_core::Interface::vtable(self).GetFailureCode)(::windows_core::Interface::as_raw(self))
}
pub unsafe fn Get(&self, tag: DEBUG_FLR_PARAM_TYPE) -> *mut FA_ENTRY {
(::windows_core::Interface::vtable(self).Get)(::windows_core::Interface::as_raw(self), tag)
}
pub unsafe fn GetNext(&self, entry: *const FA_ENTRY, tag: DEBUG_FLR_PARAM_TYPE, tagmask: DEBUG_FLR_PARAM_TYPE) -> *mut FA_ENTRY {
(::windows_core::Interface::vtable(self).GetNext)(::windows_core::Interface::as_raw(self), entry, tag, tagmask)
}
pub unsafe fn GetString(&self, tag: DEBUG_FLR_PARAM_TYPE, str: &mut [u8]) -> *mut FA_ENTRY {
(::windows_core::Interface::vtable(self).GetString)(::windows_core::Interface::as_raw(self), tag, ::core::mem::transmute(str.as_ptr()), str.len().try_into().unwrap())
}
pub unsafe fn GetBuffer(&self, tag: DEBUG_FLR_PARAM_TYPE, buf: *mut ::core::ffi::c_void, size: u32) -> *mut FA_ENTRY {
(::windows_core::Interface::vtable(self).GetBuffer)(::windows_core::Interface::as_raw(self), tag, buf, size)
}
pub unsafe fn GetUlong(&self, tag: DEBUG_FLR_PARAM_TYPE, value: *mut u32) -> *mut FA_ENTRY {
(::windows_core::Interface::vtable(self).GetUlong)(::windows_core::Interface::as_raw(self), tag, value)
}
pub unsafe fn GetUlong64(&self, tag: DEBUG_FLR_PARAM_TYPE, value: *mut u64) -> *mut FA_ENTRY {
(::windows_core::Interface::vtable(self).GetUlong64)(::windows_core::Interface::as_raw(self), tag, value)
}
pub unsafe fn NextEntry(&self, entry: ::core::option::Option<*const FA_ENTRY>) -> *mut FA_ENTRY {
(::windows_core::Interface::vtable(self).NextEntry)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(entry.unwrap_or(::std::ptr::null())))
}
pub unsafe fn SetString<P0>(&self, tag: DEBUG_FLR_PARAM_TYPE, str: P0) -> *mut FA_ENTRY
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).SetString)(::windows_core::Interface::as_raw(self), tag, str.into_param().abi())
}
pub unsafe fn SetExtensionCommand<P0>(&self, tag: DEBUG_FLR_PARAM_TYPE, extension: P0) -> *mut FA_ENTRY
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).SetExtensionCommand)(::windows_core::Interface::as_raw(self), tag, extension.into_param().abi())
}
pub unsafe fn SetUlong(&self, tag: DEBUG_FLR_PARAM_TYPE, value: u32) -> *mut FA_ENTRY {
(::windows_core::Interface::vtable(self).SetUlong)(::windows_core::Interface::as_raw(self), tag, value)
}
pub unsafe fn SetUlong64(&self, tag: DEBUG_FLR_PARAM_TYPE, value: u64) -> *mut FA_ENTRY {
(::windows_core::Interface::vtable(self).SetUlong64)(::windows_core::Interface::as_raw(self), tag, value)
}
pub unsafe fn SetBuffer(&self, tag: DEBUG_FLR_PARAM_TYPE, entrytype: FA_ENTRY_TYPE, buf: *const ::core::ffi::c_void, size: u32) -> *mut FA_ENTRY {
(::windows_core::Interface::vtable(self).SetBuffer)(::windows_core::Interface::as_raw(self), tag, entrytype, buf, size)
}
pub unsafe fn AddString<P0>(&self, tag: DEBUG_FLR_PARAM_TYPE, str: P0) -> *mut FA_ENTRY
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).AddString)(::windows_core::Interface::as_raw(self), tag, str.into_param().abi())
}
pub unsafe fn AddExtensionCommand<P0>(&self, tag: DEBUG_FLR_PARAM_TYPE, extension: P0) -> *mut FA_ENTRY
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).AddExtensionCommand)(::windows_core::Interface::as_raw(self), tag, extension.into_param().abi())
}
pub unsafe fn AddUlong(&self, tag: DEBUG_FLR_PARAM_TYPE, value: u32) -> *mut FA_ENTRY {
(::windows_core::Interface::vtable(self).AddUlong)(::windows_core::Interface::as_raw(self), tag, value)
}
pub unsafe fn AddUlong64(&self, tag: DEBUG_FLR_PARAM_TYPE, value: u64) -> *mut FA_ENTRY {
(::windows_core::Interface::vtable(self).AddUlong64)(::windows_core::Interface::as_raw(self), tag, value)
}
pub unsafe fn AddBuffer(&self, tag: DEBUG_FLR_PARAM_TYPE, entrytype: FA_ENTRY_TYPE, buf: *const ::core::ffi::c_void, size: u32) -> *mut FA_ENTRY {
(::windows_core::Interface::vtable(self).AddBuffer)(::windows_core::Interface::as_raw(self), tag, entrytype, buf, size)
}
pub unsafe fn GetDebugFATagControl(&self) -> ::windows_core::Result<IDebugFAEntryTags> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetDebugFATagControl)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
#[doc = "Required features: `\"Win32_Data_Xml_MsXml\"`, `\"Win32_System_Com\"`"]
#[cfg(all(feature = "Win32_Data_Xml_MsXml", feature = "Win32_System_Com"))]
pub unsafe fn GetAnalysisXml(&self) -> ::windows_core::Result<super::super::super::super::Data::Xml::MsXml::IXMLDOMElement> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetAnalysisXml)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn AddStructuredAnalysisData<P0>(&self, tag: DEBUG_FLR_PARAM_TYPE, analysis: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IDebugFailureAnalysis2>,
{
(::windows_core::Interface::vtable(self).AddStructuredAnalysisData)(::windows_core::Interface::as_raw(self), tag, analysis.into_param().abi()).ok()
}
}
::windows_core::imp::interface_hierarchy!(IDebugFailureAnalysis2, ::windows_core::IUnknown);
unsafe impl ::windows_core::Interface for IDebugFailureAnalysis2 {
type Vtable = IDebugFailureAnalysis2_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IDebugFailureAnalysis2 {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0xea15c288_8226_4b70_acf6_0be6b189e3ad);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugFailureAnalysis2_Vtbl {
pub base__: ::windows_core::IUnknown_Vtbl,
pub GetFailureClass: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> u32,
pub GetFailureType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> DEBUG_FAILURE_TYPE,
pub GetFailureCode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> u32,
pub Get: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, tag: DEBUG_FLR_PARAM_TYPE) -> *mut FA_ENTRY,
pub GetNext: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, entry: *const FA_ENTRY, tag: DEBUG_FLR_PARAM_TYPE, tagmask: DEBUG_FLR_PARAM_TYPE) -> *mut FA_ENTRY,
pub GetString: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, tag: DEBUG_FLR_PARAM_TYPE, str: ::windows_core::PSTR, maxsize: u32) -> *mut FA_ENTRY,
pub GetBuffer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, tag: DEBUG_FLR_PARAM_TYPE, buf: *mut ::core::ffi::c_void, size: u32) -> *mut FA_ENTRY,
pub GetUlong: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, tag: DEBUG_FLR_PARAM_TYPE, value: *mut u32) -> *mut FA_ENTRY,
pub GetUlong64: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, tag: DEBUG_FLR_PARAM_TYPE, value: *mut u64) -> *mut FA_ENTRY,
pub NextEntry: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, entry: *const FA_ENTRY) -> *mut FA_ENTRY,
pub SetString: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, tag: DEBUG_FLR_PARAM_TYPE, str: ::windows_core::PCSTR) -> *mut FA_ENTRY,
pub SetExtensionCommand: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, tag: DEBUG_FLR_PARAM_TYPE, extension: ::windows_core::PCSTR) -> *mut FA_ENTRY,
pub SetUlong: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, tag: DEBUG_FLR_PARAM_TYPE, value: u32) -> *mut FA_ENTRY,
pub SetUlong64: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, tag: DEBUG_FLR_PARAM_TYPE, value: u64) -> *mut FA_ENTRY,
pub SetBuffer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, tag: DEBUG_FLR_PARAM_TYPE, entrytype: FA_ENTRY_TYPE, buf: *const ::core::ffi::c_void, size: u32) -> *mut FA_ENTRY,
pub AddString: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, tag: DEBUG_FLR_PARAM_TYPE, str: ::windows_core::PCSTR) -> *mut FA_ENTRY,
pub AddExtensionCommand: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, tag: DEBUG_FLR_PARAM_TYPE, extension: ::windows_core::PCSTR) -> *mut FA_ENTRY,
pub AddUlong: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, tag: DEBUG_FLR_PARAM_TYPE, value: u32) -> *mut FA_ENTRY,
pub AddUlong64: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, tag: DEBUG_FLR_PARAM_TYPE, value: u64) -> *mut FA_ENTRY,
pub AddBuffer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, tag: DEBUG_FLR_PARAM_TYPE, entrytype: FA_ENTRY_TYPE, buf: *const ::core::ffi::c_void, size: u32) -> *mut FA_ENTRY,
pub GetDebugFATagControl: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, fatagcontrol: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
#[cfg(all(feature = "Win32_Data_Xml_MsXml", feature = "Win32_System_Com"))]
pub GetAnalysisXml: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, ppxmldomelement: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
#[cfg(not(all(feature = "Win32_Data_Xml_MsXml", feature = "Win32_System_Com")))]
GetAnalysisXml: usize,
pub AddStructuredAnalysisData: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, tag: DEBUG_FLR_PARAM_TYPE, analysis: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IDebugFailureAnalysis3(::windows_core::IUnknown);
impl IDebugFailureAnalysis3 {
pub unsafe fn GetFailureClass(&self) -> u32 {
(::windows_core::Interface::vtable(self).GetFailureClass)(::windows_core::Interface::as_raw(self))
}
pub unsafe fn GetFailureType(&self) -> DEBUG_FAILURE_TYPE {
(::windows_core::Interface::vtable(self).GetFailureType)(::windows_core::Interface::as_raw(self))
}
pub unsafe fn GetFailureCode(&self) -> u32 {
(::windows_core::Interface::vtable(self).GetFailureCode)(::windows_core::Interface::as_raw(self))
}
pub unsafe fn Get(&self, tag: DEBUG_FLR_PARAM_TYPE) -> *mut FA_ENTRY {
(::windows_core::Interface::vtable(self).Get)(::windows_core::Interface::as_raw(self), tag)
}
pub unsafe fn GetNext(&self, entry: *const FA_ENTRY, tag: DEBUG_FLR_PARAM_TYPE, tagmask: DEBUG_FLR_PARAM_TYPE) -> *mut FA_ENTRY {
(::windows_core::Interface::vtable(self).GetNext)(::windows_core::Interface::as_raw(self), entry, tag, tagmask)
}
pub unsafe fn GetString(&self, tag: DEBUG_FLR_PARAM_TYPE, str: &mut [u8]) -> *mut FA_ENTRY {
(::windows_core::Interface::vtable(self).GetString)(::windows_core::Interface::as_raw(self), tag, ::core::mem::transmute(str.as_ptr()), str.len().try_into().unwrap())
}
pub unsafe fn GetBuffer(&self, tag: DEBUG_FLR_PARAM_TYPE, buf: *mut ::core::ffi::c_void, size: u32) -> *mut FA_ENTRY {
(::windows_core::Interface::vtable(self).GetBuffer)(::windows_core::Interface::as_raw(self), tag, buf, size)
}
pub unsafe fn GetUlong(&self, tag: DEBUG_FLR_PARAM_TYPE, value: *mut u32) -> *mut FA_ENTRY {
(::windows_core::Interface::vtable(self).GetUlong)(::windows_core::Interface::as_raw(self), tag, value)
}
pub unsafe fn GetUlong64(&self, tag: DEBUG_FLR_PARAM_TYPE, value: *mut u64) -> *mut FA_ENTRY {
(::windows_core::Interface::vtable(self).GetUlong64)(::windows_core::Interface::as_raw(self), tag, value)
}
pub unsafe fn NextEntry(&self, entry: ::core::option::Option<*const FA_ENTRY>) -> *mut FA_ENTRY {
(::windows_core::Interface::vtable(self).NextEntry)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(entry.unwrap_or(::std::ptr::null())))
}
pub unsafe fn SetString<P0>(&self, tag: DEBUG_FLR_PARAM_TYPE, str: P0) -> *mut FA_ENTRY
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).SetString)(::windows_core::Interface::as_raw(self), tag, str.into_param().abi())
}
pub unsafe fn SetExtensionCommand<P0>(&self, tag: DEBUG_FLR_PARAM_TYPE, extension: P0) -> *mut FA_ENTRY
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).SetExtensionCommand)(::windows_core::Interface::as_raw(self), tag, extension.into_param().abi())
}
pub unsafe fn SetUlong(&self, tag: DEBUG_FLR_PARAM_TYPE, value: u32) -> *mut FA_ENTRY {
(::windows_core::Interface::vtable(self).SetUlong)(::windows_core::Interface::as_raw(self), tag, value)
}
pub unsafe fn SetUlong64(&self, tag: DEBUG_FLR_PARAM_TYPE, value: u64) -> *mut FA_ENTRY {
(::windows_core::Interface::vtable(self).SetUlong64)(::windows_core::Interface::as_raw(self), tag, value)
}
pub unsafe fn SetBuffer(&self, tag: DEBUG_FLR_PARAM_TYPE, entrytype: FA_ENTRY_TYPE, buf: *const ::core::ffi::c_void, size: u32) -> *mut FA_ENTRY {
(::windows_core::Interface::vtable(self).SetBuffer)(::windows_core::Interface::as_raw(self), tag, entrytype, buf, size)
}
pub unsafe fn AddString<P0>(&self, tag: DEBUG_FLR_PARAM_TYPE, str: P0) -> *mut FA_ENTRY
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).AddString)(::windows_core::Interface::as_raw(self), tag, str.into_param().abi())
}
pub unsafe fn AddExtensionCommand<P0>(&self, tag: DEBUG_FLR_PARAM_TYPE, extension: P0) -> *mut FA_ENTRY
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).AddExtensionCommand)(::windows_core::Interface::as_raw(self), tag, extension.into_param().abi())
}
pub unsafe fn AddUlong(&self, tag: DEBUG_FLR_PARAM_TYPE, value: u32) -> *mut FA_ENTRY {
(::windows_core::Interface::vtable(self).AddUlong)(::windows_core::Interface::as_raw(self), tag, value)
}
pub unsafe fn AddUlong64(&self, tag: DEBUG_FLR_PARAM_TYPE, value: u64) -> *mut FA_ENTRY {
(::windows_core::Interface::vtable(self).AddUlong64)(::windows_core::Interface::as_raw(self), tag, value)
}
pub unsafe fn AddBuffer(&self, tag: DEBUG_FLR_PARAM_TYPE, entrytype: FA_ENTRY_TYPE, buf: *const ::core::ffi::c_void, size: u32) -> *mut FA_ENTRY {
(::windows_core::Interface::vtable(self).AddBuffer)(::windows_core::Interface::as_raw(self), tag, entrytype, buf, size)
}
pub unsafe fn GetDebugFATagControl(&self) -> ::windows_core::Result<IDebugFAEntryTags> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetDebugFATagControl)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
#[doc = "Required features: `\"Win32_Data_Xml_MsXml\"`, `\"Win32_System_Com\"`"]
#[cfg(all(feature = "Win32_Data_Xml_MsXml", feature = "Win32_System_Com"))]
pub unsafe fn GetAnalysisXml(&self) -> ::windows_core::Result<super::super::super::super::Data::Xml::MsXml::IXMLDOMElement> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetAnalysisXml)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn AddStructuredAnalysisData<P0>(&self, tag: DEBUG_FLR_PARAM_TYPE, analysis: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IDebugFailureAnalysis2>,
{
(::windows_core::Interface::vtable(self).AddStructuredAnalysisData)(::windows_core::Interface::as_raw(self), tag, analysis.into_param().abi()).ok()
}
pub unsafe fn AddThreads<P0>(&self, pdebugfailurethreadenum: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::IUnknown>,
{
(::windows_core::Interface::vtable(self).AddThreads)(::windows_core::Interface::as_raw(self), pdebugfailurethreadenum.into_param().abi()).ok()
}
#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub unsafe fn AttributeGet(&self, nindex: u32) -> ::windows_core::Result<super::super::super::Variant::VARIANT> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).AttributeGet)(::windows_core::Interface::as_raw(self), nindex, &mut result__).from_abi(result__)
}
pub unsafe fn AttributeGetName(&self, nindex: u32) -> ::windows_core::Result<::windows_core::BSTR> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).AttributeGetName)(::windows_core::Interface::as_raw(self), nindex, &mut result__).from_abi(result__)
}
#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub unsafe fn AttributeSet(&self, nindex: u32, value: super::super::super::Variant::VARIANT) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).AttributeSet)(::windows_core::Interface::as_raw(self), nindex, ::core::mem::transmute(value)).ok()
}
pub unsafe fn BlameApplication<P0>(&self, postfix: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::BSTR>,
{
(::windows_core::Interface::vtable(self).BlameApplication)(::windows_core::Interface::as_raw(self), postfix.into_param().abi()).ok()
}
pub unsafe fn BlameProcess<P0>(&self, postfix: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::BSTR>,
{
(::windows_core::Interface::vtable(self).BlameProcess)(::windows_core::Interface::as_raw(self), postfix.into_param().abi()).ok()
}
pub unsafe fn BlameThread<P0>(&self, pthread: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::IUnknown>,
{
(::windows_core::Interface::vtable(self).BlameThread)(::windows_core::Interface::as_raw(self), pthread.into_param().abi()).ok()
}
pub unsafe fn BlameStitch<P0, P1>(&self, pthread: P0, stitch: P1) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::IUnknown>,
P1: ::windows_core::IntoParam<::windows_core::BSTR>,
{
(::windows_core::Interface::vtable(self).BlameStitch)(::windows_core::Interface::as_raw(self), pthread.into_param().abi(), stitch.into_param().abi()).ok()
}
pub unsafe fn BlameTEB(&self, address: u64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).BlameTEB)(::windows_core::Interface::as_raw(self), address).ok()
}
pub unsafe fn BlameETHREAD(&self, address: u64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).BlameETHREAD)(::windows_core::Interface::as_raw(self), address).ok()
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn ProblemClassIsSet(&self, nindex: u32) -> ::windows_core::Result<super::super::super::super::Foundation::VARIANT_BOOL> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).ProblemClassIsSet)(::windows_core::Interface::as_raw(self), nindex, &mut result__).from_abi(result__)
}
pub unsafe fn ProblemClassDelete(&self, nindex: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).ProblemClassDelete)(::windows_core::Interface::as_raw(self), nindex).ok()
}
pub unsafe fn ProblemClassSet(&self, nindex: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).ProblemClassSet)(::windows_core::Interface::as_raw(self), nindex).ok()
}
pub unsafe fn ProblemClassSetBSTR<P0>(&self, nindex: u32, value: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::BSTR>,
{
(::windows_core::Interface::vtable(self).ProblemClassSetBSTR)(::windows_core::Interface::as_raw(self), nindex, value.into_param().abi()).ok()
}
pub unsafe fn SetAdditionalXML<P0, P1>(&self, key: P0, pxmldomelement: P1) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::BSTR>,
P1: ::windows_core::IntoParam<::windows_core::IUnknown>,
{
(::windows_core::Interface::vtable(self).SetAdditionalXML)(::windows_core::Interface::as_raw(self), key.into_param().abi(), pxmldomelement.into_param().abi()).ok()
}
pub unsafe fn GetAdditionalXML<P0>(&self, key: P0) -> ::windows_core::Result<::windows_core::IUnknown>
where
P0: ::windows_core::IntoParam<::windows_core::BSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetAdditionalXML)(::windows_core::Interface::as_raw(self), key.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn DeleteAdditionalXML<P0>(&self, key: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::BSTR>,
{
(::windows_core::Interface::vtable(self).DeleteAdditionalXML)(::windows_core::Interface::as_raw(self), key.into_param().abi()).ok()
}
}
::windows_core::imp::interface_hierarchy!(IDebugFailureAnalysis3, ::windows_core::IUnknown);
unsafe impl ::windows_core::Interface for IDebugFailureAnalysis3 {
type Vtable = IDebugFailureAnalysis3_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IDebugFailureAnalysis3 {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0x3627dc67_fd45_42ff_9ba4_4a67ee64619f);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugFailureAnalysis3_Vtbl {
pub base__: ::windows_core::IUnknown_Vtbl,
pub GetFailureClass: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> u32,
pub GetFailureType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> DEBUG_FAILURE_TYPE,
pub GetFailureCode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> u32,
pub Get: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, tag: DEBUG_FLR_PARAM_TYPE) -> *mut FA_ENTRY,
pub GetNext: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, entry: *const FA_ENTRY, tag: DEBUG_FLR_PARAM_TYPE, tagmask: DEBUG_FLR_PARAM_TYPE) -> *mut FA_ENTRY,
pub GetString: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, tag: DEBUG_FLR_PARAM_TYPE, str: ::windows_core::PSTR, maxsize: u32) -> *mut FA_ENTRY,
pub GetBuffer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, tag: DEBUG_FLR_PARAM_TYPE, buf: *mut ::core::ffi::c_void, size: u32) -> *mut FA_ENTRY,
pub GetUlong: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, tag: DEBUG_FLR_PARAM_TYPE, value: *mut u32) -> *mut FA_ENTRY,
pub GetUlong64: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, tag: DEBUG_FLR_PARAM_TYPE, value: *mut u64) -> *mut FA_ENTRY,
pub NextEntry: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, entry: *const FA_ENTRY) -> *mut FA_ENTRY,
pub SetString: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, tag: DEBUG_FLR_PARAM_TYPE, str: ::windows_core::PCSTR) -> *mut FA_ENTRY,
pub SetExtensionCommand: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, tag: DEBUG_FLR_PARAM_TYPE, extension: ::windows_core::PCSTR) -> *mut FA_ENTRY,
pub SetUlong: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, tag: DEBUG_FLR_PARAM_TYPE, value: u32) -> *mut FA_ENTRY,
pub SetUlong64: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, tag: DEBUG_FLR_PARAM_TYPE, value: u64) -> *mut FA_ENTRY,
pub SetBuffer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, tag: DEBUG_FLR_PARAM_TYPE, entrytype: FA_ENTRY_TYPE, buf: *const ::core::ffi::c_void, size: u32) -> *mut FA_ENTRY,
pub AddString: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, tag: DEBUG_FLR_PARAM_TYPE, str: ::windows_core::PCSTR) -> *mut FA_ENTRY,
pub AddExtensionCommand: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, tag: DEBUG_FLR_PARAM_TYPE, extension: ::windows_core::PCSTR) -> *mut FA_ENTRY,
pub AddUlong: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, tag: DEBUG_FLR_PARAM_TYPE, value: u32) -> *mut FA_ENTRY,
pub AddUlong64: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, tag: DEBUG_FLR_PARAM_TYPE, value: u64) -> *mut FA_ENTRY,
pub AddBuffer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, tag: DEBUG_FLR_PARAM_TYPE, entrytype: FA_ENTRY_TYPE, buf: *const ::core::ffi::c_void, size: u32) -> *mut FA_ENTRY,
pub GetDebugFATagControl: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, fatagcontrol: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
#[cfg(all(feature = "Win32_Data_Xml_MsXml", feature = "Win32_System_Com"))]
pub GetAnalysisXml: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, ppxmldomelement: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
#[cfg(not(all(feature = "Win32_Data_Xml_MsXml", feature = "Win32_System_Com")))]
GetAnalysisXml: usize,
pub AddStructuredAnalysisData: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, tag: DEBUG_FLR_PARAM_TYPE, analysis: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub AddThreads: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pdebugfailurethreadenum: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub AttributeGet: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, nindex: u32, pvalue: *mut super::super::super::Variant::VARIANT) -> ::windows_core::HRESULT,
#[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant")))]
AttributeGet: usize,
pub AttributeGetName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, nindex: u32, pname: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT,
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub AttributeSet: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, nindex: u32, value: super::super::super::Variant::VARIANT) -> ::windows_core::HRESULT,
#[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant")))]
AttributeSet: usize,
pub BlameApplication: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, postfix: ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT,
pub BlameProcess: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, postfix: ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT,
pub BlameThread: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pthread: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub BlameStitch: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pthread: *mut ::core::ffi::c_void, stitch: ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT,
pub BlameTEB: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, address: u64) -> ::windows_core::HRESULT,
pub BlameETHREAD: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, address: u64) -> ::windows_core::HRESULT,
#[cfg(feature = "Win32_Foundation")]
pub ProblemClassIsSet: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, nindex: u32, pset: *mut super::super::super::super::Foundation::VARIANT_BOOL) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
ProblemClassIsSet: usize,
pub ProblemClassDelete: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, nindex: u32) -> ::windows_core::HRESULT,
pub ProblemClassSet: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, nindex: u32) -> ::windows_core::HRESULT,
pub ProblemClassSetBSTR: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, nindex: u32, value: ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT,
pub SetAdditionalXML: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, key: ::std::mem::MaybeUninit<::windows_core::BSTR>, pxmldomelement: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub GetAdditionalXML: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, key: ::std::mem::MaybeUninit<::windows_core::BSTR>, ppxmldomelement: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub DeleteAdditionalXML: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, key: ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IDebugHost(::windows_core::IUnknown);
impl IDebugHost {
pub unsafe fn GetHostDefinedInterface(&self) -> ::windows_core::Result<::windows_core::IUnknown> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetHostDefinedInterface)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetCurrentContext(&self) -> ::windows_core::Result<IDebugHostContext> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetCurrentContext)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetDefaultMetadata(&self) -> ::windows_core::Result<IKeyStore> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetDefaultMetadata)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
}
::windows_core::imp::interface_hierarchy!(IDebugHost, ::windows_core::IUnknown);
unsafe impl ::windows_core::Interface for IDebugHost {
type Vtable = IDebugHost_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IDebugHost {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0xb8c74943_6b2c_4eeb_b5c5_35d378a6d99d);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugHost_Vtbl {
pub base__: ::windows_core::IUnknown_Vtbl,
pub GetHostDefinedInterface: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, hostunk: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub GetCurrentContext: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, context: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub GetDefaultMetadata: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, defaultmetadatastore: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IDebugHostBaseClass(::windows_core::IUnknown);
impl IDebugHostBaseClass {
pub unsafe fn GetContext(&self) -> ::windows_core::Result<IDebugHostContext> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.GetContext)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn EnumerateChildren<P0>(&self, kind: SymbolKind, name: P0) -> ::windows_core::Result<IDebugHostSymbolEnumerator>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.EnumerateChildren)(::windows_core::Interface::as_raw(self), kind, name.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn GetSymbolKind(&self) -> ::windows_core::Result<SymbolKind> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.GetSymbolKind)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetName(&self) -> ::windows_core::Result<::windows_core::BSTR> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.GetName)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetType(&self) -> ::windows_core::Result<IDebugHostType> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.GetType)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetContainingModule(&self) -> ::windows_core::Result<IDebugHostModule> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.GetContainingModule)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn CompareAgainst<P0>(&self, pcomparisonsymbol: P0, comparisonflags: u32) -> ::windows_core::Result<bool>
where
P0: ::windows_core::IntoParam<IDebugHostSymbol>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.CompareAgainst)(::windows_core::Interface::as_raw(self), pcomparisonsymbol.into_param().abi(), comparisonflags, &mut result__).from_abi(result__)
}
pub unsafe fn GetOffset(&self) -> ::windows_core::Result<u64> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetOffset)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
}
::windows_core::imp::interface_hierarchy!(IDebugHostBaseClass, ::windows_core::IUnknown, IDebugHostSymbol);
unsafe impl ::windows_core::Interface for IDebugHostBaseClass {
type Vtable = IDebugHostBaseClass_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IDebugHostBaseClass {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0xb94d57d2_390b_40f7_b5b4_b6db897d974b);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugHostBaseClass_Vtbl {
pub base__: IDebugHostSymbol_Vtbl,
pub GetOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows_core::HRESULT,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IDebugHostConstant(::windows_core::IUnknown);
impl IDebugHostConstant {
pub unsafe fn GetContext(&self) -> ::windows_core::Result<IDebugHostContext> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.GetContext)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn EnumerateChildren<P0>(&self, kind: SymbolKind, name: P0) -> ::windows_core::Result<IDebugHostSymbolEnumerator>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.EnumerateChildren)(::windows_core::Interface::as_raw(self), kind, name.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn GetSymbolKind(&self) -> ::windows_core::Result<SymbolKind> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.GetSymbolKind)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetName(&self) -> ::windows_core::Result<::windows_core::BSTR> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.GetName)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetType(&self) -> ::windows_core::Result<IDebugHostType> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.GetType)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetContainingModule(&self) -> ::windows_core::Result<IDebugHostModule> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.GetContainingModule)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn CompareAgainst<P0>(&self, pcomparisonsymbol: P0, comparisonflags: u32) -> ::windows_core::Result<bool>
where
P0: ::windows_core::IntoParam<IDebugHostSymbol>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.CompareAgainst)(::windows_core::Interface::as_raw(self), pcomparisonsymbol.into_param().abi(), comparisonflags, &mut result__).from_abi(result__)
}
#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub unsafe fn GetValue(&self) -> ::windows_core::Result<super::super::super::Variant::VARIANT> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetValue)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
}
::windows_core::imp::interface_hierarchy!(IDebugHostConstant, ::windows_core::IUnknown, IDebugHostSymbol);
unsafe impl ::windows_core::Interface for IDebugHostConstant {
type Vtable = IDebugHostConstant_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IDebugHostConstant {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0x62787edc_fa76_4690_bd71_5e8c3e2937ec);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugHostConstant_Vtbl {
pub base__: IDebugHostSymbol_Vtbl,
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub GetValue: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: *mut super::super::super::Variant::VARIANT) -> ::windows_core::HRESULT,
#[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant")))]
GetValue: usize,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IDebugHostContext(::windows_core::IUnknown);
impl IDebugHostContext {
pub unsafe fn IsEqualTo<P0>(&self, pcontext: P0) -> ::windows_core::Result<bool>
where
P0: ::windows_core::IntoParam<IDebugHostContext>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).IsEqualTo)(::windows_core::Interface::as_raw(self), pcontext.into_param().abi(), &mut result__).from_abi(result__)
}
}
::windows_core::imp::interface_hierarchy!(IDebugHostContext, ::windows_core::IUnknown);
unsafe impl ::windows_core::Interface for IDebugHostContext {
type Vtable = IDebugHostContext_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IDebugHostContext {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0xa68c70d8_5ec0_46e5_b775_3134a48ea2e3);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugHostContext_Vtbl {
pub base__: ::windows_core::IUnknown_Vtbl,
pub IsEqualTo: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pcontext: *mut ::core::ffi::c_void, pisequal: *mut bool) -> ::windows_core::HRESULT,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IDebugHostData(::windows_core::IUnknown);
impl IDebugHostData {
pub unsafe fn GetContext(&self) -> ::windows_core::Result<IDebugHostContext> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.GetContext)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn EnumerateChildren<P0>(&self, kind: SymbolKind, name: P0) -> ::windows_core::Result<IDebugHostSymbolEnumerator>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.EnumerateChildren)(::windows_core::Interface::as_raw(self), kind, name.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn GetSymbolKind(&self) -> ::windows_core::Result<SymbolKind> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.GetSymbolKind)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetName(&self) -> ::windows_core::Result<::windows_core::BSTR> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.GetName)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetType(&self) -> ::windows_core::Result<IDebugHostType> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.GetType)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetContainingModule(&self) -> ::windows_core::Result<IDebugHostModule> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.GetContainingModule)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn CompareAgainst<P0>(&self, pcomparisonsymbol: P0, comparisonflags: u32) -> ::windows_core::Result<bool>
where
P0: ::windows_core::IntoParam<IDebugHostSymbol>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.CompareAgainst)(::windows_core::Interface::as_raw(self), pcomparisonsymbol.into_param().abi(), comparisonflags, &mut result__).from_abi(result__)
}
pub unsafe fn GetLocationKind(&self) -> ::windows_core::Result<LocationKind> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetLocationKind)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetLocation(&self) -> ::windows_core::Result<Location> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetLocation)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub unsafe fn GetValue(&self) -> ::windows_core::Result<super::super::super::Variant::VARIANT> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetValue)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
}
::windows_core::imp::interface_hierarchy!(IDebugHostData, ::windows_core::IUnknown, IDebugHostSymbol);
unsafe impl ::windows_core::Interface for IDebugHostData {
type Vtable = IDebugHostData_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IDebugHostData {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0xa3d64993_826c_44fa_897d_926f2fe7ad0b);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugHostData_Vtbl {
pub base__: IDebugHostSymbol_Vtbl,
pub GetLocationKind: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, locationkind: *mut LocationKind) -> ::windows_core::HRESULT,
pub GetLocation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, location: *mut Location) -> ::windows_core::HRESULT,
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub GetValue: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: *mut super::super::super::Variant::VARIANT) -> ::windows_core::HRESULT,
#[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant")))]
GetValue: usize,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IDebugHostErrorSink(::windows_core::IUnknown);
impl IDebugHostErrorSink {
pub unsafe fn ReportError<P0>(&self, errclass: ErrorClass, hrerror: ::windows_core::HRESULT, message: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).ReportError)(::windows_core::Interface::as_raw(self), errclass, hrerror, message.into_param().abi()).ok()
}
}
::windows_core::imp::interface_hierarchy!(IDebugHostErrorSink, ::windows_core::IUnknown);
unsafe impl ::windows_core::Interface for IDebugHostErrorSink {
type Vtable = IDebugHostErrorSink_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IDebugHostErrorSink {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0xc8ff0f0b_fce9_467e_8bb3_5d69ef109c00);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugHostErrorSink_Vtbl {
pub base__: ::windows_core::IUnknown_Vtbl,
pub ReportError: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, errclass: ErrorClass, hrerror: ::windows_core::HRESULT, message: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IDebugHostEvaluator(::windows_core::IUnknown);
impl IDebugHostEvaluator {
pub unsafe fn EvaluateExpression<P0, P1, P2>(&self, context: P0, expression: P1, bindingcontext: P2, result: *mut ::core::option::Option<IModelObject>, metadata: ::core::option::Option<*mut ::core::option::Option<IKeyStore>>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IDebugHostContext>,
P1: ::windows_core::IntoParam<::windows_core::PCWSTR>,
P2: ::windows_core::IntoParam<IModelObject>,
{
(::windows_core::Interface::vtable(self).EvaluateExpression)(::windows_core::Interface::as_raw(self), context.into_param().abi(), expression.into_param().abi(), bindingcontext.into_param().abi(), ::core::mem::transmute(result), ::core::mem::transmute(metadata.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn EvaluateExtendedExpression<P0, P1, P2>(&self, context: P0, expression: P1, bindingcontext: P2, result: *mut ::core::option::Option<IModelObject>, metadata: ::core::option::Option<*mut ::core::option::Option<IKeyStore>>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IDebugHostContext>,
P1: ::windows_core::IntoParam<::windows_core::PCWSTR>,
P2: ::windows_core::IntoParam<IModelObject>,
{
(::windows_core::Interface::vtable(self).EvaluateExtendedExpression)(::windows_core::Interface::as_raw(self), context.into_param().abi(), expression.into_param().abi(), bindingcontext.into_param().abi(), ::core::mem::transmute(result), ::core::mem::transmute(metadata.unwrap_or(::std::ptr::null_mut()))).ok()
}
}
::windows_core::imp::interface_hierarchy!(IDebugHostEvaluator, ::windows_core::IUnknown);
unsafe impl ::windows_core::Interface for IDebugHostEvaluator {
type Vtable = IDebugHostEvaluator_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IDebugHostEvaluator {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0x0fef9a21_577e_4997_ac7b_1c4883241d99);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugHostEvaluator_Vtbl {
pub base__: ::windows_core::IUnknown_Vtbl,
pub EvaluateExpression: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, context: *mut ::core::ffi::c_void, expression: ::windows_core::PCWSTR, bindingcontext: *mut ::core::ffi::c_void, result: *mut *mut ::core::ffi::c_void, metadata: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub EvaluateExtendedExpression: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, context: *mut ::core::ffi::c_void, expression: ::windows_core::PCWSTR, bindingcontext: *mut ::core::ffi::c_void, result: *mut *mut ::core::ffi::c_void, metadata: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IDebugHostEvaluator2(::windows_core::IUnknown);
impl IDebugHostEvaluator2 {
pub unsafe fn EvaluateExpression<P0, P1, P2>(&self, context: P0, expression: P1, bindingcontext: P2, result: *mut ::core::option::Option<IModelObject>, metadata: ::core::option::Option<*mut ::core::option::Option<IKeyStore>>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IDebugHostContext>,
P1: ::windows_core::IntoParam<::windows_core::PCWSTR>,
P2: ::windows_core::IntoParam<IModelObject>,
{
(::windows_core::Interface::vtable(self).base__.EvaluateExpression)(::windows_core::Interface::as_raw(self), context.into_param().abi(), expression.into_param().abi(), bindingcontext.into_param().abi(), ::core::mem::transmute(result), ::core::mem::transmute(metadata.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn EvaluateExtendedExpression<P0, P1, P2>(&self, context: P0, expression: P1, bindingcontext: P2, result: *mut ::core::option::Option<IModelObject>, metadata: ::core::option::Option<*mut ::core::option::Option<IKeyStore>>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IDebugHostContext>,
P1: ::windows_core::IntoParam<::windows_core::PCWSTR>,
P2: ::windows_core::IntoParam<IModelObject>,
{
(::windows_core::Interface::vtable(self).base__.EvaluateExtendedExpression)(::windows_core::Interface::as_raw(self), context.into_param().abi(), expression.into_param().abi(), bindingcontext.into_param().abi(), ::core::mem::transmute(result), ::core::mem::transmute(metadata.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn AssignTo<P0, P1>(&self, assignmentreference: P0, assignmentvalue: P1, assignmentresult: *mut ::core::option::Option<IModelObject>, assignmentmetadata: ::core::option::Option<*mut ::core::option::Option<IKeyStore>>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IModelObject>,
P1: ::windows_core::IntoParam<IModelObject>,
{
(::windows_core::Interface::vtable(self).AssignTo)(::windows_core::Interface::as_raw(self), assignmentreference.into_param().abi(), assignmentvalue.into_param().abi(), ::core::mem::transmute(assignmentresult), ::core::mem::transmute(assignmentmetadata.unwrap_or(::std::ptr::null_mut()))).ok()
}
}
::windows_core::imp::interface_hierarchy!(IDebugHostEvaluator2, ::windows_core::IUnknown, IDebugHostEvaluator);
unsafe impl ::windows_core::Interface for IDebugHostEvaluator2 {
type Vtable = IDebugHostEvaluator2_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IDebugHostEvaluator2 {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0xa117a435_1fb4_4092_a2ab_a929576c1e87);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugHostEvaluator2_Vtbl {
pub base__: IDebugHostEvaluator_Vtbl,
pub AssignTo: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, assignmentreference: *mut ::core::ffi::c_void, assignmentvalue: *mut ::core::ffi::c_void, assignmentresult: *mut *mut ::core::ffi::c_void, assignmentmetadata: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IDebugHostExtensibility(::windows_core::IUnknown);
impl IDebugHostExtensibility {
pub unsafe fn CreateFunctionAlias<P0, P1>(&self, aliasname: P0, functionobject: P1) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
P1: ::windows_core::IntoParam<IModelObject>,
{
(::windows_core::Interface::vtable(self).CreateFunctionAlias)(::windows_core::Interface::as_raw(self), aliasname.into_param().abi(), functionobject.into_param().abi()).ok()
}
pub unsafe fn DestroyFunctionAlias<P0>(&self, aliasname: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).DestroyFunctionAlias)(::windows_core::Interface::as_raw(self), aliasname.into_param().abi()).ok()
}
}
::windows_core::imp::interface_hierarchy!(IDebugHostExtensibility, ::windows_core::IUnknown);
unsafe impl ::windows_core::Interface for IDebugHostExtensibility {
type Vtable = IDebugHostExtensibility_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IDebugHostExtensibility {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0x3c2b24e1_11d0_4f86_8ae5_4df166f73253);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugHostExtensibility_Vtbl {
pub base__: ::windows_core::IUnknown_Vtbl,
pub CreateFunctionAlias: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, aliasname: ::windows_core::PCWSTR, functionobject: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub DestroyFunctionAlias: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, aliasname: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IDebugHostField(::windows_core::IUnknown);
impl IDebugHostField {
pub unsafe fn GetContext(&self) -> ::windows_core::Result<IDebugHostContext> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.GetContext)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn EnumerateChildren<P0>(&self, kind: SymbolKind, name: P0) -> ::windows_core::Result<IDebugHostSymbolEnumerator>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.EnumerateChildren)(::windows_core::Interface::as_raw(self), kind, name.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn GetSymbolKind(&self) -> ::windows_core::Result<SymbolKind> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.GetSymbolKind)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetName(&self) -> ::windows_core::Result<::windows_core::BSTR> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.GetName)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetType(&self) -> ::windows_core::Result<IDebugHostType> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.GetType)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetContainingModule(&self) -> ::windows_core::Result<IDebugHostModule> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.GetContainingModule)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn CompareAgainst<P0>(&self, pcomparisonsymbol: P0, comparisonflags: u32) -> ::windows_core::Result<bool>
where
P0: ::windows_core::IntoParam<IDebugHostSymbol>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.CompareAgainst)(::windows_core::Interface::as_raw(self), pcomparisonsymbol.into_param().abi(), comparisonflags, &mut result__).from_abi(result__)
}
pub unsafe fn GetLocationKind(&self) -> ::windows_core::Result<LocationKind> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetLocationKind)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetOffset(&self) -> ::windows_core::Result<u64> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetOffset)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetLocation(&self) -> ::windows_core::Result<Location> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetLocation)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub unsafe fn GetValue(&self) -> ::windows_core::Result<super::super::super::Variant::VARIANT> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetValue)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
}
::windows_core::imp::interface_hierarchy!(IDebugHostField, ::windows_core::IUnknown, IDebugHostSymbol);
unsafe impl ::windows_core::Interface for IDebugHostField {
type Vtable = IDebugHostField_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IDebugHostField {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0xe06f6495_16bc_4cc9_b11d_2a6b23fa72f3);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugHostField_Vtbl {
pub base__: IDebugHostSymbol_Vtbl,
pub GetLocationKind: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, locationkind: *mut LocationKind) -> ::windows_core::HRESULT,
pub GetOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows_core::HRESULT,
pub GetLocation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, location: *mut Location) -> ::windows_core::HRESULT,
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub GetValue: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: *mut super::super::super::Variant::VARIANT) -> ::windows_core::HRESULT,
#[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant")))]
GetValue: usize,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IDebugHostMemory(::windows_core::IUnknown);
impl IDebugHostMemory {
pub unsafe fn ReadBytes<P0>(&self, context: P0, location: Location, buffer: *mut ::core::ffi::c_void, buffersize: u64, bytesread: ::core::option::Option<*mut u64>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IDebugHostContext>,
{
(::windows_core::Interface::vtable(self).ReadBytes)(::windows_core::Interface::as_raw(self), context.into_param().abi(), ::core::mem::transmute(location), buffer, buffersize, ::core::mem::transmute(bytesread.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn WriteBytes<P0>(&self, context: P0, location: Location, buffer: *const ::core::ffi::c_void, buffersize: u64, byteswritten: ::core::option::Option<*mut u64>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IDebugHostContext>,
{
(::windows_core::Interface::vtable(self).WriteBytes)(::windows_core::Interface::as_raw(self), context.into_param().abi(), ::core::mem::transmute(location), buffer, buffersize, ::core::mem::transmute(byteswritten.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn ReadPointers<P0>(&self, context: P0, location: Location, pointers: &mut [u64]) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IDebugHostContext>,
{
(::windows_core::Interface::vtable(self).ReadPointers)(::windows_core::Interface::as_raw(self), context.into_param().abi(), ::core::mem::transmute(location), pointers.len().try_into().unwrap(), ::core::mem::transmute(pointers.as_ptr())).ok()
}
pub unsafe fn WritePointers<P0>(&self, context: P0, location: Location, pointers: &[u64]) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IDebugHostContext>,
{
(::windows_core::Interface::vtable(self).WritePointers)(::windows_core::Interface::as_raw(self), context.into_param().abi(), ::core::mem::transmute(location), pointers.len().try_into().unwrap(), ::core::mem::transmute(pointers.as_ptr())).ok()
}
pub unsafe fn GetDisplayStringForLocation<P0>(&self, context: P0, location: Location, verbose: u8) -> ::windows_core::Result<::windows_core::BSTR>
where
P0: ::windows_core::IntoParam<IDebugHostContext>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetDisplayStringForLocation)(::windows_core::Interface::as_raw(self), context.into_param().abi(), ::core::mem::transmute(location), verbose, &mut result__).from_abi(result__)
}
}
::windows_core::imp::interface_hierarchy!(IDebugHostMemory, ::windows_core::IUnknown);
unsafe impl ::windows_core::Interface for IDebugHostMemory {
type Vtable = IDebugHostMemory_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IDebugHostMemory {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0x212149c9_9183_4a3e_b00e_4fd1dc95339b);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugHostMemory_Vtbl {
pub base__: ::windows_core::IUnknown_Vtbl,
pub ReadBytes: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, context: *mut ::core::ffi::c_void, location: Location, buffer: *mut ::core::ffi::c_void, buffersize: u64, bytesread: *mut u64) -> ::windows_core::HRESULT,
pub WriteBytes: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, context: *mut ::core::ffi::c_void, location: Location, buffer: *const ::core::ffi::c_void, buffersize: u64, byteswritten: *mut u64) -> ::windows_core::HRESULT,
pub ReadPointers: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, context: *mut ::core::ffi::c_void, location: Location, count: u64, pointers: *mut u64) -> ::windows_core::HRESULT,
pub WritePointers: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, context: *mut ::core::ffi::c_void, location: Location, count: u64, pointers: *const u64) -> ::windows_core::HRESULT,
pub GetDisplayStringForLocation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, context: *mut ::core::ffi::c_void, location: Location, verbose: u8, locationname: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IDebugHostMemory2(::windows_core::IUnknown);
impl IDebugHostMemory2 {
pub unsafe fn ReadBytes<P0>(&self, context: P0, location: Location, buffer: *mut ::core::ffi::c_void, buffersize: u64, bytesread: ::core::option::Option<*mut u64>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IDebugHostContext>,
{
(::windows_core::Interface::vtable(self).base__.ReadBytes)(::windows_core::Interface::as_raw(self), context.into_param().abi(), ::core::mem::transmute(location), buffer, buffersize, ::core::mem::transmute(bytesread.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn WriteBytes<P0>(&self, context: P0, location: Location, buffer: *const ::core::ffi::c_void, buffersize: u64, byteswritten: ::core::option::Option<*mut u64>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IDebugHostContext>,
{
(::windows_core::Interface::vtable(self).base__.WriteBytes)(::windows_core::Interface::as_raw(self), context.into_param().abi(), ::core::mem::transmute(location), buffer, buffersize, ::core::mem::transmute(byteswritten.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn ReadPointers<P0>(&self, context: P0, location: Location, pointers: &mut [u64]) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IDebugHostContext>,
{
(::windows_core::Interface::vtable(self).base__.ReadPointers)(::windows_core::Interface::as_raw(self), context.into_param().abi(), ::core::mem::transmute(location), pointers.len().try_into().unwrap(), ::core::mem::transmute(pointers.as_ptr())).ok()
}
pub unsafe fn WritePointers<P0>(&self, context: P0, location: Location, pointers: &[u64]) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IDebugHostContext>,
{
(::windows_core::Interface::vtable(self).base__.WritePointers)(::windows_core::Interface::as_raw(self), context.into_param().abi(), ::core::mem::transmute(location), pointers.len().try_into().unwrap(), ::core::mem::transmute(pointers.as_ptr())).ok()
}
pub unsafe fn GetDisplayStringForLocation<P0>(&self, context: P0, location: Location, verbose: u8) -> ::windows_core::Result<::windows_core::BSTR>
where
P0: ::windows_core::IntoParam<IDebugHostContext>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.GetDisplayStringForLocation)(::windows_core::Interface::as_raw(self), context.into_param().abi(), ::core::mem::transmute(location), verbose, &mut result__).from_abi(result__)
}
pub unsafe fn LinearizeLocation<P0>(&self, context: P0, location: Location) -> ::windows_core::Result<Location>
where
P0: ::windows_core::IntoParam<IDebugHostContext>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).LinearizeLocation)(::windows_core::Interface::as_raw(self), context.into_param().abi(), ::core::mem::transmute(location), &mut result__).from_abi(result__)
}
}
::windows_core::imp::interface_hierarchy!(IDebugHostMemory2, ::windows_core::IUnknown, IDebugHostMemory);
unsafe impl ::windows_core::Interface for IDebugHostMemory2 {
type Vtable = IDebugHostMemory2_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IDebugHostMemory2 {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0xeea033de_38f6_416b_a251_1d3771001270);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugHostMemory2_Vtbl {
pub base__: IDebugHostMemory_Vtbl,
pub LinearizeLocation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, context: *mut ::core::ffi::c_void, location: Location, plinearizedlocation: *mut Location) -> ::windows_core::HRESULT,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IDebugHostModule(::windows_core::IUnknown);
impl IDebugHostModule {
pub unsafe fn GetContext(&self) -> ::windows_core::Result<IDebugHostContext> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.GetContext)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn EnumerateChildren<P0>(&self, kind: SymbolKind, name: P0) -> ::windows_core::Result<IDebugHostSymbolEnumerator>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.EnumerateChildren)(::windows_core::Interface::as_raw(self), kind, name.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn GetSymbolKind(&self) -> ::windows_core::Result<SymbolKind> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.GetSymbolKind)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetName(&self) -> ::windows_core::Result<::windows_core::BSTR> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.GetName)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetType(&self) -> ::windows_core::Result<IDebugHostType> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.GetType)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetContainingModule(&self) -> ::windows_core::Result<IDebugHostModule> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.GetContainingModule)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn CompareAgainst<P0>(&self, pcomparisonsymbol: P0, comparisonflags: u32) -> ::windows_core::Result<bool>
where
P0: ::windows_core::IntoParam<IDebugHostSymbol>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.CompareAgainst)(::windows_core::Interface::as_raw(self), pcomparisonsymbol.into_param().abi(), comparisonflags, &mut result__).from_abi(result__)
}
pub unsafe fn GetImageName(&self, allowpath: u8) -> ::windows_core::Result<::windows_core::BSTR> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetImageName)(::windows_core::Interface::as_raw(self), allowpath, &mut result__).from_abi(result__)
}
pub unsafe fn GetBaseLocation(&self) -> ::windows_core::Result<Location> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetBaseLocation)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetVersion(&self, fileversion: ::core::option::Option<*mut u64>, productversion: ::core::option::Option<*mut u64>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetVersion)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(fileversion.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(productversion.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn FindTypeByName<P0>(&self, typename: P0) -> ::windows_core::Result<IDebugHostType>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).FindTypeByName)(::windows_core::Interface::as_raw(self), typename.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn FindSymbolByRVA(&self, rva: u64) -> ::windows_core::Result<IDebugHostSymbol> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).FindSymbolByRVA)(::windows_core::Interface::as_raw(self), rva, &mut result__).from_abi(result__)
}
pub unsafe fn FindSymbolByName<P0>(&self, symbolname: P0) -> ::windows_core::Result<IDebugHostSymbol>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).FindSymbolByName)(::windows_core::Interface::as_raw(self), symbolname.into_param().abi(), &mut result__).from_abi(result__)
}
}
::windows_core::imp::interface_hierarchy!(IDebugHostModule, ::windows_core::IUnknown, IDebugHostSymbol);
unsafe impl ::windows_core::Interface for IDebugHostModule {
type Vtable = IDebugHostModule_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IDebugHostModule {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0xc9ba3e18_d070_4378_bbd0_34613b346e1e);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugHostModule_Vtbl {
pub base__: IDebugHostSymbol_Vtbl,
pub GetImageName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, allowpath: u8, imagename: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT,
pub GetBaseLocation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, modulebaselocation: *mut Location) -> ::windows_core::HRESULT,
pub GetVersion: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, fileversion: *mut u64, productversion: *mut u64) -> ::windows_core::HRESULT,
pub FindTypeByName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, typename: ::windows_core::PCWSTR, r#type: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub FindSymbolByRVA: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, rva: u64, symbol: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub FindSymbolByName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, symbolname: ::windows_core::PCWSTR, symbol: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IDebugHostModule2(::windows_core::IUnknown);
impl IDebugHostModule2 {
pub unsafe fn GetContext(&self) -> ::windows_core::Result<IDebugHostContext> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.base__.GetContext)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn EnumerateChildren<P0>(&self, kind: SymbolKind, name: P0) -> ::windows_core::Result<IDebugHostSymbolEnumerator>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.base__.EnumerateChildren)(::windows_core::Interface::as_raw(self), kind, name.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn GetSymbolKind(&self) -> ::windows_core::Result<SymbolKind> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.base__.GetSymbolKind)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetName(&self) -> ::windows_core::Result<::windows_core::BSTR> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.base__.GetName)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetType(&self) -> ::windows_core::Result<IDebugHostType> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.base__.GetType)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetContainingModule(&self) -> ::windows_core::Result<IDebugHostModule> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.base__.GetContainingModule)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn CompareAgainst<P0>(&self, pcomparisonsymbol: P0, comparisonflags: u32) -> ::windows_core::Result<bool>
where
P0: ::windows_core::IntoParam<IDebugHostSymbol>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.base__.CompareAgainst)(::windows_core::Interface::as_raw(self), pcomparisonsymbol.into_param().abi(), comparisonflags, &mut result__).from_abi(result__)
}
pub unsafe fn GetImageName(&self, allowpath: u8) -> ::windows_core::Result<::windows_core::BSTR> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.GetImageName)(::windows_core::Interface::as_raw(self), allowpath, &mut result__).from_abi(result__)
}
pub unsafe fn GetBaseLocation(&self) -> ::windows_core::Result<Location> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.GetBaseLocation)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetVersion(&self, fileversion: ::core::option::Option<*mut u64>, productversion: ::core::option::Option<*mut u64>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).base__.GetVersion)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(fileversion.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(productversion.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn FindTypeByName<P0>(&self, typename: P0) -> ::windows_core::Result<IDebugHostType>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.FindTypeByName)(::windows_core::Interface::as_raw(self), typename.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn FindSymbolByRVA(&self, rva: u64) -> ::windows_core::Result<IDebugHostSymbol> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.FindSymbolByRVA)(::windows_core::Interface::as_raw(self), rva, &mut result__).from_abi(result__)
}
pub unsafe fn FindSymbolByName<P0>(&self, symbolname: P0) -> ::windows_core::Result<IDebugHostSymbol>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.FindSymbolByName)(::windows_core::Interface::as_raw(self), symbolname.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn FindContainingSymbolByRVA(&self, rva: u64, symbol: *mut ::core::option::Option<IDebugHostSymbol>, offset: *mut u64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).FindContainingSymbolByRVA)(::windows_core::Interface::as_raw(self), rva, ::core::mem::transmute(symbol), offset).ok()
}
}
::windows_core::imp::interface_hierarchy!(IDebugHostModule2, ::windows_core::IUnknown, IDebugHostSymbol, IDebugHostModule);
unsafe impl ::windows_core::Interface for IDebugHostModule2 {
type Vtable = IDebugHostModule2_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IDebugHostModule2 {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0xb51887e8_bcd0_4e8f_a8c7_434398b78c37);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugHostModule2_Vtbl {
pub base__: IDebugHostModule_Vtbl,
pub FindContainingSymbolByRVA: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, rva: u64, symbol: *mut *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows_core::HRESULT,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IDebugHostModuleSignature(::windows_core::IUnknown);
impl IDebugHostModuleSignature {
pub unsafe fn IsMatch<P0>(&self, pmodule: P0) -> ::windows_core::Result<bool>
where
P0: ::windows_core::IntoParam<IDebugHostModule>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).IsMatch)(::windows_core::Interface::as_raw(self), pmodule.into_param().abi(), &mut result__).from_abi(result__)
}
}
::windows_core::imp::interface_hierarchy!(IDebugHostModuleSignature, ::windows_core::IUnknown);
unsafe impl ::windows_core::Interface for IDebugHostModuleSignature {
type Vtable = IDebugHostModuleSignature_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IDebugHostModuleSignature {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0x31e53a5a_01ee_4bbb_b899_4b46ae7d595c);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugHostModuleSignature_Vtbl {
pub base__: ::windows_core::IUnknown_Vtbl,
pub IsMatch: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pmodule: *mut ::core::ffi::c_void, ismatch: *mut bool) -> ::windows_core::HRESULT,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IDebugHostPublic(::windows_core::IUnknown);
impl IDebugHostPublic {
pub unsafe fn GetContext(&self) -> ::windows_core::Result<IDebugHostContext> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.GetContext)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn EnumerateChildren<P0>(&self, kind: SymbolKind, name: P0) -> ::windows_core::Result<IDebugHostSymbolEnumerator>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.EnumerateChildren)(::windows_core::Interface::as_raw(self), kind, name.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn GetSymbolKind(&self) -> ::windows_core::Result<SymbolKind> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.GetSymbolKind)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetName(&self) -> ::windows_core::Result<::windows_core::BSTR> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.GetName)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetType(&self) -> ::windows_core::Result<IDebugHostType> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.GetType)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetContainingModule(&self) -> ::windows_core::Result<IDebugHostModule> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.GetContainingModule)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn CompareAgainst<P0>(&self, pcomparisonsymbol: P0, comparisonflags: u32) -> ::windows_core::Result<bool>
where
P0: ::windows_core::IntoParam<IDebugHostSymbol>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.CompareAgainst)(::windows_core::Interface::as_raw(self), pcomparisonsymbol.into_param().abi(), comparisonflags, &mut result__).from_abi(result__)
}
pub unsafe fn GetLocationKind(&self) -> ::windows_core::Result<LocationKind> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetLocationKind)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetLocation(&self) -> ::windows_core::Result<Location> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetLocation)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
}
::windows_core::imp::interface_hierarchy!(IDebugHostPublic, ::windows_core::IUnknown, IDebugHostSymbol);
unsafe impl ::windows_core::Interface for IDebugHostPublic {
type Vtable = IDebugHostPublic_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IDebugHostPublic {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0x6c597ac9_fb4d_4f6d_9f39_22488539f8f4);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugHostPublic_Vtbl {
pub base__: IDebugHostSymbol_Vtbl,
pub GetLocationKind: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, locationkind: *mut LocationKind) -> ::windows_core::HRESULT,
pub GetLocation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, location: *mut Location) -> ::windows_core::HRESULT,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IDebugHostScriptHost(::windows_core::IUnknown);
impl IDebugHostScriptHost {
pub unsafe fn CreateContext<P0>(&self, script: P0) -> ::windows_core::Result<IDataModelScriptHostContext>
where
P0: ::windows_core::IntoParam<IDataModelScript>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).CreateContext)(::windows_core::Interface::as_raw(self), script.into_param().abi(), &mut result__).from_abi(result__)
}
}
::windows_core::imp::interface_hierarchy!(IDebugHostScriptHost, ::windows_core::IUnknown);
unsafe impl ::windows_core::Interface for IDebugHostScriptHost {
type Vtable = IDebugHostScriptHost_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IDebugHostScriptHost {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0xb70334a4_b92c_4570_93a1_d3eb686649a0);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugHostScriptHost_Vtbl {
pub base__: ::windows_core::IUnknown_Vtbl,
pub CreateContext: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, script: *mut ::core::ffi::c_void, scriptcontext: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IDebugHostStatus(::windows_core::IUnknown);
impl IDebugHostStatus {
pub unsafe fn PollUserInterrupt(&self) -> ::windows_core::Result<bool> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).PollUserInterrupt)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
}
::windows_core::imp::interface_hierarchy!(IDebugHostStatus, ::windows_core::IUnknown);
unsafe impl ::windows_core::Interface for IDebugHostStatus {
type Vtable = IDebugHostStatus_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IDebugHostStatus {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0x4f3e1ce2_86b2_4c7a_9c65_d0a9d0eecf44);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugHostStatus_Vtbl {
pub base__: ::windows_core::IUnknown_Vtbl,
pub PollUserInterrupt: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, interruptrequested: *mut bool) -> ::windows_core::HRESULT,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IDebugHostSymbol(::windows_core::IUnknown);
impl IDebugHostSymbol {
pub unsafe fn GetContext(&self) -> ::windows_core::Result<IDebugHostContext> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetContext)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn EnumerateChildren<P0>(&self, kind: SymbolKind, name: P0) -> ::windows_core::Result<IDebugHostSymbolEnumerator>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).EnumerateChildren)(::windows_core::Interface::as_raw(self), kind, name.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn GetSymbolKind(&self) -> ::windows_core::Result<SymbolKind> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetSymbolKind)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetName(&self) -> ::windows_core::Result<::windows_core::BSTR> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetName)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetType(&self) -> ::windows_core::Result<IDebugHostType> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetType)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetContainingModule(&self) -> ::windows_core::Result<IDebugHostModule> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetContainingModule)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn CompareAgainst<P0>(&self, pcomparisonsymbol: P0, comparisonflags: u32) -> ::windows_core::Result<bool>
where
P0: ::windows_core::IntoParam<IDebugHostSymbol>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).CompareAgainst)(::windows_core::Interface::as_raw(self), pcomparisonsymbol.into_param().abi(), comparisonflags, &mut result__).from_abi(result__)
}
}
::windows_core::imp::interface_hierarchy!(IDebugHostSymbol, ::windows_core::IUnknown);
unsafe impl ::windows_core::Interface for IDebugHostSymbol {
type Vtable = IDebugHostSymbol_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IDebugHostSymbol {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0x0f819103_87de_4e96_8277_e05cd441fb22);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugHostSymbol_Vtbl {
pub base__: ::windows_core::IUnknown_Vtbl,
pub GetContext: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, context: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub EnumerateChildren: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, kind: SymbolKind, name: ::windows_core::PCWSTR, ppenum: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub GetSymbolKind: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, kind: *mut SymbolKind) -> ::windows_core::HRESULT,
pub GetName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, symbolname: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT,
pub GetType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub GetContainingModule: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, containingmodule: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub CompareAgainst: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pcomparisonsymbol: *mut ::core::ffi::c_void, comparisonflags: u32, pmatches: *mut bool) -> ::windows_core::HRESULT,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IDebugHostSymbol2(::windows_core::IUnknown);
impl IDebugHostSymbol2 {
pub unsafe fn GetContext(&self) -> ::windows_core::Result<IDebugHostContext> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.GetContext)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn EnumerateChildren<P0>(&self, kind: SymbolKind, name: P0) -> ::windows_core::Result<IDebugHostSymbolEnumerator>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.EnumerateChildren)(::windows_core::Interface::as_raw(self), kind, name.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn GetSymbolKind(&self) -> ::windows_core::Result<SymbolKind> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.GetSymbolKind)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetName(&self) -> ::windows_core::Result<::windows_core::BSTR> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.GetName)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetType(&self) -> ::windows_core::Result<IDebugHostType> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.GetType)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetContainingModule(&self) -> ::windows_core::Result<IDebugHostModule> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.GetContainingModule)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn CompareAgainst<P0>(&self, pcomparisonsymbol: P0, comparisonflags: u32) -> ::windows_core::Result<bool>
where
P0: ::windows_core::IntoParam<IDebugHostSymbol>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.CompareAgainst)(::windows_core::Interface::as_raw(self), pcomparisonsymbol.into_param().abi(), comparisonflags, &mut result__).from_abi(result__)
}
pub unsafe fn GetLanguage(&self) -> ::windows_core::Result<LanguageKind> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetLanguage)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
}
::windows_core::imp::interface_hierarchy!(IDebugHostSymbol2, ::windows_core::IUnknown, IDebugHostSymbol);
unsafe impl ::windows_core::Interface for IDebugHostSymbol2 {
type Vtable = IDebugHostSymbol2_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IDebugHostSymbol2 {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0x21515b67_6720_4257_8a68_077dc944471c);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugHostSymbol2_Vtbl {
pub base__: IDebugHostSymbol_Vtbl,
pub GetLanguage: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pkind: *mut LanguageKind) -> ::windows_core::HRESULT,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IDebugHostSymbolEnumerator(::windows_core::IUnknown);
impl IDebugHostSymbolEnumerator {
pub unsafe fn Reset(&self) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).Reset)(::windows_core::Interface::as_raw(self)).ok()
}
pub unsafe fn GetNext(&self) -> ::windows_core::Result<IDebugHostSymbol> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetNext)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
}
::windows_core::imp::interface_hierarchy!(IDebugHostSymbolEnumerator, ::windows_core::IUnknown);
unsafe impl ::windows_core::Interface for IDebugHostSymbolEnumerator {
type Vtable = IDebugHostSymbolEnumerator_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IDebugHostSymbolEnumerator {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0x28d96c86_10a3_4976_b14e_eaef4790aa1f);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugHostSymbolEnumerator_Vtbl {
pub base__: ::windows_core::IUnknown_Vtbl,
pub Reset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub GetNext: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, symbol: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IDebugHostSymbols(::windows_core::IUnknown);
impl IDebugHostSymbols {
pub unsafe fn CreateModuleSignature<P0, P1, P2>(&self, pwszmodulename: P0, pwszminversion: P1, pwszmaxversion: P2) -> ::windows_core::Result<IDebugHostModuleSignature>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
P1: ::windows_core::IntoParam<::windows_core::PCWSTR>,
P2: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).CreateModuleSignature)(::windows_core::Interface::as_raw(self), pwszmodulename.into_param().abi(), pwszminversion.into_param().abi(), pwszmaxversion.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn CreateTypeSignature<P0, P1>(&self, signaturespecification: P0, module: P1) -> ::windows_core::Result<IDebugHostTypeSignature>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
P1: ::windows_core::IntoParam<IDebugHostModule>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).CreateTypeSignature)(::windows_core::Interface::as_raw(self), signaturespecification.into_param().abi(), module.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn CreateTypeSignatureForModuleRange<P0, P1, P2, P3>(&self, signaturespecification: P0, modulename: P1, minversion: P2, maxversion: P3) -> ::windows_core::Result<IDebugHostTypeSignature>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
P1: ::windows_core::IntoParam<::windows_core::PCWSTR>,
P2: ::windows_core::IntoParam<::windows_core::PCWSTR>,
P3: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).CreateTypeSignatureForModuleRange)(::windows_core::Interface::as_raw(self), signaturespecification.into_param().abi(), modulename.into_param().abi(), minversion.into_param().abi(), maxversion.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn EnumerateModules<P0>(&self, context: P0) -> ::windows_core::Result<IDebugHostSymbolEnumerator>
where
P0: ::windows_core::IntoParam<IDebugHostContext>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).EnumerateModules)(::windows_core::Interface::as_raw(self), context.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn FindModuleByName<P0, P1>(&self, context: P0, modulename: P1) -> ::windows_core::Result<IDebugHostModule>
where
P0: ::windows_core::IntoParam<IDebugHostContext>,
P1: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).FindModuleByName)(::windows_core::Interface::as_raw(self), context.into_param().abi(), modulename.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn FindModuleByLocation<P0>(&self, context: P0, modulelocation: Location) -> ::windows_core::Result<IDebugHostModule>
where
P0: ::windows_core::IntoParam<IDebugHostContext>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).FindModuleByLocation)(::windows_core::Interface::as_raw(self), context.into_param().abi(), ::core::mem::transmute(modulelocation), &mut result__).from_abi(result__)
}
pub unsafe fn GetMostDerivedObject<P0, P1>(&self, pcontext: P0, location: Location, objecttype: P1, derivedlocation: *mut Location, derivedtype: *mut ::core::option::Option<IDebugHostType>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IDebugHostContext>,
P1: ::windows_core::IntoParam<IDebugHostType>,
{
(::windows_core::Interface::vtable(self).GetMostDerivedObject)(::windows_core::Interface::as_raw(self), pcontext.into_param().abi(), ::core::mem::transmute(location), objecttype.into_param().abi(), derivedlocation, ::core::mem::transmute(derivedtype)).ok()
}
}
::windows_core::imp::interface_hierarchy!(IDebugHostSymbols, ::windows_core::IUnknown);
unsafe impl ::windows_core::Interface for IDebugHostSymbols {
type Vtable = IDebugHostSymbols_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IDebugHostSymbols {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0x854fd751_c2e1_4eb2_b525_6619cb97a588);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugHostSymbols_Vtbl {
pub base__: ::windows_core::IUnknown_Vtbl,
pub CreateModuleSignature: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pwszmodulename: ::windows_core::PCWSTR, pwszminversion: ::windows_core::PCWSTR, pwszmaxversion: ::windows_core::PCWSTR, ppmodulesignature: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub CreateTypeSignature: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, signaturespecification: ::windows_core::PCWSTR, module: *mut ::core::ffi::c_void, typesignature: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub CreateTypeSignatureForModuleRange: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, signaturespecification: ::windows_core::PCWSTR, modulename: ::windows_core::PCWSTR, minversion: ::windows_core::PCWSTR, maxversion: ::windows_core::PCWSTR, typesignature: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub EnumerateModules: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, context: *mut ::core::ffi::c_void, moduleenum: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub FindModuleByName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, context: *mut ::core::ffi::c_void, modulename: ::windows_core::PCWSTR, module: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub FindModuleByLocation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, context: *mut ::core::ffi::c_void, modulelocation: Location, module: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub GetMostDerivedObject: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pcontext: *mut ::core::ffi::c_void, location: Location, objecttype: *mut ::core::ffi::c_void, derivedlocation: *mut Location, derivedtype: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IDebugHostType(::windows_core::IUnknown);
impl IDebugHostType {
pub unsafe fn GetContext(&self) -> ::windows_core::Result<IDebugHostContext> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.GetContext)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn EnumerateChildren<P0>(&self, kind: SymbolKind, name: P0) -> ::windows_core::Result<IDebugHostSymbolEnumerator>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.EnumerateChildren)(::windows_core::Interface::as_raw(self), kind, name.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn GetSymbolKind(&self) -> ::windows_core::Result<SymbolKind> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.GetSymbolKind)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetName(&self) -> ::windows_core::Result<::windows_core::BSTR> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.GetName)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetType(&self) -> ::windows_core::Result<IDebugHostType> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.GetType)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetContainingModule(&self) -> ::windows_core::Result<IDebugHostModule> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.GetContainingModule)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn CompareAgainst<P0>(&self, pcomparisonsymbol: P0, comparisonflags: u32) -> ::windows_core::Result<bool>
where
P0: ::windows_core::IntoParam<IDebugHostSymbol>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.CompareAgainst)(::windows_core::Interface::as_raw(self), pcomparisonsymbol.into_param().abi(), comparisonflags, &mut result__).from_abi(result__)
}
pub unsafe fn GetTypeKind(&self) -> ::windows_core::Result<TypeKind> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetTypeKind)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetSize(&self) -> ::windows_core::Result<u64> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetSize)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetBaseType(&self) -> ::windows_core::Result<IDebugHostType> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetBaseType)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetHashCode(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetHashCode)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetIntrinsicType(&self, intrinsickind: ::core::option::Option<*mut IntrinsicKind>, carriertype: ::core::option::Option<*mut u16>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetIntrinsicType)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(intrinsickind.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(carriertype.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetBitField(&self, lsboffield: *mut u32, lengthoffield: *mut u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetBitField)(::windows_core::Interface::as_raw(self), lsboffield, lengthoffield).ok()
}
pub unsafe fn GetPointerKind(&self) -> ::windows_core::Result<PointerKind> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetPointerKind)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetMemberType(&self) -> ::windows_core::Result<IDebugHostType> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetMemberType)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn CreatePointerTo(&self, kind: PointerKind) -> ::windows_core::Result<IDebugHostType> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).CreatePointerTo)(::windows_core::Interface::as_raw(self), kind, &mut result__).from_abi(result__)
}
pub unsafe fn GetArrayDimensionality(&self) -> ::windows_core::Result<u64> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetArrayDimensionality)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetArrayDimensions(&self, pdimensions: &mut [ArrayDimension]) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetArrayDimensions)(::windows_core::Interface::as_raw(self), pdimensions.len().try_into().unwrap(), ::core::mem::transmute(pdimensions.as_ptr())).ok()
}
pub unsafe fn CreateArrayOf(&self, pdimensions: &[ArrayDimension]) -> ::windows_core::Result<IDebugHostType> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).CreateArrayOf)(::windows_core::Interface::as_raw(self), pdimensions.len().try_into().unwrap(), ::core::mem::transmute(pdimensions.as_ptr()), &mut result__).from_abi(result__)
}
pub unsafe fn GetFunctionCallingConvention(&self) -> ::windows_core::Result<CallingConventionKind> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetFunctionCallingConvention)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetFunctionReturnType(&self) -> ::windows_core::Result<IDebugHostType> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetFunctionReturnType)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetFunctionParameterTypeCount(&self) -> ::windows_core::Result<u64> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetFunctionParameterTypeCount)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetFunctionParameterTypeAt(&self, i: u64) -> ::windows_core::Result<IDebugHostType> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetFunctionParameterTypeAt)(::windows_core::Interface::as_raw(self), i, &mut result__).from_abi(result__)
}
pub unsafe fn IsGeneric(&self) -> ::windows_core::Result<bool> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).IsGeneric)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetGenericArgumentCount(&self) -> ::windows_core::Result<u64> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetGenericArgumentCount)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetGenericArgumentAt(&self, i: u64) -> ::windows_core::Result<IDebugHostSymbol> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetGenericArgumentAt)(::windows_core::Interface::as_raw(self), i, &mut result__).from_abi(result__)
}
}
::windows_core::imp::interface_hierarchy!(IDebugHostType, ::windows_core::IUnknown, IDebugHostSymbol);
unsafe impl ::windows_core::Interface for IDebugHostType {
type Vtable = IDebugHostType_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IDebugHostType {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0x3aadc353_2b14_4abb_9893_5e03458e07ee);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugHostType_Vtbl {
pub base__: IDebugHostSymbol_Vtbl,
pub GetTypeKind: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, kind: *mut TypeKind) -> ::windows_core::HRESULT,
pub GetSize: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, size: *mut u64) -> ::windows_core::HRESULT,
pub GetBaseType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, basetype: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub GetHashCode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, hashcode: *mut u32) -> ::windows_core::HRESULT,
pub GetIntrinsicType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, intrinsickind: *mut IntrinsicKind, carriertype: *mut u16) -> ::windows_core::HRESULT,
pub GetBitField: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, lsboffield: *mut u32, lengthoffield: *mut u32) -> ::windows_core::HRESULT,
pub GetPointerKind: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pointerkind: *mut PointerKind) -> ::windows_core::HRESULT,
pub GetMemberType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, membertype: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub CreatePointerTo: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, kind: PointerKind, newtype: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub GetArrayDimensionality: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, arraydimensionality: *mut u64) -> ::windows_core::HRESULT,
pub GetArrayDimensions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, dimensions: u64, pdimensions: *mut ArrayDimension) -> ::windows_core::HRESULT,
pub CreateArrayOf: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, dimensions: u64, pdimensions: *const ArrayDimension, newtype: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub GetFunctionCallingConvention: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, conventionkind: *mut CallingConventionKind) -> ::windows_core::HRESULT,
pub GetFunctionReturnType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, returntype: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub GetFunctionParameterTypeCount: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: *mut u64) -> ::windows_core::HRESULT,
pub GetFunctionParameterTypeAt: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, i: u64, parametertype: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub IsGeneric: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, isgeneric: *mut bool) -> ::windows_core::HRESULT,
pub GetGenericArgumentCount: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, argcount: *mut u64) -> ::windows_core::HRESULT,
pub GetGenericArgumentAt: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, i: u64, argument: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IDebugHostType2(::windows_core::IUnknown);
impl IDebugHostType2 {
pub unsafe fn GetContext(&self) -> ::windows_core::Result<IDebugHostContext> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.base__.GetContext)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn EnumerateChildren<P0>(&self, kind: SymbolKind, name: P0) -> ::windows_core::Result<IDebugHostSymbolEnumerator>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.base__.EnumerateChildren)(::windows_core::Interface::as_raw(self), kind, name.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn GetSymbolKind(&self) -> ::windows_core::Result<SymbolKind> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.base__.GetSymbolKind)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetName(&self) -> ::windows_core::Result<::windows_core::BSTR> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.base__.GetName)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetType(&self) -> ::windows_core::Result<IDebugHostType> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.base__.GetType)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetContainingModule(&self) -> ::windows_core::Result<IDebugHostModule> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.base__.GetContainingModule)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn CompareAgainst<P0>(&self, pcomparisonsymbol: P0, comparisonflags: u32) -> ::windows_core::Result<bool>
where
P0: ::windows_core::IntoParam<IDebugHostSymbol>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.base__.CompareAgainst)(::windows_core::Interface::as_raw(self), pcomparisonsymbol.into_param().abi(), comparisonflags, &mut result__).from_abi(result__)
}
pub unsafe fn GetTypeKind(&self) -> ::windows_core::Result<TypeKind> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.GetTypeKind)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetSize(&self) -> ::windows_core::Result<u64> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.GetSize)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetBaseType(&self) -> ::windows_core::Result<IDebugHostType> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.GetBaseType)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetHashCode(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.GetHashCode)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetIntrinsicType(&self, intrinsickind: ::core::option::Option<*mut IntrinsicKind>, carriertype: ::core::option::Option<*mut u16>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).base__.GetIntrinsicType)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(intrinsickind.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(carriertype.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetBitField(&self, lsboffield: *mut u32, lengthoffield: *mut u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).base__.GetBitField)(::windows_core::Interface::as_raw(self), lsboffield, lengthoffield).ok()
}
pub unsafe fn GetPointerKind(&self) -> ::windows_core::Result<PointerKind> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.GetPointerKind)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetMemberType(&self) -> ::windows_core::Result<IDebugHostType> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.GetMemberType)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn CreatePointerTo(&self, kind: PointerKind) -> ::windows_core::Result<IDebugHostType> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.CreatePointerTo)(::windows_core::Interface::as_raw(self), kind, &mut result__).from_abi(result__)
}
pub unsafe fn GetArrayDimensionality(&self) -> ::windows_core::Result<u64> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.GetArrayDimensionality)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetArrayDimensions(&self, pdimensions: &mut [ArrayDimension]) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).base__.GetArrayDimensions)(::windows_core::Interface::as_raw(self), pdimensions.len().try_into().unwrap(), ::core::mem::transmute(pdimensions.as_ptr())).ok()
}
pub unsafe fn CreateArrayOf(&self, pdimensions: &[ArrayDimension]) -> ::windows_core::Result<IDebugHostType> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.CreateArrayOf)(::windows_core::Interface::as_raw(self), pdimensions.len().try_into().unwrap(), ::core::mem::transmute(pdimensions.as_ptr()), &mut result__).from_abi(result__)
}
pub unsafe fn GetFunctionCallingConvention(&self) -> ::windows_core::Result<CallingConventionKind> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.GetFunctionCallingConvention)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetFunctionReturnType(&self) -> ::windows_core::Result<IDebugHostType> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.GetFunctionReturnType)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetFunctionParameterTypeCount(&self) -> ::windows_core::Result<u64> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.GetFunctionParameterTypeCount)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetFunctionParameterTypeAt(&self, i: u64) -> ::windows_core::Result<IDebugHostType> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.GetFunctionParameterTypeAt)(::windows_core::Interface::as_raw(self), i, &mut result__).from_abi(result__)
}
pub unsafe fn IsGeneric(&self) -> ::windows_core::Result<bool> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.IsGeneric)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetGenericArgumentCount(&self) -> ::windows_core::Result<u64> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.GetGenericArgumentCount)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetGenericArgumentAt(&self, i: u64) -> ::windows_core::Result<IDebugHostSymbol> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.GetGenericArgumentAt)(::windows_core::Interface::as_raw(self), i, &mut result__).from_abi(result__)
}
pub unsafe fn IsTypedef(&self) -> ::windows_core::Result<bool> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).IsTypedef)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetTypedefBaseType(&self) -> ::windows_core::Result<IDebugHostType2> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetTypedefBaseType)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetTypedefFinalBaseType(&self) -> ::windows_core::Result<IDebugHostType2> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetTypedefFinalBaseType)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetFunctionVarArgsKind(&self) -> ::windows_core::Result<VarArgsKind> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetFunctionVarArgsKind)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetFunctionInstancePointerType(&self) -> ::windows_core::Result<IDebugHostType2> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetFunctionInstancePointerType)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
}
::windows_core::imp::interface_hierarchy!(IDebugHostType2, ::windows_core::IUnknown, IDebugHostSymbol, IDebugHostType);
unsafe impl ::windows_core::Interface for IDebugHostType2 {
type Vtable = IDebugHostType2_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IDebugHostType2 {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0xb28632b9_8506_4676_87ce_8f7e05e59876);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugHostType2_Vtbl {
pub base__: IDebugHostType_Vtbl,
pub IsTypedef: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, istypedef: *mut bool) -> ::windows_core::HRESULT,
pub GetTypedefBaseType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, basetype: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub GetTypedefFinalBaseType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, finalbasetype: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub GetFunctionVarArgsKind: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, varargskind: *mut VarArgsKind) -> ::windows_core::HRESULT,
pub GetFunctionInstancePointerType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, instancepointertype: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IDebugHostTypeSignature(::windows_core::IUnknown);
impl IDebugHostTypeSignature {
pub unsafe fn GetHashCode(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetHashCode)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn IsMatch<P0>(&self, r#type: P0, ismatch: *mut bool, wildcardmatches: ::core::option::Option<*mut ::core::option::Option<IDebugHostSymbolEnumerator>>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IDebugHostType>,
{
(::windows_core::Interface::vtable(self).IsMatch)(::windows_core::Interface::as_raw(self), r#type.into_param().abi(), ismatch, ::core::mem::transmute(wildcardmatches.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn CompareAgainst<P0>(&self, typesignature: P0) -> ::windows_core::Result<SignatureComparison>
where
P0: ::windows_core::IntoParam<IDebugHostTypeSignature>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).CompareAgainst)(::windows_core::Interface::as_raw(self), typesignature.into_param().abi(), &mut result__).from_abi(result__)
}
}
::windows_core::imp::interface_hierarchy!(IDebugHostTypeSignature, ::windows_core::IUnknown);
unsafe impl ::windows_core::Interface for IDebugHostTypeSignature {
type Vtable = IDebugHostTypeSignature_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IDebugHostTypeSignature {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0x3aadc353_2b14_4abb_9893_5e03458e07ee);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugHostTypeSignature_Vtbl {
pub base__: ::windows_core::IUnknown_Vtbl,
pub GetHashCode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, hashcode: *mut u32) -> ::windows_core::HRESULT,
pub IsMatch: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: *mut ::core::ffi::c_void, ismatch: *mut bool, wildcardmatches: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub CompareAgainst: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, typesignature: *mut ::core::ffi::c_void, result: *mut SignatureComparison) -> ::windows_core::HRESULT,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IDebugInputCallbacks(::windows_core::IUnknown);
impl IDebugInputCallbacks {
pub unsafe fn StartInput(&self, buffersize: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).StartInput)(::windows_core::Interface::as_raw(self), buffersize).ok()
}
pub unsafe fn EndInput(&self) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).EndInput)(::windows_core::Interface::as_raw(self)).ok()
}
}
::windows_core::imp::interface_hierarchy!(IDebugInputCallbacks, ::windows_core::IUnknown);
unsafe impl ::windows_core::Interface for IDebugInputCallbacks {
type Vtable = IDebugInputCallbacks_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IDebugInputCallbacks {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0x9f50e42c_f136_499e_9a97_73036c94ed2d);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugInputCallbacks_Vtbl {
pub base__: ::windows_core::IUnknown_Vtbl,
pub StartInput: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffersize: u32) -> ::windows_core::HRESULT,
pub EndInput: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IDebugOutputCallbacks(::windows_core::IUnknown);
impl IDebugOutputCallbacks {
pub unsafe fn Output<P0>(&self, mask: u32, text: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).Output)(::windows_core::Interface::as_raw(self), mask, text.into_param().abi()).ok()
}
}
::windows_core::imp::interface_hierarchy!(IDebugOutputCallbacks, ::windows_core::IUnknown);
unsafe impl ::windows_core::Interface for IDebugOutputCallbacks {
type Vtable = IDebugOutputCallbacks_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IDebugOutputCallbacks {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0x4bf58045_d654_4c40_b0af_683090f356dc);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugOutputCallbacks_Vtbl {
pub base__: ::windows_core::IUnknown_Vtbl,
pub Output: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: u32, text: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IDebugOutputCallbacks2(::windows_core::IUnknown);
impl IDebugOutputCallbacks2 {
pub unsafe fn Output<P0>(&self, mask: u32, text: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).Output)(::windows_core::Interface::as_raw(self), mask, text.into_param().abi()).ok()
}
pub unsafe fn GetInterestMask(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetInterestMask)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn Output2<P0>(&self, which: u32, flags: u32, arg: u64, text: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).Output2)(::windows_core::Interface::as_raw(self), which, flags, arg, text.into_param().abi()).ok()
}
}
::windows_core::imp::interface_hierarchy!(IDebugOutputCallbacks2, ::windows_core::IUnknown);
unsafe impl ::windows_core::Interface for IDebugOutputCallbacks2 {
type Vtable = IDebugOutputCallbacks2_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IDebugOutputCallbacks2 {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0x67721fe9_56d2_4a44_a325_2b65513ce6eb);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugOutputCallbacks2_Vtbl {
pub base__: ::windows_core::IUnknown_Vtbl,
pub Output: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: u32, text: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub GetInterestMask: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: *mut u32) -> ::windows_core::HRESULT,
pub Output2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, which: u32, flags: u32, arg: u64, text: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IDebugOutputCallbacksWide(::windows_core::IUnknown);
impl IDebugOutputCallbacksWide {
pub unsafe fn Output<P0>(&self, mask: u32, text: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).Output)(::windows_core::Interface::as_raw(self), mask, text.into_param().abi()).ok()
}
}
::windows_core::imp::interface_hierarchy!(IDebugOutputCallbacksWide, ::windows_core::IUnknown);
unsafe impl ::windows_core::Interface for IDebugOutputCallbacksWide {
type Vtable = IDebugOutputCallbacksWide_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IDebugOutputCallbacksWide {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0x4c7fd663_c394_4e26_8ef1_34ad5ed3764c);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugOutputCallbacksWide_Vtbl {
pub base__: ::windows_core::IUnknown_Vtbl,
pub Output: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: u32, text: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IDebugOutputStream(::windows_core::IUnknown);
impl IDebugOutputStream {
pub unsafe fn Write<P0>(&self, psz: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).Write)(::windows_core::Interface::as_raw(self), psz.into_param().abi()).ok()
}
}
::windows_core::imp::interface_hierarchy!(IDebugOutputStream, ::windows_core::IUnknown);
unsafe impl ::windows_core::Interface for IDebugOutputStream {
type Vtable = IDebugOutputStream_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IDebugOutputStream {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0x7782d8f2_2b85_4059_ab88_28ceddca1c80);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugOutputStream_Vtbl {
pub base__: ::windows_core::IUnknown_Vtbl,
pub Write: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, psz: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IDebugPlmClient(::windows_core::IUnknown);
impl IDebugPlmClient {
pub unsafe fn LaunchPlmPackageForDebugWide<P0, P1, P2>(&self, server: u64, timeout: u32, packagefullname: P0, appname: P1, arguments: P2, processid: *mut u32, threadid: *mut u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
P1: ::windows_core::IntoParam<::windows_core::PCWSTR>,
P2: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).LaunchPlmPackageForDebugWide)(::windows_core::Interface::as_raw(self), server, timeout, packagefullname.into_param().abi(), appname.into_param().abi(), arguments.into_param().abi(), processid, threadid).ok()
}
}
::windows_core::imp::interface_hierarchy!(IDebugPlmClient, ::windows_core::IUnknown);
unsafe impl ::windows_core::Interface for IDebugPlmClient {
type Vtable = IDebugPlmClient_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IDebugPlmClient {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0xa02b66c4_aea3_4234_a9f7_fe4c383d4e29);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugPlmClient_Vtbl {
pub base__: ::windows_core::IUnknown_Vtbl,
pub LaunchPlmPackageForDebugWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, timeout: u32, packagefullname: ::windows_core::PCWSTR, appname: ::windows_core::PCWSTR, arguments: ::windows_core::PCWSTR, processid: *mut u32, threadid: *mut u32) -> ::windows_core::HRESULT,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IDebugPlmClient2(::windows_core::IUnknown);
impl IDebugPlmClient2 {
pub unsafe fn LaunchPlmPackageForDebugWide<P0, P1, P2>(&self, server: u64, timeout: u32, packagefullname: P0, appname: P1, arguments: P2, processid: *mut u32, threadid: *mut u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
P1: ::windows_core::IntoParam<::windows_core::PCWSTR>,
P2: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).LaunchPlmPackageForDebugWide)(::windows_core::Interface::as_raw(self), server, timeout, packagefullname.into_param().abi(), appname.into_param().abi(), arguments.into_param().abi(), processid, threadid).ok()
}
pub unsafe fn LaunchPlmBgTaskForDebugWide<P0, P1>(&self, server: u64, timeout: u32, packagefullname: P0, backgroundtaskid: P1, processid: *mut u32, threadid: *mut u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
P1: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).LaunchPlmBgTaskForDebugWide)(::windows_core::Interface::as_raw(self), server, timeout, packagefullname.into_param().abi(), backgroundtaskid.into_param().abi(), processid, threadid).ok()
}
}
::windows_core::imp::interface_hierarchy!(IDebugPlmClient2, ::windows_core::IUnknown);
unsafe impl ::windows_core::Interface for IDebugPlmClient2 {
type Vtable = IDebugPlmClient2_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IDebugPlmClient2 {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0x597c980d_e7bd_4309_962c_9d9b69a7372c);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugPlmClient2_Vtbl {
pub base__: ::windows_core::IUnknown_Vtbl,
pub LaunchPlmPackageForDebugWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, timeout: u32, packagefullname: ::windows_core::PCWSTR, appname: ::windows_core::PCWSTR, arguments: ::windows_core::PCWSTR, processid: *mut u32, threadid: *mut u32) -> ::windows_core::HRESULT,
pub LaunchPlmBgTaskForDebugWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, timeout: u32, packagefullname: ::windows_core::PCWSTR, backgroundtaskid: ::windows_core::PCWSTR, processid: *mut u32, threadid: *mut u32) -> ::windows_core::HRESULT,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IDebugPlmClient3(::windows_core::IUnknown);
impl IDebugPlmClient3 {
pub unsafe fn LaunchPlmPackageForDebugWide<P0, P1, P2>(&self, server: u64, timeout: u32, packagefullname: P0, appname: P1, arguments: P2, processid: *mut u32, threadid: *mut u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
P1: ::windows_core::IntoParam<::windows_core::PCWSTR>,
P2: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).LaunchPlmPackageForDebugWide)(::windows_core::Interface::as_raw(self), server, timeout, packagefullname.into_param().abi(), appname.into_param().abi(), arguments.into_param().abi(), processid, threadid).ok()
}
pub unsafe fn LaunchPlmBgTaskForDebugWide<P0, P1>(&self, server: u64, timeout: u32, packagefullname: P0, backgroundtaskid: P1, processid: *mut u32, threadid: *mut u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
P1: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).LaunchPlmBgTaskForDebugWide)(::windows_core::Interface::as_raw(self), server, timeout, packagefullname.into_param().abi(), backgroundtaskid.into_param().abi(), processid, threadid).ok()
}
pub unsafe fn QueryPlmPackageWide<P0, P1>(&self, server: u64, packagefullname: P0, stream: P1) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
P1: ::windows_core::IntoParam<IDebugOutputStream>,
{
(::windows_core::Interface::vtable(self).QueryPlmPackageWide)(::windows_core::Interface::as_raw(self), server, packagefullname.into_param().abi(), stream.into_param().abi()).ok()
}
pub unsafe fn QueryPlmPackageList<P0>(&self, server: u64, stream: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IDebugOutputStream>,
{
(::windows_core::Interface::vtable(self).QueryPlmPackageList)(::windows_core::Interface::as_raw(self), server, stream.into_param().abi()).ok()
}
pub unsafe fn EnablePlmPackageDebugWide<P0>(&self, server: u64, packagefullname: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).EnablePlmPackageDebugWide)(::windows_core::Interface::as_raw(self), server, packagefullname.into_param().abi()).ok()
}
pub unsafe fn DisablePlmPackageDebugWide<P0>(&self, server: u64, packagefullname: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).DisablePlmPackageDebugWide)(::windows_core::Interface::as_raw(self), server, packagefullname.into_param().abi()).ok()
}
pub unsafe fn SuspendPlmPackageWide<P0>(&self, server: u64, packagefullname: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).SuspendPlmPackageWide)(::windows_core::Interface::as_raw(self), server, packagefullname.into_param().abi()).ok()
}
pub unsafe fn ResumePlmPackageWide<P0>(&self, server: u64, packagefullname: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).ResumePlmPackageWide)(::windows_core::Interface::as_raw(self), server, packagefullname.into_param().abi()).ok()
}
pub unsafe fn TerminatePlmPackageWide<P0>(&self, server: u64, packagefullname: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).TerminatePlmPackageWide)(::windows_core::Interface::as_raw(self), server, packagefullname.into_param().abi()).ok()
}
pub unsafe fn LaunchAndDebugPlmAppWide<P0, P1, P2>(&self, server: u64, packagefullname: P0, appname: P1, arguments: P2) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
P1: ::windows_core::IntoParam<::windows_core::PCWSTR>,
P2: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).LaunchAndDebugPlmAppWide)(::windows_core::Interface::as_raw(self), server, packagefullname.into_param().abi(), appname.into_param().abi(), arguments.into_param().abi()).ok()
}
pub unsafe fn ActivateAndDebugPlmBgTaskWide<P0, P1>(&self, server: u64, packagefullname: P0, backgroundtaskid: P1) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
P1: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).ActivateAndDebugPlmBgTaskWide)(::windows_core::Interface::as_raw(self), server, packagefullname.into_param().abi(), backgroundtaskid.into_param().abi()).ok()
}
}
::windows_core::imp::interface_hierarchy!(IDebugPlmClient3, ::windows_core::IUnknown);
unsafe impl ::windows_core::Interface for IDebugPlmClient3 {
type Vtable = IDebugPlmClient3_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IDebugPlmClient3 {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0xd4a5dbd1_ca02_4d90_856a_2a92bfd0f20f);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugPlmClient3_Vtbl {
pub base__: ::windows_core::IUnknown_Vtbl,
pub LaunchPlmPackageForDebugWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, timeout: u32, packagefullname: ::windows_core::PCWSTR, appname: ::windows_core::PCWSTR, arguments: ::windows_core::PCWSTR, processid: *mut u32, threadid: *mut u32) -> ::windows_core::HRESULT,
pub LaunchPlmBgTaskForDebugWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, timeout: u32, packagefullname: ::windows_core::PCWSTR, backgroundtaskid: ::windows_core::PCWSTR, processid: *mut u32, threadid: *mut u32) -> ::windows_core::HRESULT,
pub QueryPlmPackageWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, packagefullname: ::windows_core::PCWSTR, stream: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub QueryPlmPackageList: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, stream: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub EnablePlmPackageDebugWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, packagefullname: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
pub DisablePlmPackageDebugWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, packagefullname: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
pub SuspendPlmPackageWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, packagefullname: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
pub ResumePlmPackageWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, packagefullname: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
pub TerminatePlmPackageWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, packagefullname: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
pub LaunchAndDebugPlmAppWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, packagefullname: ::windows_core::PCWSTR, appname: ::windows_core::PCWSTR, arguments: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
pub ActivateAndDebugPlmBgTaskWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, packagefullname: ::windows_core::PCWSTR, backgroundtaskid: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IDebugRegisters(::windows_core::IUnknown);
impl IDebugRegisters {
pub unsafe fn GetNumberRegisters(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetNumberRegisters)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetDescription(&self, register: u32, namebuffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<*mut u32>, desc: ::core::option::Option<*mut DEBUG_REGISTER_DESCRIPTION>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetDescription)(::windows_core::Interface::as_raw(self), register, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(desc.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetIndexByName<P0>(&self, name: P0) -> ::windows_core::Result<u32>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetIndexByName)(::windows_core::Interface::as_raw(self), name.into_param().abi(), &mut result__).from_abi(result__)
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn GetValue(&self, register: u32, value: *mut DEBUG_VALUE) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetValue)(::windows_core::Interface::as_raw(self), register, value).ok()
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn SetValue(&self, register: u32, value: *const DEBUG_VALUE) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetValue)(::windows_core::Interface::as_raw(self), register, value).ok()
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn GetValues(&self, count: u32, indices: ::core::option::Option<*const u32>, start: u32, values: *mut DEBUG_VALUE) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetValues)(::windows_core::Interface::as_raw(self), count, ::core::mem::transmute(indices.unwrap_or(::std::ptr::null())), start, values).ok()
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn SetValues(&self, count: u32, indices: ::core::option::Option<*const u32>, start: u32, values: *const DEBUG_VALUE) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetValues)(::windows_core::Interface::as_raw(self), count, ::core::mem::transmute(indices.unwrap_or(::std::ptr::null())), start, values).ok()
}
pub unsafe fn OutputRegisters(&self, outputcontrol: u32, flags: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).OutputRegisters)(::windows_core::Interface::as_raw(self), outputcontrol, flags).ok()
}
pub unsafe fn GetInstructionOffset(&self) -> ::windows_core::Result<u64> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetInstructionOffset)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetStackOffset(&self) -> ::windows_core::Result<u64> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetStackOffset)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetFrameOffset(&self) -> ::windows_core::Result<u64> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetFrameOffset)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
}
::windows_core::imp::interface_hierarchy!(IDebugRegisters, ::windows_core::IUnknown);
unsafe impl ::windows_core::Interface for IDebugRegisters {
type Vtable = IDebugRegisters_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IDebugRegisters {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0xce289126_9e84_45a7_937e_67bb18691493);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugRegisters_Vtbl {
pub base__: ::windows_core::IUnknown_Vtbl,
pub GetNumberRegisters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows_core::HRESULT,
pub GetDescription: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, register: u32, namebuffer: ::windows_core::PSTR, namebuffersize: u32, namesize: *mut u32, desc: *mut DEBUG_REGISTER_DESCRIPTION) -> ::windows_core::HRESULT,
pub GetIndexByName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, name: ::windows_core::PCSTR, index: *mut u32) -> ::windows_core::HRESULT,
#[cfg(feature = "Win32_Foundation")]
pub GetValue: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, register: u32, value: *mut DEBUG_VALUE) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
GetValue: usize,
#[cfg(feature = "Win32_Foundation")]
pub SetValue: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, register: u32, value: *const DEBUG_VALUE) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
SetValue: usize,
#[cfg(feature = "Win32_Foundation")]
pub GetValues: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: u32, indices: *const u32, start: u32, values: *mut DEBUG_VALUE) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
GetValues: usize,
#[cfg(feature = "Win32_Foundation")]
pub SetValues: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: u32, indices: *const u32, start: u32, values: *const DEBUG_VALUE) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
SetValues: usize,
pub OutputRegisters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, flags: u32) -> ::windows_core::HRESULT,
pub GetInstructionOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows_core::HRESULT,
pub GetStackOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows_core::HRESULT,
pub GetFrameOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows_core::HRESULT,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IDebugRegisters2(::windows_core::IUnknown);
impl IDebugRegisters2 {
pub unsafe fn GetNumberRegisters(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetNumberRegisters)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetDescription(&self, register: u32, namebuffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<*mut u32>, desc: ::core::option::Option<*mut DEBUG_REGISTER_DESCRIPTION>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetDescription)(::windows_core::Interface::as_raw(self), register, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(desc.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetIndexByName<P0>(&self, name: P0) -> ::windows_core::Result<u32>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetIndexByName)(::windows_core::Interface::as_raw(self), name.into_param().abi(), &mut result__).from_abi(result__)
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn GetValue(&self, register: u32, value: *mut DEBUG_VALUE) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetValue)(::windows_core::Interface::as_raw(self), register, value).ok()
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn SetValue(&self, register: u32, value: *const DEBUG_VALUE) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetValue)(::windows_core::Interface::as_raw(self), register, value).ok()
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn GetValues(&self, count: u32, indices: ::core::option::Option<*const u32>, start: u32, values: *mut DEBUG_VALUE) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetValues)(::windows_core::Interface::as_raw(self), count, ::core::mem::transmute(indices.unwrap_or(::std::ptr::null())), start, values).ok()
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn SetValues(&self, count: u32, indices: ::core::option::Option<*const u32>, start: u32, values: *const DEBUG_VALUE) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetValues)(::windows_core::Interface::as_raw(self), count, ::core::mem::transmute(indices.unwrap_or(::std::ptr::null())), start, values).ok()
}
pub unsafe fn OutputRegisters(&self, outputcontrol: u32, flags: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).OutputRegisters)(::windows_core::Interface::as_raw(self), outputcontrol, flags).ok()
}
pub unsafe fn GetInstructionOffset(&self) -> ::windows_core::Result<u64> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetInstructionOffset)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetStackOffset(&self) -> ::windows_core::Result<u64> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetStackOffset)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetFrameOffset(&self) -> ::windows_core::Result<u64> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetFrameOffset)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetDescriptionWide(&self, register: u32, namebuffer: ::core::option::Option<&mut [u16]>, namesize: ::core::option::Option<*mut u32>, desc: ::core::option::Option<*mut DEBUG_REGISTER_DESCRIPTION>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetDescriptionWide)(::windows_core::Interface::as_raw(self), register, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(desc.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetIndexByNameWide<P0>(&self, name: P0) -> ::windows_core::Result<u32>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetIndexByNameWide)(::windows_core::Interface::as_raw(self), name.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn GetNumberPseudoRegisters(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetNumberPseudoRegisters)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetPseudoDescription(&self, register: u32, namebuffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<*mut u32>, typemodule: ::core::option::Option<*mut u64>, typeid: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetPseudoDescription)(::windows_core::Interface::as_raw(self), register, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(typemodule.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(typeid.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetPseudoDescriptionWide(&self, register: u32, namebuffer: ::core::option::Option<&mut [u16]>, namesize: ::core::option::Option<*mut u32>, typemodule: ::core::option::Option<*mut u64>, typeid: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetPseudoDescriptionWide)(::windows_core::Interface::as_raw(self), register, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(typemodule.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(typeid.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetPseudoIndexByName<P0>(&self, name: P0) -> ::windows_core::Result<u32>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetPseudoIndexByName)(::windows_core::Interface::as_raw(self), name.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn GetPseudoIndexByNameWide<P0>(&self, name: P0) -> ::windows_core::Result<u32>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetPseudoIndexByNameWide)(::windows_core::Interface::as_raw(self), name.into_param().abi(), &mut result__).from_abi(result__)
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn GetPseudoValues(&self, source: u32, count: u32, indices: ::core::option::Option<*const u32>, start: u32, values: *mut DEBUG_VALUE) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetPseudoValues)(::windows_core::Interface::as_raw(self), source, count, ::core::mem::transmute(indices.unwrap_or(::std::ptr::null())), start, values).ok()
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn SetPseudoValues(&self, source: u32, count: u32, indices: ::core::option::Option<*const u32>, start: u32, values: *const DEBUG_VALUE) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetPseudoValues)(::windows_core::Interface::as_raw(self), source, count, ::core::mem::transmute(indices.unwrap_or(::std::ptr::null())), start, values).ok()
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn GetValues2(&self, source: u32, count: u32, indices: ::core::option::Option<*const u32>, start: u32, values: *mut DEBUG_VALUE) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetValues2)(::windows_core::Interface::as_raw(self), source, count, ::core::mem::transmute(indices.unwrap_or(::std::ptr::null())), start, values).ok()
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn SetValues2(&self, source: u32, count: u32, indices: ::core::option::Option<*const u32>, start: u32, values: *const DEBUG_VALUE) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetValues2)(::windows_core::Interface::as_raw(self), source, count, ::core::mem::transmute(indices.unwrap_or(::std::ptr::null())), start, values).ok()
}
pub unsafe fn OutputRegisters2(&self, outputcontrol: u32, source: u32, flags: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).OutputRegisters2)(::windows_core::Interface::as_raw(self), outputcontrol, source, flags).ok()
}
pub unsafe fn GetInstructionOffset2(&self, source: u32) -> ::windows_core::Result<u64> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetInstructionOffset2)(::windows_core::Interface::as_raw(self), source, &mut result__).from_abi(result__)
}
pub unsafe fn GetStackOffset2(&self, source: u32) -> ::windows_core::Result<u64> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetStackOffset2)(::windows_core::Interface::as_raw(self), source, &mut result__).from_abi(result__)
}
pub unsafe fn GetFrameOffset2(&self, source: u32) -> ::windows_core::Result<u64> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetFrameOffset2)(::windows_core::Interface::as_raw(self), source, &mut result__).from_abi(result__)
}
}
::windows_core::imp::interface_hierarchy!(IDebugRegisters2, ::windows_core::IUnknown);
unsafe impl ::windows_core::Interface for IDebugRegisters2 {
type Vtable = IDebugRegisters2_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IDebugRegisters2 {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0x1656afa9_19c6_4e3a_97e7_5dc9160cf9c4);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugRegisters2_Vtbl {
pub base__: ::windows_core::IUnknown_Vtbl,
pub GetNumberRegisters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows_core::HRESULT,
pub GetDescription: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, register: u32, namebuffer: ::windows_core::PSTR, namebuffersize: u32, namesize: *mut u32, desc: *mut DEBUG_REGISTER_DESCRIPTION) -> ::windows_core::HRESULT,
pub GetIndexByName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, name: ::windows_core::PCSTR, index: *mut u32) -> ::windows_core::HRESULT,
#[cfg(feature = "Win32_Foundation")]
pub GetValue: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, register: u32, value: *mut DEBUG_VALUE) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
GetValue: usize,
#[cfg(feature = "Win32_Foundation")]
pub SetValue: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, register: u32, value: *const DEBUG_VALUE) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
SetValue: usize,
#[cfg(feature = "Win32_Foundation")]
pub GetValues: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: u32, indices: *const u32, start: u32, values: *mut DEBUG_VALUE) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
GetValues: usize,
#[cfg(feature = "Win32_Foundation")]
pub SetValues: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: u32, indices: *const u32, start: u32, values: *const DEBUG_VALUE) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
SetValues: usize,
pub OutputRegisters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, flags: u32) -> ::windows_core::HRESULT,
pub GetInstructionOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows_core::HRESULT,
pub GetStackOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows_core::HRESULT,
pub GetFrameOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows_core::HRESULT,
pub GetDescriptionWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, register: u32, namebuffer: ::windows_core::PWSTR, namebuffersize: u32, namesize: *mut u32, desc: *mut DEBUG_REGISTER_DESCRIPTION) -> ::windows_core::HRESULT,
pub GetIndexByNameWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, name: ::windows_core::PCWSTR, index: *mut u32) -> ::windows_core::HRESULT,
pub GetNumberPseudoRegisters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows_core::HRESULT,
pub GetPseudoDescription: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, register: u32, namebuffer: ::windows_core::PSTR, namebuffersize: u32, namesize: *mut u32, typemodule: *mut u64, typeid: *mut u32) -> ::windows_core::HRESULT,
pub GetPseudoDescriptionWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, register: u32, namebuffer: ::windows_core::PWSTR, namebuffersize: u32, namesize: *mut u32, typemodule: *mut u64, typeid: *mut u32) -> ::windows_core::HRESULT,
pub GetPseudoIndexByName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, name: ::windows_core::PCSTR, index: *mut u32) -> ::windows_core::HRESULT,
pub GetPseudoIndexByNameWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, name: ::windows_core::PCWSTR, index: *mut u32) -> ::windows_core::HRESULT,
#[cfg(feature = "Win32_Foundation")]
pub GetPseudoValues: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, source: u32, count: u32, indices: *const u32, start: u32, values: *mut DEBUG_VALUE) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
GetPseudoValues: usize,
#[cfg(feature = "Win32_Foundation")]
pub SetPseudoValues: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, source: u32, count: u32, indices: *const u32, start: u32, values: *const DEBUG_VALUE) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
SetPseudoValues: usize,
#[cfg(feature = "Win32_Foundation")]
pub GetValues2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, source: u32, count: u32, indices: *const u32, start: u32, values: *mut DEBUG_VALUE) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
GetValues2: usize,
#[cfg(feature = "Win32_Foundation")]
pub SetValues2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, source: u32, count: u32, indices: *const u32, start: u32, values: *const DEBUG_VALUE) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
SetValues2: usize,
pub OutputRegisters2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, source: u32, flags: u32) -> ::windows_core::HRESULT,
pub GetInstructionOffset2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, source: u32, offset: *mut u64) -> ::windows_core::HRESULT,
pub GetStackOffset2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, source: u32, offset: *mut u64) -> ::windows_core::HRESULT,
pub GetFrameOffset2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, source: u32, offset: *mut u64) -> ::windows_core::HRESULT,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IDebugSymbolGroup(::windows_core::IUnknown);
impl IDebugSymbolGroup {
pub unsafe fn GetNumberSymbols(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetNumberSymbols)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn AddSymbol<P0>(&self, name: P0, index: *mut u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).AddSymbol)(::windows_core::Interface::as_raw(self), name.into_param().abi(), index).ok()
}
pub unsafe fn RemoveSymbolByName<P0>(&self, name: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).RemoveSymbolByName)(::windows_core::Interface::as_raw(self), name.into_param().abi()).ok()
}
pub unsafe fn RemoveSymbolByIndex(&self, index: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).RemoveSymbolByIndex)(::windows_core::Interface::as_raw(self), index).ok()
}
pub unsafe fn GetSymbolName(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSymbolName)(::windows_core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetSymbolParameters(&self, start: u32, params: &mut [DEBUG_SYMBOL_PARAMETERS]) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSymbolParameters)(::windows_core::Interface::as_raw(self), start, params.len().try_into().unwrap(), ::core::mem::transmute(params.as_ptr())).ok()
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn ExpandSymbol<P0>(&self, index: u32, expand: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<super::super::super::super::Foundation::BOOL>,
{
(::windows_core::Interface::vtable(self).ExpandSymbol)(::windows_core::Interface::as_raw(self), index, expand.into_param().abi()).ok()
}
pub unsafe fn OutputSymbols(&self, outputcontrol: u32, flags: u32, start: u32, count: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).OutputSymbols)(::windows_core::Interface::as_raw(self), outputcontrol, flags, start, count).ok()
}
pub unsafe fn WriteSymbol<P0>(&self, index: u32, value: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).WriteSymbol)(::windows_core::Interface::as_raw(self), index, value.into_param().abi()).ok()
}
pub unsafe fn OutputAsType<P0>(&self, index: u32, r#type: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).OutputAsType)(::windows_core::Interface::as_raw(self), index, r#type.into_param().abi()).ok()
}
}
::windows_core::imp::interface_hierarchy!(IDebugSymbolGroup, ::windows_core::IUnknown);
unsafe impl ::windows_core::Interface for IDebugSymbolGroup {
type Vtable = IDebugSymbolGroup_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IDebugSymbolGroup {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0xf2528316_0f1a_4431_aeed_11d096e1e2ab);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugSymbolGroup_Vtbl {
pub base__: ::windows_core::IUnknown_Vtbl,
pub GetNumberSymbols: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows_core::HRESULT,
pub AddSymbol: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, name: ::windows_core::PCSTR, index: *mut u32) -> ::windows_core::HRESULT,
pub RemoveSymbolByName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, name: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub RemoveSymbolByIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32) -> ::windows_core::HRESULT,
pub GetSymbolName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows_core::PSTR, buffersize: u32, namesize: *mut u32) -> ::windows_core::HRESULT,
pub GetSymbolParameters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, start: u32, count: u32, params: *mut DEBUG_SYMBOL_PARAMETERS) -> ::windows_core::HRESULT,
#[cfg(feature = "Win32_Foundation")]
pub ExpandSymbol: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, expand: super::super::super::super::Foundation::BOOL) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
ExpandSymbol: usize,
pub OutputSymbols: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, flags: u32, start: u32, count: u32) -> ::windows_core::HRESULT,
pub WriteSymbol: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, value: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub OutputAsType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, r#type: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IDebugSymbolGroup2(::windows_core::IUnknown);
impl IDebugSymbolGroup2 {
pub unsafe fn GetNumberSymbols(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetNumberSymbols)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn AddSymbol<P0>(&self, name: P0, index: *mut u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).AddSymbol)(::windows_core::Interface::as_raw(self), name.into_param().abi(), index).ok()
}
pub unsafe fn RemoveSymbolByName<P0>(&self, name: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).RemoveSymbolByName)(::windows_core::Interface::as_raw(self), name.into_param().abi()).ok()
}
pub unsafe fn RemoveSymbolByIndex(&self, index: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).RemoveSymbolByIndex)(::windows_core::Interface::as_raw(self), index).ok()
}
pub unsafe fn GetSymbolName(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSymbolName)(::windows_core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetSymbolParameters(&self, start: u32, params: &mut [DEBUG_SYMBOL_PARAMETERS]) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSymbolParameters)(::windows_core::Interface::as_raw(self), start, params.len().try_into().unwrap(), ::core::mem::transmute(params.as_ptr())).ok()
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn ExpandSymbol<P0>(&self, index: u32, expand: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<super::super::super::super::Foundation::BOOL>,
{
(::windows_core::Interface::vtable(self).ExpandSymbol)(::windows_core::Interface::as_raw(self), index, expand.into_param().abi()).ok()
}
pub unsafe fn OutputSymbols(&self, outputcontrol: u32, flags: u32, start: u32, count: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).OutputSymbols)(::windows_core::Interface::as_raw(self), outputcontrol, flags, start, count).ok()
}
pub unsafe fn WriteSymbol<P0>(&self, index: u32, value: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).WriteSymbol)(::windows_core::Interface::as_raw(self), index, value.into_param().abi()).ok()
}
pub unsafe fn OutputAsType<P0>(&self, index: u32, r#type: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).OutputAsType)(::windows_core::Interface::as_raw(self), index, r#type.into_param().abi()).ok()
}
pub unsafe fn AddSymbolWide<P0>(&self, name: P0, index: *mut u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).AddSymbolWide)(::windows_core::Interface::as_raw(self), name.into_param().abi(), index).ok()
}
pub unsafe fn RemoveSymbolByNameWide<P0>(&self, name: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).RemoveSymbolByNameWide)(::windows_core::Interface::as_raw(self), name.into_param().abi()).ok()
}
pub unsafe fn GetSymbolNameWide(&self, index: u32, buffer: ::core::option::Option<&mut [u16]>, namesize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSymbolNameWide)(::windows_core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn WriteSymbolWide<P0>(&self, index: u32, value: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).WriteSymbolWide)(::windows_core::Interface::as_raw(self), index, value.into_param().abi()).ok()
}
pub unsafe fn OutputAsTypeWide<P0>(&self, index: u32, r#type: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).OutputAsTypeWide)(::windows_core::Interface::as_raw(self), index, r#type.into_param().abi()).ok()
}
pub unsafe fn GetSymbolTypeName(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSymbolTypeName)(::windows_core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetSymbolTypeNameWide(&self, index: u32, buffer: ::core::option::Option<&mut [u16]>, namesize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSymbolTypeNameWide)(::windows_core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetSymbolSize(&self, index: u32) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetSymbolSize)(::windows_core::Interface::as_raw(self), index, &mut result__).from_abi(result__)
}
pub unsafe fn GetSymbolOffset(&self, index: u32) -> ::windows_core::Result<u64> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetSymbolOffset)(::windows_core::Interface::as_raw(self), index, &mut result__).from_abi(result__)
}
pub unsafe fn GetSymbolRegister(&self, index: u32) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetSymbolRegister)(::windows_core::Interface::as_raw(self), index, &mut result__).from_abi(result__)
}
pub unsafe fn GetSymbolValueText(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSymbolValueText)(::windows_core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetSymbolValueTextWide(&self, index: u32, buffer: ::core::option::Option<&mut [u16]>, namesize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSymbolValueTextWide)(::windows_core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetSymbolEntryInformation(&self, index: u32, entry: *mut DEBUG_SYMBOL_ENTRY) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSymbolEntryInformation)(::windows_core::Interface::as_raw(self), index, entry).ok()
}
}
::windows_core::imp::interface_hierarchy!(IDebugSymbolGroup2, ::windows_core::IUnknown);
unsafe impl ::windows_core::Interface for IDebugSymbolGroup2 {
type Vtable = IDebugSymbolGroup2_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IDebugSymbolGroup2 {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0x6a7ccc5f_fb5e_4dcc_b41c_6c20307bccc7);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugSymbolGroup2_Vtbl {
pub base__: ::windows_core::IUnknown_Vtbl,
pub GetNumberSymbols: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows_core::HRESULT,
pub AddSymbol: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, name: ::windows_core::PCSTR, index: *mut u32) -> ::windows_core::HRESULT,
pub RemoveSymbolByName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, name: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub RemoveSymbolByIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32) -> ::windows_core::HRESULT,
pub GetSymbolName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows_core::PSTR, buffersize: u32, namesize: *mut u32) -> ::windows_core::HRESULT,
pub GetSymbolParameters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, start: u32, count: u32, params: *mut DEBUG_SYMBOL_PARAMETERS) -> ::windows_core::HRESULT,
#[cfg(feature = "Win32_Foundation")]
pub ExpandSymbol: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, expand: super::super::super::super::Foundation::BOOL) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
ExpandSymbol: usize,
pub OutputSymbols: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, flags: u32, start: u32, count: u32) -> ::windows_core::HRESULT,
pub WriteSymbol: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, value: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub OutputAsType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, r#type: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub AddSymbolWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, name: ::windows_core::PCWSTR, index: *mut u32) -> ::windows_core::HRESULT,
pub RemoveSymbolByNameWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, name: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
pub GetSymbolNameWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows_core::PWSTR, buffersize: u32, namesize: *mut u32) -> ::windows_core::HRESULT,
pub WriteSymbolWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, value: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
pub OutputAsTypeWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, r#type: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
pub GetSymbolTypeName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows_core::PSTR, buffersize: u32, namesize: *mut u32) -> ::windows_core::HRESULT,
pub GetSymbolTypeNameWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows_core::PWSTR, buffersize: u32, namesize: *mut u32) -> ::windows_core::HRESULT,
pub GetSymbolSize: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, size: *mut u32) -> ::windows_core::HRESULT,
pub GetSymbolOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, offset: *mut u64) -> ::windows_core::HRESULT,
pub GetSymbolRegister: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, register: *mut u32) -> ::windows_core::HRESULT,
pub GetSymbolValueText: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows_core::PSTR, buffersize: u32, namesize: *mut u32) -> ::windows_core::HRESULT,
pub GetSymbolValueTextWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows_core::PWSTR, buffersize: u32, namesize: *mut u32) -> ::windows_core::HRESULT,
pub GetSymbolEntryInformation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, entry: *mut DEBUG_SYMBOL_ENTRY) -> ::windows_core::HRESULT,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IDebugSymbols(::windows_core::IUnknown);
impl IDebugSymbols {
pub unsafe fn GetSymbolOptions(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetSymbolOptions)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn AddSymbolOptions(&self, options: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).AddSymbolOptions)(::windows_core::Interface::as_raw(self), options).ok()
}
pub unsafe fn RemoveSymbolOptions(&self, options: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).RemoveSymbolOptions)(::windows_core::Interface::as_raw(self), options).ok()
}
pub unsafe fn SetSymbolOptions(&self, options: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetSymbolOptions)(::windows_core::Interface::as_raw(self), options).ok()
}
pub unsafe fn GetNameByOffset(&self, offset: u64, namebuffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<*mut u32>, displacement: ::core::option::Option<*mut u64>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetNameByOffset)(::windows_core::Interface::as_raw(self), offset, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(displacement.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetOffsetByName<P0>(&self, symbol: P0) -> ::windows_core::Result<u64>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetOffsetByName)(::windows_core::Interface::as_raw(self), symbol.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn GetNearNameByOffset(&self, offset: u64, delta: i32, namebuffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<*mut u32>, displacement: ::core::option::Option<*mut u64>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetNearNameByOffset)(::windows_core::Interface::as_raw(self), offset, delta, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(displacement.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetLineByOffset(&self, offset: u64, line: ::core::option::Option<*mut u32>, filebuffer: ::core::option::Option<&mut [u8]>, filesize: ::core::option::Option<*mut u32>, displacement: ::core::option::Option<*mut u64>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetLineByOffset)(::windows_core::Interface::as_raw(self), offset, ::core::mem::transmute(line.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(filebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), filebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(filesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(displacement.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetOffsetByLine<P0>(&self, line: u32, file: P0) -> ::windows_core::Result<u64>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetOffsetByLine)(::windows_core::Interface::as_raw(self), line, file.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn GetNumberModules(&self, loaded: *mut u32, unloaded: *mut u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetNumberModules)(::windows_core::Interface::as_raw(self), loaded, unloaded).ok()
}
pub unsafe fn GetModuleByIndex(&self, index: u32) -> ::windows_core::Result<u64> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetModuleByIndex)(::windows_core::Interface::as_raw(self), index, &mut result__).from_abi(result__)
}
pub unsafe fn GetModuleByModuleName<P0>(&self, name: P0, startindex: u32, index: ::core::option::Option<*mut u32>, base: ::core::option::Option<*mut u64>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).GetModuleByModuleName)(::windows_core::Interface::as_raw(self), name.into_param().abi(), startindex, ::core::mem::transmute(index.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(base.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetModuleByOffset(&self, offset: u64, startindex: u32, index: ::core::option::Option<*mut u32>, base: ::core::option::Option<*mut u64>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetModuleByOffset)(::windows_core::Interface::as_raw(self), offset, startindex, ::core::mem::transmute(index.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(base.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetModuleNames(&self, index: u32, base: u64, imagenamebuffer: ::core::option::Option<&mut [u8]>, imagenamesize: ::core::option::Option<*mut u32>, modulenamebuffer: ::core::option::Option<&mut [u8]>, modulenamesize: ::core::option::Option<*mut u32>, loadedimagenamebuffer: ::core::option::Option<&mut [u8]>, loadedimagenamesize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetModuleNames)(
::windows_core::Interface::as_raw(self),
index,
base,
::core::mem::transmute(imagenamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
imagenamebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(imagenamesize.unwrap_or(::std::ptr::null_mut())),
::core::mem::transmute(modulenamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
modulenamebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(modulenamesize.unwrap_or(::std::ptr::null_mut())),
::core::mem::transmute(loadedimagenamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
loadedimagenamebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(loadedimagenamesize.unwrap_or(::std::ptr::null_mut())),
)
.ok()
}
pub unsafe fn GetModuleParameters(&self, count: u32, bases: ::core::option::Option<*const u64>, start: u32, params: *mut DEBUG_MODULE_PARAMETERS) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetModuleParameters)(::windows_core::Interface::as_raw(self), count, ::core::mem::transmute(bases.unwrap_or(::std::ptr::null())), start, params).ok()
}
pub unsafe fn GetSymbolModule<P0>(&self, symbol: P0) -> ::windows_core::Result<u64>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetSymbolModule)(::windows_core::Interface::as_raw(self), symbol.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn GetTypeName(&self, module: u64, typeid: u32, namebuffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetTypeName)(::windows_core::Interface::as_raw(self), module, typeid, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetTypeId<P0>(&self, module: u64, name: P0) -> ::windows_core::Result<u32>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetTypeId)(::windows_core::Interface::as_raw(self), module, name.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn GetTypeSize(&self, module: u64, typeid: u32) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetTypeSize)(::windows_core::Interface::as_raw(self), module, typeid, &mut result__).from_abi(result__)
}
pub unsafe fn GetFieldOffset<P0>(&self, module: u64, typeid: u32, field: P0) -> ::windows_core::Result<u32>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetFieldOffset)(::windows_core::Interface::as_raw(self), module, typeid, field.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn GetSymbolTypeId<P0>(&self, symbol: P0, typeid: *mut u32, module: ::core::option::Option<*mut u64>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).GetSymbolTypeId)(::windows_core::Interface::as_raw(self), symbol.into_param().abi(), typeid, ::core::mem::transmute(module.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetOffsetTypeId(&self, offset: u64, typeid: *mut u32, module: ::core::option::Option<*mut u64>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetOffsetTypeId)(::windows_core::Interface::as_raw(self), offset, typeid, ::core::mem::transmute(module.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn ReadTypedDataVirtual(&self, offset: u64, module: u64, typeid: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).ReadTypedDataVirtual)(::windows_core::Interface::as_raw(self), offset, module, typeid, buffer, buffersize, ::core::mem::transmute(bytesread.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn WriteTypedDataVirtual(&self, offset: u64, module: u64, typeid: u32, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).WriteTypedDataVirtual)(::windows_core::Interface::as_raw(self), offset, module, typeid, buffer, buffersize, ::core::mem::transmute(byteswritten.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn OutputTypedDataVirtual(&self, outputcontrol: u32, offset: u64, module: u64, typeid: u32, flags: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).OutputTypedDataVirtual)(::windows_core::Interface::as_raw(self), outputcontrol, offset, module, typeid, flags).ok()
}
pub unsafe fn ReadTypedDataPhysical(&self, offset: u64, module: u64, typeid: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).ReadTypedDataPhysical)(::windows_core::Interface::as_raw(self), offset, module, typeid, buffer, buffersize, ::core::mem::transmute(bytesread.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn WriteTypedDataPhysical(&self, offset: u64, module: u64, typeid: u32, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).WriteTypedDataPhysical)(::windows_core::Interface::as_raw(self), offset, module, typeid, buffer, buffersize, ::core::mem::transmute(byteswritten.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn OutputTypedDataPhysical(&self, outputcontrol: u32, offset: u64, module: u64, typeid: u32, flags: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).OutputTypedDataPhysical)(::windows_core::Interface::as_raw(self), outputcontrol, offset, module, typeid, flags).ok()
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn GetScope(&self, instructionoffset: ::core::option::Option<*mut u64>, scopeframe: ::core::option::Option<*mut DEBUG_STACK_FRAME>, scopecontext: ::core::option::Option<*mut ::core::ffi::c_void>, scopecontextsize: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetScope)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(instructionoffset.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(scopeframe.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(scopecontext.unwrap_or(::std::ptr::null_mut())), scopecontextsize).ok()
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn SetScope(&self, instructionoffset: u64, scopeframe: ::core::option::Option<*const DEBUG_STACK_FRAME>, scopecontext: ::core::option::Option<*const ::core::ffi::c_void>, scopecontextsize: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetScope)(::windows_core::Interface::as_raw(self), instructionoffset, ::core::mem::transmute(scopeframe.unwrap_or(::std::ptr::null())), ::core::mem::transmute(scopecontext.unwrap_or(::std::ptr::null())), scopecontextsize).ok()
}
pub unsafe fn ResetScope(&self) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).ResetScope)(::windows_core::Interface::as_raw(self)).ok()
}
pub unsafe fn GetScopeSymbolGroup<P0>(&self, flags: u32, update: P0) -> ::windows_core::Result<IDebugSymbolGroup>
where
P0: ::windows_core::IntoParam<IDebugSymbolGroup>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetScopeSymbolGroup)(::windows_core::Interface::as_raw(self), flags, update.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn CreateSymbolGroup(&self) -> ::windows_core::Result<IDebugSymbolGroup> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).CreateSymbolGroup)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn StartSymbolMatch<P0>(&self, pattern: P0) -> ::windows_core::Result<u64>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).StartSymbolMatch)(::windows_core::Interface::as_raw(self), pattern.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn GetNextSymbolMatch(&self, handle: u64, buffer: ::core::option::Option<&mut [u8]>, matchsize: ::core::option::Option<*mut u32>, offset: ::core::option::Option<*mut u64>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetNextSymbolMatch)(::windows_core::Interface::as_raw(self), handle, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(matchsize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(offset.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn EndSymbolMatch(&self, handle: u64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).EndSymbolMatch)(::windows_core::Interface::as_raw(self), handle).ok()
}
pub unsafe fn Reload<P0>(&self, module: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).Reload)(::windows_core::Interface::as_raw(self), module.into_param().abi()).ok()
}
pub unsafe fn GetSymbolPath(&self, buffer: ::core::option::Option<&mut [u8]>, pathsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSymbolPath)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(pathsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetSymbolPath<P0>(&self, path: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).SetSymbolPath)(::windows_core::Interface::as_raw(self), path.into_param().abi()).ok()
}
pub unsafe fn AppendSymbolPath<P0>(&self, addition: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).AppendSymbolPath)(::windows_core::Interface::as_raw(self), addition.into_param().abi()).ok()
}
pub unsafe fn GetImagePath(&self, buffer: ::core::option::Option<&mut [u8]>, pathsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetImagePath)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(pathsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetImagePath<P0>(&self, path: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).SetImagePath)(::windows_core::Interface::as_raw(self), path.into_param().abi()).ok()
}
pub unsafe fn AppendImagePath<P0>(&self, addition: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).AppendImagePath)(::windows_core::Interface::as_raw(self), addition.into_param().abi()).ok()
}
pub unsafe fn GetSourcePath(&self, buffer: ::core::option::Option<&mut [u8]>, pathsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSourcePath)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(pathsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetSourcePathElement(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, elementsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSourcePathElement)(::windows_core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(elementsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetSourcePath<P0>(&self, path: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).SetSourcePath)(::windows_core::Interface::as_raw(self), path.into_param().abi()).ok()
}
pub unsafe fn AppendSourcePath<P0>(&self, addition: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).AppendSourcePath)(::windows_core::Interface::as_raw(self), addition.into_param().abi()).ok()
}
pub unsafe fn FindSourceFile<P0>(&self, startelement: u32, file: P0, flags: u32, foundelement: ::core::option::Option<*mut u32>, buffer: ::core::option::Option<&mut [u8]>, foundsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).FindSourceFile)(::windows_core::Interface::as_raw(self), startelement, file.into_param().abi(), flags, ::core::mem::transmute(foundelement.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(foundsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetSourceFileLineOffsets<P0>(&self, file: P0, buffer: ::core::option::Option<&mut [u64]>, filelines: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).GetSourceFileLineOffsets)(::windows_core::Interface::as_raw(self), file.into_param().abi(), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(filelines.unwrap_or(::std::ptr::null_mut()))).ok()
}
}
::windows_core::imp::interface_hierarchy!(IDebugSymbols, ::windows_core::IUnknown);
unsafe impl ::windows_core::Interface for IDebugSymbols {
type Vtable = IDebugSymbols_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IDebugSymbols {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0x8c31e98c_983a_48a5_9016_6fe5d667a950);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugSymbols_Vtbl {
pub base__: ::windows_core::IUnknown_Vtbl,
pub GetSymbolOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: *mut u32) -> ::windows_core::HRESULT,
pub AddSymbolOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows_core::HRESULT,
pub RemoveSymbolOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows_core::HRESULT,
pub SetSymbolOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows_core::HRESULT,
pub GetNameByOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, namebuffer: ::windows_core::PSTR, namebuffersize: u32, namesize: *mut u32, displacement: *mut u64) -> ::windows_core::HRESULT,
pub GetOffsetByName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, symbol: ::windows_core::PCSTR, offset: *mut u64) -> ::windows_core::HRESULT,
pub GetNearNameByOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, delta: i32, namebuffer: ::windows_core::PSTR, namebuffersize: u32, namesize: *mut u32, displacement: *mut u64) -> ::windows_core::HRESULT,
pub GetLineByOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, line: *mut u32, filebuffer: ::windows_core::PSTR, filebuffersize: u32, filesize: *mut u32, displacement: *mut u64) -> ::windows_core::HRESULT,
pub GetOffsetByLine: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, line: u32, file: ::windows_core::PCSTR, offset: *mut u64) -> ::windows_core::HRESULT,
pub GetNumberModules: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, loaded: *mut u32, unloaded: *mut u32) -> ::windows_core::HRESULT,
pub GetModuleByIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, base: *mut u64) -> ::windows_core::HRESULT,
pub GetModuleByModuleName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, name: ::windows_core::PCSTR, startindex: u32, index: *mut u32, base: *mut u64) -> ::windows_core::HRESULT,
pub GetModuleByOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, startindex: u32, index: *mut u32, base: *mut u64) -> ::windows_core::HRESULT,
pub GetModuleNames: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, base: u64, imagenamebuffer: ::windows_core::PSTR, imagenamebuffersize: u32, imagenamesize: *mut u32, modulenamebuffer: ::windows_core::PSTR, modulenamebuffersize: u32, modulenamesize: *mut u32, loadedimagenamebuffer: ::windows_core::PSTR, loadedimagenamebuffersize: u32, loadedimagenamesize: *mut u32) -> ::windows_core::HRESULT,
pub GetModuleParameters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: u32, bases: *const u64, start: u32, params: *mut DEBUG_MODULE_PARAMETERS) -> ::windows_core::HRESULT,
pub GetSymbolModule: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, symbol: ::windows_core::PCSTR, base: *mut u64) -> ::windows_core::HRESULT,
pub GetTypeName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: u64, typeid: u32, namebuffer: ::windows_core::PSTR, namebuffersize: u32, namesize: *mut u32) -> ::windows_core::HRESULT,
pub GetTypeId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: u64, name: ::windows_core::PCSTR, typeid: *mut u32) -> ::windows_core::HRESULT,
pub GetTypeSize: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: u64, typeid: u32, size: *mut u32) -> ::windows_core::HRESULT,
pub GetFieldOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: u64, typeid: u32, field: ::windows_core::PCSTR, offset: *mut u32) -> ::windows_core::HRESULT,
pub GetSymbolTypeId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, symbol: ::windows_core::PCSTR, typeid: *mut u32, module: *mut u64) -> ::windows_core::HRESULT,
pub GetOffsetTypeId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, typeid: *mut u32, module: *mut u64) -> ::windows_core::HRESULT,
pub ReadTypedDataVirtual: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, module: u64, typeid: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows_core::HRESULT,
pub WriteTypedDataVirtual: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, module: u64, typeid: u32, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows_core::HRESULT,
pub OutputTypedDataVirtual: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, offset: u64, module: u64, typeid: u32, flags: u32) -> ::windows_core::HRESULT,
pub ReadTypedDataPhysical: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, module: u64, typeid: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows_core::HRESULT,
pub WriteTypedDataPhysical: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, module: u64, typeid: u32, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows_core::HRESULT,
pub OutputTypedDataPhysical: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, offset: u64, module: u64, typeid: u32, flags: u32) -> ::windows_core::HRESULT,
#[cfg(feature = "Win32_Foundation")]
pub GetScope: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, instructionoffset: *mut u64, scopeframe: *mut DEBUG_STACK_FRAME, scopecontext: *mut ::core::ffi::c_void, scopecontextsize: u32) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
GetScope: usize,
#[cfg(feature = "Win32_Foundation")]
pub SetScope: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, instructionoffset: u64, scopeframe: *const DEBUG_STACK_FRAME, scopecontext: *const ::core::ffi::c_void, scopecontextsize: u32) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
SetScope: usize,
pub ResetScope: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub GetScopeSymbolGroup: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, update: *mut ::core::ffi::c_void, symbols: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub CreateSymbolGroup: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, group: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub StartSymbolMatch: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pattern: ::windows_core::PCSTR, handle: *mut u64) -> ::windows_core::HRESULT,
pub GetNextSymbolMatch: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64, buffer: ::windows_core::PSTR, buffersize: u32, matchsize: *mut u32, offset: *mut u64) -> ::windows_core::HRESULT,
pub EndSymbolMatch: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64) -> ::windows_core::HRESULT,
pub Reload: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub GetSymbolPath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PSTR, buffersize: u32, pathsize: *mut u32) -> ::windows_core::HRESULT,
pub SetSymbolPath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, path: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub AppendSymbolPath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, addition: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub GetImagePath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PSTR, buffersize: u32, pathsize: *mut u32) -> ::windows_core::HRESULT,
pub SetImagePath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, path: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub AppendImagePath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, addition: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub GetSourcePath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PSTR, buffersize: u32, pathsize: *mut u32) -> ::windows_core::HRESULT,
pub GetSourcePathElement: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows_core::PSTR, buffersize: u32, elementsize: *mut u32) -> ::windows_core::HRESULT,
pub SetSourcePath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, path: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub AppendSourcePath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, addition: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub FindSourceFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, startelement: u32, file: ::windows_core::PCSTR, flags: u32, foundelement: *mut u32, buffer: ::windows_core::PSTR, buffersize: u32, foundsize: *mut u32) -> ::windows_core::HRESULT,
pub GetSourceFileLineOffsets: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, file: ::windows_core::PCSTR, buffer: *mut u64, bufferlines: u32, filelines: *mut u32) -> ::windows_core::HRESULT,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IDebugSymbols2(::windows_core::IUnknown);
impl IDebugSymbols2 {
pub unsafe fn GetSymbolOptions(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetSymbolOptions)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn AddSymbolOptions(&self, options: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).AddSymbolOptions)(::windows_core::Interface::as_raw(self), options).ok()
}
pub unsafe fn RemoveSymbolOptions(&self, options: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).RemoveSymbolOptions)(::windows_core::Interface::as_raw(self), options).ok()
}
pub unsafe fn SetSymbolOptions(&self, options: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetSymbolOptions)(::windows_core::Interface::as_raw(self), options).ok()
}
pub unsafe fn GetNameByOffset(&self, offset: u64, namebuffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<*mut u32>, displacement: ::core::option::Option<*mut u64>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetNameByOffset)(::windows_core::Interface::as_raw(self), offset, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(displacement.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetOffsetByName<P0>(&self, symbol: P0) -> ::windows_core::Result<u64>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetOffsetByName)(::windows_core::Interface::as_raw(self), symbol.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn GetNearNameByOffset(&self, offset: u64, delta: i32, namebuffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<*mut u32>, displacement: ::core::option::Option<*mut u64>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetNearNameByOffset)(::windows_core::Interface::as_raw(self), offset, delta, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(displacement.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetLineByOffset(&self, offset: u64, line: ::core::option::Option<*mut u32>, filebuffer: ::core::option::Option<&mut [u8]>, filesize: ::core::option::Option<*mut u32>, displacement: ::core::option::Option<*mut u64>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetLineByOffset)(::windows_core::Interface::as_raw(self), offset, ::core::mem::transmute(line.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(filebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), filebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(filesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(displacement.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetOffsetByLine<P0>(&self, line: u32, file: P0) -> ::windows_core::Result<u64>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetOffsetByLine)(::windows_core::Interface::as_raw(self), line, file.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn GetNumberModules(&self, loaded: *mut u32, unloaded: *mut u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetNumberModules)(::windows_core::Interface::as_raw(self), loaded, unloaded).ok()
}
pub unsafe fn GetModuleByIndex(&self, index: u32) -> ::windows_core::Result<u64> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetModuleByIndex)(::windows_core::Interface::as_raw(self), index, &mut result__).from_abi(result__)
}
pub unsafe fn GetModuleByModuleName<P0>(&self, name: P0, startindex: u32, index: ::core::option::Option<*mut u32>, base: ::core::option::Option<*mut u64>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).GetModuleByModuleName)(::windows_core::Interface::as_raw(self), name.into_param().abi(), startindex, ::core::mem::transmute(index.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(base.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetModuleByOffset(&self, offset: u64, startindex: u32, index: ::core::option::Option<*mut u32>, base: ::core::option::Option<*mut u64>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetModuleByOffset)(::windows_core::Interface::as_raw(self), offset, startindex, ::core::mem::transmute(index.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(base.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetModuleNames(&self, index: u32, base: u64, imagenamebuffer: ::core::option::Option<&mut [u8]>, imagenamesize: ::core::option::Option<*mut u32>, modulenamebuffer: ::core::option::Option<&mut [u8]>, modulenamesize: ::core::option::Option<*mut u32>, loadedimagenamebuffer: ::core::option::Option<&mut [u8]>, loadedimagenamesize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetModuleNames)(
::windows_core::Interface::as_raw(self),
index,
base,
::core::mem::transmute(imagenamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
imagenamebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(imagenamesize.unwrap_or(::std::ptr::null_mut())),
::core::mem::transmute(modulenamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
modulenamebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(modulenamesize.unwrap_or(::std::ptr::null_mut())),
::core::mem::transmute(loadedimagenamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
loadedimagenamebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(loadedimagenamesize.unwrap_or(::std::ptr::null_mut())),
)
.ok()
}
pub unsafe fn GetModuleParameters(&self, count: u32, bases: ::core::option::Option<*const u64>, start: u32, params: *mut DEBUG_MODULE_PARAMETERS) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetModuleParameters)(::windows_core::Interface::as_raw(self), count, ::core::mem::transmute(bases.unwrap_or(::std::ptr::null())), start, params).ok()
}
pub unsafe fn GetSymbolModule<P0>(&self, symbol: P0) -> ::windows_core::Result<u64>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetSymbolModule)(::windows_core::Interface::as_raw(self), symbol.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn GetTypeName(&self, module: u64, typeid: u32, namebuffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetTypeName)(::windows_core::Interface::as_raw(self), module, typeid, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetTypeId<P0>(&self, module: u64, name: P0) -> ::windows_core::Result<u32>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetTypeId)(::windows_core::Interface::as_raw(self), module, name.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn GetTypeSize(&self, module: u64, typeid: u32) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetTypeSize)(::windows_core::Interface::as_raw(self), module, typeid, &mut result__).from_abi(result__)
}
pub unsafe fn GetFieldOffset<P0>(&self, module: u64, typeid: u32, field: P0) -> ::windows_core::Result<u32>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetFieldOffset)(::windows_core::Interface::as_raw(self), module, typeid, field.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn GetSymbolTypeId<P0>(&self, symbol: P0, typeid: *mut u32, module: ::core::option::Option<*mut u64>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).GetSymbolTypeId)(::windows_core::Interface::as_raw(self), symbol.into_param().abi(), typeid, ::core::mem::transmute(module.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetOffsetTypeId(&self, offset: u64, typeid: *mut u32, module: ::core::option::Option<*mut u64>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetOffsetTypeId)(::windows_core::Interface::as_raw(self), offset, typeid, ::core::mem::transmute(module.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn ReadTypedDataVirtual(&self, offset: u64, module: u64, typeid: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).ReadTypedDataVirtual)(::windows_core::Interface::as_raw(self), offset, module, typeid, buffer, buffersize, ::core::mem::transmute(bytesread.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn WriteTypedDataVirtual(&self, offset: u64, module: u64, typeid: u32, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).WriteTypedDataVirtual)(::windows_core::Interface::as_raw(self), offset, module, typeid, buffer, buffersize, ::core::mem::transmute(byteswritten.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn OutputTypedDataVirtual(&self, outputcontrol: u32, offset: u64, module: u64, typeid: u32, flags: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).OutputTypedDataVirtual)(::windows_core::Interface::as_raw(self), outputcontrol, offset, module, typeid, flags).ok()
}
pub unsafe fn ReadTypedDataPhysical(&self, offset: u64, module: u64, typeid: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).ReadTypedDataPhysical)(::windows_core::Interface::as_raw(self), offset, module, typeid, buffer, buffersize, ::core::mem::transmute(bytesread.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn WriteTypedDataPhysical(&self, offset: u64, module: u64, typeid: u32, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).WriteTypedDataPhysical)(::windows_core::Interface::as_raw(self), offset, module, typeid, buffer, buffersize, ::core::mem::transmute(byteswritten.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn OutputTypedDataPhysical(&self, outputcontrol: u32, offset: u64, module: u64, typeid: u32, flags: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).OutputTypedDataPhysical)(::windows_core::Interface::as_raw(self), outputcontrol, offset, module, typeid, flags).ok()
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn GetScope(&self, instructionoffset: ::core::option::Option<*mut u64>, scopeframe: ::core::option::Option<*mut DEBUG_STACK_FRAME>, scopecontext: ::core::option::Option<*mut ::core::ffi::c_void>, scopecontextsize: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetScope)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(instructionoffset.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(scopeframe.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(scopecontext.unwrap_or(::std::ptr::null_mut())), scopecontextsize).ok()
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn SetScope(&self, instructionoffset: u64, scopeframe: ::core::option::Option<*const DEBUG_STACK_FRAME>, scopecontext: ::core::option::Option<*const ::core::ffi::c_void>, scopecontextsize: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetScope)(::windows_core::Interface::as_raw(self), instructionoffset, ::core::mem::transmute(scopeframe.unwrap_or(::std::ptr::null())), ::core::mem::transmute(scopecontext.unwrap_or(::std::ptr::null())), scopecontextsize).ok()
}
pub unsafe fn ResetScope(&self) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).ResetScope)(::windows_core::Interface::as_raw(self)).ok()
}
pub unsafe fn GetScopeSymbolGroup<P0>(&self, flags: u32, update: P0) -> ::windows_core::Result<IDebugSymbolGroup>
where
P0: ::windows_core::IntoParam<IDebugSymbolGroup>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetScopeSymbolGroup)(::windows_core::Interface::as_raw(self), flags, update.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn CreateSymbolGroup(&self) -> ::windows_core::Result<IDebugSymbolGroup> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).CreateSymbolGroup)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn StartSymbolMatch<P0>(&self, pattern: P0) -> ::windows_core::Result<u64>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).StartSymbolMatch)(::windows_core::Interface::as_raw(self), pattern.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn GetNextSymbolMatch(&self, handle: u64, buffer: ::core::option::Option<&mut [u8]>, matchsize: ::core::option::Option<*mut u32>, offset: ::core::option::Option<*mut u64>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetNextSymbolMatch)(::windows_core::Interface::as_raw(self), handle, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(matchsize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(offset.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn EndSymbolMatch(&self, handle: u64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).EndSymbolMatch)(::windows_core::Interface::as_raw(self), handle).ok()
}
pub unsafe fn Reload<P0>(&self, module: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).Reload)(::windows_core::Interface::as_raw(self), module.into_param().abi()).ok()
}
pub unsafe fn GetSymbolPath(&self, buffer: ::core::option::Option<&mut [u8]>, pathsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSymbolPath)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(pathsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetSymbolPath<P0>(&self, path: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).SetSymbolPath)(::windows_core::Interface::as_raw(self), path.into_param().abi()).ok()
}
pub unsafe fn AppendSymbolPath<P0>(&self, addition: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).AppendSymbolPath)(::windows_core::Interface::as_raw(self), addition.into_param().abi()).ok()
}
pub unsafe fn GetImagePath(&self, buffer: ::core::option::Option<&mut [u8]>, pathsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetImagePath)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(pathsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetImagePath<P0>(&self, path: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).SetImagePath)(::windows_core::Interface::as_raw(self), path.into_param().abi()).ok()
}
pub unsafe fn AppendImagePath<P0>(&self, addition: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).AppendImagePath)(::windows_core::Interface::as_raw(self), addition.into_param().abi()).ok()
}
pub unsafe fn GetSourcePath(&self, buffer: ::core::option::Option<&mut [u8]>, pathsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSourcePath)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(pathsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetSourcePathElement(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, elementsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSourcePathElement)(::windows_core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(elementsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetSourcePath<P0>(&self, path: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).SetSourcePath)(::windows_core::Interface::as_raw(self), path.into_param().abi()).ok()
}
pub unsafe fn AppendSourcePath<P0>(&self, addition: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).AppendSourcePath)(::windows_core::Interface::as_raw(self), addition.into_param().abi()).ok()
}
pub unsafe fn FindSourceFile<P0>(&self, startelement: u32, file: P0, flags: u32, foundelement: ::core::option::Option<*mut u32>, buffer: ::core::option::Option<&mut [u8]>, foundsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).FindSourceFile)(::windows_core::Interface::as_raw(self), startelement, file.into_param().abi(), flags, ::core::mem::transmute(foundelement.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(foundsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetSourceFileLineOffsets<P0>(&self, file: P0, buffer: ::core::option::Option<&mut [u64]>, filelines: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).GetSourceFileLineOffsets)(::windows_core::Interface::as_raw(self), file.into_param().abi(), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(filelines.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetModuleVersionInformation<P0>(&self, index: u32, base: u64, item: P0, buffer: ::core::option::Option<*mut ::core::ffi::c_void>, buffersize: u32, verinfosize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).GetModuleVersionInformation)(::windows_core::Interface::as_raw(self), index, base, item.into_param().abi(), ::core::mem::transmute(buffer.unwrap_or(::std::ptr::null_mut())), buffersize, ::core::mem::transmute(verinfosize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetModuleNameString(&self, which: u32, index: u32, base: u64, buffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetModuleNameString)(::windows_core::Interface::as_raw(self), which, index, base, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetConstantName(&self, module: u64, typeid: u32, value: u64, namebuffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetConstantName)(::windows_core::Interface::as_raw(self), module, typeid, value, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetFieldName(&self, module: u64, typeid: u32, fieldindex: u32, namebuffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetFieldName)(::windows_core::Interface::as_raw(self), module, typeid, fieldindex, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetTypeOptions(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetTypeOptions)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn AddTypeOptions(&self, options: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).AddTypeOptions)(::windows_core::Interface::as_raw(self), options).ok()
}
pub unsafe fn RemoveTypeOptions(&self, options: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).RemoveTypeOptions)(::windows_core::Interface::as_raw(self), options).ok()
}
pub unsafe fn SetTypeOptions(&self, options: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetTypeOptions)(::windows_core::Interface::as_raw(self), options).ok()
}
}
::windows_core::imp::interface_hierarchy!(IDebugSymbols2, ::windows_core::IUnknown);
unsafe impl ::windows_core::Interface for IDebugSymbols2 {
type Vtable = IDebugSymbols2_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IDebugSymbols2 {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0x3a707211_afdd_4495_ad4f_56fecdf8163f);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugSymbols2_Vtbl {
pub base__: ::windows_core::IUnknown_Vtbl,
pub GetSymbolOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: *mut u32) -> ::windows_core::HRESULT,
pub AddSymbolOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows_core::HRESULT,
pub RemoveSymbolOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows_core::HRESULT,
pub SetSymbolOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows_core::HRESULT,
pub GetNameByOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, namebuffer: ::windows_core::PSTR, namebuffersize: u32, namesize: *mut u32, displacement: *mut u64) -> ::windows_core::HRESULT,
pub GetOffsetByName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, symbol: ::windows_core::PCSTR, offset: *mut u64) -> ::windows_core::HRESULT,
pub GetNearNameByOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, delta: i32, namebuffer: ::windows_core::PSTR, namebuffersize: u32, namesize: *mut u32, displacement: *mut u64) -> ::windows_core::HRESULT,
pub GetLineByOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, line: *mut u32, filebuffer: ::windows_core::PSTR, filebuffersize: u32, filesize: *mut u32, displacement: *mut u64) -> ::windows_core::HRESULT,
pub GetOffsetByLine: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, line: u32, file: ::windows_core::PCSTR, offset: *mut u64) -> ::windows_core::HRESULT,
pub GetNumberModules: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, loaded: *mut u32, unloaded: *mut u32) -> ::windows_core::HRESULT,
pub GetModuleByIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, base: *mut u64) -> ::windows_core::HRESULT,
pub GetModuleByModuleName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, name: ::windows_core::PCSTR, startindex: u32, index: *mut u32, base: *mut u64) -> ::windows_core::HRESULT,
pub GetModuleByOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, startindex: u32, index: *mut u32, base: *mut u64) -> ::windows_core::HRESULT,
pub GetModuleNames: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, base: u64, imagenamebuffer: ::windows_core::PSTR, imagenamebuffersize: u32, imagenamesize: *mut u32, modulenamebuffer: ::windows_core::PSTR, modulenamebuffersize: u32, modulenamesize: *mut u32, loadedimagenamebuffer: ::windows_core::PSTR, loadedimagenamebuffersize: u32, loadedimagenamesize: *mut u32) -> ::windows_core::HRESULT,
pub GetModuleParameters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: u32, bases: *const u64, start: u32, params: *mut DEBUG_MODULE_PARAMETERS) -> ::windows_core::HRESULT,
pub GetSymbolModule: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, symbol: ::windows_core::PCSTR, base: *mut u64) -> ::windows_core::HRESULT,
pub GetTypeName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: u64, typeid: u32, namebuffer: ::windows_core::PSTR, namebuffersize: u32, namesize: *mut u32) -> ::windows_core::HRESULT,
pub GetTypeId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: u64, name: ::windows_core::PCSTR, typeid: *mut u32) -> ::windows_core::HRESULT,
pub GetTypeSize: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: u64, typeid: u32, size: *mut u32) -> ::windows_core::HRESULT,
pub GetFieldOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: u64, typeid: u32, field: ::windows_core::PCSTR, offset: *mut u32) -> ::windows_core::HRESULT,
pub GetSymbolTypeId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, symbol: ::windows_core::PCSTR, typeid: *mut u32, module: *mut u64) -> ::windows_core::HRESULT,
pub GetOffsetTypeId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, typeid: *mut u32, module: *mut u64) -> ::windows_core::HRESULT,
pub ReadTypedDataVirtual: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, module: u64, typeid: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows_core::HRESULT,
pub WriteTypedDataVirtual: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, module: u64, typeid: u32, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows_core::HRESULT,
pub OutputTypedDataVirtual: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, offset: u64, module: u64, typeid: u32, flags: u32) -> ::windows_core::HRESULT,
pub ReadTypedDataPhysical: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, module: u64, typeid: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows_core::HRESULT,
pub WriteTypedDataPhysical: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, module: u64, typeid: u32, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows_core::HRESULT,
pub OutputTypedDataPhysical: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, offset: u64, module: u64, typeid: u32, flags: u32) -> ::windows_core::HRESULT,
#[cfg(feature = "Win32_Foundation")]
pub GetScope: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, instructionoffset: *mut u64, scopeframe: *mut DEBUG_STACK_FRAME, scopecontext: *mut ::core::ffi::c_void, scopecontextsize: u32) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
GetScope: usize,
#[cfg(feature = "Win32_Foundation")]
pub SetScope: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, instructionoffset: u64, scopeframe: *const DEBUG_STACK_FRAME, scopecontext: *const ::core::ffi::c_void, scopecontextsize: u32) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
SetScope: usize,
pub ResetScope: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub GetScopeSymbolGroup: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, update: *mut ::core::ffi::c_void, symbols: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub CreateSymbolGroup: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, group: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub StartSymbolMatch: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pattern: ::windows_core::PCSTR, handle: *mut u64) -> ::windows_core::HRESULT,
pub GetNextSymbolMatch: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64, buffer: ::windows_core::PSTR, buffersize: u32, matchsize: *mut u32, offset: *mut u64) -> ::windows_core::HRESULT,
pub EndSymbolMatch: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64) -> ::windows_core::HRESULT,
pub Reload: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub GetSymbolPath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PSTR, buffersize: u32, pathsize: *mut u32) -> ::windows_core::HRESULT,
pub SetSymbolPath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, path: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub AppendSymbolPath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, addition: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub GetImagePath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PSTR, buffersize: u32, pathsize: *mut u32) -> ::windows_core::HRESULT,
pub SetImagePath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, path: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub AppendImagePath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, addition: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub GetSourcePath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PSTR, buffersize: u32, pathsize: *mut u32) -> ::windows_core::HRESULT,
pub GetSourcePathElement: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows_core::PSTR, buffersize: u32, elementsize: *mut u32) -> ::windows_core::HRESULT,
pub SetSourcePath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, path: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub AppendSourcePath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, addition: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub FindSourceFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, startelement: u32, file: ::windows_core::PCSTR, flags: u32, foundelement: *mut u32, buffer: ::windows_core::PSTR, buffersize: u32, foundsize: *mut u32) -> ::windows_core::HRESULT,
pub GetSourceFileLineOffsets: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, file: ::windows_core::PCSTR, buffer: *mut u64, bufferlines: u32, filelines: *mut u32) -> ::windows_core::HRESULT,
pub GetModuleVersionInformation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, base: u64, item: ::windows_core::PCSTR, buffer: *mut ::core::ffi::c_void, buffersize: u32, verinfosize: *mut u32) -> ::windows_core::HRESULT,
pub GetModuleNameString: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, which: u32, index: u32, base: u64, buffer: ::windows_core::PSTR, buffersize: u32, namesize: *mut u32) -> ::windows_core::HRESULT,
pub GetConstantName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: u64, typeid: u32, value: u64, namebuffer: ::windows_core::PSTR, namebuffersize: u32, namesize: *mut u32) -> ::windows_core::HRESULT,
pub GetFieldName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: u64, typeid: u32, fieldindex: u32, namebuffer: ::windows_core::PSTR, namebuffersize: u32, namesize: *mut u32) -> ::windows_core::HRESULT,
pub GetTypeOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: *mut u32) -> ::windows_core::HRESULT,
pub AddTypeOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows_core::HRESULT,
pub RemoveTypeOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows_core::HRESULT,
pub SetTypeOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows_core::HRESULT,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IDebugSymbols3(::windows_core::IUnknown);
impl IDebugSymbols3 {
pub unsafe fn GetSymbolOptions(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetSymbolOptions)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn AddSymbolOptions(&self, options: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).AddSymbolOptions)(::windows_core::Interface::as_raw(self), options).ok()
}
pub unsafe fn RemoveSymbolOptions(&self, options: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).RemoveSymbolOptions)(::windows_core::Interface::as_raw(self), options).ok()
}
pub unsafe fn SetSymbolOptions(&self, options: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetSymbolOptions)(::windows_core::Interface::as_raw(self), options).ok()
}
pub unsafe fn GetNameByOffset(&self, offset: u64, namebuffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<*mut u32>, displacement: ::core::option::Option<*mut u64>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetNameByOffset)(::windows_core::Interface::as_raw(self), offset, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(displacement.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetOffsetByName<P0>(&self, symbol: P0) -> ::windows_core::Result<u64>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetOffsetByName)(::windows_core::Interface::as_raw(self), symbol.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn GetNearNameByOffset(&self, offset: u64, delta: i32, namebuffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<*mut u32>, displacement: ::core::option::Option<*mut u64>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetNearNameByOffset)(::windows_core::Interface::as_raw(self), offset, delta, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(displacement.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetLineByOffset(&self, offset: u64, line: ::core::option::Option<*mut u32>, filebuffer: ::core::option::Option<&mut [u8]>, filesize: ::core::option::Option<*mut u32>, displacement: ::core::option::Option<*mut u64>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetLineByOffset)(::windows_core::Interface::as_raw(self), offset, ::core::mem::transmute(line.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(filebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), filebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(filesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(displacement.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetOffsetByLine<P0>(&self, line: u32, file: P0) -> ::windows_core::Result<u64>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetOffsetByLine)(::windows_core::Interface::as_raw(self), line, file.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn GetNumberModules(&self, loaded: *mut u32, unloaded: *mut u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetNumberModules)(::windows_core::Interface::as_raw(self), loaded, unloaded).ok()
}
pub unsafe fn GetModuleByIndex(&self, index: u32) -> ::windows_core::Result<u64> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetModuleByIndex)(::windows_core::Interface::as_raw(self), index, &mut result__).from_abi(result__)
}
pub unsafe fn GetModuleByModuleName<P0>(&self, name: P0, startindex: u32, index: ::core::option::Option<*mut u32>, base: ::core::option::Option<*mut u64>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).GetModuleByModuleName)(::windows_core::Interface::as_raw(self), name.into_param().abi(), startindex, ::core::mem::transmute(index.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(base.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetModuleByOffset(&self, offset: u64, startindex: u32, index: ::core::option::Option<*mut u32>, base: ::core::option::Option<*mut u64>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetModuleByOffset)(::windows_core::Interface::as_raw(self), offset, startindex, ::core::mem::transmute(index.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(base.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetModuleNames(&self, index: u32, base: u64, imagenamebuffer: ::core::option::Option<&mut [u8]>, imagenamesize: ::core::option::Option<*mut u32>, modulenamebuffer: ::core::option::Option<&mut [u8]>, modulenamesize: ::core::option::Option<*mut u32>, loadedimagenamebuffer: ::core::option::Option<&mut [u8]>, loadedimagenamesize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetModuleNames)(
::windows_core::Interface::as_raw(self),
index,
base,
::core::mem::transmute(imagenamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
imagenamebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(imagenamesize.unwrap_or(::std::ptr::null_mut())),
::core::mem::transmute(modulenamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
modulenamebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(modulenamesize.unwrap_or(::std::ptr::null_mut())),
::core::mem::transmute(loadedimagenamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
loadedimagenamebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(loadedimagenamesize.unwrap_or(::std::ptr::null_mut())),
)
.ok()
}
pub unsafe fn GetModuleParameters(&self, count: u32, bases: ::core::option::Option<*const u64>, start: u32, params: *mut DEBUG_MODULE_PARAMETERS) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetModuleParameters)(::windows_core::Interface::as_raw(self), count, ::core::mem::transmute(bases.unwrap_or(::std::ptr::null())), start, params).ok()
}
pub unsafe fn GetSymbolModule<P0>(&self, symbol: P0) -> ::windows_core::Result<u64>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetSymbolModule)(::windows_core::Interface::as_raw(self), symbol.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn GetTypeName(&self, module: u64, typeid: u32, namebuffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetTypeName)(::windows_core::Interface::as_raw(self), module, typeid, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetTypeId<P0>(&self, module: u64, name: P0) -> ::windows_core::Result<u32>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetTypeId)(::windows_core::Interface::as_raw(self), module, name.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn GetTypeSize(&self, module: u64, typeid: u32) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetTypeSize)(::windows_core::Interface::as_raw(self), module, typeid, &mut result__).from_abi(result__)
}
pub unsafe fn GetFieldOffset<P0>(&self, module: u64, typeid: u32, field: P0) -> ::windows_core::Result<u32>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetFieldOffset)(::windows_core::Interface::as_raw(self), module, typeid, field.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn GetSymbolTypeId<P0>(&self, symbol: P0, typeid: *mut u32, module: ::core::option::Option<*mut u64>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).GetSymbolTypeId)(::windows_core::Interface::as_raw(self), symbol.into_param().abi(), typeid, ::core::mem::transmute(module.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetOffsetTypeId(&self, offset: u64, typeid: *mut u32, module: ::core::option::Option<*mut u64>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetOffsetTypeId)(::windows_core::Interface::as_raw(self), offset, typeid, ::core::mem::transmute(module.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn ReadTypedDataVirtual(&self, offset: u64, module: u64, typeid: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).ReadTypedDataVirtual)(::windows_core::Interface::as_raw(self), offset, module, typeid, buffer, buffersize, ::core::mem::transmute(bytesread.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn WriteTypedDataVirtual(&self, offset: u64, module: u64, typeid: u32, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).WriteTypedDataVirtual)(::windows_core::Interface::as_raw(self), offset, module, typeid, buffer, buffersize, ::core::mem::transmute(byteswritten.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn OutputTypedDataVirtual(&self, outputcontrol: u32, offset: u64, module: u64, typeid: u32, flags: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).OutputTypedDataVirtual)(::windows_core::Interface::as_raw(self), outputcontrol, offset, module, typeid, flags).ok()
}
pub unsafe fn ReadTypedDataPhysical(&self, offset: u64, module: u64, typeid: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).ReadTypedDataPhysical)(::windows_core::Interface::as_raw(self), offset, module, typeid, buffer, buffersize, ::core::mem::transmute(bytesread.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn WriteTypedDataPhysical(&self, offset: u64, module: u64, typeid: u32, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).WriteTypedDataPhysical)(::windows_core::Interface::as_raw(self), offset, module, typeid, buffer, buffersize, ::core::mem::transmute(byteswritten.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn OutputTypedDataPhysical(&self, outputcontrol: u32, offset: u64, module: u64, typeid: u32, flags: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).OutputTypedDataPhysical)(::windows_core::Interface::as_raw(self), outputcontrol, offset, module, typeid, flags).ok()
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn GetScope(&self, instructionoffset: ::core::option::Option<*mut u64>, scopeframe: ::core::option::Option<*mut DEBUG_STACK_FRAME>, scopecontext: ::core::option::Option<*mut ::core::ffi::c_void>, scopecontextsize: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetScope)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(instructionoffset.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(scopeframe.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(scopecontext.unwrap_or(::std::ptr::null_mut())), scopecontextsize).ok()
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn SetScope(&self, instructionoffset: u64, scopeframe: ::core::option::Option<*const DEBUG_STACK_FRAME>, scopecontext: ::core::option::Option<*const ::core::ffi::c_void>, scopecontextsize: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetScope)(::windows_core::Interface::as_raw(self), instructionoffset, ::core::mem::transmute(scopeframe.unwrap_or(::std::ptr::null())), ::core::mem::transmute(scopecontext.unwrap_or(::std::ptr::null())), scopecontextsize).ok()
}
pub unsafe fn ResetScope(&self) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).ResetScope)(::windows_core::Interface::as_raw(self)).ok()
}
pub unsafe fn GetScopeSymbolGroup<P0>(&self, flags: u32, update: P0) -> ::windows_core::Result<IDebugSymbolGroup>
where
P0: ::windows_core::IntoParam<IDebugSymbolGroup>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetScopeSymbolGroup)(::windows_core::Interface::as_raw(self), flags, update.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn CreateSymbolGroup(&self) -> ::windows_core::Result<IDebugSymbolGroup> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).CreateSymbolGroup)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn StartSymbolMatch<P0>(&self, pattern: P0) -> ::windows_core::Result<u64>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).StartSymbolMatch)(::windows_core::Interface::as_raw(self), pattern.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn GetNextSymbolMatch(&self, handle: u64, buffer: ::core::option::Option<&mut [u8]>, matchsize: ::core::option::Option<*mut u32>, offset: ::core::option::Option<*mut u64>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetNextSymbolMatch)(::windows_core::Interface::as_raw(self), handle, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(matchsize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(offset.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn EndSymbolMatch(&self, handle: u64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).EndSymbolMatch)(::windows_core::Interface::as_raw(self), handle).ok()
}
pub unsafe fn Reload<P0>(&self, module: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).Reload)(::windows_core::Interface::as_raw(self), module.into_param().abi()).ok()
}
pub unsafe fn GetSymbolPath(&self, buffer: ::core::option::Option<&mut [u8]>, pathsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSymbolPath)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(pathsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetSymbolPath<P0>(&self, path: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).SetSymbolPath)(::windows_core::Interface::as_raw(self), path.into_param().abi()).ok()
}
pub unsafe fn AppendSymbolPath<P0>(&self, addition: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).AppendSymbolPath)(::windows_core::Interface::as_raw(self), addition.into_param().abi()).ok()
}
pub unsafe fn GetImagePath(&self, buffer: ::core::option::Option<&mut [u8]>, pathsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetImagePath)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(pathsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetImagePath<P0>(&self, path: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).SetImagePath)(::windows_core::Interface::as_raw(self), path.into_param().abi()).ok()
}
pub unsafe fn AppendImagePath<P0>(&self, addition: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).AppendImagePath)(::windows_core::Interface::as_raw(self), addition.into_param().abi()).ok()
}
pub unsafe fn GetSourcePath(&self, buffer: ::core::option::Option<&mut [u8]>, pathsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSourcePath)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(pathsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetSourcePathElement(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, elementsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSourcePathElement)(::windows_core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(elementsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetSourcePath<P0>(&self, path: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).SetSourcePath)(::windows_core::Interface::as_raw(self), path.into_param().abi()).ok()
}
pub unsafe fn AppendSourcePath<P0>(&self, addition: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).AppendSourcePath)(::windows_core::Interface::as_raw(self), addition.into_param().abi()).ok()
}
pub unsafe fn FindSourceFile<P0>(&self, startelement: u32, file: P0, flags: u32, foundelement: ::core::option::Option<*mut u32>, buffer: ::core::option::Option<&mut [u8]>, foundsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).FindSourceFile)(::windows_core::Interface::as_raw(self), startelement, file.into_param().abi(), flags, ::core::mem::transmute(foundelement.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(foundsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetSourceFileLineOffsets<P0>(&self, file: P0, buffer: ::core::option::Option<&mut [u64]>, filelines: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).GetSourceFileLineOffsets)(::windows_core::Interface::as_raw(self), file.into_param().abi(), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(filelines.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetModuleVersionInformation<P0>(&self, index: u32, base: u64, item: P0, buffer: ::core::option::Option<*mut ::core::ffi::c_void>, buffersize: u32, verinfosize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).GetModuleVersionInformation)(::windows_core::Interface::as_raw(self), index, base, item.into_param().abi(), ::core::mem::transmute(buffer.unwrap_or(::std::ptr::null_mut())), buffersize, ::core::mem::transmute(verinfosize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetModuleNameString(&self, which: u32, index: u32, base: u64, buffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetModuleNameString)(::windows_core::Interface::as_raw(self), which, index, base, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetConstantName(&self, module: u64, typeid: u32, value: u64, namebuffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetConstantName)(::windows_core::Interface::as_raw(self), module, typeid, value, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetFieldName(&self, module: u64, typeid: u32, fieldindex: u32, namebuffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetFieldName)(::windows_core::Interface::as_raw(self), module, typeid, fieldindex, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetTypeOptions(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetTypeOptions)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn AddTypeOptions(&self, options: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).AddTypeOptions)(::windows_core::Interface::as_raw(self), options).ok()
}
pub unsafe fn RemoveTypeOptions(&self, options: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).RemoveTypeOptions)(::windows_core::Interface::as_raw(self), options).ok()
}
pub unsafe fn SetTypeOptions(&self, options: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetTypeOptions)(::windows_core::Interface::as_raw(self), options).ok()
}
pub unsafe fn GetNameByOffsetWide(&self, offset: u64, namebuffer: ::core::option::Option<&mut [u16]>, namesize: ::core::option::Option<*mut u32>, displacement: ::core::option::Option<*mut u64>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetNameByOffsetWide)(::windows_core::Interface::as_raw(self), offset, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(displacement.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetOffsetByNameWide<P0>(&self, symbol: P0) -> ::windows_core::Result<u64>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetOffsetByNameWide)(::windows_core::Interface::as_raw(self), symbol.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn GetNearNameByOffsetWide(&self, offset: u64, delta: i32, namebuffer: ::core::option::Option<&mut [u16]>, namesize: ::core::option::Option<*mut u32>, displacement: ::core::option::Option<*mut u64>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetNearNameByOffsetWide)(::windows_core::Interface::as_raw(self), offset, delta, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(displacement.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetLineByOffsetWide(&self, offset: u64, line: ::core::option::Option<*mut u32>, filebuffer: ::core::option::Option<&mut [u16]>, filesize: ::core::option::Option<*mut u32>, displacement: ::core::option::Option<*mut u64>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetLineByOffsetWide)(::windows_core::Interface::as_raw(self), offset, ::core::mem::transmute(line.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(filebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), filebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(filesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(displacement.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetOffsetByLineWide<P0>(&self, line: u32, file: P0) -> ::windows_core::Result<u64>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetOffsetByLineWide)(::windows_core::Interface::as_raw(self), line, file.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn GetModuleByModuleNameWide<P0>(&self, name: P0, startindex: u32, index: ::core::option::Option<*mut u32>, base: ::core::option::Option<*mut u64>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).GetModuleByModuleNameWide)(::windows_core::Interface::as_raw(self), name.into_param().abi(), startindex, ::core::mem::transmute(index.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(base.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetSymbolModuleWide<P0>(&self, symbol: P0) -> ::windows_core::Result<u64>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetSymbolModuleWide)(::windows_core::Interface::as_raw(self), symbol.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn GetTypeNameWide(&self, module: u64, typeid: u32, namebuffer: ::core::option::Option<&mut [u16]>, namesize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetTypeNameWide)(::windows_core::Interface::as_raw(self), module, typeid, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetTypeIdWide<P0>(&self, module: u64, name: P0) -> ::windows_core::Result<u32>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetTypeIdWide)(::windows_core::Interface::as_raw(self), module, name.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn GetFieldOffsetWide<P0>(&self, module: u64, typeid: u32, field: P0) -> ::windows_core::Result<u32>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetFieldOffsetWide)(::windows_core::Interface::as_raw(self), module, typeid, field.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn GetSymbolTypeIdWide<P0>(&self, symbol: P0, typeid: *mut u32, module: ::core::option::Option<*mut u64>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).GetSymbolTypeIdWide)(::windows_core::Interface::as_raw(self), symbol.into_param().abi(), typeid, ::core::mem::transmute(module.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetScopeSymbolGroup2<P0>(&self, flags: u32, update: P0) -> ::windows_core::Result<IDebugSymbolGroup2>
where
P0: ::windows_core::IntoParam<IDebugSymbolGroup2>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetScopeSymbolGroup2)(::windows_core::Interface::as_raw(self), flags, update.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn CreateSymbolGroup2(&self) -> ::windows_core::Result<IDebugSymbolGroup2> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).CreateSymbolGroup2)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn StartSymbolMatchWide<P0>(&self, pattern: P0) -> ::windows_core::Result<u64>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).StartSymbolMatchWide)(::windows_core::Interface::as_raw(self), pattern.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn GetNextSymbolMatchWide(&self, handle: u64, buffer: ::core::option::Option<&mut [u16]>, matchsize: ::core::option::Option<*mut u32>, offset: ::core::option::Option<*mut u64>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetNextSymbolMatchWide)(::windows_core::Interface::as_raw(self), handle, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(matchsize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(offset.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn ReloadWide<P0>(&self, module: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).ReloadWide)(::windows_core::Interface::as_raw(self), module.into_param().abi()).ok()
}
pub unsafe fn GetSymbolPathWide(&self, buffer: ::core::option::Option<&mut [u16]>, pathsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSymbolPathWide)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(pathsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetSymbolPathWide<P0>(&self, path: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).SetSymbolPathWide)(::windows_core::Interface::as_raw(self), path.into_param().abi()).ok()
}
pub unsafe fn AppendSymbolPathWide<P0>(&self, addition: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).AppendSymbolPathWide)(::windows_core::Interface::as_raw(self), addition.into_param().abi()).ok()
}
pub unsafe fn GetImagePathWide(&self, buffer: ::core::option::Option<&mut [u16]>, pathsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetImagePathWide)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(pathsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetImagePathWide<P0>(&self, path: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).SetImagePathWide)(::windows_core::Interface::as_raw(self), path.into_param().abi()).ok()
}
pub unsafe fn AppendImagePathWide<P0>(&self, addition: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).AppendImagePathWide)(::windows_core::Interface::as_raw(self), addition.into_param().abi()).ok()
}
pub unsafe fn GetSourcePathWide(&self, buffer: ::core::option::Option<&mut [u16]>, pathsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSourcePathWide)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(pathsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetSourcePathElementWide(&self, index: u32, buffer: ::core::option::Option<&mut [u16]>, elementsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSourcePathElementWide)(::windows_core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(elementsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetSourcePathWide<P0>(&self, path: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).SetSourcePathWide)(::windows_core::Interface::as_raw(self), path.into_param().abi()).ok()
}
pub unsafe fn AppendSourcePathWide<P0>(&self, addition: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).AppendSourcePathWide)(::windows_core::Interface::as_raw(self), addition.into_param().abi()).ok()
}
pub unsafe fn FindSourceFileWide<P0>(&self, startelement: u32, file: P0, flags: u32, foundelement: ::core::option::Option<*mut u32>, buffer: ::core::option::Option<&mut [u16]>, foundsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).FindSourceFileWide)(::windows_core::Interface::as_raw(self), startelement, file.into_param().abi(), flags, ::core::mem::transmute(foundelement.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(foundsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetSourceFileLineOffsetsWide<P0>(&self, file: P0, buffer: ::core::option::Option<&mut [u64]>, filelines: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).GetSourceFileLineOffsetsWide)(::windows_core::Interface::as_raw(self), file.into_param().abi(), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(filelines.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetModuleVersionInformationWide<P0>(&self, index: u32, base: u64, item: P0, buffer: ::core::option::Option<*mut ::core::ffi::c_void>, buffersize: u32, verinfosize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).GetModuleVersionInformationWide)(::windows_core::Interface::as_raw(self), index, base, item.into_param().abi(), ::core::mem::transmute(buffer.unwrap_or(::std::ptr::null_mut())), buffersize, ::core::mem::transmute(verinfosize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetModuleNameStringWide(&self, which: u32, index: u32, base: u64, buffer: ::core::option::Option<&mut [u16]>, namesize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetModuleNameStringWide)(::windows_core::Interface::as_raw(self), which, index, base, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetConstantNameWide(&self, module: u64, typeid: u32, value: u64, namebuffer: ::core::option::Option<&mut [u16]>, namesize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetConstantNameWide)(::windows_core::Interface::as_raw(self), module, typeid, value, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetFieldNameWide(&self, module: u64, typeid: u32, fieldindex: u32, namebuffer: ::core::option::Option<&mut [u16]>, namesize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetFieldNameWide)(::windows_core::Interface::as_raw(self), module, typeid, fieldindex, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn IsManagedModule(&self, index: u32, base: u64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).IsManagedModule)(::windows_core::Interface::as_raw(self), index, base).ok()
}
pub unsafe fn GetModuleByModuleName2<P0>(&self, name: P0, startindex: u32, flags: u32, index: ::core::option::Option<*mut u32>, base: ::core::option::Option<*mut u64>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).GetModuleByModuleName2)(::windows_core::Interface::as_raw(self), name.into_param().abi(), startindex, flags, ::core::mem::transmute(index.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(base.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetModuleByModuleName2Wide<P0>(&self, name: P0, startindex: u32, flags: u32, index: ::core::option::Option<*mut u32>, base: ::core::option::Option<*mut u64>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).GetModuleByModuleName2Wide)(::windows_core::Interface::as_raw(self), name.into_param().abi(), startindex, flags, ::core::mem::transmute(index.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(base.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetModuleByOffset2(&self, offset: u64, startindex: u32, flags: u32, index: ::core::option::Option<*mut u32>, base: ::core::option::Option<*mut u64>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetModuleByOffset2)(::windows_core::Interface::as_raw(self), offset, startindex, flags, ::core::mem::transmute(index.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(base.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn AddSyntheticModule<P0, P1>(&self, base: u64, size: u32, imagepath: P0, modulename: P1, flags: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
P1: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).AddSyntheticModule)(::windows_core::Interface::as_raw(self), base, size, imagepath.into_param().abi(), modulename.into_param().abi(), flags).ok()
}
pub unsafe fn AddSyntheticModuleWide<P0, P1>(&self, base: u64, size: u32, imagepath: P0, modulename: P1, flags: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
P1: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).AddSyntheticModuleWide)(::windows_core::Interface::as_raw(self), base, size, imagepath.into_param().abi(), modulename.into_param().abi(), flags).ok()
}
pub unsafe fn RemoveSyntheticModule(&self, base: u64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).RemoveSyntheticModule)(::windows_core::Interface::as_raw(self), base).ok()
}
pub unsafe fn GetCurrentScopeFrameIndex(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetCurrentScopeFrameIndex)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetScopeFrameByIndex(&self, index: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetScopeFrameByIndex)(::windows_core::Interface::as_raw(self), index).ok()
}
pub unsafe fn SetScopeFromJitDebugInfo(&self, outputcontrol: u32, infooffset: u64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetScopeFromJitDebugInfo)(::windows_core::Interface::as_raw(self), outputcontrol, infooffset).ok()
}
pub unsafe fn SetScopeFromStoredEvent(&self) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetScopeFromStoredEvent)(::windows_core::Interface::as_raw(self)).ok()
}
pub unsafe fn OutputSymbolByOffset(&self, outputcontrol: u32, flags: u32, offset: u64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).OutputSymbolByOffset)(::windows_core::Interface::as_raw(self), outputcontrol, flags, offset).ok()
}
pub unsafe fn GetFunctionEntryByOffset(&self, offset: u64, flags: u32, buffer: ::core::option::Option<*mut ::core::ffi::c_void>, buffersize: u32, bufferneeded: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetFunctionEntryByOffset)(::windows_core::Interface::as_raw(self), offset, flags, ::core::mem::transmute(buffer.unwrap_or(::std::ptr::null_mut())), buffersize, ::core::mem::transmute(bufferneeded.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetFieldTypeAndOffset<P0>(&self, module: u64, containertypeid: u32, field: P0, fieldtypeid: ::core::option::Option<*mut u32>, offset: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).GetFieldTypeAndOffset)(::windows_core::Interface::as_raw(self), module, containertypeid, field.into_param().abi(), ::core::mem::transmute(fieldtypeid.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(offset.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetFieldTypeAndOffsetWide<P0>(&self, module: u64, containertypeid: u32, field: P0, fieldtypeid: ::core::option::Option<*mut u32>, offset: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).GetFieldTypeAndOffsetWide)(::windows_core::Interface::as_raw(self), module, containertypeid, field.into_param().abi(), ::core::mem::transmute(fieldtypeid.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(offset.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn AddSyntheticSymbol<P0>(&self, offset: u64, size: u32, name: P0, flags: u32, id: ::core::option::Option<*mut DEBUG_MODULE_AND_ID>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).AddSyntheticSymbol)(::windows_core::Interface::as_raw(self), offset, size, name.into_param().abi(), flags, ::core::mem::transmute(id.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn AddSyntheticSymbolWide<P0>(&self, offset: u64, size: u32, name: P0, flags: u32, id: ::core::option::Option<*mut DEBUG_MODULE_AND_ID>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).AddSyntheticSymbolWide)(::windows_core::Interface::as_raw(self), offset, size, name.into_param().abi(), flags, ::core::mem::transmute(id.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn RemoveSyntheticSymbol(&self, id: *const DEBUG_MODULE_AND_ID) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).RemoveSyntheticSymbol)(::windows_core::Interface::as_raw(self), id).ok()
}
pub unsafe fn GetSymbolEntriesByOffset(&self, offset: u64, flags: u32, ids: ::core::option::Option<*mut DEBUG_MODULE_AND_ID>, displacements: ::core::option::Option<*mut u64>, idscount: u32, entries: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSymbolEntriesByOffset)(::windows_core::Interface::as_raw(self), offset, flags, ::core::mem::transmute(ids.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(displacements.unwrap_or(::std::ptr::null_mut())), idscount, ::core::mem::transmute(entries.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetSymbolEntriesByName<P0>(&self, symbol: P0, flags: u32, ids: ::core::option::Option<&mut [DEBUG_MODULE_AND_ID]>, entries: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).GetSymbolEntriesByName)(::windows_core::Interface::as_raw(self), symbol.into_param().abi(), flags, ::core::mem::transmute(ids.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ids.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(entries.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetSymbolEntriesByNameWide<P0>(&self, symbol: P0, flags: u32, ids: ::core::option::Option<&mut [DEBUG_MODULE_AND_ID]>, entries: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).GetSymbolEntriesByNameWide)(::windows_core::Interface::as_raw(self), symbol.into_param().abi(), flags, ::core::mem::transmute(ids.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ids.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(entries.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetSymbolEntryByToken(&self, modulebase: u64, token: u32) -> ::windows_core::Result<DEBUG_MODULE_AND_ID> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetSymbolEntryByToken)(::windows_core::Interface::as_raw(self), modulebase, token, &mut result__).from_abi(result__)
}
pub unsafe fn GetSymbolEntryInformation(&self, id: *const DEBUG_MODULE_AND_ID, info: *mut DEBUG_SYMBOL_ENTRY) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSymbolEntryInformation)(::windows_core::Interface::as_raw(self), id, info).ok()
}
pub unsafe fn GetSymbolEntryString(&self, id: *const DEBUG_MODULE_AND_ID, which: u32, buffer: ::core::option::Option<&mut [u8]>, stringsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSymbolEntryString)(::windows_core::Interface::as_raw(self), id, which, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(stringsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetSymbolEntryStringWide(&self, id: *const DEBUG_MODULE_AND_ID, which: u32, buffer: ::core::option::Option<&mut [u16]>, stringsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSymbolEntryStringWide)(::windows_core::Interface::as_raw(self), id, which, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(stringsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetSymbolEntryOffsetRegions(&self, id: *const DEBUG_MODULE_AND_ID, flags: u32, regions: ::core::option::Option<&mut [DEBUG_OFFSET_REGION]>, regionsavail: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSymbolEntryOffsetRegions)(::windows_core::Interface::as_raw(self), id, flags, ::core::mem::transmute(regions.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), regions.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(regionsavail.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetSymbolEntryBySymbolEntry(&self, fromid: *const DEBUG_MODULE_AND_ID, flags: u32) -> ::windows_core::Result<DEBUG_MODULE_AND_ID> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetSymbolEntryBySymbolEntry)(::windows_core::Interface::as_raw(self), fromid, flags, &mut result__).from_abi(result__)
}
pub unsafe fn GetSourceEntriesByOffset(&self, offset: u64, flags: u32, entries: ::core::option::Option<&mut [DEBUG_SYMBOL_SOURCE_ENTRY]>, entriesavail: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSourceEntriesByOffset)(::windows_core::Interface::as_raw(self), offset, flags, ::core::mem::transmute(entries.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), entries.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(entriesavail.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetSourceEntriesByLine<P0>(&self, line: u32, file: P0, flags: u32, entries: ::core::option::Option<&mut [DEBUG_SYMBOL_SOURCE_ENTRY]>, entriesavail: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).GetSourceEntriesByLine)(::windows_core::Interface::as_raw(self), line, file.into_param().abi(), flags, ::core::mem::transmute(entries.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), entries.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(entriesavail.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetSourceEntriesByLineWide<P0>(&self, line: u32, file: P0, flags: u32, entries: ::core::option::Option<&mut [DEBUG_SYMBOL_SOURCE_ENTRY]>, entriesavail: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).GetSourceEntriesByLineWide)(::windows_core::Interface::as_raw(self), line, file.into_param().abi(), flags, ::core::mem::transmute(entries.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), entries.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(entriesavail.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetSourceEntryString(&self, entry: *const DEBUG_SYMBOL_SOURCE_ENTRY, which: u32, buffer: ::core::option::Option<&mut [u8]>, stringsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSourceEntryString)(::windows_core::Interface::as_raw(self), entry, which, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(stringsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetSourceEntryStringWide(&self, entry: *const DEBUG_SYMBOL_SOURCE_ENTRY, which: u32, buffer: ::core::option::Option<&mut [u16]>, stringsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSourceEntryStringWide)(::windows_core::Interface::as_raw(self), entry, which, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(stringsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetSourceEntryOffsetRegions(&self, entry: *const DEBUG_SYMBOL_SOURCE_ENTRY, flags: u32, regions: ::core::option::Option<&mut [DEBUG_OFFSET_REGION]>, regionsavail: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSourceEntryOffsetRegions)(::windows_core::Interface::as_raw(self), entry, flags, ::core::mem::transmute(regions.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), regions.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(regionsavail.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetSourceEntryBySourceEntry(&self, fromentry: *const DEBUG_SYMBOL_SOURCE_ENTRY, flags: u32, toentry: *mut DEBUG_SYMBOL_SOURCE_ENTRY) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSourceEntryBySourceEntry)(::windows_core::Interface::as_raw(self), fromentry, flags, toentry).ok()
}
}
::windows_core::imp::interface_hierarchy!(IDebugSymbols3, ::windows_core::IUnknown);
unsafe impl ::windows_core::Interface for IDebugSymbols3 {
type Vtable = IDebugSymbols3_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IDebugSymbols3 {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0xf02fbecc_50ac_4f36_9ad9_c975e8f32ff8);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugSymbols3_Vtbl {
pub base__: ::windows_core::IUnknown_Vtbl,
pub GetSymbolOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: *mut u32) -> ::windows_core::HRESULT,
pub AddSymbolOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows_core::HRESULT,
pub RemoveSymbolOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows_core::HRESULT,
pub SetSymbolOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows_core::HRESULT,
pub GetNameByOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, namebuffer: ::windows_core::PSTR, namebuffersize: u32, namesize: *mut u32, displacement: *mut u64) -> ::windows_core::HRESULT,
pub GetOffsetByName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, symbol: ::windows_core::PCSTR, offset: *mut u64) -> ::windows_core::HRESULT,
pub GetNearNameByOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, delta: i32, namebuffer: ::windows_core::PSTR, namebuffersize: u32, namesize: *mut u32, displacement: *mut u64) -> ::windows_core::HRESULT,
pub GetLineByOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, line: *mut u32, filebuffer: ::windows_core::PSTR, filebuffersize: u32, filesize: *mut u32, displacement: *mut u64) -> ::windows_core::HRESULT,
pub GetOffsetByLine: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, line: u32, file: ::windows_core::PCSTR, offset: *mut u64) -> ::windows_core::HRESULT,
pub GetNumberModules: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, loaded: *mut u32, unloaded: *mut u32) -> ::windows_core::HRESULT,
pub GetModuleByIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, base: *mut u64) -> ::windows_core::HRESULT,
pub GetModuleByModuleName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, name: ::windows_core::PCSTR, startindex: u32, index: *mut u32, base: *mut u64) -> ::windows_core::HRESULT,
pub GetModuleByOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, startindex: u32, index: *mut u32, base: *mut u64) -> ::windows_core::HRESULT,
pub GetModuleNames: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, base: u64, imagenamebuffer: ::windows_core::PSTR, imagenamebuffersize: u32, imagenamesize: *mut u32, modulenamebuffer: ::windows_core::PSTR, modulenamebuffersize: u32, modulenamesize: *mut u32, loadedimagenamebuffer: ::windows_core::PSTR, loadedimagenamebuffersize: u32, loadedimagenamesize: *mut u32) -> ::windows_core::HRESULT,
pub GetModuleParameters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: u32, bases: *const u64, start: u32, params: *mut DEBUG_MODULE_PARAMETERS) -> ::windows_core::HRESULT,
pub GetSymbolModule: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, symbol: ::windows_core::PCSTR, base: *mut u64) -> ::windows_core::HRESULT,
pub GetTypeName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: u64, typeid: u32, namebuffer: ::windows_core::PSTR, namebuffersize: u32, namesize: *mut u32) -> ::windows_core::HRESULT,
pub GetTypeId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: u64, name: ::windows_core::PCSTR, typeid: *mut u32) -> ::windows_core::HRESULT,
pub GetTypeSize: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: u64, typeid: u32, size: *mut u32) -> ::windows_core::HRESULT,
pub GetFieldOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: u64, typeid: u32, field: ::windows_core::PCSTR, offset: *mut u32) -> ::windows_core::HRESULT,
pub GetSymbolTypeId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, symbol: ::windows_core::PCSTR, typeid: *mut u32, module: *mut u64) -> ::windows_core::HRESULT,
pub GetOffsetTypeId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, typeid: *mut u32, module: *mut u64) -> ::windows_core::HRESULT,
pub ReadTypedDataVirtual: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, module: u64, typeid: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows_core::HRESULT,
pub WriteTypedDataVirtual: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, module: u64, typeid: u32, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows_core::HRESULT,
pub OutputTypedDataVirtual: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, offset: u64, module: u64, typeid: u32, flags: u32) -> ::windows_core::HRESULT,
pub ReadTypedDataPhysical: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, module: u64, typeid: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows_core::HRESULT,
pub WriteTypedDataPhysical: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, module: u64, typeid: u32, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows_core::HRESULT,
pub OutputTypedDataPhysical: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, offset: u64, module: u64, typeid: u32, flags: u32) -> ::windows_core::HRESULT,
#[cfg(feature = "Win32_Foundation")]
pub GetScope: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, instructionoffset: *mut u64, scopeframe: *mut DEBUG_STACK_FRAME, scopecontext: *mut ::core::ffi::c_void, scopecontextsize: u32) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
GetScope: usize,
#[cfg(feature = "Win32_Foundation")]
pub SetScope: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, instructionoffset: u64, scopeframe: *const DEBUG_STACK_FRAME, scopecontext: *const ::core::ffi::c_void, scopecontextsize: u32) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
SetScope: usize,
pub ResetScope: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub GetScopeSymbolGroup: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, update: *mut ::core::ffi::c_void, symbols: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub CreateSymbolGroup: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, group: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub StartSymbolMatch: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pattern: ::windows_core::PCSTR, handle: *mut u64) -> ::windows_core::HRESULT,
pub GetNextSymbolMatch: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64, buffer: ::windows_core::PSTR, buffersize: u32, matchsize: *mut u32, offset: *mut u64) -> ::windows_core::HRESULT,
pub EndSymbolMatch: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64) -> ::windows_core::HRESULT,
pub Reload: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub GetSymbolPath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PSTR, buffersize: u32, pathsize: *mut u32) -> ::windows_core::HRESULT,
pub SetSymbolPath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, path: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub AppendSymbolPath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, addition: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub GetImagePath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PSTR, buffersize: u32, pathsize: *mut u32) -> ::windows_core::HRESULT,
pub SetImagePath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, path: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub AppendImagePath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, addition: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub GetSourcePath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PSTR, buffersize: u32, pathsize: *mut u32) -> ::windows_core::HRESULT,
pub GetSourcePathElement: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows_core::PSTR, buffersize: u32, elementsize: *mut u32) -> ::windows_core::HRESULT,
pub SetSourcePath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, path: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub AppendSourcePath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, addition: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub FindSourceFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, startelement: u32, file: ::windows_core::PCSTR, flags: u32, foundelement: *mut u32, buffer: ::windows_core::PSTR, buffersize: u32, foundsize: *mut u32) -> ::windows_core::HRESULT,
pub GetSourceFileLineOffsets: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, file: ::windows_core::PCSTR, buffer: *mut u64, bufferlines: u32, filelines: *mut u32) -> ::windows_core::HRESULT,
pub GetModuleVersionInformation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, base: u64, item: ::windows_core::PCSTR, buffer: *mut ::core::ffi::c_void, buffersize: u32, verinfosize: *mut u32) -> ::windows_core::HRESULT,
pub GetModuleNameString: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, which: u32, index: u32, base: u64, buffer: ::windows_core::PSTR, buffersize: u32, namesize: *mut u32) -> ::windows_core::HRESULT,
pub GetConstantName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: u64, typeid: u32, value: u64, namebuffer: ::windows_core::PSTR, namebuffersize: u32, namesize: *mut u32) -> ::windows_core::HRESULT,
pub GetFieldName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: u64, typeid: u32, fieldindex: u32, namebuffer: ::windows_core::PSTR, namebuffersize: u32, namesize: *mut u32) -> ::windows_core::HRESULT,
pub GetTypeOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: *mut u32) -> ::windows_core::HRESULT,
pub AddTypeOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows_core::HRESULT,
pub RemoveTypeOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows_core::HRESULT,
pub SetTypeOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows_core::HRESULT,
pub GetNameByOffsetWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, namebuffer: ::windows_core::PWSTR, namebuffersize: u32, namesize: *mut u32, displacement: *mut u64) -> ::windows_core::HRESULT,
pub GetOffsetByNameWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, symbol: ::windows_core::PCWSTR, offset: *mut u64) -> ::windows_core::HRESULT,
pub GetNearNameByOffsetWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, delta: i32, namebuffer: ::windows_core::PWSTR, namebuffersize: u32, namesize: *mut u32, displacement: *mut u64) -> ::windows_core::HRESULT,
pub GetLineByOffsetWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, line: *mut u32, filebuffer: ::windows_core::PWSTR, filebuffersize: u32, filesize: *mut u32, displacement: *mut u64) -> ::windows_core::HRESULT,
pub GetOffsetByLineWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, line: u32, file: ::windows_core::PCWSTR, offset: *mut u64) -> ::windows_core::HRESULT,
pub GetModuleByModuleNameWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, name: ::windows_core::PCWSTR, startindex: u32, index: *mut u32, base: *mut u64) -> ::windows_core::HRESULT,
pub GetSymbolModuleWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, symbol: ::windows_core::PCWSTR, base: *mut u64) -> ::windows_core::HRESULT,
pub GetTypeNameWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: u64, typeid: u32, namebuffer: ::windows_core::PWSTR, namebuffersize: u32, namesize: *mut u32) -> ::windows_core::HRESULT,
pub GetTypeIdWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: u64, name: ::windows_core::PCWSTR, typeid: *mut u32) -> ::windows_core::HRESULT,
pub GetFieldOffsetWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: u64, typeid: u32, field: ::windows_core::PCWSTR, offset: *mut u32) -> ::windows_core::HRESULT,
pub GetSymbolTypeIdWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, symbol: ::windows_core::PCWSTR, typeid: *mut u32, module: *mut u64) -> ::windows_core::HRESULT,
pub GetScopeSymbolGroup2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, update: *mut ::core::ffi::c_void, symbols: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub CreateSymbolGroup2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, group: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub StartSymbolMatchWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pattern: ::windows_core::PCWSTR, handle: *mut u64) -> ::windows_core::HRESULT,
pub GetNextSymbolMatchWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64, buffer: ::windows_core::PWSTR, buffersize: u32, matchsize: *mut u32, offset: *mut u64) -> ::windows_core::HRESULT,
pub ReloadWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
pub GetSymbolPathWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PWSTR, buffersize: u32, pathsize: *mut u32) -> ::windows_core::HRESULT,
pub SetSymbolPathWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, path: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
pub AppendSymbolPathWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, addition: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
pub GetImagePathWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PWSTR, buffersize: u32, pathsize: *mut u32) -> ::windows_core::HRESULT,
pub SetImagePathWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, path: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
pub AppendImagePathWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, addition: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
pub GetSourcePathWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PWSTR, buffersize: u32, pathsize: *mut u32) -> ::windows_core::HRESULT,
pub GetSourcePathElementWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows_core::PWSTR, buffersize: u32, elementsize: *mut u32) -> ::windows_core::HRESULT,
pub SetSourcePathWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, path: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
pub AppendSourcePathWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, addition: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
pub FindSourceFileWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, startelement: u32, file: ::windows_core::PCWSTR, flags: u32, foundelement: *mut u32, buffer: ::windows_core::PWSTR, buffersize: u32, foundsize: *mut u32) -> ::windows_core::HRESULT,
pub GetSourceFileLineOffsetsWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, file: ::windows_core::PCWSTR, buffer: *mut u64, bufferlines: u32, filelines: *mut u32) -> ::windows_core::HRESULT,
pub GetModuleVersionInformationWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, base: u64, item: ::windows_core::PCWSTR, buffer: *mut ::core::ffi::c_void, buffersize: u32, verinfosize: *mut u32) -> ::windows_core::HRESULT,
pub GetModuleNameStringWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, which: u32, index: u32, base: u64, buffer: ::windows_core::PWSTR, buffersize: u32, namesize: *mut u32) -> ::windows_core::HRESULT,
pub GetConstantNameWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: u64, typeid: u32, value: u64, namebuffer: ::windows_core::PWSTR, namebuffersize: u32, namesize: *mut u32) -> ::windows_core::HRESULT,
pub GetFieldNameWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: u64, typeid: u32, fieldindex: u32, namebuffer: ::windows_core::PWSTR, namebuffersize: u32, namesize: *mut u32) -> ::windows_core::HRESULT,
pub IsManagedModule: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, base: u64) -> ::windows_core::HRESULT,
pub GetModuleByModuleName2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, name: ::windows_core::PCSTR, startindex: u32, flags: u32, index: *mut u32, base: *mut u64) -> ::windows_core::HRESULT,
pub GetModuleByModuleName2Wide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, name: ::windows_core::PCWSTR, startindex: u32, flags: u32, index: *mut u32, base: *mut u64) -> ::windows_core::HRESULT,
pub GetModuleByOffset2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, startindex: u32, flags: u32, index: *mut u32, base: *mut u64) -> ::windows_core::HRESULT,
pub AddSyntheticModule: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, base: u64, size: u32, imagepath: ::windows_core::PCSTR, modulename: ::windows_core::PCSTR, flags: u32) -> ::windows_core::HRESULT,
pub AddSyntheticModuleWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, base: u64, size: u32, imagepath: ::windows_core::PCWSTR, modulename: ::windows_core::PCWSTR, flags: u32) -> ::windows_core::HRESULT,
pub RemoveSyntheticModule: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, base: u64) -> ::windows_core::HRESULT,
pub GetCurrentScopeFrameIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: *mut u32) -> ::windows_core::HRESULT,
pub SetScopeFrameByIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32) -> ::windows_core::HRESULT,
pub SetScopeFromJitDebugInfo: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, infooffset: u64) -> ::windows_core::HRESULT,
pub SetScopeFromStoredEvent: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub OutputSymbolByOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, flags: u32, offset: u64) -> ::windows_core::HRESULT,
pub GetFunctionEntryByOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, flags: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, bufferneeded: *mut u32) -> ::windows_core::HRESULT,
pub GetFieldTypeAndOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: u64, containertypeid: u32, field: ::windows_core::PCSTR, fieldtypeid: *mut u32, offset: *mut u32) -> ::windows_core::HRESULT,
pub GetFieldTypeAndOffsetWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: u64, containertypeid: u32, field: ::windows_core::PCWSTR, fieldtypeid: *mut u32, offset: *mut u32) -> ::windows_core::HRESULT,
pub AddSyntheticSymbol: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, size: u32, name: ::windows_core::PCSTR, flags: u32, id: *mut DEBUG_MODULE_AND_ID) -> ::windows_core::HRESULT,
pub AddSyntheticSymbolWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, size: u32, name: ::windows_core::PCWSTR, flags: u32, id: *mut DEBUG_MODULE_AND_ID) -> ::windows_core::HRESULT,
pub RemoveSyntheticSymbol: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: *const DEBUG_MODULE_AND_ID) -> ::windows_core::HRESULT,
pub GetSymbolEntriesByOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, flags: u32, ids: *mut DEBUG_MODULE_AND_ID, displacements: *mut u64, idscount: u32, entries: *mut u32) -> ::windows_core::HRESULT,
pub GetSymbolEntriesByName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, symbol: ::windows_core::PCSTR, flags: u32, ids: *mut DEBUG_MODULE_AND_ID, idscount: u32, entries: *mut u32) -> ::windows_core::HRESULT,
pub GetSymbolEntriesByNameWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, symbol: ::windows_core::PCWSTR, flags: u32, ids: *mut DEBUG_MODULE_AND_ID, idscount: u32, entries: *mut u32) -> ::windows_core::HRESULT,
pub GetSymbolEntryByToken: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, modulebase: u64, token: u32, id: *mut DEBUG_MODULE_AND_ID) -> ::windows_core::HRESULT,
pub GetSymbolEntryInformation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: *const DEBUG_MODULE_AND_ID, info: *mut DEBUG_SYMBOL_ENTRY) -> ::windows_core::HRESULT,
pub GetSymbolEntryString: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: *const DEBUG_MODULE_AND_ID, which: u32, buffer: ::windows_core::PSTR, buffersize: u32, stringsize: *mut u32) -> ::windows_core::HRESULT,
pub GetSymbolEntryStringWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: *const DEBUG_MODULE_AND_ID, which: u32, buffer: ::windows_core::PWSTR, buffersize: u32, stringsize: *mut u32) -> ::windows_core::HRESULT,
pub GetSymbolEntryOffsetRegions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: *const DEBUG_MODULE_AND_ID, flags: u32, regions: *mut DEBUG_OFFSET_REGION, regionscount: u32, regionsavail: *mut u32) -> ::windows_core::HRESULT,
pub GetSymbolEntryBySymbolEntry: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, fromid: *const DEBUG_MODULE_AND_ID, flags: u32, toid: *mut DEBUG_MODULE_AND_ID) -> ::windows_core::HRESULT,
pub GetSourceEntriesByOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, flags: u32, entries: *mut DEBUG_SYMBOL_SOURCE_ENTRY, entriescount: u32, entriesavail: *mut u32) -> ::windows_core::HRESULT,
pub GetSourceEntriesByLine: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, line: u32, file: ::windows_core::PCSTR, flags: u32, entries: *mut DEBUG_SYMBOL_SOURCE_ENTRY, entriescount: u32, entriesavail: *mut u32) -> ::windows_core::HRESULT,
pub GetSourceEntriesByLineWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, line: u32, file: ::windows_core::PCWSTR, flags: u32, entries: *mut DEBUG_SYMBOL_SOURCE_ENTRY, entriescount: u32, entriesavail: *mut u32) -> ::windows_core::HRESULT,
pub GetSourceEntryString: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, entry: *const DEBUG_SYMBOL_SOURCE_ENTRY, which: u32, buffer: ::windows_core::PSTR, buffersize: u32, stringsize: *mut u32) -> ::windows_core::HRESULT,
pub GetSourceEntryStringWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, entry: *const DEBUG_SYMBOL_SOURCE_ENTRY, which: u32, buffer: ::windows_core::PWSTR, buffersize: u32, stringsize: *mut u32) -> ::windows_core::HRESULT,
pub GetSourceEntryOffsetRegions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, entry: *const DEBUG_SYMBOL_SOURCE_ENTRY, flags: u32, regions: *mut DEBUG_OFFSET_REGION, regionscount: u32, regionsavail: *mut u32) -> ::windows_core::HRESULT,
pub GetSourceEntryBySourceEntry: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, fromentry: *const DEBUG_SYMBOL_SOURCE_ENTRY, flags: u32, toentry: *mut DEBUG_SYMBOL_SOURCE_ENTRY) -> ::windows_core::HRESULT,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IDebugSymbols4(::windows_core::IUnknown);
impl IDebugSymbols4 {
pub unsafe fn GetSymbolOptions(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetSymbolOptions)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn AddSymbolOptions(&self, options: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).AddSymbolOptions)(::windows_core::Interface::as_raw(self), options).ok()
}
pub unsafe fn RemoveSymbolOptions(&self, options: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).RemoveSymbolOptions)(::windows_core::Interface::as_raw(self), options).ok()
}
pub unsafe fn SetSymbolOptions(&self, options: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetSymbolOptions)(::windows_core::Interface::as_raw(self), options).ok()
}
pub unsafe fn GetNameByOffset(&self, offset: u64, namebuffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<*mut u32>, displacement: ::core::option::Option<*mut u64>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetNameByOffset)(::windows_core::Interface::as_raw(self), offset, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(displacement.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetOffsetByName<P0>(&self, symbol: P0) -> ::windows_core::Result<u64>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetOffsetByName)(::windows_core::Interface::as_raw(self), symbol.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn GetNearNameByOffset(&self, offset: u64, delta: i32, namebuffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<*mut u32>, displacement: ::core::option::Option<*mut u64>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetNearNameByOffset)(::windows_core::Interface::as_raw(self), offset, delta, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(displacement.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetLineByOffset(&self, offset: u64, line: ::core::option::Option<*mut u32>, filebuffer: ::core::option::Option<&mut [u8]>, filesize: ::core::option::Option<*mut u32>, displacement: ::core::option::Option<*mut u64>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetLineByOffset)(::windows_core::Interface::as_raw(self), offset, ::core::mem::transmute(line.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(filebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), filebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(filesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(displacement.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetOffsetByLine<P0>(&self, line: u32, file: P0) -> ::windows_core::Result<u64>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetOffsetByLine)(::windows_core::Interface::as_raw(self), line, file.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn GetNumberModules(&self, loaded: *mut u32, unloaded: *mut u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetNumberModules)(::windows_core::Interface::as_raw(self), loaded, unloaded).ok()
}
pub unsafe fn GetModuleByIndex(&self, index: u32) -> ::windows_core::Result<u64> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetModuleByIndex)(::windows_core::Interface::as_raw(self), index, &mut result__).from_abi(result__)
}
pub unsafe fn GetModuleByModuleName<P0>(&self, name: P0, startindex: u32, index: ::core::option::Option<*mut u32>, base: ::core::option::Option<*mut u64>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).GetModuleByModuleName)(::windows_core::Interface::as_raw(self), name.into_param().abi(), startindex, ::core::mem::transmute(index.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(base.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetModuleByOffset(&self, offset: u64, startindex: u32, index: ::core::option::Option<*mut u32>, base: ::core::option::Option<*mut u64>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetModuleByOffset)(::windows_core::Interface::as_raw(self), offset, startindex, ::core::mem::transmute(index.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(base.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetModuleNames(&self, index: u32, base: u64, imagenamebuffer: ::core::option::Option<&mut [u8]>, imagenamesize: ::core::option::Option<*mut u32>, modulenamebuffer: ::core::option::Option<&mut [u8]>, modulenamesize: ::core::option::Option<*mut u32>, loadedimagenamebuffer: ::core::option::Option<&mut [u8]>, loadedimagenamesize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetModuleNames)(
::windows_core::Interface::as_raw(self),
index,
base,
::core::mem::transmute(imagenamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
imagenamebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(imagenamesize.unwrap_or(::std::ptr::null_mut())),
::core::mem::transmute(modulenamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
modulenamebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(modulenamesize.unwrap_or(::std::ptr::null_mut())),
::core::mem::transmute(loadedimagenamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
loadedimagenamebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(loadedimagenamesize.unwrap_or(::std::ptr::null_mut())),
)
.ok()
}
pub unsafe fn GetModuleParameters(&self, count: u32, bases: ::core::option::Option<*const u64>, start: u32, params: *mut DEBUG_MODULE_PARAMETERS) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetModuleParameters)(::windows_core::Interface::as_raw(self), count, ::core::mem::transmute(bases.unwrap_or(::std::ptr::null())), start, params).ok()
}
pub unsafe fn GetSymbolModule<P0>(&self, symbol: P0) -> ::windows_core::Result<u64>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetSymbolModule)(::windows_core::Interface::as_raw(self), symbol.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn GetTypeName(&self, module: u64, typeid: u32, namebuffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetTypeName)(::windows_core::Interface::as_raw(self), module, typeid, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetTypeId<P0>(&self, module: u64, name: P0) -> ::windows_core::Result<u32>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetTypeId)(::windows_core::Interface::as_raw(self), module, name.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn GetTypeSize(&self, module: u64, typeid: u32) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetTypeSize)(::windows_core::Interface::as_raw(self), module, typeid, &mut result__).from_abi(result__)
}
pub unsafe fn GetFieldOffset<P0>(&self, module: u64, typeid: u32, field: P0) -> ::windows_core::Result<u32>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetFieldOffset)(::windows_core::Interface::as_raw(self), module, typeid, field.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn GetSymbolTypeId<P0>(&self, symbol: P0, typeid: *mut u32, module: ::core::option::Option<*mut u64>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).GetSymbolTypeId)(::windows_core::Interface::as_raw(self), symbol.into_param().abi(), typeid, ::core::mem::transmute(module.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetOffsetTypeId(&self, offset: u64, typeid: *mut u32, module: ::core::option::Option<*mut u64>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetOffsetTypeId)(::windows_core::Interface::as_raw(self), offset, typeid, ::core::mem::transmute(module.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn ReadTypedDataVirtual(&self, offset: u64, module: u64, typeid: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).ReadTypedDataVirtual)(::windows_core::Interface::as_raw(self), offset, module, typeid, buffer, buffersize, ::core::mem::transmute(bytesread.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn WriteTypedDataVirtual(&self, offset: u64, module: u64, typeid: u32, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).WriteTypedDataVirtual)(::windows_core::Interface::as_raw(self), offset, module, typeid, buffer, buffersize, ::core::mem::transmute(byteswritten.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn OutputTypedDataVirtual(&self, outputcontrol: u32, offset: u64, module: u64, typeid: u32, flags: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).OutputTypedDataVirtual)(::windows_core::Interface::as_raw(self), outputcontrol, offset, module, typeid, flags).ok()
}
pub unsafe fn ReadTypedDataPhysical(&self, offset: u64, module: u64, typeid: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).ReadTypedDataPhysical)(::windows_core::Interface::as_raw(self), offset, module, typeid, buffer, buffersize, ::core::mem::transmute(bytesread.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn WriteTypedDataPhysical(&self, offset: u64, module: u64, typeid: u32, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).WriteTypedDataPhysical)(::windows_core::Interface::as_raw(self), offset, module, typeid, buffer, buffersize, ::core::mem::transmute(byteswritten.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn OutputTypedDataPhysical(&self, outputcontrol: u32, offset: u64, module: u64, typeid: u32, flags: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).OutputTypedDataPhysical)(::windows_core::Interface::as_raw(self), outputcontrol, offset, module, typeid, flags).ok()
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn GetScope(&self, instructionoffset: ::core::option::Option<*mut u64>, scopeframe: ::core::option::Option<*mut DEBUG_STACK_FRAME>, scopecontext: ::core::option::Option<*mut ::core::ffi::c_void>, scopecontextsize: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetScope)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(instructionoffset.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(scopeframe.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(scopecontext.unwrap_or(::std::ptr::null_mut())), scopecontextsize).ok()
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn SetScope(&self, instructionoffset: u64, scopeframe: ::core::option::Option<*const DEBUG_STACK_FRAME>, scopecontext: ::core::option::Option<*const ::core::ffi::c_void>, scopecontextsize: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetScope)(::windows_core::Interface::as_raw(self), instructionoffset, ::core::mem::transmute(scopeframe.unwrap_or(::std::ptr::null())), ::core::mem::transmute(scopecontext.unwrap_or(::std::ptr::null())), scopecontextsize).ok()
}
pub unsafe fn ResetScope(&self) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).ResetScope)(::windows_core::Interface::as_raw(self)).ok()
}
pub unsafe fn GetScopeSymbolGroup<P0>(&self, flags: u32, update: P0) -> ::windows_core::Result<IDebugSymbolGroup>
where
P0: ::windows_core::IntoParam<IDebugSymbolGroup>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetScopeSymbolGroup)(::windows_core::Interface::as_raw(self), flags, update.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn CreateSymbolGroup(&self) -> ::windows_core::Result<IDebugSymbolGroup> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).CreateSymbolGroup)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn StartSymbolMatch<P0>(&self, pattern: P0) -> ::windows_core::Result<u64>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).StartSymbolMatch)(::windows_core::Interface::as_raw(self), pattern.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn GetNextSymbolMatch(&self, handle: u64, buffer: ::core::option::Option<&mut [u8]>, matchsize: ::core::option::Option<*mut u32>, offset: ::core::option::Option<*mut u64>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetNextSymbolMatch)(::windows_core::Interface::as_raw(self), handle, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(matchsize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(offset.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn EndSymbolMatch(&self, handle: u64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).EndSymbolMatch)(::windows_core::Interface::as_raw(self), handle).ok()
}
pub unsafe fn Reload<P0>(&self, module: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).Reload)(::windows_core::Interface::as_raw(self), module.into_param().abi()).ok()
}
pub unsafe fn GetSymbolPath(&self, buffer: ::core::option::Option<&mut [u8]>, pathsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSymbolPath)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(pathsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetSymbolPath<P0>(&self, path: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).SetSymbolPath)(::windows_core::Interface::as_raw(self), path.into_param().abi()).ok()
}
pub unsafe fn AppendSymbolPath<P0>(&self, addition: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).AppendSymbolPath)(::windows_core::Interface::as_raw(self), addition.into_param().abi()).ok()
}
pub unsafe fn GetImagePath(&self, buffer: ::core::option::Option<&mut [u8]>, pathsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetImagePath)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(pathsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetImagePath<P0>(&self, path: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).SetImagePath)(::windows_core::Interface::as_raw(self), path.into_param().abi()).ok()
}
pub unsafe fn AppendImagePath<P0>(&self, addition: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).AppendImagePath)(::windows_core::Interface::as_raw(self), addition.into_param().abi()).ok()
}
pub unsafe fn GetSourcePath(&self, buffer: ::core::option::Option<&mut [u8]>, pathsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSourcePath)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(pathsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetSourcePathElement(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, elementsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSourcePathElement)(::windows_core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(elementsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetSourcePath<P0>(&self, path: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).SetSourcePath)(::windows_core::Interface::as_raw(self), path.into_param().abi()).ok()
}
pub unsafe fn AppendSourcePath<P0>(&self, addition: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).AppendSourcePath)(::windows_core::Interface::as_raw(self), addition.into_param().abi()).ok()
}
pub unsafe fn FindSourceFile<P0>(&self, startelement: u32, file: P0, flags: u32, foundelement: ::core::option::Option<*mut u32>, buffer: ::core::option::Option<&mut [u8]>, foundsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).FindSourceFile)(::windows_core::Interface::as_raw(self), startelement, file.into_param().abi(), flags, ::core::mem::transmute(foundelement.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(foundsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetSourceFileLineOffsets<P0>(&self, file: P0, buffer: ::core::option::Option<&mut [u64]>, filelines: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).GetSourceFileLineOffsets)(::windows_core::Interface::as_raw(self), file.into_param().abi(), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(filelines.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetModuleVersionInformation<P0>(&self, index: u32, base: u64, item: P0, buffer: ::core::option::Option<*mut ::core::ffi::c_void>, buffersize: u32, verinfosize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).GetModuleVersionInformation)(::windows_core::Interface::as_raw(self), index, base, item.into_param().abi(), ::core::mem::transmute(buffer.unwrap_or(::std::ptr::null_mut())), buffersize, ::core::mem::transmute(verinfosize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetModuleNameString(&self, which: u32, index: u32, base: u64, buffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetModuleNameString)(::windows_core::Interface::as_raw(self), which, index, base, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetConstantName(&self, module: u64, typeid: u32, value: u64, namebuffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetConstantName)(::windows_core::Interface::as_raw(self), module, typeid, value, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetFieldName(&self, module: u64, typeid: u32, fieldindex: u32, namebuffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetFieldName)(::windows_core::Interface::as_raw(self), module, typeid, fieldindex, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetTypeOptions(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetTypeOptions)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn AddTypeOptions(&self, options: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).AddTypeOptions)(::windows_core::Interface::as_raw(self), options).ok()
}
pub unsafe fn RemoveTypeOptions(&self, options: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).RemoveTypeOptions)(::windows_core::Interface::as_raw(self), options).ok()
}
pub unsafe fn SetTypeOptions(&self, options: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetTypeOptions)(::windows_core::Interface::as_raw(self), options).ok()
}
pub unsafe fn GetNameByOffsetWide(&self, offset: u64, namebuffer: ::core::option::Option<&mut [u16]>, namesize: ::core::option::Option<*mut u32>, displacement: ::core::option::Option<*mut u64>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetNameByOffsetWide)(::windows_core::Interface::as_raw(self), offset, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(displacement.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetOffsetByNameWide<P0>(&self, symbol: P0) -> ::windows_core::Result<u64>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetOffsetByNameWide)(::windows_core::Interface::as_raw(self), symbol.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn GetNearNameByOffsetWide(&self, offset: u64, delta: i32, namebuffer: ::core::option::Option<&mut [u16]>, namesize: ::core::option::Option<*mut u32>, displacement: ::core::option::Option<*mut u64>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetNearNameByOffsetWide)(::windows_core::Interface::as_raw(self), offset, delta, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(displacement.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetLineByOffsetWide(&self, offset: u64, line: ::core::option::Option<*mut u32>, filebuffer: ::core::option::Option<&mut [u16]>, filesize: ::core::option::Option<*mut u32>, displacement: ::core::option::Option<*mut u64>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetLineByOffsetWide)(::windows_core::Interface::as_raw(self), offset, ::core::mem::transmute(line.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(filebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), filebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(filesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(displacement.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetOffsetByLineWide<P0>(&self, line: u32, file: P0) -> ::windows_core::Result<u64>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetOffsetByLineWide)(::windows_core::Interface::as_raw(self), line, file.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn GetModuleByModuleNameWide<P0>(&self, name: P0, startindex: u32, index: ::core::option::Option<*mut u32>, base: ::core::option::Option<*mut u64>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).GetModuleByModuleNameWide)(::windows_core::Interface::as_raw(self), name.into_param().abi(), startindex, ::core::mem::transmute(index.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(base.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetSymbolModuleWide<P0>(&self, symbol: P0) -> ::windows_core::Result<u64>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetSymbolModuleWide)(::windows_core::Interface::as_raw(self), symbol.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn GetTypeNameWide(&self, module: u64, typeid: u32, namebuffer: ::core::option::Option<&mut [u16]>, namesize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetTypeNameWide)(::windows_core::Interface::as_raw(self), module, typeid, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetTypeIdWide<P0>(&self, module: u64, name: P0) -> ::windows_core::Result<u32>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetTypeIdWide)(::windows_core::Interface::as_raw(self), module, name.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn GetFieldOffsetWide<P0>(&self, module: u64, typeid: u32, field: P0) -> ::windows_core::Result<u32>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetFieldOffsetWide)(::windows_core::Interface::as_raw(self), module, typeid, field.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn GetSymbolTypeIdWide<P0>(&self, symbol: P0, typeid: *mut u32, module: ::core::option::Option<*mut u64>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).GetSymbolTypeIdWide)(::windows_core::Interface::as_raw(self), symbol.into_param().abi(), typeid, ::core::mem::transmute(module.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetScopeSymbolGroup2<P0>(&self, flags: u32, update: P0) -> ::windows_core::Result<IDebugSymbolGroup2>
where
P0: ::windows_core::IntoParam<IDebugSymbolGroup2>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetScopeSymbolGroup2)(::windows_core::Interface::as_raw(self), flags, update.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn CreateSymbolGroup2(&self) -> ::windows_core::Result<IDebugSymbolGroup2> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).CreateSymbolGroup2)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn StartSymbolMatchWide<P0>(&self, pattern: P0) -> ::windows_core::Result<u64>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).StartSymbolMatchWide)(::windows_core::Interface::as_raw(self), pattern.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn GetNextSymbolMatchWide(&self, handle: u64, buffer: ::core::option::Option<&mut [u16]>, matchsize: ::core::option::Option<*mut u32>, offset: ::core::option::Option<*mut u64>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetNextSymbolMatchWide)(::windows_core::Interface::as_raw(self), handle, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(matchsize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(offset.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn ReloadWide<P0>(&self, module: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).ReloadWide)(::windows_core::Interface::as_raw(self), module.into_param().abi()).ok()
}
pub unsafe fn GetSymbolPathWide(&self, buffer: ::core::option::Option<&mut [u16]>, pathsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSymbolPathWide)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(pathsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetSymbolPathWide<P0>(&self, path: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).SetSymbolPathWide)(::windows_core::Interface::as_raw(self), path.into_param().abi()).ok()
}
pub unsafe fn AppendSymbolPathWide<P0>(&self, addition: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).AppendSymbolPathWide)(::windows_core::Interface::as_raw(self), addition.into_param().abi()).ok()
}
pub unsafe fn GetImagePathWide(&self, buffer: ::core::option::Option<&mut [u16]>, pathsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetImagePathWide)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(pathsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetImagePathWide<P0>(&self, path: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).SetImagePathWide)(::windows_core::Interface::as_raw(self), path.into_param().abi()).ok()
}
pub unsafe fn AppendImagePathWide<P0>(&self, addition: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).AppendImagePathWide)(::windows_core::Interface::as_raw(self), addition.into_param().abi()).ok()
}
pub unsafe fn GetSourcePathWide(&self, buffer: ::core::option::Option<&mut [u16]>, pathsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSourcePathWide)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(pathsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetSourcePathElementWide(&self, index: u32, buffer: ::core::option::Option<&mut [u16]>, elementsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSourcePathElementWide)(::windows_core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(elementsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetSourcePathWide<P0>(&self, path: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).SetSourcePathWide)(::windows_core::Interface::as_raw(self), path.into_param().abi()).ok()
}
pub unsafe fn AppendSourcePathWide<P0>(&self, addition: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).AppendSourcePathWide)(::windows_core::Interface::as_raw(self), addition.into_param().abi()).ok()
}
pub unsafe fn FindSourceFileWide<P0>(&self, startelement: u32, file: P0, flags: u32, foundelement: ::core::option::Option<*mut u32>, buffer: ::core::option::Option<&mut [u16]>, foundsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).FindSourceFileWide)(::windows_core::Interface::as_raw(self), startelement, file.into_param().abi(), flags, ::core::mem::transmute(foundelement.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(foundsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetSourceFileLineOffsetsWide<P0>(&self, file: P0, buffer: ::core::option::Option<&mut [u64]>, filelines: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).GetSourceFileLineOffsetsWide)(::windows_core::Interface::as_raw(self), file.into_param().abi(), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(filelines.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetModuleVersionInformationWide<P0>(&self, index: u32, base: u64, item: P0, buffer: ::core::option::Option<*mut ::core::ffi::c_void>, buffersize: u32, verinfosize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).GetModuleVersionInformationWide)(::windows_core::Interface::as_raw(self), index, base, item.into_param().abi(), ::core::mem::transmute(buffer.unwrap_or(::std::ptr::null_mut())), buffersize, ::core::mem::transmute(verinfosize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetModuleNameStringWide(&self, which: u32, index: u32, base: u64, buffer: ::core::option::Option<&mut [u16]>, namesize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetModuleNameStringWide)(::windows_core::Interface::as_raw(self), which, index, base, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetConstantNameWide(&self, module: u64, typeid: u32, value: u64, namebuffer: ::core::option::Option<&mut [u16]>, namesize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetConstantNameWide)(::windows_core::Interface::as_raw(self), module, typeid, value, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetFieldNameWide(&self, module: u64, typeid: u32, fieldindex: u32, namebuffer: ::core::option::Option<&mut [u16]>, namesize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetFieldNameWide)(::windows_core::Interface::as_raw(self), module, typeid, fieldindex, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn IsManagedModule(&self, index: u32, base: u64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).IsManagedModule)(::windows_core::Interface::as_raw(self), index, base).ok()
}
pub unsafe fn GetModuleByModuleName2<P0>(&self, name: P0, startindex: u32, flags: u32, index: ::core::option::Option<*mut u32>, base: ::core::option::Option<*mut u64>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).GetModuleByModuleName2)(::windows_core::Interface::as_raw(self), name.into_param().abi(), startindex, flags, ::core::mem::transmute(index.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(base.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetModuleByModuleName2Wide<P0>(&self, name: P0, startindex: u32, flags: u32, index: ::core::option::Option<*mut u32>, base: ::core::option::Option<*mut u64>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).GetModuleByModuleName2Wide)(::windows_core::Interface::as_raw(self), name.into_param().abi(), startindex, flags, ::core::mem::transmute(index.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(base.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetModuleByOffset2(&self, offset: u64, startindex: u32, flags: u32, index: ::core::option::Option<*mut u32>, base: ::core::option::Option<*mut u64>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetModuleByOffset2)(::windows_core::Interface::as_raw(self), offset, startindex, flags, ::core::mem::transmute(index.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(base.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn AddSyntheticModule<P0, P1>(&self, base: u64, size: u32, imagepath: P0, modulename: P1, flags: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
P1: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).AddSyntheticModule)(::windows_core::Interface::as_raw(self), base, size, imagepath.into_param().abi(), modulename.into_param().abi(), flags).ok()
}
pub unsafe fn AddSyntheticModuleWide<P0, P1>(&self, base: u64, size: u32, imagepath: P0, modulename: P1, flags: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
P1: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).AddSyntheticModuleWide)(::windows_core::Interface::as_raw(self), base, size, imagepath.into_param().abi(), modulename.into_param().abi(), flags).ok()
}
pub unsafe fn RemoveSyntheticModule(&self, base: u64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).RemoveSyntheticModule)(::windows_core::Interface::as_raw(self), base).ok()
}
pub unsafe fn GetCurrentScopeFrameIndex(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetCurrentScopeFrameIndex)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetScopeFrameByIndex(&self, index: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetScopeFrameByIndex)(::windows_core::Interface::as_raw(self), index).ok()
}
pub unsafe fn SetScopeFromJitDebugInfo(&self, outputcontrol: u32, infooffset: u64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetScopeFromJitDebugInfo)(::windows_core::Interface::as_raw(self), outputcontrol, infooffset).ok()
}
pub unsafe fn SetScopeFromStoredEvent(&self) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetScopeFromStoredEvent)(::windows_core::Interface::as_raw(self)).ok()
}
pub unsafe fn OutputSymbolByOffset(&self, outputcontrol: u32, flags: u32, offset: u64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).OutputSymbolByOffset)(::windows_core::Interface::as_raw(self), outputcontrol, flags, offset).ok()
}
pub unsafe fn GetFunctionEntryByOffset(&self, offset: u64, flags: u32, buffer: ::core::option::Option<*mut ::core::ffi::c_void>, buffersize: u32, bufferneeded: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetFunctionEntryByOffset)(::windows_core::Interface::as_raw(self), offset, flags, ::core::mem::transmute(buffer.unwrap_or(::std::ptr::null_mut())), buffersize, ::core::mem::transmute(bufferneeded.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetFieldTypeAndOffset<P0>(&self, module: u64, containertypeid: u32, field: P0, fieldtypeid: ::core::option::Option<*mut u32>, offset: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).GetFieldTypeAndOffset)(::windows_core::Interface::as_raw(self), module, containertypeid, field.into_param().abi(), ::core::mem::transmute(fieldtypeid.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(offset.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetFieldTypeAndOffsetWide<P0>(&self, module: u64, containertypeid: u32, field: P0, fieldtypeid: ::core::option::Option<*mut u32>, offset: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).GetFieldTypeAndOffsetWide)(::windows_core::Interface::as_raw(self), module, containertypeid, field.into_param().abi(), ::core::mem::transmute(fieldtypeid.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(offset.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn AddSyntheticSymbol<P0>(&self, offset: u64, size: u32, name: P0, flags: u32, id: ::core::option::Option<*mut DEBUG_MODULE_AND_ID>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).AddSyntheticSymbol)(::windows_core::Interface::as_raw(self), offset, size, name.into_param().abi(), flags, ::core::mem::transmute(id.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn AddSyntheticSymbolWide<P0>(&self, offset: u64, size: u32, name: P0, flags: u32, id: ::core::option::Option<*mut DEBUG_MODULE_AND_ID>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).AddSyntheticSymbolWide)(::windows_core::Interface::as_raw(self), offset, size, name.into_param().abi(), flags, ::core::mem::transmute(id.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn RemoveSyntheticSymbol(&self, id: *const DEBUG_MODULE_AND_ID) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).RemoveSyntheticSymbol)(::windows_core::Interface::as_raw(self), id).ok()
}
pub unsafe fn GetSymbolEntriesByOffset(&self, offset: u64, flags: u32, ids: ::core::option::Option<*mut DEBUG_MODULE_AND_ID>, displacements: ::core::option::Option<*mut u64>, idscount: u32, entries: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSymbolEntriesByOffset)(::windows_core::Interface::as_raw(self), offset, flags, ::core::mem::transmute(ids.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(displacements.unwrap_or(::std::ptr::null_mut())), idscount, ::core::mem::transmute(entries.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetSymbolEntriesByName<P0>(&self, symbol: P0, flags: u32, ids: ::core::option::Option<&mut [DEBUG_MODULE_AND_ID]>, entries: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).GetSymbolEntriesByName)(::windows_core::Interface::as_raw(self), symbol.into_param().abi(), flags, ::core::mem::transmute(ids.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ids.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(entries.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetSymbolEntriesByNameWide<P0>(&self, symbol: P0, flags: u32, ids: ::core::option::Option<&mut [DEBUG_MODULE_AND_ID]>, entries: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).GetSymbolEntriesByNameWide)(::windows_core::Interface::as_raw(self), symbol.into_param().abi(), flags, ::core::mem::transmute(ids.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ids.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(entries.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetSymbolEntryByToken(&self, modulebase: u64, token: u32) -> ::windows_core::Result<DEBUG_MODULE_AND_ID> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetSymbolEntryByToken)(::windows_core::Interface::as_raw(self), modulebase, token, &mut result__).from_abi(result__)
}
pub unsafe fn GetSymbolEntryInformation(&self, id: *const DEBUG_MODULE_AND_ID, info: *mut DEBUG_SYMBOL_ENTRY) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSymbolEntryInformation)(::windows_core::Interface::as_raw(self), id, info).ok()
}
pub unsafe fn GetSymbolEntryString(&self, id: *const DEBUG_MODULE_AND_ID, which: u32, buffer: ::core::option::Option<&mut [u8]>, stringsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSymbolEntryString)(::windows_core::Interface::as_raw(self), id, which, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(stringsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetSymbolEntryStringWide(&self, id: *const DEBUG_MODULE_AND_ID, which: u32, buffer: ::core::option::Option<&mut [u16]>, stringsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSymbolEntryStringWide)(::windows_core::Interface::as_raw(self), id, which, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(stringsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetSymbolEntryOffsetRegions(&self, id: *const DEBUG_MODULE_AND_ID, flags: u32, regions: ::core::option::Option<&mut [DEBUG_OFFSET_REGION]>, regionsavail: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSymbolEntryOffsetRegions)(::windows_core::Interface::as_raw(self), id, flags, ::core::mem::transmute(regions.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), regions.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(regionsavail.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetSymbolEntryBySymbolEntry(&self, fromid: *const DEBUG_MODULE_AND_ID, flags: u32) -> ::windows_core::Result<DEBUG_MODULE_AND_ID> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetSymbolEntryBySymbolEntry)(::windows_core::Interface::as_raw(self), fromid, flags, &mut result__).from_abi(result__)
}
pub unsafe fn GetSourceEntriesByOffset(&self, offset: u64, flags: u32, entries: ::core::option::Option<&mut [DEBUG_SYMBOL_SOURCE_ENTRY]>, entriesavail: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSourceEntriesByOffset)(::windows_core::Interface::as_raw(self), offset, flags, ::core::mem::transmute(entries.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), entries.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(entriesavail.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetSourceEntriesByLine<P0>(&self, line: u32, file: P0, flags: u32, entries: ::core::option::Option<&mut [DEBUG_SYMBOL_SOURCE_ENTRY]>, entriesavail: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).GetSourceEntriesByLine)(::windows_core::Interface::as_raw(self), line, file.into_param().abi(), flags, ::core::mem::transmute(entries.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), entries.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(entriesavail.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetSourceEntriesByLineWide<P0>(&self, line: u32, file: P0, flags: u32, entries: ::core::option::Option<&mut [DEBUG_SYMBOL_SOURCE_ENTRY]>, entriesavail: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).GetSourceEntriesByLineWide)(::windows_core::Interface::as_raw(self), line, file.into_param().abi(), flags, ::core::mem::transmute(entries.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), entries.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(entriesavail.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetSourceEntryString(&self, entry: *const DEBUG_SYMBOL_SOURCE_ENTRY, which: u32, buffer: ::core::option::Option<&mut [u8]>, stringsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSourceEntryString)(::windows_core::Interface::as_raw(self), entry, which, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(stringsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetSourceEntryStringWide(&self, entry: *const DEBUG_SYMBOL_SOURCE_ENTRY, which: u32, buffer: ::core::option::Option<&mut [u16]>, stringsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSourceEntryStringWide)(::windows_core::Interface::as_raw(self), entry, which, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(stringsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetSourceEntryOffsetRegions(&self, entry: *const DEBUG_SYMBOL_SOURCE_ENTRY, flags: u32, regions: ::core::option::Option<&mut [DEBUG_OFFSET_REGION]>, regionsavail: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSourceEntryOffsetRegions)(::windows_core::Interface::as_raw(self), entry, flags, ::core::mem::transmute(regions.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), regions.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(regionsavail.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetSourceEntryBySourceEntry(&self, fromentry: *const DEBUG_SYMBOL_SOURCE_ENTRY, flags: u32, toentry: *mut DEBUG_SYMBOL_SOURCE_ENTRY) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSourceEntryBySourceEntry)(::windows_core::Interface::as_raw(self), fromentry, flags, toentry).ok()
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn GetScopeEx(&self, instructionoffset: ::core::option::Option<*mut u64>, scopeframe: ::core::option::Option<*mut DEBUG_STACK_FRAME_EX>, scopecontext: ::core::option::Option<*mut ::core::ffi::c_void>, scopecontextsize: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetScopeEx)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(instructionoffset.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(scopeframe.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(scopecontext.unwrap_or(::std::ptr::null_mut())), scopecontextsize).ok()
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn SetScopeEx(&self, instructionoffset: u64, scopeframe: ::core::option::Option<*const DEBUG_STACK_FRAME_EX>, scopecontext: ::core::option::Option<*const ::core::ffi::c_void>, scopecontextsize: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetScopeEx)(::windows_core::Interface::as_raw(self), instructionoffset, ::core::mem::transmute(scopeframe.unwrap_or(::std::ptr::null())), ::core::mem::transmute(scopecontext.unwrap_or(::std::ptr::null())), scopecontextsize).ok()
}
pub unsafe fn GetNameByInlineContext(&self, offset: u64, inlinecontext: u32, namebuffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<*mut u32>, displacement: ::core::option::Option<*mut u64>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetNameByInlineContext)(::windows_core::Interface::as_raw(self), offset, inlinecontext, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(displacement.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetNameByInlineContextWide(&self, offset: u64, inlinecontext: u32, namebuffer: ::core::option::Option<&mut [u16]>, namesize: ::core::option::Option<*mut u32>, displacement: ::core::option::Option<*mut u64>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetNameByInlineContextWide)(::windows_core::Interface::as_raw(self), offset, inlinecontext, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(displacement.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetLineByInlineContext(&self, offset: u64, inlinecontext: u32, line: ::core::option::Option<*mut u32>, filebuffer: ::core::option::Option<&mut [u8]>, filesize: ::core::option::Option<*mut u32>, displacement: ::core::option::Option<*mut u64>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetLineByInlineContext)(::windows_core::Interface::as_raw(self), offset, inlinecontext, ::core::mem::transmute(line.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(filebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), filebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(filesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(displacement.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetLineByInlineContextWide(&self, offset: u64, inlinecontext: u32, line: ::core::option::Option<*mut u32>, filebuffer: ::core::option::Option<&mut [u16]>, filesize: ::core::option::Option<*mut u32>, displacement: ::core::option::Option<*mut u64>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetLineByInlineContextWide)(::windows_core::Interface::as_raw(self), offset, inlinecontext, ::core::mem::transmute(line.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(filebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), filebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(filesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(displacement.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn OutputSymbolByInlineContext(&self, outputcontrol: u32, flags: u32, offset: u64, inlinecontext: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).OutputSymbolByInlineContext)(::windows_core::Interface::as_raw(self), outputcontrol, flags, offset, inlinecontext).ok()
}
}
::windows_core::imp::interface_hierarchy!(IDebugSymbols4, ::windows_core::IUnknown);
unsafe impl ::windows_core::Interface for IDebugSymbols4 {
type Vtable = IDebugSymbols4_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IDebugSymbols4 {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0xe391bbd8_9d8c_4418_840b_c006592a1752);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugSymbols4_Vtbl {
pub base__: ::windows_core::IUnknown_Vtbl,
pub GetSymbolOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: *mut u32) -> ::windows_core::HRESULT,
pub AddSymbolOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows_core::HRESULT,
pub RemoveSymbolOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows_core::HRESULT,
pub SetSymbolOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows_core::HRESULT,
pub GetNameByOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, namebuffer: ::windows_core::PSTR, namebuffersize: u32, namesize: *mut u32, displacement: *mut u64) -> ::windows_core::HRESULT,
pub GetOffsetByName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, symbol: ::windows_core::PCSTR, offset: *mut u64) -> ::windows_core::HRESULT,
pub GetNearNameByOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, delta: i32, namebuffer: ::windows_core::PSTR, namebuffersize: u32, namesize: *mut u32, displacement: *mut u64) -> ::windows_core::HRESULT,
pub GetLineByOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, line: *mut u32, filebuffer: ::windows_core::PSTR, filebuffersize: u32, filesize: *mut u32, displacement: *mut u64) -> ::windows_core::HRESULT,
pub GetOffsetByLine: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, line: u32, file: ::windows_core::PCSTR, offset: *mut u64) -> ::windows_core::HRESULT,
pub GetNumberModules: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, loaded: *mut u32, unloaded: *mut u32) -> ::windows_core::HRESULT,
pub GetModuleByIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, base: *mut u64) -> ::windows_core::HRESULT,
pub GetModuleByModuleName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, name: ::windows_core::PCSTR, startindex: u32, index: *mut u32, base: *mut u64) -> ::windows_core::HRESULT,
pub GetModuleByOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, startindex: u32, index: *mut u32, base: *mut u64) -> ::windows_core::HRESULT,
pub GetModuleNames: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, base: u64, imagenamebuffer: ::windows_core::PSTR, imagenamebuffersize: u32, imagenamesize: *mut u32, modulenamebuffer: ::windows_core::PSTR, modulenamebuffersize: u32, modulenamesize: *mut u32, loadedimagenamebuffer: ::windows_core::PSTR, loadedimagenamebuffersize: u32, loadedimagenamesize: *mut u32) -> ::windows_core::HRESULT,
pub GetModuleParameters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: u32, bases: *const u64, start: u32, params: *mut DEBUG_MODULE_PARAMETERS) -> ::windows_core::HRESULT,
pub GetSymbolModule: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, symbol: ::windows_core::PCSTR, base: *mut u64) -> ::windows_core::HRESULT,
pub GetTypeName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: u64, typeid: u32, namebuffer: ::windows_core::PSTR, namebuffersize: u32, namesize: *mut u32) -> ::windows_core::HRESULT,
pub GetTypeId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: u64, name: ::windows_core::PCSTR, typeid: *mut u32) -> ::windows_core::HRESULT,
pub GetTypeSize: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: u64, typeid: u32, size: *mut u32) -> ::windows_core::HRESULT,
pub GetFieldOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: u64, typeid: u32, field: ::windows_core::PCSTR, offset: *mut u32) -> ::windows_core::HRESULT,
pub GetSymbolTypeId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, symbol: ::windows_core::PCSTR, typeid: *mut u32, module: *mut u64) -> ::windows_core::HRESULT,
pub GetOffsetTypeId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, typeid: *mut u32, module: *mut u64) -> ::windows_core::HRESULT,
pub ReadTypedDataVirtual: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, module: u64, typeid: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows_core::HRESULT,
pub WriteTypedDataVirtual: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, module: u64, typeid: u32, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows_core::HRESULT,
pub OutputTypedDataVirtual: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, offset: u64, module: u64, typeid: u32, flags: u32) -> ::windows_core::HRESULT,
pub ReadTypedDataPhysical: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, module: u64, typeid: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows_core::HRESULT,
pub WriteTypedDataPhysical: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, module: u64, typeid: u32, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows_core::HRESULT,
pub OutputTypedDataPhysical: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, offset: u64, module: u64, typeid: u32, flags: u32) -> ::windows_core::HRESULT,
#[cfg(feature = "Win32_Foundation")]
pub GetScope: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, instructionoffset: *mut u64, scopeframe: *mut DEBUG_STACK_FRAME, scopecontext: *mut ::core::ffi::c_void, scopecontextsize: u32) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
GetScope: usize,
#[cfg(feature = "Win32_Foundation")]
pub SetScope: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, instructionoffset: u64, scopeframe: *const DEBUG_STACK_FRAME, scopecontext: *const ::core::ffi::c_void, scopecontextsize: u32) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
SetScope: usize,
pub ResetScope: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub GetScopeSymbolGroup: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, update: *mut ::core::ffi::c_void, symbols: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub CreateSymbolGroup: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, group: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub StartSymbolMatch: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pattern: ::windows_core::PCSTR, handle: *mut u64) -> ::windows_core::HRESULT,
pub GetNextSymbolMatch: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64, buffer: ::windows_core::PSTR, buffersize: u32, matchsize: *mut u32, offset: *mut u64) -> ::windows_core::HRESULT,
pub EndSymbolMatch: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64) -> ::windows_core::HRESULT,
pub Reload: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub GetSymbolPath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PSTR, buffersize: u32, pathsize: *mut u32) -> ::windows_core::HRESULT,
pub SetSymbolPath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, path: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub AppendSymbolPath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, addition: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub GetImagePath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PSTR, buffersize: u32, pathsize: *mut u32) -> ::windows_core::HRESULT,
pub SetImagePath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, path: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub AppendImagePath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, addition: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub GetSourcePath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PSTR, buffersize: u32, pathsize: *mut u32) -> ::windows_core::HRESULT,
pub GetSourcePathElement: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows_core::PSTR, buffersize: u32, elementsize: *mut u32) -> ::windows_core::HRESULT,
pub SetSourcePath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, path: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub AppendSourcePath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, addition: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub FindSourceFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, startelement: u32, file: ::windows_core::PCSTR, flags: u32, foundelement: *mut u32, buffer: ::windows_core::PSTR, buffersize: u32, foundsize: *mut u32) -> ::windows_core::HRESULT,
pub GetSourceFileLineOffsets: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, file: ::windows_core::PCSTR, buffer: *mut u64, bufferlines: u32, filelines: *mut u32) -> ::windows_core::HRESULT,
pub GetModuleVersionInformation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, base: u64, item: ::windows_core::PCSTR, buffer: *mut ::core::ffi::c_void, buffersize: u32, verinfosize: *mut u32) -> ::windows_core::HRESULT,
pub GetModuleNameString: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, which: u32, index: u32, base: u64, buffer: ::windows_core::PSTR, buffersize: u32, namesize: *mut u32) -> ::windows_core::HRESULT,
pub GetConstantName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: u64, typeid: u32, value: u64, namebuffer: ::windows_core::PSTR, namebuffersize: u32, namesize: *mut u32) -> ::windows_core::HRESULT,
pub GetFieldName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: u64, typeid: u32, fieldindex: u32, namebuffer: ::windows_core::PSTR, namebuffersize: u32, namesize: *mut u32) -> ::windows_core::HRESULT,
pub GetTypeOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: *mut u32) -> ::windows_core::HRESULT,
pub AddTypeOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows_core::HRESULT,
pub RemoveTypeOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows_core::HRESULT,
pub SetTypeOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows_core::HRESULT,
pub GetNameByOffsetWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, namebuffer: ::windows_core::PWSTR, namebuffersize: u32, namesize: *mut u32, displacement: *mut u64) -> ::windows_core::HRESULT,
pub GetOffsetByNameWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, symbol: ::windows_core::PCWSTR, offset: *mut u64) -> ::windows_core::HRESULT,
pub GetNearNameByOffsetWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, delta: i32, namebuffer: ::windows_core::PWSTR, namebuffersize: u32, namesize: *mut u32, displacement: *mut u64) -> ::windows_core::HRESULT,
pub GetLineByOffsetWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, line: *mut u32, filebuffer: ::windows_core::PWSTR, filebuffersize: u32, filesize: *mut u32, displacement: *mut u64) -> ::windows_core::HRESULT,
pub GetOffsetByLineWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, line: u32, file: ::windows_core::PCWSTR, offset: *mut u64) -> ::windows_core::HRESULT,
pub GetModuleByModuleNameWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, name: ::windows_core::PCWSTR, startindex: u32, index: *mut u32, base: *mut u64) -> ::windows_core::HRESULT,
pub GetSymbolModuleWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, symbol: ::windows_core::PCWSTR, base: *mut u64) -> ::windows_core::HRESULT,
pub GetTypeNameWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: u64, typeid: u32, namebuffer: ::windows_core::PWSTR, namebuffersize: u32, namesize: *mut u32) -> ::windows_core::HRESULT,
pub GetTypeIdWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: u64, name: ::windows_core::PCWSTR, typeid: *mut u32) -> ::windows_core::HRESULT,
pub GetFieldOffsetWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: u64, typeid: u32, field: ::windows_core::PCWSTR, offset: *mut u32) -> ::windows_core::HRESULT,
pub GetSymbolTypeIdWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, symbol: ::windows_core::PCWSTR, typeid: *mut u32, module: *mut u64) -> ::windows_core::HRESULT,
pub GetScopeSymbolGroup2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, update: *mut ::core::ffi::c_void, symbols: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub CreateSymbolGroup2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, group: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub StartSymbolMatchWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pattern: ::windows_core::PCWSTR, handle: *mut u64) -> ::windows_core::HRESULT,
pub GetNextSymbolMatchWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64, buffer: ::windows_core::PWSTR, buffersize: u32, matchsize: *mut u32, offset: *mut u64) -> ::windows_core::HRESULT,
pub ReloadWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
pub GetSymbolPathWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PWSTR, buffersize: u32, pathsize: *mut u32) -> ::windows_core::HRESULT,
pub SetSymbolPathWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, path: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
pub AppendSymbolPathWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, addition: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
pub GetImagePathWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PWSTR, buffersize: u32, pathsize: *mut u32) -> ::windows_core::HRESULT,
pub SetImagePathWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, path: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
pub AppendImagePathWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, addition: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
pub GetSourcePathWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PWSTR, buffersize: u32, pathsize: *mut u32) -> ::windows_core::HRESULT,
pub GetSourcePathElementWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows_core::PWSTR, buffersize: u32, elementsize: *mut u32) -> ::windows_core::HRESULT,
pub SetSourcePathWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, path: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
pub AppendSourcePathWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, addition: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
pub FindSourceFileWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, startelement: u32, file: ::windows_core::PCWSTR, flags: u32, foundelement: *mut u32, buffer: ::windows_core::PWSTR, buffersize: u32, foundsize: *mut u32) -> ::windows_core::HRESULT,
pub GetSourceFileLineOffsetsWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, file: ::windows_core::PCWSTR, buffer: *mut u64, bufferlines: u32, filelines: *mut u32) -> ::windows_core::HRESULT,
pub GetModuleVersionInformationWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, base: u64, item: ::windows_core::PCWSTR, buffer: *mut ::core::ffi::c_void, buffersize: u32, verinfosize: *mut u32) -> ::windows_core::HRESULT,
pub GetModuleNameStringWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, which: u32, index: u32, base: u64, buffer: ::windows_core::PWSTR, buffersize: u32, namesize: *mut u32) -> ::windows_core::HRESULT,
pub GetConstantNameWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: u64, typeid: u32, value: u64, namebuffer: ::windows_core::PWSTR, namebuffersize: u32, namesize: *mut u32) -> ::windows_core::HRESULT,
pub GetFieldNameWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: u64, typeid: u32, fieldindex: u32, namebuffer: ::windows_core::PWSTR, namebuffersize: u32, namesize: *mut u32) -> ::windows_core::HRESULT,
pub IsManagedModule: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, base: u64) -> ::windows_core::HRESULT,
pub GetModuleByModuleName2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, name: ::windows_core::PCSTR, startindex: u32, flags: u32, index: *mut u32, base: *mut u64) -> ::windows_core::HRESULT,
pub GetModuleByModuleName2Wide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, name: ::windows_core::PCWSTR, startindex: u32, flags: u32, index: *mut u32, base: *mut u64) -> ::windows_core::HRESULT,
pub GetModuleByOffset2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, startindex: u32, flags: u32, index: *mut u32, base: *mut u64) -> ::windows_core::HRESULT,
pub AddSyntheticModule: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, base: u64, size: u32, imagepath: ::windows_core::PCSTR, modulename: ::windows_core::PCSTR, flags: u32) -> ::windows_core::HRESULT,
pub AddSyntheticModuleWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, base: u64, size: u32, imagepath: ::windows_core::PCWSTR, modulename: ::windows_core::PCWSTR, flags: u32) -> ::windows_core::HRESULT,
pub RemoveSyntheticModule: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, base: u64) -> ::windows_core::HRESULT,
pub GetCurrentScopeFrameIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: *mut u32) -> ::windows_core::HRESULT,
pub SetScopeFrameByIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32) -> ::windows_core::HRESULT,
pub SetScopeFromJitDebugInfo: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, infooffset: u64) -> ::windows_core::HRESULT,
pub SetScopeFromStoredEvent: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub OutputSymbolByOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, flags: u32, offset: u64) -> ::windows_core::HRESULT,
pub GetFunctionEntryByOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, flags: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, bufferneeded: *mut u32) -> ::windows_core::HRESULT,
pub GetFieldTypeAndOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: u64, containertypeid: u32, field: ::windows_core::PCSTR, fieldtypeid: *mut u32, offset: *mut u32) -> ::windows_core::HRESULT,
pub GetFieldTypeAndOffsetWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: u64, containertypeid: u32, field: ::windows_core::PCWSTR, fieldtypeid: *mut u32, offset: *mut u32) -> ::windows_core::HRESULT,
pub AddSyntheticSymbol: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, size: u32, name: ::windows_core::PCSTR, flags: u32, id: *mut DEBUG_MODULE_AND_ID) -> ::windows_core::HRESULT,
pub AddSyntheticSymbolWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, size: u32, name: ::windows_core::PCWSTR, flags: u32, id: *mut DEBUG_MODULE_AND_ID) -> ::windows_core::HRESULT,
pub RemoveSyntheticSymbol: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: *const DEBUG_MODULE_AND_ID) -> ::windows_core::HRESULT,
pub GetSymbolEntriesByOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, flags: u32, ids: *mut DEBUG_MODULE_AND_ID, displacements: *mut u64, idscount: u32, entries: *mut u32) -> ::windows_core::HRESULT,
pub GetSymbolEntriesByName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, symbol: ::windows_core::PCSTR, flags: u32, ids: *mut DEBUG_MODULE_AND_ID, idscount: u32, entries: *mut u32) -> ::windows_core::HRESULT,
pub GetSymbolEntriesByNameWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, symbol: ::windows_core::PCWSTR, flags: u32, ids: *mut DEBUG_MODULE_AND_ID, idscount: u32, entries: *mut u32) -> ::windows_core::HRESULT,
pub GetSymbolEntryByToken: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, modulebase: u64, token: u32, id: *mut DEBUG_MODULE_AND_ID) -> ::windows_core::HRESULT,
pub GetSymbolEntryInformation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: *const DEBUG_MODULE_AND_ID, info: *mut DEBUG_SYMBOL_ENTRY) -> ::windows_core::HRESULT,
pub GetSymbolEntryString: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: *const DEBUG_MODULE_AND_ID, which: u32, buffer: ::windows_core::PSTR, buffersize: u32, stringsize: *mut u32) -> ::windows_core::HRESULT,
pub GetSymbolEntryStringWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: *const DEBUG_MODULE_AND_ID, which: u32, buffer: ::windows_core::PWSTR, buffersize: u32, stringsize: *mut u32) -> ::windows_core::HRESULT,
pub GetSymbolEntryOffsetRegions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: *const DEBUG_MODULE_AND_ID, flags: u32, regions: *mut DEBUG_OFFSET_REGION, regionscount: u32, regionsavail: *mut u32) -> ::windows_core::HRESULT,
pub GetSymbolEntryBySymbolEntry: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, fromid: *const DEBUG_MODULE_AND_ID, flags: u32, toid: *mut DEBUG_MODULE_AND_ID) -> ::windows_core::HRESULT,
pub GetSourceEntriesByOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, flags: u32, entries: *mut DEBUG_SYMBOL_SOURCE_ENTRY, entriescount: u32, entriesavail: *mut u32) -> ::windows_core::HRESULT,
pub GetSourceEntriesByLine: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, line: u32, file: ::windows_core::PCSTR, flags: u32, entries: *mut DEBUG_SYMBOL_SOURCE_ENTRY, entriescount: u32, entriesavail: *mut u32) -> ::windows_core::HRESULT,
pub GetSourceEntriesByLineWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, line: u32, file: ::windows_core::PCWSTR, flags: u32, entries: *mut DEBUG_SYMBOL_SOURCE_ENTRY, entriescount: u32, entriesavail: *mut u32) -> ::windows_core::HRESULT,
pub GetSourceEntryString: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, entry: *const DEBUG_SYMBOL_SOURCE_ENTRY, which: u32, buffer: ::windows_core::PSTR, buffersize: u32, stringsize: *mut u32) -> ::windows_core::HRESULT,
pub GetSourceEntryStringWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, entry: *const DEBUG_SYMBOL_SOURCE_ENTRY, which: u32, buffer: ::windows_core::PWSTR, buffersize: u32, stringsize: *mut u32) -> ::windows_core::HRESULT,
pub GetSourceEntryOffsetRegions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, entry: *const DEBUG_SYMBOL_SOURCE_ENTRY, flags: u32, regions: *mut DEBUG_OFFSET_REGION, regionscount: u32, regionsavail: *mut u32) -> ::windows_core::HRESULT,
pub GetSourceEntryBySourceEntry: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, fromentry: *const DEBUG_SYMBOL_SOURCE_ENTRY, flags: u32, toentry: *mut DEBUG_SYMBOL_SOURCE_ENTRY) -> ::windows_core::HRESULT,
#[cfg(feature = "Win32_Foundation")]
pub GetScopeEx: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, instructionoffset: *mut u64, scopeframe: *mut DEBUG_STACK_FRAME_EX, scopecontext: *mut ::core::ffi::c_void, scopecontextsize: u32) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
GetScopeEx: usize,
#[cfg(feature = "Win32_Foundation")]
pub SetScopeEx: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, instructionoffset: u64, scopeframe: *const DEBUG_STACK_FRAME_EX, scopecontext: *const ::core::ffi::c_void, scopecontextsize: u32) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
SetScopeEx: usize,
pub GetNameByInlineContext: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, inlinecontext: u32, namebuffer: ::windows_core::PSTR, namebuffersize: u32, namesize: *mut u32, displacement: *mut u64) -> ::windows_core::HRESULT,
pub GetNameByInlineContextWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, inlinecontext: u32, namebuffer: ::windows_core::PWSTR, namebuffersize: u32, namesize: *mut u32, displacement: *mut u64) -> ::windows_core::HRESULT,
pub GetLineByInlineContext: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, inlinecontext: u32, line: *mut u32, filebuffer: ::windows_core::PSTR, filebuffersize: u32, filesize: *mut u32, displacement: *mut u64) -> ::windows_core::HRESULT,
pub GetLineByInlineContextWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, inlinecontext: u32, line: *mut u32, filebuffer: ::windows_core::PWSTR, filebuffersize: u32, filesize: *mut u32, displacement: *mut u64) -> ::windows_core::HRESULT,
pub OutputSymbolByInlineContext: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, flags: u32, offset: u64, inlinecontext: u32) -> ::windows_core::HRESULT,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IDebugSymbols5(::windows_core::IUnknown);
impl IDebugSymbols5 {
pub unsafe fn GetSymbolOptions(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetSymbolOptions)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn AddSymbolOptions(&self, options: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).AddSymbolOptions)(::windows_core::Interface::as_raw(self), options).ok()
}
pub unsafe fn RemoveSymbolOptions(&self, options: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).RemoveSymbolOptions)(::windows_core::Interface::as_raw(self), options).ok()
}
pub unsafe fn SetSymbolOptions(&self, options: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetSymbolOptions)(::windows_core::Interface::as_raw(self), options).ok()
}
pub unsafe fn GetNameByOffset(&self, offset: u64, namebuffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<*mut u32>, displacement: ::core::option::Option<*mut u64>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetNameByOffset)(::windows_core::Interface::as_raw(self), offset, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(displacement.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetOffsetByName<P0>(&self, symbol: P0) -> ::windows_core::Result<u64>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetOffsetByName)(::windows_core::Interface::as_raw(self), symbol.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn GetNearNameByOffset(&self, offset: u64, delta: i32, namebuffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<*mut u32>, displacement: ::core::option::Option<*mut u64>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetNearNameByOffset)(::windows_core::Interface::as_raw(self), offset, delta, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(displacement.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetLineByOffset(&self, offset: u64, line: ::core::option::Option<*mut u32>, filebuffer: ::core::option::Option<&mut [u8]>, filesize: ::core::option::Option<*mut u32>, displacement: ::core::option::Option<*mut u64>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetLineByOffset)(::windows_core::Interface::as_raw(self), offset, ::core::mem::transmute(line.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(filebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), filebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(filesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(displacement.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetOffsetByLine<P0>(&self, line: u32, file: P0) -> ::windows_core::Result<u64>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetOffsetByLine)(::windows_core::Interface::as_raw(self), line, file.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn GetNumberModules(&self, loaded: *mut u32, unloaded: *mut u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetNumberModules)(::windows_core::Interface::as_raw(self), loaded, unloaded).ok()
}
pub unsafe fn GetModuleByIndex(&self, index: u32) -> ::windows_core::Result<u64> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetModuleByIndex)(::windows_core::Interface::as_raw(self), index, &mut result__).from_abi(result__)
}
pub unsafe fn GetModuleByModuleName<P0>(&self, name: P0, startindex: u32, index: ::core::option::Option<*mut u32>, base: ::core::option::Option<*mut u64>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).GetModuleByModuleName)(::windows_core::Interface::as_raw(self), name.into_param().abi(), startindex, ::core::mem::transmute(index.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(base.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetModuleByOffset(&self, offset: u64, startindex: u32, index: ::core::option::Option<*mut u32>, base: ::core::option::Option<*mut u64>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetModuleByOffset)(::windows_core::Interface::as_raw(self), offset, startindex, ::core::mem::transmute(index.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(base.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetModuleNames(&self, index: u32, base: u64, imagenamebuffer: ::core::option::Option<&mut [u8]>, imagenamesize: ::core::option::Option<*mut u32>, modulenamebuffer: ::core::option::Option<&mut [u8]>, modulenamesize: ::core::option::Option<*mut u32>, loadedimagenamebuffer: ::core::option::Option<&mut [u8]>, loadedimagenamesize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetModuleNames)(
::windows_core::Interface::as_raw(self),
index,
base,
::core::mem::transmute(imagenamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
imagenamebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(imagenamesize.unwrap_or(::std::ptr::null_mut())),
::core::mem::transmute(modulenamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
modulenamebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(modulenamesize.unwrap_or(::std::ptr::null_mut())),
::core::mem::transmute(loadedimagenamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
loadedimagenamebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()),
::core::mem::transmute(loadedimagenamesize.unwrap_or(::std::ptr::null_mut())),
)
.ok()
}
pub unsafe fn GetModuleParameters(&self, count: u32, bases: ::core::option::Option<*const u64>, start: u32, params: *mut DEBUG_MODULE_PARAMETERS) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetModuleParameters)(::windows_core::Interface::as_raw(self), count, ::core::mem::transmute(bases.unwrap_or(::std::ptr::null())), start, params).ok()
}
pub unsafe fn GetSymbolModule<P0>(&self, symbol: P0) -> ::windows_core::Result<u64>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetSymbolModule)(::windows_core::Interface::as_raw(self), symbol.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn GetTypeName(&self, module: u64, typeid: u32, namebuffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetTypeName)(::windows_core::Interface::as_raw(self), module, typeid, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetTypeId<P0>(&self, module: u64, name: P0) -> ::windows_core::Result<u32>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetTypeId)(::windows_core::Interface::as_raw(self), module, name.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn GetTypeSize(&self, module: u64, typeid: u32) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetTypeSize)(::windows_core::Interface::as_raw(self), module, typeid, &mut result__).from_abi(result__)
}
pub unsafe fn GetFieldOffset<P0>(&self, module: u64, typeid: u32, field: P0) -> ::windows_core::Result<u32>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetFieldOffset)(::windows_core::Interface::as_raw(self), module, typeid, field.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn GetSymbolTypeId<P0>(&self, symbol: P0, typeid: *mut u32, module: ::core::option::Option<*mut u64>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).GetSymbolTypeId)(::windows_core::Interface::as_raw(self), symbol.into_param().abi(), typeid, ::core::mem::transmute(module.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetOffsetTypeId(&self, offset: u64, typeid: *mut u32, module: ::core::option::Option<*mut u64>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetOffsetTypeId)(::windows_core::Interface::as_raw(self), offset, typeid, ::core::mem::transmute(module.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn ReadTypedDataVirtual(&self, offset: u64, module: u64, typeid: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).ReadTypedDataVirtual)(::windows_core::Interface::as_raw(self), offset, module, typeid, buffer, buffersize, ::core::mem::transmute(bytesread.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn WriteTypedDataVirtual(&self, offset: u64, module: u64, typeid: u32, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).WriteTypedDataVirtual)(::windows_core::Interface::as_raw(self), offset, module, typeid, buffer, buffersize, ::core::mem::transmute(byteswritten.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn OutputTypedDataVirtual(&self, outputcontrol: u32, offset: u64, module: u64, typeid: u32, flags: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).OutputTypedDataVirtual)(::windows_core::Interface::as_raw(self), outputcontrol, offset, module, typeid, flags).ok()
}
pub unsafe fn ReadTypedDataPhysical(&self, offset: u64, module: u64, typeid: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).ReadTypedDataPhysical)(::windows_core::Interface::as_raw(self), offset, module, typeid, buffer, buffersize, ::core::mem::transmute(bytesread.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn WriteTypedDataPhysical(&self, offset: u64, module: u64, typeid: u32, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).WriteTypedDataPhysical)(::windows_core::Interface::as_raw(self), offset, module, typeid, buffer, buffersize, ::core::mem::transmute(byteswritten.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn OutputTypedDataPhysical(&self, outputcontrol: u32, offset: u64, module: u64, typeid: u32, flags: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).OutputTypedDataPhysical)(::windows_core::Interface::as_raw(self), outputcontrol, offset, module, typeid, flags).ok()
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn GetScope(&self, instructionoffset: ::core::option::Option<*mut u64>, scopeframe: ::core::option::Option<*mut DEBUG_STACK_FRAME>, scopecontext: ::core::option::Option<*mut ::core::ffi::c_void>, scopecontextsize: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetScope)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(instructionoffset.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(scopeframe.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(scopecontext.unwrap_or(::std::ptr::null_mut())), scopecontextsize).ok()
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn SetScope(&self, instructionoffset: u64, scopeframe: ::core::option::Option<*const DEBUG_STACK_FRAME>, scopecontext: ::core::option::Option<*const ::core::ffi::c_void>, scopecontextsize: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetScope)(::windows_core::Interface::as_raw(self), instructionoffset, ::core::mem::transmute(scopeframe.unwrap_or(::std::ptr::null())), ::core::mem::transmute(scopecontext.unwrap_or(::std::ptr::null())), scopecontextsize).ok()
}
pub unsafe fn ResetScope(&self) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).ResetScope)(::windows_core::Interface::as_raw(self)).ok()
}
pub unsafe fn GetScopeSymbolGroup<P0>(&self, flags: u32, update: P0) -> ::windows_core::Result<IDebugSymbolGroup>
where
P0: ::windows_core::IntoParam<IDebugSymbolGroup>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetScopeSymbolGroup)(::windows_core::Interface::as_raw(self), flags, update.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn CreateSymbolGroup(&self) -> ::windows_core::Result<IDebugSymbolGroup> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).CreateSymbolGroup)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn StartSymbolMatch<P0>(&self, pattern: P0) -> ::windows_core::Result<u64>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).StartSymbolMatch)(::windows_core::Interface::as_raw(self), pattern.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn GetNextSymbolMatch(&self, handle: u64, buffer: ::core::option::Option<&mut [u8]>, matchsize: ::core::option::Option<*mut u32>, offset: ::core::option::Option<*mut u64>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetNextSymbolMatch)(::windows_core::Interface::as_raw(self), handle, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(matchsize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(offset.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn EndSymbolMatch(&self, handle: u64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).EndSymbolMatch)(::windows_core::Interface::as_raw(self), handle).ok()
}
pub unsafe fn Reload<P0>(&self, module: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).Reload)(::windows_core::Interface::as_raw(self), module.into_param().abi()).ok()
}
pub unsafe fn GetSymbolPath(&self, buffer: ::core::option::Option<&mut [u8]>, pathsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSymbolPath)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(pathsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetSymbolPath<P0>(&self, path: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).SetSymbolPath)(::windows_core::Interface::as_raw(self), path.into_param().abi()).ok()
}
pub unsafe fn AppendSymbolPath<P0>(&self, addition: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).AppendSymbolPath)(::windows_core::Interface::as_raw(self), addition.into_param().abi()).ok()
}
pub unsafe fn GetImagePath(&self, buffer: ::core::option::Option<&mut [u8]>, pathsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetImagePath)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(pathsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetImagePath<P0>(&self, path: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).SetImagePath)(::windows_core::Interface::as_raw(self), path.into_param().abi()).ok()
}
pub unsafe fn AppendImagePath<P0>(&self, addition: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).AppendImagePath)(::windows_core::Interface::as_raw(self), addition.into_param().abi()).ok()
}
pub unsafe fn GetSourcePath(&self, buffer: ::core::option::Option<&mut [u8]>, pathsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSourcePath)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(pathsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetSourcePathElement(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, elementsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSourcePathElement)(::windows_core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(elementsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetSourcePath<P0>(&self, path: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).SetSourcePath)(::windows_core::Interface::as_raw(self), path.into_param().abi()).ok()
}
pub unsafe fn AppendSourcePath<P0>(&self, addition: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).AppendSourcePath)(::windows_core::Interface::as_raw(self), addition.into_param().abi()).ok()
}
pub unsafe fn FindSourceFile<P0>(&self, startelement: u32, file: P0, flags: u32, foundelement: ::core::option::Option<*mut u32>, buffer: ::core::option::Option<&mut [u8]>, foundsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).FindSourceFile)(::windows_core::Interface::as_raw(self), startelement, file.into_param().abi(), flags, ::core::mem::transmute(foundelement.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(foundsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetSourceFileLineOffsets<P0>(&self, file: P0, buffer: ::core::option::Option<&mut [u64]>, filelines: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).GetSourceFileLineOffsets)(::windows_core::Interface::as_raw(self), file.into_param().abi(), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(filelines.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetModuleVersionInformation<P0>(&self, index: u32, base: u64, item: P0, buffer: ::core::option::Option<*mut ::core::ffi::c_void>, buffersize: u32, verinfosize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).GetModuleVersionInformation)(::windows_core::Interface::as_raw(self), index, base, item.into_param().abi(), ::core::mem::transmute(buffer.unwrap_or(::std::ptr::null_mut())), buffersize, ::core::mem::transmute(verinfosize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetModuleNameString(&self, which: u32, index: u32, base: u64, buffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetModuleNameString)(::windows_core::Interface::as_raw(self), which, index, base, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetConstantName(&self, module: u64, typeid: u32, value: u64, namebuffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetConstantName)(::windows_core::Interface::as_raw(self), module, typeid, value, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetFieldName(&self, module: u64, typeid: u32, fieldindex: u32, namebuffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetFieldName)(::windows_core::Interface::as_raw(self), module, typeid, fieldindex, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetTypeOptions(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetTypeOptions)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn AddTypeOptions(&self, options: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).AddTypeOptions)(::windows_core::Interface::as_raw(self), options).ok()
}
pub unsafe fn RemoveTypeOptions(&self, options: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).RemoveTypeOptions)(::windows_core::Interface::as_raw(self), options).ok()
}
pub unsafe fn SetTypeOptions(&self, options: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetTypeOptions)(::windows_core::Interface::as_raw(self), options).ok()
}
pub unsafe fn GetNameByOffsetWide(&self, offset: u64, namebuffer: ::core::option::Option<&mut [u16]>, namesize: ::core::option::Option<*mut u32>, displacement: ::core::option::Option<*mut u64>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetNameByOffsetWide)(::windows_core::Interface::as_raw(self), offset, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(displacement.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetOffsetByNameWide<P0>(&self, symbol: P0) -> ::windows_core::Result<u64>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetOffsetByNameWide)(::windows_core::Interface::as_raw(self), symbol.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn GetNearNameByOffsetWide(&self, offset: u64, delta: i32, namebuffer: ::core::option::Option<&mut [u16]>, namesize: ::core::option::Option<*mut u32>, displacement: ::core::option::Option<*mut u64>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetNearNameByOffsetWide)(::windows_core::Interface::as_raw(self), offset, delta, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(displacement.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetLineByOffsetWide(&self, offset: u64, line: ::core::option::Option<*mut u32>, filebuffer: ::core::option::Option<&mut [u16]>, filesize: ::core::option::Option<*mut u32>, displacement: ::core::option::Option<*mut u64>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetLineByOffsetWide)(::windows_core::Interface::as_raw(self), offset, ::core::mem::transmute(line.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(filebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), filebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(filesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(displacement.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetOffsetByLineWide<P0>(&self, line: u32, file: P0) -> ::windows_core::Result<u64>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetOffsetByLineWide)(::windows_core::Interface::as_raw(self), line, file.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn GetModuleByModuleNameWide<P0>(&self, name: P0, startindex: u32, index: ::core::option::Option<*mut u32>, base: ::core::option::Option<*mut u64>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).GetModuleByModuleNameWide)(::windows_core::Interface::as_raw(self), name.into_param().abi(), startindex, ::core::mem::transmute(index.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(base.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetSymbolModuleWide<P0>(&self, symbol: P0) -> ::windows_core::Result<u64>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetSymbolModuleWide)(::windows_core::Interface::as_raw(self), symbol.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn GetTypeNameWide(&self, module: u64, typeid: u32, namebuffer: ::core::option::Option<&mut [u16]>, namesize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetTypeNameWide)(::windows_core::Interface::as_raw(self), module, typeid, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetTypeIdWide<P0>(&self, module: u64, name: P0) -> ::windows_core::Result<u32>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetTypeIdWide)(::windows_core::Interface::as_raw(self), module, name.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn GetFieldOffsetWide<P0>(&self, module: u64, typeid: u32, field: P0) -> ::windows_core::Result<u32>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetFieldOffsetWide)(::windows_core::Interface::as_raw(self), module, typeid, field.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn GetSymbolTypeIdWide<P0>(&self, symbol: P0, typeid: *mut u32, module: ::core::option::Option<*mut u64>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).GetSymbolTypeIdWide)(::windows_core::Interface::as_raw(self), symbol.into_param().abi(), typeid, ::core::mem::transmute(module.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetScopeSymbolGroup2<P0>(&self, flags: u32, update: P0) -> ::windows_core::Result<IDebugSymbolGroup2>
where
P0: ::windows_core::IntoParam<IDebugSymbolGroup2>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetScopeSymbolGroup2)(::windows_core::Interface::as_raw(self), flags, update.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn CreateSymbolGroup2(&self) -> ::windows_core::Result<IDebugSymbolGroup2> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).CreateSymbolGroup2)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn StartSymbolMatchWide<P0>(&self, pattern: P0) -> ::windows_core::Result<u64>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).StartSymbolMatchWide)(::windows_core::Interface::as_raw(self), pattern.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn GetNextSymbolMatchWide(&self, handle: u64, buffer: ::core::option::Option<&mut [u16]>, matchsize: ::core::option::Option<*mut u32>, offset: ::core::option::Option<*mut u64>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetNextSymbolMatchWide)(::windows_core::Interface::as_raw(self), handle, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(matchsize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(offset.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn ReloadWide<P0>(&self, module: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).ReloadWide)(::windows_core::Interface::as_raw(self), module.into_param().abi()).ok()
}
pub unsafe fn GetSymbolPathWide(&self, buffer: ::core::option::Option<&mut [u16]>, pathsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSymbolPathWide)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(pathsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetSymbolPathWide<P0>(&self, path: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).SetSymbolPathWide)(::windows_core::Interface::as_raw(self), path.into_param().abi()).ok()
}
pub unsafe fn AppendSymbolPathWide<P0>(&self, addition: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).AppendSymbolPathWide)(::windows_core::Interface::as_raw(self), addition.into_param().abi()).ok()
}
pub unsafe fn GetImagePathWide(&self, buffer: ::core::option::Option<&mut [u16]>, pathsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetImagePathWide)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(pathsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetImagePathWide<P0>(&self, path: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).SetImagePathWide)(::windows_core::Interface::as_raw(self), path.into_param().abi()).ok()
}
pub unsafe fn AppendImagePathWide<P0>(&self, addition: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).AppendImagePathWide)(::windows_core::Interface::as_raw(self), addition.into_param().abi()).ok()
}
pub unsafe fn GetSourcePathWide(&self, buffer: ::core::option::Option<&mut [u16]>, pathsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSourcePathWide)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(pathsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetSourcePathElementWide(&self, index: u32, buffer: ::core::option::Option<&mut [u16]>, elementsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSourcePathElementWide)(::windows_core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(elementsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetSourcePathWide<P0>(&self, path: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).SetSourcePathWide)(::windows_core::Interface::as_raw(self), path.into_param().abi()).ok()
}
pub unsafe fn AppendSourcePathWide<P0>(&self, addition: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).AppendSourcePathWide)(::windows_core::Interface::as_raw(self), addition.into_param().abi()).ok()
}
pub unsafe fn FindSourceFileWide<P0>(&self, startelement: u32, file: P0, flags: u32, foundelement: ::core::option::Option<*mut u32>, buffer: ::core::option::Option<&mut [u16]>, foundsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).FindSourceFileWide)(::windows_core::Interface::as_raw(self), startelement, file.into_param().abi(), flags, ::core::mem::transmute(foundelement.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(foundsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetSourceFileLineOffsetsWide<P0>(&self, file: P0, buffer: ::core::option::Option<&mut [u64]>, filelines: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).GetSourceFileLineOffsetsWide)(::windows_core::Interface::as_raw(self), file.into_param().abi(), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(filelines.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetModuleVersionInformationWide<P0>(&self, index: u32, base: u64, item: P0, buffer: ::core::option::Option<*mut ::core::ffi::c_void>, buffersize: u32, verinfosize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).GetModuleVersionInformationWide)(::windows_core::Interface::as_raw(self), index, base, item.into_param().abi(), ::core::mem::transmute(buffer.unwrap_or(::std::ptr::null_mut())), buffersize, ::core::mem::transmute(verinfosize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetModuleNameStringWide(&self, which: u32, index: u32, base: u64, buffer: ::core::option::Option<&mut [u16]>, namesize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetModuleNameStringWide)(::windows_core::Interface::as_raw(self), which, index, base, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetConstantNameWide(&self, module: u64, typeid: u32, value: u64, namebuffer: ::core::option::Option<&mut [u16]>, namesize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetConstantNameWide)(::windows_core::Interface::as_raw(self), module, typeid, value, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetFieldNameWide(&self, module: u64, typeid: u32, fieldindex: u32, namebuffer: ::core::option::Option<&mut [u16]>, namesize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetFieldNameWide)(::windows_core::Interface::as_raw(self), module, typeid, fieldindex, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn IsManagedModule(&self, index: u32, base: u64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).IsManagedModule)(::windows_core::Interface::as_raw(self), index, base).ok()
}
pub unsafe fn GetModuleByModuleName2<P0>(&self, name: P0, startindex: u32, flags: u32, index: ::core::option::Option<*mut u32>, base: ::core::option::Option<*mut u64>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).GetModuleByModuleName2)(::windows_core::Interface::as_raw(self), name.into_param().abi(), startindex, flags, ::core::mem::transmute(index.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(base.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetModuleByModuleName2Wide<P0>(&self, name: P0, startindex: u32, flags: u32, index: ::core::option::Option<*mut u32>, base: ::core::option::Option<*mut u64>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).GetModuleByModuleName2Wide)(::windows_core::Interface::as_raw(self), name.into_param().abi(), startindex, flags, ::core::mem::transmute(index.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(base.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetModuleByOffset2(&self, offset: u64, startindex: u32, flags: u32, index: ::core::option::Option<*mut u32>, base: ::core::option::Option<*mut u64>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetModuleByOffset2)(::windows_core::Interface::as_raw(self), offset, startindex, flags, ::core::mem::transmute(index.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(base.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn AddSyntheticModule<P0, P1>(&self, base: u64, size: u32, imagepath: P0, modulename: P1, flags: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
P1: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).AddSyntheticModule)(::windows_core::Interface::as_raw(self), base, size, imagepath.into_param().abi(), modulename.into_param().abi(), flags).ok()
}
pub unsafe fn AddSyntheticModuleWide<P0, P1>(&self, base: u64, size: u32, imagepath: P0, modulename: P1, flags: u32) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
P1: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).AddSyntheticModuleWide)(::windows_core::Interface::as_raw(self), base, size, imagepath.into_param().abi(), modulename.into_param().abi(), flags).ok()
}
pub unsafe fn RemoveSyntheticModule(&self, base: u64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).RemoveSyntheticModule)(::windows_core::Interface::as_raw(self), base).ok()
}
pub unsafe fn GetCurrentScopeFrameIndex(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetCurrentScopeFrameIndex)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetScopeFrameByIndex(&self, index: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetScopeFrameByIndex)(::windows_core::Interface::as_raw(self), index).ok()
}
pub unsafe fn SetScopeFromJitDebugInfo(&self, outputcontrol: u32, infooffset: u64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetScopeFromJitDebugInfo)(::windows_core::Interface::as_raw(self), outputcontrol, infooffset).ok()
}
pub unsafe fn SetScopeFromStoredEvent(&self) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetScopeFromStoredEvent)(::windows_core::Interface::as_raw(self)).ok()
}
pub unsafe fn OutputSymbolByOffset(&self, outputcontrol: u32, flags: u32, offset: u64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).OutputSymbolByOffset)(::windows_core::Interface::as_raw(self), outputcontrol, flags, offset).ok()
}
pub unsafe fn GetFunctionEntryByOffset(&self, offset: u64, flags: u32, buffer: ::core::option::Option<*mut ::core::ffi::c_void>, buffersize: u32, bufferneeded: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetFunctionEntryByOffset)(::windows_core::Interface::as_raw(self), offset, flags, ::core::mem::transmute(buffer.unwrap_or(::std::ptr::null_mut())), buffersize, ::core::mem::transmute(bufferneeded.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetFieldTypeAndOffset<P0>(&self, module: u64, containertypeid: u32, field: P0, fieldtypeid: ::core::option::Option<*mut u32>, offset: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).GetFieldTypeAndOffset)(::windows_core::Interface::as_raw(self), module, containertypeid, field.into_param().abi(), ::core::mem::transmute(fieldtypeid.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(offset.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetFieldTypeAndOffsetWide<P0>(&self, module: u64, containertypeid: u32, field: P0, fieldtypeid: ::core::option::Option<*mut u32>, offset: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).GetFieldTypeAndOffsetWide)(::windows_core::Interface::as_raw(self), module, containertypeid, field.into_param().abi(), ::core::mem::transmute(fieldtypeid.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(offset.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn AddSyntheticSymbol<P0>(&self, offset: u64, size: u32, name: P0, flags: u32, id: ::core::option::Option<*mut DEBUG_MODULE_AND_ID>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).AddSyntheticSymbol)(::windows_core::Interface::as_raw(self), offset, size, name.into_param().abi(), flags, ::core::mem::transmute(id.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn AddSyntheticSymbolWide<P0>(&self, offset: u64, size: u32, name: P0, flags: u32, id: ::core::option::Option<*mut DEBUG_MODULE_AND_ID>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).AddSyntheticSymbolWide)(::windows_core::Interface::as_raw(self), offset, size, name.into_param().abi(), flags, ::core::mem::transmute(id.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn RemoveSyntheticSymbol(&self, id: *const DEBUG_MODULE_AND_ID) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).RemoveSyntheticSymbol)(::windows_core::Interface::as_raw(self), id).ok()
}
pub unsafe fn GetSymbolEntriesByOffset(&self, offset: u64, flags: u32, ids: ::core::option::Option<*mut DEBUG_MODULE_AND_ID>, displacements: ::core::option::Option<*mut u64>, idscount: u32, entries: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSymbolEntriesByOffset)(::windows_core::Interface::as_raw(self), offset, flags, ::core::mem::transmute(ids.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(displacements.unwrap_or(::std::ptr::null_mut())), idscount, ::core::mem::transmute(entries.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetSymbolEntriesByName<P0>(&self, symbol: P0, flags: u32, ids: ::core::option::Option<&mut [DEBUG_MODULE_AND_ID]>, entries: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).GetSymbolEntriesByName)(::windows_core::Interface::as_raw(self), symbol.into_param().abi(), flags, ::core::mem::transmute(ids.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ids.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(entries.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetSymbolEntriesByNameWide<P0>(&self, symbol: P0, flags: u32, ids: ::core::option::Option<&mut [DEBUG_MODULE_AND_ID]>, entries: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).GetSymbolEntriesByNameWide)(::windows_core::Interface::as_raw(self), symbol.into_param().abi(), flags, ::core::mem::transmute(ids.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ids.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(entries.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetSymbolEntryByToken(&self, modulebase: u64, token: u32) -> ::windows_core::Result<DEBUG_MODULE_AND_ID> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetSymbolEntryByToken)(::windows_core::Interface::as_raw(self), modulebase, token, &mut result__).from_abi(result__)
}
pub unsafe fn GetSymbolEntryInformation(&self, id: *const DEBUG_MODULE_AND_ID, info: *mut DEBUG_SYMBOL_ENTRY) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSymbolEntryInformation)(::windows_core::Interface::as_raw(self), id, info).ok()
}
pub unsafe fn GetSymbolEntryString(&self, id: *const DEBUG_MODULE_AND_ID, which: u32, buffer: ::core::option::Option<&mut [u8]>, stringsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSymbolEntryString)(::windows_core::Interface::as_raw(self), id, which, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(stringsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetSymbolEntryStringWide(&self, id: *const DEBUG_MODULE_AND_ID, which: u32, buffer: ::core::option::Option<&mut [u16]>, stringsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSymbolEntryStringWide)(::windows_core::Interface::as_raw(self), id, which, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(stringsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetSymbolEntryOffsetRegions(&self, id: *const DEBUG_MODULE_AND_ID, flags: u32, regions: ::core::option::Option<&mut [DEBUG_OFFSET_REGION]>, regionsavail: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSymbolEntryOffsetRegions)(::windows_core::Interface::as_raw(self), id, flags, ::core::mem::transmute(regions.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), regions.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(regionsavail.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetSymbolEntryBySymbolEntry(&self, fromid: *const DEBUG_MODULE_AND_ID, flags: u32) -> ::windows_core::Result<DEBUG_MODULE_AND_ID> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetSymbolEntryBySymbolEntry)(::windows_core::Interface::as_raw(self), fromid, flags, &mut result__).from_abi(result__)
}
pub unsafe fn GetSourceEntriesByOffset(&self, offset: u64, flags: u32, entries: ::core::option::Option<&mut [DEBUG_SYMBOL_SOURCE_ENTRY]>, entriesavail: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSourceEntriesByOffset)(::windows_core::Interface::as_raw(self), offset, flags, ::core::mem::transmute(entries.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), entries.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(entriesavail.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetSourceEntriesByLine<P0>(&self, line: u32, file: P0, flags: u32, entries: ::core::option::Option<&mut [DEBUG_SYMBOL_SOURCE_ENTRY]>, entriesavail: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
{
(::windows_core::Interface::vtable(self).GetSourceEntriesByLine)(::windows_core::Interface::as_raw(self), line, file.into_param().abi(), flags, ::core::mem::transmute(entries.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), entries.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(entriesavail.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetSourceEntriesByLineWide<P0>(&self, line: u32, file: P0, flags: u32, entries: ::core::option::Option<&mut [DEBUG_SYMBOL_SOURCE_ENTRY]>, entriesavail: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).GetSourceEntriesByLineWide)(::windows_core::Interface::as_raw(self), line, file.into_param().abi(), flags, ::core::mem::transmute(entries.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), entries.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(entriesavail.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetSourceEntryString(&self, entry: *const DEBUG_SYMBOL_SOURCE_ENTRY, which: u32, buffer: ::core::option::Option<&mut [u8]>, stringsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSourceEntryString)(::windows_core::Interface::as_raw(self), entry, which, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(stringsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetSourceEntryStringWide(&self, entry: *const DEBUG_SYMBOL_SOURCE_ENTRY, which: u32, buffer: ::core::option::Option<&mut [u16]>, stringsize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSourceEntryStringWide)(::windows_core::Interface::as_raw(self), entry, which, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(stringsize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetSourceEntryOffsetRegions(&self, entry: *const DEBUG_SYMBOL_SOURCE_ENTRY, flags: u32, regions: ::core::option::Option<&mut [DEBUG_OFFSET_REGION]>, regionsavail: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSourceEntryOffsetRegions)(::windows_core::Interface::as_raw(self), entry, flags, ::core::mem::transmute(regions.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), regions.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(regionsavail.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetSourceEntryBySourceEntry(&self, fromentry: *const DEBUG_SYMBOL_SOURCE_ENTRY, flags: u32, toentry: *mut DEBUG_SYMBOL_SOURCE_ENTRY) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSourceEntryBySourceEntry)(::windows_core::Interface::as_raw(self), fromentry, flags, toentry).ok()
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn GetScopeEx(&self, instructionoffset: ::core::option::Option<*mut u64>, scopeframe: ::core::option::Option<*mut DEBUG_STACK_FRAME_EX>, scopecontext: ::core::option::Option<*mut ::core::ffi::c_void>, scopecontextsize: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetScopeEx)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(instructionoffset.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(scopeframe.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(scopecontext.unwrap_or(::std::ptr::null_mut())), scopecontextsize).ok()
}
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn SetScopeEx(&self, instructionoffset: u64, scopeframe: ::core::option::Option<*const DEBUG_STACK_FRAME_EX>, scopecontext: ::core::option::Option<*const ::core::ffi::c_void>, scopecontextsize: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetScopeEx)(::windows_core::Interface::as_raw(self), instructionoffset, ::core::mem::transmute(scopeframe.unwrap_or(::std::ptr::null())), ::core::mem::transmute(scopecontext.unwrap_or(::std::ptr::null())), scopecontextsize).ok()
}
pub unsafe fn GetNameByInlineContext(&self, offset: u64, inlinecontext: u32, namebuffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<*mut u32>, displacement: ::core::option::Option<*mut u64>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetNameByInlineContext)(::windows_core::Interface::as_raw(self), offset, inlinecontext, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(displacement.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetNameByInlineContextWide(&self, offset: u64, inlinecontext: u32, namebuffer: ::core::option::Option<&mut [u16]>, namesize: ::core::option::Option<*mut u32>, displacement: ::core::option::Option<*mut u64>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetNameByInlineContextWide)(::windows_core::Interface::as_raw(self), offset, inlinecontext, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(displacement.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetLineByInlineContext(&self, offset: u64, inlinecontext: u32, line: ::core::option::Option<*mut u32>, filebuffer: ::core::option::Option<&mut [u8]>, filesize: ::core::option::Option<*mut u32>, displacement: ::core::option::Option<*mut u64>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetLineByInlineContext)(::windows_core::Interface::as_raw(self), offset, inlinecontext, ::core::mem::transmute(line.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(filebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), filebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(filesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(displacement.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetLineByInlineContextWide(&self, offset: u64, inlinecontext: u32, line: ::core::option::Option<*mut u32>, filebuffer: ::core::option::Option<&mut [u16]>, filesize: ::core::option::Option<*mut u32>, displacement: ::core::option::Option<*mut u64>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetLineByInlineContextWide)(::windows_core::Interface::as_raw(self), offset, inlinecontext, ::core::mem::transmute(line.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(filebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), filebuffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(filesize.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(displacement.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn OutputSymbolByInlineContext(&self, outputcontrol: u32, flags: u32, offset: u64, inlinecontext: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).OutputSymbolByInlineContext)(::windows_core::Interface::as_raw(self), outputcontrol, flags, offset, inlinecontext).ok()
}
pub unsafe fn GetCurrentScopeFrameIndexEx(&self, flags: u32) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetCurrentScopeFrameIndexEx)(::windows_core::Interface::as_raw(self), flags, &mut result__).from_abi(result__)
}
pub unsafe fn SetScopeFrameByIndexEx(&self, flags: u32, index: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetScopeFrameByIndexEx)(::windows_core::Interface::as_raw(self), flags, index).ok()
}
}
::windows_core::imp::interface_hierarchy!(IDebugSymbols5, ::windows_core::IUnknown);
unsafe impl ::windows_core::Interface for IDebugSymbols5 {
type Vtable = IDebugSymbols5_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IDebugSymbols5 {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0xc65fa83e_1e69_475e_8e0e_b5d79e9cc17e);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugSymbols5_Vtbl {
pub base__: ::windows_core::IUnknown_Vtbl,
pub GetSymbolOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: *mut u32) -> ::windows_core::HRESULT,
pub AddSymbolOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows_core::HRESULT,
pub RemoveSymbolOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows_core::HRESULT,
pub SetSymbolOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows_core::HRESULT,
pub GetNameByOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, namebuffer: ::windows_core::PSTR, namebuffersize: u32, namesize: *mut u32, displacement: *mut u64) -> ::windows_core::HRESULT,
pub GetOffsetByName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, symbol: ::windows_core::PCSTR, offset: *mut u64) -> ::windows_core::HRESULT,
pub GetNearNameByOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, delta: i32, namebuffer: ::windows_core::PSTR, namebuffersize: u32, namesize: *mut u32, displacement: *mut u64) -> ::windows_core::HRESULT,
pub GetLineByOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, line: *mut u32, filebuffer: ::windows_core::PSTR, filebuffersize: u32, filesize: *mut u32, displacement: *mut u64) -> ::windows_core::HRESULT,
pub GetOffsetByLine: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, line: u32, file: ::windows_core::PCSTR, offset: *mut u64) -> ::windows_core::HRESULT,
pub GetNumberModules: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, loaded: *mut u32, unloaded: *mut u32) -> ::windows_core::HRESULT,
pub GetModuleByIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, base: *mut u64) -> ::windows_core::HRESULT,
pub GetModuleByModuleName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, name: ::windows_core::PCSTR, startindex: u32, index: *mut u32, base: *mut u64) -> ::windows_core::HRESULT,
pub GetModuleByOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, startindex: u32, index: *mut u32, base: *mut u64) -> ::windows_core::HRESULT,
pub GetModuleNames: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, base: u64, imagenamebuffer: ::windows_core::PSTR, imagenamebuffersize: u32, imagenamesize: *mut u32, modulenamebuffer: ::windows_core::PSTR, modulenamebuffersize: u32, modulenamesize: *mut u32, loadedimagenamebuffer: ::windows_core::PSTR, loadedimagenamebuffersize: u32, loadedimagenamesize: *mut u32) -> ::windows_core::HRESULT,
pub GetModuleParameters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: u32, bases: *const u64, start: u32, params: *mut DEBUG_MODULE_PARAMETERS) -> ::windows_core::HRESULT,
pub GetSymbolModule: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, symbol: ::windows_core::PCSTR, base: *mut u64) -> ::windows_core::HRESULT,
pub GetTypeName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: u64, typeid: u32, namebuffer: ::windows_core::PSTR, namebuffersize: u32, namesize: *mut u32) -> ::windows_core::HRESULT,
pub GetTypeId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: u64, name: ::windows_core::PCSTR, typeid: *mut u32) -> ::windows_core::HRESULT,
pub GetTypeSize: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: u64, typeid: u32, size: *mut u32) -> ::windows_core::HRESULT,
pub GetFieldOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: u64, typeid: u32, field: ::windows_core::PCSTR, offset: *mut u32) -> ::windows_core::HRESULT,
pub GetSymbolTypeId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, symbol: ::windows_core::PCSTR, typeid: *mut u32, module: *mut u64) -> ::windows_core::HRESULT,
pub GetOffsetTypeId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, typeid: *mut u32, module: *mut u64) -> ::windows_core::HRESULT,
pub ReadTypedDataVirtual: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, module: u64, typeid: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows_core::HRESULT,
pub WriteTypedDataVirtual: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, module: u64, typeid: u32, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows_core::HRESULT,
pub OutputTypedDataVirtual: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, offset: u64, module: u64, typeid: u32, flags: u32) -> ::windows_core::HRESULT,
pub ReadTypedDataPhysical: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, module: u64, typeid: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows_core::HRESULT,
pub WriteTypedDataPhysical: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, module: u64, typeid: u32, buffer: *const ::core::ffi::c_void, buffersize: u32, byteswritten: *mut u32) -> ::windows_core::HRESULT,
pub OutputTypedDataPhysical: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, offset: u64, module: u64, typeid: u32, flags: u32) -> ::windows_core::HRESULT,
#[cfg(feature = "Win32_Foundation")]
pub GetScope: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, instructionoffset: *mut u64, scopeframe: *mut DEBUG_STACK_FRAME, scopecontext: *mut ::core::ffi::c_void, scopecontextsize: u32) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
GetScope: usize,
#[cfg(feature = "Win32_Foundation")]
pub SetScope: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, instructionoffset: u64, scopeframe: *const DEBUG_STACK_FRAME, scopecontext: *const ::core::ffi::c_void, scopecontextsize: u32) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
SetScope: usize,
pub ResetScope: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub GetScopeSymbolGroup: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, update: *mut ::core::ffi::c_void, symbols: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub CreateSymbolGroup: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, group: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub StartSymbolMatch: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pattern: ::windows_core::PCSTR, handle: *mut u64) -> ::windows_core::HRESULT,
pub GetNextSymbolMatch: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64, buffer: ::windows_core::PSTR, buffersize: u32, matchsize: *mut u32, offset: *mut u64) -> ::windows_core::HRESULT,
pub EndSymbolMatch: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64) -> ::windows_core::HRESULT,
pub Reload: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub GetSymbolPath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PSTR, buffersize: u32, pathsize: *mut u32) -> ::windows_core::HRESULT,
pub SetSymbolPath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, path: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub AppendSymbolPath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, addition: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub GetImagePath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PSTR, buffersize: u32, pathsize: *mut u32) -> ::windows_core::HRESULT,
pub SetImagePath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, path: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub AppendImagePath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, addition: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub GetSourcePath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PSTR, buffersize: u32, pathsize: *mut u32) -> ::windows_core::HRESULT,
pub GetSourcePathElement: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows_core::PSTR, buffersize: u32, elementsize: *mut u32) -> ::windows_core::HRESULT,
pub SetSourcePath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, path: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub AppendSourcePath: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, addition: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
pub FindSourceFile: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, startelement: u32, file: ::windows_core::PCSTR, flags: u32, foundelement: *mut u32, buffer: ::windows_core::PSTR, buffersize: u32, foundsize: *mut u32) -> ::windows_core::HRESULT,
pub GetSourceFileLineOffsets: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, file: ::windows_core::PCSTR, buffer: *mut u64, bufferlines: u32, filelines: *mut u32) -> ::windows_core::HRESULT,
pub GetModuleVersionInformation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, base: u64, item: ::windows_core::PCSTR, buffer: *mut ::core::ffi::c_void, buffersize: u32, verinfosize: *mut u32) -> ::windows_core::HRESULT,
pub GetModuleNameString: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, which: u32, index: u32, base: u64, buffer: ::windows_core::PSTR, buffersize: u32, namesize: *mut u32) -> ::windows_core::HRESULT,
pub GetConstantName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: u64, typeid: u32, value: u64, namebuffer: ::windows_core::PSTR, namebuffersize: u32, namesize: *mut u32) -> ::windows_core::HRESULT,
pub GetFieldName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: u64, typeid: u32, fieldindex: u32, namebuffer: ::windows_core::PSTR, namebuffersize: u32, namesize: *mut u32) -> ::windows_core::HRESULT,
pub GetTypeOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: *mut u32) -> ::windows_core::HRESULT,
pub AddTypeOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows_core::HRESULT,
pub RemoveTypeOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows_core::HRESULT,
pub SetTypeOptions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, options: u32) -> ::windows_core::HRESULT,
pub GetNameByOffsetWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, namebuffer: ::windows_core::PWSTR, namebuffersize: u32, namesize: *mut u32, displacement: *mut u64) -> ::windows_core::HRESULT,
pub GetOffsetByNameWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, symbol: ::windows_core::PCWSTR, offset: *mut u64) -> ::windows_core::HRESULT,
pub GetNearNameByOffsetWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, delta: i32, namebuffer: ::windows_core::PWSTR, namebuffersize: u32, namesize: *mut u32, displacement: *mut u64) -> ::windows_core::HRESULT,
pub GetLineByOffsetWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, line: *mut u32, filebuffer: ::windows_core::PWSTR, filebuffersize: u32, filesize: *mut u32, displacement: *mut u64) -> ::windows_core::HRESULT,
pub GetOffsetByLineWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, line: u32, file: ::windows_core::PCWSTR, offset: *mut u64) -> ::windows_core::HRESULT,
pub GetModuleByModuleNameWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, name: ::windows_core::PCWSTR, startindex: u32, index: *mut u32, base: *mut u64) -> ::windows_core::HRESULT,
pub GetSymbolModuleWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, symbol: ::windows_core::PCWSTR, base: *mut u64) -> ::windows_core::HRESULT,
pub GetTypeNameWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: u64, typeid: u32, namebuffer: ::windows_core::PWSTR, namebuffersize: u32, namesize: *mut u32) -> ::windows_core::HRESULT,
pub GetTypeIdWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: u64, name: ::windows_core::PCWSTR, typeid: *mut u32) -> ::windows_core::HRESULT,
pub GetFieldOffsetWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: u64, typeid: u32, field: ::windows_core::PCWSTR, offset: *mut u32) -> ::windows_core::HRESULT,
pub GetSymbolTypeIdWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, symbol: ::windows_core::PCWSTR, typeid: *mut u32, module: *mut u64) -> ::windows_core::HRESULT,
pub GetScopeSymbolGroup2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, update: *mut ::core::ffi::c_void, symbols: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub CreateSymbolGroup2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, group: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub StartSymbolMatchWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pattern: ::windows_core::PCWSTR, handle: *mut u64) -> ::windows_core::HRESULT,
pub GetNextSymbolMatchWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64, buffer: ::windows_core::PWSTR, buffersize: u32, matchsize: *mut u32, offset: *mut u64) -> ::windows_core::HRESULT,
pub ReloadWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
pub GetSymbolPathWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PWSTR, buffersize: u32, pathsize: *mut u32) -> ::windows_core::HRESULT,
pub SetSymbolPathWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, path: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
pub AppendSymbolPathWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, addition: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
pub GetImagePathWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PWSTR, buffersize: u32, pathsize: *mut u32) -> ::windows_core::HRESULT,
pub SetImagePathWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, path: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
pub AppendImagePathWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, addition: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
pub GetSourcePathWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PWSTR, buffersize: u32, pathsize: *mut u32) -> ::windows_core::HRESULT,
pub GetSourcePathElementWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, buffer: ::windows_core::PWSTR, buffersize: u32, elementsize: *mut u32) -> ::windows_core::HRESULT,
pub SetSourcePathWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, path: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
pub AppendSourcePathWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, addition: ::windows_core::PCWSTR) -> ::windows_core::HRESULT,
pub FindSourceFileWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, startelement: u32, file: ::windows_core::PCWSTR, flags: u32, foundelement: *mut u32, buffer: ::windows_core::PWSTR, buffersize: u32, foundsize: *mut u32) -> ::windows_core::HRESULT,
pub GetSourceFileLineOffsetsWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, file: ::windows_core::PCWSTR, buffer: *mut u64, bufferlines: u32, filelines: *mut u32) -> ::windows_core::HRESULT,
pub GetModuleVersionInformationWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, base: u64, item: ::windows_core::PCWSTR, buffer: *mut ::core::ffi::c_void, buffersize: u32, verinfosize: *mut u32) -> ::windows_core::HRESULT,
pub GetModuleNameStringWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, which: u32, index: u32, base: u64, buffer: ::windows_core::PWSTR, buffersize: u32, namesize: *mut u32) -> ::windows_core::HRESULT,
pub GetConstantNameWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: u64, typeid: u32, value: u64, namebuffer: ::windows_core::PWSTR, namebuffersize: u32, namesize: *mut u32) -> ::windows_core::HRESULT,
pub GetFieldNameWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: u64, typeid: u32, fieldindex: u32, namebuffer: ::windows_core::PWSTR, namebuffersize: u32, namesize: *mut u32) -> ::windows_core::HRESULT,
pub IsManagedModule: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, base: u64) -> ::windows_core::HRESULT,
pub GetModuleByModuleName2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, name: ::windows_core::PCSTR, startindex: u32, flags: u32, index: *mut u32, base: *mut u64) -> ::windows_core::HRESULT,
pub GetModuleByModuleName2Wide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, name: ::windows_core::PCWSTR, startindex: u32, flags: u32, index: *mut u32, base: *mut u64) -> ::windows_core::HRESULT,
pub GetModuleByOffset2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, startindex: u32, flags: u32, index: *mut u32, base: *mut u64) -> ::windows_core::HRESULT,
pub AddSyntheticModule: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, base: u64, size: u32, imagepath: ::windows_core::PCSTR, modulename: ::windows_core::PCSTR, flags: u32) -> ::windows_core::HRESULT,
pub AddSyntheticModuleWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, base: u64, size: u32, imagepath: ::windows_core::PCWSTR, modulename: ::windows_core::PCWSTR, flags: u32) -> ::windows_core::HRESULT,
pub RemoveSyntheticModule: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, base: u64) -> ::windows_core::HRESULT,
pub GetCurrentScopeFrameIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: *mut u32) -> ::windows_core::HRESULT,
pub SetScopeFrameByIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32) -> ::windows_core::HRESULT,
pub SetScopeFromJitDebugInfo: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, infooffset: u64) -> ::windows_core::HRESULT,
pub SetScopeFromStoredEvent: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub OutputSymbolByOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, flags: u32, offset: u64) -> ::windows_core::HRESULT,
pub GetFunctionEntryByOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, flags: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, bufferneeded: *mut u32) -> ::windows_core::HRESULT,
pub GetFieldTypeAndOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: u64, containertypeid: u32, field: ::windows_core::PCSTR, fieldtypeid: *mut u32, offset: *mut u32) -> ::windows_core::HRESULT,
pub GetFieldTypeAndOffsetWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: u64, containertypeid: u32, field: ::windows_core::PCWSTR, fieldtypeid: *mut u32, offset: *mut u32) -> ::windows_core::HRESULT,
pub AddSyntheticSymbol: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, size: u32, name: ::windows_core::PCSTR, flags: u32, id: *mut DEBUG_MODULE_AND_ID) -> ::windows_core::HRESULT,
pub AddSyntheticSymbolWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, size: u32, name: ::windows_core::PCWSTR, flags: u32, id: *mut DEBUG_MODULE_AND_ID) -> ::windows_core::HRESULT,
pub RemoveSyntheticSymbol: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: *const DEBUG_MODULE_AND_ID) -> ::windows_core::HRESULT,
pub GetSymbolEntriesByOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, flags: u32, ids: *mut DEBUG_MODULE_AND_ID, displacements: *mut u64, idscount: u32, entries: *mut u32) -> ::windows_core::HRESULT,
pub GetSymbolEntriesByName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, symbol: ::windows_core::PCSTR, flags: u32, ids: *mut DEBUG_MODULE_AND_ID, idscount: u32, entries: *mut u32) -> ::windows_core::HRESULT,
pub GetSymbolEntriesByNameWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, symbol: ::windows_core::PCWSTR, flags: u32, ids: *mut DEBUG_MODULE_AND_ID, idscount: u32, entries: *mut u32) -> ::windows_core::HRESULT,
pub GetSymbolEntryByToken: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, modulebase: u64, token: u32, id: *mut DEBUG_MODULE_AND_ID) -> ::windows_core::HRESULT,
pub GetSymbolEntryInformation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: *const DEBUG_MODULE_AND_ID, info: *mut DEBUG_SYMBOL_ENTRY) -> ::windows_core::HRESULT,
pub GetSymbolEntryString: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: *const DEBUG_MODULE_AND_ID, which: u32, buffer: ::windows_core::PSTR, buffersize: u32, stringsize: *mut u32) -> ::windows_core::HRESULT,
pub GetSymbolEntryStringWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: *const DEBUG_MODULE_AND_ID, which: u32, buffer: ::windows_core::PWSTR, buffersize: u32, stringsize: *mut u32) -> ::windows_core::HRESULT,
pub GetSymbolEntryOffsetRegions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: *const DEBUG_MODULE_AND_ID, flags: u32, regions: *mut DEBUG_OFFSET_REGION, regionscount: u32, regionsavail: *mut u32) -> ::windows_core::HRESULT,
pub GetSymbolEntryBySymbolEntry: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, fromid: *const DEBUG_MODULE_AND_ID, flags: u32, toid: *mut DEBUG_MODULE_AND_ID) -> ::windows_core::HRESULT,
pub GetSourceEntriesByOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, flags: u32, entries: *mut DEBUG_SYMBOL_SOURCE_ENTRY, entriescount: u32, entriesavail: *mut u32) -> ::windows_core::HRESULT,
pub GetSourceEntriesByLine: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, line: u32, file: ::windows_core::PCSTR, flags: u32, entries: *mut DEBUG_SYMBOL_SOURCE_ENTRY, entriescount: u32, entriesavail: *mut u32) -> ::windows_core::HRESULT,
pub GetSourceEntriesByLineWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, line: u32, file: ::windows_core::PCWSTR, flags: u32, entries: *mut DEBUG_SYMBOL_SOURCE_ENTRY, entriescount: u32, entriesavail: *mut u32) -> ::windows_core::HRESULT,
pub GetSourceEntryString: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, entry: *const DEBUG_SYMBOL_SOURCE_ENTRY, which: u32, buffer: ::windows_core::PSTR, buffersize: u32, stringsize: *mut u32) -> ::windows_core::HRESULT,
pub GetSourceEntryStringWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, entry: *const DEBUG_SYMBOL_SOURCE_ENTRY, which: u32, buffer: ::windows_core::PWSTR, buffersize: u32, stringsize: *mut u32) -> ::windows_core::HRESULT,
pub GetSourceEntryOffsetRegions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, entry: *const DEBUG_SYMBOL_SOURCE_ENTRY, flags: u32, regions: *mut DEBUG_OFFSET_REGION, regionscount: u32, regionsavail: *mut u32) -> ::windows_core::HRESULT,
pub GetSourceEntryBySourceEntry: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, fromentry: *const DEBUG_SYMBOL_SOURCE_ENTRY, flags: u32, toentry: *mut DEBUG_SYMBOL_SOURCE_ENTRY) -> ::windows_core::HRESULT,
#[cfg(feature = "Win32_Foundation")]
pub GetScopeEx: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, instructionoffset: *mut u64, scopeframe: *mut DEBUG_STACK_FRAME_EX, scopecontext: *mut ::core::ffi::c_void, scopecontextsize: u32) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
GetScopeEx: usize,
#[cfg(feature = "Win32_Foundation")]
pub SetScopeEx: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, instructionoffset: u64, scopeframe: *const DEBUG_STACK_FRAME_EX, scopecontext: *const ::core::ffi::c_void, scopecontextsize: u32) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
SetScopeEx: usize,
pub GetNameByInlineContext: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, inlinecontext: u32, namebuffer: ::windows_core::PSTR, namebuffersize: u32, namesize: *mut u32, displacement: *mut u64) -> ::windows_core::HRESULT,
pub GetNameByInlineContextWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, inlinecontext: u32, namebuffer: ::windows_core::PWSTR, namebuffersize: u32, namesize: *mut u32, displacement: *mut u64) -> ::windows_core::HRESULT,
pub GetLineByInlineContext: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, inlinecontext: u32, line: *mut u32, filebuffer: ::windows_core::PSTR, filebuffersize: u32, filesize: *mut u32, displacement: *mut u64) -> ::windows_core::HRESULT,
pub GetLineByInlineContextWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, inlinecontext: u32, line: *mut u32, filebuffer: ::windows_core::PWSTR, filebuffersize: u32, filesize: *mut u32, displacement: *mut u64) -> ::windows_core::HRESULT,
pub OutputSymbolByInlineContext: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, outputcontrol: u32, flags: u32, offset: u64, inlinecontext: u32) -> ::windows_core::HRESULT,
pub GetCurrentScopeFrameIndexEx: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, index: *mut u32) -> ::windows_core::HRESULT,
pub SetScopeFrameByIndexEx: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: u32, index: u32) -> ::windows_core::HRESULT,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IDebugSystemObjects(::windows_core::IUnknown);
impl IDebugSystemObjects {
pub unsafe fn GetEventThread(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetEventThread)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetEventProcess(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetEventProcess)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetCurrentThreadId(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetCurrentThreadId)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetCurrentThreadId(&self, id: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetCurrentThreadId)(::windows_core::Interface::as_raw(self), id).ok()
}
pub unsafe fn GetCurrentProcessId(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetCurrentProcessId)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetCurrentProcessId(&self, id: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetCurrentProcessId)(::windows_core::Interface::as_raw(self), id).ok()
}
pub unsafe fn GetNumberThreads(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetNumberThreads)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetTotalNumberThreads(&self, total: *mut u32, largestprocess: *mut u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetTotalNumberThreads)(::windows_core::Interface::as_raw(self), total, largestprocess).ok()
}
pub unsafe fn GetThreadIdsByIndex(&self, start: u32, count: u32, ids: ::core::option::Option<*mut u32>, sysids: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetThreadIdsByIndex)(::windows_core::Interface::as_raw(self), start, count, ::core::mem::transmute(ids.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(sysids.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetThreadIdByProcessor(&self, processor: u32) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetThreadIdByProcessor)(::windows_core::Interface::as_raw(self), processor, &mut result__).from_abi(result__)
}
pub unsafe fn GetCurrentThreadDataOffset(&self) -> ::windows_core::Result<u64> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetCurrentThreadDataOffset)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetThreadIdByDataOffset(&self, offset: u64) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetThreadIdByDataOffset)(::windows_core::Interface::as_raw(self), offset, &mut result__).from_abi(result__)
}
pub unsafe fn GetCurrentThreadTeb(&self) -> ::windows_core::Result<u64> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetCurrentThreadTeb)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetThreadIdByTeb(&self, offset: u64) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetThreadIdByTeb)(::windows_core::Interface::as_raw(self), offset, &mut result__).from_abi(result__)
}
pub unsafe fn GetCurrentThreadSystemId(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetCurrentThreadSystemId)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetThreadIdBySystemId(&self, sysid: u32) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetThreadIdBySystemId)(::windows_core::Interface::as_raw(self), sysid, &mut result__).from_abi(result__)
}
pub unsafe fn GetCurrentThreadHandle(&self) -> ::windows_core::Result<u64> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetCurrentThreadHandle)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetThreadIdByHandle(&self, handle: u64) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetThreadIdByHandle)(::windows_core::Interface::as_raw(self), handle, &mut result__).from_abi(result__)
}
pub unsafe fn GetNumberProcesses(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetNumberProcesses)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetProcessIdsByIndex(&self, start: u32, count: u32, ids: ::core::option::Option<*mut u32>, sysids: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetProcessIdsByIndex)(::windows_core::Interface::as_raw(self), start, count, ::core::mem::transmute(ids.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(sysids.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetCurrentProcessDataOffset(&self) -> ::windows_core::Result<u64> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetCurrentProcessDataOffset)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetProcessIdByDataOffset(&self, offset: u64) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetProcessIdByDataOffset)(::windows_core::Interface::as_raw(self), offset, &mut result__).from_abi(result__)
}
pub unsafe fn GetCurrentProcessPeb(&self) -> ::windows_core::Result<u64> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetCurrentProcessPeb)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetProcessIdByPeb(&self, offset: u64) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetProcessIdByPeb)(::windows_core::Interface::as_raw(self), offset, &mut result__).from_abi(result__)
}
pub unsafe fn GetCurrentProcessSystemId(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetCurrentProcessSystemId)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetProcessIdBySystemId(&self, sysid: u32) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetProcessIdBySystemId)(::windows_core::Interface::as_raw(self), sysid, &mut result__).from_abi(result__)
}
pub unsafe fn GetCurrentProcessHandle(&self) -> ::windows_core::Result<u64> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetCurrentProcessHandle)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetProcessIdByHandle(&self, handle: u64) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetProcessIdByHandle)(::windows_core::Interface::as_raw(self), handle, &mut result__).from_abi(result__)
}
pub unsafe fn GetCurrentProcessExecutableName(&self, buffer: ::core::option::Option<&mut [u8]>, exesize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetCurrentProcessExecutableName)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(exesize.unwrap_or(::std::ptr::null_mut()))).ok()
}
}
::windows_core::imp::interface_hierarchy!(IDebugSystemObjects, ::windows_core::IUnknown);
unsafe impl ::windows_core::Interface for IDebugSystemObjects {
type Vtable = IDebugSystemObjects_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IDebugSystemObjects {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0x6b86fe2c_2c4f_4f0c_9da2_174311acc327);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugSystemObjects_Vtbl {
pub base__: ::windows_core::IUnknown_Vtbl,
pub GetEventThread: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: *mut u32) -> ::windows_core::HRESULT,
pub GetEventProcess: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: *mut u32) -> ::windows_core::HRESULT,
pub GetCurrentThreadId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: *mut u32) -> ::windows_core::HRESULT,
pub SetCurrentThreadId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: u32) -> ::windows_core::HRESULT,
pub GetCurrentProcessId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: *mut u32) -> ::windows_core::HRESULT,
pub SetCurrentProcessId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: u32) -> ::windows_core::HRESULT,
pub GetNumberThreads: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows_core::HRESULT,
pub GetTotalNumberThreads: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, total: *mut u32, largestprocess: *mut u32) -> ::windows_core::HRESULT,
pub GetThreadIdsByIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, start: u32, count: u32, ids: *mut u32, sysids: *mut u32) -> ::windows_core::HRESULT,
pub GetThreadIdByProcessor: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, processor: u32, id: *mut u32) -> ::windows_core::HRESULT,
pub GetCurrentThreadDataOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows_core::HRESULT,
pub GetThreadIdByDataOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, id: *mut u32) -> ::windows_core::HRESULT,
pub GetCurrentThreadTeb: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows_core::HRESULT,
pub GetThreadIdByTeb: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, id: *mut u32) -> ::windows_core::HRESULT,
pub GetCurrentThreadSystemId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, sysid: *mut u32) -> ::windows_core::HRESULT,
pub GetThreadIdBySystemId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, sysid: u32, id: *mut u32) -> ::windows_core::HRESULT,
pub GetCurrentThreadHandle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: *mut u64) -> ::windows_core::HRESULT,
pub GetThreadIdByHandle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64, id: *mut u32) -> ::windows_core::HRESULT,
pub GetNumberProcesses: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows_core::HRESULT,
pub GetProcessIdsByIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, start: u32, count: u32, ids: *mut u32, sysids: *mut u32) -> ::windows_core::HRESULT,
pub GetCurrentProcessDataOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows_core::HRESULT,
pub GetProcessIdByDataOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, id: *mut u32) -> ::windows_core::HRESULT,
pub GetCurrentProcessPeb: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows_core::HRESULT,
pub GetProcessIdByPeb: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, id: *mut u32) -> ::windows_core::HRESULT,
pub GetCurrentProcessSystemId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, sysid: *mut u32) -> ::windows_core::HRESULT,
pub GetProcessIdBySystemId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, sysid: u32, id: *mut u32) -> ::windows_core::HRESULT,
pub GetCurrentProcessHandle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: *mut u64) -> ::windows_core::HRESULT,
pub GetProcessIdByHandle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64, id: *mut u32) -> ::windows_core::HRESULT,
pub GetCurrentProcessExecutableName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PSTR, buffersize: u32, exesize: *mut u32) -> ::windows_core::HRESULT,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IDebugSystemObjects2(::windows_core::IUnknown);
impl IDebugSystemObjects2 {
pub unsafe fn GetEventThread(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetEventThread)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetEventProcess(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetEventProcess)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetCurrentThreadId(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetCurrentThreadId)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetCurrentThreadId(&self, id: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetCurrentThreadId)(::windows_core::Interface::as_raw(self), id).ok()
}
pub unsafe fn GetCurrentProcessId(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetCurrentProcessId)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetCurrentProcessId(&self, id: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetCurrentProcessId)(::windows_core::Interface::as_raw(self), id).ok()
}
pub unsafe fn GetNumberThreads(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetNumberThreads)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetTotalNumberThreads(&self, total: *mut u32, largestprocess: *mut u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetTotalNumberThreads)(::windows_core::Interface::as_raw(self), total, largestprocess).ok()
}
pub unsafe fn GetThreadIdsByIndex(&self, start: u32, count: u32, ids: ::core::option::Option<*mut u32>, sysids: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetThreadIdsByIndex)(::windows_core::Interface::as_raw(self), start, count, ::core::mem::transmute(ids.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(sysids.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetThreadIdByProcessor(&self, processor: u32) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetThreadIdByProcessor)(::windows_core::Interface::as_raw(self), processor, &mut result__).from_abi(result__)
}
pub unsafe fn GetCurrentThreadDataOffset(&self) -> ::windows_core::Result<u64> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetCurrentThreadDataOffset)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetThreadIdByDataOffset(&self, offset: u64) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetThreadIdByDataOffset)(::windows_core::Interface::as_raw(self), offset, &mut result__).from_abi(result__)
}
pub unsafe fn GetCurrentThreadTeb(&self) -> ::windows_core::Result<u64> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetCurrentThreadTeb)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetThreadIdByTeb(&self, offset: u64) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetThreadIdByTeb)(::windows_core::Interface::as_raw(self), offset, &mut result__).from_abi(result__)
}
pub unsafe fn GetCurrentThreadSystemId(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetCurrentThreadSystemId)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetThreadIdBySystemId(&self, sysid: u32) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetThreadIdBySystemId)(::windows_core::Interface::as_raw(self), sysid, &mut result__).from_abi(result__)
}
pub unsafe fn GetCurrentThreadHandle(&self) -> ::windows_core::Result<u64> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetCurrentThreadHandle)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetThreadIdByHandle(&self, handle: u64) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetThreadIdByHandle)(::windows_core::Interface::as_raw(self), handle, &mut result__).from_abi(result__)
}
pub unsafe fn GetNumberProcesses(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetNumberProcesses)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetProcessIdsByIndex(&self, start: u32, count: u32, ids: ::core::option::Option<*mut u32>, sysids: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetProcessIdsByIndex)(::windows_core::Interface::as_raw(self), start, count, ::core::mem::transmute(ids.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(sysids.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetCurrentProcessDataOffset(&self) -> ::windows_core::Result<u64> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetCurrentProcessDataOffset)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetProcessIdByDataOffset(&self, offset: u64) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetProcessIdByDataOffset)(::windows_core::Interface::as_raw(self), offset, &mut result__).from_abi(result__)
}
pub unsafe fn GetCurrentProcessPeb(&self) -> ::windows_core::Result<u64> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetCurrentProcessPeb)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetProcessIdByPeb(&self, offset: u64) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetProcessIdByPeb)(::windows_core::Interface::as_raw(self), offset, &mut result__).from_abi(result__)
}
pub unsafe fn GetCurrentProcessSystemId(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetCurrentProcessSystemId)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetProcessIdBySystemId(&self, sysid: u32) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetProcessIdBySystemId)(::windows_core::Interface::as_raw(self), sysid, &mut result__).from_abi(result__)
}
pub unsafe fn GetCurrentProcessHandle(&self) -> ::windows_core::Result<u64> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetCurrentProcessHandle)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetProcessIdByHandle(&self, handle: u64) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetProcessIdByHandle)(::windows_core::Interface::as_raw(self), handle, &mut result__).from_abi(result__)
}
pub unsafe fn GetCurrentProcessExecutableName(&self, buffer: ::core::option::Option<&mut [u8]>, exesize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetCurrentProcessExecutableName)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(exesize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetCurrentProcessUpTime(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetCurrentProcessUpTime)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetImplicitThreadDataOffset(&self) -> ::windows_core::Result<u64> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetImplicitThreadDataOffset)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetImplicitThreadDataOffset(&self, offset: u64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetImplicitThreadDataOffset)(::windows_core::Interface::as_raw(self), offset).ok()
}
pub unsafe fn GetImplicitProcessDataOffset(&self) -> ::windows_core::Result<u64> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetImplicitProcessDataOffset)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetImplicitProcessDataOffset(&self, offset: u64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetImplicitProcessDataOffset)(::windows_core::Interface::as_raw(self), offset).ok()
}
}
::windows_core::imp::interface_hierarchy!(IDebugSystemObjects2, ::windows_core::IUnknown);
unsafe impl ::windows_core::Interface for IDebugSystemObjects2 {
type Vtable = IDebugSystemObjects2_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IDebugSystemObjects2 {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0x0ae9f5ff_1852_4679_b055_494bee6407ee);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugSystemObjects2_Vtbl {
pub base__: ::windows_core::IUnknown_Vtbl,
pub GetEventThread: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: *mut u32) -> ::windows_core::HRESULT,
pub GetEventProcess: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: *mut u32) -> ::windows_core::HRESULT,
pub GetCurrentThreadId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: *mut u32) -> ::windows_core::HRESULT,
pub SetCurrentThreadId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: u32) -> ::windows_core::HRESULT,
pub GetCurrentProcessId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: *mut u32) -> ::windows_core::HRESULT,
pub SetCurrentProcessId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: u32) -> ::windows_core::HRESULT,
pub GetNumberThreads: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows_core::HRESULT,
pub GetTotalNumberThreads: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, total: *mut u32, largestprocess: *mut u32) -> ::windows_core::HRESULT,
pub GetThreadIdsByIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, start: u32, count: u32, ids: *mut u32, sysids: *mut u32) -> ::windows_core::HRESULT,
pub GetThreadIdByProcessor: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, processor: u32, id: *mut u32) -> ::windows_core::HRESULT,
pub GetCurrentThreadDataOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows_core::HRESULT,
pub GetThreadIdByDataOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, id: *mut u32) -> ::windows_core::HRESULT,
pub GetCurrentThreadTeb: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows_core::HRESULT,
pub GetThreadIdByTeb: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, id: *mut u32) -> ::windows_core::HRESULT,
pub GetCurrentThreadSystemId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, sysid: *mut u32) -> ::windows_core::HRESULT,
pub GetThreadIdBySystemId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, sysid: u32, id: *mut u32) -> ::windows_core::HRESULT,
pub GetCurrentThreadHandle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: *mut u64) -> ::windows_core::HRESULT,
pub GetThreadIdByHandle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64, id: *mut u32) -> ::windows_core::HRESULT,
pub GetNumberProcesses: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows_core::HRESULT,
pub GetProcessIdsByIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, start: u32, count: u32, ids: *mut u32, sysids: *mut u32) -> ::windows_core::HRESULT,
pub GetCurrentProcessDataOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows_core::HRESULT,
pub GetProcessIdByDataOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, id: *mut u32) -> ::windows_core::HRESULT,
pub GetCurrentProcessPeb: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows_core::HRESULT,
pub GetProcessIdByPeb: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, id: *mut u32) -> ::windows_core::HRESULT,
pub GetCurrentProcessSystemId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, sysid: *mut u32) -> ::windows_core::HRESULT,
pub GetProcessIdBySystemId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, sysid: u32, id: *mut u32) -> ::windows_core::HRESULT,
pub GetCurrentProcessHandle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: *mut u64) -> ::windows_core::HRESULT,
pub GetProcessIdByHandle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64, id: *mut u32) -> ::windows_core::HRESULT,
pub GetCurrentProcessExecutableName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PSTR, buffersize: u32, exesize: *mut u32) -> ::windows_core::HRESULT,
pub GetCurrentProcessUpTime: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, uptime: *mut u32) -> ::windows_core::HRESULT,
pub GetImplicitThreadDataOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows_core::HRESULT,
pub SetImplicitThreadDataOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64) -> ::windows_core::HRESULT,
pub GetImplicitProcessDataOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows_core::HRESULT,
pub SetImplicitProcessDataOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64) -> ::windows_core::HRESULT,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IDebugSystemObjects3(::windows_core::IUnknown);
impl IDebugSystemObjects3 {
pub unsafe fn GetEventThread(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetEventThread)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetEventProcess(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetEventProcess)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetCurrentThreadId(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetCurrentThreadId)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetCurrentThreadId(&self, id: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetCurrentThreadId)(::windows_core::Interface::as_raw(self), id).ok()
}
pub unsafe fn GetCurrentProcessId(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetCurrentProcessId)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetCurrentProcessId(&self, id: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetCurrentProcessId)(::windows_core::Interface::as_raw(self), id).ok()
}
pub unsafe fn GetNumberThreads(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetNumberThreads)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetTotalNumberThreads(&self, total: *mut u32, largestprocess: *mut u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetTotalNumberThreads)(::windows_core::Interface::as_raw(self), total, largestprocess).ok()
}
pub unsafe fn GetThreadIdsByIndex(&self, start: u32, count: u32, ids: ::core::option::Option<*mut u32>, sysids: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetThreadIdsByIndex)(::windows_core::Interface::as_raw(self), start, count, ::core::mem::transmute(ids.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(sysids.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetThreadIdByProcessor(&self, processor: u32) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetThreadIdByProcessor)(::windows_core::Interface::as_raw(self), processor, &mut result__).from_abi(result__)
}
pub unsafe fn GetCurrentThreadDataOffset(&self) -> ::windows_core::Result<u64> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetCurrentThreadDataOffset)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetThreadIdByDataOffset(&self, offset: u64) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetThreadIdByDataOffset)(::windows_core::Interface::as_raw(self), offset, &mut result__).from_abi(result__)
}
pub unsafe fn GetCurrentThreadTeb(&self) -> ::windows_core::Result<u64> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetCurrentThreadTeb)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetThreadIdByTeb(&self, offset: u64) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetThreadIdByTeb)(::windows_core::Interface::as_raw(self), offset, &mut result__).from_abi(result__)
}
pub unsafe fn GetCurrentThreadSystemId(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetCurrentThreadSystemId)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetThreadIdBySystemId(&self, sysid: u32) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetThreadIdBySystemId)(::windows_core::Interface::as_raw(self), sysid, &mut result__).from_abi(result__)
}
pub unsafe fn GetCurrentThreadHandle(&self) -> ::windows_core::Result<u64> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetCurrentThreadHandle)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetThreadIdByHandle(&self, handle: u64) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetThreadIdByHandle)(::windows_core::Interface::as_raw(self), handle, &mut result__).from_abi(result__)
}
pub unsafe fn GetNumberProcesses(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetNumberProcesses)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetProcessIdsByIndex(&self, start: u32, count: u32, ids: ::core::option::Option<*mut u32>, sysids: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetProcessIdsByIndex)(::windows_core::Interface::as_raw(self), start, count, ::core::mem::transmute(ids.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(sysids.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetCurrentProcessDataOffset(&self) -> ::windows_core::Result<u64> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetCurrentProcessDataOffset)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetProcessIdByDataOffset(&self, offset: u64) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetProcessIdByDataOffset)(::windows_core::Interface::as_raw(self), offset, &mut result__).from_abi(result__)
}
pub unsafe fn GetCurrentProcessPeb(&self) -> ::windows_core::Result<u64> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetCurrentProcessPeb)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetProcessIdByPeb(&self, offset: u64) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetProcessIdByPeb)(::windows_core::Interface::as_raw(self), offset, &mut result__).from_abi(result__)
}
pub unsafe fn GetCurrentProcessSystemId(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetCurrentProcessSystemId)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetProcessIdBySystemId(&self, sysid: u32) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetProcessIdBySystemId)(::windows_core::Interface::as_raw(self), sysid, &mut result__).from_abi(result__)
}
pub unsafe fn GetCurrentProcessHandle(&self) -> ::windows_core::Result<u64> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetCurrentProcessHandle)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetProcessIdByHandle(&self, handle: u64) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetProcessIdByHandle)(::windows_core::Interface::as_raw(self), handle, &mut result__).from_abi(result__)
}
pub unsafe fn GetCurrentProcessExecutableName(&self, buffer: ::core::option::Option<&mut [u8]>, exesize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetCurrentProcessExecutableName)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(exesize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetCurrentProcessUpTime(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetCurrentProcessUpTime)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetImplicitThreadDataOffset(&self) -> ::windows_core::Result<u64> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetImplicitThreadDataOffset)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetImplicitThreadDataOffset(&self, offset: u64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetImplicitThreadDataOffset)(::windows_core::Interface::as_raw(self), offset).ok()
}
pub unsafe fn GetImplicitProcessDataOffset(&self) -> ::windows_core::Result<u64> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetImplicitProcessDataOffset)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetImplicitProcessDataOffset(&self, offset: u64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetImplicitProcessDataOffset)(::windows_core::Interface::as_raw(self), offset).ok()
}
pub unsafe fn GetEventSystem(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetEventSystem)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetCurrentSystemId(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetCurrentSystemId)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetCurrentSystemId(&self, id: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetCurrentSystemId)(::windows_core::Interface::as_raw(self), id).ok()
}
pub unsafe fn GetNumberSystems(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetNumberSystems)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetSystemIdsByIndex(&self, start: u32, ids: &mut [u32]) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSystemIdsByIndex)(::windows_core::Interface::as_raw(self), start, ids.len().try_into().unwrap(), ::core::mem::transmute(ids.as_ptr())).ok()
}
pub unsafe fn GetTotalNumberThreadsAndProcesses(&self, totalthreads: *mut u32, totalprocesses: *mut u32, largestprocessthreads: *mut u32, largestsystemthreads: *mut u32, largestsystemprocesses: *mut u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetTotalNumberThreadsAndProcesses)(::windows_core::Interface::as_raw(self), totalthreads, totalprocesses, largestprocessthreads, largestsystemthreads, largestsystemprocesses).ok()
}
pub unsafe fn GetCurrentSystemServer(&self) -> ::windows_core::Result<u64> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetCurrentSystemServer)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetSystemByServer(&self, server: u64) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetSystemByServer)(::windows_core::Interface::as_raw(self), server, &mut result__).from_abi(result__)
}
pub unsafe fn GetCurrentSystemServerName(&self, buffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetCurrentSystemServerName)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut()))).ok()
}
}
::windows_core::imp::interface_hierarchy!(IDebugSystemObjects3, ::windows_core::IUnknown);
unsafe impl ::windows_core::Interface for IDebugSystemObjects3 {
type Vtable = IDebugSystemObjects3_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IDebugSystemObjects3 {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0xe9676e2f_e286_4ea3_b0f9_dfe5d9fc330e);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugSystemObjects3_Vtbl {
pub base__: ::windows_core::IUnknown_Vtbl,
pub GetEventThread: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: *mut u32) -> ::windows_core::HRESULT,
pub GetEventProcess: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: *mut u32) -> ::windows_core::HRESULT,
pub GetCurrentThreadId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: *mut u32) -> ::windows_core::HRESULT,
pub SetCurrentThreadId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: u32) -> ::windows_core::HRESULT,
pub GetCurrentProcessId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: *mut u32) -> ::windows_core::HRESULT,
pub SetCurrentProcessId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: u32) -> ::windows_core::HRESULT,
pub GetNumberThreads: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows_core::HRESULT,
pub GetTotalNumberThreads: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, total: *mut u32, largestprocess: *mut u32) -> ::windows_core::HRESULT,
pub GetThreadIdsByIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, start: u32, count: u32, ids: *mut u32, sysids: *mut u32) -> ::windows_core::HRESULT,
pub GetThreadIdByProcessor: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, processor: u32, id: *mut u32) -> ::windows_core::HRESULT,
pub GetCurrentThreadDataOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows_core::HRESULT,
pub GetThreadIdByDataOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, id: *mut u32) -> ::windows_core::HRESULT,
pub GetCurrentThreadTeb: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows_core::HRESULT,
pub GetThreadIdByTeb: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, id: *mut u32) -> ::windows_core::HRESULT,
pub GetCurrentThreadSystemId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, sysid: *mut u32) -> ::windows_core::HRESULT,
pub GetThreadIdBySystemId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, sysid: u32, id: *mut u32) -> ::windows_core::HRESULT,
pub GetCurrentThreadHandle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: *mut u64) -> ::windows_core::HRESULT,
pub GetThreadIdByHandle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64, id: *mut u32) -> ::windows_core::HRESULT,
pub GetNumberProcesses: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows_core::HRESULT,
pub GetProcessIdsByIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, start: u32, count: u32, ids: *mut u32, sysids: *mut u32) -> ::windows_core::HRESULT,
pub GetCurrentProcessDataOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows_core::HRESULT,
pub GetProcessIdByDataOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, id: *mut u32) -> ::windows_core::HRESULT,
pub GetCurrentProcessPeb: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows_core::HRESULT,
pub GetProcessIdByPeb: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, id: *mut u32) -> ::windows_core::HRESULT,
pub GetCurrentProcessSystemId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, sysid: *mut u32) -> ::windows_core::HRESULT,
pub GetProcessIdBySystemId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, sysid: u32, id: *mut u32) -> ::windows_core::HRESULT,
pub GetCurrentProcessHandle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: *mut u64) -> ::windows_core::HRESULT,
pub GetProcessIdByHandle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64, id: *mut u32) -> ::windows_core::HRESULT,
pub GetCurrentProcessExecutableName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PSTR, buffersize: u32, exesize: *mut u32) -> ::windows_core::HRESULT,
pub GetCurrentProcessUpTime: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, uptime: *mut u32) -> ::windows_core::HRESULT,
pub GetImplicitThreadDataOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows_core::HRESULT,
pub SetImplicitThreadDataOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64) -> ::windows_core::HRESULT,
pub GetImplicitProcessDataOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows_core::HRESULT,
pub SetImplicitProcessDataOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64) -> ::windows_core::HRESULT,
pub GetEventSystem: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: *mut u32) -> ::windows_core::HRESULT,
pub GetCurrentSystemId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: *mut u32) -> ::windows_core::HRESULT,
pub SetCurrentSystemId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: u32) -> ::windows_core::HRESULT,
pub GetNumberSystems: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows_core::HRESULT,
pub GetSystemIdsByIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, start: u32, count: u32, ids: *mut u32) -> ::windows_core::HRESULT,
pub GetTotalNumberThreadsAndProcesses: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, totalthreads: *mut u32, totalprocesses: *mut u32, largestprocessthreads: *mut u32, largestsystemthreads: *mut u32, largestsystemprocesses: *mut u32) -> ::windows_core::HRESULT,
pub GetCurrentSystemServer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: *mut u64) -> ::windows_core::HRESULT,
pub GetSystemByServer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, id: *mut u32) -> ::windows_core::HRESULT,
pub GetCurrentSystemServerName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PSTR, buffersize: u32, namesize: *mut u32) -> ::windows_core::HRESULT,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IDebugSystemObjects4(::windows_core::IUnknown);
impl IDebugSystemObjects4 {
pub unsafe fn GetEventThread(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetEventThread)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetEventProcess(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetEventProcess)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetCurrentThreadId(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetCurrentThreadId)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetCurrentThreadId(&self, id: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetCurrentThreadId)(::windows_core::Interface::as_raw(self), id).ok()
}
pub unsafe fn GetCurrentProcessId(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetCurrentProcessId)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetCurrentProcessId(&self, id: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetCurrentProcessId)(::windows_core::Interface::as_raw(self), id).ok()
}
pub unsafe fn GetNumberThreads(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetNumberThreads)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetTotalNumberThreads(&self, total: *mut u32, largestprocess: *mut u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetTotalNumberThreads)(::windows_core::Interface::as_raw(self), total, largestprocess).ok()
}
pub unsafe fn GetThreadIdsByIndex(&self, start: u32, count: u32, ids: ::core::option::Option<*mut u32>, sysids: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetThreadIdsByIndex)(::windows_core::Interface::as_raw(self), start, count, ::core::mem::transmute(ids.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(sysids.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetThreadIdByProcessor(&self, processor: u32) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetThreadIdByProcessor)(::windows_core::Interface::as_raw(self), processor, &mut result__).from_abi(result__)
}
pub unsafe fn GetCurrentThreadDataOffset(&self) -> ::windows_core::Result<u64> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetCurrentThreadDataOffset)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetThreadIdByDataOffset(&self, offset: u64) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetThreadIdByDataOffset)(::windows_core::Interface::as_raw(self), offset, &mut result__).from_abi(result__)
}
pub unsafe fn GetCurrentThreadTeb(&self) -> ::windows_core::Result<u64> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetCurrentThreadTeb)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetThreadIdByTeb(&self, offset: u64) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetThreadIdByTeb)(::windows_core::Interface::as_raw(self), offset, &mut result__).from_abi(result__)
}
pub unsafe fn GetCurrentThreadSystemId(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetCurrentThreadSystemId)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetThreadIdBySystemId(&self, sysid: u32) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetThreadIdBySystemId)(::windows_core::Interface::as_raw(self), sysid, &mut result__).from_abi(result__)
}
pub unsafe fn GetCurrentThreadHandle(&self) -> ::windows_core::Result<u64> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetCurrentThreadHandle)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetThreadIdByHandle(&self, handle: u64) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetThreadIdByHandle)(::windows_core::Interface::as_raw(self), handle, &mut result__).from_abi(result__)
}
pub unsafe fn GetNumberProcesses(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetNumberProcesses)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetProcessIdsByIndex(&self, start: u32, count: u32, ids: ::core::option::Option<*mut u32>, sysids: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetProcessIdsByIndex)(::windows_core::Interface::as_raw(self), start, count, ::core::mem::transmute(ids.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(sysids.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetCurrentProcessDataOffset(&self) -> ::windows_core::Result<u64> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetCurrentProcessDataOffset)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetProcessIdByDataOffset(&self, offset: u64) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetProcessIdByDataOffset)(::windows_core::Interface::as_raw(self), offset, &mut result__).from_abi(result__)
}
pub unsafe fn GetCurrentProcessPeb(&self) -> ::windows_core::Result<u64> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetCurrentProcessPeb)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetProcessIdByPeb(&self, offset: u64) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetProcessIdByPeb)(::windows_core::Interface::as_raw(self), offset, &mut result__).from_abi(result__)
}
pub unsafe fn GetCurrentProcessSystemId(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetCurrentProcessSystemId)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetProcessIdBySystemId(&self, sysid: u32) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetProcessIdBySystemId)(::windows_core::Interface::as_raw(self), sysid, &mut result__).from_abi(result__)
}
pub unsafe fn GetCurrentProcessHandle(&self) -> ::windows_core::Result<u64> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetCurrentProcessHandle)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetProcessIdByHandle(&self, handle: u64) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetProcessIdByHandle)(::windows_core::Interface::as_raw(self), handle, &mut result__).from_abi(result__)
}
pub unsafe fn GetCurrentProcessExecutableName(&self, buffer: ::core::option::Option<&mut [u8]>, exesize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetCurrentProcessExecutableName)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(exesize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetCurrentProcessUpTime(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetCurrentProcessUpTime)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetImplicitThreadDataOffset(&self) -> ::windows_core::Result<u64> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetImplicitThreadDataOffset)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetImplicitThreadDataOffset(&self, offset: u64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetImplicitThreadDataOffset)(::windows_core::Interface::as_raw(self), offset).ok()
}
pub unsafe fn GetImplicitProcessDataOffset(&self) -> ::windows_core::Result<u64> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetImplicitProcessDataOffset)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetImplicitProcessDataOffset(&self, offset: u64) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetImplicitProcessDataOffset)(::windows_core::Interface::as_raw(self), offset).ok()
}
pub unsafe fn GetEventSystem(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetEventSystem)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetCurrentSystemId(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetCurrentSystemId)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetCurrentSystemId(&self, id: u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).SetCurrentSystemId)(::windows_core::Interface::as_raw(self), id).ok()
}
pub unsafe fn GetNumberSystems(&self) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetNumberSystems)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetSystemIdsByIndex(&self, start: u32, ids: &mut [u32]) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetSystemIdsByIndex)(::windows_core::Interface::as_raw(self), start, ids.len().try_into().unwrap(), ::core::mem::transmute(ids.as_ptr())).ok()
}
pub unsafe fn GetTotalNumberThreadsAndProcesses(&self, totalthreads: *mut u32, totalprocesses: *mut u32, largestprocessthreads: *mut u32, largestsystemthreads: *mut u32, largestsystemprocesses: *mut u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetTotalNumberThreadsAndProcesses)(::windows_core::Interface::as_raw(self), totalthreads, totalprocesses, largestprocessthreads, largestsystemthreads, largestsystemprocesses).ok()
}
pub unsafe fn GetCurrentSystemServer(&self) -> ::windows_core::Result<u64> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetCurrentSystemServer)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetSystemByServer(&self, server: u64) -> ::windows_core::Result<u32> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetSystemByServer)(::windows_core::Interface::as_raw(self), server, &mut result__).from_abi(result__)
}
pub unsafe fn GetCurrentSystemServerName(&self, buffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetCurrentSystemServerName)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetCurrentProcessExecutableNameWide(&self, buffer: ::core::option::Option<&mut [u16]>, exesize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetCurrentProcessExecutableNameWide)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(exesize.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetCurrentSystemServerNameWide(&self, buffer: ::core::option::Option<&mut [u16]>, namesize: ::core::option::Option<*mut u32>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetCurrentSystemServerNameWide)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(namesize.unwrap_or(::std::ptr::null_mut()))).ok()
}
}
::windows_core::imp::interface_hierarchy!(IDebugSystemObjects4, ::windows_core::IUnknown);
unsafe impl ::windows_core::Interface for IDebugSystemObjects4 {
type Vtable = IDebugSystemObjects4_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IDebugSystemObjects4 {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0x489468e6_7d0f_4af5_87ab_25207454d553);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDebugSystemObjects4_Vtbl {
pub base__: ::windows_core::IUnknown_Vtbl,
pub GetEventThread: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: *mut u32) -> ::windows_core::HRESULT,
pub GetEventProcess: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: *mut u32) -> ::windows_core::HRESULT,
pub GetCurrentThreadId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: *mut u32) -> ::windows_core::HRESULT,
pub SetCurrentThreadId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: u32) -> ::windows_core::HRESULT,
pub GetCurrentProcessId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: *mut u32) -> ::windows_core::HRESULT,
pub SetCurrentProcessId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: u32) -> ::windows_core::HRESULT,
pub GetNumberThreads: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows_core::HRESULT,
pub GetTotalNumberThreads: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, total: *mut u32, largestprocess: *mut u32) -> ::windows_core::HRESULT,
pub GetThreadIdsByIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, start: u32, count: u32, ids: *mut u32, sysids: *mut u32) -> ::windows_core::HRESULT,
pub GetThreadIdByProcessor: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, processor: u32, id: *mut u32) -> ::windows_core::HRESULT,
pub GetCurrentThreadDataOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows_core::HRESULT,
pub GetThreadIdByDataOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, id: *mut u32) -> ::windows_core::HRESULT,
pub GetCurrentThreadTeb: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows_core::HRESULT,
pub GetThreadIdByTeb: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, id: *mut u32) -> ::windows_core::HRESULT,
pub GetCurrentThreadSystemId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, sysid: *mut u32) -> ::windows_core::HRESULT,
pub GetThreadIdBySystemId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, sysid: u32, id: *mut u32) -> ::windows_core::HRESULT,
pub GetCurrentThreadHandle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: *mut u64) -> ::windows_core::HRESULT,
pub GetThreadIdByHandle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64, id: *mut u32) -> ::windows_core::HRESULT,
pub GetNumberProcesses: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows_core::HRESULT,
pub GetProcessIdsByIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, start: u32, count: u32, ids: *mut u32, sysids: *mut u32) -> ::windows_core::HRESULT,
pub GetCurrentProcessDataOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows_core::HRESULT,
pub GetProcessIdByDataOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, id: *mut u32) -> ::windows_core::HRESULT,
pub GetCurrentProcessPeb: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows_core::HRESULT,
pub GetProcessIdByPeb: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64, id: *mut u32) -> ::windows_core::HRESULT,
pub GetCurrentProcessSystemId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, sysid: *mut u32) -> ::windows_core::HRESULT,
pub GetProcessIdBySystemId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, sysid: u32, id: *mut u32) -> ::windows_core::HRESULT,
pub GetCurrentProcessHandle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: *mut u64) -> ::windows_core::HRESULT,
pub GetProcessIdByHandle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, handle: u64, id: *mut u32) -> ::windows_core::HRESULT,
pub GetCurrentProcessExecutableName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PSTR, buffersize: u32, exesize: *mut u32) -> ::windows_core::HRESULT,
pub GetCurrentProcessUpTime: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, uptime: *mut u32) -> ::windows_core::HRESULT,
pub GetImplicitThreadDataOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows_core::HRESULT,
pub SetImplicitThreadDataOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64) -> ::windows_core::HRESULT,
pub GetImplicitProcessDataOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: *mut u64) -> ::windows_core::HRESULT,
pub SetImplicitProcessDataOffset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, offset: u64) -> ::windows_core::HRESULT,
pub GetEventSystem: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: *mut u32) -> ::windows_core::HRESULT,
pub GetCurrentSystemId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: *mut u32) -> ::windows_core::HRESULT,
pub SetCurrentSystemId: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: u32) -> ::windows_core::HRESULT,
pub GetNumberSystems: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, number: *mut u32) -> ::windows_core::HRESULT,
pub GetSystemIdsByIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, start: u32, count: u32, ids: *mut u32) -> ::windows_core::HRESULT,
pub GetTotalNumberThreadsAndProcesses: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, totalthreads: *mut u32, totalprocesses: *mut u32, largestprocessthreads: *mut u32, largestsystemthreads: *mut u32, largestsystemprocesses: *mut u32) -> ::windows_core::HRESULT,
pub GetCurrentSystemServer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: *mut u64) -> ::windows_core::HRESULT,
pub GetSystemByServer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, server: u64, id: *mut u32) -> ::windows_core::HRESULT,
pub GetCurrentSystemServerName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PSTR, buffersize: u32, namesize: *mut u32) -> ::windows_core::HRESULT,
pub GetCurrentProcessExecutableNameWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PWSTR, buffersize: u32, exesize: *mut u32) -> ::windows_core::HRESULT,
pub GetCurrentSystemServerNameWide: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: ::windows_core::PWSTR, buffersize: u32, namesize: *mut u32) -> ::windows_core::HRESULT,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IDynamicConceptProviderConcept(::windows_core::IUnknown);
impl IDynamicConceptProviderConcept {
pub unsafe fn GetConcept<P0>(&self, contextobject: P0, conceptid: *const ::windows_core::GUID, conceptinterface: *mut ::core::option::Option<::windows_core::IUnknown>, conceptmetadata: ::core::option::Option<*mut ::core::option::Option<IKeyStore>>, hasconcept: *mut bool) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IModelObject>,
{
(::windows_core::Interface::vtable(self).GetConcept)(::windows_core::Interface::as_raw(self), contextobject.into_param().abi(), conceptid, ::core::mem::transmute(conceptinterface), ::core::mem::transmute(conceptmetadata.unwrap_or(::std::ptr::null_mut())), hasconcept).ok()
}
pub unsafe fn SetConcept<P0, P1, P2>(&self, contextobject: P0, conceptid: *const ::windows_core::GUID, conceptinterface: P1, conceptmetadata: P2) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IModelObject>,
P1: ::windows_core::IntoParam<::windows_core::IUnknown>,
P2: ::windows_core::IntoParam<IKeyStore>,
{
(::windows_core::Interface::vtable(self).SetConcept)(::windows_core::Interface::as_raw(self), contextobject.into_param().abi(), conceptid, conceptinterface.into_param().abi(), conceptmetadata.into_param().abi()).ok()
}
pub unsafe fn NotifyParent<P0>(&self, parentmodel: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IModelObject>,
{
(::windows_core::Interface::vtable(self).NotifyParent)(::windows_core::Interface::as_raw(self), parentmodel.into_param().abi()).ok()
}
pub unsafe fn NotifyParentChange<P0>(&self, parentmodel: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IModelObject>,
{
(::windows_core::Interface::vtable(self).NotifyParentChange)(::windows_core::Interface::as_raw(self), parentmodel.into_param().abi()).ok()
}
pub unsafe fn NotifyDestruct(&self) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).NotifyDestruct)(::windows_core::Interface::as_raw(self)).ok()
}
}
::windows_core::imp::interface_hierarchy!(IDynamicConceptProviderConcept, ::windows_core::IUnknown);
unsafe impl ::windows_core::Interface for IDynamicConceptProviderConcept {
type Vtable = IDynamicConceptProviderConcept_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IDynamicConceptProviderConcept {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0x95a7f7dd_602e_483f_9d06_a15c0ee13174);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDynamicConceptProviderConcept_Vtbl {
pub base__: ::windows_core::IUnknown_Vtbl,
pub GetConcept: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, contextobject: *mut ::core::ffi::c_void, conceptid: *const ::windows_core::GUID, conceptinterface: *mut *mut ::core::ffi::c_void, conceptmetadata: *mut *mut ::core::ffi::c_void, hasconcept: *mut bool) -> ::windows_core::HRESULT,
pub SetConcept: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, contextobject: *mut ::core::ffi::c_void, conceptid: *const ::windows_core::GUID, conceptinterface: *mut ::core::ffi::c_void, conceptmetadata: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub NotifyParent: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, parentmodel: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub NotifyParentChange: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, parentmodel: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub NotifyDestruct: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IDynamicKeyProviderConcept(::windows_core::IUnknown);
impl IDynamicKeyProviderConcept {
pub unsafe fn GetKey<P0, P1>(&self, contextobject: P0, key: P1, keyvalue: ::core::option::Option<*mut ::core::option::Option<IModelObject>>, metadata: ::core::option::Option<*mut ::core::option::Option<IKeyStore>>, haskey: ::core::option::Option<*mut bool>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IModelObject>,
P1: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).GetKey)(::windows_core::Interface::as_raw(self), contextobject.into_param().abi(), key.into_param().abi(), ::core::mem::transmute(keyvalue.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(metadata.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(haskey.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetKey<P0, P1, P2, P3>(&self, contextobject: P0, key: P1, keyvalue: P2, metadata: P3) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IModelObject>,
P1: ::windows_core::IntoParam<::windows_core::PCWSTR>,
P2: ::windows_core::IntoParam<IModelObject>,
P3: ::windows_core::IntoParam<IKeyStore>,
{
(::windows_core::Interface::vtable(self).SetKey)(::windows_core::Interface::as_raw(self), contextobject.into_param().abi(), key.into_param().abi(), keyvalue.into_param().abi(), metadata.into_param().abi()).ok()
}
pub unsafe fn EnumerateKeys<P0>(&self, contextobject: P0) -> ::windows_core::Result<IKeyEnumerator>
where
P0: ::windows_core::IntoParam<IModelObject>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).EnumerateKeys)(::windows_core::Interface::as_raw(self), contextobject.into_param().abi(), &mut result__).from_abi(result__)
}
}
::windows_core::imp::interface_hierarchy!(IDynamicKeyProviderConcept, ::windows_core::IUnknown);
unsafe impl ::windows_core::Interface for IDynamicKeyProviderConcept {
type Vtable = IDynamicKeyProviderConcept_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IDynamicKeyProviderConcept {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0xe7983fa1_80a7_498c_988f_518ddc5d4025);
}
#[repr(C)]
#[doc(hidden)]
pub struct IDynamicKeyProviderConcept_Vtbl {
pub base__: ::windows_core::IUnknown_Vtbl,
pub GetKey: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, contextobject: *mut ::core::ffi::c_void, key: ::windows_core::PCWSTR, keyvalue: *mut *mut ::core::ffi::c_void, metadata: *mut *mut ::core::ffi::c_void, haskey: *mut bool) -> ::windows_core::HRESULT,
pub SetKey: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, contextobject: *mut ::core::ffi::c_void, key: ::windows_core::PCWSTR, keyvalue: *mut ::core::ffi::c_void, metadata: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub EnumerateKeys: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, contextobject: *mut ::core::ffi::c_void, ppenumerator: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IEquatableConcept(::windows_core::IUnknown);
impl IEquatableConcept {
pub unsafe fn AreObjectsEqual<P0, P1>(&self, contextobject: P0, otherobject: P1) -> ::windows_core::Result<bool>
where
P0: ::windows_core::IntoParam<IModelObject>,
P1: ::windows_core::IntoParam<IModelObject>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).AreObjectsEqual)(::windows_core::Interface::as_raw(self), contextobject.into_param().abi(), otherobject.into_param().abi(), &mut result__).from_abi(result__)
}
}
::windows_core::imp::interface_hierarchy!(IEquatableConcept, ::windows_core::IUnknown);
unsafe impl ::windows_core::Interface for IEquatableConcept {
type Vtable = IEquatableConcept_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IEquatableConcept {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0xc52d5d3d_609d_4d5d_8a82_46b0acdec4f4);
}
#[repr(C)]
#[doc(hidden)]
pub struct IEquatableConcept_Vtbl {
pub base__: ::windows_core::IUnknown_Vtbl,
pub AreObjectsEqual: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, contextobject: *mut ::core::ffi::c_void, otherobject: *mut ::core::ffi::c_void, isequal: *mut bool) -> ::windows_core::HRESULT,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IHostDataModelAccess(::windows_core::IUnknown);
impl IHostDataModelAccess {
pub unsafe fn GetDataModel(&self, manager: *mut ::core::option::Option<IDataModelManager>, host: *mut ::core::option::Option<IDebugHost>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetDataModel)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(manager), ::core::mem::transmute(host)).ok()
}
}
::windows_core::imp::interface_hierarchy!(IHostDataModelAccess, ::windows_core::IUnknown);
unsafe impl ::windows_core::Interface for IHostDataModelAccess {
type Vtable = IHostDataModelAccess_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IHostDataModelAccess {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0xf2bce54e_4835_4f8a_836e_7981e29904d1);
}
#[repr(C)]
#[doc(hidden)]
pub struct IHostDataModelAccess_Vtbl {
pub base__: ::windows_core::IUnknown_Vtbl,
pub GetDataModel: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, manager: *mut *mut ::core::ffi::c_void, host: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IIndexableConcept(::windows_core::IUnknown);
impl IIndexableConcept {
pub unsafe fn GetDimensionality<P0>(&self, contextobject: P0) -> ::windows_core::Result<u64>
where
P0: ::windows_core::IntoParam<IModelObject>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetDimensionality)(::windows_core::Interface::as_raw(self), contextobject.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn GetAt<P0>(&self, contextobject: P0, indexers: &[::core::option::Option<IModelObject>], object: *mut ::core::option::Option<IModelObject>, metadata: ::core::option::Option<*mut ::core::option::Option<IKeyStore>>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IModelObject>,
{
(::windows_core::Interface::vtable(self).GetAt)(::windows_core::Interface::as_raw(self), contextobject.into_param().abi(), indexers.len().try_into().unwrap(), ::core::mem::transmute(indexers.as_ptr()), ::core::mem::transmute(object), ::core::mem::transmute(metadata.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetAt<P0, P1>(&self, contextobject: P0, indexers: &[::core::option::Option<IModelObject>], value: P1) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IModelObject>,
P1: ::windows_core::IntoParam<IModelObject>,
{
(::windows_core::Interface::vtable(self).SetAt)(::windows_core::Interface::as_raw(self), contextobject.into_param().abi(), indexers.len().try_into().unwrap(), ::core::mem::transmute(indexers.as_ptr()), value.into_param().abi()).ok()
}
}
::windows_core::imp::interface_hierarchy!(IIndexableConcept, ::windows_core::IUnknown);
unsafe impl ::windows_core::Interface for IIndexableConcept {
type Vtable = IIndexableConcept_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IIndexableConcept {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0xd1fad99f_3f53_4457_850c_8051df2d3fb5);
}
#[repr(C)]
#[doc(hidden)]
pub struct IIndexableConcept_Vtbl {
pub base__: ::windows_core::IUnknown_Vtbl,
pub GetDimensionality: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, contextobject: *mut ::core::ffi::c_void, dimensionality: *mut u64) -> ::windows_core::HRESULT,
pub GetAt: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, contextobject: *mut ::core::ffi::c_void, indexercount: u64, indexers: *const *mut ::core::ffi::c_void, object: *mut *mut ::core::ffi::c_void, metadata: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub SetAt: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, contextobject: *mut ::core::ffi::c_void, indexercount: u64, indexers: *const *mut ::core::ffi::c_void, value: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IIterableConcept(::windows_core::IUnknown);
impl IIterableConcept {
pub unsafe fn GetDefaultIndexDimensionality<P0>(&self, contextobject: P0) -> ::windows_core::Result<u64>
where
P0: ::windows_core::IntoParam<IModelObject>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetDefaultIndexDimensionality)(::windows_core::Interface::as_raw(self), contextobject.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn GetIterator<P0>(&self, contextobject: P0) -> ::windows_core::Result<IModelIterator>
where
P0: ::windows_core::IntoParam<IModelObject>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetIterator)(::windows_core::Interface::as_raw(self), contextobject.into_param().abi(), &mut result__).from_abi(result__)
}
}
::windows_core::imp::interface_hierarchy!(IIterableConcept, ::windows_core::IUnknown);
unsafe impl ::windows_core::Interface for IIterableConcept {
type Vtable = IIterableConcept_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IIterableConcept {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0xf5d49d0c_0b02_4301_9c9b_b3a6037628f3);
}
#[repr(C)]
#[doc(hidden)]
pub struct IIterableConcept_Vtbl {
pub base__: ::windows_core::IUnknown_Vtbl,
pub GetDefaultIndexDimensionality: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, contextobject: *mut ::core::ffi::c_void, dimensionality: *mut u64) -> ::windows_core::HRESULT,
pub GetIterator: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, contextobject: *mut ::core::ffi::c_void, iterator: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IKeyEnumerator(::windows_core::IUnknown);
impl IKeyEnumerator {
pub unsafe fn Reset(&self) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).Reset)(::windows_core::Interface::as_raw(self)).ok()
}
pub unsafe fn GetNext(&self, key: *mut ::windows_core::BSTR, value: ::core::option::Option<*mut ::core::option::Option<IModelObject>>, metadata: ::core::option::Option<*mut ::core::option::Option<IKeyStore>>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetNext)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(key), ::core::mem::transmute(value.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(metadata.unwrap_or(::std::ptr::null_mut()))).ok()
}
}
::windows_core::imp::interface_hierarchy!(IKeyEnumerator, ::windows_core::IUnknown);
unsafe impl ::windows_core::Interface for IKeyEnumerator {
type Vtable = IKeyEnumerator_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IKeyEnumerator {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0x345fa92e_5e00_4319_9cae_971f7601cdcf);
}
#[repr(C)]
#[doc(hidden)]
pub struct IKeyEnumerator_Vtbl {
pub base__: ::windows_core::IUnknown_Vtbl,
pub Reset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub GetNext: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, key: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>, value: *mut *mut ::core::ffi::c_void, metadata: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IKeyStore(::windows_core::IUnknown);
impl IKeyStore {
pub unsafe fn GetKey<P0>(&self, key: P0, object: ::core::option::Option<*mut ::core::option::Option<IModelObject>>, metadata: ::core::option::Option<*mut ::core::option::Option<IKeyStore>>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).GetKey)(::windows_core::Interface::as_raw(self), key.into_param().abi(), ::core::mem::transmute(object.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(metadata.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetKey<P0, P1, P2>(&self, key: P0, object: P1, metadata: P2) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
P1: ::windows_core::IntoParam<IModelObject>,
P2: ::windows_core::IntoParam<IKeyStore>,
{
(::windows_core::Interface::vtable(self).SetKey)(::windows_core::Interface::as_raw(self), key.into_param().abi(), object.into_param().abi(), metadata.into_param().abi()).ok()
}
pub unsafe fn GetKeyValue<P0>(&self, key: P0, object: ::core::option::Option<*mut ::core::option::Option<IModelObject>>, metadata: ::core::option::Option<*mut ::core::option::Option<IKeyStore>>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).GetKeyValue)(::windows_core::Interface::as_raw(self), key.into_param().abi(), ::core::mem::transmute(object.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(metadata.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetKeyValue<P0, P1>(&self, key: P0, object: P1) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
P1: ::windows_core::IntoParam<IModelObject>,
{
(::windows_core::Interface::vtable(self).SetKeyValue)(::windows_core::Interface::as_raw(self), key.into_param().abi(), object.into_param().abi()).ok()
}
pub unsafe fn ClearKeys(&self) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).ClearKeys)(::windows_core::Interface::as_raw(self)).ok()
}
}
::windows_core::imp::interface_hierarchy!(IKeyStore, ::windows_core::IUnknown);
unsafe impl ::windows_core::Interface for IKeyStore {
type Vtable = IKeyStore_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IKeyStore {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0x0fc7557d_401d_4fca_9365_da1e9850697c);
}
#[repr(C)]
#[doc(hidden)]
pub struct IKeyStore_Vtbl {
pub base__: ::windows_core::IUnknown_Vtbl,
pub GetKey: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, key: ::windows_core::PCWSTR, object: *mut *mut ::core::ffi::c_void, metadata: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub SetKey: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, key: ::windows_core::PCWSTR, object: *mut ::core::ffi::c_void, metadata: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub GetKeyValue: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, key: ::windows_core::PCWSTR, object: *mut *mut ::core::ffi::c_void, metadata: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub SetKeyValue: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, key: ::windows_core::PCWSTR, object: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub ClearKeys: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IModelIterator(::windows_core::IUnknown);
impl IModelIterator {
pub unsafe fn Reset(&self) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).Reset)(::windows_core::Interface::as_raw(self)).ok()
}
pub unsafe fn GetNext(&self, object: *mut ::core::option::Option<IModelObject>, indexers: ::core::option::Option<&mut [::core::option::Option<IModelObject>]>, metadata: ::core::option::Option<*mut ::core::option::Option<IKeyStore>>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetNext)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(object), indexers.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(indexers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(metadata.unwrap_or(::std::ptr::null_mut()))).ok()
}
}
::windows_core::imp::interface_hierarchy!(IModelIterator, ::windows_core::IUnknown);
unsafe impl ::windows_core::Interface for IModelIterator {
type Vtable = IModelIterator_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IModelIterator {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0xe4622136_927d_4490_874f_581f3e4e3688);
}
#[repr(C)]
#[doc(hidden)]
pub struct IModelIterator_Vtbl {
pub base__: ::windows_core::IUnknown_Vtbl,
pub Reset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub GetNext: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, object: *mut *mut ::core::ffi::c_void, dimensions: u64, indexers: *mut *mut ::core::ffi::c_void, metadata: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IModelKeyReference(::windows_core::IUnknown);
impl IModelKeyReference {
pub unsafe fn GetKeyName(&self) -> ::windows_core::Result<::windows_core::BSTR> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetKeyName)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetOriginalObject(&self) -> ::windows_core::Result<IModelObject> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetOriginalObject)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetContextObject(&self) -> ::windows_core::Result<IModelObject> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetContextObject)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetKey(&self, object: ::core::option::Option<*mut ::core::option::Option<IModelObject>>, metadata: ::core::option::Option<*mut ::core::option::Option<IKeyStore>>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetKey)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(object.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(metadata.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetKeyValue(&self, object: ::core::option::Option<*mut ::core::option::Option<IModelObject>>, metadata: ::core::option::Option<*mut ::core::option::Option<IKeyStore>>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetKeyValue)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(object.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(metadata.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetKey<P0, P1>(&self, object: P0, metadata: P1) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IModelObject>,
P1: ::windows_core::IntoParam<IKeyStore>,
{
(::windows_core::Interface::vtable(self).SetKey)(::windows_core::Interface::as_raw(self), object.into_param().abi(), metadata.into_param().abi()).ok()
}
pub unsafe fn SetKeyValue<P0>(&self, object: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IModelObject>,
{
(::windows_core::Interface::vtable(self).SetKeyValue)(::windows_core::Interface::as_raw(self), object.into_param().abi()).ok()
}
}
::windows_core::imp::interface_hierarchy!(IModelKeyReference, ::windows_core::IUnknown);
unsafe impl ::windows_core::Interface for IModelKeyReference {
type Vtable = IModelKeyReference_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IModelKeyReference {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0x5253dcf8_5aff_4c62_b302_56a289e00998);
}
#[repr(C)]
#[doc(hidden)]
pub struct IModelKeyReference_Vtbl {
pub base__: ::windows_core::IUnknown_Vtbl,
pub GetKeyName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, keyname: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT,
pub GetOriginalObject: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, originalobject: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub GetContextObject: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, containingobject: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub GetKey: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, object: *mut *mut ::core::ffi::c_void, metadata: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub GetKeyValue: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, object: *mut *mut ::core::ffi::c_void, metadata: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub SetKey: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, object: *mut ::core::ffi::c_void, metadata: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub SetKeyValue: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, object: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IModelKeyReference2(::windows_core::IUnknown);
impl IModelKeyReference2 {
pub unsafe fn GetKeyName(&self) -> ::windows_core::Result<::windows_core::BSTR> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.GetKeyName)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetOriginalObject(&self) -> ::windows_core::Result<IModelObject> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.GetOriginalObject)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetContextObject(&self) -> ::windows_core::Result<IModelObject> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.GetContextObject)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetKey(&self, object: ::core::option::Option<*mut ::core::option::Option<IModelObject>>, metadata: ::core::option::Option<*mut ::core::option::Option<IKeyStore>>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).base__.GetKey)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(object.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(metadata.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetKeyValue(&self, object: ::core::option::Option<*mut ::core::option::Option<IModelObject>>, metadata: ::core::option::Option<*mut ::core::option::Option<IKeyStore>>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).base__.GetKeyValue)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(object.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(metadata.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetKey<P0, P1>(&self, object: P0, metadata: P1) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IModelObject>,
P1: ::windows_core::IntoParam<IKeyStore>,
{
(::windows_core::Interface::vtable(self).base__.SetKey)(::windows_core::Interface::as_raw(self), object.into_param().abi(), metadata.into_param().abi()).ok()
}
pub unsafe fn SetKeyValue<P0>(&self, object: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IModelObject>,
{
(::windows_core::Interface::vtable(self).base__.SetKeyValue)(::windows_core::Interface::as_raw(self), object.into_param().abi()).ok()
}
pub unsafe fn OverrideContextObject<P0>(&self, newcontextobject: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IModelObject>,
{
(::windows_core::Interface::vtable(self).OverrideContextObject)(::windows_core::Interface::as_raw(self), newcontextobject.into_param().abi()).ok()
}
}
::windows_core::imp::interface_hierarchy!(IModelKeyReference2, ::windows_core::IUnknown, IModelKeyReference);
unsafe impl ::windows_core::Interface for IModelKeyReference2 {
type Vtable = IModelKeyReference2_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IModelKeyReference2 {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0x80e2f7c5_7159_4e92_887e_7e0347e88406);
}
#[repr(C)]
#[doc(hidden)]
pub struct IModelKeyReference2_Vtbl {
pub base__: IModelKeyReference_Vtbl,
pub OverrideContextObject: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, newcontextobject: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IModelMethod(::windows_core::IUnknown);
impl IModelMethod {
pub unsafe fn Call<P0>(&self, pcontextobject: P0, pparguments: &[::core::option::Option<IModelObject>], ppresult: *mut ::core::option::Option<IModelObject>, ppmetadata: ::core::option::Option<*mut ::core::option::Option<IKeyStore>>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IModelObject>,
{
(::windows_core::Interface::vtable(self).Call)(::windows_core::Interface::as_raw(self), pcontextobject.into_param().abi(), pparguments.len().try_into().unwrap(), ::core::mem::transmute(pparguments.as_ptr()), ::core::mem::transmute(ppresult), ::core::mem::transmute(ppmetadata.unwrap_or(::std::ptr::null_mut()))).ok()
}
}
::windows_core::imp::interface_hierarchy!(IModelMethod, ::windows_core::IUnknown);
unsafe impl ::windows_core::Interface for IModelMethod {
type Vtable = IModelMethod_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IModelMethod {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0x80600c1f_b90b_4896_82ad_1c00207909e8);
}
#[repr(C)]
#[doc(hidden)]
pub struct IModelMethod_Vtbl {
pub base__: ::windows_core::IUnknown_Vtbl,
pub Call: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pcontextobject: *mut ::core::ffi::c_void, argcount: u64, pparguments: *const *mut ::core::ffi::c_void, ppresult: *mut *mut ::core::ffi::c_void, ppmetadata: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IModelObject(::windows_core::IUnknown);
impl IModelObject {
pub unsafe fn GetContext(&self) -> ::windows_core::Result<IDebugHostContext> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetContext)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetKind(&self) -> ::windows_core::Result<ModelObjectKind> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetKind)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub unsafe fn GetIntrinsicValue(&self) -> ::windows_core::Result<super::super::super::Variant::VARIANT> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetIntrinsicValue)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub unsafe fn GetIntrinsicValueAs(&self, vt: super::super::super::Variant::VARENUM) -> ::windows_core::Result<super::super::super::Variant::VARIANT> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetIntrinsicValueAs)(::windows_core::Interface::as_raw(self), vt, &mut result__).from_abi(result__)
}
pub unsafe fn GetKeyValue<P0>(&self, key: P0, object: ::core::option::Option<*mut ::core::option::Option<IModelObject>>, metadata: ::core::option::Option<*mut ::core::option::Option<IKeyStore>>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).GetKeyValue)(::windows_core::Interface::as_raw(self), key.into_param().abi(), ::core::mem::transmute(object.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(metadata.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetKeyValue<P0, P1>(&self, key: P0, object: P1) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
P1: ::windows_core::IntoParam<IModelObject>,
{
(::windows_core::Interface::vtable(self).SetKeyValue)(::windows_core::Interface::as_raw(self), key.into_param().abi(), object.into_param().abi()).ok()
}
pub unsafe fn EnumerateKeyValues(&self) -> ::windows_core::Result<IKeyEnumerator> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).EnumerateKeyValues)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetRawValue<P0>(&self, kind: SymbolKind, name: P0, searchflags: u32) -> ::windows_core::Result<IModelObject>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetRawValue)(::windows_core::Interface::as_raw(self), kind, name.into_param().abi(), searchflags, &mut result__).from_abi(result__)
}
pub unsafe fn EnumerateRawValues(&self, kind: SymbolKind, searchflags: u32) -> ::windows_core::Result<IRawEnumerator> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).EnumerateRawValues)(::windows_core::Interface::as_raw(self), kind, searchflags, &mut result__).from_abi(result__)
}
pub unsafe fn Dereference(&self) -> ::windows_core::Result<IModelObject> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).Dereference)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn TryCastToRuntimeType(&self) -> ::windows_core::Result<IModelObject> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).TryCastToRuntimeType)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetConcept(&self, conceptid: *const ::windows_core::GUID, conceptinterface: *mut ::core::option::Option<::windows_core::IUnknown>, conceptmetadata: ::core::option::Option<*mut ::core::option::Option<IKeyStore>>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetConcept)(::windows_core::Interface::as_raw(self), conceptid, ::core::mem::transmute(conceptinterface), ::core::mem::transmute(conceptmetadata.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetLocation(&self) -> ::windows_core::Result<Location> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetLocation)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetTypeInfo(&self) -> ::windows_core::Result<IDebugHostType> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetTypeInfo)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetTargetInfo(&self, location: *mut Location, r#type: *mut ::core::option::Option<IDebugHostType>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetTargetInfo)(::windows_core::Interface::as_raw(self), location, ::core::mem::transmute(r#type)).ok()
}
pub unsafe fn GetNumberOfParentModels(&self) -> ::windows_core::Result<u64> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetNumberOfParentModels)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn GetParentModel(&self, i: u64, model: *mut ::core::option::Option<IModelObject>, contextobject: *mut ::core::option::Option<IModelObject>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetParentModel)(::windows_core::Interface::as_raw(self), i, ::core::mem::transmute(model), ::core::mem::transmute(contextobject)).ok()
}
pub unsafe fn AddParentModel<P0, P1>(&self, model: P0, contextobject: P1, r#override: u8) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IModelObject>,
P1: ::windows_core::IntoParam<IModelObject>,
{
(::windows_core::Interface::vtable(self).AddParentModel)(::windows_core::Interface::as_raw(self), model.into_param().abi(), contextobject.into_param().abi(), r#override).ok()
}
pub unsafe fn RemoveParentModel<P0>(&self, model: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IModelObject>,
{
(::windows_core::Interface::vtable(self).RemoveParentModel)(::windows_core::Interface::as_raw(self), model.into_param().abi()).ok()
}
pub unsafe fn GetKey<P0>(&self, key: P0, object: ::core::option::Option<*mut ::core::option::Option<IModelObject>>, metadata: ::core::option::Option<*mut ::core::option::Option<IKeyStore>>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).GetKey)(::windows_core::Interface::as_raw(self), key.into_param().abi(), ::core::mem::transmute(object.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(metadata.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn GetKeyReference<P0>(&self, key: P0, objectreference: ::core::option::Option<*mut ::core::option::Option<IModelObject>>, metadata: ::core::option::Option<*mut ::core::option::Option<IKeyStore>>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
(::windows_core::Interface::vtable(self).GetKeyReference)(::windows_core::Interface::as_raw(self), key.into_param().abi(), ::core::mem::transmute(objectreference.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(metadata.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn SetKey<P0, P1, P2>(&self, key: P0, object: P1, metadata: P2) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
P1: ::windows_core::IntoParam<IModelObject>,
P2: ::windows_core::IntoParam<IKeyStore>,
{
(::windows_core::Interface::vtable(self).SetKey)(::windows_core::Interface::as_raw(self), key.into_param().abi(), object.into_param().abi(), metadata.into_param().abi()).ok()
}
pub unsafe fn ClearKeys(&self) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).ClearKeys)(::windows_core::Interface::as_raw(self)).ok()
}
pub unsafe fn EnumerateKeys(&self) -> ::windows_core::Result<IKeyEnumerator> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).EnumerateKeys)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn EnumerateKeyReferences(&self) -> ::windows_core::Result<IKeyEnumerator> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).EnumerateKeyReferences)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn SetConcept<P0, P1>(&self, conceptid: *const ::windows_core::GUID, conceptinterface: P0, conceptmetadata: P1) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::IUnknown>,
P1: ::windows_core::IntoParam<IKeyStore>,
{
(::windows_core::Interface::vtable(self).SetConcept)(::windows_core::Interface::as_raw(self), conceptid, conceptinterface.into_param().abi(), conceptmetadata.into_param().abi()).ok()
}
pub unsafe fn ClearConcepts(&self) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).ClearConcepts)(::windows_core::Interface::as_raw(self)).ok()
}
pub unsafe fn GetRawReference<P0>(&self, kind: SymbolKind, name: P0, searchflags: u32) -> ::windows_core::Result<IModelObject>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetRawReference)(::windows_core::Interface::as_raw(self), kind, name.into_param().abi(), searchflags, &mut result__).from_abi(result__)
}
pub unsafe fn EnumerateRawReferences(&self, kind: SymbolKind, searchflags: u32) -> ::windows_core::Result<IRawEnumerator> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).EnumerateRawReferences)(::windows_core::Interface::as_raw(self), kind, searchflags, &mut result__).from_abi(result__)
}
pub unsafe fn SetContextForDataModel<P0, P1>(&self, datamodelobject: P0, context: P1) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IModelObject>,
P1: ::windows_core::IntoParam<::windows_core::IUnknown>,
{
(::windows_core::Interface::vtable(self).SetContextForDataModel)(::windows_core::Interface::as_raw(self), datamodelobject.into_param().abi(), context.into_param().abi()).ok()
}
pub unsafe fn GetContextForDataModel<P0>(&self, datamodelobject: P0) -> ::windows_core::Result<::windows_core::IUnknown>
where
P0: ::windows_core::IntoParam<IModelObject>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetContextForDataModel)(::windows_core::Interface::as_raw(self), datamodelobject.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn Compare<P0>(&self, other: P0, ppresult: ::core::option::Option<*mut ::core::option::Option<IModelObject>>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IModelObject>,
{
(::windows_core::Interface::vtable(self).Compare)(::windows_core::Interface::as_raw(self), other.into_param().abi(), ::core::mem::transmute(ppresult.unwrap_or(::std::ptr::null_mut()))).ok()
}
pub unsafe fn IsEqualTo<P0>(&self, other: P0) -> ::windows_core::Result<bool>
where
P0: ::windows_core::IntoParam<IModelObject>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).IsEqualTo)(::windows_core::Interface::as_raw(self), other.into_param().abi(), &mut result__).from_abi(result__)
}
}
::windows_core::imp::interface_hierarchy!(IModelObject, ::windows_core::IUnknown);
unsafe impl ::windows_core::Interface for IModelObject {
type Vtable = IModelObject_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IModelObject {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0xe28c7893_3f4b_4b96_baca_293cdc55f45d);
}
#[repr(C)]
#[doc(hidden)]
pub struct IModelObject_Vtbl {
pub base__: ::windows_core::IUnknown_Vtbl,
pub GetContext: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, context: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub GetKind: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, kind: *mut ModelObjectKind) -> ::windows_core::HRESULT,
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub GetIntrinsicValue: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, intrinsicdata: *mut super::super::super::Variant::VARIANT) -> ::windows_core::HRESULT,
#[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant")))]
GetIntrinsicValue: usize,
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub GetIntrinsicValueAs: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, vt: super::super::super::Variant::VARENUM, intrinsicdata: *mut super::super::super::Variant::VARIANT) -> ::windows_core::HRESULT,
#[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant")))]
GetIntrinsicValueAs: usize,
pub GetKeyValue: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, key: ::windows_core::PCWSTR, object: *mut *mut ::core::ffi::c_void, metadata: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub SetKeyValue: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, key: ::windows_core::PCWSTR, object: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub EnumerateKeyValues: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, enumerator: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub GetRawValue: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, kind: SymbolKind, name: ::windows_core::PCWSTR, searchflags: u32, object: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub EnumerateRawValues: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, kind: SymbolKind, searchflags: u32, enumerator: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub Dereference: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, object: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub TryCastToRuntimeType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, runtimetypedobject: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub GetConcept: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, conceptid: *const ::windows_core::GUID, conceptinterface: *mut *mut ::core::ffi::c_void, conceptmetadata: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub GetLocation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, location: *mut Location) -> ::windows_core::HRESULT,
pub GetTypeInfo: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub GetTargetInfo: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, location: *mut Location, r#type: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub GetNumberOfParentModels: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, nummodels: *mut u64) -> ::windows_core::HRESULT,
pub GetParentModel: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, i: u64, model: *mut *mut ::core::ffi::c_void, contextobject: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub AddParentModel: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, model: *mut ::core::ffi::c_void, contextobject: *mut ::core::ffi::c_void, r#override: u8) -> ::windows_core::HRESULT,
pub RemoveParentModel: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, model: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub GetKey: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, key: ::windows_core::PCWSTR, object: *mut *mut ::core::ffi::c_void, metadata: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub GetKeyReference: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, key: ::windows_core::PCWSTR, objectreference: *mut *mut ::core::ffi::c_void, metadata: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub SetKey: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, key: ::windows_core::PCWSTR, object: *mut ::core::ffi::c_void, metadata: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub ClearKeys: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub EnumerateKeys: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, enumerator: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub EnumerateKeyReferences: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, enumerator: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub SetConcept: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, conceptid: *const ::windows_core::GUID, conceptinterface: *mut ::core::ffi::c_void, conceptmetadata: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub ClearConcepts: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub GetRawReference: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, kind: SymbolKind, name: ::windows_core::PCWSTR, searchflags: u32, object: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub EnumerateRawReferences: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, kind: SymbolKind, searchflags: u32, enumerator: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub SetContextForDataModel: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, datamodelobject: *mut ::core::ffi::c_void, context: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub GetContextForDataModel: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, datamodelobject: *mut ::core::ffi::c_void, context: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub Compare: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, other: *mut ::core::ffi::c_void, ppresult: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub IsEqualTo: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, other: *mut ::core::ffi::c_void, equal: *mut bool) -> ::windows_core::HRESULT,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IModelPropertyAccessor(::windows_core::IUnknown);
impl IModelPropertyAccessor {
pub unsafe fn GetValue<P0, P1>(&self, key: P0, contextobject: P1) -> ::windows_core::Result<IModelObject>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
P1: ::windows_core::IntoParam<IModelObject>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).GetValue)(::windows_core::Interface::as_raw(self), key.into_param().abi(), contextobject.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn SetValue<P0, P1, P2>(&self, key: P0, contextobject: P1, value: P2) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
P1: ::windows_core::IntoParam<IModelObject>,
P2: ::windows_core::IntoParam<IModelObject>,
{
(::windows_core::Interface::vtable(self).SetValue)(::windows_core::Interface::as_raw(self), key.into_param().abi(), contextobject.into_param().abi(), value.into_param().abi()).ok()
}
}
::windows_core::imp::interface_hierarchy!(IModelPropertyAccessor, ::windows_core::IUnknown);
unsafe impl ::windows_core::Interface for IModelPropertyAccessor {
type Vtable = IModelPropertyAccessor_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IModelPropertyAccessor {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0x5a0c63d9_0526_42b8_960c_9516a3254c85);
}
#[repr(C)]
#[doc(hidden)]
pub struct IModelPropertyAccessor_Vtbl {
pub base__: ::windows_core::IUnknown_Vtbl,
pub GetValue: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, key: ::windows_core::PCWSTR, contextobject: *mut ::core::ffi::c_void, value: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub SetValue: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, key: ::windows_core::PCWSTR, contextobject: *mut ::core::ffi::c_void, value: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IPreferredRuntimeTypeConcept(::windows_core::IUnknown);
impl IPreferredRuntimeTypeConcept {
pub unsafe fn CastToPreferredRuntimeType<P0>(&self, contextobject: P0) -> ::windows_core::Result<IModelObject>
where
P0: ::windows_core::IntoParam<IModelObject>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).CastToPreferredRuntimeType)(::windows_core::Interface::as_raw(self), contextobject.into_param().abi(), &mut result__).from_abi(result__)
}
}
::windows_core::imp::interface_hierarchy!(IPreferredRuntimeTypeConcept, ::windows_core::IUnknown);
unsafe impl ::windows_core::Interface for IPreferredRuntimeTypeConcept {
type Vtable = IPreferredRuntimeTypeConcept_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IPreferredRuntimeTypeConcept {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0x9d6c1d7b_a76f_4618_8068_5f76bd9a4e8a);
}
#[repr(C)]
#[doc(hidden)]
pub struct IPreferredRuntimeTypeConcept_Vtbl {
pub base__: ::windows_core::IUnknown_Vtbl,
pub CastToPreferredRuntimeType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, contextobject: *mut ::core::ffi::c_void, object: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IRawEnumerator(::windows_core::IUnknown);
impl IRawEnumerator {
pub unsafe fn Reset(&self) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).Reset)(::windows_core::Interface::as_raw(self)).ok()
}
pub unsafe fn GetNext(&self, name: ::core::option::Option<*mut ::windows_core::BSTR>, kind: ::core::option::Option<*mut SymbolKind>, value: ::core::option::Option<*mut ::core::option::Option<IModelObject>>) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetNext)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(name.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(kind.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(value.unwrap_or(::std::ptr::null_mut()))).ok()
}
}
::windows_core::imp::interface_hierarchy!(IRawEnumerator, ::windows_core::IUnknown);
unsafe impl ::windows_core::Interface for IRawEnumerator {
type Vtable = IRawEnumerator_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IRawEnumerator {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0xe13613f9_3a3c_40b5_8f48_1e5ebfb9b21b);
}
#[repr(C)]
#[doc(hidden)]
pub struct IRawEnumerator_Vtbl {
pub base__: ::windows_core::IUnknown_Vtbl,
pub Reset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub GetNext: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, name: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>, kind: *mut SymbolKind, value: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
pub struct IStringDisplayableConcept(::windows_core::IUnknown);
impl IStringDisplayableConcept {
pub unsafe fn ToDisplayString<P0, P1>(&self, contextobject: P0, metadata: P1) -> ::windows_core::Result<::windows_core::BSTR>
where
P0: ::windows_core::IntoParam<IModelObject>,
P1: ::windows_core::IntoParam<IKeyStore>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).ToDisplayString)(::windows_core::Interface::as_raw(self), contextobject.into_param().abi(), metadata.into_param().abi(), &mut result__).from_abi(result__)
}
}
::windows_core::imp::interface_hierarchy!(IStringDisplayableConcept, ::windows_core::IUnknown);
unsafe impl ::windows_core::Interface for IStringDisplayableConcept {
type Vtable = IStringDisplayableConcept_Vtbl;
}
unsafe impl ::windows_core::ComInterface for IStringDisplayableConcept {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0xd28e8d70_6c00_4205_940d_501016601ea3);
}
#[repr(C)]
#[doc(hidden)]
pub struct IStringDisplayableConcept_Vtbl {
pub base__: ::windows_core::IUnknown_Vtbl,
pub ToDisplayString: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, contextobject: *mut ::core::ffi::c_void, metadata: *mut ::core::ffi::c_void, displaystring: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT,
}
pub const ADDRESS_TYPE_INDEX_NOT_FOUND: u32 = 11u32;
pub const Ambiguous: SignatureComparison = SignatureComparison(1i32);
pub const CANNOT_ALLOCATE_MEMORY: u32 = 9u32;
pub const CLSID_DebugFailureAnalysisBasic: ::windows_core::GUID = ::windows_core::GUID::from_u128(0xb74eed7f_1c7d_4c1b_959f_b96dd9175aa4);
pub const CLSID_DebugFailureAnalysisKernel: ::windows_core::GUID = ::windows_core::GUID::from_u128(0xee433078_64af_4c33_ab2f_ecad7f2a002d);
pub const CLSID_DebugFailureAnalysisTarget: ::windows_core::GUID = ::windows_core::GUID::from_u128(0xba9bfb05_ef75_4bbd_a745_a6b5529458b8);
pub const CLSID_DebugFailureAnalysisUser: ::windows_core::GUID = ::windows_core::GUID::from_u128(0xe60b0c93_cf49_4a32_8147_0362202dc56b);
pub const CLSID_DebugFailureAnalysisWinCE: ::windows_core::GUID = ::windows_core::GUID::from_u128(0x67d5e86f_f5e2_462a_9233_1bd616fcc7e8);
pub const CLSID_DebugFailureAnalysisXBox360: ::windows_core::GUID = ::windows_core::GUID::from_u128(0x901625bb_95f1_4318_ac80_9d733cee8c8b);
pub const CROSS_PLATFORM_MAXIMUM_PROCESSORS: u32 = 2048u32;
pub const CURRENT_KD_SECONDARY_VERSION: u32 = 2u32;
pub const CallingConventionCDecl: CallingConventionKind = CallingConventionKind(1i32);
pub const CallingConventionFastCall: CallingConventionKind = CallingConventionKind(2i32);
pub const CallingConventionStdCall: CallingConventionKind = CallingConventionKind(3i32);
pub const CallingConventionSysCall: CallingConventionKind = CallingConventionKind(4i32);
pub const CallingConventionThisCall: CallingConventionKind = CallingConventionKind(5i32);
pub const CallingConventionUnknown: CallingConventionKind = CallingConventionKind(0i32);
pub const DBGKD_MAJOR_BIG: DBGKD_MAJOR_TYPES = DBGKD_MAJOR_TYPES(2i32);
pub const DBGKD_MAJOR_CE: DBGKD_MAJOR_TYPES = DBGKD_MAJOR_TYPES(10i32);
pub const DBGKD_MAJOR_COUNT: DBGKD_MAJOR_TYPES = DBGKD_MAJOR_TYPES(11i32);
pub const DBGKD_MAJOR_EFI: DBGKD_MAJOR_TYPES = DBGKD_MAJOR_TYPES(5i32);
pub const DBGKD_MAJOR_EXDI: DBGKD_MAJOR_TYPES = DBGKD_MAJOR_TYPES(3i32);
pub const DBGKD_MAJOR_HYPERVISOR: DBGKD_MAJOR_TYPES = DBGKD_MAJOR_TYPES(8i32);
pub const DBGKD_MAJOR_MIDORI: DBGKD_MAJOR_TYPES = DBGKD_MAJOR_TYPES(9i32);
pub const DBGKD_MAJOR_NT: DBGKD_MAJOR_TYPES = DBGKD_MAJOR_TYPES(0i32);
pub const DBGKD_MAJOR_NTBD: DBGKD_MAJOR_TYPES = DBGKD_MAJOR_TYPES(4i32);
pub const DBGKD_MAJOR_SINGULARITY: DBGKD_MAJOR_TYPES = DBGKD_MAJOR_TYPES(7i32);
pub const DBGKD_MAJOR_TNT: DBGKD_MAJOR_TYPES = DBGKD_MAJOR_TYPES(6i32);
pub const DBGKD_MAJOR_XBOX: DBGKD_MAJOR_TYPES = DBGKD_MAJOR_TYPES(1i32);
pub const DBGKD_SIMULATION_EXDI: i32 = 1i32;
pub const DBGKD_SIMULATION_NONE: i32 = 0i32;
pub const DBGKD_VERS_FLAG_DATA: u32 = 2u32;
pub const DBGKD_VERS_FLAG_HAL_IN_NTOS: u32 = 64u32;
pub const DBGKD_VERS_FLAG_HSS: u32 = 16u32;
pub const DBGKD_VERS_FLAG_MP: u32 = 1u32;
pub const DBGKD_VERS_FLAG_NOMM: u32 = 8u32;
pub const DBGKD_VERS_FLAG_PARTITIONS: u32 = 32u32;
pub const DBGKD_VERS_FLAG_PTR64: u32 = 4u32;
pub const DBG_DUMP_ADDRESS_AT_END: u32 = 131072u32;
pub const DBG_DUMP_ADDRESS_OF_FIELD: u32 = 65536u32;
pub const DBG_DUMP_ARRAY: u32 = 32768u32;
pub const DBG_DUMP_BLOCK_RECURSE: u32 = 2097152u32;
pub const DBG_DUMP_CALL_FOR_EACH: u32 = 8u32;
pub const DBG_DUMP_COMPACT_OUT: u32 = 8192u32;
pub const DBG_DUMP_COPY_TYPE_DATA: u32 = 262144u32;
pub const DBG_DUMP_FIELD_ARRAY: u32 = 16u32;
pub const DBG_DUMP_FIELD_CALL_BEFORE_PRINT: u32 = 1u32;
pub const DBG_DUMP_FIELD_COPY_FIELD_DATA: u32 = 32u32;
pub const DBG_DUMP_FIELD_DEFAULT_STRING: u32 = 65536u32;
pub const DBG_DUMP_FIELD_FULL_NAME: u32 = 8u32;
pub const DBG_DUMP_FIELD_GUID_STRING: u32 = 524288u32;
pub const DBG_DUMP_FIELD_MULTI_STRING: u32 = 262144u32;
pub const DBG_DUMP_FIELD_NO_CALLBACK_REQ: u32 = 2u32;
pub const DBG_DUMP_FIELD_NO_PRINT: u32 = 16384u32;
pub const DBG_DUMP_FIELD_RECUR_ON_THIS: u32 = 4u32;
pub const DBG_DUMP_FIELD_RETURN_ADDRESS: u32 = 4096u32;
pub const DBG_DUMP_FIELD_SIZE_IN_BITS: u32 = 8192u32;
pub const DBG_DUMP_FIELD_UTF32_STRING: u32 = 1048576u32;
pub const DBG_DUMP_FIELD_WCHAR_STRING: u32 = 131072u32;
pub const DBG_DUMP_FUNCTION_FORMAT: u32 = 1048576u32;
pub const DBG_DUMP_GET_SIZE_ONLY: u32 = 128u32;
pub const DBG_DUMP_LIST: u32 = 32u32;
pub const DBG_DUMP_MATCH_SIZE: u32 = 4194304u32;
pub const DBG_DUMP_NO_INDENT: u32 = 1u32;
pub const DBG_DUMP_NO_OFFSET: u32 = 2u32;
pub const DBG_DUMP_NO_PRINT: u32 = 64u32;
pub const DBG_DUMP_READ_PHYSICAL: u32 = 524288u32;
pub const DBG_DUMP_VERBOSE: u32 = 4u32;
pub const DBG_FRAME_DEFAULT: u32 = 0u32;
pub const DBG_FRAME_IGNORE_INLINE: u32 = 4294967295u32;
pub const DBG_RETURN_SUBTYPES: u32 = 0u32;
pub const DBG_RETURN_TYPE: u32 = 0u32;
pub const DBG_RETURN_TYPE_VALUES: u32 = 0u32;
pub const DEBUG_ADDSYNTHMOD_DEFAULT: u32 = 0u32;
pub const DEBUG_ADDSYNTHMOD_ZEROBASE: u32 = 1u32;
pub const DEBUG_ADDSYNTHSYM_DEFAULT: u32 = 0u32;
pub const DEBUG_ANY_ID: u32 = 4294967295u32;
pub const DEBUG_ASMOPT_DEFAULT: u32 = 0u32;
pub const DEBUG_ASMOPT_IGNORE_OUTPUT_WIDTH: u32 = 4u32;
pub const DEBUG_ASMOPT_NO_CODE_BYTES: u32 = 2u32;
pub const DEBUG_ASMOPT_SOURCE_LINE_NUMBER: u32 = 8u32;
pub const DEBUG_ASMOPT_VERBOSE: u32 = 1u32;
pub const DEBUG_ATTACH_DEFAULT: u32 = 0u32;
pub const DEBUG_ATTACH_EXDI_DRIVER: u32 = 2u32;
pub const DEBUG_ATTACH_EXISTING: u32 = 2u32;
pub const DEBUG_ATTACH_INSTALL_DRIVER: u32 = 4u32;
pub const DEBUG_ATTACH_INVASIVE_NO_INITIAL_BREAK: u32 = 8u32;
pub const DEBUG_ATTACH_INVASIVE_RESUME_PROCESS: u32 = 16u32;
pub const DEBUG_ATTACH_KERNEL_CONNECTION: u32 = 0u32;
pub const DEBUG_ATTACH_LOCAL_KERNEL: u32 = 1u32;
pub const DEBUG_ATTACH_NONINVASIVE: u32 = 1u32;
pub const DEBUG_ATTACH_NONINVASIVE_ALLOW_PARTIAL: u32 = 32u32;
pub const DEBUG_ATTACH_NONINVASIVE_NO_SUSPEND: u32 = 4u32;
pub const DEBUG_BREAKPOINT_ADDER_ONLY: u32 = 8u32;
pub const DEBUG_BREAKPOINT_CODE: u32 = 0u32;
pub const DEBUG_BREAKPOINT_DATA: u32 = 1u32;
pub const DEBUG_BREAKPOINT_DEFERRED: u32 = 2u32;
pub const DEBUG_BREAKPOINT_ENABLED: u32 = 4u32;
pub const DEBUG_BREAKPOINT_GO_ONLY: u32 = 1u32;
pub const DEBUG_BREAKPOINT_INLINE: u32 = 3u32;
pub const DEBUG_BREAKPOINT_ONE_SHOT: u32 = 16u32;
pub const DEBUG_BREAKPOINT_TIME: u32 = 2u32;
pub const DEBUG_BREAK_EXECUTE: u32 = 4u32;
pub const DEBUG_BREAK_IO: u32 = 8u32;
pub const DEBUG_BREAK_READ: u32 = 1u32;
pub const DEBUG_BREAK_WRITE: u32 = 2u32;
pub const DEBUG_CDS_ALL: u32 = 4294967295u32;
pub const DEBUG_CDS_DATA: u32 = 2u32;
pub const DEBUG_CDS_REFRESH: u32 = 4u32;
pub const DEBUG_CDS_REFRESH_ADDBREAKPOINT: u32 = 4u32;
pub const DEBUG_CDS_REFRESH_EVALUATE: u32 = 1u32;
pub const DEBUG_CDS_REFRESH_EXECUTE: u32 = 2u32;
pub const DEBUG_CDS_REFRESH_EXECUTECOMMANDFILE: u32 = 3u32;
pub const DEBUG_CDS_REFRESH_INLINESTEP: u32 = 16u32;
pub const DEBUG_CDS_REFRESH_INLINESTEP_PSEUDO: u32 = 17u32;
pub const DEBUG_CDS_REFRESH_REMOVEBREAKPOINT: u32 = 5u32;
pub const DEBUG_CDS_REFRESH_SETSCOPE: u32 = 12u32;
pub const DEBUG_CDS_REFRESH_SETSCOPEFRAMEBYINDEX: u32 = 13u32;
pub const DEBUG_CDS_REFRESH_SETSCOPEFROMJITDEBUGINFO: u32 = 14u32;
pub const DEBUG_CDS_REFRESH_SETSCOPEFROMSTOREDEVENT: u32 = 15u32;
pub const DEBUG_CDS_REFRESH_SETVALUE: u32 = 10u32;
pub const DEBUG_CDS_REFRESH_SETVALUE2: u32 = 11u32;
pub const DEBUG_CDS_REFRESH_WRITEPHYSICAL: u32 = 8u32;
pub const DEBUG_CDS_REFRESH_WRITEPHYSICAL2: u32 = 9u32;
pub const DEBUG_CDS_REFRESH_WRITEVIRTUAL: u32 = 6u32;
pub const DEBUG_CDS_REFRESH_WRITEVIRTUALUNCACHED: u32 = 7u32;
pub const DEBUG_CDS_REGISTERS: u32 = 1u32;
pub const DEBUG_CES_ALL: u32 = 4294967295u32;
pub const DEBUG_CES_ASSEMBLY_OPTIONS: u32 = 4096u32;
pub const DEBUG_CES_BREAKPOINTS: u32 = 4u32;
pub const DEBUG_CES_CODE_LEVEL: u32 = 8u32;
pub const DEBUG_CES_CURRENT_THREAD: u32 = 1u32;
pub const DEBUG_CES_EFFECTIVE_PROCESSOR: u32 = 2u32;
pub const DEBUG_CES_ENGINE_OPTIONS: u32 = 32u32;
pub const DEBUG_CES_EVENT_FILTERS: u32 = 256u32;
pub const DEBUG_CES_EXECUTION_STATUS: u32 = 16u32;
pub const DEBUG_CES_EXPRESSION_SYNTAX: u32 = 8192u32;
pub const DEBUG_CES_EXTENSIONS: u32 = 1024u32;
pub const DEBUG_CES_LOG_FILE: u32 = 64u32;
pub const DEBUG_CES_PROCESS_OPTIONS: u32 = 512u32;
pub const DEBUG_CES_RADIX: u32 = 128u32;
pub const DEBUG_CES_SYSTEMS: u32 = 2048u32;
pub const DEBUG_CES_TEXT_REPLACEMENTS: u32 = 16384u32;
pub const DEBUG_CLASS_IMAGE_FILE: u32 = 3u32;
pub const DEBUG_CLASS_KERNEL: u32 = 1u32;
pub const DEBUG_CLASS_UNINITIALIZED: u32 = 0u32;
pub const DEBUG_CLASS_USER_WINDOWS: u32 = 2u32;
pub const DEBUG_CLIENT_CDB: u32 = 4u32;
pub const DEBUG_CLIENT_KD: u32 = 5u32;
pub const DEBUG_CLIENT_NTKD: u32 = 3u32;
pub const DEBUG_CLIENT_NTSD: u32 = 2u32;
pub const DEBUG_CLIENT_UNKNOWN: u32 = 0u32;
pub const DEBUG_CLIENT_VSINT: u32 = 1u32;
pub const DEBUG_CLIENT_WINDBG: u32 = 6u32;
pub const DEBUG_CLIENT_WINIDE: u32 = 7u32;
pub const DEBUG_CMDEX_ADD_EVENT_STRING: u32 = 1u32;
pub const DEBUG_CMDEX_INVALID: u32 = 0u32;
pub const DEBUG_CMDEX_RESET_EVENT_STRINGS: u32 = 2u32;
pub const DEBUG_COMMAND_EXCEPTION_ID: u32 = 3688893886u32;
pub const DEBUG_CONNECT_SESSION_DEFAULT: u32 = 0u32;
pub const DEBUG_CONNECT_SESSION_NO_ANNOUNCE: u32 = 2u32;
pub const DEBUG_CONNECT_SESSION_NO_VERSION: u32 = 1u32;
pub const DEBUG_CSS_ALL: u32 = 4294967295u32;
pub const DEBUG_CSS_COLLAPSE_CHILDREN: u32 = 64u32;
pub const DEBUG_CSS_LOADS: u32 = 1u32;
pub const DEBUG_CSS_PATHS: u32 = 8u32;
pub const DEBUG_CSS_SCOPE: u32 = 4u32;
pub const DEBUG_CSS_SYMBOL_OPTIONS: u32 = 16u32;
pub const DEBUG_CSS_TYPE_OPTIONS: u32 = 32u32;
pub const DEBUG_CSS_UNLOADS: u32 = 2u32;
pub const DEBUG_CURRENT_DEFAULT: u32 = 15u32;
pub const DEBUG_CURRENT_DISASM: u32 = 2u32;
pub const DEBUG_CURRENT_REGISTERS: u32 = 4u32;
pub const DEBUG_CURRENT_SOURCE_LINE: u32 = 8u32;
pub const DEBUG_CURRENT_SYMBOL: u32 = 1u32;
pub const DEBUG_DATA_BASE_TRANSLATION_VIRTUAL_OFFSET: u32 = 3u32;
pub const DEBUG_DATA_BreakpointWithStatusAddr: u32 = 32u32;
pub const DEBUG_DATA_CmNtCSDVersionAddr: u32 = 616u32;
pub const DEBUG_DATA_DumpAttributes: u32 = 100072u32;
pub const DEBUG_DATA_DumpFormatVersion: u32 = 100040u32;
pub const DEBUG_DATA_DumpMmStorage: u32 = 100064u32;
pub const DEBUG_DATA_DumpPowerState: u32 = 100056u32;
pub const DEBUG_DATA_DumpWriterStatus: u32 = 100032u32;
pub const DEBUG_DATA_DumpWriterVersion: u32 = 100048u32;
pub const DEBUG_DATA_EtwpDebuggerData: u32 = 816u32;
pub const DEBUG_DATA_ExpNumberOfPagedPoolsAddr: u32 = 112u32;
pub const DEBUG_DATA_ExpPagedPoolDescriptorAddr: u32 = 104u32;
pub const DEBUG_DATA_ExpSystemResourcesListAddr: u32 = 96u32;
pub const DEBUG_DATA_IopErrorLogListHeadAddr: u32 = 144u32;
pub const DEBUG_DATA_KPCR_OFFSET: u32 = 0u32;
pub const DEBUG_DATA_KPRCB_OFFSET: u32 = 1u32;
pub const DEBUG_DATA_KTHREAD_OFFSET: u32 = 2u32;
pub const DEBUG_DATA_KdPrintBufferSizeAddr: u32 = 720u32;
pub const DEBUG_DATA_KdPrintCircularBufferAddr: u32 = 480u32;
pub const DEBUG_DATA_KdPrintCircularBufferEndAddr: u32 = 488u32;
pub const DEBUG_DATA_KdPrintCircularBufferPtrAddr: u32 = 712u32;
pub const DEBUG_DATA_KdPrintRolloverCountAddr: u32 = 504u32;
pub const DEBUG_DATA_KdPrintWritePointerAddr: u32 = 496u32;
pub const DEBUG_DATA_KeBugCheckCallbackListHeadAddr: u32 = 128u32;
pub const DEBUG_DATA_KeTimeIncrementAddr: u32 = 120u32;
pub const DEBUG_DATA_KeUserCallbackDispatcherAddr: u32 = 64u32;
pub const DEBUG_DATA_KernBase: u32 = 24u32;
pub const DEBUG_DATA_KernelVerifierAddr: u32 = 576u32;
pub const DEBUG_DATA_KiBugcheckDataAddr: u32 = 136u32;
pub const DEBUG_DATA_KiCallUserModeAddr: u32 = 56u32;
pub const DEBUG_DATA_KiNormalSystemCall: u32 = 528u32;
pub const DEBUG_DATA_KiProcessorBlockAddr: u32 = 536u32;
pub const DEBUG_DATA_MmAllocatedNonPagedPoolAddr: u32 = 592u32;
pub const DEBUG_DATA_MmAvailablePagesAddr: u32 = 424u32;
pub const DEBUG_DATA_MmBadPagesDetected: u32 = 800u32;
pub const DEBUG_DATA_MmDriverCommitAddr: u32 = 352u32;
pub const DEBUG_DATA_MmExtendedCommitAddr: u32 = 376u32;
pub const DEBUG_DATA_MmFreePageListHeadAddr: u32 = 392u32;
pub const DEBUG_DATA_MmHighestPhysicalPageAddr: u32 = 240u32;
pub const DEBUG_DATA_MmHighestUserAddressAddr: u32 = 456u32;
pub const DEBUG_DATA_MmLastUnloadedDriverAddr: u32 = 552u32;
pub const DEBUG_DATA_MmLoadedUserImageListAddr: u32 = 512u32;
pub const DEBUG_DATA_MmLowestPhysicalPageAddr: u32 = 232u32;
pub const DEBUG_DATA_MmMaximumNonPagedPoolInBytesAddr: u32 = 256u32;
pub const DEBUG_DATA_MmModifiedNoWritePageListHeadAddr: u32 = 416u32;
pub const DEBUG_DATA_MmModifiedPageListHeadAddr: u32 = 408u32;
pub const DEBUG_DATA_MmNonPagedPoolEndAddr: u32 = 280u32;
pub const DEBUG_DATA_MmNonPagedPoolStartAddr: u32 = 272u32;
pub const DEBUG_DATA_MmNonPagedSystemStartAddr: u32 = 264u32;
pub const DEBUG_DATA_MmNumberOfPagingFilesAddr: u32 = 224u32;
pub const DEBUG_DATA_MmNumberOfPhysicalPagesAddr: u32 = 248u32;
pub const DEBUG_DATA_MmPageSize: u32 = 312u32;
pub const DEBUG_DATA_MmPagedPoolCommitAddr: u32 = 368u32;
pub const DEBUG_DATA_MmPagedPoolEndAddr: u32 = 296u32;
pub const DEBUG_DATA_MmPagedPoolInformationAddr: u32 = 304u32;
pub const DEBUG_DATA_MmPagedPoolStartAddr: u32 = 288u32;
pub const DEBUG_DATA_MmPeakCommitmentAddr: u32 = 600u32;
pub const DEBUG_DATA_MmPfnDatabaseAddr: u32 = 192u32;
pub const DEBUG_DATA_MmPhysicalMemoryBlockAddr: u32 = 624u32;
pub const DEBUG_DATA_MmProcessCommitAddr: u32 = 360u32;
pub const DEBUG_DATA_MmResidentAvailablePagesAddr: u32 = 432u32;
pub const DEBUG_DATA_MmSessionBase: u32 = 632u32;
pub const DEBUG_DATA_MmSessionSize: u32 = 640u32;
pub const DEBUG_DATA_MmSharedCommitAddr: u32 = 344u32;
pub const DEBUG_DATA_MmSizeOfPagedPoolInBytesAddr: u32 = 320u32;
pub const DEBUG_DATA_MmSpecialPoolTagAddr: u32 = 568u32;
pub const DEBUG_DATA_MmStandbyPageListHeadAddr: u32 = 400u32;
pub const DEBUG_DATA_MmSubsectionBaseAddr: u32 = 216u32;
pub const DEBUG_DATA_MmSystemCacheEndAddr: u32 = 176u32;
pub const DEBUG_DATA_MmSystemCacheStartAddr: u32 = 168u32;
pub const DEBUG_DATA_MmSystemCacheWsAddr: u32 = 184u32;
pub const DEBUG_DATA_MmSystemParentTablePage: u32 = 648u32;
pub const DEBUG_DATA_MmSystemPtesEndAddr: u32 = 208u32;
pub const DEBUG_DATA_MmSystemPtesStartAddr: u32 = 200u32;
pub const DEBUG_DATA_MmSystemRangeStartAddr: u32 = 464u32;
pub const DEBUG_DATA_MmTotalCommitLimitAddr: u32 = 328u32;
pub const DEBUG_DATA_MmTotalCommitLimitMaximumAddr: u32 = 608u32;
pub const DEBUG_DATA_MmTotalCommittedPagesAddr: u32 = 336u32;
pub const DEBUG_DATA_MmTriageActionTakenAddr: u32 = 560u32;
pub const DEBUG_DATA_MmUnloadedDriversAddr: u32 = 544u32;
pub const DEBUG_DATA_MmUserProbeAddressAddr: u32 = 472u32;
pub const DEBUG_DATA_MmVerifierDataAddr: u32 = 584u32;
pub const DEBUG_DATA_MmVirtualTranslationBase: u32 = 656u32;
pub const DEBUG_DATA_MmZeroedPageListHeadAddr: u32 = 384u32;
pub const DEBUG_DATA_NonPagedPoolDescriptorAddr: u32 = 448u32;
pub const DEBUG_DATA_NtBuildLabAddr: u32 = 520u32;
pub const DEBUG_DATA_ObpRootDirectoryObjectAddr: u32 = 152u32;
pub const DEBUG_DATA_ObpTypeObjectTypeAddr: u32 = 160u32;
pub const DEBUG_DATA_OffsetEprocessDirectoryTableBase: u32 = 686u32;
pub const DEBUG_DATA_OffsetEprocessParentCID: u32 = 684u32;
pub const DEBUG_DATA_OffsetEprocessPeb: u32 = 682u32;
pub const DEBUG_DATA_OffsetKThreadApcProcess: u32 = 672u32;
pub const DEBUG_DATA_OffsetKThreadBStore: u32 = 676u32;
pub const DEBUG_DATA_OffsetKThreadBStoreLimit: u32 = 678u32;
pub const DEBUG_DATA_OffsetKThreadInitialStack: u32 = 670u32;
pub const DEBUG_DATA_OffsetKThreadKernelStack: u32 = 668u32;
pub const DEBUG_DATA_OffsetKThreadNextProcessor: u32 = 664u32;
pub const DEBUG_DATA_OffsetKThreadState: u32 = 674u32;
pub const DEBUG_DATA_OffsetKThreadTeb: u32 = 666u32;
pub const DEBUG_DATA_OffsetPrcbCpuType: u32 = 696u32;
pub const DEBUG_DATA_OffsetPrcbCurrentThread: u32 = 692u32;
pub const DEBUG_DATA_OffsetPrcbDpcRoutine: u32 = 690u32;
pub const DEBUG_DATA_OffsetPrcbMhz: u32 = 694u32;
pub const DEBUG_DATA_OffsetPrcbNumber: u32 = 702u32;
pub const DEBUG_DATA_OffsetPrcbProcessorState: u32 = 700u32;
pub const DEBUG_DATA_OffsetPrcbVendorString: u32 = 698u32;
pub const DEBUG_DATA_PROCESSOR_IDENTIFICATION: u32 = 4u32;
pub const DEBUG_DATA_PROCESSOR_SPEED: u32 = 5u32;
pub const DEBUG_DATA_PaeEnabled: u32 = 100000u32;
pub const DEBUG_DATA_PagingLevels: u32 = 100080u32;
pub const DEBUG_DATA_PoolTrackTableAddr: u32 = 440u32;
pub const DEBUG_DATA_ProductType: u32 = 100016u32;
pub const DEBUG_DATA_PsActiveProcessHeadAddr: u32 = 80u32;
pub const DEBUG_DATA_PsLoadedModuleListAddr: u32 = 72u32;
pub const DEBUG_DATA_PspCidTableAddr: u32 = 88u32;
pub const DEBUG_DATA_PteBase: u32 = 864u32;
pub const DEBUG_DATA_SPACE_BUS_DATA: u32 = 5u32;
pub const DEBUG_DATA_SPACE_CONTROL: u32 = 2u32;
pub const DEBUG_DATA_SPACE_COUNT: u32 = 7u32;
pub const DEBUG_DATA_SPACE_DEBUGGER_DATA: u32 = 6u32;
pub const DEBUG_DATA_SPACE_IO: u32 = 3u32;
pub const DEBUG_DATA_SPACE_MSR: u32 = 4u32;
pub const DEBUG_DATA_SPACE_PHYSICAL: u32 = 1u32;
pub const DEBUG_DATA_SPACE_VIRTUAL: u32 = 0u32;
pub const DEBUG_DATA_SavedContextAddr: u32 = 40u32;
pub const DEBUG_DATA_SharedUserData: u32 = 100008u32;
pub const DEBUG_DATA_SizeEProcess: u32 = 680u32;
pub const DEBUG_DATA_SizeEThread: u32 = 704u32;
pub const DEBUG_DATA_SizePrcb: u32 = 688u32;
pub const DEBUG_DATA_SuiteMask: u32 = 100024u32;
pub const DEBUG_DISASM_EFFECTIVE_ADDRESS: u32 = 1u32;
pub const DEBUG_DISASM_MATCHING_SYMBOLS: u32 = 2u32;
pub const DEBUG_DISASM_SOURCE_FILE_NAME: u32 = 8u32;
pub const DEBUG_DISASM_SOURCE_LINE_NUMBER: u32 = 4u32;
pub const DEBUG_DUMP_ACTIVE: u32 = 1030u32;
pub const DEBUG_DUMP_DEFAULT: u32 = 1025u32;
pub const DEBUG_DUMP_FILE_BASE: u32 = 4294967295u32;
pub const DEBUG_DUMP_FILE_LOAD_FAILED_INDEX: u32 = 4294967295u32;
pub const DEBUG_DUMP_FILE_ORIGINAL_CAB_INDEX: u32 = 4294967294u32;
pub const DEBUG_DUMP_FILE_PAGE_FILE_DUMP: u32 = 0u32;
pub const DEBUG_DUMP_FULL: u32 = 1026u32;
pub const DEBUG_DUMP_IMAGE_FILE: u32 = 1027u32;
pub const DEBUG_DUMP_SMALL: u32 = 1024u32;
pub const DEBUG_DUMP_TRACE_LOG: u32 = 1028u32;
pub const DEBUG_DUMP_WINDOWS_CE: u32 = 1029u32;
pub const DEBUG_ECREATE_PROCESS_DEFAULT: u32 = 0u32;
pub const DEBUG_ECREATE_PROCESS_INHERIT_HANDLES: u32 = 1u32;
pub const DEBUG_ECREATE_PROCESS_USE_IMPLICIT_COMMAND_LINE: u32 = 4u32;
pub const DEBUG_ECREATE_PROCESS_USE_VERIFIER_FLAGS: u32 = 2u32;
pub const DEBUG_EINDEX_FROM_CURRENT: u32 = 2u32;
pub const DEBUG_EINDEX_FROM_END: u32 = 1u32;
pub const DEBUG_EINDEX_FROM_START: u32 = 0u32;
pub const DEBUG_EINDEX_NAME: u32 = 0u32;
pub const DEBUG_END_ACTIVE_DETACH: u32 = 2u32;
pub const DEBUG_END_ACTIVE_TERMINATE: u32 = 1u32;
pub const DEBUG_END_DISCONNECT: u32 = 4u32;
pub const DEBUG_END_PASSIVE: u32 = 0u32;
pub const DEBUG_END_REENTRANT: u32 = 3u32;
pub const DEBUG_ENGOPT_ALL: u32 = 32505855u32;
pub const DEBUG_ENGOPT_ALLOW_NETWORK_PATHS: u32 = 4u32;
pub const DEBUG_ENGOPT_ALLOW_READ_ONLY_BREAKPOINTS: u32 = 1024u32;
pub const DEBUG_ENGOPT_DEBUGGING_SENSITIVE_DATA: u32 = 4194304u32;
pub const DEBUG_ENGOPT_DISABLESQM: u32 = 524288u32;
pub const DEBUG_ENGOPT_DISABLE_EXECUTION_COMMANDS: u32 = 65536u32;
pub const DEBUG_ENGOPT_DISABLE_MANAGED_SUPPORT: u32 = 16384u32;
pub const DEBUG_ENGOPT_DISABLE_MODULE_SYMBOL_LOAD: u32 = 32768u32;
pub const DEBUG_ENGOPT_DISABLE_STEPLINES_OPTIONS: u32 = 2097152u32;
pub const DEBUG_ENGOPT_DISALLOW_IMAGE_FILE_MAPPING: u32 = 131072u32;
pub const DEBUG_ENGOPT_DISALLOW_NETWORK_PATHS: u32 = 8u32;
pub const DEBUG_ENGOPT_DISALLOW_SHELL_COMMANDS: u32 = 4096u32;
pub const DEBUG_ENGOPT_FAIL_INCOMPLETE_INFORMATION: u32 = 512u32;
pub const DEBUG_ENGOPT_FINAL_BREAK: u32 = 128u32;
pub const DEBUG_ENGOPT_IGNORE_DBGHELP_VERSION: u32 = 1u32;
pub const DEBUG_ENGOPT_IGNORE_EXTENSION_VERSIONS: u32 = 2u32;
pub const DEBUG_ENGOPT_IGNORE_LOADER_EXCEPTIONS: u32 = 16u32;
pub const DEBUG_ENGOPT_INITIAL_BREAK: u32 = 32u32;
pub const DEBUG_ENGOPT_INITIAL_MODULE_BREAK: u32 = 64u32;
pub const DEBUG_ENGOPT_KD_QUIET_MODE: u32 = 8192u32;
pub const DEBUG_ENGOPT_NO_EXECUTE_REPEAT: u32 = 256u32;
pub const DEBUG_ENGOPT_PREFER_DML: u32 = 262144u32;
pub const DEBUG_ENGOPT_PREFER_TRACE_FILES: u32 = 8388608u32;
pub const DEBUG_ENGOPT_RESOLVE_SHADOWED_VARIABLES: u32 = 16777216u32;
pub const DEBUG_ENGOPT_SYNCHRONIZE_BREAKPOINTS: u32 = 2048u32;
pub const DEBUG_EVENT_BREAKPOINT: u32 = 1u32;
pub const DEBUG_EVENT_CHANGE_DEBUGGEE_STATE: u32 = 1024u32;
pub const DEBUG_EVENT_CHANGE_ENGINE_STATE: u32 = 2048u32;
pub const DEBUG_EVENT_CHANGE_SYMBOL_STATE: u32 = 4096u32;
pub const DEBUG_EVENT_CREATE_PROCESS: u32 = 16u32;
pub const DEBUG_EVENT_CREATE_THREAD: u32 = 4u32;
pub const DEBUG_EVENT_EXCEPTION: u32 = 2u32;
pub const DEBUG_EVENT_EXIT_PROCESS: u32 = 32u32;
pub const DEBUG_EVENT_EXIT_THREAD: u32 = 8u32;
pub const DEBUG_EVENT_LOAD_MODULE: u32 = 64u32;
pub const DEBUG_EVENT_SERVICE_EXCEPTION: u32 = 8192u32;
pub const DEBUG_EVENT_SESSION_STATUS: u32 = 512u32;
pub const DEBUG_EVENT_SYSTEM_ERROR: u32 = 256u32;
pub const DEBUG_EVENT_UNLOAD_MODULE: u32 = 128u32;
pub const DEBUG_EXECUTE_DEFAULT: u32 = 0u32;
pub const DEBUG_EXECUTE_ECHO: u32 = 1u32;
pub const DEBUG_EXECUTE_EVENT: u32 = 2048u32;
pub const DEBUG_EXECUTE_EXTENSION: u32 = 32u32;
pub const DEBUG_EXECUTE_HOTKEY: u32 = 1024u32;
pub const DEBUG_EXECUTE_INTERNAL: u32 = 64u32;
pub const DEBUG_EXECUTE_MENU: u32 = 512u32;
pub const DEBUG_EXECUTE_NOT_LOGGED: u32 = 2u32;
pub const DEBUG_EXECUTE_NO_REPEAT: u32 = 4u32;
pub const DEBUG_EXECUTE_SCRIPT: u32 = 128u32;
pub const DEBUG_EXECUTE_TOOLBAR: u32 = 256u32;
pub const DEBUG_EXECUTE_USER_CLICKED: u32 = 16u32;
pub const DEBUG_EXECUTE_USER_TYPED: u32 = 8u32;
pub const DEBUG_EXEC_FLAGS_NONBLOCK: u32 = 1u32;
pub const DEBUG_EXPR_CPLUSPLUS: u32 = 1u32;
pub const DEBUG_EXPR_MASM: u32 = 0u32;
pub const DEBUG_EXTENSION_AT_ENGINE: u32 = 0u32;
pub const DEBUG_EXTINIT_HAS_COMMAND_HELP: u32 = 1u32;
pub const DEBUG_EXT_PVALUE_DEFAULT: u32 = 0u32;
pub const DEBUG_EXT_PVTYPE_IS_POINTER: u32 = 1u32;
pub const DEBUG_EXT_PVTYPE_IS_VALUE: u32 = 0u32;
pub const DEBUG_EXT_QVALUE_DEFAULT: u32 = 0u32;
pub const DEBUG_FA_ENTRY_ANSI_STRING: FA_ENTRY_TYPE = FA_ENTRY_TYPE(5i32);
pub const DEBUG_FA_ENTRY_ANSI_STRINGs: FA_ENTRY_TYPE = FA_ENTRY_TYPE(6i32);
pub const DEBUG_FA_ENTRY_ARRAY: FA_ENTRY_TYPE = FA_ENTRY_TYPE(32768i32);
pub const DEBUG_FA_ENTRY_EXTENSION_CMD: FA_ENTRY_TYPE = FA_ENTRY_TYPE(7i32);
pub const DEBUG_FA_ENTRY_INSTRUCTION_OFFSET: FA_ENTRY_TYPE = FA_ENTRY_TYPE(3i32);
pub const DEBUG_FA_ENTRY_NO_TYPE: FA_ENTRY_TYPE = FA_ENTRY_TYPE(0i32);
pub const DEBUG_FA_ENTRY_POINTER: FA_ENTRY_TYPE = FA_ENTRY_TYPE(4i32);
pub const DEBUG_FA_ENTRY_STRUCTURED_DATA: FA_ENTRY_TYPE = FA_ENTRY_TYPE(8i32);
pub const DEBUG_FA_ENTRY_ULONG: FA_ENTRY_TYPE = FA_ENTRY_TYPE(1i32);
pub const DEBUG_FA_ENTRY_ULONG64: FA_ENTRY_TYPE = FA_ENTRY_TYPE(2i32);
pub const DEBUG_FA_ENTRY_UNICODE_STRING: FA_ENTRY_TYPE = FA_ENTRY_TYPE(9i32);
pub const DEBUG_FILTER_BREAK: u32 = 0u32;
pub const DEBUG_FILTER_CREATE_PROCESS: u32 = 2u32;
pub const DEBUG_FILTER_CREATE_THREAD: u32 = 0u32;
pub const DEBUG_FILTER_DEBUGGEE_OUTPUT: u32 = 9u32;
pub const DEBUG_FILTER_EXIT_PROCESS: u32 = 3u32;
pub const DEBUG_FILTER_EXIT_THREAD: u32 = 1u32;
pub const DEBUG_FILTER_GO_HANDLED: u32 = 0u32;
pub const DEBUG_FILTER_GO_NOT_HANDLED: u32 = 1u32;
pub const DEBUG_FILTER_IGNORE: u32 = 3u32;
pub const DEBUG_FILTER_INITIAL_BREAKPOINT: u32 = 7u32;
pub const DEBUG_FILTER_INITIAL_MODULE_LOAD: u32 = 8u32;
pub const DEBUG_FILTER_LOAD_MODULE: u32 = 4u32;
pub const DEBUG_FILTER_OUTPUT: u32 = 2u32;
pub const DEBUG_FILTER_REMOVE: u32 = 4u32;
pub const DEBUG_FILTER_SECOND_CHANCE_BREAK: u32 = 1u32;
pub const DEBUG_FILTER_SYSTEM_ERROR: u32 = 6u32;
pub const DEBUG_FILTER_UNLOAD_MODULE: u32 = 5u32;
pub const DEBUG_FIND_SOURCE_BEST_MATCH: u32 = 2u32;
pub const DEBUG_FIND_SOURCE_DEFAULT: u32 = 0u32;
pub const DEBUG_FIND_SOURCE_FULL_PATH: u32 = 1u32;
pub const DEBUG_FIND_SOURCE_NO_SRCSRV: u32 = 4u32;
pub const DEBUG_FIND_SOURCE_TOKEN_LOOKUP: u32 = 8u32;
pub const DEBUG_FIND_SOURCE_WITH_CHECKSUM: u32 = 16u32;
pub const DEBUG_FIND_SOURCE_WITH_CHECKSUM_STRICT: u32 = 32u32;
pub const DEBUG_FLR_ACPI: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(24576i32);
pub const DEBUG_FLR_ACPI_BLACKBOX: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(24832i32);
pub const DEBUG_FLR_ACPI_EXTENSION: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(11i32);
pub const DEBUG_FLR_ACPI_OBJECT: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(13i32);
pub const DEBUG_FLR_ACPI_RESCONFLICT: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(12i32);
pub const DEBUG_FLR_ADDITIONAL_DEBUGTEXT: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(65546i32);
pub const DEBUG_FLR_ADDITIONAL_XML: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1150976i32);
pub const DEBUG_FLR_ADD_PROCESS_IN_BUCKET: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(8219i32);
pub const DEBUG_FLR_ALUREON: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(12372i32);
pub const DEBUG_FLR_ANALYSIS_REPROCESS: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1052705i32);
pub const DEBUG_FLR_ANALYSIS_SESSION_ELAPSED_TIME: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1052701i32);
pub const DEBUG_FLR_ANALYSIS_SESSION_HOST: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1052700i32);
pub const DEBUG_FLR_ANALYSIS_SESSION_TIME: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1052699i32);
pub const DEBUG_FLR_ANALYSIS_VERSION: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1052702i32);
pub const DEBUG_FLR_ANALYZABLE_POOL_CORRUPTION: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(8202i32);
pub const DEBUG_FLR_APPKILL: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(8212i32);
pub const DEBUG_FLR_APPLICATION_VERIFIER_LOADED: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1048626i32);
pub const DEBUG_FLR_APPS_NOT_TERMINATED: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(8258i32);
pub const DEBUG_FLR_APPVERIFERFLAGS: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1048600i32);
pub const DEBUG_FLR_ARM_WRITE_AV_CAVEAT: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(8241i32);
pub const DEBUG_FLR_ASSERT_DATA: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(768i32);
pub const DEBUG_FLR_ASSERT_FILE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(769i32);
pub const DEBUG_FLR_ASSERT_INSTRUCTION: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(778i32);
pub const DEBUG_FLR_BADPAGES_DETECTED: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(4109i32);
pub const DEBUG_FLR_BAD_HANDLE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(17i32);
pub const DEBUG_FLR_BAD_MEMORY_REFERENCE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(8210i32);
pub const DEBUG_FLR_BAD_OBJECT_REFERENCE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(8211i32);
pub const DEBUG_FLR_BAD_STACK: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(8193i32);
pub const DEBUG_FLR_BLOCKED_THREAD0: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(-1073741818i32);
pub const DEBUG_FLR_BLOCKED_THREAD1: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(-1073741817i32);
pub const DEBUG_FLR_BLOCKED_THREAD2: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(-1073741816i32);
pub const DEBUG_FLR_BLOCKING_PROCESSID: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(-1073741815i32);
pub const DEBUG_FLR_BLOCKING_THREAD: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(-1073741820i32);
pub const DEBUG_FLR_BOOST_FOLLOWUP_TO_SPECIFIC: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(8222i32);
pub const DEBUG_FLR_BOOTSTAT: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(28672i32);
pub const DEBUG_FLR_BOOTSTAT_BLACKBOX: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(28928i32);
pub const DEBUG_FLR_BUCKET_ID: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(65536i32);
pub const DEBUG_FLR_BUCKET_ID_CHECKSUM: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1052684i32);
pub const DEBUG_FLR_BUCKET_ID_FLAVOR_STR: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1052686i32);
pub const DEBUG_FLR_BUCKET_ID_FUNCTION_STR: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1052676i32);
pub const DEBUG_FLR_BUCKET_ID_FUNC_OFFSET: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(65589i32);
pub const DEBUG_FLR_BUCKET_ID_IMAGE_STR: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1052703i32);
pub const DEBUG_FLR_BUCKET_ID_MODULE_STR: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1052674i32);
pub const DEBUG_FLR_BUCKET_ID_MODVER_STR: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1052675i32);
pub const DEBUG_FLR_BUCKET_ID_OFFSET: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1052677i32);
pub const DEBUG_FLR_BUCKET_ID_PREFIX_STR: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1052673i32);
pub const DEBUG_FLR_BUCKET_ID_PRIVATE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1052704i32);
pub const DEBUG_FLR_BUCKET_ID_TIMEDATESTAMP: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1052683i32);
pub const DEBUG_FLR_BUGCHECKING_DRIVER: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(12292i32);
pub const DEBUG_FLR_BUGCHECKING_DRIVER_IDTAG: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(65559i32);
pub const DEBUG_FLR_BUGCHECK_CODE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(4108i32);
pub const DEBUG_FLR_BUGCHECK_DESC: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1538i32);
pub const DEBUG_FLR_BUGCHECK_P1: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(4115i32);
pub const DEBUG_FLR_BUGCHECK_P2: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(4116i32);
pub const DEBUG_FLR_BUGCHECK_P3: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(4117i32);
pub const DEBUG_FLR_BUGCHECK_P4: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(4118i32);
pub const DEBUG_FLR_BUGCHECK_SPECIFIER: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1537i32);
pub const DEBUG_FLR_BUGCHECK_STR: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1536i32);
pub const DEBUG_FLR_BUILDNAME_IN_BUCKET: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(12349i32);
pub const DEBUG_FLR_BUILDOSVER_STR_deprecated: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1052929i32);
pub const DEBUG_FLR_BUILD_OS_FULL_VERSION_STRING: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(65567i32);
pub const DEBUG_FLR_BUILD_VERSION_STRING: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(65566i32);
pub const DEBUG_FLR_CANCELLATION_NOT_SUPPORTED: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(12350i32);
pub const DEBUG_FLR_CHKIMG_EXTENSION: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(19i32);
pub const DEBUG_FLR_CHPE_PROCESS: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(-268435433i32);
pub const DEBUG_FLR_CLIENT_DRIVER: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1031i32);
pub const DEBUG_FLR_COLLECT_DATA_FOR_BUCKET: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(65577i32);
pub const DEBUG_FLR_COMPUTER_NAME: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(65578i32);
pub const DEBUG_FLR_CONTEXT: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(-1073741823i32);
pub const DEBUG_FLR_CONTEXT_COMMAND: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2097164i32);
pub const DEBUG_FLR_CONTEXT_FLAGS: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2097165i32);
pub const DEBUG_FLR_CONTEXT_FOLLOWUP_INDEX: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2097191i32);
pub const DEBUG_FLR_CONTEXT_ID: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2097168i32);
pub const DEBUG_FLR_CONTEXT_METADATA: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2097211i32);
pub const DEBUG_FLR_CONTEXT_ORDER: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2097166i32);
pub const DEBUG_FLR_CONTEXT_RESTORE_COMMAND: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(65551i32);
pub const DEBUG_FLR_CONTEXT_SYSTEM: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2097167i32);
pub const DEBUG_FLR_CORRUPTING_POOL_ADDRESS: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1026i32);
pub const DEBUG_FLR_CORRUPTING_POOL_TAG: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1027i32);
pub const DEBUG_FLR_CORRUPT_MODULE_LIST: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(8192i32);
pub const DEBUG_FLR_CORRUPT_SERVICE_TABLE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(12308i32);
pub const DEBUG_FLR_COVERAGE_BUILD: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(8244i32);
pub const DEBUG_FLR_CPU_COUNT: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(12330i32);
pub const DEBUG_FLR_CPU_FAMILY: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(12333i32);
pub const DEBUG_FLR_CPU_MICROCODE_VERSION: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(12329i32);
pub const DEBUG_FLR_CPU_MICROCODE_ZERO_INTEL: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(8228i32);
pub const DEBUG_FLR_CPU_MODEL: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(12334i32);
pub const DEBUG_FLR_CPU_OVERCLOCKED: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(8198i32);
pub const DEBUG_FLR_CPU_SPEED: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(12331i32);
pub const DEBUG_FLR_CPU_STEPPING: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(12335i32);
pub const DEBUG_FLR_CPU_VENDOR: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(12332i32);
pub const DEBUG_FLR_CRITICAL_PROCESS: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(4119i32);
pub const DEBUG_FLR_CRITICAL_PROCESS_REPORTGUID: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(65628i32);
pub const DEBUG_FLR_CRITICAL_SECTION: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(16i32);
pub const DEBUG_FLR_CURRENT_IRQL: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(512i32);
pub const DEBUG_FLR_CUSTOMER_CRASH_COUNT: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(12299i32);
pub const DEBUG_FLR_CUSTOMREPORTTAG: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(-268435454i32);
pub const DEBUG_FLR_CUSTOM_ANALYSIS_TAG_MAX: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(-1342177280i32);
pub const DEBUG_FLR_CUSTOM_ANALYSIS_TAG_MIN: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(-1610612736i32);
pub const DEBUG_FLR_CUSTOM_COMMAND: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(-268435431i32);
pub const DEBUG_FLR_CUSTOM_COMMAND_OUTPUT: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(-268435430i32);
pub const DEBUG_FLR_DEADLOCK_INPROC: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1048589i32);
pub const DEBUG_FLR_DEADLOCK_XPROC: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1048590i32);
pub const DEBUG_FLR_DEBUG_ANALYSIS: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1118208i32);
pub const DEBUG_FLR_DEFAULT_BUCKET_ID: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(65544i32);
pub const DEBUG_FLR_DEFAULT_SOLUTION_ID: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(12294i32);
pub const DEBUG_FLR_DERIVED_WAIT_CHAIN: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1048583i32);
pub const DEBUG_FLR_DESKTOP_HEAP_MISSING: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1048593i32);
pub const DEBUG_FLR_DETOURED_IMAGE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(12351i32);
pub const DEBUG_FLR_DEVICE_NODE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(28i32);
pub const DEBUG_FLR_DEVICE_OBJECT: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(3i32);
pub const DEBUG_FLR_DISKIO_READ_FAILURE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(12353i32);
pub const DEBUG_FLR_DISKIO_WRITE_FAILURE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(12354i32);
pub const DEBUG_FLR_DISKSEC_ISSUEDESCSTRING_DEPRECATED: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(-268435450i32);
pub const DEBUG_FLR_DISKSEC_MFGID_DEPRECATED: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(-268435451i32);
pub const DEBUG_FLR_DISKSEC_MODEL_DEPRECATED: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(-268435452i32);
pub const DEBUG_FLR_DISKSEC_ORGID_DEPRECATED: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(-268435453i32);
pub const DEBUG_FLR_DISKSEC_PRIVATE_DATASIZE_DEPRECATED: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(-268435444i32);
pub const DEBUG_FLR_DISKSEC_PRIVATE_OFFSET_DEPRECATED: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(-268435445i32);
pub const DEBUG_FLR_DISKSEC_PRIVATE_TOTSIZE_DEPRECATED: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(-268435446i32);
pub const DEBUG_FLR_DISKSEC_PUBLIC_DATASIZE_DEPRECATED: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(-268435447i32);
pub const DEBUG_FLR_DISKSEC_PUBLIC_OFFSET_DEPRECATED: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(-268435448i32);
pub const DEBUG_FLR_DISKSEC_PUBLIC_TOTSIZE_DEPRECATED: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(-268435449i32);
pub const DEBUG_FLR_DISKSEC_REASON_DEPRECATED: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(-268435442i32);
pub const DEBUG_FLR_DISKSEC_TOTALSIZE_DEPRECATED: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(-268435443i32);
pub const DEBUG_FLR_DISK_HARDWARE_ERROR: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(8206i32);
pub const DEBUG_FLR_DPC_RUNTIME: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(4111i32);
pub const DEBUG_FLR_DPC_STACK_BASE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(-1073741809i32);
pub const DEBUG_FLR_DPC_TIMELIMIT: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(4112i32);
pub const DEBUG_FLR_DPC_TIMEOUT_TYPE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(4110i32);
pub const DEBUG_FLR_DRIVER_HARDWAREID: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(65552i32);
pub const DEBUG_FLR_DRIVER_HARDWARE_DEVICE_ID: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(65554i32);
pub const DEBUG_FLR_DRIVER_HARDWARE_DEVICE_NAME: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(65633i32);
pub const DEBUG_FLR_DRIVER_HARDWARE_ID_BUS_TYPE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(65557i32);
pub const DEBUG_FLR_DRIVER_HARDWARE_REV_ID: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(65556i32);
pub const DEBUG_FLR_DRIVER_HARDWARE_SUBSYS_ID: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(65555i32);
pub const DEBUG_FLR_DRIVER_HARDWARE_SUBVENDOR_NAME: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(65632i32);
pub const DEBUG_FLR_DRIVER_HARDWARE_VENDOR_ID: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(65553i32);
pub const DEBUG_FLR_DRIVER_HARDWARE_VENDOR_NAME: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(65631i32);
pub const DEBUG_FLR_DRIVER_OBJECT: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2i32);
pub const DEBUG_FLR_DRIVER_VERIFIER_IO_VIOLATION_TYPE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(4096i32);
pub const DEBUG_FLR_DRIVER_XML_DESCRIPTION: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(65562i32);
pub const DEBUG_FLR_DRIVER_XML_MANUFACTURER: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(65564i32);
pub const DEBUG_FLR_DRIVER_XML_PRODUCTNAME: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(65563i32);
pub const DEBUG_FLR_DRIVER_XML_VERSION: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(65565i32);
pub const DEBUG_FLR_DRVPOWERSTATE_SUBCODE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(4101i32);
pub const DEBUG_FLR_DUMPSTREAM_COMMENTA: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(-268435435i32);
pub const DEBUG_FLR_DUMPSTREAM_COMMENTW: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(-268435434i32);
pub const DEBUG_FLR_DUMP_CLASS: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1048627i32);
pub const DEBUG_FLR_DUMP_FILE_ATTRIBUTES: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(4113i32);
pub const DEBUG_FLR_DUMP_FLAGS: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1048625i32);
pub const DEBUG_FLR_DUMP_QUALIFIER: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1048628i32);
pub const DEBUG_FLR_DUMP_TYPE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1048602i32);
pub const DEBUG_FLR_END_MESSAGE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(65612i32);
pub const DEBUG_FLR_ERESOURCE_ADDRESS: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(22i32);
pub const DEBUG_FLR_EVENT_CODE_DATA_MISMATCH: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(12338i32);
pub const DEBUG_FLR_EXCEPTION_CODE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(4097i32);
pub const DEBUG_FLR_EXCEPTION_CODE_STR: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(4098i32);
pub const DEBUG_FLR_EXCEPTION_CODE_STR_deprecated: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1052672i32);
pub const DEBUG_FLR_EXCEPTION_CONTEXT_RECURSION: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(12352i32);
pub const DEBUG_FLR_EXCEPTION_DOESNOT_MATCH_CODE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(777i32);
pub const DEBUG_FLR_EXCEPTION_MODULE_INFO: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2097190i32);
pub const DEBUG_FLR_EXCEPTION_PARAMETER1: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(770i32);
pub const DEBUG_FLR_EXCEPTION_PARAMETER2: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(771i32);
pub const DEBUG_FLR_EXCEPTION_PARAMETER3: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(772i32);
pub const DEBUG_FLR_EXCEPTION_PARAMETER4: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(773i32);
pub const DEBUG_FLR_EXCEPTION_RECORD: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(774i32);
pub const DEBUG_FLR_EXCEPTION_STR: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(776i32);
pub const DEBUG_FLR_EXECUTE_ADDRESS: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(30i32);
pub const DEBUG_FLR_FAILED_INSTRUCTION_ADDRESS: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(9i32);
pub const DEBUG_FLR_FAILURE_ANALYSIS_SOURCE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(65591i32);
pub const DEBUG_FLR_FAILURE_BUCKET_ID: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(65561i32);
pub const DEBUG_FLR_FAILURE_DISPLAY_NAME: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2097239i32);
pub const DEBUG_FLR_FAILURE_EXCEPTION_CODE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(65607i32);
pub const DEBUG_FLR_FAILURE_FUNCTION_NAME: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(65609i32);
pub const DEBUG_FLR_FAILURE_ID_HASH: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(65592i32);
pub const DEBUG_FLR_FAILURE_ID_HASH_STRING: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(65593i32);
pub const DEBUG_FLR_FAILURE_ID_REPORT_LINK: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(65594i32);
pub const DEBUG_FLR_FAILURE_IMAGE_NAME: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(65608i32);
pub const DEBUG_FLR_FAILURE_LIST: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2097238i32);
pub const DEBUG_FLR_FAILURE_MODULE_NAME: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(65629i32);
pub const DEBUG_FLR_FAILURE_PROBLEM_CLASS: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(65606i32);
pub const DEBUG_FLR_FAILURE_SYMBOL_NAME: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(65610i32);
pub const DEBUG_FLR_FAULTING_INSTR_CODE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(12297i32);
pub const DEBUG_FLR_FAULTING_IP: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(-2147483648i32);
pub const DEBUG_FLR_FAULTING_LOCAL_VARIABLE_NAME: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1048623i32);
pub const DEBUG_FLR_FAULTING_MODULE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(-2147483647i32);
pub const DEBUG_FLR_FAULTING_SERVICE_NAME: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(65570i32);
pub const DEBUG_FLR_FAULTING_SOURCE_CODE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(65569i32);
pub const DEBUG_FLR_FAULTING_SOURCE_COMMIT_ID: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(65634i32);
pub const DEBUG_FLR_FAULTING_SOURCE_CONTROL_TYPE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(65635i32);
pub const DEBUG_FLR_FAULTING_SOURCE_FILE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(65586i32);
pub const DEBUG_FLR_FAULTING_SOURCE_LINE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(65585i32);
pub const DEBUG_FLR_FAULTING_SOURCE_LINE_NUMBER: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(65587i32);
pub const DEBUG_FLR_FAULTING_SOURCE_PROJECT: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(65636i32);
pub const DEBUG_FLR_FAULTING_SOURCE_REPO_ID: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(65637i32);
pub const DEBUG_FLR_FAULTING_SOURCE_REPO_URL: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(65638i32);
pub const DEBUG_FLR_FAULTING_SOURCE_SRV_COMMAND: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(65639i32);
pub const DEBUG_FLR_FAULTING_THREAD: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(-1073741824i32);
pub const DEBUG_FLR_FAULT_THREAD_SHA1_HASH_M: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1048597i32);
pub const DEBUG_FLR_FAULT_THREAD_SHA1_HASH_MF: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1048595i32);
pub const DEBUG_FLR_FAULT_THREAD_SHA1_HASH_MFO: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1048596i32);
pub const DEBUG_FLR_FA_ADHOC_ANALYSIS_ITEMS: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2097230i32);
pub const DEBUG_FLR_FA_PERF_DATA: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2097214i32);
pub const DEBUG_FLR_FA_PERF_ELAPSED_MS: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2097218i32);
pub const DEBUG_FLR_FA_PERF_ITEM: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2097215i32);
pub const DEBUG_FLR_FA_PERF_ITEM_NAME: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2097216i32);
pub const DEBUG_FLR_FA_PERF_ITERATIONS: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2097217i32);
pub const DEBUG_FLR_FEATURE_PATH: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(65613i32);
pub const DEBUG_FLR_FILESYSTEMS_NTFS: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(30208i32);
pub const DEBUG_FLR_FILESYSTEMS_NTFS_BLACKBOX: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(30448i32);
pub const DEBUG_FLR_FILESYSTEMS_REFS: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(30720i32);
pub const DEBUG_FLR_FILESYSTEMS_REFS_BLACKBOX: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(30960i32);
pub const DEBUG_FLR_FILE_ID: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1280i32);
pub const DEBUG_FLR_FILE_IN_CAB: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(65571i32);
pub const DEBUG_FLR_FILE_LINE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1281i32);
pub const DEBUG_FLR_FIXED_IN_OSVERSION: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(65543i32);
pub const DEBUG_FLR_FOLLOWUP_BEFORE_RETRACER: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(65611i32);
pub const DEBUG_FLR_FOLLOWUP_BUCKET_ID: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(-2147483641i32);
pub const DEBUG_FLR_FOLLOWUP_CONTEXT: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2097153i32);
pub const DEBUG_FLR_FOLLOWUP_DRIVER_ONLY: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(8196i32);
pub const DEBUG_FLR_FOLLOWUP_IP: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(-2147483645i32);
pub const DEBUG_FLR_FOLLOWUP_NAME: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(65539i32);
pub const DEBUG_FLR_FRAME_ONE_INVALID: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(-2147483644i32);
pub const DEBUG_FLR_FRAME_SOURCE_FILE_NAME: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2097240i32);
pub const DEBUG_FLR_FRAME_SOURCE_FILE_PATH: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2097241i32);
pub const DEBUG_FLR_FRAME_SOURCE_LINE_NUMBER: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2097242i32);
pub const DEBUG_FLR_FREED_POOL_TAG: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1028i32);
pub const DEBUG_FLR_GSFAILURE_ANALYSIS_TEXT: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(12323i32);
pub const DEBUG_FLR_GSFAILURE_COOKIES_MATCH_EXH: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(12356i32);
pub const DEBUG_FLR_GSFAILURE_CORRUPTED_COOKIE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(12314i32);
pub const DEBUG_FLR_GSFAILURE_CORRUPTED_EBP: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(12315i32);
pub const DEBUG_FLR_GSFAILURE_CORRUPTED_EBPESP: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(12318i32);
pub const DEBUG_FLR_GSFAILURE_FALSE_POSITIVE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(8236i32);
pub const DEBUG_FLR_GSFAILURE_FRAME_COOKIE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(12312i32);
pub const DEBUG_FLR_GSFAILURE_FRAME_COOKIE_COMPLEMENT: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(12313i32);
pub const DEBUG_FLR_GSFAILURE_FUNCTION: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(12310i32);
pub const DEBUG_FLR_GSFAILURE_MANAGED: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(12357i32);
pub const DEBUG_FLR_GSFAILURE_MANAGED_FRAMEID: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(12360i32);
pub const DEBUG_FLR_GSFAILURE_MANAGED_THREADID: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(12359i32);
pub const DEBUG_FLR_GSFAILURE_MEMORY_READ_ERROR: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(12320i32);
pub const DEBUG_FLR_GSFAILURE_MISSING_ESTABLISHER_FRAME: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(12355i32);
pub const DEBUG_FLR_GSFAILURE_MODULE_COOKIE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(12311i32);
pub const DEBUG_FLR_GSFAILURE_NOT_UP2DATE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(12326i32);
pub const DEBUG_FLR_GSFAILURE_OFF_BY_ONE_OVERRUN: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(12324i32);
pub const DEBUG_FLR_GSFAILURE_OVERRUN_LOCAL: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(12316i32);
pub const DEBUG_FLR_GSFAILURE_OVERRUN_LOCAL_NAME: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(12317i32);
pub const DEBUG_FLR_GSFAILURE_POSITIVELY_CORRUPTED_EBPESP: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(12319i32);
pub const DEBUG_FLR_GSFAILURE_POSITIVE_BUFFER_OVERFLOW: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(12322i32);
pub const DEBUG_FLR_GSFAILURE_PROBABLY_NOT_USING_GS: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(12321i32);
pub const DEBUG_FLR_GSFAILURE_RA_SMASHED: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(12325i32);
pub const DEBUG_FLR_GSFAILURE_UP2DATE_UNKNOWN: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(12327i32);
pub const DEBUG_FLR_HANDLE_VALUE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(24i32);
pub const DEBUG_FLR_HANG: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(8209i32);
pub const DEBUG_FLR_HANG_DATA_NEEDED: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1048584i32);
pub const DEBUG_FLR_HANG_REPORT_THREAD_IS_IDLE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1048594i32);
pub const DEBUG_FLR_HARDWARE_BUCKET_TAG: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(65581i32);
pub const DEBUG_FLR_HARDWARE_ERROR: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(8214i32);
pub const DEBUG_FLR_HIGH_NONPAGED_POOL_USAGE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(8255i32);
pub const DEBUG_FLR_HIGH_PAGED_POOL_USAGE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(8256i32);
pub const DEBUG_FLR_HIGH_PROCESS_COMMIT: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(8253i32);
pub const DEBUG_FLR_HIGH_SERVICE_COMMIT: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(8254i32);
pub const DEBUG_FLR_HIGH_SHARED_COMMIT_USAGE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(8257i32);
pub const DEBUG_FLR_HOLDINFO: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(65595i32);
pub const DEBUG_FLR_HOLDINFO_ACTIVE_HOLD_COUNT: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(65596i32);
pub const DEBUG_FLR_HOLDINFO_ALWAYS_HOLD: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(65600i32);
pub const DEBUG_FLR_HOLDINFO_ALWAYS_IGNORE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(65599i32);
pub const DEBUG_FLR_HOLDINFO_HISTORIC_HOLD_COUNT: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(65598i32);
pub const DEBUG_FLR_HOLDINFO_LAST_SEEN_HOLD_DATE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(65604i32);
pub const DEBUG_FLR_HOLDINFO_MANUAL_HOLD: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(65602i32);
pub const DEBUG_FLR_HOLDINFO_MAX_HOLD_LIMIT: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(65601i32);
pub const DEBUG_FLR_HOLDINFO_NOTIFICATION_ALIASES: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(65603i32);
pub const DEBUG_FLR_HOLDINFO_RECOMMEND_HOLD: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(65605i32);
pub const DEBUG_FLR_HOLDINFO_TENET_SOCRE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(65597i32);
pub const DEBUG_FLR_IGNORE_BUCKET_ID_OFFSET: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(8238i32);
pub const DEBUG_FLR_IGNORE_LARGE_MODULE_CORRUPTION: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(8237i32);
pub const DEBUG_FLR_IGNORE_MODULE_HARDWARE_ID: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(8240i32);
pub const DEBUG_FLR_IMAGE_CLASS: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(65579i32);
pub const DEBUG_FLR_IMAGE_NAME: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(65537i32);
pub const DEBUG_FLR_IMAGE_TIMESTAMP: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(-2147483646i32);
pub const DEBUG_FLR_IMAGE_VERSION: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(-2147483642i32);
pub const DEBUG_FLR_INSTR_POINTER_CLIFAULT: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(12306i32);
pub const DEBUG_FLR_INSTR_POINTER_IN_FREE_BLOCK: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(12343i32);
pub const DEBUG_FLR_INSTR_POINTER_IN_MODULE_NOT_IN_LIST: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(12346i32);
pub const DEBUG_FLR_INSTR_POINTER_IN_PAGED_CODE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(12370i32);
pub const DEBUG_FLR_INSTR_POINTER_IN_RESERVED_BLOCK: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(12344i32);
pub const DEBUG_FLR_INSTR_POINTER_IN_UNLOADED_MODULE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(12340i32);
pub const DEBUG_FLR_INSTR_POINTER_IN_VM_MAPPED_MODULE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(12345i32);
pub const DEBUG_FLR_INSTR_POINTER_MISALIGNED: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(12305i32);
pub const DEBUG_FLR_INSTR_POINTER_NOT_IN_STREAM: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(12347i32);
pub const DEBUG_FLR_INSTR_POINTER_ON_HEAP: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(12337i32);
pub const DEBUG_FLR_INSTR_POINTER_ON_STACK: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(12336i32);
pub const DEBUG_FLR_INSTR_SESSION_POOL_TAG: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1030i32);
pub const DEBUG_FLR_INTEL_CPU_BIOS_UPGRADE_NEEDED: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(8229i32);
pub const DEBUG_FLR_INTERNAL_BUCKET_CONTINUABLE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(16389i32);
pub const DEBUG_FLR_INTERNAL_BUCKET_HITCOUNT: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(16387i32);
pub const DEBUG_FLR_INTERNAL_BUCKET_STATUS_TEXT: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(16390i32);
pub const DEBUG_FLR_INTERNAL_BUCKET_URL: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(16385i32);
pub const DEBUG_FLR_INTERNAL_RAID_BUG: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(16384i32);
pub const DEBUG_FLR_INTERNAL_RAID_BUG_DATABASE_STRING: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(16388i32);
pub const DEBUG_FLR_INTERNAL_RESPONSE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(65550i32);
pub const DEBUG_FLR_INTERNAL_SOLUTION_TEXT: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(16386i32);
pub const DEBUG_FLR_INVALID: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(0i32);
pub const DEBUG_FLR_INVALID_DPC_FOUND: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(7i32);
pub const DEBUG_FLR_INVALID_HEAP_ADDRESS: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(18i32);
pub const DEBUG_FLR_INVALID_KERNEL_CONTEXT: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(8205i32);
pub const DEBUG_FLR_INVALID_OPCODE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(8218i32);
pub const DEBUG_FLR_INVALID_PFN: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(4i32);
pub const DEBUG_FLR_INVALID_USEREVENT: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(261i32);
pub const DEBUG_FLR_INVALID_USER_CONTEXT: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(8231i32);
pub const DEBUG_FLR_IOCONTROL_CODE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(4099i32);
pub const DEBUG_FLR_IOSB_ADDRESS: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(260i32);
pub const DEBUG_FLR_IO_ERROR_CODE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(775i32);
pub const DEBUG_FLR_IRP_ADDRESS: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(256i32);
pub const DEBUG_FLR_IRP_CANCEL_ROUTINE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(259i32);
pub const DEBUG_FLR_IRP_MAJOR_FN: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(257i32);
pub const DEBUG_FLR_IRP_MINOR_FN: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(258i32);
pub const DEBUG_FLR_KERNEL: DEBUG_FAILURE_TYPE = DEBUG_FAILURE_TYPE(1i32);
pub const DEBUG_FLR_KERNEL_LOG_PROCESS_NAME: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(65582i32);
pub const DEBUG_FLR_KERNEL_LOG_STATUS: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(65583i32);
pub const DEBUG_FLR_KERNEL_VERIFIER_ENABLED: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(8234i32);
pub const DEBUG_FLR_KEYVALUE_ANALYSIS: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1122304i32);
pub const DEBUG_FLR_KEY_VALUES_STRING: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1122560i32);
pub const DEBUG_FLR_KEY_VALUES_VARIANT: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1122816i32);
pub const DEBUG_FLR_KM_MODULE_LIST: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1048629i32);
pub const DEBUG_FLR_LARGE_TICK_INCREMENT: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(12369i32);
pub const DEBUG_FLR_LAST_CONTROL_TRANSFER: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(10i32);
pub const DEBUG_FLR_LCIE_ISO_AVAILABLE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1048618i32);
pub const DEBUG_FLR_LEAKED_SESSION_POOL_TAG: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1029i32);
pub const DEBUG_FLR_LEGACY_PAGE_TABLE_ACCESS: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(8252i32);
pub const DEBUG_FLR_LIVE_KERNEL_DUMP: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(8243i32);
pub const DEBUG_FLR_LOADERLOCK_BLOCKED_API: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1048605i32);
pub const DEBUG_FLR_LOADERLOCK_IN_WAIT_CHAIN: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1048587i32);
pub const DEBUG_FLR_LOADERLOCK_OWNER_API: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1048604i32);
pub const DEBUG_FLR_LOP_STACKHASH: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(12309i32);
pub const DEBUG_FLR_LOW_SYSTEM_COMMIT: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(8251i32);
pub const DEBUG_FLR_MACHINE_INFO_SHA1_HASH: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1048608i32);
pub const DEBUG_FLR_MANAGED_ANALYSIS_PROVIDER: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1804i32);
pub const DEBUG_FLR_MANAGED_BITNESS_MISMATCH: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1797i32);
pub const DEBUG_FLR_MANAGED_CODE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1792i32);
pub const DEBUG_FLR_MANAGED_ENGINE_MODULE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1803i32);
pub const DEBUG_FLR_MANAGED_EXCEPTION_ADDRESS: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2048i32);
pub const DEBUG_FLR_MANAGED_EXCEPTION_CALLSTACK: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2052i32);
pub const DEBUG_FLR_MANAGED_EXCEPTION_CMD: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2288i32);
pub const DEBUG_FLR_MANAGED_EXCEPTION_CONTEXT_MESSAGE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1799i32);
pub const DEBUG_FLR_MANAGED_EXCEPTION_HRESULT: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2049i32);
pub const DEBUG_FLR_MANAGED_EXCEPTION_INNER_ADDRESS: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2064i32);
pub const DEBUG_FLR_MANAGED_EXCEPTION_INNER_CALLSTACK: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2068i32);
pub const DEBUG_FLR_MANAGED_EXCEPTION_INNER_HRESULT: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2065i32);
pub const DEBUG_FLR_MANAGED_EXCEPTION_INNER_MESSAGE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2067i32);
pub const DEBUG_FLR_MANAGED_EXCEPTION_INNER_TYPE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2066i32);
pub const DEBUG_FLR_MANAGED_EXCEPTION_MESSAGE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2051i32);
pub const DEBUG_FLR_MANAGED_EXCEPTION_MESSAGE_deprecated: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1795i32);
pub const DEBUG_FLR_MANAGED_EXCEPTION_NESTED_ADDRESS: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2080i32);
pub const DEBUG_FLR_MANAGED_EXCEPTION_NESTED_CALLSTACK: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2084i32);
pub const DEBUG_FLR_MANAGED_EXCEPTION_NESTED_HRESULT: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2081i32);
pub const DEBUG_FLR_MANAGED_EXCEPTION_NESTED_MESSAGE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2083i32);
pub const DEBUG_FLR_MANAGED_EXCEPTION_NESTED_TYPE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2082i32);
pub const DEBUG_FLR_MANAGED_EXCEPTION_OBJECT: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1794i32);
pub const DEBUG_FLR_MANAGED_EXCEPTION_TYPE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2050i32);
pub const DEBUG_FLR_MANAGED_FRAME_CHAIN_CORRUPTION: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(12358i32);
pub const DEBUG_FLR_MANAGED_HRESULT_STRING: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1802i32);
pub const DEBUG_FLR_MANAGED_KERNEL_DEBUGGER: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1801i32);
pub const DEBUG_FLR_MANAGED_OBJECT: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1793i32);
pub const DEBUG_FLR_MANAGED_OBJECT_NAME: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1798i32);
pub const DEBUG_FLR_MANAGED_STACK_COMMAND: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1800i32);
pub const DEBUG_FLR_MANAGED_STACK_STRING: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1796i32);
pub const DEBUG_FLR_MANAGED_THREAD_CMD_CALLSTACK: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2544i32);
pub const DEBUG_FLR_MANAGED_THREAD_CMD_STACKOBJECTS: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2545i32);
pub const DEBUG_FLR_MANAGED_THREAD_ID: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2304i32);
pub const DEBUG_FLR_MANUAL_BREAKIN: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(8208i32);
pub const DEBUG_FLR_MARKER_BUCKET: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(65560i32);
pub const DEBUG_FLR_MARKER_FILE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(65549i32);
pub const DEBUG_FLR_MARKER_MODULE_FILE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(65558i32);
pub const DEBUG_FLR_MASK_ALL: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(-1i32);
pub const DEBUG_FLR_MEMDIAG_LASTRUN_STATUS: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(12341i32);
pub const DEBUG_FLR_MEMDIAG_LASTRUN_TIME: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(12342i32);
pub const DEBUG_FLR_MEMORY_ANALYSIS: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1134592i32);
pub const DEBUG_FLR_MEMORY_CORRUPTION_SIGNATURE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(12348i32);
pub const DEBUG_FLR_MEMORY_CORRUPTOR: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(12289i32);
pub const DEBUG_FLR_MILCORE_BREAK: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(8232i32);
pub const DEBUG_FLR_MINUTES_SINCE_LAST_EVENT: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1879048225i32);
pub const DEBUG_FLR_MINUTES_SINCE_LAST_EVENT_OF_THIS_TYPE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1879048226i32);
pub const DEBUG_FLR_MISSING_CLR_SYMBOL: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(8249i32);
pub const DEBUG_FLR_MISSING_IMPORTANT_SYMBOL: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(8248i32);
pub const DEBUG_FLR_MM_INTERNAL_CODE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(4100i32);
pub const DEBUG_FLR_MODLIST_SHA1_HASH: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1048601i32);
pub const DEBUG_FLR_MODLIST_TSCHKSUM_SHA1_HASH: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1048606i32);
pub const DEBUG_FLR_MODLIST_UNLOADED_SHA1_HASH: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1048607i32);
pub const DEBUG_FLR_MODULE_BUCKET_ID: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(65545i32);
pub const DEBUG_FLR_MODULE_LIST: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1048624i32);
pub const DEBUG_FLR_MODULE_NAME: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(65542i32);
pub const DEBUG_FLR_MODULE_PRODUCTNAME: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(65576i32);
pub const DEBUG_FLR_MOD_SPECIFIC_DATA_ONLY: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(8226i32);
pub const DEBUG_FLR_NO_ARCH_IN_BUCKET: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(8239i32);
pub const DEBUG_FLR_NO_BUGCHECK_IN_BUCKET: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(8216i32);
pub const DEBUG_FLR_NO_IMAGE_IN_BUCKET: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(8215i32);
pub const DEBUG_FLR_NO_IMAGE_TIMESTAMP_IN_BUCKET: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(8233i32);
pub const DEBUG_FLR_NTGLOBALFLAG: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1048599i32);
pub const DEBUG_FLR_ON_DPC_STACK: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(8242i32);
pub const DEBUG_FLR_ORIGINAL_CAB_NAME: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(65568i32);
pub const DEBUG_FLR_OSBUILD_deprecated: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1052928i32);
pub const DEBUG_FLR_OS_BRANCH: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1052680i32);
pub const DEBUG_FLR_OS_BUILD: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1052678i32);
pub const DEBUG_FLR_OS_BUILD_LAYERS_XML: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1052711i32);
pub const DEBUG_FLR_OS_BUILD_STRING: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1052708i32);
pub const DEBUG_FLR_OS_BUILD_TIMESTAMP_ISO: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1052697i32);
pub const DEBUG_FLR_OS_BUILD_TIMESTAMP_LAB: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1052681i32);
pub const DEBUG_FLR_OS_FLAVOR: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1052685i32);
pub const DEBUG_FLR_OS_LOCALE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1052696i32);
pub const DEBUG_FLR_OS_LOCALE_LCID: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1052709i32);
pub const DEBUG_FLR_OS_MAJOR: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1052706i32);
pub const DEBUG_FLR_OS_MINOR: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1052707i32);
pub const DEBUG_FLR_OS_NAME: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1052692i32);
pub const DEBUG_FLR_OS_NAME_EDITION: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1052693i32);
pub const DEBUG_FLR_OS_PLATFORM_ARCH: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1052694i32);
pub const DEBUG_FLR_OS_PLATFORM_ID: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1052710i32);
pub const DEBUG_FLR_OS_PRODUCT_TYPE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1052688i32);
pub const DEBUG_FLR_OS_REVISION: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1052691i32);
pub const DEBUG_FLR_OS_SERVICEPACK: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1052679i32);
pub const DEBUG_FLR_OS_SERVICEPACK_deprecated: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1052695i32);
pub const DEBUG_FLR_OS_SKU: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1052687i32);
pub const DEBUG_FLR_OS_SUITE_MASK: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1052689i32);
pub const DEBUG_FLR_OS_VERSION: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1052682i32);
pub const DEBUG_FLR_OS_VERSION_deprecated: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(12291i32);
pub const DEBUG_FLR_OVERLAPPED_MODULE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(8227i32);
pub const DEBUG_FLR_OVERLAPPED_UNLOADED_MODULE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(8230i32);
pub const DEBUG_FLR_PAGE_HASH_ERRORS: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(4114i32);
pub const DEBUG_FLR_PG_MISMATCH: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(27i32);
pub const DEBUG_FLR_PHONE_APPID: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1879048215i32);
pub const DEBUG_FLR_PHONE_APPVERSION: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1879048217i32);
pub const DEBUG_FLR_PHONE_BOOTLOADERVERSION: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1879048209i32);
pub const DEBUG_FLR_PHONE_BUILDBRANCH: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1879048196i32);
pub const DEBUG_FLR_PHONE_BUILDER: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1879048197i32);
pub const DEBUG_FLR_PHONE_BUILDNUMBER: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1879048194i32);
pub const DEBUG_FLR_PHONE_BUILDTIMESTAMP: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1879048195i32);
pub const DEBUG_FLR_PHONE_FIRMWAREREVISION: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1879048202i32);
pub const DEBUG_FLR_PHONE_HARDWAREREVISION: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1879048206i32);
pub const DEBUG_FLR_PHONE_LCID: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1879048198i32);
pub const DEBUG_FLR_PHONE_MCCMNC: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1879048201i32);
pub const DEBUG_FLR_PHONE_OPERATOR: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1879048200i32);
pub const DEBUG_FLR_PHONE_QFE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1879048199i32);
pub const DEBUG_FLR_PHONE_RADIOHARDWAREREVISION: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1879048207i32);
pub const DEBUG_FLR_PHONE_RADIOSOFTWAREREVISION: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1879048208i32);
pub const DEBUG_FLR_PHONE_RAM: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1879048203i32);
pub const DEBUG_FLR_PHONE_REPORTGUID: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1879048210i32);
pub const DEBUG_FLR_PHONE_REPORTTIMESTAMP: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1879048214i32);
pub const DEBUG_FLR_PHONE_ROMVERSION: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1879048204i32);
pub const DEBUG_FLR_PHONE_SKUID: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1879048216i32);
pub const DEBUG_FLR_PHONE_SOCVERSION: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1879048205i32);
pub const DEBUG_FLR_PHONE_SOURCE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1879048211i32);
pub const DEBUG_FLR_PHONE_SOURCEEXTERNAL: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1879048212i32);
pub const DEBUG_FLR_PHONE_UIF_APPID: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1879048220i32);
pub const DEBUG_FLR_PHONE_UIF_APPNAME: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1879048219i32);
pub const DEBUG_FLR_PHONE_UIF_CATEGORY: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1879048221i32);
pub const DEBUG_FLR_PHONE_UIF_COMMENT: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1879048218i32);
pub const DEBUG_FLR_PHONE_UIF_ORIGIN: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1879048222i32);
pub const DEBUG_FLR_PHONE_USERALIAS: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1879048213i32);
pub const DEBUG_FLR_PHONE_VERSIONMAJOR: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1879048192i32);
pub const DEBUG_FLR_PHONE_VERSIONMINOR: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1879048193i32);
pub const DEBUG_FLR_PLATFORM_BUCKET_STRING: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(65630i32);
pub const DEBUG_FLR_PNP: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(32768i32);
pub const DEBUG_FLR_PNP_BLACKBOX: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(33024i32);
pub const DEBUG_FLR_PNP_IRP_ADDRESS: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(32770i32);
pub const DEBUG_FLR_PNP_IRP_ADDRESS_DEPRECATED: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(264i32);
pub const DEBUG_FLR_PNP_TRIAGE_DATA: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(32769i32);
pub const DEBUG_FLR_PNP_TRIAGE_DATA_DEPRECATED: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(23i32);
pub const DEBUG_FLR_POISONED_TB: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(8200i32);
pub const DEBUG_FLR_POOL_ADDRESS: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1024i32);
pub const DEBUG_FLR_POOL_CORRUPTOR: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(12288i32);
pub const DEBUG_FLR_POSSIBLE_INVALID_CONTROL_TRANSFER: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(8199i32);
pub const DEBUG_FLR_POSSIBLE_STACK_OVERFLOW: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(8245i32);
pub const DEBUG_FLR_POWERREQUEST_ADDRESS: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(29i32);
pub const DEBUG_FLR_PO_BLACKBOX: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(24833i32);
pub const DEBUG_FLR_PREVIOUS_IRQL: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(513i32);
pub const DEBUG_FLR_PREVIOUS_MODE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(265i32);
pub const DEBUG_FLR_PRIMARY_PROBLEM_CLASS: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1048579i32);
pub const DEBUG_FLR_PRIMARY_PROBLEM_CLASS_DATA: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1048580i32);
pub const DEBUG_FLR_PROBLEM_CLASSES: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1048578i32);
pub const DEBUG_FLR_PROBLEM_CODE_PATH_HASH: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1048585i32);
pub const DEBUG_FLR_PROCESSES_ANALYSIS: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1142784i32);
pub const DEBUG_FLR_PROCESSOR_ID: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(-1073741814i32);
pub const DEBUG_FLR_PROCESSOR_INFO: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(12339i32);
pub const DEBUG_FLR_PROCESS_BAM_CURRENT_THROTTLED: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(-268435437i32);
pub const DEBUG_FLR_PROCESS_BAM_PREVIOUS_THROTTLED: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(-268435436i32);
pub const DEBUG_FLR_PROCESS_INFO: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2097189i32);
pub const DEBUG_FLR_PROCESS_NAME: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(65547i32);
pub const DEBUG_FLR_PROCESS_OBJECT: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(8i32);
pub const DEBUG_FLR_PROCESS_PRODUCTNAME: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(65575i32);
pub const DEBUG_FLR_RAISED_IRQL_USER_FAULT: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(8220i32);
pub const DEBUG_FLR_READ_ADDRESS: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(14i32);
pub const DEBUG_FLR_RECURRING_STACK: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(12296i32);
pub const DEBUG_FLR_REGISTRYTXT_SOURCE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(65584i32);
pub const DEBUG_FLR_REGISTRYTXT_STRESS_ID: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(12307i32);
pub const DEBUG_FLR_REGISTRY_DATA: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(3145728i32);
pub const DEBUG_FLR_REPORT_INFO_CREATION_TIME: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1879048229i32);
pub const DEBUG_FLR_REPORT_INFO_GUID: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1879048227i32);
pub const DEBUG_FLR_REPORT_INFO_SOURCE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1879048228i32);
pub const DEBUG_FLR_REQUESTED_IRQL: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(514i32);
pub const DEBUG_FLR_RESERVED: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1i32);
pub const DEBUG_FLR_RESOURCE_CALL_TYPE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(4352i32);
pub const DEBUG_FLR_RESOURCE_CALL_TYPE_STR: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(4353i32);
pub const DEBUG_FLR_SCM: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(20992i32);
pub const DEBUG_FLR_SCM_BLACKBOX: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(21232i32);
pub const DEBUG_FLR_SCM_BLACKBOX_ENTRY: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(21233i32);
pub const DEBUG_FLR_SCM_BLACKBOX_ENTRY_CONTROLCODE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(21234i32);
pub const DEBUG_FLR_SCM_BLACKBOX_ENTRY_SERVICENAME: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(21236i32);
pub const DEBUG_FLR_SCM_BLACKBOX_ENTRY_STARTTIME: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(21235i32);
pub const DEBUG_FLR_SEARCH_HANG: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1048614i32);
pub const DEBUG_FLR_SECURITY_COOKIES: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(4105i32);
pub const DEBUG_FLR_SERVICE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(20480i32);
pub const DEBUG_FLR_SERVICETABLE_MODIFIED: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(12371i32);
pub const DEBUG_FLR_SERVICE_ANALYSIS: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1146880i32);
pub const DEBUG_FLR_SERVICE_DEPENDONGROUP: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(20486i32);
pub const DEBUG_FLR_SERVICE_DEPENDONSERVICE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(20485i32);
pub const DEBUG_FLR_SERVICE_DESCRIPTION: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(20484i32);
pub const DEBUG_FLR_SERVICE_DISPLAYNAME: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(20483i32);
pub const DEBUG_FLR_SERVICE_GROUP: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(20482i32);
pub const DEBUG_FLR_SERVICE_NAME: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(20481i32);
pub const DEBUG_FLR_SHOW_ERRORLOG: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(8207i32);
pub const DEBUG_FLR_SHOW_LCIE_ISO_DATA: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1048619i32);
pub const DEBUG_FLR_SIMULTANEOUS_TELSVC_INSTANCES: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1879048223i32);
pub const DEBUG_FLR_SIMULTANEOUS_TELWP_INSTANCES: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1879048224i32);
pub const DEBUG_FLR_SINGLE_BIT_ERROR: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(8203i32);
pub const DEBUG_FLR_SINGLE_BIT_PFN_PAGE_ERROR: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(8213i32);
pub const DEBUG_FLR_SKIP_CORRUPT_MODULE_DETECTION: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(8235i32);
pub const DEBUG_FLR_SKIP_MODULE_SPECIFIC_BUCKET_INFO: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(65588i32);
pub const DEBUG_FLR_SKIP_STACK_ANALYSIS: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(8217i32);
pub const DEBUG_FLR_SM_BUFFER_HASH: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1342177286i32);
pub const DEBUG_FLR_SM_COMPRESSION_FORMAT: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1342177280i32);
pub const DEBUG_FLR_SM_ONEBIT_SOLUTION_COUNT: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1342177287i32);
pub const DEBUG_FLR_SM_SOURCE_OFFSET: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1342177283i32);
pub const DEBUG_FLR_SM_SOURCE_PFN1: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1342177281i32);
pub const DEBUG_FLR_SM_SOURCE_PFN2: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1342177282i32);
pub const DEBUG_FLR_SM_SOURCE_SIZE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1342177284i32);
pub const DEBUG_FLR_SM_TARGET_PFN: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1342177285i32);
pub const DEBUG_FLR_SOLUTION_ID: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(12293i32);
pub const DEBUG_FLR_SOLUTION_TYPE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(12295i32);
pub const DEBUG_FLR_SPECIAL_POOL_CORRUPTION_TYPE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1025i32);
pub const DEBUG_FLR_STACK: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2097152i32);
pub const DEBUG_FLR_STACKHASH_ANALYSIS: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1138688i32);
pub const DEBUG_FLR_STACKUSAGE_FUNCTION: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(12363i32);
pub const DEBUG_FLR_STACKUSAGE_FUNCTION_SIZE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(12364i32);
pub const DEBUG_FLR_STACKUSAGE_IMAGE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(12361i32);
pub const DEBUG_FLR_STACKUSAGE_IMAGE_SIZE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(12362i32);
pub const DEBUG_FLR_STACKUSAGE_RECURSION_COUNT: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(12365i32);
pub const DEBUG_FLR_STACK_COMMAND: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(65540i32);
pub const DEBUG_FLR_STACK_FRAME: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2097155i32);
pub const DEBUG_FLR_STACK_FRAMES: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2097212i32);
pub const DEBUG_FLR_STACK_FRAME_FLAGS: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2097163i32);
pub const DEBUG_FLR_STACK_FRAME_FUNCTION: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2097162i32);
pub const DEBUG_FLR_STACK_FRAME_IMAGE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2097161i32);
pub const DEBUG_FLR_STACK_FRAME_INSTRUCTION: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2097157i32);
pub const DEBUG_FLR_STACK_FRAME_MODULE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2097160i32);
pub const DEBUG_FLR_STACK_FRAME_MODULE_BASE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2097224i32);
pub const DEBUG_FLR_STACK_FRAME_NUMBER: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2097156i32);
pub const DEBUG_FLR_STACK_FRAME_SRC: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2097225i32);
pub const DEBUG_FLR_STACK_FRAME_SYMBOL: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2097158i32);
pub const DEBUG_FLR_STACK_FRAME_SYMBOL_OFFSET: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2097159i32);
pub const DEBUG_FLR_STACK_OVERFLOW: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(12301i32);
pub const DEBUG_FLR_STACK_POINTER_ERROR: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(12302i32);
pub const DEBUG_FLR_STACK_POINTER_MISALIGNED: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(12304i32);
pub const DEBUG_FLR_STACK_POINTER_ONEBIT_ERROR: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(12303i32);
pub const DEBUG_FLR_STACK_SHA1_HASH_M: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2097221i32);
pub const DEBUG_FLR_STACK_SHA1_HASH_MF: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2097219i32);
pub const DEBUG_FLR_STACK_SHA1_HASH_MFO: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2097220i32);
pub const DEBUG_FLR_STACK_TEXT: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(65541i32);
pub const DEBUG_FLR_STATUS_CODE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(4102i32);
pub const DEBUG_FLR_STORAGE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(29696i32);
pub const DEBUG_FLR_STORAGE_BLACKBOX: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(29936i32);
pub const DEBUG_FLR_STORAGE_ISSUEDESCSTRING: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(29700i32);
pub const DEBUG_FLR_STORAGE_MFGID: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(29699i32);
pub const DEBUG_FLR_STORAGE_MODEL: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(29698i32);
pub const DEBUG_FLR_STORAGE_ORGID: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(29697i32);
pub const DEBUG_FLR_STORAGE_PRIVATE_DATASIZE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(29706i32);
pub const DEBUG_FLR_STORAGE_PRIVATE_OFFSET: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(29705i32);
pub const DEBUG_FLR_STORAGE_PRIVATE_TOTSIZE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(29704i32);
pub const DEBUG_FLR_STORAGE_PUBLIC_DATASIZE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(29703i32);
pub const DEBUG_FLR_STORAGE_PUBLIC_OFFSET: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(29702i32);
pub const DEBUG_FLR_STORAGE_PUBLIC_TOTSIZE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(29701i32);
pub const DEBUG_FLR_STORAGE_REASON: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(29708i32);
pub const DEBUG_FLR_STORAGE_TOTALSIZE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(29707i32);
pub const DEBUG_FLR_STORE_DEVELOPER_NAME: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1610612743i32);
pub const DEBUG_FLR_STORE_IS_MICROSOFT_PRODUCT: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1610612754i32);
pub const DEBUG_FLR_STORE_LEGACY_PARENT_PRODUCT_ID: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1610612747i32);
pub const DEBUG_FLR_STORE_LEGACY_WINDOWS_PHONE_PRODUCT_ID: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1610612749i32);
pub const DEBUG_FLR_STORE_LEGACY_WINDOWS_STORE_PRODUCT_ID: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1610612748i32);
pub const DEBUG_FLR_STORE_LEGACY_XBOX_360_PRODUCT_ID: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1610612751i32);
pub const DEBUG_FLR_STORE_LEGACY_XBOX_ONE_PRODUCT_ID: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1610612750i32);
pub const DEBUG_FLR_STORE_PACKAGE_FAMILY_NAME: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1610612744i32);
pub const DEBUG_FLR_STORE_PACKAGE_IDENTITY_NAME: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1610612745i32);
pub const DEBUG_FLR_STORE_PREFERRED_SKU_ID: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1610612753i32);
pub const DEBUG_FLR_STORE_PRIMARY_PARENT_PRODUCT_ID: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1610612746i32);
pub const DEBUG_FLR_STORE_PRODUCT_DESCRIPTION: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1610612738i32);
pub const DEBUG_FLR_STORE_PRODUCT_DISPLAY_NAME: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1610612737i32);
pub const DEBUG_FLR_STORE_PRODUCT_EXTENDED_NAME: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1610612739i32);
pub const DEBUG_FLR_STORE_PRODUCT_ID: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1610612736i32);
pub const DEBUG_FLR_STORE_PUBLISHER_CERTIFICATE_NAME: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1610612742i32);
pub const DEBUG_FLR_STORE_PUBLISHER_ID: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1610612740i32);
pub const DEBUG_FLR_STORE_PUBLISHER_NAME: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1610612741i32);
pub const DEBUG_FLR_STORE_URL_APP: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1610612755i32);
pub const DEBUG_FLR_STORE_URL_APPHEALTH: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1610612756i32);
pub const DEBUG_FLR_STORE_XBOX_TITLE_ID: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1610612752i32);
pub const DEBUG_FLR_STREAM_ANALYSIS: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1130496i32);
pub const DEBUG_FLR_SUSPECT_CODE_PATH_HASH: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1048586i32);
pub const DEBUG_FLR_SVCHOST: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(20736i32);
pub const DEBUG_FLR_SVCHOST_GROUP: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(20737i32);
pub const DEBUG_FLR_SVCHOST_IMAGEPATH: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(20738i32);
pub const DEBUG_FLR_SVCHOST_SERVICEDLL: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(20739i32);
pub const DEBUG_FLR_SWITCH_PROCESS_CONTEXT: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(8223i32);
pub const DEBUG_FLR_SYMBOL_FROM_RAW_STACK_ADDRESS: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(-2147483643i32);
pub const DEBUG_FLR_SYMBOL_NAME: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(65538i32);
pub const DEBUG_FLR_SYMBOL_ON_RAW_STACK: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(4104i32);
pub const DEBUG_FLR_SYMBOL_ROUTINE_NAME: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(65580i32);
pub const DEBUG_FLR_SYMBOL_STACK_INDEX: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(4103i32);
pub const DEBUG_FLR_SYSINFO_BASEBOARD_MANUFACTURER: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(17156i32);
pub const DEBUG_FLR_SYSINFO_BASEBOARD_PRODUCT: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(17157i32);
pub const DEBUG_FLR_SYSINFO_BASEBOARD_VERSION: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(17158i32);
pub const DEBUG_FLR_SYSINFO_BIOS_DATE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(17161i32);
pub const DEBUG_FLR_SYSINFO_BIOS_VENDOR: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(17159i32);
pub const DEBUG_FLR_SYSINFO_BIOS_VERSION: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(17160i32);
pub const DEBUG_FLR_SYSINFO_SYSTEM_MANUFACTURER: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(17152i32);
pub const DEBUG_FLR_SYSINFO_SYSTEM_PRODUCT: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(17153i32);
pub const DEBUG_FLR_SYSINFO_SYSTEM_SKU: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(17154i32);
pub const DEBUG_FLR_SYSINFO_SYSTEM_VERSION: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(17155i32);
pub const DEBUG_FLR_SYSTEM_LOCALE_deprecated: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(12298i32);
pub const DEBUG_FLR_SYSXML_CHECKSUM: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(16897i32);
pub const DEBUG_FLR_SYSXML_LOCALEID: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(16896i32);
pub const DEBUG_FLR_TARGET_MODE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(4107i32);
pub const DEBUG_FLR_TARGET_TIME: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(8250i32);
pub const DEBUG_FLR_TESTRESULTGUID: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(-268435455i32);
pub const DEBUG_FLR_TESTRESULTSERVER: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(-268435456i32);
pub const DEBUG_FLR_THREADPOOL_WAITER: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(4106i32);
pub const DEBUG_FLR_THREAD_ATTRIBUTES: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1048577i32);
pub const DEBUG_FLR_TIMELINE_ANALYSIS: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1126400i32);
pub const DEBUG_FLR_TIMELINE_TIMES: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1126401i32);
pub const DEBUG_FLR_TRAP_FRAME: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(-1073741822i32);
pub const DEBUG_FLR_TRAP_FRAME_RECURSION: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(12300i32);
pub const DEBUG_FLR_TRIAGER_OS_BUILD_NAME: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(12328i32);
pub const DEBUG_FLR_TSS: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(-1073741821i32);
pub const DEBUG_FLR_TWO_BIT_ERROR: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(8204i32);
pub const DEBUG_FLR_ULS_SCRIPT_EXCEPTION: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1048617i32);
pub const DEBUG_FLR_UNALIGNED_STACK_POINTER: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(12290i32);
pub const DEBUG_FLR_UNKNOWN: DEBUG_FAILURE_TYPE = DEBUG_FAILURE_TYPE(0i32);
pub const DEBUG_FLR_UNKNOWN_MODULE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(8201i32);
pub const DEBUG_FLR_UNRESPONSIVE_UI_FOLLOWUP_NAME: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(65573i32);
pub const DEBUG_FLR_UNRESPONSIVE_UI_PROBLEM_CLASS: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1048581i32);
pub const DEBUG_FLR_UNRESPONSIVE_UI_PROBLEM_CLASS_DATA: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1048582i32);
pub const DEBUG_FLR_UNRESPONSIVE_UI_STACK: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(65574i32);
pub const DEBUG_FLR_UNRESPONSIVE_UI_SYMBOL_NAME: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(65572i32);
pub const DEBUG_FLR_UNRESPONSIVE_UI_THREAD: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(-1073741819i32);
pub const DEBUG_FLR_UNUSED001: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(8197i32);
pub const DEBUG_FLR_URLS: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1048610i32);
pub const DEBUG_FLR_URLS_DISCOVERED: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1048609i32);
pub const DEBUG_FLR_URL_ENTRY: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1048611i32);
pub const DEBUG_FLR_URL_LCIE_ENTRY: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1048620i32);
pub const DEBUG_FLR_URL_URLMON_ENTRY: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1048621i32);
pub const DEBUG_FLR_URL_XMLHTTPREQ_SYNC_ENTRY: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1048622i32);
pub const DEBUG_FLR_USBPORT_OCADATA: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(20i32);
pub const DEBUG_FLR_USER: DEBUG_FAILURE_TYPE = DEBUG_FAILURE_TYPE(2i32);
pub const DEBUG_FLR_USERBREAK_PEB_PAGEDOUT: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(8225i32);
pub const DEBUG_FLR_USERMODE_DATA: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1048576i32);
pub const DEBUG_FLR_USER_GLOBAL_ATTRIBUTES: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(3153920i32);
pub const DEBUG_FLR_USER_LCID: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1052690i32);
pub const DEBUG_FLR_USER_LCID_STR: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1052698i32);
pub const DEBUG_FLR_USER_MODE_BUCKET: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(65614i32);
pub const DEBUG_FLR_USER_MODE_BUCKET_EVENTTYPE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(65616i32);
pub const DEBUG_FLR_USER_MODE_BUCKET_INDEX: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(65615i32);
pub const DEBUG_FLR_USER_MODE_BUCKET_P0: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(65619i32);
pub const DEBUG_FLR_USER_MODE_BUCKET_P1: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(65620i32);
pub const DEBUG_FLR_USER_MODE_BUCKET_P2: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(65621i32);
pub const DEBUG_FLR_USER_MODE_BUCKET_P3: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(65622i32);
pub const DEBUG_FLR_USER_MODE_BUCKET_P4: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(65623i32);
pub const DEBUG_FLR_USER_MODE_BUCKET_P5: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(65624i32);
pub const DEBUG_FLR_USER_MODE_BUCKET_P6: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(65625i32);
pub const DEBUG_FLR_USER_MODE_BUCKET_P7: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(65626i32);
pub const DEBUG_FLR_USER_MODE_BUCKET_REPORTCREATIONTIME: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(65618i32);
pub const DEBUG_FLR_USER_MODE_BUCKET_REPORTGUID: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(65617i32);
pub const DEBUG_FLR_USER_MODE_BUCKET_STRING: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(65627i32);
pub const DEBUG_FLR_USER_NAME: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(65548i32);
pub const DEBUG_FLR_USER_PROBLEM_CLASSES: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(3162112i32);
pub const DEBUG_FLR_USER_THREAD_ATTRIBUTES: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(3158016i32);
pub const DEBUG_FLR_USE_DEFAULT_CONTEXT: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(8221i32);
pub const DEBUG_FLR_VERIFIER_DRIVER_ENTRY: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(263i32);
pub const DEBUG_FLR_VERIFIER_FOUND_DEADLOCK: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(26i32);
pub const DEBUG_FLR_VERIFIER_STOP: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(8224i32);
pub const DEBUG_FLR_VIDEO_TDR_CONTEXT: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(262i32);
pub const DEBUG_FLR_VIRTUAL_MACHINE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(17162i32);
pub const DEBUG_FLR_WAIT_CHAIN_COMMAND: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1048598i32);
pub const DEBUG_FLR_WATSON_GENERIC_BUCKETING_00: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(16648i32);
pub const DEBUG_FLR_WATSON_GENERIC_BUCKETING_01: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(16649i32);
pub const DEBUG_FLR_WATSON_GENERIC_BUCKETING_02: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(16650i32);
pub const DEBUG_FLR_WATSON_GENERIC_BUCKETING_03: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(16651i32);
pub const DEBUG_FLR_WATSON_GENERIC_BUCKETING_04: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(16652i32);
pub const DEBUG_FLR_WATSON_GENERIC_BUCKETING_05: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(16653i32);
pub const DEBUG_FLR_WATSON_GENERIC_BUCKETING_06: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(16654i32);
pub const DEBUG_FLR_WATSON_GENERIC_BUCKETING_07: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(16655i32);
pub const DEBUG_FLR_WATSON_GENERIC_BUCKETING_08: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(16656i32);
pub const DEBUG_FLR_WATSON_GENERIC_BUCKETING_09: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(16657i32);
pub const DEBUG_FLR_WATSON_GENERIC_EVENT_NAME: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(16647i32);
pub const DEBUG_FLR_WATSON_IBUCKET: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(16644i32);
pub const DEBUG_FLR_WATSON_IBUCKETTABLE_S1_RESP: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1048613i32);
pub const DEBUG_FLR_WATSON_IBUCKET_S1_RESP: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1048612i32);
pub const DEBUG_FLR_WATSON_MODULE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(16640i32);
pub const DEBUG_FLR_WATSON_MODULE_OFFSET: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(16642i32);
pub const DEBUG_FLR_WATSON_MODULE_TIMESTAMP: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(16645i32);
pub const DEBUG_FLR_WATSON_MODULE_VERSION: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(16641i32);
pub const DEBUG_FLR_WATSON_PROCESS_TIMESTAMP: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(16646i32);
pub const DEBUG_FLR_WATSON_PROCESS_VERSION: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(16643i32);
pub const DEBUG_FLR_WCT_XML_AVAILABLE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1048591i32);
pub const DEBUG_FLR_WERCOLLECTION_DEFAULTCOLLECTION_FAILURE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(-268435438i32);
pub const DEBUG_FLR_WERCOLLECTION_MINIDUMP_WRITE_FAILURE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(-268435439i32);
pub const DEBUG_FLR_WERCOLLECTION_PROCESSHEAPDUMP_REQUEST_FAILURE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(-268435440i32);
pub const DEBUG_FLR_WERCOLLECTION_PROCESSTERMINATED: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(-268435441i32);
pub const DEBUG_FLR_WER_DATA_COLLECTION_INFO: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1048615i32);
pub const DEBUG_FLR_WER_MACHINE_ID: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1048616i32);
pub const DEBUG_FLR_WHEA_ERROR_RECORD: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(25i32);
pub const DEBUG_FLR_WINLOGON_BLACKBOX: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(-268435432i32);
pub const DEBUG_FLR_WMI_QUERY_DATA: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(3149824i32);
pub const DEBUG_FLR_WORKER_ROUTINE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(5i32);
pub const DEBUG_FLR_WORK_ITEM: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(6i32);
pub const DEBUG_FLR_WORK_QUEUE_ITEM: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(21i32);
pub const DEBUG_FLR_WQL_EVENTLOG_INFO: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(16899i32);
pub const DEBUG_FLR_WQL_EVENT_COUNT: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(16898i32);
pub const DEBUG_FLR_WRITE_ADDRESS: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(15i32);
pub const DEBUG_FLR_WRONG_SYMBOLS: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(8195i32);
pub const DEBUG_FLR_WRONG_SYMBOLS_SIZE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(8247i32);
pub const DEBUG_FLR_WRONG_SYMBOLS_TIMESTAMP: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(8246i32);
pub const DEBUG_FLR_XBOX_LIVE_ENVIRONMENT: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(12368i32);
pub const DEBUG_FLR_XBOX_SYSTEM_CRASHTIME: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(12367i32);
pub const DEBUG_FLR_XBOX_SYSTEM_UPTIME: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(12366i32);
pub const DEBUG_FLR_XCS_PATH: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1048603i32);
pub const DEBUG_FLR_XDV_HELP_LINK: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(-1073741811i32);
pub const DEBUG_FLR_XDV_RULE_INFO: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(-1073741810i32);
pub const DEBUG_FLR_XDV_STATE_VARIABLE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(-1073741812i32);
pub const DEBUG_FLR_XDV_VIOLATED_CONDITION: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(-1073741813i32);
pub const DEBUG_FLR_XHCI_FIRMWARE_VERSION: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(65590i32);
pub const DEBUG_FLR_XML_APPLICATION_NAME: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2097231i32);
pub const DEBUG_FLR_XML_ATTRIBUTE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2097194i32);
pub const DEBUG_FLR_XML_ATTRIBUTE_D1VALUE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2097197i32);
pub const DEBUG_FLR_XML_ATTRIBUTE_D2VALUE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2097198i32);
pub const DEBUG_FLR_XML_ATTRIBUTE_DOVALUE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2097199i32);
pub const DEBUG_FLR_XML_ATTRIBUTE_FRAME_NUMBER: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2097201i32);
pub const DEBUG_FLR_XML_ATTRIBUTE_LIST: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2097193i32);
pub const DEBUG_FLR_XML_ATTRIBUTE_NAME: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2097195i32);
pub const DEBUG_FLR_XML_ATTRIBUTE_THREAD_INDEX: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2097202i32);
pub const DEBUG_FLR_XML_ATTRIBUTE_VALUE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2097196i32);
pub const DEBUG_FLR_XML_ATTRIBUTE_VALUE_TYPE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2097200i32);
pub const DEBUG_FLR_XML_ENCODED_OFFSETS: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2097213i32);
pub const DEBUG_FLR_XML_EVENTTYPE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2097235i32);
pub const DEBUG_FLR_XML_GLOBALATTRIBUTE_LIST: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2097192i32);
pub const DEBUG_FLR_XML_MODERN_ASYNC_REQUEST_OUTSTANDING: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2097234i32);
pub const DEBUG_FLR_XML_MODULE_INFO: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2097169i32);
pub const DEBUG_FLR_XML_MODULE_INFO_BASE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2097186i32);
pub const DEBUG_FLR_XML_MODULE_INFO_CHECKSUM: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2097174i32);
pub const DEBUG_FLR_XML_MODULE_INFO_COMPANY_NAME: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2097182i32);
pub const DEBUG_FLR_XML_MODULE_INFO_DRIVER_GROUP: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2097251i32);
pub const DEBUG_FLR_XML_MODULE_INFO_FILE_DESCRIPTION: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2097183i32);
pub const DEBUG_FLR_XML_MODULE_INFO_FILE_FLAGS: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2097223i32);
pub const DEBUG_FLR_XML_MODULE_INFO_FIXED_FILE_VER: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2097178i32);
pub const DEBUG_FLR_XML_MODULE_INFO_FIXED_PROD_VER: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2097179i32);
pub const DEBUG_FLR_XML_MODULE_INFO_IMAGE_NAME: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2097172i32);
pub const DEBUG_FLR_XML_MODULE_INFO_IMAGE_PATH: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2097173i32);
pub const DEBUG_FLR_XML_MODULE_INFO_INDEX: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2097170i32);
pub const DEBUG_FLR_XML_MODULE_INFO_INTERNAL_NAME: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2097184i32);
pub const DEBUG_FLR_XML_MODULE_INFO_NAME: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2097171i32);
pub const DEBUG_FLR_XML_MODULE_INFO_ON_STACK: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2097177i32);
pub const DEBUG_FLR_XML_MODULE_INFO_ORIG_FILE_NAME: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2097185i32);
pub const DEBUG_FLR_XML_MODULE_INFO_PRODUCT_NAME: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2097188i32);
pub const DEBUG_FLR_XML_MODULE_INFO_SIZE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2097187i32);
pub const DEBUG_FLR_XML_MODULE_INFO_STRING_FILE_VER: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2097180i32);
pub const DEBUG_FLR_XML_MODULE_INFO_STRING_PROD_VER: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2097181i32);
pub const DEBUG_FLR_XML_MODULE_INFO_SYMBOL_TYPE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2097222i32);
pub const DEBUG_FLR_XML_MODULE_INFO_SYMSRV_IMAGE_DETAIL: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2097245i32);
pub const DEBUG_FLR_XML_MODULE_INFO_SYMSRV_IMAGE_ERROR: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2097244i32);
pub const DEBUG_FLR_XML_MODULE_INFO_SYMSRV_IMAGE_SEC: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2097246i32);
pub const DEBUG_FLR_XML_MODULE_INFO_SYMSRV_IMAGE_STATUS: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2097243i32);
pub const DEBUG_FLR_XML_MODULE_INFO_SYMSRV_PDB_DETAIL: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2097249i32);
pub const DEBUG_FLR_XML_MODULE_INFO_SYMSRV_PDB_ERROR: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2097248i32);
pub const DEBUG_FLR_XML_MODULE_INFO_SYMSRV_PDB_SEC: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2097250i32);
pub const DEBUG_FLR_XML_MODULE_INFO_SYMSRV_PDB_STATUS: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2097247i32);
pub const DEBUG_FLR_XML_MODULE_INFO_TIMESTAMP: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2097175i32);
pub const DEBUG_FLR_XML_MODULE_INFO_UNLOADED: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2097176i32);
pub const DEBUG_FLR_XML_MODULE_LIST: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2097154i32);
pub const DEBUG_FLR_XML_PACKAGE_MONIKER: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2097232i32);
pub const DEBUG_FLR_XML_PACKAGE_NAME: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2097236i32);
pub const DEBUG_FLR_XML_PACKAGE_RELATIVE_APPLICATION_ID: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2097233i32);
pub const DEBUG_FLR_XML_PACKAGE_VERSION: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2097237i32);
pub const DEBUG_FLR_XML_PROBLEMCLASS: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2097204i32);
pub const DEBUG_FLR_XML_PROBLEMCLASS_FRAME_NUMBER: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2097208i32);
pub const DEBUG_FLR_XML_PROBLEMCLASS_LIST: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2097203i32);
pub const DEBUG_FLR_XML_PROBLEMCLASS_NAME: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2097205i32);
pub const DEBUG_FLR_XML_PROBLEMCLASS_THREAD_INDEX: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2097209i32);
pub const DEBUG_FLR_XML_PROBLEMCLASS_VALUE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2097206i32);
pub const DEBUG_FLR_XML_PROBLEMCLASS_VALUE_TYPE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2097207i32);
pub const DEBUG_FLR_XML_STACK_FRAME_TRIAGE_STATUS: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2097210i32);
pub const DEBUG_FLR_XML_SYSTEMINFO: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2097226i32);
pub const DEBUG_FLR_XML_SYSTEMINFO_SYSTEMMANUFACTURER: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2097227i32);
pub const DEBUG_FLR_XML_SYSTEMINFO_SYSTEMMARKER: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2097229i32);
pub const DEBUG_FLR_XML_SYSTEMINFO_SYSTEMMODEL: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(2097228i32);
pub const DEBUG_FLR_XPROC_DUMP_AVAILABLE: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1048592i32);
pub const DEBUG_FLR_XPROC_HANG: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(1048588i32);
pub const DEBUG_FLR_ZEROED_STACK: DEBUG_FLR_PARAM_TYPE = DEBUG_FLR_PARAM_TYPE(8194i32);
pub const DEBUG_FORMAT_CAB_SECONDARY_ALL_IMAGES: u32 = 268435456u32;
pub const DEBUG_FORMAT_CAB_SECONDARY_FILES: u32 = 1073741824u32;
pub const DEBUG_FORMAT_DEFAULT: u32 = 0u32;
pub const DEBUG_FORMAT_NO_OVERWRITE: u32 = 2147483648u32;
pub const DEBUG_FORMAT_USER_SMALL_ADD_AVX_XSTATE_CONTEXT: u32 = 131072u32;
pub const DEBUG_FORMAT_USER_SMALL_CODE_SEGMENTS: u32 = 4096u32;
pub const DEBUG_FORMAT_USER_SMALL_DATA_SEGMENTS: u32 = 16u32;
pub const DEBUG_FORMAT_USER_SMALL_FILTER_MEMORY: u32 = 32u32;
pub const DEBUG_FORMAT_USER_SMALL_FILTER_PATHS: u32 = 64u32;
pub const DEBUG_FORMAT_USER_SMALL_FILTER_TRIAGE: u32 = 65536u32;
pub const DEBUG_FORMAT_USER_SMALL_FULL_AUXILIARY_STATE: u32 = 16384u32;
pub const DEBUG_FORMAT_USER_SMALL_FULL_MEMORY: u32 = 1u32;
pub const DEBUG_FORMAT_USER_SMALL_FULL_MEMORY_INFO: u32 = 1024u32;
pub const DEBUG_FORMAT_USER_SMALL_HANDLE_DATA: u32 = 2u32;
pub const DEBUG_FORMAT_USER_SMALL_IGNORE_INACCESSIBLE_MEM: u32 = 134217728u32;
pub const DEBUG_FORMAT_USER_SMALL_INDIRECT_MEMORY: u32 = 8u32;
pub const DEBUG_FORMAT_USER_SMALL_IPT_TRACE: u32 = 262144u32;
pub const DEBUG_FORMAT_USER_SMALL_MODULE_HEADERS: u32 = 32768u32;
pub const DEBUG_FORMAT_USER_SMALL_NO_AUXILIARY_STATE: u32 = 8192u32;
pub const DEBUG_FORMAT_USER_SMALL_NO_OPTIONAL_DATA: u32 = 512u32;
pub const DEBUG_FORMAT_USER_SMALL_PRIVATE_READ_WRITE_MEMORY: u32 = 256u32;
pub const DEBUG_FORMAT_USER_SMALL_PROCESS_THREAD_DATA: u32 = 128u32;
pub const DEBUG_FORMAT_USER_SMALL_SCAN_PARTIAL_PAGES: u32 = 268435456u32;
pub const DEBUG_FORMAT_USER_SMALL_THREAD_INFO: u32 = 2048u32;
pub const DEBUG_FORMAT_USER_SMALL_UNLOADED_MODULES: u32 = 4u32;
pub const DEBUG_FORMAT_WRITE_CAB: u32 = 536870912u32;
pub const DEBUG_FRAME_DEFAULT: u32 = 0u32;
pub const DEBUG_FRAME_IGNORE_INLINE: u32 = 1u32;
pub const DEBUG_GETFNENT_DEFAULT: u32 = 0u32;
pub const DEBUG_GETFNENT_RAW_ENTRY_ONLY: u32 = 1u32;
pub const DEBUG_GETMOD_DEFAULT: u32 = 0u32;
pub const DEBUG_GETMOD_NO_LOADED_MODULES: u32 = 1u32;
pub const DEBUG_GETMOD_NO_UNLOADED_MODULES: u32 = 2u32;
pub const DEBUG_GET_PROC_DEFAULT: u32 = 0u32;
pub const DEBUG_GET_PROC_FULL_MATCH: u32 = 1u32;
pub const DEBUG_GET_PROC_ONLY_MATCH: u32 = 2u32;
pub const DEBUG_GET_PROC_SERVICE_NAME: u32 = 4u32;
pub const DEBUG_GET_TEXT_COMPLETIONS_IS_DOT_COMMAND: u32 = 1u32;
pub const DEBUG_GET_TEXT_COMPLETIONS_IS_EXTENSION_COMMAND: u32 = 2u32;
pub const DEBUG_GET_TEXT_COMPLETIONS_IS_SYMBOL: u32 = 4u32;
pub const DEBUG_GET_TEXT_COMPLETIONS_NO_DOT_COMMANDS: u32 = 1u32;
pub const DEBUG_GET_TEXT_COMPLETIONS_NO_EXTENSION_COMMANDS: u32 = 2u32;
pub const DEBUG_GET_TEXT_COMPLETIONS_NO_SYMBOLS: u32 = 4u32;
pub const DEBUG_GSEL_ALLOW_HIGHER: u32 = 4u32;
pub const DEBUG_GSEL_ALLOW_LOWER: u32 = 2u32;
pub const DEBUG_GSEL_DEFAULT: u32 = 0u32;
pub const DEBUG_GSEL_INLINE_CALLSITE: u32 = 16u32;
pub const DEBUG_GSEL_NEAREST_ONLY: u32 = 8u32;
pub const DEBUG_GSEL_NO_SYMBOL_LOADS: u32 = 1u32;
pub const DEBUG_HANDLE_DATA_TYPE_ALL_HANDLE_OPERATIONS: u32 = 10u32;
pub const DEBUG_HANDLE_DATA_TYPE_BASIC: u32 = 0u32;
pub const DEBUG_HANDLE_DATA_TYPE_HANDLE_COUNT: u32 = 3u32;
pub const DEBUG_HANDLE_DATA_TYPE_MINI_EVENT_1: u32 = 13u32;
pub const DEBUG_HANDLE_DATA_TYPE_MINI_MUTANT_1: u32 = 7u32;
pub const DEBUG_HANDLE_DATA_TYPE_MINI_MUTANT_2: u32 = 8u32;
pub const DEBUG_HANDLE_DATA_TYPE_MINI_PROCESS_1: u32 = 11u32;
pub const DEBUG_HANDLE_DATA_TYPE_MINI_PROCESS_2: u32 = 12u32;
pub const DEBUG_HANDLE_DATA_TYPE_MINI_SECTION_1: u32 = 14u32;
pub const DEBUG_HANDLE_DATA_TYPE_MINI_SEMAPHORE_1: u32 = 15u32;
pub const DEBUG_HANDLE_DATA_TYPE_MINI_THREAD_1: u32 = 6u32;
pub const DEBUG_HANDLE_DATA_TYPE_OBJECT_NAME: u32 = 2u32;
pub const DEBUG_HANDLE_DATA_TYPE_OBJECT_NAME_WIDE: u32 = 5u32;
pub const DEBUG_HANDLE_DATA_TYPE_PER_HANDLE_OPERATIONS: u32 = 9u32;
pub const DEBUG_HANDLE_DATA_TYPE_TYPE_NAME: u32 = 1u32;
pub const DEBUG_HANDLE_DATA_TYPE_TYPE_NAME_WIDE: u32 = 4u32;
pub const DEBUG_INTERRUPT_ACTIVE: u32 = 0u32;
pub const DEBUG_INTERRUPT_EXIT: u32 = 2u32;
pub const DEBUG_INTERRUPT_PASSIVE: u32 = 1u32;
pub const DEBUG_IOUTPUT_ADDR_TRANSLATE: u32 = 134217728u32;
pub const DEBUG_IOUTPUT_BREAKPOINT: u32 = 536870912u32;
pub const DEBUG_IOUTPUT_EVENT: u32 = 268435456u32;
pub const DEBUG_IOUTPUT_KD_PROTOCOL: u32 = 2147483648u32;
pub const DEBUG_IOUTPUT_REMOTING: u32 = 1073741824u32;
pub const DEBUG_KERNEL_ACTIVE_DUMP: u32 = 1030u32;
pub const DEBUG_KERNEL_CONNECTION: u32 = 0u32;
pub const DEBUG_KERNEL_DUMP: u32 = 1025u32;
pub const DEBUG_KERNEL_EXDI_DRIVER: u32 = 2u32;
pub const DEBUG_KERNEL_FULL_DUMP: u32 = 1026u32;
pub const DEBUG_KERNEL_IDNA: u32 = 3u32;
pub const DEBUG_KERNEL_INSTALL_DRIVER: u32 = 4u32;
pub const DEBUG_KERNEL_LOCAL: u32 = 1u32;
pub const DEBUG_KERNEL_REPT: u32 = 5u32;
pub const DEBUG_KERNEL_SMALL_DUMP: u32 = 1024u32;
pub const DEBUG_KERNEL_TRACE_LOG: u32 = 1028u32;
pub const DEBUG_KNOWN_STRUCT_GET_NAMES: u32 = 1u32;
pub const DEBUG_KNOWN_STRUCT_GET_SINGLE_LINE_OUTPUT: u32 = 2u32;
pub const DEBUG_KNOWN_STRUCT_SUPPRESS_TYPE_NAME: u32 = 3u32;
pub const DEBUG_LEVEL_ASSEMBLY: u32 = 1u32;
pub const DEBUG_LEVEL_SOURCE: u32 = 0u32;
pub const DEBUG_LIVE_USER_NON_INVASIVE: u32 = 33u32;
pub const DEBUG_LOG_APPEND: u32 = 1u32;
pub const DEBUG_LOG_DEFAULT: u32 = 0u32;
pub const DEBUG_LOG_DML: u32 = 4u32;
pub const DEBUG_LOG_UNICODE: u32 = 2u32;
pub const DEBUG_MANAGED_ALLOWED: u32 = 1u32;
pub const DEBUG_MANAGED_DISABLED: u32 = 0u32;
pub const DEBUG_MANAGED_DLL_LOADED: u32 = 2u32;
pub const DEBUG_MANRESET_DEFAULT: u32 = 0u32;
pub const DEBUG_MANRESET_LOAD_DLL: u32 = 1u32;
pub const DEBUG_MANSTR_LOADED_SUPPORT_DLL: u32 = 1u32;
pub const DEBUG_MANSTR_LOAD_STATUS: u32 = 2u32;
pub const DEBUG_MANSTR_NONE: u32 = 0u32;
pub const DEBUG_MODNAME_IMAGE: u32 = 0u32;
pub const DEBUG_MODNAME_LOADED_IMAGE: u32 = 2u32;
pub const DEBUG_MODNAME_MAPPED_IMAGE: u32 = 4u32;
pub const DEBUG_MODNAME_MODULE: u32 = 1u32;
pub const DEBUG_MODNAME_SYMBOL_FILE: u32 = 3u32;
pub const DEBUG_MODULE_EXE_MODULE: u32 = 4u32;
pub const DEBUG_MODULE_EXPLICIT: u32 = 8u32;
pub const DEBUG_MODULE_LOADED: u32 = 0u32;
pub const DEBUG_MODULE_SECONDARY: u32 = 16u32;
pub const DEBUG_MODULE_SYM_BAD_CHECKSUM: u32 = 65536u32;
pub const DEBUG_MODULE_SYNTHETIC: u32 = 32u32;
pub const DEBUG_MODULE_UNLOADED: u32 = 1u32;
pub const DEBUG_MODULE_USER_MODE: u32 = 2u32;
pub const DEBUG_NOTIFY_SESSION_ACCESSIBLE: u32 = 2u32;
pub const DEBUG_NOTIFY_SESSION_ACTIVE: u32 = 0u32;
pub const DEBUG_NOTIFY_SESSION_INACCESSIBLE: u32 = 3u32;
pub const DEBUG_NOTIFY_SESSION_INACTIVE: u32 = 1u32;
pub const DEBUG_OFFSINFO_VIRTUAL_SOURCE: u32 = 1u32;
pub const DEBUG_OUTCBF_COMBINED_EXPLICIT_FLUSH: u32 = 1u32;
pub const DEBUG_OUTCBF_DML_HAS_SPECIAL_CHARACTERS: u32 = 4u32;
pub const DEBUG_OUTCBF_DML_HAS_TAGS: u32 = 2u32;
pub const DEBUG_OUTCBI_ANY_FORMAT: u32 = 6u32;
pub const DEBUG_OUTCBI_DML: u32 = 4u32;
pub const DEBUG_OUTCBI_EXPLICIT_FLUSH: u32 = 1u32;
pub const DEBUG_OUTCBI_TEXT: u32 = 2u32;
pub const DEBUG_OUTCB_DML: u32 = 1u32;
pub const DEBUG_OUTCB_EXPLICIT_FLUSH: u32 = 2u32;
pub const DEBUG_OUTCB_TEXT: u32 = 0u32;
pub const DEBUG_OUTCTL_ALL_CLIENTS: u32 = 1u32;
pub const DEBUG_OUTCTL_ALL_OTHER_CLIENTS: u32 = 2u32;
pub const DEBUG_OUTCTL_AMBIENT: u32 = 4294967295u32;
pub const DEBUG_OUTCTL_AMBIENT_DML: u32 = 4294967294u32;
pub const DEBUG_OUTCTL_AMBIENT_TEXT: u32 = 4294967295u32;
pub const DEBUG_OUTCTL_DML: u32 = 32u32;
pub const DEBUG_OUTCTL_IGNORE: u32 = 3u32;
pub const DEBUG_OUTCTL_LOG_ONLY: u32 = 4u32;
pub const DEBUG_OUTCTL_NOT_LOGGED: u32 = 8u32;
pub const DEBUG_OUTCTL_OVERRIDE_MASK: u32 = 16u32;
pub const DEBUG_OUTCTL_SEND_MASK: u32 = 7u32;
pub const DEBUG_OUTCTL_THIS_CLIENT: u32 = 0u32;
pub const DEBUG_OUTPUT_DEBUGGEE: u32 = 128u32;
pub const DEBUG_OUTPUT_DEBUGGEE_PROMPT: u32 = 256u32;
pub const DEBUG_OUTPUT_ERROR: u32 = 2u32;
pub const DEBUG_OUTPUT_EXTENSION_WARNING: u32 = 64u32;
pub const DEBUG_OUTPUT_IDENTITY_DEFAULT: u32 = 0u32;
pub const DEBUG_OUTPUT_NAME_END: ::windows_core::PCSTR = ::windows_core::s!("**NAME**");
pub const DEBUG_OUTPUT_NAME_END_T: ::windows_core::PCWSTR = ::windows_core::w!("**NAME**");
pub const DEBUG_OUTPUT_NAME_END_WIDE: ::windows_core::PCWSTR = ::windows_core::w!("**NAME**");
pub const DEBUG_OUTPUT_NORMAL: u32 = 1u32;
pub const DEBUG_OUTPUT_OFFSET_END: ::windows_core::PCSTR = ::windows_core::s!("**OFF**");
pub const DEBUG_OUTPUT_OFFSET_END_T: ::windows_core::PCWSTR = ::windows_core::w!("**OFF**");
pub const DEBUG_OUTPUT_OFFSET_END_WIDE: ::windows_core::PCWSTR = ::windows_core::w!("**OFF**");
pub const DEBUG_OUTPUT_PROMPT: u32 = 16u32;
pub const DEBUG_OUTPUT_PROMPT_REGISTERS: u32 = 32u32;
pub const DEBUG_OUTPUT_STATUS: u32 = 1024u32;
pub const DEBUG_OUTPUT_SYMBOLS: u32 = 512u32;
pub const DEBUG_OUTPUT_SYMBOLS_DEFAULT: u32 = 0u32;
pub const DEBUG_OUTPUT_SYMBOLS_NO_NAMES: u32 = 1u32;
pub const DEBUG_OUTPUT_SYMBOLS_NO_OFFSETS: u32 = 2u32;
pub const DEBUG_OUTPUT_SYMBOLS_NO_TYPES: u32 = 16u32;
pub const DEBUG_OUTPUT_SYMBOLS_NO_VALUES: u32 = 4u32;
pub const DEBUG_OUTPUT_TYPE_END: ::windows_core::PCSTR = ::windows_core::s!("**TYPE**");
pub const DEBUG_OUTPUT_TYPE_END_T: ::windows_core::PCWSTR = ::windows_core::w!("**TYPE**");
pub const DEBUG_OUTPUT_TYPE_END_WIDE: ::windows_core::PCWSTR = ::windows_core::w!("**TYPE**");
pub const DEBUG_OUTPUT_VALUE_END: ::windows_core::PCSTR = ::windows_core::s!("**VALUE**");
pub const DEBUG_OUTPUT_VALUE_END_T: ::windows_core::PCWSTR = ::windows_core::w!("**VALUE**");
pub const DEBUG_OUTPUT_VALUE_END_WIDE: ::windows_core::PCWSTR = ::windows_core::w!("**VALUE**");
pub const DEBUG_OUTPUT_VERBOSE: u32 = 8u32;
pub const DEBUG_OUTPUT_WARNING: u32 = 4u32;
pub const DEBUG_OUTPUT_XML: u32 = 2048u32;
pub const DEBUG_OUTSYM_ALLOW_DISPLACEMENT: u32 = 4u32;
pub const DEBUG_OUTSYM_DEFAULT: u32 = 0u32;
pub const DEBUG_OUTSYM_FORCE_OFFSET: u32 = 1u32;
pub const DEBUG_OUTSYM_SOURCE_LINE: u32 = 2u32;
pub const DEBUG_OUTTYPE_ADDRESS_AT_END: u32 = 131072u32;
pub const DEBUG_OUTTYPE_ADDRESS_OF_FIELD: u32 = 65536u32;
pub const DEBUG_OUTTYPE_BLOCK_RECURSE: u32 = 2097152u32;
pub const DEBUG_OUTTYPE_COMPACT_OUTPUT: u32 = 8u32;
pub const DEBUG_OUTTYPE_DEFAULT: u32 = 0u32;
pub const DEBUG_OUTTYPE_NO_INDENT: u32 = 1u32;
pub const DEBUG_OUTTYPE_NO_OFFSET: u32 = 2u32;
pub const DEBUG_OUTTYPE_VERBOSE: u32 = 4u32;
pub const DEBUG_OUT_TEXT_REPL_DEFAULT: u32 = 0u32;
pub const DEBUG_PHYSICAL_CACHED: u32 = 1u32;
pub const DEBUG_PHYSICAL_DEFAULT: u32 = 0u32;
pub const DEBUG_PHYSICAL_UNCACHED: u32 = 2u32;
pub const DEBUG_PHYSICAL_WRITE_COMBINED: u32 = 3u32;
pub const DEBUG_PROCESS_DETACH_ON_EXIT: u32 = 1u32;
pub const DEBUG_PROCESS_ONLY_THIS_PROCESS: u32 = 2u32;
pub const DEBUG_PROC_DESC_DEFAULT: u32 = 0u32;
pub const DEBUG_PROC_DESC_NO_COMMAND_LINE: u32 = 8u32;
pub const DEBUG_PROC_DESC_NO_MTS_PACKAGES: u32 = 4u32;
pub const DEBUG_PROC_DESC_NO_PATHS: u32 = 1u32;
pub const DEBUG_PROC_DESC_NO_SERVICES: u32 = 2u32;
pub const DEBUG_PROC_DESC_NO_SESSION_ID: u32 = 16u32;
pub const DEBUG_PROC_DESC_NO_USER_NAME: u32 = 32u32;
pub const DEBUG_PROC_DESC_WITH_ARCHITECTURE: u32 = 128u32;
pub const DEBUG_PROC_DESC_WITH_PACKAGEFAMILY: u32 = 64u32;
pub const DEBUG_REGISTERS_ALL: u32 = 7u32;
pub const DEBUG_REGISTERS_DEFAULT: u32 = 0u32;
pub const DEBUG_REGISTERS_FLOAT: u32 = 4u32;
pub const DEBUG_REGISTERS_INT32: u32 = 1u32;
pub const DEBUG_REGISTERS_INT64: u32 = 2u32;
pub const DEBUG_REGISTER_SUB_REGISTER: u32 = 1u32;
pub const DEBUG_REGSRC_DEBUGGEE: u32 = 0u32;
pub const DEBUG_REGSRC_EXPLICIT: u32 = 1u32;
pub const DEBUG_REGSRC_FRAME: u32 = 2u32;
pub const DEBUG_REQUEST_ADD_CACHED_SYMBOL_INFO: u32 = 16u32;
pub const DEBUG_REQUEST_CLOSE_TOKEN: u32 = 30u32;
pub const DEBUG_REQUEST_CURRENT_OUTPUT_CALLBACKS_ARE_DML_AWARE: u32 = 19u32;
pub const DEBUG_REQUEST_DUPLICATE_TOKEN: u32 = 28u32;
pub const DEBUG_REQUEST_EXT_TYPED_DATA_ANSI: u32 = 12u32;
pub const DEBUG_REQUEST_GET_ADDITIONAL_CREATE_OPTIONS: u32 = 4u32;
pub const DEBUG_REQUEST_GET_CACHED_SYMBOL_INFO: u32 = 15u32;
pub const DEBUG_REQUEST_GET_CAPTURED_EVENT_CODE_OFFSET: u32 = 10u32;
pub const DEBUG_REQUEST_GET_DUMP_HEADER: u32 = 21u32;
pub const DEBUG_REQUEST_GET_EXTENSION_SEARCH_PATH_WIDE: u32 = 13u32;
pub const DEBUG_REQUEST_GET_IMAGE_ARCHITECTURE: u32 = 39u32;
pub const DEBUG_REQUEST_GET_INSTRUMENTATION_VERSION: u32 = 37u32;
pub const DEBUG_REQUEST_GET_MODULE_ARCHITECTURE: u32 = 38u32;
pub const DEBUG_REQUEST_GET_OFFSET_UNWIND_INFORMATION: u32 = 20u32;
pub const DEBUG_REQUEST_GET_TEXT_COMPLETIONS_ANSI: u32 = 18u32;
pub const DEBUG_REQUEST_GET_TEXT_COMPLETIONS_WIDE: u32 = 14u32;
pub const DEBUG_REQUEST_GET_WIN32_MAJOR_MINOR_VERSIONS: u32 = 6u32;
pub const DEBUG_REQUEST_INLINE_QUERY: u32 = 35u32;
pub const DEBUG_REQUEST_MIDORI: u32 = 23u32;
pub const DEBUG_REQUEST_MISC_INFORMATION: u32 = 25u32;
pub const DEBUG_REQUEST_OPEN_PROCESS_TOKEN: u32 = 26u32;
pub const DEBUG_REQUEST_OPEN_THREAD_TOKEN: u32 = 27u32;
pub const DEBUG_REQUEST_PROCESS_DESCRIPTORS: u32 = 24u32;
pub const DEBUG_REQUEST_QUERY_INFO_TOKEN: u32 = 29u32;
pub const DEBUG_REQUEST_READ_CAPTURED_EVENT_CODE_STREAM: u32 = 11u32;
pub const DEBUG_REQUEST_READ_USER_MINIDUMP_STREAM: u32 = 7u32;
pub const DEBUG_REQUEST_REMOVE_CACHED_SYMBOL_INFO: u32 = 17u32;
pub const DEBUG_REQUEST_RESUME_THREAD: u32 = 34u32;
pub const DEBUG_REQUEST_SET_ADDITIONAL_CREATE_OPTIONS: u32 = 5u32;
pub const DEBUG_REQUEST_SET_DUMP_HEADER: u32 = 22u32;
pub const DEBUG_REQUEST_SET_LOCAL_IMPLICIT_COMMAND_LINE: u32 = 9u32;
pub const DEBUG_REQUEST_SOURCE_PATH_HAS_SOURCE_SERVER: u32 = 0u32;
pub const DEBUG_REQUEST_TARGET_CAN_DETACH: u32 = 8u32;
pub const DEBUG_REQUEST_TARGET_EXCEPTION_CONTEXT: u32 = 1u32;
pub const DEBUG_REQUEST_TARGET_EXCEPTION_RECORD: u32 = 3u32;
pub const DEBUG_REQUEST_TARGET_EXCEPTION_THREAD: u32 = 2u32;
pub const DEBUG_REQUEST_TL_INSTRUMENTATION_AWARE: u32 = 36u32;
pub const DEBUG_REQUEST_WOW_MODULE: u32 = 32u32;
pub const DEBUG_REQUEST_WOW_PROCESS: u32 = 31u32;
pub const DEBUG_SCOPE_GROUP_ALL: u32 = 3u32;
pub const DEBUG_SCOPE_GROUP_ARGUMENTS: u32 = 1u32;
pub const DEBUG_SCOPE_GROUP_BY_DATAMODEL: u32 = 4u32;
pub const DEBUG_SCOPE_GROUP_LOCALS: u32 = 2u32;
pub const DEBUG_SERVERS_ALL: u32 = 3u32;
pub const DEBUG_SERVERS_DEBUGGER: u32 = 1u32;
pub const DEBUG_SERVERS_PROCESS: u32 = 2u32;
pub const DEBUG_SESSION_ACTIVE: u32 = 0u32;
pub const DEBUG_SESSION_END: u32 = 4u32;
pub const DEBUG_SESSION_END_SESSION_ACTIVE_DETACH: u32 = 2u32;
pub const DEBUG_SESSION_END_SESSION_ACTIVE_TERMINATE: u32 = 1u32;
pub const DEBUG_SESSION_END_SESSION_PASSIVE: u32 = 3u32;
pub const DEBUG_SESSION_FAILURE: u32 = 7u32;
pub const DEBUG_SESSION_HIBERNATE: u32 = 6u32;
pub const DEBUG_SESSION_REBOOT: u32 = 5u32;
pub const DEBUG_SOURCE_IS_STATEMENT: u32 = 1u32;
pub const DEBUG_SRCFILE_SYMBOL_CHECKSUMINFO: u32 = 2u32;
pub const DEBUG_SRCFILE_SYMBOL_TOKEN: u32 = 0u32;
pub const DEBUG_SRCFILE_SYMBOL_TOKEN_SOURCE_COMMAND_WIDE: u32 = 1u32;
pub const DEBUG_STACK_ARGUMENTS: u32 = 1u32;
pub const DEBUG_STACK_COLUMN_NAMES: u32 = 16u32;
pub const DEBUG_STACK_DML: u32 = 2048u32;
pub const DEBUG_STACK_FRAME_ADDRESSES: u32 = 8u32;
pub const DEBUG_STACK_FRAME_ADDRESSES_RA_ONLY: u32 = 256u32;
pub const DEBUG_STACK_FRAME_ARCH: u32 = 16384u32;
pub const DEBUG_STACK_FRAME_MEMORY_USAGE: u32 = 512u32;
pub const DEBUG_STACK_FRAME_NUMBERS: u32 = 64u32;
pub const DEBUG_STACK_FRAME_OFFSETS: u32 = 4096u32;
pub const DEBUG_STACK_FUNCTION_INFO: u32 = 2u32;
pub const DEBUG_STACK_NONVOLATILE_REGISTERS: u32 = 32u32;
pub const DEBUG_STACK_PARAMETERS: u32 = 128u32;
pub const DEBUG_STACK_PARAMETERS_NEWLINE: u32 = 1024u32;
pub const DEBUG_STACK_PROVIDER: u32 = 8192u32;
pub const DEBUG_STACK_SOURCE_LINE: u32 = 4u32;
pub const DEBUG_STATUS_BREAK: u32 = 6u32;
pub const DEBUG_STATUS_GO: u32 = 1u32;
pub const DEBUG_STATUS_GO_HANDLED: u32 = 2u32;
pub const DEBUG_STATUS_GO_NOT_HANDLED: u32 = 3u32;
pub const DEBUG_STATUS_IGNORE_EVENT: u32 = 9u32;
pub const DEBUG_STATUS_INSIDE_WAIT: u64 = 4294967296u64;
pub const DEBUG_STATUS_MASK: u32 = 31u32;
pub const DEBUG_STATUS_NO_CHANGE: u32 = 0u32;
pub const DEBUG_STATUS_NO_DEBUGGEE: u32 = 7u32;
pub const DEBUG_STATUS_OUT_OF_SYNC: u32 = 15u32;
pub const DEBUG_STATUS_RESTART_REQUESTED: u32 = 10u32;
pub const DEBUG_STATUS_REVERSE_GO: u32 = 11u32;
pub const DEBUG_STATUS_REVERSE_STEP_BRANCH: u32 = 12u32;
pub const DEBUG_STATUS_REVERSE_STEP_INTO: u32 = 14u32;
pub const DEBUG_STATUS_REVERSE_STEP_OVER: u32 = 13u32;
pub const DEBUG_STATUS_STEP_BRANCH: u32 = 8u32;
pub const DEBUG_STATUS_STEP_INTO: u32 = 5u32;
pub const DEBUG_STATUS_STEP_OVER: u32 = 4u32;
pub const DEBUG_STATUS_TIMEOUT: u32 = 17u32;
pub const DEBUG_STATUS_WAIT_INPUT: u32 = 16u32;
pub const DEBUG_STATUS_WAIT_TIMEOUT: u64 = 8589934592u64;
pub const DEBUG_SYMBOL_EXPANDED: u32 = 16u32;
pub const DEBUG_SYMBOL_EXPANSION_LEVEL_MASK: u32 = 15u32;
pub const DEBUG_SYMBOL_IS_ARGUMENT: u32 = 256u32;
pub const DEBUG_SYMBOL_IS_ARRAY: u32 = 64u32;
pub const DEBUG_SYMBOL_IS_FLOAT: u32 = 128u32;
pub const DEBUG_SYMBOL_IS_LOCAL: u32 = 512u32;
pub const DEBUG_SYMBOL_READ_ONLY: u32 = 32u32;
pub const DEBUG_SYMENT_IS_CODE: u32 = 1u32;
pub const DEBUG_SYMENT_IS_DATA: u32 = 2u32;
pub const DEBUG_SYMENT_IS_LOCAL: u32 = 8u32;
pub const DEBUG_SYMENT_IS_MANAGED: u32 = 16u32;
pub const DEBUG_SYMENT_IS_PARAMETER: u32 = 4u32;
pub const DEBUG_SYMENT_IS_SYNTHETIC: u32 = 32u32;
pub const DEBUG_SYMINFO_BREAKPOINT_SOURCE_LINE: u32 = 0u32;
pub const DEBUG_SYMINFO_GET_MODULE_SYMBOL_NAMES_AND_OFFSETS: u32 = 3u32;
pub const DEBUG_SYMINFO_GET_SYMBOL_NAME_BY_OFFSET_AND_TAG_WIDE: u32 = 2u32;
pub const DEBUG_SYMINFO_IMAGEHLP_MODULEW64: u32 = 1u32;
pub const DEBUG_SYMTYPE_CODEVIEW: u32 = 2u32;
pub const DEBUG_SYMTYPE_COFF: u32 = 1u32;
pub const DEBUG_SYMTYPE_DEFERRED: u32 = 5u32;
pub const DEBUG_SYMTYPE_DIA: u32 = 7u32;
pub const DEBUG_SYMTYPE_EXPORT: u32 = 4u32;
pub const DEBUG_SYMTYPE_NONE: u32 = 0u32;
pub const DEBUG_SYMTYPE_PDB: u32 = 3u32;
pub const DEBUG_SYMTYPE_SYM: u32 = 6u32;
pub const DEBUG_SYSOBJINFO_CURRENT_PROCESS_COOKIE: u32 = 2u32;
pub const DEBUG_SYSOBJINFO_THREAD_BASIC_INFORMATION: u32 = 0u32;
pub const DEBUG_SYSOBJINFO_THREAD_NAME_WIDE: u32 = 1u32;
pub const DEBUG_SYSVERSTR_BUILD: u32 = 1u32;
pub const DEBUG_SYSVERSTR_SERVICE_PACK: u32 = 0u32;
pub const DEBUG_TBINFO_AFFINITY: u32 = 32u32;
pub const DEBUG_TBINFO_ALL: u32 = 63u32;
pub const DEBUG_TBINFO_EXIT_STATUS: u32 = 1u32;
pub const DEBUG_TBINFO_PRIORITY: u32 = 4u32;
pub const DEBUG_TBINFO_PRIORITY_CLASS: u32 = 2u32;
pub const DEBUG_TBINFO_START_OFFSET: u32 = 16u32;
pub const DEBUG_TBINFO_TIMES: u32 = 8u32;
pub const DEBUG_TYPED_DATA_IS_IN_MEMORY: u32 = 1u32;
pub const DEBUG_TYPED_DATA_PHYSICAL_CACHED: u32 = 4u32;
pub const DEBUG_TYPED_DATA_PHYSICAL_DEFAULT: u32 = 2u32;
pub const DEBUG_TYPED_DATA_PHYSICAL_MEMORY: u32 = 14u32;
pub const DEBUG_TYPED_DATA_PHYSICAL_UNCACHED: u32 = 6u32;
pub const DEBUG_TYPED_DATA_PHYSICAL_WRITE_COMBINED: u32 = 8u32;
pub const DEBUG_TYPEOPTS_FORCERADIX_OUTPUT: u32 = 4u32;
pub const DEBUG_TYPEOPTS_LONGSTATUS_DISPLAY: u32 = 2u32;
pub const DEBUG_TYPEOPTS_MATCH_MAXSIZE: u32 = 8u32;
pub const DEBUG_TYPEOPTS_UNICODE_DISPLAY: u32 = 1u32;
pub const DEBUG_USER_WINDOWS_DUMP: u32 = 1025u32;
pub const DEBUG_USER_WINDOWS_DUMP_WINDOWS_CE: u32 = 1029u32;
pub const DEBUG_USER_WINDOWS_IDNA: u32 = 2u32;
pub const DEBUG_USER_WINDOWS_PROCESS: u32 = 0u32;
pub const DEBUG_USER_WINDOWS_PROCESS_SERVER: u32 = 1u32;
pub const DEBUG_USER_WINDOWS_REPT: u32 = 3u32;
pub const DEBUG_USER_WINDOWS_SMALL_DUMP: u32 = 1024u32;
pub const DEBUG_VALUE_FLOAT128: u32 = 9u32;
pub const DEBUG_VALUE_FLOAT32: u32 = 5u32;
pub const DEBUG_VALUE_FLOAT64: u32 = 6u32;
pub const DEBUG_VALUE_FLOAT80: u32 = 7u32;
pub const DEBUG_VALUE_FLOAT82: u32 = 8u32;
pub const DEBUG_VALUE_INT16: u32 = 2u32;
pub const DEBUG_VALUE_INT32: u32 = 3u32;
pub const DEBUG_VALUE_INT64: u32 = 4u32;
pub const DEBUG_VALUE_INT8: u32 = 1u32;
pub const DEBUG_VALUE_INVALID: u32 = 0u32;
pub const DEBUG_VALUE_TYPES: u32 = 12u32;
pub const DEBUG_VALUE_VECTOR128: u32 = 11u32;
pub const DEBUG_VALUE_VECTOR64: u32 = 10u32;
pub const DEBUG_VSEARCH_DEFAULT: u32 = 0u32;
pub const DEBUG_VSEARCH_WRITABLE_ONLY: u32 = 1u32;
pub const DEBUG_VSOURCE_DEBUGGEE: u32 = 1u32;
pub const DEBUG_VSOURCE_DUMP_WITHOUT_MEMINFO: u32 = 3u32;
pub const DEBUG_VSOURCE_INVALID: u32 = 0u32;
pub const DEBUG_VSOURCE_MAPPED_IMAGE: u32 = 2u32;
pub const DEBUG_WAIT_DEFAULT: u32 = 0u32;
pub const DISK_READ_0_BYTES: TANALYZE_RETURN = TANALYZE_RETURN(3i32);
pub const DISK_WRITE: TANALYZE_RETURN = TANALYZE_RETURN(4i32);
pub const DUMP_HANDLE_FLAG_CID_TABLE: u32 = 32u32;
pub const DUMP_HANDLE_FLAG_KERNEL_TABLE: u32 = 16u32;
pub const DUMP_HANDLE_FLAG_PRINT_FREE_ENTRY: u32 = 4u32;
pub const DUMP_HANDLE_FLAG_PRINT_OBJECT: u32 = 2u32;
pub const DbgPoolRegionMax: DEBUG_POOL_REGION = DEBUG_POOL_REGION(6i32);
pub const DbgPoolRegionNonPaged: DEBUG_POOL_REGION = DEBUG_POOL_REGION(3i32);
pub const DbgPoolRegionNonPagedExpansion: DEBUG_POOL_REGION = DEBUG_POOL_REGION(4i32);
pub const DbgPoolRegionPaged: DEBUG_POOL_REGION = DEBUG_POOL_REGION(2i32);
pub const DbgPoolRegionSessionPaged: DEBUG_POOL_REGION = DEBUG_POOL_REGION(5i32);
pub const DbgPoolRegionSpecial: DEBUG_POOL_REGION = DEBUG_POOL_REGION(1i32);
pub const DbgPoolRegionUnknown: DEBUG_POOL_REGION = DEBUG_POOL_REGION(0i32);
pub const ERROR_DBG_CANCELLED: u32 = 3221226695u32;
pub const ERROR_DBG_TIMEOUT: u32 = 3221226932u32;
pub const EXIT_ON_CONTROLC: u32 = 8u32;
pub const EXIT_STATUS: TANALYZE_RETURN = TANALYZE_RETURN(2i32);
pub const EXTDLL_DATA_QUERY_BUILD_BINDIR: u32 = 1u32;
pub const EXTDLL_DATA_QUERY_BUILD_BINDIR_SYMSRV: u32 = 11u32;
pub const EXTDLL_DATA_QUERY_BUILD_SYMDIR: u32 = 2u32;
pub const EXTDLL_DATA_QUERY_BUILD_SYMDIR_SYMSRV: u32 = 12u32;
pub const EXTDLL_DATA_QUERY_BUILD_WOW64BINDIR: u32 = 4u32;
pub const EXTDLL_DATA_QUERY_BUILD_WOW64BINDIR_SYMSRV: u32 = 14u32;
pub const EXTDLL_DATA_QUERY_BUILD_WOW64SYMDIR: u32 = 3u32;
pub const EXTDLL_DATA_QUERY_BUILD_WOW64SYMDIR_SYMSRV: u32 = 13u32;
pub const EXT_ANALYZER_FLAG_ID: u32 = 2u32;
pub const EXT_ANALYZER_FLAG_MOD: u32 = 1u32;
pub const EXT_API_VERSION_NUMBER: u32 = 5u32;
pub const EXT_API_VERSION_NUMBER32: u32 = 5u32;
pub const EXT_API_VERSION_NUMBER64: u32 = 6u32;
pub const EXT_FIND_FILE_ALLOW_GIVEN_PATH: u32 = 1u32;
pub const EXT_TDF_PHYSICAL_CACHED: u32 = 4u32;
pub const EXT_TDF_PHYSICAL_DEFAULT: u32 = 2u32;
pub const EXT_TDF_PHYSICAL_MEMORY: u32 = 14u32;
pub const EXT_TDF_PHYSICAL_UNCACHED: u32 = 6u32;
pub const EXT_TDF_PHYSICAL_WRITE_COMBINED: u32 = 8u32;
pub const EXT_TDOP_COPY: EXT_TDOP = EXT_TDOP(0i32);
pub const EXT_TDOP_COUNT: EXT_TDOP = EXT_TDOP(19i32);
pub const EXT_TDOP_EVALUATE: EXT_TDOP = EXT_TDOP(5i32);
pub const EXT_TDOP_GET_ARRAY_ELEMENT: EXT_TDOP = EXT_TDOP(12i32);
pub const EXT_TDOP_GET_DEREFERENCE: EXT_TDOP = EXT_TDOP(13i32);
pub const EXT_TDOP_GET_FIELD: EXT_TDOP = EXT_TDOP(4i32);
pub const EXT_TDOP_GET_FIELD_OFFSET: EXT_TDOP = EXT_TDOP(11i32);
pub const EXT_TDOP_GET_POINTER_TO: EXT_TDOP = EXT_TDOP(16i32);
pub const EXT_TDOP_GET_TYPE_NAME: EXT_TDOP = EXT_TDOP(6i32);
pub const EXT_TDOP_GET_TYPE_SIZE: EXT_TDOP = EXT_TDOP(14i32);
pub const EXT_TDOP_HAS_FIELD: EXT_TDOP = EXT_TDOP(10i32);
pub const EXT_TDOP_OUTPUT_FULL_VALUE: EXT_TDOP = EXT_TDOP(9i32);
pub const EXT_TDOP_OUTPUT_SIMPLE_VALUE: EXT_TDOP = EXT_TDOP(8i32);
pub const EXT_TDOP_OUTPUT_TYPE_DEFINITION: EXT_TDOP = EXT_TDOP(15i32);
pub const EXT_TDOP_OUTPUT_TYPE_NAME: EXT_TDOP = EXT_TDOP(7i32);
pub const EXT_TDOP_RELEASE: EXT_TDOP = EXT_TDOP(1i32);
pub const EXT_TDOP_SET_FROM_EXPR: EXT_TDOP = EXT_TDOP(2i32);
pub const EXT_TDOP_SET_FROM_TYPE_ID_AND_U64: EXT_TDOP = EXT_TDOP(17i32);
pub const EXT_TDOP_SET_FROM_U64_EXPR: EXT_TDOP = EXT_TDOP(3i32);
pub const EXT_TDOP_SET_PTR_FROM_TYPE_ID_AND_U64: EXT_TDOP = EXT_TDOP(18i32);
pub const ErrorClassError: ErrorClass = ErrorClass(1i32);
pub const ErrorClassWarning: ErrorClass = ErrorClass(0i32);
pub const FAILURE_ANALYSIS_ASSUME_HANG: u32 = 4u32;
pub const FAILURE_ANALYSIS_AUTOBUG_PROCESSING: u32 = 64u32;
pub const FAILURE_ANALYSIS_AUTOSET_SYMPATH: u32 = 16384u32;
pub const FAILURE_ANALYSIS_CALLSTACK_XML: u32 = 256u32;
pub const FAILURE_ANALYSIS_CALLSTACK_XML_FULL_SOURCE_INFO: u32 = 16777216u32;
pub const FAILURE_ANALYSIS_CREATE_INSTANCE: u32 = 1048576u32;
pub const FAILURE_ANALYSIS_EXCEPTION_AS_HANG: u32 = 32u32;
pub const FAILURE_ANALYSIS_HEAP_CORRUPTION_BLAME_FUNCTION: u32 = 33554432u32;
pub const FAILURE_ANALYSIS_IGNORE_BREAKIN: u32 = 8u32;
pub const FAILURE_ANALYSIS_LIVE_DEBUG_HOLD_CHECK: u32 = 2097152u32;
pub const FAILURE_ANALYSIS_MODULE_INFO_XML: u32 = 4096u32;
pub const FAILURE_ANALYSIS_MULTI_TARGET: u32 = 131072u32;
pub const FAILURE_ANALYSIS_NO_DB_LOOKUP: u32 = 1u32;
pub const FAILURE_ANALYSIS_NO_IMAGE_CORRUPTION: u32 = 8192u32;
pub const FAILURE_ANALYSIS_PERMIT_HEAP_ACCESS_VIOLATIONS: u32 = 67108864u32;
pub const FAILURE_ANALYSIS_REGISTRY_DATA: u32 = 512u32;
pub const FAILURE_ANALYSIS_SET_FAILURE_CONTEXT: u32 = 16u32;
pub const FAILURE_ANALYSIS_SHOW_SOURCE: u32 = 262144u32;
pub const FAILURE_ANALYSIS_SHOW_WCT_STACKS: u32 = 524288u32;
pub const FAILURE_ANALYSIS_USER_ATTRIBUTES: u32 = 2048u32;
pub const FAILURE_ANALYSIS_USER_ATTRIBUTES_ALL: u32 = 32768u32;
pub const FAILURE_ANALYSIS_USER_ATTRIBUTES_FRAMES: u32 = 65536u32;
pub const FAILURE_ANALYSIS_VERBOSE: u32 = 2u32;
pub const FAILURE_ANALYSIS_WMI_QUERY_DATA: u32 = 1024u32;
pub const FAILURE_ANALYSIS_XML_FILE_OUTPUT: u32 = 4194304u32;
pub const FAILURE_ANALYSIS_XML_OUTPUT: u32 = 128u32;
pub const FAILURE_ANALYSIS_XSD_VERIFY: u32 = 8388608u32;
pub const FAILURE_ANALYSIS_XSLT_FILE_INPUT: u32 = 268435456u32;
pub const FAILURE_ANALYSIS_XSLT_FILE_OUTPUT: u32 = 536870912u32;
pub const FA_PLUGIN_INITIALIZATION: FA_EXTENSION_PLUGIN_PHASE = FA_EXTENSION_PLUGIN_PHASE(1i32);
pub const FA_PLUGIN_POST_BUCKETING: FA_EXTENSION_PLUGIN_PHASE = FA_EXTENSION_PLUGIN_PHASE(8i32);
pub const FA_PLUGIN_PRE_BUCKETING: FA_EXTENSION_PLUGIN_PHASE = FA_EXTENSION_PLUGIN_PHASE(4i32);
pub const FA_PLUGIN_STACK_ANALYSIS: FA_EXTENSION_PLUGIN_PHASE = FA_EXTENSION_PLUGIN_PHASE(2i32);
pub const FIELDS_DID_NOT_MATCH: u32 = 4u32;
pub const FormatBSTRString: PreferredFormat = PreferredFormat(8i32);
pub const FormatEnumNameOnly: PreferredFormat = PreferredFormat(12i32);
pub const FormatEscapedStringWithQuote: PreferredFormat = PreferredFormat(13i32);
pub const FormatHString: PreferredFormat = PreferredFormat(10i32);
pub const FormatNone: PreferredFormat = PreferredFormat(0i32);
pub const FormatQuotedHString: PreferredFormat = PreferredFormat(9i32);
pub const FormatQuotedString: PreferredFormat = PreferredFormat(2i32);
pub const FormatQuotedUTF32String: PreferredFormat = PreferredFormat(15i32);
pub const FormatQuotedUTF8String: PreferredFormat = PreferredFormat(6i32);
pub const FormatQuotedUnicodeString: PreferredFormat = PreferredFormat(4i32);
pub const FormatRaw: PreferredFormat = PreferredFormat(11i32);
pub const FormatSingleCharacter: PreferredFormat = PreferredFormat(1i32);
pub const FormatString: PreferredFormat = PreferredFormat(3i32);
pub const FormatUTF32String: PreferredFormat = PreferredFormat(14i32);
pub const FormatUTF8String: PreferredFormat = PreferredFormat(7i32);
pub const FormatUnicodeString: PreferredFormat = PreferredFormat(5i32);
pub const IG_DISASSEMBLE_BUFFER: u32 = 44u32;
pub const IG_DUMP_SYMBOL_INFO: u32 = 22u32;
pub const IG_FIND_FILE: u32 = 40u32;
pub const IG_GET_ANY_MODULE_IN_RANGE: u32 = 45u32;
pub const IG_GET_BUS_DATA: u32 = 20u32;
pub const IG_GET_CACHE_SIZE: u32 = 32u32;
pub const IG_GET_CLR_DATA_INTERFACE: u32 = 38u32;
pub const IG_GET_CONTEXT_EX: u32 = 48u32;
pub const IG_GET_CURRENT_PROCESS: u32 = 26u32;
pub const IG_GET_CURRENT_PROCESS_HANDLE: u32 = 28u32;
pub const IG_GET_CURRENT_THREAD: u32 = 25u32;
pub const IG_GET_DEBUGGER_DATA: u32 = 14u32;
pub const IG_GET_EXCEPTION_RECORD: u32 = 18u32;
pub const IG_GET_EXPRESSION_EX: u32 = 30u32;
pub const IG_GET_INPUT_LINE: u32 = 29u32;
pub const IG_GET_KERNEL_VERSION: u32 = 15u32;
pub const IG_GET_PEB_ADDRESS: u32 = 129u32;
pub const IG_GET_SET_SYMPATH: u32 = 17u32;
pub const IG_GET_TEB_ADDRESS: u32 = 128u32;
pub const IG_GET_THREAD_OS_INFO: u32 = 37u32;
pub const IG_GET_TYPE_SIZE: u32 = 27u32;
pub const IG_IS_PTR64: u32 = 19u32;
pub const IG_KD_CONTEXT: u32 = 1u32;
pub const IG_KSTACK_HELP: u32 = 10u32;
pub const IG_LOWMEM_CHECK: u32 = 23u32;
pub const IG_MATCH_PATTERN_A: u32 = 39u32;
pub const IG_OBSOLETE_PLACEHOLDER_36: u32 = 36u32;
pub const IG_PHYSICAL_TO_VIRTUAL: u32 = 47u32;
pub const IG_POINTER_SEARCH_PHYSICAL: u32 = 35u32;
pub const IG_QUERY_TARGET_INTERFACE: u32 = 42u32;
pub const IG_READ_CONTROL_SPACE: u32 = 2u32;
pub const IG_READ_IO_SPACE: u32 = 4u32;
pub const IG_READ_IO_SPACE_EX: u32 = 8u32;
pub const IG_READ_MSR: u32 = 12u32;
pub const IG_READ_PHYSICAL: u32 = 6u32;
pub const IG_READ_PHYSICAL_WITH_FLAGS: u32 = 33u32;
pub const IG_RELOAD_SYMBOLS: u32 = 16u32;
pub const IG_SEARCH_MEMORY: u32 = 24u32;
pub const IG_SET_BUS_DATA: u32 = 21u32;
pub const IG_SET_THREAD: u32 = 11u32;
pub const IG_TRANSLATE_VIRTUAL_TO_PHYSICAL: u32 = 31u32;
pub const IG_TYPED_DATA: u32 = 43u32;
pub const IG_TYPED_DATA_OBSOLETE: u32 = 41u32;
pub const IG_VIRTUAL_TO_PHYSICAL: u32 = 46u32;
pub const IG_WRITE_CONTROL_SPACE: u32 = 3u32;
pub const IG_WRITE_IO_SPACE: u32 = 5u32;
pub const IG_WRITE_IO_SPACE_EX: u32 = 9u32;
pub const IG_WRITE_MSR: u32 = 13u32;
pub const IG_WRITE_PHYSICAL: u32 = 7u32;
pub const IG_WRITE_PHYSICAL_WITH_FLAGS: u32 = 34u32;
pub const INCORRECT_VERSION_INFO: u32 = 7u32;
pub const INSUFFICIENT_SPACE_TO_COPY: u32 = 10u32;
pub const Identical: SignatureComparison = SignatureComparison(4i32);
pub const IntrinsicBool: IntrinsicKind = IntrinsicKind(1i32);
pub const IntrinsicChar: IntrinsicKind = IntrinsicKind(2i32);
pub const IntrinsicChar16: IntrinsicKind = IntrinsicKind(10i32);
pub const IntrinsicChar32: IntrinsicKind = IntrinsicKind(11i32);
pub const IntrinsicFloat: IntrinsicKind = IntrinsicKind(8i32);
pub const IntrinsicHRESULT: IntrinsicKind = IntrinsicKind(9i32);
pub const IntrinsicInt: IntrinsicKind = IntrinsicKind(4i32);
pub const IntrinsicLong: IntrinsicKind = IntrinsicKind(6i32);
pub const IntrinsicUInt: IntrinsicKind = IntrinsicKind(5i32);
pub const IntrinsicULong: IntrinsicKind = IntrinsicKind(7i32);
pub const IntrinsicVoid: IntrinsicKind = IntrinsicKind(0i32);
pub const IntrinsicWChar: IntrinsicKind = IntrinsicKind(3i32);
pub const KDEXTS_LOCK_CALLBACKROUTINE_DEFINED: u32 = 2u32;
pub const KD_SECONDARY_VERSION_AMD64_CONTEXT: u32 = 2u32;
pub const KD_SECONDARY_VERSION_AMD64_OBSOLETE_CONTEXT_1: u32 = 0u32;
pub const KD_SECONDARY_VERSION_AMD64_OBSOLETE_CONTEXT_2: u32 = 1u32;
pub const KD_SECONDARY_VERSION_DEFAULT: u32 = 0u32;
pub const LanguageAssembly: LanguageKind = LanguageKind(3i32);
pub const LanguageC: LanguageKind = LanguageKind(1i32);
pub const LanguageCPP: LanguageKind = LanguageKind(2i32);
pub const LanguageUnknown: LanguageKind = LanguageKind(0i32);
pub const LessSpecific: SignatureComparison = SignatureComparison(2i32);
pub const LocationConstant: LocationKind = LocationKind(2i32);
pub const LocationMember: LocationKind = LocationKind(0i32);
pub const LocationNone: LocationKind = LocationKind(3i32);
pub const LocationStatic: LocationKind = LocationKind(1i32);
pub const MAX_STACK_IN_BYTES: u32 = 4096u32;
pub const MEMORY_READ_ERROR: u32 = 1u32;
pub const MODULE_ORDERS_LOADTIME: u32 = 268435456u32;
pub const MODULE_ORDERS_MASK: u32 = 4026531840u32;
pub const MODULE_ORDERS_MODULENAME: u32 = 536870912u32;
pub const MoreSpecific: SignatureComparison = SignatureComparison(3i32);
pub const NO_TYPE: TANALYZE_RETURN = TANALYZE_RETURN(0i32);
pub const NT_STATUS_CODE: TANALYZE_RETURN = TANALYZE_RETURN(5i32);
pub const NULL_FIELD_NAME: u32 = 6u32;
pub const NULL_SYM_DUMP_PARAM: u32 = 5u32;
pub const ObjectContext: ModelObjectKind = ModelObjectKind(1i32);
pub const ObjectError: ModelObjectKind = ModelObjectKind(6i32);
pub const ObjectIntrinsic: ModelObjectKind = ModelObjectKind(7i32);
pub const ObjectKeyReference: ModelObjectKind = ModelObjectKind(9i32);
pub const ObjectMethod: ModelObjectKind = ModelObjectKind(8i32);
pub const ObjectNoValue: ModelObjectKind = ModelObjectKind(5i32);
pub const ObjectPropertyAccessor: ModelObjectKind = ModelObjectKind(0i32);
pub const ObjectSynthetic: ModelObjectKind = ModelObjectKind(4i32);
pub const ObjectTargetObject: ModelObjectKind = ModelObjectKind(2i32);
pub const ObjectTargetObjectReference: ModelObjectKind = ModelObjectKind(3i32);
pub const PHYS_FLAG_CACHED: u32 = 1u32;
pub const PHYS_FLAG_DEFAULT: u32 = 0u32;
pub const PHYS_FLAG_UNCACHED: u32 = 2u32;
pub const PHYS_FLAG_WRITE_COMBINED: u32 = 3u32;
pub const PROCESS_END: TANALYZE_RETURN = TANALYZE_RETURN(1i32);
pub const PTR_SEARCH_NO_SYMBOL_CHECK: u32 = 2147483648u32;
pub const PTR_SEARCH_PHYS_ALL_HITS: u32 = 1u32;
pub const PTR_SEARCH_PHYS_PTE: u32 = 2u32;
pub const PTR_SEARCH_PHYS_RANGE_CHECK_ONLY: u32 = 4u32;
pub const PTR_SEARCH_PHYS_SIZE_SHIFT: u32 = 3u32;
pub const PointerCXHat: PointerKind = PointerKind(3i32);
pub const PointerManagedReference: PointerKind = PointerKind(4i32);
pub const PointerRValueReference: PointerKind = PointerKind(2i32);
pub const PointerReference: PointerKind = PointerKind(1i32);
pub const PointerStandard: PointerKind = PointerKind(0i32);
pub const RawSearchNoBases: RawSearchFlags = RawSearchFlags(1i32);
pub const RawSearchNone: RawSearchFlags = RawSearchFlags(0i32);
pub const STACK_FRAME_TYPE_IGNORE: u32 = 255u32;
pub const STACK_FRAME_TYPE_INIT: u32 = 0u32;
pub const STACK_FRAME_TYPE_INLINE: u32 = 2u32;
pub const STACK_FRAME_TYPE_RA: u32 = 128u32;
pub const STACK_FRAME_TYPE_STACK: u32 = 1u32;
pub const SYMBOL_TYPE_INDEX_NOT_FOUND: u32 = 2u32;
pub const SYMBOL_TYPE_INFO_NOT_FOUND: u32 = 3u32;
pub const ScriptDebugAsyncBreak: ScriptDebugEvent = ScriptDebugEvent(3i32);
pub const ScriptDebugBreak: ScriptDebugState = ScriptDebugState(3i32);
pub const ScriptDebugBreakpoint: ScriptDebugEvent = ScriptDebugEvent(0i32);
pub const ScriptDebugEventFilterAbort: ScriptDebugEventFilter = ScriptDebugEventFilter(3i32);
pub const ScriptDebugEventFilterEntry: ScriptDebugEventFilter = ScriptDebugEventFilter(0i32);
pub const ScriptDebugEventFilterException: ScriptDebugEventFilter = ScriptDebugEventFilter(1i32);
pub const ScriptDebugEventFilterUnhandledException: ScriptDebugEventFilter = ScriptDebugEventFilter(2i32);
pub const ScriptDebugException: ScriptDebugEvent = ScriptDebugEvent(2i32);
pub const ScriptDebugExecuting: ScriptDebugState = ScriptDebugState(2i32);
pub const ScriptDebugNoDebugger: ScriptDebugState = ScriptDebugState(0i32);
pub const ScriptDebugNotExecuting: ScriptDebugState = ScriptDebugState(1i32);
pub const ScriptDebugStep: ScriptDebugEvent = ScriptDebugEvent(1i32);
pub const ScriptExecutionNormal: ScriptExecutionKind = ScriptExecutionKind(0i32);
pub const ScriptExecutionStepIn: ScriptExecutionKind = ScriptExecutionKind(1i32);
pub const ScriptExecutionStepOut: ScriptExecutionKind = ScriptExecutionKind(2i32);
pub const ScriptExecutionStepOver: ScriptExecutionKind = ScriptExecutionKind(3i32);
pub const ScriptRename: ScriptChangeKind = ScriptChangeKind(0i32);
pub const Symbol: SymbolKind = SymbolKind(0i32);
pub const SymbolBaseClass: SymbolKind = SymbolKind(6i32);
pub const SymbolConstant: SymbolKind = SymbolKind(4i32);
pub const SymbolData: SymbolKind = SymbolKind(5i32);
pub const SymbolField: SymbolKind = SymbolKind(3i32);
pub const SymbolFunction: SymbolKind = SymbolKind(8i32);
pub const SymbolModule: SymbolKind = SymbolKind(1i32);
pub const SymbolPublic: SymbolKind = SymbolKind(7i32);
pub const SymbolSearchCaseInsensitive: SymbolSearchOptions = SymbolSearchOptions(2i32);
pub const SymbolSearchCompletion: SymbolSearchOptions = SymbolSearchOptions(1i32);
pub const SymbolSearchNone: SymbolSearchOptions = SymbolSearchOptions(0i32);
pub const SymbolType: SymbolKind = SymbolKind(2i32);
pub const TRIAGE_FOLLOWUP_DEFAULT: u32 = 2u32;
pub const TRIAGE_FOLLOWUP_FAIL: u32 = 0u32;
pub const TRIAGE_FOLLOWUP_IGNORE: u32 = 1u32;
pub const TRIAGE_FOLLOWUP_SUCCESS: u32 = 3u32;
pub const TypeArray: TypeKind = TypeKind(3i32);
pub const TypeEnum: TypeKind = TypeKind(6i32);
pub const TypeExtendedArray: TypeKind = TypeKind(8i32);
pub const TypeFunction: TypeKind = TypeKind(4i32);
pub const TypeIntrinsic: TypeKind = TypeKind(7i32);
pub const TypeMemberPointer: TypeKind = TypeKind(2i32);
pub const TypePointer: TypeKind = TypeKind(1i32);
pub const TypeTypedef: TypeKind = TypeKind(5i32);
pub const TypeUDT: TypeKind = TypeKind(0i32);
pub const UNAVAILABLE_ERROR: u32 = 12u32;
pub const Unrelated: SignatureComparison = SignatureComparison(0i32);
pub const VarArgsCStyle: VarArgsKind = VarArgsKind(1i32);
pub const VarArgsNone: VarArgsKind = VarArgsKind(0i32);
pub const WDBGEXTS_ADDRESS_DEFAULT: u32 = 0u32;
pub const WDBGEXTS_ADDRESS_RESERVED0: u32 = 2147483648u32;
pub const WDBGEXTS_ADDRESS_SEG16: u32 = 1u32;
pub const WDBGEXTS_ADDRESS_SEG32: u32 = 2u32;
pub const WIN_95: OS_TYPE = OS_TYPE(0i32);
pub const WIN_98: OS_TYPE = OS_TYPE(1i32);
pub const WIN_ME: OS_TYPE = OS_TYPE(2i32);
pub const WIN_NT4: OS_TYPE = OS_TYPE(3i32);
pub const WIN_NT5: OS_TYPE = OS_TYPE(4i32);
pub const WIN_NT5_1: OS_TYPE = OS_TYPE(5i32);
pub const WIN_NT5_2: OS_TYPE = OS_TYPE(6i32);
pub const WIN_NT6_0: OS_TYPE = OS_TYPE(7i32);
pub const WIN_NT6_1: OS_TYPE = OS_TYPE(8i32);
pub const WIN_UNDEFINED: OS_TYPE = OS_TYPE(255i32);
pub const _EXTSAPI_VER_: u32 = 10u32;
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct CallingConventionKind(pub i32);
impl ::core::marker::Copy for CallingConventionKind {}
impl ::core::clone::Clone for CallingConventionKind {
fn clone(&self) -> Self {
*self
}
}
impl ::core::default::Default for CallingConventionKind {
fn default() -> Self {
Self(0)
}
}
impl ::windows_core::TypeKind for CallingConventionKind {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::fmt::Debug for CallingConventionKind {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_tuple("CallingConventionKind").field(&self.0).finish()
}
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct DBGKD_MAJOR_TYPES(pub i32);
impl ::core::marker::Copy for DBGKD_MAJOR_TYPES {}
impl ::core::clone::Clone for DBGKD_MAJOR_TYPES {
fn clone(&self) -> Self {
*self
}
}
impl ::core::default::Default for DBGKD_MAJOR_TYPES {
fn default() -> Self {
Self(0)
}
}
impl ::windows_core::TypeKind for DBGKD_MAJOR_TYPES {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::fmt::Debug for DBGKD_MAJOR_TYPES {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_tuple("DBGKD_MAJOR_TYPES").field(&self.0).finish()
}
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct DEBUG_FAILURE_TYPE(pub i32);
impl ::core::marker::Copy for DEBUG_FAILURE_TYPE {}
impl ::core::clone::Clone for DEBUG_FAILURE_TYPE {
fn clone(&self) -> Self {
*self
}
}
impl ::core::default::Default for DEBUG_FAILURE_TYPE {
fn default() -> Self {
Self(0)
}
}
impl ::windows_core::TypeKind for DEBUG_FAILURE_TYPE {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::fmt::Debug for DEBUG_FAILURE_TYPE {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_tuple("DEBUG_FAILURE_TYPE").field(&self.0).finish()
}
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct DEBUG_FLR_PARAM_TYPE(pub i32);
impl ::core::marker::Copy for DEBUG_FLR_PARAM_TYPE {}
impl ::core::clone::Clone for DEBUG_FLR_PARAM_TYPE {
fn clone(&self) -> Self {
*self
}
}
impl ::core::default::Default for DEBUG_FLR_PARAM_TYPE {
fn default() -> Self {
Self(0)
}
}
impl ::windows_core::TypeKind for DEBUG_FLR_PARAM_TYPE {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::fmt::Debug for DEBUG_FLR_PARAM_TYPE {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_tuple("DEBUG_FLR_PARAM_TYPE").field(&self.0).finish()
}
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct DEBUG_POOL_REGION(pub i32);
impl ::core::marker::Copy for DEBUG_POOL_REGION {}
impl ::core::clone::Clone for DEBUG_POOL_REGION {
fn clone(&self) -> Self {
*self
}
}
impl ::core::default::Default for DEBUG_POOL_REGION {
fn default() -> Self {
Self(0)
}
}
impl ::windows_core::TypeKind for DEBUG_POOL_REGION {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::fmt::Debug for DEBUG_POOL_REGION {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_tuple("DEBUG_POOL_REGION").field(&self.0).finish()
}
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct EXT_TDOP(pub i32);
impl ::core::marker::Copy for EXT_TDOP {}
impl ::core::clone::Clone for EXT_TDOP {
fn clone(&self) -> Self {
*self
}
}
impl ::core::default::Default for EXT_TDOP {
fn default() -> Self {
Self(0)
}
}
impl ::windows_core::TypeKind for EXT_TDOP {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::fmt::Debug for EXT_TDOP {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_tuple("EXT_TDOP").field(&self.0).finish()
}
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct ErrorClass(pub i32);
impl ::core::marker::Copy for ErrorClass {}
impl ::core::clone::Clone for ErrorClass {
fn clone(&self) -> Self {
*self
}
}
impl ::core::default::Default for ErrorClass {
fn default() -> Self {
Self(0)
}
}
impl ::windows_core::TypeKind for ErrorClass {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::fmt::Debug for ErrorClass {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_tuple("ErrorClass").field(&self.0).finish()
}
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct FA_ENTRY_TYPE(pub i32);
impl ::core::marker::Copy for FA_ENTRY_TYPE {}
impl ::core::clone::Clone for FA_ENTRY_TYPE {
fn clone(&self) -> Self {
*self
}
}
impl ::core::default::Default for FA_ENTRY_TYPE {
fn default() -> Self {
Self(0)
}
}
impl ::windows_core::TypeKind for FA_ENTRY_TYPE {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::fmt::Debug for FA_ENTRY_TYPE {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_tuple("FA_ENTRY_TYPE").field(&self.0).finish()
}
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct FA_EXTENSION_PLUGIN_PHASE(pub i32);
impl ::core::marker::Copy for FA_EXTENSION_PLUGIN_PHASE {}
impl ::core::clone::Clone for FA_EXTENSION_PLUGIN_PHASE {
fn clone(&self) -> Self {
*self
}
}
impl ::core::default::Default for FA_EXTENSION_PLUGIN_PHASE {
fn default() -> Self {
Self(0)
}
}
impl ::windows_core::TypeKind for FA_EXTENSION_PLUGIN_PHASE {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::fmt::Debug for FA_EXTENSION_PLUGIN_PHASE {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_tuple("FA_EXTENSION_PLUGIN_PHASE").field(&self.0).finish()
}
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct IntrinsicKind(pub i32);
impl ::core::marker::Copy for IntrinsicKind {}
impl ::core::clone::Clone for IntrinsicKind {
fn clone(&self) -> Self {
*self
}
}
impl ::core::default::Default for IntrinsicKind {
fn default() -> Self {
Self(0)
}
}
impl ::windows_core::TypeKind for IntrinsicKind {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::fmt::Debug for IntrinsicKind {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_tuple("IntrinsicKind").field(&self.0).finish()
}
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct LanguageKind(pub i32);
impl ::core::marker::Copy for LanguageKind {}
impl ::core::clone::Clone for LanguageKind {
fn clone(&self) -> Self {
*self
}
}
impl ::core::default::Default for LanguageKind {
fn default() -> Self {
Self(0)
}
}
impl ::windows_core::TypeKind for LanguageKind {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::fmt::Debug for LanguageKind {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_tuple("LanguageKind").field(&self.0).finish()
}
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct LocationKind(pub i32);
impl ::core::marker::Copy for LocationKind {}
impl ::core::clone::Clone for LocationKind {
fn clone(&self) -> Self {
*self
}
}
impl ::core::default::Default for LocationKind {
fn default() -> Self {
Self(0)
}
}
impl ::windows_core::TypeKind for LocationKind {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::fmt::Debug for LocationKind {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_tuple("LocationKind").field(&self.0).finish()
}
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct ModelObjectKind(pub i32);
impl ::core::marker::Copy for ModelObjectKind {}
impl ::core::clone::Clone for ModelObjectKind {
fn clone(&self) -> Self {
*self
}
}
impl ::core::default::Default for ModelObjectKind {
fn default() -> Self {
Self(0)
}
}
impl ::windows_core::TypeKind for ModelObjectKind {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::fmt::Debug for ModelObjectKind {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_tuple("ModelObjectKind").field(&self.0).finish()
}
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct OS_TYPE(pub i32);
impl ::core::marker::Copy for OS_TYPE {}
impl ::core::clone::Clone for OS_TYPE {
fn clone(&self) -> Self {
*self
}
}
impl ::core::default::Default for OS_TYPE {
fn default() -> Self {
Self(0)
}
}
impl ::windows_core::TypeKind for OS_TYPE {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::fmt::Debug for OS_TYPE {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_tuple("OS_TYPE").field(&self.0).finish()
}
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct PointerKind(pub i32);
impl ::core::marker::Copy for PointerKind {}
impl ::core::clone::Clone for PointerKind {
fn clone(&self) -> Self {
*self
}
}
impl ::core::default::Default for PointerKind {
fn default() -> Self {
Self(0)
}
}
impl ::windows_core::TypeKind for PointerKind {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::fmt::Debug for PointerKind {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_tuple("PointerKind").field(&self.0).finish()
}
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct PreferredFormat(pub i32);
impl ::core::marker::Copy for PreferredFormat {}
impl ::core::clone::Clone for PreferredFormat {
fn clone(&self) -> Self {
*self
}
}
impl ::core::default::Default for PreferredFormat {
fn default() -> Self {
Self(0)
}
}
impl ::windows_core::TypeKind for PreferredFormat {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::fmt::Debug for PreferredFormat {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_tuple("PreferredFormat").field(&self.0).finish()
}
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct RawSearchFlags(pub i32);
impl ::core::marker::Copy for RawSearchFlags {}
impl ::core::clone::Clone for RawSearchFlags {
fn clone(&self) -> Self {
*self
}
}
impl ::core::default::Default for RawSearchFlags {
fn default() -> Self {
Self(0)
}
}
impl ::windows_core::TypeKind for RawSearchFlags {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::fmt::Debug for RawSearchFlags {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_tuple("RawSearchFlags").field(&self.0).finish()
}
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct ScriptChangeKind(pub i32);
impl ::core::marker::Copy for ScriptChangeKind {}
impl ::core::clone::Clone for ScriptChangeKind {
fn clone(&self) -> Self {
*self
}
}
impl ::core::default::Default for ScriptChangeKind {
fn default() -> Self {
Self(0)
}
}
impl ::windows_core::TypeKind for ScriptChangeKind {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::fmt::Debug for ScriptChangeKind {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_tuple("ScriptChangeKind").field(&self.0).finish()
}
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct ScriptDebugEvent(pub i32);
impl ::core::marker::Copy for ScriptDebugEvent {}
impl ::core::clone::Clone for ScriptDebugEvent {
fn clone(&self) -> Self {
*self
}
}
impl ::core::default::Default for ScriptDebugEvent {
fn default() -> Self {
Self(0)
}
}
impl ::windows_core::TypeKind for ScriptDebugEvent {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::fmt::Debug for ScriptDebugEvent {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_tuple("ScriptDebugEvent").field(&self.0).finish()
}
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct ScriptDebugEventFilter(pub i32);
impl ::core::marker::Copy for ScriptDebugEventFilter {}
impl ::core::clone::Clone for ScriptDebugEventFilter {
fn clone(&self) -> Self {
*self
}
}
impl ::core::default::Default for ScriptDebugEventFilter {
fn default() -> Self {
Self(0)
}
}
impl ::windows_core::TypeKind for ScriptDebugEventFilter {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::fmt::Debug for ScriptDebugEventFilter {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_tuple("ScriptDebugEventFilter").field(&self.0).finish()
}
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct ScriptDebugState(pub i32);
impl ::core::marker::Copy for ScriptDebugState {}
impl ::core::clone::Clone for ScriptDebugState {
fn clone(&self) -> Self {
*self
}
}
impl ::core::default::Default for ScriptDebugState {
fn default() -> Self {
Self(0)
}
}
impl ::windows_core::TypeKind for ScriptDebugState {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::fmt::Debug for ScriptDebugState {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_tuple("ScriptDebugState").field(&self.0).finish()
}
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct ScriptExecutionKind(pub i32);
impl ::core::marker::Copy for ScriptExecutionKind {}
impl ::core::clone::Clone for ScriptExecutionKind {
fn clone(&self) -> Self {
*self
}
}
impl ::core::default::Default for ScriptExecutionKind {
fn default() -> Self {
Self(0)
}
}
impl ::windows_core::TypeKind for ScriptExecutionKind {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::fmt::Debug for ScriptExecutionKind {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_tuple("ScriptExecutionKind").field(&self.0).finish()
}
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct SignatureComparison(pub i32);
impl ::core::marker::Copy for SignatureComparison {}
impl ::core::clone::Clone for SignatureComparison {
fn clone(&self) -> Self {
*self
}
}
impl ::core::default::Default for SignatureComparison {
fn default() -> Self {
Self(0)
}
}
impl ::windows_core::TypeKind for SignatureComparison {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::fmt::Debug for SignatureComparison {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_tuple("SignatureComparison").field(&self.0).finish()
}
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct SymbolKind(pub i32);
impl ::core::marker::Copy for SymbolKind {}
impl ::core::clone::Clone for SymbolKind {
fn clone(&self) -> Self {
*self
}
}
impl ::core::default::Default for SymbolKind {
fn default() -> Self {
Self(0)
}
}
impl ::windows_core::TypeKind for SymbolKind {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::fmt::Debug for SymbolKind {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_tuple("SymbolKind").field(&self.0).finish()
}
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct SymbolSearchOptions(pub i32);
impl ::core::marker::Copy for SymbolSearchOptions {}
impl ::core::clone::Clone for SymbolSearchOptions {
fn clone(&self) -> Self {
*self
}
}
impl ::core::default::Default for SymbolSearchOptions {
fn default() -> Self {
Self(0)
}
}
impl ::windows_core::TypeKind for SymbolSearchOptions {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::fmt::Debug for SymbolSearchOptions {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_tuple("SymbolSearchOptions").field(&self.0).finish()
}
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct TANALYZE_RETURN(pub i32);
impl ::core::marker::Copy for TANALYZE_RETURN {}
impl ::core::clone::Clone for TANALYZE_RETURN {
fn clone(&self) -> Self {
*self
}
}
impl ::core::default::Default for TANALYZE_RETURN {
fn default() -> Self {
Self(0)
}
}
impl ::windows_core::TypeKind for TANALYZE_RETURN {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::fmt::Debug for TANALYZE_RETURN {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_tuple("TANALYZE_RETURN").field(&self.0).finish()
}
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct TypeKind(pub i32);
impl ::core::marker::Copy for TypeKind {}
impl ::core::clone::Clone for TypeKind {
fn clone(&self) -> Self {
*self
}
}
impl ::core::default::Default for TypeKind {
fn default() -> Self {
Self(0)
}
}
impl ::windows_core::TypeKind for TypeKind {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::fmt::Debug for TypeKind {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_tuple("TypeKind").field(&self.0).finish()
}
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct VarArgsKind(pub i32);
impl ::core::marker::Copy for VarArgsKind {}
impl ::core::clone::Clone for VarArgsKind {
fn clone(&self) -> Self {
*self
}
}
impl ::core::default::Default for VarArgsKind {
fn default() -> Self {
Self(0)
}
}
impl ::windows_core::TypeKind for VarArgsKind {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::fmt::Debug for VarArgsKind {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_tuple("VarArgsKind").field(&self.0).finish()
}
}
#[repr(C)]
pub struct ArrayDimension {
pub LowerBound: i64,
pub Length: u64,
pub Stride: u64,
}
impl ::core::marker::Copy for ArrayDimension {}
impl ::core::clone::Clone for ArrayDimension {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for ArrayDimension {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("ArrayDimension").field("LowerBound", &self.LowerBound).field("Length", &self.Length).field("Stride", &self.Stride).finish()
}
}
impl ::windows_core::TypeKind for ArrayDimension {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for ArrayDimension {
fn eq(&self, other: &Self) -> bool {
self.LowerBound == other.LowerBound && self.Length == other.Length && self.Stride == other.Stride
}
}
impl ::core::cmp::Eq for ArrayDimension {}
impl ::core::default::Default for ArrayDimension {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct BUSDATA {
pub BusDataType: u32,
pub BusNumber: u32,
pub SlotNumber: u32,
pub Buffer: *mut ::core::ffi::c_void,
pub Offset: u32,
pub Length: u32,
}
impl ::core::marker::Copy for BUSDATA {}
impl ::core::clone::Clone for BUSDATA {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for BUSDATA {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("BUSDATA").field("BusDataType", &self.BusDataType).field("BusNumber", &self.BusNumber).field("SlotNumber", &self.SlotNumber).field("Buffer", &self.Buffer).field("Offset", &self.Offset).field("Length", &self.Length).finish()
}
}
impl ::windows_core::TypeKind for BUSDATA {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for BUSDATA {
fn eq(&self, other: &Self) -> bool {
self.BusDataType == other.BusDataType && self.BusNumber == other.BusNumber && self.SlotNumber == other.SlotNumber && self.Buffer == other.Buffer && self.Offset == other.Offset && self.Length == other.Length
}
}
impl ::core::cmp::Eq for BUSDATA {}
impl ::core::default::Default for BUSDATA {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct CKCL_DATA {
pub NextLogEvent: *mut ::core::ffi::c_void,
pub TAnalyzeString: ::windows_core::PSTR,
pub TAnalyzeReturnType: TANALYZE_RETURN,
}
impl ::core::marker::Copy for CKCL_DATA {}
impl ::core::clone::Clone for CKCL_DATA {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for CKCL_DATA {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("CKCL_DATA").field("NextLogEvent", &self.NextLogEvent).field("TAnalyzeString", &self.TAnalyzeString).field("TAnalyzeReturnType", &self.TAnalyzeReturnType).finish()
}
}
impl ::windows_core::TypeKind for CKCL_DATA {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for CKCL_DATA {
fn eq(&self, other: &Self) -> bool {
self.NextLogEvent == other.NextLogEvent && self.TAnalyzeString == other.TAnalyzeString && self.TAnalyzeReturnType == other.TAnalyzeReturnType
}
}
impl ::core::cmp::Eq for CKCL_DATA {}
impl ::core::default::Default for CKCL_DATA {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub struct CKCL_LISTHEAD {
pub LogEventListHead: *mut CKCL_DATA,
pub Heap: super::super::super::super::Foundation::HANDLE,
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::marker::Copy for CKCL_LISTHEAD {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::clone::Clone for CKCL_LISTHEAD {
fn clone(&self) -> Self {
*self
}
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::fmt::Debug for CKCL_LISTHEAD {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("CKCL_LISTHEAD").field("LogEventListHead", &self.LogEventListHead).field("Heap", &self.Heap).finish()
}
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::TypeKind for CKCL_LISTHEAD {
type TypeKind = ::windows_core::CopyType;
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::PartialEq for CKCL_LISTHEAD {
fn eq(&self, other: &Self) -> bool {
self.LogEventListHead == other.LogEventListHead && self.Heap == other.Heap
}
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::Eq for CKCL_LISTHEAD {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::default::Default for CKCL_LISTHEAD {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct CPU_INFO {
pub Type: u32,
pub NumCPUs: u32,
pub CurrentProc: u32,
pub ProcInfo: [DEBUG_PROCESSOR_IDENTIFICATION_ALL; 2048],
pub Mhz: u32,
}
impl ::core::marker::Copy for CPU_INFO {}
impl ::core::clone::Clone for CPU_INFO {
fn clone(&self) -> Self {
*self
}
}
impl ::windows_core::TypeKind for CPU_INFO {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::default::Default for CPU_INFO {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct CPU_INFO_v1 {
pub Type: u32,
pub NumCPUs: u32,
pub CurrentProc: u32,
pub ProcInfo: [DEBUG_PROCESSOR_IDENTIFICATION_ALL; 32],
pub Mhz: u32,
}
impl ::core::marker::Copy for CPU_INFO_v1 {}
impl ::core::clone::Clone for CPU_INFO_v1 {
fn clone(&self) -> Self {
*self
}
}
impl ::windows_core::TypeKind for CPU_INFO_v1 {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::default::Default for CPU_INFO_v1 {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct CPU_INFO_v2 {
pub Type: u32,
pub NumCPUs: u32,
pub CurrentProc: u32,
pub ProcInfo: [DEBUG_PROCESSOR_IDENTIFICATION_ALL; 1280],
pub Mhz: u32,
}
impl ::core::marker::Copy for CPU_INFO_v2 {}
impl ::core::clone::Clone for CPU_INFO_v2 {
fn clone(&self) -> Self {
*self
}
}
impl ::windows_core::TypeKind for CPU_INFO_v2 {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::default::Default for CPU_INFO_v2 {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
#[doc = "Required features: `\"Win32_System_Kernel\"`"]
#[cfg(feature = "Win32_System_Kernel")]
pub struct DBGKD_DEBUG_DATA_HEADER32 {
pub List: super::super::super::Kernel::LIST_ENTRY32,
pub OwnerTag: u32,
pub Size: u32,
}
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::marker::Copy for DBGKD_DEBUG_DATA_HEADER32 {}
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::clone::Clone for DBGKD_DEBUG_DATA_HEADER32 {
fn clone(&self) -> Self {
*self
}
}
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::fmt::Debug for DBGKD_DEBUG_DATA_HEADER32 {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("DBGKD_DEBUG_DATA_HEADER32").field("List", &self.List).field("OwnerTag", &self.OwnerTag).field("Size", &self.Size).finish()
}
}
#[cfg(feature = "Win32_System_Kernel")]
impl ::windows_core::TypeKind for DBGKD_DEBUG_DATA_HEADER32 {
type TypeKind = ::windows_core::CopyType;
}
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::cmp::PartialEq for DBGKD_DEBUG_DATA_HEADER32 {
fn eq(&self, other: &Self) -> bool {
self.List == other.List && self.OwnerTag == other.OwnerTag && self.Size == other.Size
}
}
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::cmp::Eq for DBGKD_DEBUG_DATA_HEADER32 {}
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::default::Default for DBGKD_DEBUG_DATA_HEADER32 {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
#[doc = "Required features: `\"Win32_System_Kernel\"`"]
#[cfg(feature = "Win32_System_Kernel")]
pub struct DBGKD_DEBUG_DATA_HEADER64 {
pub List: super::super::super::Kernel::LIST_ENTRY64,
pub OwnerTag: u32,
pub Size: u32,
}
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::marker::Copy for DBGKD_DEBUG_DATA_HEADER64 {}
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::clone::Clone for DBGKD_DEBUG_DATA_HEADER64 {
fn clone(&self) -> Self {
*self
}
}
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::fmt::Debug for DBGKD_DEBUG_DATA_HEADER64 {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("DBGKD_DEBUG_DATA_HEADER64").field("List", &self.List).field("OwnerTag", &self.OwnerTag).field("Size", &self.Size).finish()
}
}
#[cfg(feature = "Win32_System_Kernel")]
impl ::windows_core::TypeKind for DBGKD_DEBUG_DATA_HEADER64 {
type TypeKind = ::windows_core::CopyType;
}
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::cmp::PartialEq for DBGKD_DEBUG_DATA_HEADER64 {
fn eq(&self, other: &Self) -> bool {
self.List == other.List && self.OwnerTag == other.OwnerTag && self.Size == other.Size
}
}
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::cmp::Eq for DBGKD_DEBUG_DATA_HEADER64 {}
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::default::Default for DBGKD_DEBUG_DATA_HEADER64 {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct DBGKD_GET_VERSION32 {
pub MajorVersion: u16,
pub MinorVersion: u16,
pub ProtocolVersion: u16,
pub Flags: u16,
pub KernBase: u32,
pub PsLoadedModuleList: u32,
pub MachineType: u16,
pub ThCallbackStack: u16,
pub NextCallback: u16,
pub FramePointer: u16,
pub KiCallUserMode: u32,
pub KeUserCallbackDispatcher: u32,
pub BreakpointWithStatus: u32,
pub DebuggerDataList: u32,
}
impl ::core::marker::Copy for DBGKD_GET_VERSION32 {}
impl ::core::clone::Clone for DBGKD_GET_VERSION32 {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for DBGKD_GET_VERSION32 {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("DBGKD_GET_VERSION32")
.field("MajorVersion", &self.MajorVersion)
.field("MinorVersion", &self.MinorVersion)
.field("ProtocolVersion", &self.ProtocolVersion)
.field("Flags", &self.Flags)
.field("KernBase", &self.KernBase)
.field("PsLoadedModuleList", &self.PsLoadedModuleList)
.field("MachineType", &self.MachineType)
.field("ThCallbackStack", &self.ThCallbackStack)
.field("NextCallback", &self.NextCallback)
.field("FramePointer", &self.FramePointer)
.field("KiCallUserMode", &self.KiCallUserMode)
.field("KeUserCallbackDispatcher", &self.KeUserCallbackDispatcher)
.field("BreakpointWithStatus", &self.BreakpointWithStatus)
.field("DebuggerDataList", &self.DebuggerDataList)
.finish()
}
}
impl ::windows_core::TypeKind for DBGKD_GET_VERSION32 {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for DBGKD_GET_VERSION32 {
fn eq(&self, other: &Self) -> bool {
self.MajorVersion == other.MajorVersion && self.MinorVersion == other.MinorVersion && self.ProtocolVersion == other.ProtocolVersion && self.Flags == other.Flags && self.KernBase == other.KernBase && self.PsLoadedModuleList == other.PsLoadedModuleList && self.MachineType == other.MachineType && self.ThCallbackStack == other.ThCallbackStack && self.NextCallback == other.NextCallback && self.FramePointer == other.FramePointer && self.KiCallUserMode == other.KiCallUserMode && self.KeUserCallbackDispatcher == other.KeUserCallbackDispatcher && self.BreakpointWithStatus == other.BreakpointWithStatus && self.DebuggerDataList == other.DebuggerDataList
}
}
impl ::core::cmp::Eq for DBGKD_GET_VERSION32 {}
impl ::core::default::Default for DBGKD_GET_VERSION32 {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct DBGKD_GET_VERSION64 {
pub MajorVersion: u16,
pub MinorVersion: u16,
pub ProtocolVersion: u8,
pub KdSecondaryVersion: u8,
pub Flags: u16,
pub MachineType: u16,
pub MaxPacketType: u8,
pub MaxStateChange: u8,
pub MaxManipulate: u8,
pub Simulation: u8,
pub Unused: [u16; 1],
pub KernBase: u64,
pub PsLoadedModuleList: u64,
pub DebuggerDataList: u64,
}
impl ::core::marker::Copy for DBGKD_GET_VERSION64 {}
impl ::core::clone::Clone for DBGKD_GET_VERSION64 {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for DBGKD_GET_VERSION64 {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("DBGKD_GET_VERSION64")
.field("MajorVersion", &self.MajorVersion)
.field("MinorVersion", &self.MinorVersion)
.field("ProtocolVersion", &self.ProtocolVersion)
.field("KdSecondaryVersion", &self.KdSecondaryVersion)
.field("Flags", &self.Flags)
.field("MachineType", &self.MachineType)
.field("MaxPacketType", &self.MaxPacketType)
.field("MaxStateChange", &self.MaxStateChange)
.field("MaxManipulate", &self.MaxManipulate)
.field("Simulation", &self.Simulation)
.field("Unused", &self.Unused)
.field("KernBase", &self.KernBase)
.field("PsLoadedModuleList", &self.PsLoadedModuleList)
.field("DebuggerDataList", &self.DebuggerDataList)
.finish()
}
}
impl ::windows_core::TypeKind for DBGKD_GET_VERSION64 {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for DBGKD_GET_VERSION64 {
fn eq(&self, other: &Self) -> bool {
self.MajorVersion == other.MajorVersion && self.MinorVersion == other.MinorVersion && self.ProtocolVersion == other.ProtocolVersion && self.KdSecondaryVersion == other.KdSecondaryVersion && self.Flags == other.Flags && self.MachineType == other.MachineType && self.MaxPacketType == other.MaxPacketType && self.MaxStateChange == other.MaxStateChange && self.MaxManipulate == other.MaxManipulate && self.Simulation == other.Simulation && self.Unused == other.Unused && self.KernBase == other.KernBase && self.PsLoadedModuleList == other.PsLoadedModuleList && self.DebuggerDataList == other.DebuggerDataList
}
}
impl ::core::cmp::Eq for DBGKD_GET_VERSION64 {}
impl ::core::default::Default for DBGKD_GET_VERSION64 {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct DBG_THREAD_ATTRIBUTES {
pub ThreadIndex: u32,
pub ProcessID: u64,
pub ThreadID: u64,
pub AttributeBits: u64,
pub BoolBits: u32,
pub BlockedOnPID: u64,
pub BlockedOnTID: u64,
pub CritSecAddress: u64,
pub Timeout_msec: u32,
pub StringData: [u8; 100],
pub SymName: [u8; 100],
}
impl ::core::marker::Copy for DBG_THREAD_ATTRIBUTES {}
impl ::core::clone::Clone for DBG_THREAD_ATTRIBUTES {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for DBG_THREAD_ATTRIBUTES {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("DBG_THREAD_ATTRIBUTES").field("ThreadIndex", &self.ThreadIndex).field("ProcessID", &self.ProcessID).field("ThreadID", &self.ThreadID).field("AttributeBits", &self.AttributeBits).field("BoolBits", &self.BoolBits).field("BlockedOnPID", &self.BlockedOnPID).field("BlockedOnTID", &self.BlockedOnTID).field("CritSecAddress", &self.CritSecAddress).field("Timeout_msec", &self.Timeout_msec).field("StringData", &self.StringData).field("SymName", &self.SymName).finish()
}
}
impl ::windows_core::TypeKind for DBG_THREAD_ATTRIBUTES {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for DBG_THREAD_ATTRIBUTES {
fn eq(&self, other: &Self) -> bool {
self.ThreadIndex == other.ThreadIndex && self.ProcessID == other.ProcessID && self.ThreadID == other.ThreadID && self.AttributeBits == other.AttributeBits && self.BoolBits == other.BoolBits && self.BlockedOnPID == other.BlockedOnPID && self.BlockedOnTID == other.BlockedOnTID && self.CritSecAddress == other.CritSecAddress && self.Timeout_msec == other.Timeout_msec && self.StringData == other.StringData && self.SymName == other.SymName
}
}
impl ::core::cmp::Eq for DBG_THREAD_ATTRIBUTES {}
impl ::core::default::Default for DBG_THREAD_ATTRIBUTES {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct DEBUG_ANALYSIS_PROCESSOR_INFO {
pub SizeOfStruct: u32,
pub Model: u32,
pub Family: u32,
pub Stepping: u32,
pub Architecture: u32,
pub Revision: u32,
pub CurrentClockSpeed: u32,
pub CurrentVoltage: u32,
pub MaxClockSpeed: u32,
pub ProcessorType: u32,
pub DeviceID: [u8; 32],
pub Manufacturer: [u8; 64],
pub Name: [u8; 64],
pub Version: [u8; 64],
pub Description: [u8; 64],
}
impl ::core::marker::Copy for DEBUG_ANALYSIS_PROCESSOR_INFO {}
impl ::core::clone::Clone for DEBUG_ANALYSIS_PROCESSOR_INFO {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for DEBUG_ANALYSIS_PROCESSOR_INFO {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("DEBUG_ANALYSIS_PROCESSOR_INFO")
.field("SizeOfStruct", &self.SizeOfStruct)
.field("Model", &self.Model)
.field("Family", &self.Family)
.field("Stepping", &self.Stepping)
.field("Architecture", &self.Architecture)
.field("Revision", &self.Revision)
.field("CurrentClockSpeed", &self.CurrentClockSpeed)
.field("CurrentVoltage", &self.CurrentVoltage)
.field("MaxClockSpeed", &self.MaxClockSpeed)
.field("ProcessorType", &self.ProcessorType)
.field("DeviceID", &self.DeviceID)
.field("Manufacturer", &self.Manufacturer)
.field("Name", &self.Name)
.field("Version", &self.Version)
.field("Description", &self.Description)
.finish()
}
}
impl ::windows_core::TypeKind for DEBUG_ANALYSIS_PROCESSOR_INFO {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for DEBUG_ANALYSIS_PROCESSOR_INFO {
fn eq(&self, other: &Self) -> bool {
self.SizeOfStruct == other.SizeOfStruct && self.Model == other.Model && self.Family == other.Family && self.Stepping == other.Stepping && self.Architecture == other.Architecture && self.Revision == other.Revision && self.CurrentClockSpeed == other.CurrentClockSpeed && self.CurrentVoltage == other.CurrentVoltage && self.MaxClockSpeed == other.MaxClockSpeed && self.ProcessorType == other.ProcessorType && self.DeviceID == other.DeviceID && self.Manufacturer == other.Manufacturer && self.Name == other.Name && self.Version == other.Version && self.Description == other.Description
}
}
impl ::core::cmp::Eq for DEBUG_ANALYSIS_PROCESSOR_INFO {}
impl ::core::default::Default for DEBUG_ANALYSIS_PROCESSOR_INFO {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct DEBUG_BREAKPOINT_PARAMETERS {
pub Offset: u64,
pub Id: u32,
pub BreakType: u32,
pub ProcType: u32,
pub Flags: u32,
pub DataSize: u32,
pub DataAccessType: u32,
pub PassCount: u32,
pub CurrentPassCount: u32,
pub MatchThread: u32,
pub CommandSize: u32,
pub OffsetExpressionSize: u32,
}
impl ::core::marker::Copy for DEBUG_BREAKPOINT_PARAMETERS {}
impl ::core::clone::Clone for DEBUG_BREAKPOINT_PARAMETERS {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for DEBUG_BREAKPOINT_PARAMETERS {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("DEBUG_BREAKPOINT_PARAMETERS")
.field("Offset", &self.Offset)
.field("Id", &self.Id)
.field("BreakType", &self.BreakType)
.field("ProcType", &self.ProcType)
.field("Flags", &self.Flags)
.field("DataSize", &self.DataSize)
.field("DataAccessType", &self.DataAccessType)
.field("PassCount", &self.PassCount)
.field("CurrentPassCount", &self.CurrentPassCount)
.field("MatchThread", &self.MatchThread)
.field("CommandSize", &self.CommandSize)
.field("OffsetExpressionSize", &self.OffsetExpressionSize)
.finish()
}
}
impl ::windows_core::TypeKind for DEBUG_BREAKPOINT_PARAMETERS {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for DEBUG_BREAKPOINT_PARAMETERS {
fn eq(&self, other: &Self) -> bool {
self.Offset == other.Offset && self.Id == other.Id && self.BreakType == other.BreakType && self.ProcType == other.ProcType && self.Flags == other.Flags && self.DataSize == other.DataSize && self.DataAccessType == other.DataAccessType && self.PassCount == other.PassCount && self.CurrentPassCount == other.CurrentPassCount && self.MatchThread == other.MatchThread && self.CommandSize == other.CommandSize && self.OffsetExpressionSize == other.OffsetExpressionSize
}
}
impl ::core::cmp::Eq for DEBUG_BREAKPOINT_PARAMETERS {}
impl ::core::default::Default for DEBUG_BREAKPOINT_PARAMETERS {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct DEBUG_CACHED_SYMBOL_INFO {
pub ModBase: u64,
pub Arg1: u64,
pub Arg2: u64,
pub Id: u32,
pub Arg3: u32,
}
impl ::core::marker::Copy for DEBUG_CACHED_SYMBOL_INFO {}
impl ::core::clone::Clone for DEBUG_CACHED_SYMBOL_INFO {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for DEBUG_CACHED_SYMBOL_INFO {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("DEBUG_CACHED_SYMBOL_INFO").field("ModBase", &self.ModBase).field("Arg1", &self.Arg1).field("Arg2", &self.Arg2).field("Id", &self.Id).field("Arg3", &self.Arg3).finish()
}
}
impl ::windows_core::TypeKind for DEBUG_CACHED_SYMBOL_INFO {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for DEBUG_CACHED_SYMBOL_INFO {
fn eq(&self, other: &Self) -> bool {
self.ModBase == other.ModBase && self.Arg1 == other.Arg1 && self.Arg2 == other.Arg2 && self.Id == other.Id && self.Arg3 == other.Arg3
}
}
impl ::core::cmp::Eq for DEBUG_CACHED_SYMBOL_INFO {}
impl ::core::default::Default for DEBUG_CACHED_SYMBOL_INFO {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct DEBUG_CLIENT_CONTEXT {
pub cbSize: u32,
pub eClient: u32,
}
impl ::core::marker::Copy for DEBUG_CLIENT_CONTEXT {}
impl ::core::clone::Clone for DEBUG_CLIENT_CONTEXT {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for DEBUG_CLIENT_CONTEXT {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("DEBUG_CLIENT_CONTEXT").field("cbSize", &self.cbSize).field("eClient", &self.eClient).finish()
}
}
impl ::windows_core::TypeKind for DEBUG_CLIENT_CONTEXT {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for DEBUG_CLIENT_CONTEXT {
fn eq(&self, other: &Self) -> bool {
self.cbSize == other.cbSize && self.eClient == other.eClient
}
}
impl ::core::cmp::Eq for DEBUG_CLIENT_CONTEXT {}
impl ::core::default::Default for DEBUG_CLIENT_CONTEXT {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct DEBUG_CPU_MICROCODE_VERSION {
pub SizeOfStruct: u32,
pub CachedSignature: i64,
pub InitialSignature: i64,
pub ProcessorModel: u32,
pub ProcessorFamily: u32,
pub ProcessorStepping: u32,
pub ProcessorArchRev: u32,
}
impl ::core::marker::Copy for DEBUG_CPU_MICROCODE_VERSION {}
impl ::core::clone::Clone for DEBUG_CPU_MICROCODE_VERSION {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for DEBUG_CPU_MICROCODE_VERSION {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("DEBUG_CPU_MICROCODE_VERSION").field("SizeOfStruct", &self.SizeOfStruct).field("CachedSignature", &self.CachedSignature).field("InitialSignature", &self.InitialSignature).field("ProcessorModel", &self.ProcessorModel).field("ProcessorFamily", &self.ProcessorFamily).field("ProcessorStepping", &self.ProcessorStepping).field("ProcessorArchRev", &self.ProcessorArchRev).finish()
}
}
impl ::windows_core::TypeKind for DEBUG_CPU_MICROCODE_VERSION {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for DEBUG_CPU_MICROCODE_VERSION {
fn eq(&self, other: &Self) -> bool {
self.SizeOfStruct == other.SizeOfStruct && self.CachedSignature == other.CachedSignature && self.InitialSignature == other.InitialSignature && self.ProcessorModel == other.ProcessorModel && self.ProcessorFamily == other.ProcessorFamily && self.ProcessorStepping == other.ProcessorStepping && self.ProcessorArchRev == other.ProcessorArchRev
}
}
impl ::core::cmp::Eq for DEBUG_CPU_MICROCODE_VERSION {}
impl ::core::default::Default for DEBUG_CPU_MICROCODE_VERSION {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct DEBUG_CPU_SPEED_INFO {
pub SizeOfStruct: u32,
pub CurrentSpeed: u32,
pub RatedSpeed: u32,
pub NameString: [u16; 256],
}
impl ::core::marker::Copy for DEBUG_CPU_SPEED_INFO {}
impl ::core::clone::Clone for DEBUG_CPU_SPEED_INFO {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for DEBUG_CPU_SPEED_INFO {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("DEBUG_CPU_SPEED_INFO").field("SizeOfStruct", &self.SizeOfStruct).field("CurrentSpeed", &self.CurrentSpeed).field("RatedSpeed", &self.RatedSpeed).field("NameString", &self.NameString).finish()
}
}
impl ::windows_core::TypeKind for DEBUG_CPU_SPEED_INFO {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for DEBUG_CPU_SPEED_INFO {
fn eq(&self, other: &Self) -> bool {
self.SizeOfStruct == other.SizeOfStruct && self.CurrentSpeed == other.CurrentSpeed && self.RatedSpeed == other.RatedSpeed && self.NameString == other.NameString
}
}
impl ::core::cmp::Eq for DEBUG_CPU_SPEED_INFO {}
impl ::core::default::Default for DEBUG_CPU_SPEED_INFO {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct DEBUG_CREATE_PROCESS_OPTIONS {
pub CreateFlags: u32,
pub EngCreateFlags: u32,
pub VerifierFlags: u32,
pub Reserved: u32,
}
impl ::core::marker::Copy for DEBUG_CREATE_PROCESS_OPTIONS {}
impl ::core::clone::Clone for DEBUG_CREATE_PROCESS_OPTIONS {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for DEBUG_CREATE_PROCESS_OPTIONS {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("DEBUG_CREATE_PROCESS_OPTIONS").field("CreateFlags", &self.CreateFlags).field("EngCreateFlags", &self.EngCreateFlags).field("VerifierFlags", &self.VerifierFlags).field("Reserved", &self.Reserved).finish()
}
}
impl ::windows_core::TypeKind for DEBUG_CREATE_PROCESS_OPTIONS {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for DEBUG_CREATE_PROCESS_OPTIONS {
fn eq(&self, other: &Self) -> bool {
self.CreateFlags == other.CreateFlags && self.EngCreateFlags == other.EngCreateFlags && self.VerifierFlags == other.VerifierFlags && self.Reserved == other.Reserved
}
}
impl ::core::cmp::Eq for DEBUG_CREATE_PROCESS_OPTIONS {}
impl ::core::default::Default for DEBUG_CREATE_PROCESS_OPTIONS {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub struct DEBUG_DECODE_ERROR {
pub SizeOfStruct: u32,
pub Code: u32,
pub TreatAsStatus: super::super::super::super::Foundation::BOOL,
pub Source: [u8; 64],
pub Message: [u8; 260],
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::marker::Copy for DEBUG_DECODE_ERROR {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::clone::Clone for DEBUG_DECODE_ERROR {
fn clone(&self) -> Self {
*self
}
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::fmt::Debug for DEBUG_DECODE_ERROR {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("DEBUG_DECODE_ERROR").field("SizeOfStruct", &self.SizeOfStruct).field("Code", &self.Code).field("TreatAsStatus", &self.TreatAsStatus).field("Source", &self.Source).field("Message", &self.Message).finish()
}
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::TypeKind for DEBUG_DECODE_ERROR {
type TypeKind = ::windows_core::CopyType;
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::PartialEq for DEBUG_DECODE_ERROR {
fn eq(&self, other: &Self) -> bool {
self.SizeOfStruct == other.SizeOfStruct && self.Code == other.Code && self.TreatAsStatus == other.TreatAsStatus && self.Source == other.Source && self.Message == other.Message
}
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::Eq for DEBUG_DECODE_ERROR {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::default::Default for DEBUG_DECODE_ERROR {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub struct DEBUG_DEVICE_OBJECT_INFO {
pub SizeOfStruct: u32,
pub DevObjAddress: u64,
pub ReferenceCount: u32,
pub QBusy: super::super::super::super::Foundation::BOOL,
pub DriverObject: u64,
pub CurrentIrp: u64,
pub DevExtension: u64,
pub DevObjExtension: u64,
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::marker::Copy for DEBUG_DEVICE_OBJECT_INFO {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::clone::Clone for DEBUG_DEVICE_OBJECT_INFO {
fn clone(&self) -> Self {
*self
}
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::fmt::Debug for DEBUG_DEVICE_OBJECT_INFO {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("DEBUG_DEVICE_OBJECT_INFO").field("SizeOfStruct", &self.SizeOfStruct).field("DevObjAddress", &self.DevObjAddress).field("ReferenceCount", &self.ReferenceCount).field("QBusy", &self.QBusy).field("DriverObject", &self.DriverObject).field("CurrentIrp", &self.CurrentIrp).field("DevExtension", &self.DevExtension).field("DevObjExtension", &self.DevObjExtension).finish()
}
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::TypeKind for DEBUG_DEVICE_OBJECT_INFO {
type TypeKind = ::windows_core::CopyType;
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::PartialEq for DEBUG_DEVICE_OBJECT_INFO {
fn eq(&self, other: &Self) -> bool {
self.SizeOfStruct == other.SizeOfStruct && self.DevObjAddress == other.DevObjAddress && self.ReferenceCount == other.ReferenceCount && self.QBusy == other.QBusy && self.DriverObject == other.DriverObject && self.CurrentIrp == other.CurrentIrp && self.DevExtension == other.DevExtension && self.DevObjExtension == other.DevObjExtension
}
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::Eq for DEBUG_DEVICE_OBJECT_INFO {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::default::Default for DEBUG_DEVICE_OBJECT_INFO {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct DEBUG_DRIVER_OBJECT_INFO {
pub SizeOfStruct: u32,
pub DriverSize: u32,
pub DriverObjAddress: u64,
pub DriverStart: u64,
pub DriverExtension: u64,
pub DeviceObject: u64,
pub DriverName: DEBUG_DRIVER_OBJECT_INFO_0,
}
impl ::core::marker::Copy for DEBUG_DRIVER_OBJECT_INFO {}
impl ::core::clone::Clone for DEBUG_DRIVER_OBJECT_INFO {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for DEBUG_DRIVER_OBJECT_INFO {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("DEBUG_DRIVER_OBJECT_INFO").field("SizeOfStruct", &self.SizeOfStruct).field("DriverSize", &self.DriverSize).field("DriverObjAddress", &self.DriverObjAddress).field("DriverStart", &self.DriverStart).field("DriverExtension", &self.DriverExtension).field("DeviceObject", &self.DeviceObject).field("DriverName", &self.DriverName).finish()
}
}
impl ::windows_core::TypeKind for DEBUG_DRIVER_OBJECT_INFO {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for DEBUG_DRIVER_OBJECT_INFO {
fn eq(&self, other: &Self) -> bool {
self.SizeOfStruct == other.SizeOfStruct && self.DriverSize == other.DriverSize && self.DriverObjAddress == other.DriverObjAddress && self.DriverStart == other.DriverStart && self.DriverExtension == other.DriverExtension && self.DeviceObject == other.DeviceObject && self.DriverName == other.DriverName
}
}
impl ::core::cmp::Eq for DEBUG_DRIVER_OBJECT_INFO {}
impl ::core::default::Default for DEBUG_DRIVER_OBJECT_INFO {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct DEBUG_DRIVER_OBJECT_INFO_0 {
pub Length: u16,
pub MaximumLength: u16,
pub Buffer: u64,
}
impl ::core::marker::Copy for DEBUG_DRIVER_OBJECT_INFO_0 {}
impl ::core::clone::Clone for DEBUG_DRIVER_OBJECT_INFO_0 {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for DEBUG_DRIVER_OBJECT_INFO_0 {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("DEBUG_DRIVER_OBJECT_INFO_0").field("Length", &self.Length).field("MaximumLength", &self.MaximumLength).field("Buffer", &self.Buffer).finish()
}
}
impl ::windows_core::TypeKind for DEBUG_DRIVER_OBJECT_INFO_0 {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for DEBUG_DRIVER_OBJECT_INFO_0 {
fn eq(&self, other: &Self) -> bool {
self.Length == other.Length && self.MaximumLength == other.MaximumLength && self.Buffer == other.Buffer
}
}
impl ::core::cmp::Eq for DEBUG_DRIVER_OBJECT_INFO_0 {}
impl ::core::default::Default for DEBUG_DRIVER_OBJECT_INFO_0 {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct DEBUG_EVENT_CONTEXT {
pub Size: u32,
pub ProcessEngineId: u32,
pub ThreadEngineId: u32,
pub FrameEngineId: u32,
}
impl ::core::marker::Copy for DEBUG_EVENT_CONTEXT {}
impl ::core::clone::Clone for DEBUG_EVENT_CONTEXT {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for DEBUG_EVENT_CONTEXT {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("DEBUG_EVENT_CONTEXT").field("Size", &self.Size).field("ProcessEngineId", &self.ProcessEngineId).field("ThreadEngineId", &self.ThreadEngineId).field("FrameEngineId", &self.FrameEngineId).finish()
}
}
impl ::windows_core::TypeKind for DEBUG_EVENT_CONTEXT {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for DEBUG_EVENT_CONTEXT {
fn eq(&self, other: &Self) -> bool {
self.Size == other.Size && self.ProcessEngineId == other.ProcessEngineId && self.ThreadEngineId == other.ThreadEngineId && self.FrameEngineId == other.FrameEngineId
}
}
impl ::core::cmp::Eq for DEBUG_EVENT_CONTEXT {}
impl ::core::default::Default for DEBUG_EVENT_CONTEXT {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct DEBUG_EXCEPTION_FILTER_PARAMETERS {
pub ExecutionOption: u32,
pub ContinueOption: u32,
pub TextSize: u32,
pub CommandSize: u32,
pub SecondCommandSize: u32,
pub ExceptionCode: u32,
}
impl ::core::marker::Copy for DEBUG_EXCEPTION_FILTER_PARAMETERS {}
impl ::core::clone::Clone for DEBUG_EXCEPTION_FILTER_PARAMETERS {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for DEBUG_EXCEPTION_FILTER_PARAMETERS {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("DEBUG_EXCEPTION_FILTER_PARAMETERS").field("ExecutionOption", &self.ExecutionOption).field("ContinueOption", &self.ContinueOption).field("TextSize", &self.TextSize).field("CommandSize", &self.CommandSize).field("SecondCommandSize", &self.SecondCommandSize).field("ExceptionCode", &self.ExceptionCode).finish()
}
}
impl ::windows_core::TypeKind for DEBUG_EXCEPTION_FILTER_PARAMETERS {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for DEBUG_EXCEPTION_FILTER_PARAMETERS {
fn eq(&self, other: &Self) -> bool {
self.ExecutionOption == other.ExecutionOption && self.ContinueOption == other.ContinueOption && self.TextSize == other.TextSize && self.CommandSize == other.CommandSize && self.SecondCommandSize == other.SecondCommandSize && self.ExceptionCode == other.ExceptionCode
}
}
impl ::core::cmp::Eq for DEBUG_EXCEPTION_FILTER_PARAMETERS {}
impl ::core::default::Default for DEBUG_EXCEPTION_FILTER_PARAMETERS {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct DEBUG_GET_TEXT_COMPLETIONS_IN {
pub Flags: u32,
pub MatchCountLimit: u32,
pub Reserved: [u64; 3],
}
impl ::core::marker::Copy for DEBUG_GET_TEXT_COMPLETIONS_IN {}
impl ::core::clone::Clone for DEBUG_GET_TEXT_COMPLETIONS_IN {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for DEBUG_GET_TEXT_COMPLETIONS_IN {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("DEBUG_GET_TEXT_COMPLETIONS_IN").field("Flags", &self.Flags).field("MatchCountLimit", &self.MatchCountLimit).field("Reserved", &self.Reserved).finish()
}
}
impl ::windows_core::TypeKind for DEBUG_GET_TEXT_COMPLETIONS_IN {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for DEBUG_GET_TEXT_COMPLETIONS_IN {
fn eq(&self, other: &Self) -> bool {
self.Flags == other.Flags && self.MatchCountLimit == other.MatchCountLimit && self.Reserved == other.Reserved
}
}
impl ::core::cmp::Eq for DEBUG_GET_TEXT_COMPLETIONS_IN {}
impl ::core::default::Default for DEBUG_GET_TEXT_COMPLETIONS_IN {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct DEBUG_GET_TEXT_COMPLETIONS_OUT {
pub Flags: u32,
pub ReplaceIndex: u32,
pub MatchCount: u32,
pub Reserved1: u32,
pub Reserved2: [u64; 2],
}
impl ::core::marker::Copy for DEBUG_GET_TEXT_COMPLETIONS_OUT {}
impl ::core::clone::Clone for DEBUG_GET_TEXT_COMPLETIONS_OUT {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for DEBUG_GET_TEXT_COMPLETIONS_OUT {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("DEBUG_GET_TEXT_COMPLETIONS_OUT").field("Flags", &self.Flags).field("ReplaceIndex", &self.ReplaceIndex).field("MatchCount", &self.MatchCount).field("Reserved1", &self.Reserved1).field("Reserved2", &self.Reserved2).finish()
}
}
impl ::windows_core::TypeKind for DEBUG_GET_TEXT_COMPLETIONS_OUT {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for DEBUG_GET_TEXT_COMPLETIONS_OUT {
fn eq(&self, other: &Self) -> bool {
self.Flags == other.Flags && self.ReplaceIndex == other.ReplaceIndex && self.MatchCount == other.MatchCount && self.Reserved1 == other.Reserved1 && self.Reserved2 == other.Reserved2
}
}
impl ::core::cmp::Eq for DEBUG_GET_TEXT_COMPLETIONS_OUT {}
impl ::core::default::Default for DEBUG_GET_TEXT_COMPLETIONS_OUT {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct DEBUG_HANDLE_DATA_BASIC {
pub TypeNameSize: u32,
pub ObjectNameSize: u32,
pub Attributes: u32,
pub GrantedAccess: u32,
pub HandleCount: u32,
pub PointerCount: u32,
}
impl ::core::marker::Copy for DEBUG_HANDLE_DATA_BASIC {}
impl ::core::clone::Clone for DEBUG_HANDLE_DATA_BASIC {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for DEBUG_HANDLE_DATA_BASIC {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("DEBUG_HANDLE_DATA_BASIC").field("TypeNameSize", &self.TypeNameSize).field("ObjectNameSize", &self.ObjectNameSize).field("Attributes", &self.Attributes).field("GrantedAccess", &self.GrantedAccess).field("HandleCount", &self.HandleCount).field("PointerCount", &self.PointerCount).finish()
}
}
impl ::windows_core::TypeKind for DEBUG_HANDLE_DATA_BASIC {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for DEBUG_HANDLE_DATA_BASIC {
fn eq(&self, other: &Self) -> bool {
self.TypeNameSize == other.TypeNameSize && self.ObjectNameSize == other.ObjectNameSize && self.Attributes == other.Attributes && self.GrantedAccess == other.GrantedAccess && self.HandleCount == other.HandleCount && self.PointerCount == other.PointerCount
}
}
impl ::core::cmp::Eq for DEBUG_HANDLE_DATA_BASIC {}
impl ::core::default::Default for DEBUG_HANDLE_DATA_BASIC {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct DEBUG_IRP_INFO {
pub SizeOfStruct: u32,
pub IrpAddress: u64,
pub IoStatus: u32,
pub StackCount: u32,
pub CurrentLocation: u32,
pub MdlAddress: u64,
pub Thread: u64,
pub CancelRoutine: u64,
pub CurrentStack: DEBUG_IRP_STACK_INFO,
pub Stack: [DEBUG_IRP_STACK_INFO; 10],
}
impl ::core::marker::Copy for DEBUG_IRP_INFO {}
impl ::core::clone::Clone for DEBUG_IRP_INFO {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for DEBUG_IRP_INFO {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("DEBUG_IRP_INFO").field("SizeOfStruct", &self.SizeOfStruct).field("IrpAddress", &self.IrpAddress).field("IoStatus", &self.IoStatus).field("StackCount", &self.StackCount).field("CurrentLocation", &self.CurrentLocation).field("MdlAddress", &self.MdlAddress).field("Thread", &self.Thread).field("CancelRoutine", &self.CancelRoutine).field("CurrentStack", &self.CurrentStack).field("Stack", &self.Stack).finish()
}
}
impl ::windows_core::TypeKind for DEBUG_IRP_INFO {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for DEBUG_IRP_INFO {
fn eq(&self, other: &Self) -> bool {
self.SizeOfStruct == other.SizeOfStruct && self.IrpAddress == other.IrpAddress && self.IoStatus == other.IoStatus && self.StackCount == other.StackCount && self.CurrentLocation == other.CurrentLocation && self.MdlAddress == other.MdlAddress && self.Thread == other.Thread && self.CancelRoutine == other.CancelRoutine && self.CurrentStack == other.CurrentStack && self.Stack == other.Stack
}
}
impl ::core::cmp::Eq for DEBUG_IRP_INFO {}
impl ::core::default::Default for DEBUG_IRP_INFO {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct DEBUG_IRP_STACK_INFO {
pub Major: u8,
pub Minor: u8,
pub DeviceObject: u64,
pub FileObject: u64,
pub CompletionRoutine: u64,
pub StackAddress: u64,
}
impl ::core::marker::Copy for DEBUG_IRP_STACK_INFO {}
impl ::core::clone::Clone for DEBUG_IRP_STACK_INFO {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for DEBUG_IRP_STACK_INFO {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("DEBUG_IRP_STACK_INFO").field("Major", &self.Major).field("Minor", &self.Minor).field("DeviceObject", &self.DeviceObject).field("FileObject", &self.FileObject).field("CompletionRoutine", &self.CompletionRoutine).field("StackAddress", &self.StackAddress).finish()
}
}
impl ::windows_core::TypeKind for DEBUG_IRP_STACK_INFO {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for DEBUG_IRP_STACK_INFO {
fn eq(&self, other: &Self) -> bool {
self.Major == other.Major && self.Minor == other.Minor && self.DeviceObject == other.DeviceObject && self.FileObject == other.FileObject && self.CompletionRoutine == other.CompletionRoutine && self.StackAddress == other.StackAddress
}
}
impl ::core::cmp::Eq for DEBUG_IRP_STACK_INFO {}
impl ::core::default::Default for DEBUG_IRP_STACK_INFO {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct DEBUG_LAST_EVENT_INFO_BREAKPOINT {
pub Id: u32,
}
impl ::core::marker::Copy for DEBUG_LAST_EVENT_INFO_BREAKPOINT {}
impl ::core::clone::Clone for DEBUG_LAST_EVENT_INFO_BREAKPOINT {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for DEBUG_LAST_EVENT_INFO_BREAKPOINT {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("DEBUG_LAST_EVENT_INFO_BREAKPOINT").field("Id", &self.Id).finish()
}
}
impl ::windows_core::TypeKind for DEBUG_LAST_EVENT_INFO_BREAKPOINT {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for DEBUG_LAST_EVENT_INFO_BREAKPOINT {
fn eq(&self, other: &Self) -> bool {
self.Id == other.Id
}
}
impl ::core::cmp::Eq for DEBUG_LAST_EVENT_INFO_BREAKPOINT {}
impl ::core::default::Default for DEBUG_LAST_EVENT_INFO_BREAKPOINT {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub struct DEBUG_LAST_EVENT_INFO_EXCEPTION {
pub ExceptionRecord: super::EXCEPTION_RECORD64,
pub FirstChance: u32,
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::marker::Copy for DEBUG_LAST_EVENT_INFO_EXCEPTION {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::clone::Clone for DEBUG_LAST_EVENT_INFO_EXCEPTION {
fn clone(&self) -> Self {
*self
}
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::fmt::Debug for DEBUG_LAST_EVENT_INFO_EXCEPTION {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("DEBUG_LAST_EVENT_INFO_EXCEPTION").field("ExceptionRecord", &self.ExceptionRecord).field("FirstChance", &self.FirstChance).finish()
}
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::TypeKind for DEBUG_LAST_EVENT_INFO_EXCEPTION {
type TypeKind = ::windows_core::CopyType;
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::PartialEq for DEBUG_LAST_EVENT_INFO_EXCEPTION {
fn eq(&self, other: &Self) -> bool {
self.ExceptionRecord == other.ExceptionRecord && self.FirstChance == other.FirstChance
}
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::Eq for DEBUG_LAST_EVENT_INFO_EXCEPTION {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::default::Default for DEBUG_LAST_EVENT_INFO_EXCEPTION {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct DEBUG_LAST_EVENT_INFO_EXIT_PROCESS {
pub ExitCode: u32,
}
impl ::core::marker::Copy for DEBUG_LAST_EVENT_INFO_EXIT_PROCESS {}
impl ::core::clone::Clone for DEBUG_LAST_EVENT_INFO_EXIT_PROCESS {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for DEBUG_LAST_EVENT_INFO_EXIT_PROCESS {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("DEBUG_LAST_EVENT_INFO_EXIT_PROCESS").field("ExitCode", &self.ExitCode).finish()
}
}
impl ::windows_core::TypeKind for DEBUG_LAST_EVENT_INFO_EXIT_PROCESS {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for DEBUG_LAST_EVENT_INFO_EXIT_PROCESS {
fn eq(&self, other: &Self) -> bool {
self.ExitCode == other.ExitCode
}
}
impl ::core::cmp::Eq for DEBUG_LAST_EVENT_INFO_EXIT_PROCESS {}
impl ::core::default::Default for DEBUG_LAST_EVENT_INFO_EXIT_PROCESS {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct DEBUG_LAST_EVENT_INFO_EXIT_THREAD {
pub ExitCode: u32,
}
impl ::core::marker::Copy for DEBUG_LAST_EVENT_INFO_EXIT_THREAD {}
impl ::core::clone::Clone for DEBUG_LAST_EVENT_INFO_EXIT_THREAD {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for DEBUG_LAST_EVENT_INFO_EXIT_THREAD {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("DEBUG_LAST_EVENT_INFO_EXIT_THREAD").field("ExitCode", &self.ExitCode).finish()
}
}
impl ::windows_core::TypeKind for DEBUG_LAST_EVENT_INFO_EXIT_THREAD {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for DEBUG_LAST_EVENT_INFO_EXIT_THREAD {
fn eq(&self, other: &Self) -> bool {
self.ExitCode == other.ExitCode
}
}
impl ::core::cmp::Eq for DEBUG_LAST_EVENT_INFO_EXIT_THREAD {}
impl ::core::default::Default for DEBUG_LAST_EVENT_INFO_EXIT_THREAD {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct DEBUG_LAST_EVENT_INFO_LOAD_MODULE {
pub Base: u64,
}
impl ::core::marker::Copy for DEBUG_LAST_EVENT_INFO_LOAD_MODULE {}
impl ::core::clone::Clone for DEBUG_LAST_EVENT_INFO_LOAD_MODULE {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for DEBUG_LAST_EVENT_INFO_LOAD_MODULE {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("DEBUG_LAST_EVENT_INFO_LOAD_MODULE").field("Base", &self.Base).finish()
}
}
impl ::windows_core::TypeKind for DEBUG_LAST_EVENT_INFO_LOAD_MODULE {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for DEBUG_LAST_EVENT_INFO_LOAD_MODULE {
fn eq(&self, other: &Self) -> bool {
self.Base == other.Base
}
}
impl ::core::cmp::Eq for DEBUG_LAST_EVENT_INFO_LOAD_MODULE {}
impl ::core::default::Default for DEBUG_LAST_EVENT_INFO_LOAD_MODULE {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct DEBUG_LAST_EVENT_INFO_SERVICE_EXCEPTION {
pub Kind: u32,
pub DataSize: u32,
pub Address: u64,
}
impl ::core::marker::Copy for DEBUG_LAST_EVENT_INFO_SERVICE_EXCEPTION {}
impl ::core::clone::Clone for DEBUG_LAST_EVENT_INFO_SERVICE_EXCEPTION {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for DEBUG_LAST_EVENT_INFO_SERVICE_EXCEPTION {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("DEBUG_LAST_EVENT_INFO_SERVICE_EXCEPTION").field("Kind", &self.Kind).field("DataSize", &self.DataSize).field("Address", &self.Address).finish()
}
}
impl ::windows_core::TypeKind for DEBUG_LAST_EVENT_INFO_SERVICE_EXCEPTION {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for DEBUG_LAST_EVENT_INFO_SERVICE_EXCEPTION {
fn eq(&self, other: &Self) -> bool {
self.Kind == other.Kind && self.DataSize == other.DataSize && self.Address == other.Address
}
}
impl ::core::cmp::Eq for DEBUG_LAST_EVENT_INFO_SERVICE_EXCEPTION {}
impl ::core::default::Default for DEBUG_LAST_EVENT_INFO_SERVICE_EXCEPTION {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct DEBUG_LAST_EVENT_INFO_SYSTEM_ERROR {
pub Error: u32,
pub Level: u32,
}
impl ::core::marker::Copy for DEBUG_LAST_EVENT_INFO_SYSTEM_ERROR {}
impl ::core::clone::Clone for DEBUG_LAST_EVENT_INFO_SYSTEM_ERROR {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for DEBUG_LAST_EVENT_INFO_SYSTEM_ERROR {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("DEBUG_LAST_EVENT_INFO_SYSTEM_ERROR").field("Error", &self.Error).field("Level", &self.Level).finish()
}
}
impl ::windows_core::TypeKind for DEBUG_LAST_EVENT_INFO_SYSTEM_ERROR {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for DEBUG_LAST_EVENT_INFO_SYSTEM_ERROR {
fn eq(&self, other: &Self) -> bool {
self.Error == other.Error && self.Level == other.Level
}
}
impl ::core::cmp::Eq for DEBUG_LAST_EVENT_INFO_SYSTEM_ERROR {}
impl ::core::default::Default for DEBUG_LAST_EVENT_INFO_SYSTEM_ERROR {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct DEBUG_LAST_EVENT_INFO_UNLOAD_MODULE {
pub Base: u64,
}
impl ::core::marker::Copy for DEBUG_LAST_EVENT_INFO_UNLOAD_MODULE {}
impl ::core::clone::Clone for DEBUG_LAST_EVENT_INFO_UNLOAD_MODULE {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for DEBUG_LAST_EVENT_INFO_UNLOAD_MODULE {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("DEBUG_LAST_EVENT_INFO_UNLOAD_MODULE").field("Base", &self.Base).finish()
}
}
impl ::windows_core::TypeKind for DEBUG_LAST_EVENT_INFO_UNLOAD_MODULE {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for DEBUG_LAST_EVENT_INFO_UNLOAD_MODULE {
fn eq(&self, other: &Self) -> bool {
self.Base == other.Base
}
}
impl ::core::cmp::Eq for DEBUG_LAST_EVENT_INFO_UNLOAD_MODULE {}
impl ::core::default::Default for DEBUG_LAST_EVENT_INFO_UNLOAD_MODULE {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct DEBUG_MODULE_AND_ID {
pub ModuleBase: u64,
pub Id: u64,
}
impl ::core::marker::Copy for DEBUG_MODULE_AND_ID {}
impl ::core::clone::Clone for DEBUG_MODULE_AND_ID {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for DEBUG_MODULE_AND_ID {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("DEBUG_MODULE_AND_ID").field("ModuleBase", &self.ModuleBase).field("Id", &self.Id).finish()
}
}
impl ::windows_core::TypeKind for DEBUG_MODULE_AND_ID {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for DEBUG_MODULE_AND_ID {
fn eq(&self, other: &Self) -> bool {
self.ModuleBase == other.ModuleBase && self.Id == other.Id
}
}
impl ::core::cmp::Eq for DEBUG_MODULE_AND_ID {}
impl ::core::default::Default for DEBUG_MODULE_AND_ID {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct DEBUG_MODULE_PARAMETERS {
pub Base: u64,
pub Size: u32,
pub TimeDateStamp: u32,
pub Checksum: u32,
pub Flags: u32,
pub SymbolType: u32,
pub ImageNameSize: u32,
pub ModuleNameSize: u32,
pub LoadedImageNameSize: u32,
pub SymbolFileNameSize: u32,
pub MappedImageNameSize: u32,
pub Reserved: [u64; 2],
}
impl ::core::marker::Copy for DEBUG_MODULE_PARAMETERS {}
impl ::core::clone::Clone for DEBUG_MODULE_PARAMETERS {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for DEBUG_MODULE_PARAMETERS {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("DEBUG_MODULE_PARAMETERS")
.field("Base", &self.Base)
.field("Size", &self.Size)
.field("TimeDateStamp", &self.TimeDateStamp)
.field("Checksum", &self.Checksum)
.field("Flags", &self.Flags)
.field("SymbolType", &self.SymbolType)
.field("ImageNameSize", &self.ImageNameSize)
.field("ModuleNameSize", &self.ModuleNameSize)
.field("LoadedImageNameSize", &self.LoadedImageNameSize)
.field("SymbolFileNameSize", &self.SymbolFileNameSize)
.field("MappedImageNameSize", &self.MappedImageNameSize)
.field("Reserved", &self.Reserved)
.finish()
}
}
impl ::windows_core::TypeKind for DEBUG_MODULE_PARAMETERS {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for DEBUG_MODULE_PARAMETERS {
fn eq(&self, other: &Self) -> bool {
self.Base == other.Base && self.Size == other.Size && self.TimeDateStamp == other.TimeDateStamp && self.Checksum == other.Checksum && self.Flags == other.Flags && self.SymbolType == other.SymbolType && self.ImageNameSize == other.ImageNameSize && self.ModuleNameSize == other.ModuleNameSize && self.LoadedImageNameSize == other.LoadedImageNameSize && self.SymbolFileNameSize == other.SymbolFileNameSize && self.MappedImageNameSize == other.MappedImageNameSize && self.Reserved == other.Reserved
}
}
impl ::core::cmp::Eq for DEBUG_MODULE_PARAMETERS {}
impl ::core::default::Default for DEBUG_MODULE_PARAMETERS {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct DEBUG_OFFSET_REGION {
pub Base: u64,
pub Size: u64,
}
impl ::core::marker::Copy for DEBUG_OFFSET_REGION {}
impl ::core::clone::Clone for DEBUG_OFFSET_REGION {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for DEBUG_OFFSET_REGION {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("DEBUG_OFFSET_REGION").field("Base", &self.Base).field("Size", &self.Size).finish()
}
}
impl ::windows_core::TypeKind for DEBUG_OFFSET_REGION {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for DEBUG_OFFSET_REGION {
fn eq(&self, other: &Self) -> bool {
self.Base == other.Base && self.Size == other.Size
}
}
impl ::core::cmp::Eq for DEBUG_OFFSET_REGION {}
impl ::core::default::Default for DEBUG_OFFSET_REGION {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct DEBUG_PNP_TRIAGE_INFO {
pub SizeOfStruct: u32,
pub Lock_Address: u64,
pub Lock_ActiveCount: i32,
pub Lock_ContentionCount: u32,
pub Lock_NumberOfExclusiveWaiters: u32,
pub Lock_NumberOfSharedWaiters: u32,
pub Lock_Flag: u16,
pub TriagedThread: u64,
pub ThreadCount: i32,
pub TriagedThread_WaitTime: u64,
}
impl ::core::marker::Copy for DEBUG_PNP_TRIAGE_INFO {}
impl ::core::clone::Clone for DEBUG_PNP_TRIAGE_INFO {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for DEBUG_PNP_TRIAGE_INFO {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("DEBUG_PNP_TRIAGE_INFO")
.field("SizeOfStruct", &self.SizeOfStruct)
.field("Lock_Address", &self.Lock_Address)
.field("Lock_ActiveCount", &self.Lock_ActiveCount)
.field("Lock_ContentionCount", &self.Lock_ContentionCount)
.field("Lock_NumberOfExclusiveWaiters", &self.Lock_NumberOfExclusiveWaiters)
.field("Lock_NumberOfSharedWaiters", &self.Lock_NumberOfSharedWaiters)
.field("Lock_Flag", &self.Lock_Flag)
.field("TriagedThread", &self.TriagedThread)
.field("ThreadCount", &self.ThreadCount)
.field("TriagedThread_WaitTime", &self.TriagedThread_WaitTime)
.finish()
}
}
impl ::windows_core::TypeKind for DEBUG_PNP_TRIAGE_INFO {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for DEBUG_PNP_TRIAGE_INFO {
fn eq(&self, other: &Self) -> bool {
self.SizeOfStruct == other.SizeOfStruct && self.Lock_Address == other.Lock_Address && self.Lock_ActiveCount == other.Lock_ActiveCount && self.Lock_ContentionCount == other.Lock_ContentionCount && self.Lock_NumberOfExclusiveWaiters == other.Lock_NumberOfExclusiveWaiters && self.Lock_NumberOfSharedWaiters == other.Lock_NumberOfSharedWaiters && self.Lock_Flag == other.Lock_Flag && self.TriagedThread == other.TriagedThread && self.ThreadCount == other.ThreadCount && self.TriagedThread_WaitTime == other.TriagedThread_WaitTime
}
}
impl ::core::cmp::Eq for DEBUG_PNP_TRIAGE_INFO {}
impl ::core::default::Default for DEBUG_PNP_TRIAGE_INFO {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct DEBUG_POOLTAG_DESCRIPTION {
pub SizeOfStruct: u32,
pub PoolTag: u32,
pub Description: [u8; 260],
pub Binary: [u8; 32],
pub Owner: [u8; 32],
}
impl ::core::marker::Copy for DEBUG_POOLTAG_DESCRIPTION {}
impl ::core::clone::Clone for DEBUG_POOLTAG_DESCRIPTION {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for DEBUG_POOLTAG_DESCRIPTION {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("DEBUG_POOLTAG_DESCRIPTION").field("SizeOfStruct", &self.SizeOfStruct).field("PoolTag", &self.PoolTag).field("Description", &self.Description).field("Binary", &self.Binary).field("Owner", &self.Owner).finish()
}
}
impl ::windows_core::TypeKind for DEBUG_POOLTAG_DESCRIPTION {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for DEBUG_POOLTAG_DESCRIPTION {
fn eq(&self, other: &Self) -> bool {
self.SizeOfStruct == other.SizeOfStruct && self.PoolTag == other.PoolTag && self.Description == other.Description && self.Binary == other.Binary && self.Owner == other.Owner
}
}
impl ::core::cmp::Eq for DEBUG_POOLTAG_DESCRIPTION {}
impl ::core::default::Default for DEBUG_POOLTAG_DESCRIPTION {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct DEBUG_POOL_DATA {
pub SizeofStruct: u32,
pub PoolBlock: u64,
pub Pool: u64,
pub PreviousSize: u32,
pub Size: u32,
pub PoolTag: u32,
pub ProcessBilled: u64,
pub Anonymous: DEBUG_POOL_DATA_0,
pub Reserved2: [u64; 4],
pub PoolTagDescription: [u8; 64],
}
impl ::core::marker::Copy for DEBUG_POOL_DATA {}
impl ::core::clone::Clone for DEBUG_POOL_DATA {
fn clone(&self) -> Self {
*self
}
}
impl ::windows_core::TypeKind for DEBUG_POOL_DATA {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::default::Default for DEBUG_POOL_DATA {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub union DEBUG_POOL_DATA_0 {
pub Anonymous: DEBUG_POOL_DATA_0_0,
pub AsUlong: u32,
}
impl ::core::marker::Copy for DEBUG_POOL_DATA_0 {}
impl ::core::clone::Clone for DEBUG_POOL_DATA_0 {
fn clone(&self) -> Self {
*self
}
}
impl ::windows_core::TypeKind for DEBUG_POOL_DATA_0 {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::default::Default for DEBUG_POOL_DATA_0 {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct DEBUG_POOL_DATA_0_0 {
pub _bitfield: u32,
}
impl ::core::marker::Copy for DEBUG_POOL_DATA_0_0 {}
impl ::core::clone::Clone for DEBUG_POOL_DATA_0_0 {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for DEBUG_POOL_DATA_0_0 {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("DEBUG_POOL_DATA_0_0").field("_bitfield", &self._bitfield).finish()
}
}
impl ::windows_core::TypeKind for DEBUG_POOL_DATA_0_0 {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for DEBUG_POOL_DATA_0_0 {
fn eq(&self, other: &Self) -> bool {
self._bitfield == other._bitfield
}
}
impl ::core::cmp::Eq for DEBUG_POOL_DATA_0_0 {}
impl ::core::default::Default for DEBUG_POOL_DATA_0_0 {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub union DEBUG_PROCESSOR_IDENTIFICATION_ALL {
pub Alpha: DEBUG_PROCESSOR_IDENTIFICATION_ALPHA,
pub Amd64: DEBUG_PROCESSOR_IDENTIFICATION_AMD64,
pub Ia64: DEBUG_PROCESSOR_IDENTIFICATION_IA64,
pub X86: DEBUG_PROCESSOR_IDENTIFICATION_X86,
pub Arm: DEBUG_PROCESSOR_IDENTIFICATION_ARM,
pub Arm64: DEBUG_PROCESSOR_IDENTIFICATION_ARM64,
}
impl ::core::marker::Copy for DEBUG_PROCESSOR_IDENTIFICATION_ALL {}
impl ::core::clone::Clone for DEBUG_PROCESSOR_IDENTIFICATION_ALL {
fn clone(&self) -> Self {
*self
}
}
impl ::windows_core::TypeKind for DEBUG_PROCESSOR_IDENTIFICATION_ALL {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::default::Default for DEBUG_PROCESSOR_IDENTIFICATION_ALL {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct DEBUG_PROCESSOR_IDENTIFICATION_ALPHA {
pub Type: u32,
pub Revision: u32,
}
impl ::core::marker::Copy for DEBUG_PROCESSOR_IDENTIFICATION_ALPHA {}
impl ::core::clone::Clone for DEBUG_PROCESSOR_IDENTIFICATION_ALPHA {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for DEBUG_PROCESSOR_IDENTIFICATION_ALPHA {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("DEBUG_PROCESSOR_IDENTIFICATION_ALPHA").field("Type", &self.Type).field("Revision", &self.Revision).finish()
}
}
impl ::windows_core::TypeKind for DEBUG_PROCESSOR_IDENTIFICATION_ALPHA {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for DEBUG_PROCESSOR_IDENTIFICATION_ALPHA {
fn eq(&self, other: &Self) -> bool {
self.Type == other.Type && self.Revision == other.Revision
}
}
impl ::core::cmp::Eq for DEBUG_PROCESSOR_IDENTIFICATION_ALPHA {}
impl ::core::default::Default for DEBUG_PROCESSOR_IDENTIFICATION_ALPHA {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct DEBUG_PROCESSOR_IDENTIFICATION_AMD64 {
pub Family: u32,
pub Model: u32,
pub Stepping: u32,
pub VendorString: [u8; 16],
}
impl ::core::marker::Copy for DEBUG_PROCESSOR_IDENTIFICATION_AMD64 {}
impl ::core::clone::Clone for DEBUG_PROCESSOR_IDENTIFICATION_AMD64 {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for DEBUG_PROCESSOR_IDENTIFICATION_AMD64 {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("DEBUG_PROCESSOR_IDENTIFICATION_AMD64").field("Family", &self.Family).field("Model", &self.Model).field("Stepping", &self.Stepping).field("VendorString", &self.VendorString).finish()
}
}
impl ::windows_core::TypeKind for DEBUG_PROCESSOR_IDENTIFICATION_AMD64 {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for DEBUG_PROCESSOR_IDENTIFICATION_AMD64 {
fn eq(&self, other: &Self) -> bool {
self.Family == other.Family && self.Model == other.Model && self.Stepping == other.Stepping && self.VendorString == other.VendorString
}
}
impl ::core::cmp::Eq for DEBUG_PROCESSOR_IDENTIFICATION_AMD64 {}
impl ::core::default::Default for DEBUG_PROCESSOR_IDENTIFICATION_AMD64 {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct DEBUG_PROCESSOR_IDENTIFICATION_ARM {
pub Model: u32,
pub Revision: u32,
pub VendorString: [u8; 16],
}
impl ::core::marker::Copy for DEBUG_PROCESSOR_IDENTIFICATION_ARM {}
impl ::core::clone::Clone for DEBUG_PROCESSOR_IDENTIFICATION_ARM {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for DEBUG_PROCESSOR_IDENTIFICATION_ARM {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("DEBUG_PROCESSOR_IDENTIFICATION_ARM").field("Model", &self.Model).field("Revision", &self.Revision).field("VendorString", &self.VendorString).finish()
}
}
impl ::windows_core::TypeKind for DEBUG_PROCESSOR_IDENTIFICATION_ARM {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for DEBUG_PROCESSOR_IDENTIFICATION_ARM {
fn eq(&self, other: &Self) -> bool {
self.Model == other.Model && self.Revision == other.Revision && self.VendorString == other.VendorString
}
}
impl ::core::cmp::Eq for DEBUG_PROCESSOR_IDENTIFICATION_ARM {}
impl ::core::default::Default for DEBUG_PROCESSOR_IDENTIFICATION_ARM {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct DEBUG_PROCESSOR_IDENTIFICATION_ARM64 {
pub Model: u32,
pub Revision: u32,
pub VendorString: [u8; 16],
}
impl ::core::marker::Copy for DEBUG_PROCESSOR_IDENTIFICATION_ARM64 {}
impl ::core::clone::Clone for DEBUG_PROCESSOR_IDENTIFICATION_ARM64 {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for DEBUG_PROCESSOR_IDENTIFICATION_ARM64 {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("DEBUG_PROCESSOR_IDENTIFICATION_ARM64").field("Model", &self.Model).field("Revision", &self.Revision).field("VendorString", &self.VendorString).finish()
}
}
impl ::windows_core::TypeKind for DEBUG_PROCESSOR_IDENTIFICATION_ARM64 {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for DEBUG_PROCESSOR_IDENTIFICATION_ARM64 {
fn eq(&self, other: &Self) -> bool {
self.Model == other.Model && self.Revision == other.Revision && self.VendorString == other.VendorString
}
}
impl ::core::cmp::Eq for DEBUG_PROCESSOR_IDENTIFICATION_ARM64 {}
impl ::core::default::Default for DEBUG_PROCESSOR_IDENTIFICATION_ARM64 {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct DEBUG_PROCESSOR_IDENTIFICATION_IA64 {
pub Model: u32,
pub Revision: u32,
pub Family: u32,
pub ArchRev: u32,
pub VendorString: [u8; 16],
}
impl ::core::marker::Copy for DEBUG_PROCESSOR_IDENTIFICATION_IA64 {}
impl ::core::clone::Clone for DEBUG_PROCESSOR_IDENTIFICATION_IA64 {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for DEBUG_PROCESSOR_IDENTIFICATION_IA64 {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("DEBUG_PROCESSOR_IDENTIFICATION_IA64").field("Model", &self.Model).field("Revision", &self.Revision).field("Family", &self.Family).field("ArchRev", &self.ArchRev).field("VendorString", &self.VendorString).finish()
}
}
impl ::windows_core::TypeKind for DEBUG_PROCESSOR_IDENTIFICATION_IA64 {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for DEBUG_PROCESSOR_IDENTIFICATION_IA64 {
fn eq(&self, other: &Self) -> bool {
self.Model == other.Model && self.Revision == other.Revision && self.Family == other.Family && self.ArchRev == other.ArchRev && self.VendorString == other.VendorString
}
}
impl ::core::cmp::Eq for DEBUG_PROCESSOR_IDENTIFICATION_IA64 {}
impl ::core::default::Default for DEBUG_PROCESSOR_IDENTIFICATION_IA64 {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct DEBUG_PROCESSOR_IDENTIFICATION_X86 {
pub Family: u32,
pub Model: u32,
pub Stepping: u32,
pub VendorString: [u8; 16],
}
impl ::core::marker::Copy for DEBUG_PROCESSOR_IDENTIFICATION_X86 {}
impl ::core::clone::Clone for DEBUG_PROCESSOR_IDENTIFICATION_X86 {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for DEBUG_PROCESSOR_IDENTIFICATION_X86 {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("DEBUG_PROCESSOR_IDENTIFICATION_X86").field("Family", &self.Family).field("Model", &self.Model).field("Stepping", &self.Stepping).field("VendorString", &self.VendorString).finish()
}
}
impl ::windows_core::TypeKind for DEBUG_PROCESSOR_IDENTIFICATION_X86 {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for DEBUG_PROCESSOR_IDENTIFICATION_X86 {
fn eq(&self, other: &Self) -> bool {
self.Family == other.Family && self.Model == other.Model && self.Stepping == other.Stepping && self.VendorString == other.VendorString
}
}
impl ::core::cmp::Eq for DEBUG_PROCESSOR_IDENTIFICATION_X86 {}
impl ::core::default::Default for DEBUG_PROCESSOR_IDENTIFICATION_X86 {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct DEBUG_READ_USER_MINIDUMP_STREAM {
pub StreamType: u32,
pub Flags: u32,
pub Offset: u64,
pub Buffer: *mut ::core::ffi::c_void,
pub BufferSize: u32,
pub BufferUsed: u32,
}
impl ::core::marker::Copy for DEBUG_READ_USER_MINIDUMP_STREAM {}
impl ::core::clone::Clone for DEBUG_READ_USER_MINIDUMP_STREAM {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for DEBUG_READ_USER_MINIDUMP_STREAM {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("DEBUG_READ_USER_MINIDUMP_STREAM").field("StreamType", &self.StreamType).field("Flags", &self.Flags).field("Offset", &self.Offset).field("Buffer", &self.Buffer).field("BufferSize", &self.BufferSize).field("BufferUsed", &self.BufferUsed).finish()
}
}
impl ::windows_core::TypeKind for DEBUG_READ_USER_MINIDUMP_STREAM {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for DEBUG_READ_USER_MINIDUMP_STREAM {
fn eq(&self, other: &Self) -> bool {
self.StreamType == other.StreamType && self.Flags == other.Flags && self.Offset == other.Offset && self.Buffer == other.Buffer && self.BufferSize == other.BufferSize && self.BufferUsed == other.BufferUsed
}
}
impl ::core::cmp::Eq for DEBUG_READ_USER_MINIDUMP_STREAM {}
impl ::core::default::Default for DEBUG_READ_USER_MINIDUMP_STREAM {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct DEBUG_REGISTER_DESCRIPTION {
pub Type: u32,
pub Flags: u32,
pub SubregMaster: u32,
pub SubregLength: u32,
pub SubregMask: u64,
pub SubregShift: u32,
pub Reserved0: u32,
}
impl ::core::marker::Copy for DEBUG_REGISTER_DESCRIPTION {}
impl ::core::clone::Clone for DEBUG_REGISTER_DESCRIPTION {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for DEBUG_REGISTER_DESCRIPTION {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("DEBUG_REGISTER_DESCRIPTION").field("Type", &self.Type).field("Flags", &self.Flags).field("SubregMaster", &self.SubregMaster).field("SubregLength", &self.SubregLength).field("SubregMask", &self.SubregMask).field("SubregShift", &self.SubregShift).field("Reserved0", &self.Reserved0).finish()
}
}
impl ::windows_core::TypeKind for DEBUG_REGISTER_DESCRIPTION {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for DEBUG_REGISTER_DESCRIPTION {
fn eq(&self, other: &Self) -> bool {
self.Type == other.Type && self.Flags == other.Flags && self.SubregMaster == other.SubregMaster && self.SubregLength == other.SubregLength && self.SubregMask == other.SubregMask && self.SubregShift == other.SubregShift && self.Reserved0 == other.Reserved0
}
}
impl ::core::cmp::Eq for DEBUG_REGISTER_DESCRIPTION {}
impl ::core::default::Default for DEBUG_REGISTER_DESCRIPTION {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct DEBUG_SMBIOS_INFO {
pub SizeOfStruct: u32,
pub SmbiosMajorVersion: u8,
pub SmbiosMinorVersion: u8,
pub DMIVersion: u8,
pub TableSize: u32,
pub BiosMajorRelease: u8,
pub BiosMinorRelease: u8,
pub FirmwareMajorRelease: u8,
pub FirmwareMinorRelease: u8,
pub BaseBoardManufacturer: [u8; 64],
pub BaseBoardProduct: [u8; 64],
pub BaseBoardVersion: [u8; 64],
pub BiosReleaseDate: [u8; 64],
pub BiosVendor: [u8; 64],
pub BiosVersion: [u8; 64],
pub SystemFamily: [u8; 64],
pub SystemManufacturer: [u8; 64],
pub SystemProductName: [u8; 64],
pub SystemSKU: [u8; 64],
pub SystemVersion: [u8; 64],
}
impl ::core::marker::Copy for DEBUG_SMBIOS_INFO {}
impl ::core::clone::Clone for DEBUG_SMBIOS_INFO {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for DEBUG_SMBIOS_INFO {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("DEBUG_SMBIOS_INFO")
.field("SizeOfStruct", &self.SizeOfStruct)
.field("SmbiosMajorVersion", &self.SmbiosMajorVersion)
.field("SmbiosMinorVersion", &self.SmbiosMinorVersion)
.field("DMIVersion", &self.DMIVersion)
.field("TableSize", &self.TableSize)
.field("BiosMajorRelease", &self.BiosMajorRelease)
.field("BiosMinorRelease", &self.BiosMinorRelease)
.field("FirmwareMajorRelease", &self.FirmwareMajorRelease)
.field("FirmwareMinorRelease", &self.FirmwareMinorRelease)
.field("BaseBoardManufacturer", &self.BaseBoardManufacturer)
.field("BaseBoardProduct", &self.BaseBoardProduct)
.field("BaseBoardVersion", &self.BaseBoardVersion)
.field("BiosReleaseDate", &self.BiosReleaseDate)
.field("BiosVendor", &self.BiosVendor)
.field("BiosVersion", &self.BiosVersion)
.field("SystemFamily", &self.SystemFamily)
.field("SystemManufacturer", &self.SystemManufacturer)
.field("SystemProductName", &self.SystemProductName)
.field("SystemSKU", &self.SystemSKU)
.field("SystemVersion", &self.SystemVersion)
.finish()
}
}
impl ::windows_core::TypeKind for DEBUG_SMBIOS_INFO {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for DEBUG_SMBIOS_INFO {
fn eq(&self, other: &Self) -> bool {
self.SizeOfStruct == other.SizeOfStruct
&& self.SmbiosMajorVersion == other.SmbiosMajorVersion
&& self.SmbiosMinorVersion == other.SmbiosMinorVersion
&& self.DMIVersion == other.DMIVersion
&& self.TableSize == other.TableSize
&& self.BiosMajorRelease == other.BiosMajorRelease
&& self.BiosMinorRelease == other.BiosMinorRelease
&& self.FirmwareMajorRelease == other.FirmwareMajorRelease
&& self.FirmwareMinorRelease == other.FirmwareMinorRelease
&& self.BaseBoardManufacturer == other.BaseBoardManufacturer
&& self.BaseBoardProduct == other.BaseBoardProduct
&& self.BaseBoardVersion == other.BaseBoardVersion
&& self.BiosReleaseDate == other.BiosReleaseDate
&& self.BiosVendor == other.BiosVendor
&& self.BiosVersion == other.BiosVersion
&& self.SystemFamily == other.SystemFamily
&& self.SystemManufacturer == other.SystemManufacturer
&& self.SystemProductName == other.SystemProductName
&& self.SystemSKU == other.SystemSKU
&& self.SystemVersion == other.SystemVersion
}
}
impl ::core::cmp::Eq for DEBUG_SMBIOS_INFO {}
impl ::core::default::Default for DEBUG_SMBIOS_INFO {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct DEBUG_SPECIFIC_FILTER_PARAMETERS {
pub ExecutionOption: u32,
pub ContinueOption: u32,
pub TextSize: u32,
pub CommandSize: u32,
pub ArgumentSize: u32,
}
impl ::core::marker::Copy for DEBUG_SPECIFIC_FILTER_PARAMETERS {}
impl ::core::clone::Clone for DEBUG_SPECIFIC_FILTER_PARAMETERS {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for DEBUG_SPECIFIC_FILTER_PARAMETERS {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("DEBUG_SPECIFIC_FILTER_PARAMETERS").field("ExecutionOption", &self.ExecutionOption).field("ContinueOption", &self.ContinueOption).field("TextSize", &self.TextSize).field("CommandSize", &self.CommandSize).field("ArgumentSize", &self.ArgumentSize).finish()
}
}
impl ::windows_core::TypeKind for DEBUG_SPECIFIC_FILTER_PARAMETERS {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for DEBUG_SPECIFIC_FILTER_PARAMETERS {
fn eq(&self, other: &Self) -> bool {
self.ExecutionOption == other.ExecutionOption && self.ContinueOption == other.ContinueOption && self.TextSize == other.TextSize && self.CommandSize == other.CommandSize && self.ArgumentSize == other.ArgumentSize
}
}
impl ::core::cmp::Eq for DEBUG_SPECIFIC_FILTER_PARAMETERS {}
impl ::core::default::Default for DEBUG_SPECIFIC_FILTER_PARAMETERS {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub struct DEBUG_STACK_FRAME {
pub InstructionOffset: u64,
pub ReturnOffset: u64,
pub FrameOffset: u64,
pub StackOffset: u64,
pub FuncTableEntry: u64,
pub Params: [u64; 4],
pub Reserved: [u64; 6],
pub Virtual: super::super::super::super::Foundation::BOOL,
pub FrameNumber: u32,
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::marker::Copy for DEBUG_STACK_FRAME {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::clone::Clone for DEBUG_STACK_FRAME {
fn clone(&self) -> Self {
*self
}
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::fmt::Debug for DEBUG_STACK_FRAME {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("DEBUG_STACK_FRAME").field("InstructionOffset", &self.InstructionOffset).field("ReturnOffset", &self.ReturnOffset).field("FrameOffset", &self.FrameOffset).field("StackOffset", &self.StackOffset).field("FuncTableEntry", &self.FuncTableEntry).field("Params", &self.Params).field("Reserved", &self.Reserved).field("Virtual", &self.Virtual).field("FrameNumber", &self.FrameNumber).finish()
}
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::TypeKind for DEBUG_STACK_FRAME {
type TypeKind = ::windows_core::CopyType;
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::PartialEq for DEBUG_STACK_FRAME {
fn eq(&self, other: &Self) -> bool {
self.InstructionOffset == other.InstructionOffset && self.ReturnOffset == other.ReturnOffset && self.FrameOffset == other.FrameOffset && self.StackOffset == other.StackOffset && self.FuncTableEntry == other.FuncTableEntry && self.Params == other.Params && self.Reserved == other.Reserved && self.Virtual == other.Virtual && self.FrameNumber == other.FrameNumber
}
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::Eq for DEBUG_STACK_FRAME {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::default::Default for DEBUG_STACK_FRAME {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub struct DEBUG_STACK_FRAME_EX {
pub InstructionOffset: u64,
pub ReturnOffset: u64,
pub FrameOffset: u64,
pub StackOffset: u64,
pub FuncTableEntry: u64,
pub Params: [u64; 4],
pub Reserved: [u64; 6],
pub Virtual: super::super::super::super::Foundation::BOOL,
pub FrameNumber: u32,
pub InlineFrameContext: u32,
pub Reserved1: u32,
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::marker::Copy for DEBUG_STACK_FRAME_EX {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::clone::Clone for DEBUG_STACK_FRAME_EX {
fn clone(&self) -> Self {
*self
}
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::fmt::Debug for DEBUG_STACK_FRAME_EX {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("DEBUG_STACK_FRAME_EX")
.field("InstructionOffset", &self.InstructionOffset)
.field("ReturnOffset", &self.ReturnOffset)
.field("FrameOffset", &self.FrameOffset)
.field("StackOffset", &self.StackOffset)
.field("FuncTableEntry", &self.FuncTableEntry)
.field("Params", &self.Params)
.field("Reserved", &self.Reserved)
.field("Virtual", &self.Virtual)
.field("FrameNumber", &self.FrameNumber)
.field("InlineFrameContext", &self.InlineFrameContext)
.field("Reserved1", &self.Reserved1)
.finish()
}
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::TypeKind for DEBUG_STACK_FRAME_EX {
type TypeKind = ::windows_core::CopyType;
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::PartialEq for DEBUG_STACK_FRAME_EX {
fn eq(&self, other: &Self) -> bool {
self.InstructionOffset == other.InstructionOffset && self.ReturnOffset == other.ReturnOffset && self.FrameOffset == other.FrameOffset && self.StackOffset == other.StackOffset && self.FuncTableEntry == other.FuncTableEntry && self.Params == other.Params && self.Reserved == other.Reserved && self.Virtual == other.Virtual && self.FrameNumber == other.FrameNumber && self.InlineFrameContext == other.InlineFrameContext && self.Reserved1 == other.Reserved1
}
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::Eq for DEBUG_STACK_FRAME_EX {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::default::Default for DEBUG_STACK_FRAME_EX {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct DEBUG_SYMBOL_ENTRY {
pub ModuleBase: u64,
pub Offset: u64,
pub Id: u64,
pub Arg64: u64,
pub Size: u32,
pub Flags: u32,
pub TypeId: u32,
pub NameSize: u32,
pub Token: u32,
pub Tag: u32,
pub Arg32: u32,
pub Reserved: u32,
}
impl ::core::marker::Copy for DEBUG_SYMBOL_ENTRY {}
impl ::core::clone::Clone for DEBUG_SYMBOL_ENTRY {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for DEBUG_SYMBOL_ENTRY {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("DEBUG_SYMBOL_ENTRY").field("ModuleBase", &self.ModuleBase).field("Offset", &self.Offset).field("Id", &self.Id).field("Arg64", &self.Arg64).field("Size", &self.Size).field("Flags", &self.Flags).field("TypeId", &self.TypeId).field("NameSize", &self.NameSize).field("Token", &self.Token).field("Tag", &self.Tag).field("Arg32", &self.Arg32).field("Reserved", &self.Reserved).finish()
}
}
impl ::windows_core::TypeKind for DEBUG_SYMBOL_ENTRY {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for DEBUG_SYMBOL_ENTRY {
fn eq(&self, other: &Self) -> bool {
self.ModuleBase == other.ModuleBase && self.Offset == other.Offset && self.Id == other.Id && self.Arg64 == other.Arg64 && self.Size == other.Size && self.Flags == other.Flags && self.TypeId == other.TypeId && self.NameSize == other.NameSize && self.Token == other.Token && self.Tag == other.Tag && self.Arg32 == other.Arg32 && self.Reserved == other.Reserved
}
}
impl ::core::cmp::Eq for DEBUG_SYMBOL_ENTRY {}
impl ::core::default::Default for DEBUG_SYMBOL_ENTRY {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct DEBUG_SYMBOL_PARAMETERS {
pub Module: u64,
pub TypeId: u32,
pub ParentSymbol: u32,
pub SubElements: u32,
pub Flags: u32,
pub Reserved: u64,
}
impl ::core::marker::Copy for DEBUG_SYMBOL_PARAMETERS {}
impl ::core::clone::Clone for DEBUG_SYMBOL_PARAMETERS {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for DEBUG_SYMBOL_PARAMETERS {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("DEBUG_SYMBOL_PARAMETERS").field("Module", &self.Module).field("TypeId", &self.TypeId).field("ParentSymbol", &self.ParentSymbol).field("SubElements", &self.SubElements).field("Flags", &self.Flags).field("Reserved", &self.Reserved).finish()
}
}
impl ::windows_core::TypeKind for DEBUG_SYMBOL_PARAMETERS {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for DEBUG_SYMBOL_PARAMETERS {
fn eq(&self, other: &Self) -> bool {
self.Module == other.Module && self.TypeId == other.TypeId && self.ParentSymbol == other.ParentSymbol && self.SubElements == other.SubElements && self.Flags == other.Flags && self.Reserved == other.Reserved
}
}
impl ::core::cmp::Eq for DEBUG_SYMBOL_PARAMETERS {}
impl ::core::default::Default for DEBUG_SYMBOL_PARAMETERS {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct DEBUG_SYMBOL_SOURCE_ENTRY {
pub ModuleBase: u64,
pub Offset: u64,
pub FileNameId: u64,
pub EngineInternal: u64,
pub Size: u32,
pub Flags: u32,
pub FileNameSize: u32,
pub StartLine: u32,
pub EndLine: u32,
pub StartColumn: u32,
pub EndColumn: u32,
pub Reserved: u32,
}
impl ::core::marker::Copy for DEBUG_SYMBOL_SOURCE_ENTRY {}
impl ::core::clone::Clone for DEBUG_SYMBOL_SOURCE_ENTRY {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for DEBUG_SYMBOL_SOURCE_ENTRY {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("DEBUG_SYMBOL_SOURCE_ENTRY").field("ModuleBase", &self.ModuleBase).field("Offset", &self.Offset).field("FileNameId", &self.FileNameId).field("EngineInternal", &self.EngineInternal).field("Size", &self.Size).field("Flags", &self.Flags).field("FileNameSize", &self.FileNameSize).field("StartLine", &self.StartLine).field("EndLine", &self.EndLine).field("StartColumn", &self.StartColumn).field("EndColumn", &self.EndColumn).field("Reserved", &self.Reserved).finish()
}
}
impl ::windows_core::TypeKind for DEBUG_SYMBOL_SOURCE_ENTRY {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for DEBUG_SYMBOL_SOURCE_ENTRY {
fn eq(&self, other: &Self) -> bool {
self.ModuleBase == other.ModuleBase && self.Offset == other.Offset && self.FileNameId == other.FileNameId && self.EngineInternal == other.EngineInternal && self.Size == other.Size && self.Flags == other.Flags && self.FileNameSize == other.FileNameSize && self.StartLine == other.StartLine && self.EndLine == other.EndLine && self.StartColumn == other.StartColumn && self.EndColumn == other.EndColumn && self.Reserved == other.Reserved
}
}
impl ::core::cmp::Eq for DEBUG_SYMBOL_SOURCE_ENTRY {}
impl ::core::default::Default for DEBUG_SYMBOL_SOURCE_ENTRY {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct DEBUG_THREAD_BASIC_INFORMATION {
pub Valid: u32,
pub ExitStatus: u32,
pub PriorityClass: u32,
pub Priority: u32,
pub CreateTime: u64,
pub ExitTime: u64,
pub KernelTime: u64,
pub UserTime: u64,
pub StartOffset: u64,
pub Affinity: u64,
}
impl ::core::marker::Copy for DEBUG_THREAD_BASIC_INFORMATION {}
impl ::core::clone::Clone for DEBUG_THREAD_BASIC_INFORMATION {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for DEBUG_THREAD_BASIC_INFORMATION {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("DEBUG_THREAD_BASIC_INFORMATION").field("Valid", &self.Valid).field("ExitStatus", &self.ExitStatus).field("PriorityClass", &self.PriorityClass).field("Priority", &self.Priority).field("CreateTime", &self.CreateTime).field("ExitTime", &self.ExitTime).field("KernelTime", &self.KernelTime).field("UserTime", &self.UserTime).field("StartOffset", &self.StartOffset).field("Affinity", &self.Affinity).finish()
}
}
impl ::windows_core::TypeKind for DEBUG_THREAD_BASIC_INFORMATION {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for DEBUG_THREAD_BASIC_INFORMATION {
fn eq(&self, other: &Self) -> bool {
self.Valid == other.Valid && self.ExitStatus == other.ExitStatus && self.PriorityClass == other.PriorityClass && self.Priority == other.Priority && self.CreateTime == other.CreateTime && self.ExitTime == other.ExitTime && self.KernelTime == other.KernelTime && self.UserTime == other.UserTime && self.StartOffset == other.StartOffset && self.Affinity == other.Affinity
}
}
impl ::core::cmp::Eq for DEBUG_THREAD_BASIC_INFORMATION {}
impl ::core::default::Default for DEBUG_THREAD_BASIC_INFORMATION {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct DEBUG_TRIAGE_FOLLOWUP_INFO {
pub SizeOfStruct: u32,
pub OwnerNameSize: u32,
pub OwnerName: ::windows_core::PSTR,
}
impl ::core::marker::Copy for DEBUG_TRIAGE_FOLLOWUP_INFO {}
impl ::core::clone::Clone for DEBUG_TRIAGE_FOLLOWUP_INFO {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for DEBUG_TRIAGE_FOLLOWUP_INFO {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("DEBUG_TRIAGE_FOLLOWUP_INFO").field("SizeOfStruct", &self.SizeOfStruct).field("OwnerNameSize", &self.OwnerNameSize).field("OwnerName", &self.OwnerName).finish()
}
}
impl ::windows_core::TypeKind for DEBUG_TRIAGE_FOLLOWUP_INFO {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for DEBUG_TRIAGE_FOLLOWUP_INFO {
fn eq(&self, other: &Self) -> bool {
self.SizeOfStruct == other.SizeOfStruct && self.OwnerNameSize == other.OwnerNameSize && self.OwnerName == other.OwnerName
}
}
impl ::core::cmp::Eq for DEBUG_TRIAGE_FOLLOWUP_INFO {}
impl ::core::default::Default for DEBUG_TRIAGE_FOLLOWUP_INFO {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct DEBUG_TRIAGE_FOLLOWUP_INFO_2 {
pub SizeOfStruct: u32,
pub OwnerNameSize: u32,
pub OwnerName: ::windows_core::PSTR,
pub FeaturePathSize: u32,
pub FeaturePath: ::windows_core::PSTR,
}
impl ::core::marker::Copy for DEBUG_TRIAGE_FOLLOWUP_INFO_2 {}
impl ::core::clone::Clone for DEBUG_TRIAGE_FOLLOWUP_INFO_2 {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for DEBUG_TRIAGE_FOLLOWUP_INFO_2 {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("DEBUG_TRIAGE_FOLLOWUP_INFO_2").field("SizeOfStruct", &self.SizeOfStruct).field("OwnerNameSize", &self.OwnerNameSize).field("OwnerName", &self.OwnerName).field("FeaturePathSize", &self.FeaturePathSize).field("FeaturePath", &self.FeaturePath).finish()
}
}
impl ::windows_core::TypeKind for DEBUG_TRIAGE_FOLLOWUP_INFO_2 {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for DEBUG_TRIAGE_FOLLOWUP_INFO_2 {
fn eq(&self, other: &Self) -> bool {
self.SizeOfStruct == other.SizeOfStruct && self.OwnerNameSize == other.OwnerNameSize && self.OwnerName == other.OwnerName && self.FeaturePathSize == other.FeaturePathSize && self.FeaturePath == other.FeaturePath
}
}
impl ::core::cmp::Eq for DEBUG_TRIAGE_FOLLOWUP_INFO_2 {}
impl ::core::default::Default for DEBUG_TRIAGE_FOLLOWUP_INFO_2 {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct DEBUG_TYPED_DATA {
pub ModBase: u64,
pub Offset: u64,
pub EngineHandle: u64,
pub Data: u64,
pub Size: u32,
pub Flags: u32,
pub TypeId: u32,
pub BaseTypeId: u32,
pub Tag: u32,
pub Register: u32,
pub Internal: [u64; 9],
}
impl ::core::marker::Copy for DEBUG_TYPED_DATA {}
impl ::core::clone::Clone for DEBUG_TYPED_DATA {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for DEBUG_TYPED_DATA {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("DEBUG_TYPED_DATA").field("ModBase", &self.ModBase).field("Offset", &self.Offset).field("EngineHandle", &self.EngineHandle).field("Data", &self.Data).field("Size", &self.Size).field("Flags", &self.Flags).field("TypeId", &self.TypeId).field("BaseTypeId", &self.BaseTypeId).field("Tag", &self.Tag).field("Register", &self.Register).field("Internal", &self.Internal).finish()
}
}
impl ::windows_core::TypeKind for DEBUG_TYPED_DATA {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for DEBUG_TYPED_DATA {
fn eq(&self, other: &Self) -> bool {
self.ModBase == other.ModBase && self.Offset == other.Offset && self.EngineHandle == other.EngineHandle && self.Data == other.Data && self.Size == other.Size && self.Flags == other.Flags && self.TypeId == other.TypeId && self.BaseTypeId == other.BaseTypeId && self.Tag == other.Tag && self.Register == other.Register && self.Internal == other.Internal
}
}
impl ::core::cmp::Eq for DEBUG_TYPED_DATA {}
impl ::core::default::Default for DEBUG_TYPED_DATA {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub struct DEBUG_VALUE {
pub Anonymous: DEBUG_VALUE_0,
pub TailOfRawBytes: u32,
pub Type: u32,
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::marker::Copy for DEBUG_VALUE {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::clone::Clone for DEBUG_VALUE {
fn clone(&self) -> Self {
*self
}
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::TypeKind for DEBUG_VALUE {
type TypeKind = ::windows_core::CopyType;
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::default::Default for DEBUG_VALUE {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub union DEBUG_VALUE_0 {
pub I8: u8,
pub I16: u16,
pub I32: u32,
pub Anonymous: DEBUG_VALUE_0_0,
pub F32: f32,
pub F64: f64,
pub F80Bytes: [u8; 10],
pub F82Bytes: [u8; 11],
pub F128Bytes: [u8; 16],
pub VI8: [u8; 16],
pub VI16: [u16; 8],
pub VI32: [u32; 4],
pub VI64: [u64; 2],
pub VF32: [f32; 4],
pub VF64: [f64; 2],
pub I64Parts32: DEBUG_VALUE_0_2,
pub F128Parts64: DEBUG_VALUE_0_1,
pub RawBytes: [u8; 24],
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::marker::Copy for DEBUG_VALUE_0 {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::clone::Clone for DEBUG_VALUE_0 {
fn clone(&self) -> Self {
*self
}
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::TypeKind for DEBUG_VALUE_0 {
type TypeKind = ::windows_core::CopyType;
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::default::Default for DEBUG_VALUE_0 {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub struct DEBUG_VALUE_0_0 {
pub I64: u64,
pub Nat: super::super::super::super::Foundation::BOOL,
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::marker::Copy for DEBUG_VALUE_0_0 {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::clone::Clone for DEBUG_VALUE_0_0 {
fn clone(&self) -> Self {
*self
}
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::fmt::Debug for DEBUG_VALUE_0_0 {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("DEBUG_VALUE_0_0").field("I64", &self.I64).field("Nat", &self.Nat).finish()
}
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::TypeKind for DEBUG_VALUE_0_0 {
type TypeKind = ::windows_core::CopyType;
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::PartialEq for DEBUG_VALUE_0_0 {
fn eq(&self, other: &Self) -> bool {
self.I64 == other.I64 && self.Nat == other.Nat
}
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::Eq for DEBUG_VALUE_0_0 {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::default::Default for DEBUG_VALUE_0_0 {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub struct DEBUG_VALUE_0_1 {
pub LowPart: u64,
pub HighPart: i64,
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::marker::Copy for DEBUG_VALUE_0_1 {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::clone::Clone for DEBUG_VALUE_0_1 {
fn clone(&self) -> Self {
*self
}
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::fmt::Debug for DEBUG_VALUE_0_1 {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("DEBUG_VALUE_0_1").field("LowPart", &self.LowPart).field("HighPart", &self.HighPart).finish()
}
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::TypeKind for DEBUG_VALUE_0_1 {
type TypeKind = ::windows_core::CopyType;
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::PartialEq for DEBUG_VALUE_0_1 {
fn eq(&self, other: &Self) -> bool {
self.LowPart == other.LowPart && self.HighPart == other.HighPart
}
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::Eq for DEBUG_VALUE_0_1 {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::default::Default for DEBUG_VALUE_0_1 {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub struct DEBUG_VALUE_0_2 {
pub LowPart: u32,
pub HighPart: u32,
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::marker::Copy for DEBUG_VALUE_0_2 {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::clone::Clone for DEBUG_VALUE_0_2 {
fn clone(&self) -> Self {
*self
}
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::fmt::Debug for DEBUG_VALUE_0_2 {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("DEBUG_VALUE_0_2").field("LowPart", &self.LowPart).field("HighPart", &self.HighPart).finish()
}
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::TypeKind for DEBUG_VALUE_0_2 {
type TypeKind = ::windows_core::CopyType;
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::PartialEq for DEBUG_VALUE_0_2 {
fn eq(&self, other: &Self) -> bool {
self.LowPart == other.LowPart && self.HighPart == other.HighPart
}
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::Eq for DEBUG_VALUE_0_2 {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::default::Default for DEBUG_VALUE_0_2 {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct EXTSTACKTRACE {
pub FramePointer: u32,
pub ProgramCounter: u32,
pub ReturnAddress: u32,
pub Args: [u32; 4],
}
impl ::core::marker::Copy for EXTSTACKTRACE {}
impl ::core::clone::Clone for EXTSTACKTRACE {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for EXTSTACKTRACE {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("EXTSTACKTRACE").field("FramePointer", &self.FramePointer).field("ProgramCounter", &self.ProgramCounter).field("ReturnAddress", &self.ReturnAddress).field("Args", &self.Args).finish()
}
}
impl ::windows_core::TypeKind for EXTSTACKTRACE {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for EXTSTACKTRACE {
fn eq(&self, other: &Self) -> bool {
self.FramePointer == other.FramePointer && self.ProgramCounter == other.ProgramCounter && self.ReturnAddress == other.ReturnAddress && self.Args == other.Args
}
}
impl ::core::cmp::Eq for EXTSTACKTRACE {}
impl ::core::default::Default for EXTSTACKTRACE {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct EXTSTACKTRACE32 {
pub FramePointer: u32,
pub ProgramCounter: u32,
pub ReturnAddress: u32,
pub Args: [u32; 4],
}
impl ::core::marker::Copy for EXTSTACKTRACE32 {}
impl ::core::clone::Clone for EXTSTACKTRACE32 {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for EXTSTACKTRACE32 {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("EXTSTACKTRACE32").field("FramePointer", &self.FramePointer).field("ProgramCounter", &self.ProgramCounter).field("ReturnAddress", &self.ReturnAddress).field("Args", &self.Args).finish()
}
}
impl ::windows_core::TypeKind for EXTSTACKTRACE32 {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for EXTSTACKTRACE32 {
fn eq(&self, other: &Self) -> bool {
self.FramePointer == other.FramePointer && self.ProgramCounter == other.ProgramCounter && self.ReturnAddress == other.ReturnAddress && self.Args == other.Args
}
}
impl ::core::cmp::Eq for EXTSTACKTRACE32 {}
impl ::core::default::Default for EXTSTACKTRACE32 {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct EXTSTACKTRACE64 {
pub FramePointer: u64,
pub ProgramCounter: u64,
pub ReturnAddress: u64,
pub Args: [u64; 4],
}
impl ::core::marker::Copy for EXTSTACKTRACE64 {}
impl ::core::clone::Clone for EXTSTACKTRACE64 {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for EXTSTACKTRACE64 {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("EXTSTACKTRACE64").field("FramePointer", &self.FramePointer).field("ProgramCounter", &self.ProgramCounter).field("ReturnAddress", &self.ReturnAddress).field("Args", &self.Args).finish()
}
}
impl ::windows_core::TypeKind for EXTSTACKTRACE64 {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for EXTSTACKTRACE64 {
fn eq(&self, other: &Self) -> bool {
self.FramePointer == other.FramePointer && self.ProgramCounter == other.ProgramCounter && self.ReturnAddress == other.ReturnAddress && self.Args == other.Args
}
}
impl ::core::cmp::Eq for EXTSTACKTRACE64 {}
impl ::core::default::Default for EXTSTACKTRACE64 {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct EXT_API_VERSION {
pub MajorVersion: u16,
pub MinorVersion: u16,
pub Revision: u16,
pub Reserved: u16,
}
impl ::core::marker::Copy for EXT_API_VERSION {}
impl ::core::clone::Clone for EXT_API_VERSION {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for EXT_API_VERSION {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("EXT_API_VERSION").field("MajorVersion", &self.MajorVersion).field("MinorVersion", &self.MinorVersion).field("Revision", &self.Revision).field("Reserved", &self.Reserved).finish()
}
}
impl ::windows_core::TypeKind for EXT_API_VERSION {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for EXT_API_VERSION {
fn eq(&self, other: &Self) -> bool {
self.MajorVersion == other.MajorVersion && self.MinorVersion == other.MinorVersion && self.Revision == other.Revision && self.Reserved == other.Reserved
}
}
impl ::core::cmp::Eq for EXT_API_VERSION {}
impl ::core::default::Default for EXT_API_VERSION {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct EXT_CAB_XML_DATA {
pub SizeOfStruct: u32,
pub XmlObjectTag: ::windows_core::PCWSTR,
pub NumSubTags: u32,
pub SubTags: [EXT_CAB_XML_DATA_0; 1],
}
impl ::core::marker::Copy for EXT_CAB_XML_DATA {}
impl ::core::clone::Clone for EXT_CAB_XML_DATA {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for EXT_CAB_XML_DATA {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("EXT_CAB_XML_DATA").field("SizeOfStruct", &self.SizeOfStruct).field("XmlObjectTag", &self.XmlObjectTag).field("NumSubTags", &self.NumSubTags).field("SubTags", &self.SubTags).finish()
}
}
impl ::windows_core::TypeKind for EXT_CAB_XML_DATA {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for EXT_CAB_XML_DATA {
fn eq(&self, other: &Self) -> bool {
self.SizeOfStruct == other.SizeOfStruct && self.XmlObjectTag == other.XmlObjectTag && self.NumSubTags == other.NumSubTags && self.SubTags == other.SubTags
}
}
impl ::core::cmp::Eq for EXT_CAB_XML_DATA {}
impl ::core::default::Default for EXT_CAB_XML_DATA {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct EXT_CAB_XML_DATA_0 {
pub SubTag: ::windows_core::PCWSTR,
pub MatchPattern: ::windows_core::PCWSTR,
pub ReturnText: ::windows_core::PWSTR,
pub ReturnTextSize: u32,
pub _bitfield: u32,
pub Reserved2: u32,
}
impl ::core::marker::Copy for EXT_CAB_XML_DATA_0 {}
impl ::core::clone::Clone for EXT_CAB_XML_DATA_0 {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for EXT_CAB_XML_DATA_0 {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("EXT_CAB_XML_DATA_0").field("SubTag", &self.SubTag).field("MatchPattern", &self.MatchPattern).field("ReturnText", &self.ReturnText).field("ReturnTextSize", &self.ReturnTextSize).field("_bitfield", &self._bitfield).field("Reserved2", &self.Reserved2).finish()
}
}
impl ::windows_core::TypeKind for EXT_CAB_XML_DATA_0 {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for EXT_CAB_XML_DATA_0 {
fn eq(&self, other: &Self) -> bool {
self.SubTag == other.SubTag && self.MatchPattern == other.MatchPattern && self.ReturnText == other.ReturnText && self.ReturnTextSize == other.ReturnTextSize && self._bitfield == other._bitfield && self.Reserved2 == other.Reserved2
}
}
impl ::core::cmp::Eq for EXT_CAB_XML_DATA_0 {}
impl ::core::default::Default for EXT_CAB_XML_DATA_0 {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub struct EXT_FIND_FILE {
pub FileName: ::windows_core::PCWSTR,
pub IndexedSize: u64,
pub ImageTimeDateStamp: u32,
pub ImageCheckSum: u32,
pub ExtraInfo: *mut ::core::ffi::c_void,
pub ExtraInfoSize: u32,
pub Flags: u32,
pub FileMapping: *mut ::core::ffi::c_void,
pub FileMappingSize: u64,
pub FileHandle: super::super::super::super::Foundation::HANDLE,
pub FoundFileName: ::windows_core::PWSTR,
pub FoundFileNameChars: u32,
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::marker::Copy for EXT_FIND_FILE {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::clone::Clone for EXT_FIND_FILE {
fn clone(&self) -> Self {
*self
}
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::fmt::Debug for EXT_FIND_FILE {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("EXT_FIND_FILE")
.field("FileName", &self.FileName)
.field("IndexedSize", &self.IndexedSize)
.field("ImageTimeDateStamp", &self.ImageTimeDateStamp)
.field("ImageCheckSum", &self.ImageCheckSum)
.field("ExtraInfo", &self.ExtraInfo)
.field("ExtraInfoSize", &self.ExtraInfoSize)
.field("Flags", &self.Flags)
.field("FileMapping", &self.FileMapping)
.field("FileMappingSize", &self.FileMappingSize)
.field("FileHandle", &self.FileHandle)
.field("FoundFileName", &self.FoundFileName)
.field("FoundFileNameChars", &self.FoundFileNameChars)
.finish()
}
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::TypeKind for EXT_FIND_FILE {
type TypeKind = ::windows_core::CopyType;
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::PartialEq for EXT_FIND_FILE {
fn eq(&self, other: &Self) -> bool {
self.FileName == other.FileName && self.IndexedSize == other.IndexedSize && self.ImageTimeDateStamp == other.ImageTimeDateStamp && self.ImageCheckSum == other.ImageCheckSum && self.ExtraInfo == other.ExtraInfo && self.ExtraInfoSize == other.ExtraInfoSize && self.Flags == other.Flags && self.FileMapping == other.FileMapping && self.FileMappingSize == other.FileMappingSize && self.FileHandle == other.FileHandle && self.FoundFileName == other.FoundFileName && self.FoundFileNameChars == other.FoundFileNameChars
}
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::Eq for EXT_FIND_FILE {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::default::Default for EXT_FIND_FILE {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct EXT_MATCH_PATTERN_A {
pub Str: ::windows_core::PCSTR,
pub Pattern: ::windows_core::PCSTR,
pub CaseSensitive: u32,
}
impl ::core::marker::Copy for EXT_MATCH_PATTERN_A {}
impl ::core::clone::Clone for EXT_MATCH_PATTERN_A {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for EXT_MATCH_PATTERN_A {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("EXT_MATCH_PATTERN_A").field("Str", &self.Str).field("Pattern", &self.Pattern).field("CaseSensitive", &self.CaseSensitive).finish()
}
}
impl ::windows_core::TypeKind for EXT_MATCH_PATTERN_A {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for EXT_MATCH_PATTERN_A {
fn eq(&self, other: &Self) -> bool {
self.Str == other.Str && self.Pattern == other.Pattern && self.CaseSensitive == other.CaseSensitive
}
}
impl ::core::cmp::Eq for EXT_MATCH_PATTERN_A {}
impl ::core::default::Default for EXT_MATCH_PATTERN_A {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct EXT_TYPED_DATA {
pub Operation: EXT_TDOP,
pub Flags: u32,
pub InData: DEBUG_TYPED_DATA,
pub OutData: DEBUG_TYPED_DATA,
pub InStrIndex: u32,
pub In32: u32,
pub Out32: u32,
pub In64: u64,
pub Out64: u64,
pub StrBufferIndex: u32,
pub StrBufferChars: u32,
pub StrCharsNeeded: u32,
pub DataBufferIndex: u32,
pub DataBufferBytes: u32,
pub DataBytesNeeded: u32,
pub Status: ::windows_core::HRESULT,
pub Reserved: [u64; 8],
}
impl ::core::marker::Copy for EXT_TYPED_DATA {}
impl ::core::clone::Clone for EXT_TYPED_DATA {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for EXT_TYPED_DATA {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("EXT_TYPED_DATA")
.field("Operation", &self.Operation)
.field("Flags", &self.Flags)
.field("InData", &self.InData)
.field("OutData", &self.OutData)
.field("InStrIndex", &self.InStrIndex)
.field("In32", &self.In32)
.field("Out32", &self.Out32)
.field("In64", &self.In64)
.field("Out64", &self.Out64)
.field("StrBufferIndex", &self.StrBufferIndex)
.field("StrBufferChars", &self.StrBufferChars)
.field("StrCharsNeeded", &self.StrCharsNeeded)
.field("DataBufferIndex", &self.DataBufferIndex)
.field("DataBufferBytes", &self.DataBufferBytes)
.field("DataBytesNeeded", &self.DataBytesNeeded)
.field("Status", &self.Status)
.field("Reserved", &self.Reserved)
.finish()
}
}
impl ::windows_core::TypeKind for EXT_TYPED_DATA {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for EXT_TYPED_DATA {
fn eq(&self, other: &Self) -> bool {
self.Operation == other.Operation && self.Flags == other.Flags && self.InData == other.InData && self.OutData == other.OutData && self.InStrIndex == other.InStrIndex && self.In32 == other.In32 && self.Out32 == other.Out32 && self.In64 == other.In64 && self.Out64 == other.Out64 && self.StrBufferIndex == other.StrBufferIndex && self.StrBufferChars == other.StrBufferChars && self.StrCharsNeeded == other.StrCharsNeeded && self.DataBufferIndex == other.DataBufferIndex && self.DataBufferBytes == other.DataBufferBytes && self.DataBytesNeeded == other.DataBytesNeeded && self.Status == other.Status && self.Reserved == other.Reserved
}
}
impl ::core::cmp::Eq for EXT_TYPED_DATA {}
impl ::core::default::Default for EXT_TYPED_DATA {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct FA_ENTRY {
pub Tag: DEBUG_FLR_PARAM_TYPE,
pub FullSize: u16,
pub DataSize: u16,
}
impl ::core::marker::Copy for FA_ENTRY {}
impl ::core::clone::Clone for FA_ENTRY {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for FA_ENTRY {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("FA_ENTRY").field("Tag", &self.Tag).field("FullSize", &self.FullSize).field("DataSize", &self.DataSize).finish()
}
}
impl ::windows_core::TypeKind for FA_ENTRY {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for FA_ENTRY {
fn eq(&self, other: &Self) -> bool {
self.Tag == other.Tag && self.FullSize == other.FullSize && self.DataSize == other.DataSize
}
}
impl ::core::cmp::Eq for FA_ENTRY {}
impl ::core::default::Default for FA_ENTRY {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct FIELD_INFO {
pub fName: *mut u8,
pub printName: *mut u8,
pub size: u32,
pub fOptions: u32,
pub address: u64,
pub Anonymous: FIELD_INFO_0,
pub TypeId: u32,
pub FieldOffset: u32,
pub BufferSize: u32,
pub BitField: FIELD_INFO_1,
pub _bitfield: u32,
}
impl ::core::marker::Copy for FIELD_INFO {}
impl ::core::clone::Clone for FIELD_INFO {
fn clone(&self) -> Self {
*self
}
}
impl ::windows_core::TypeKind for FIELD_INFO {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::default::Default for FIELD_INFO {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub union FIELD_INFO_0 {
pub fieldCallBack: *mut ::core::ffi::c_void,
pub pBuffer: *mut ::core::ffi::c_void,
}
impl ::core::marker::Copy for FIELD_INFO_0 {}
impl ::core::clone::Clone for FIELD_INFO_0 {
fn clone(&self) -> Self {
*self
}
}
impl ::windows_core::TypeKind for FIELD_INFO_0 {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::default::Default for FIELD_INFO_0 {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct FIELD_INFO_1 {
pub Position: u16,
pub Size: u16,
}
impl ::core::marker::Copy for FIELD_INFO_1 {}
impl ::core::clone::Clone for FIELD_INFO_1 {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for FIELD_INFO_1 {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("FIELD_INFO_1").field("Position", &self.Position).field("Size", &self.Size).finish()
}
}
impl ::windows_core::TypeKind for FIELD_INFO_1 {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for FIELD_INFO_1 {
fn eq(&self, other: &Self) -> bool {
self.Position == other.Position && self.Size == other.Size
}
}
impl ::core::cmp::Eq for FIELD_INFO_1 {}
impl ::core::default::Default for FIELD_INFO_1 {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct GET_CONTEXT_EX {
pub Status: u32,
pub ContextSize: u32,
pub pContext: *mut ::core::ffi::c_void,
}
impl ::core::marker::Copy for GET_CONTEXT_EX {}
impl ::core::clone::Clone for GET_CONTEXT_EX {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for GET_CONTEXT_EX {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("GET_CONTEXT_EX").field("Status", &self.Status).field("ContextSize", &self.ContextSize).field("pContext", &self.pContext).finish()
}
}
impl ::windows_core::TypeKind for GET_CONTEXT_EX {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for GET_CONTEXT_EX {
fn eq(&self, other: &Self) -> bool {
self.Status == other.Status && self.ContextSize == other.ContextSize && self.pContext == other.pContext
}
}
impl ::core::cmp::Eq for GET_CONTEXT_EX {}
impl ::core::default::Default for GET_CONTEXT_EX {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct GET_CURRENT_PROCESS_ADDRESS {
pub Processor: u32,
pub CurrentThread: u64,
pub Address: u64,
}
impl ::core::marker::Copy for GET_CURRENT_PROCESS_ADDRESS {}
impl ::core::clone::Clone for GET_CURRENT_PROCESS_ADDRESS {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for GET_CURRENT_PROCESS_ADDRESS {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("GET_CURRENT_PROCESS_ADDRESS").field("Processor", &self.Processor).field("CurrentThread", &self.CurrentThread).field("Address", &self.Address).finish()
}
}
impl ::windows_core::TypeKind for GET_CURRENT_PROCESS_ADDRESS {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for GET_CURRENT_PROCESS_ADDRESS {
fn eq(&self, other: &Self) -> bool {
self.Processor == other.Processor && self.CurrentThread == other.CurrentThread && self.Address == other.Address
}
}
impl ::core::cmp::Eq for GET_CURRENT_PROCESS_ADDRESS {}
impl ::core::default::Default for GET_CURRENT_PROCESS_ADDRESS {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct GET_CURRENT_THREAD_ADDRESS {
pub Processor: u32,
pub Address: u64,
}
impl ::core::marker::Copy for GET_CURRENT_THREAD_ADDRESS {}
impl ::core::clone::Clone for GET_CURRENT_THREAD_ADDRESS {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for GET_CURRENT_THREAD_ADDRESS {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("GET_CURRENT_THREAD_ADDRESS").field("Processor", &self.Processor).field("Address", &self.Address).finish()
}
}
impl ::windows_core::TypeKind for GET_CURRENT_THREAD_ADDRESS {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for GET_CURRENT_THREAD_ADDRESS {
fn eq(&self, other: &Self) -> bool {
self.Processor == other.Processor && self.Address == other.Address
}
}
impl ::core::cmp::Eq for GET_CURRENT_THREAD_ADDRESS {}
impl ::core::default::Default for GET_CURRENT_THREAD_ADDRESS {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct GET_EXPRESSION_EX {
pub Expression: ::windows_core::PCSTR,
pub Remainder: ::windows_core::PCSTR,
pub Value: u64,
}
impl ::core::marker::Copy for GET_EXPRESSION_EX {}
impl ::core::clone::Clone for GET_EXPRESSION_EX {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for GET_EXPRESSION_EX {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("GET_EXPRESSION_EX").field("Expression", &self.Expression).field("Remainder", &self.Remainder).field("Value", &self.Value).finish()
}
}
impl ::windows_core::TypeKind for GET_EXPRESSION_EX {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for GET_EXPRESSION_EX {
fn eq(&self, other: &Self) -> bool {
self.Expression == other.Expression && self.Remainder == other.Remainder && self.Value == other.Value
}
}
impl ::core::cmp::Eq for GET_EXPRESSION_EX {}
impl ::core::default::Default for GET_EXPRESSION_EX {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct GET_INPUT_LINE {
pub Prompt: ::windows_core::PCSTR,
pub Buffer: ::windows_core::PSTR,
pub BufferSize: u32,
pub InputSize: u32,
}
impl ::core::marker::Copy for GET_INPUT_LINE {}
impl ::core::clone::Clone for GET_INPUT_LINE {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for GET_INPUT_LINE {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("GET_INPUT_LINE").field("Prompt", &self.Prompt).field("Buffer", &self.Buffer).field("BufferSize", &self.BufferSize).field("InputSize", &self.InputSize).finish()
}
}
impl ::windows_core::TypeKind for GET_INPUT_LINE {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for GET_INPUT_LINE {
fn eq(&self, other: &Self) -> bool {
self.Prompt == other.Prompt && self.Buffer == other.Buffer && self.BufferSize == other.BufferSize && self.InputSize == other.InputSize
}
}
impl ::core::cmp::Eq for GET_INPUT_LINE {}
impl ::core::default::Default for GET_INPUT_LINE {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct GET_PEB_ADDRESS {
pub CurrentThread: u64,
pub Address: u64,
}
impl ::core::marker::Copy for GET_PEB_ADDRESS {}
impl ::core::clone::Clone for GET_PEB_ADDRESS {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for GET_PEB_ADDRESS {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("GET_PEB_ADDRESS").field("CurrentThread", &self.CurrentThread).field("Address", &self.Address).finish()
}
}
impl ::windows_core::TypeKind for GET_PEB_ADDRESS {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for GET_PEB_ADDRESS {
fn eq(&self, other: &Self) -> bool {
self.CurrentThread == other.CurrentThread && self.Address == other.Address
}
}
impl ::core::cmp::Eq for GET_PEB_ADDRESS {}
impl ::core::default::Default for GET_PEB_ADDRESS {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct GET_SET_SYMPATH {
pub Args: ::windows_core::PCSTR,
pub Result: ::windows_core::PSTR,
pub Length: i32,
}
impl ::core::marker::Copy for GET_SET_SYMPATH {}
impl ::core::clone::Clone for GET_SET_SYMPATH {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for GET_SET_SYMPATH {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("GET_SET_SYMPATH").field("Args", &self.Args).field("Result", &self.Result).field("Length", &self.Length).finish()
}
}
impl ::windows_core::TypeKind for GET_SET_SYMPATH {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for GET_SET_SYMPATH {
fn eq(&self, other: &Self) -> bool {
self.Args == other.Args && self.Result == other.Result && self.Length == other.Length
}
}
impl ::core::cmp::Eq for GET_SET_SYMPATH {}
impl ::core::default::Default for GET_SET_SYMPATH {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct GET_TEB_ADDRESS {
pub Address: u64,
}
impl ::core::marker::Copy for GET_TEB_ADDRESS {}
impl ::core::clone::Clone for GET_TEB_ADDRESS {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for GET_TEB_ADDRESS {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("GET_TEB_ADDRESS").field("Address", &self.Address).finish()
}
}
impl ::windows_core::TypeKind for GET_TEB_ADDRESS {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for GET_TEB_ADDRESS {
fn eq(&self, other: &Self) -> bool {
self.Address == other.Address
}
}
impl ::core::cmp::Eq for GET_TEB_ADDRESS {}
impl ::core::default::Default for GET_TEB_ADDRESS {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub union INLINE_FRAME_CONTEXT {
pub ContextValue: u32,
pub Anonymous: INLINE_FRAME_CONTEXT_0,
}
impl ::core::marker::Copy for INLINE_FRAME_CONTEXT {}
impl ::core::clone::Clone for INLINE_FRAME_CONTEXT {
fn clone(&self) -> Self {
*self
}
}
impl ::windows_core::TypeKind for INLINE_FRAME_CONTEXT {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::default::Default for INLINE_FRAME_CONTEXT {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct INLINE_FRAME_CONTEXT_0 {
pub FrameId: u8,
pub FrameType: u8,
pub FrameSignature: u16,
}
impl ::core::marker::Copy for INLINE_FRAME_CONTEXT_0 {}
impl ::core::clone::Clone for INLINE_FRAME_CONTEXT_0 {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for INLINE_FRAME_CONTEXT_0 {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("INLINE_FRAME_CONTEXT_0").field("FrameId", &self.FrameId).field("FrameType", &self.FrameType).field("FrameSignature", &self.FrameSignature).finish()
}
}
impl ::windows_core::TypeKind for INLINE_FRAME_CONTEXT_0 {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for INLINE_FRAME_CONTEXT_0 {
fn eq(&self, other: &Self) -> bool {
self.FrameId == other.FrameId && self.FrameType == other.FrameType && self.FrameSignature == other.FrameSignature
}
}
impl ::core::cmp::Eq for INLINE_FRAME_CONTEXT_0 {}
impl ::core::default::Default for INLINE_FRAME_CONTEXT_0 {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct IOSPACE {
pub Address: u32,
pub Length: u32,
pub Data: u32,
}
impl ::core::marker::Copy for IOSPACE {}
impl ::core::clone::Clone for IOSPACE {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for IOSPACE {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("IOSPACE").field("Address", &self.Address).field("Length", &self.Length).field("Data", &self.Data).finish()
}
}
impl ::windows_core::TypeKind for IOSPACE {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for IOSPACE {
fn eq(&self, other: &Self) -> bool {
self.Address == other.Address && self.Length == other.Length && self.Data == other.Data
}
}
impl ::core::cmp::Eq for IOSPACE {}
impl ::core::default::Default for IOSPACE {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct IOSPACE32 {
pub Address: u32,
pub Length: u32,
pub Data: u32,
}
impl ::core::marker::Copy for IOSPACE32 {}
impl ::core::clone::Clone for IOSPACE32 {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for IOSPACE32 {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("IOSPACE32").field("Address", &self.Address).field("Length", &self.Length).field("Data", &self.Data).finish()
}
}
impl ::windows_core::TypeKind for IOSPACE32 {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for IOSPACE32 {
fn eq(&self, other: &Self) -> bool {
self.Address == other.Address && self.Length == other.Length && self.Data == other.Data
}
}
impl ::core::cmp::Eq for IOSPACE32 {}
impl ::core::default::Default for IOSPACE32 {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct IOSPACE64 {
pub Address: u64,
pub Length: u32,
pub Data: u32,
}
impl ::core::marker::Copy for IOSPACE64 {}
impl ::core::clone::Clone for IOSPACE64 {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for IOSPACE64 {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("IOSPACE64").field("Address", &self.Address).field("Length", &self.Length).field("Data", &self.Data).finish()
}
}
impl ::windows_core::TypeKind for IOSPACE64 {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for IOSPACE64 {
fn eq(&self, other: &Self) -> bool {
self.Address == other.Address && self.Length == other.Length && self.Data == other.Data
}
}
impl ::core::cmp::Eq for IOSPACE64 {}
impl ::core::default::Default for IOSPACE64 {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct IOSPACE_EX {
pub Address: u32,
pub Length: u32,
pub Data: u32,
pub InterfaceType: u32,
pub BusNumber: u32,
pub AddressSpace: u32,
}
impl ::core::marker::Copy for IOSPACE_EX {}
impl ::core::clone::Clone for IOSPACE_EX {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for IOSPACE_EX {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("IOSPACE_EX").field("Address", &self.Address).field("Length", &self.Length).field("Data", &self.Data).field("InterfaceType", &self.InterfaceType).field("BusNumber", &self.BusNumber).field("AddressSpace", &self.AddressSpace).finish()
}
}
impl ::windows_core::TypeKind for IOSPACE_EX {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for IOSPACE_EX {
fn eq(&self, other: &Self) -> bool {
self.Address == other.Address && self.Length == other.Length && self.Data == other.Data && self.InterfaceType == other.InterfaceType && self.BusNumber == other.BusNumber && self.AddressSpace == other.AddressSpace
}
}
impl ::core::cmp::Eq for IOSPACE_EX {}
impl ::core::default::Default for IOSPACE_EX {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct IOSPACE_EX32 {
pub Address: u32,
pub Length: u32,
pub Data: u32,
pub InterfaceType: u32,
pub BusNumber: u32,
pub AddressSpace: u32,
}
impl ::core::marker::Copy for IOSPACE_EX32 {}
impl ::core::clone::Clone for IOSPACE_EX32 {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for IOSPACE_EX32 {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("IOSPACE_EX32").field("Address", &self.Address).field("Length", &self.Length).field("Data", &self.Data).field("InterfaceType", &self.InterfaceType).field("BusNumber", &self.BusNumber).field("AddressSpace", &self.AddressSpace).finish()
}
}
impl ::windows_core::TypeKind for IOSPACE_EX32 {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for IOSPACE_EX32 {
fn eq(&self, other: &Self) -> bool {
self.Address == other.Address && self.Length == other.Length && self.Data == other.Data && self.InterfaceType == other.InterfaceType && self.BusNumber == other.BusNumber && self.AddressSpace == other.AddressSpace
}
}
impl ::core::cmp::Eq for IOSPACE_EX32 {}
impl ::core::default::Default for IOSPACE_EX32 {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct IOSPACE_EX64 {
pub Address: u64,
pub Length: u32,
pub Data: u32,
pub InterfaceType: u32,
pub BusNumber: u32,
pub AddressSpace: u32,
}
impl ::core::marker::Copy for IOSPACE_EX64 {}
impl ::core::clone::Clone for IOSPACE_EX64 {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for IOSPACE_EX64 {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("IOSPACE_EX64").field("Address", &self.Address).field("Length", &self.Length).field("Data", &self.Data).field("InterfaceType", &self.InterfaceType).field("BusNumber", &self.BusNumber).field("AddressSpace", &self.AddressSpace).finish()
}
}
impl ::windows_core::TypeKind for IOSPACE_EX64 {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for IOSPACE_EX64 {
fn eq(&self, other: &Self) -> bool {
self.Address == other.Address && self.Length == other.Length && self.Data == other.Data && self.InterfaceType == other.InterfaceType && self.BusNumber == other.BusNumber && self.AddressSpace == other.AddressSpace
}
}
impl ::core::cmp::Eq for IOSPACE_EX64 {}
impl ::core::default::Default for IOSPACE_EX64 {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
#[doc = "Required features: `\"Win32_System_Kernel\"`"]
#[cfg(feature = "Win32_System_Kernel")]
pub struct KDDEBUGGER_DATA32 {
pub Header: DBGKD_DEBUG_DATA_HEADER32,
pub KernBase: u32,
pub BreakpointWithStatus: u32,
pub SavedContext: u32,
pub ThCallbackStack: u16,
pub NextCallback: u16,
pub FramePointer: u16,
pub _bitfield: u16,
pub KiCallUserMode: u32,
pub KeUserCallbackDispatcher: u32,
pub PsLoadedModuleList: u32,
pub PsActiveProcessHead: u32,
pub PspCidTable: u32,
pub ExpSystemResourcesList: u32,
pub ExpPagedPoolDescriptor: u32,
pub ExpNumberOfPagedPools: u32,
pub KeTimeIncrement: u32,
pub KeBugCheckCallbackListHead: u32,
pub KiBugcheckData: u32,
pub IopErrorLogListHead: u32,
pub ObpRootDirectoryObject: u32,
pub ObpTypeObjectType: u32,
pub MmSystemCacheStart: u32,
pub MmSystemCacheEnd: u32,
pub MmSystemCacheWs: u32,
pub MmPfnDatabase: u32,
pub MmSystemPtesStart: u32,
pub MmSystemPtesEnd: u32,
pub MmSubsectionBase: u32,
pub MmNumberOfPagingFiles: u32,
pub MmLowestPhysicalPage: u32,
pub MmHighestPhysicalPage: u32,
pub MmNumberOfPhysicalPages: u32,
pub MmMaximumNonPagedPoolInBytes: u32,
pub MmNonPagedSystemStart: u32,
pub MmNonPagedPoolStart: u32,
pub MmNonPagedPoolEnd: u32,
pub MmPagedPoolStart: u32,
pub MmPagedPoolEnd: u32,
pub MmPagedPoolInformation: u32,
pub MmPageSize: u32,
pub MmSizeOfPagedPoolInBytes: u32,
pub MmTotalCommitLimit: u32,
pub MmTotalCommittedPages: u32,
pub MmSharedCommit: u32,
pub MmDriverCommit: u32,
pub MmProcessCommit: u32,
pub MmPagedPoolCommit: u32,
pub MmExtendedCommit: u32,
pub MmZeroedPageListHead: u32,
pub MmFreePageListHead: u32,
pub MmStandbyPageListHead: u32,
pub MmModifiedPageListHead: u32,
pub MmModifiedNoWritePageListHead: u32,
pub MmAvailablePages: u32,
pub MmResidentAvailablePages: u32,
pub PoolTrackTable: u32,
pub NonPagedPoolDescriptor: u32,
pub MmHighestUserAddress: u32,
pub MmSystemRangeStart: u32,
pub MmUserProbeAddress: u32,
pub KdPrintCircularBuffer: u32,
pub KdPrintCircularBufferEnd: u32,
pub KdPrintWritePointer: u32,
pub KdPrintRolloverCount: u32,
pub MmLoadedUserImageList: u32,
}
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::marker::Copy for KDDEBUGGER_DATA32 {}
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::clone::Clone for KDDEBUGGER_DATA32 {
fn clone(&self) -> Self {
*self
}
}
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::fmt::Debug for KDDEBUGGER_DATA32 {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("KDDEBUGGER_DATA32")
.field("Header", &self.Header)
.field("KernBase", &self.KernBase)
.field("BreakpointWithStatus", &self.BreakpointWithStatus)
.field("SavedContext", &self.SavedContext)
.field("ThCallbackStack", &self.ThCallbackStack)
.field("NextCallback", &self.NextCallback)
.field("FramePointer", &self.FramePointer)
.field("_bitfield", &self._bitfield)
.field("KiCallUserMode", &self.KiCallUserMode)
.field("KeUserCallbackDispatcher", &self.KeUserCallbackDispatcher)
.field("PsLoadedModuleList", &self.PsLoadedModuleList)
.field("PsActiveProcessHead", &self.PsActiveProcessHead)
.field("PspCidTable", &self.PspCidTable)
.field("ExpSystemResourcesList", &self.ExpSystemResourcesList)
.field("ExpPagedPoolDescriptor", &self.ExpPagedPoolDescriptor)
.field("ExpNumberOfPagedPools", &self.ExpNumberOfPagedPools)
.field("KeTimeIncrement", &self.KeTimeIncrement)
.field("KeBugCheckCallbackListHead", &self.KeBugCheckCallbackListHead)
.field("KiBugcheckData", &self.KiBugcheckData)
.field("IopErrorLogListHead", &self.IopErrorLogListHead)
.field("ObpRootDirectoryObject", &self.ObpRootDirectoryObject)
.field("ObpTypeObjectType", &self.ObpTypeObjectType)
.field("MmSystemCacheStart", &self.MmSystemCacheStart)
.field("MmSystemCacheEnd", &self.MmSystemCacheEnd)
.field("MmSystemCacheWs", &self.MmSystemCacheWs)
.field("MmPfnDatabase", &self.MmPfnDatabase)
.field("MmSystemPtesStart", &self.MmSystemPtesStart)
.field("MmSystemPtesEnd", &self.MmSystemPtesEnd)
.field("MmSubsectionBase", &self.MmSubsectionBase)
.field("MmNumberOfPagingFiles", &self.MmNumberOfPagingFiles)
.field("MmLowestPhysicalPage", &self.MmLowestPhysicalPage)
.field("MmHighestPhysicalPage", &self.MmHighestPhysicalPage)
.field("MmNumberOfPhysicalPages", &self.MmNumberOfPhysicalPages)
.field("MmMaximumNonPagedPoolInBytes", &self.MmMaximumNonPagedPoolInBytes)
.field("MmNonPagedSystemStart", &self.MmNonPagedSystemStart)
.field("MmNonPagedPoolStart", &self.MmNonPagedPoolStart)
.field("MmNonPagedPoolEnd", &self.MmNonPagedPoolEnd)
.field("MmPagedPoolStart", &self.MmPagedPoolStart)
.field("MmPagedPoolEnd", &self.MmPagedPoolEnd)
.field("MmPagedPoolInformation", &self.MmPagedPoolInformation)
.field("MmPageSize", &self.MmPageSize)
.field("MmSizeOfPagedPoolInBytes", &self.MmSizeOfPagedPoolInBytes)
.field("MmTotalCommitLimit", &self.MmTotalCommitLimit)
.field("MmTotalCommittedPages", &self.MmTotalCommittedPages)
.field("MmSharedCommit", &self.MmSharedCommit)
.field("MmDriverCommit", &self.MmDriverCommit)
.field("MmProcessCommit", &self.MmProcessCommit)
.field("MmPagedPoolCommit", &self.MmPagedPoolCommit)
.field("MmExtendedCommit", &self.MmExtendedCommit)
.field("MmZeroedPageListHead", &self.MmZeroedPageListHead)
.field("MmFreePageListHead", &self.MmFreePageListHead)
.field("MmStandbyPageListHead", &self.MmStandbyPageListHead)
.field("MmModifiedPageListHead", &self.MmModifiedPageListHead)
.field("MmModifiedNoWritePageListHead", &self.MmModifiedNoWritePageListHead)
.field("MmAvailablePages", &self.MmAvailablePages)
.field("MmResidentAvailablePages", &self.MmResidentAvailablePages)
.field("PoolTrackTable", &self.PoolTrackTable)
.field("NonPagedPoolDescriptor", &self.NonPagedPoolDescriptor)
.field("MmHighestUserAddress", &self.MmHighestUserAddress)
.field("MmSystemRangeStart", &self.MmSystemRangeStart)
.field("MmUserProbeAddress", &self.MmUserProbeAddress)
.field("KdPrintCircularBuffer", &self.KdPrintCircularBuffer)
.field("KdPrintCircularBufferEnd", &self.KdPrintCircularBufferEnd)
.field("KdPrintWritePointer", &self.KdPrintWritePointer)
.field("KdPrintRolloverCount", &self.KdPrintRolloverCount)
.field("MmLoadedUserImageList", &self.MmLoadedUserImageList)
.finish()
}
}
#[cfg(feature = "Win32_System_Kernel")]
impl ::windows_core::TypeKind for KDDEBUGGER_DATA32 {
type TypeKind = ::windows_core::CopyType;
}
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::cmp::PartialEq for KDDEBUGGER_DATA32 {
fn eq(&self, other: &Self) -> bool {
self.Header == other.Header
&& self.KernBase == other.KernBase
&& self.BreakpointWithStatus == other.BreakpointWithStatus
&& self.SavedContext == other.SavedContext
&& self.ThCallbackStack == other.ThCallbackStack
&& self.NextCallback == other.NextCallback
&& self.FramePointer == other.FramePointer
&& self._bitfield == other._bitfield
&& self.KiCallUserMode == other.KiCallUserMode
&& self.KeUserCallbackDispatcher == other.KeUserCallbackDispatcher
&& self.PsLoadedModuleList == other.PsLoadedModuleList
&& self.PsActiveProcessHead == other.PsActiveProcessHead
&& self.PspCidTable == other.PspCidTable
&& self.ExpSystemResourcesList == other.ExpSystemResourcesList
&& self.ExpPagedPoolDescriptor == other.ExpPagedPoolDescriptor
&& self.ExpNumberOfPagedPools == other.ExpNumberOfPagedPools
&& self.KeTimeIncrement == other.KeTimeIncrement
&& self.KeBugCheckCallbackListHead == other.KeBugCheckCallbackListHead
&& self.KiBugcheckData == other.KiBugcheckData
&& self.IopErrorLogListHead == other.IopErrorLogListHead
&& self.ObpRootDirectoryObject == other.ObpRootDirectoryObject
&& self.ObpTypeObjectType == other.ObpTypeObjectType
&& self.MmSystemCacheStart == other.MmSystemCacheStart
&& self.MmSystemCacheEnd == other.MmSystemCacheEnd
&& self.MmSystemCacheWs == other.MmSystemCacheWs
&& self.MmPfnDatabase == other.MmPfnDatabase
&& self.MmSystemPtesStart == other.MmSystemPtesStart
&& self.MmSystemPtesEnd == other.MmSystemPtesEnd
&& self.MmSubsectionBase == other.MmSubsectionBase
&& self.MmNumberOfPagingFiles == other.MmNumberOfPagingFiles
&& self.MmLowestPhysicalPage == other.MmLowestPhysicalPage
&& self.MmHighestPhysicalPage == other.MmHighestPhysicalPage
&& self.MmNumberOfPhysicalPages == other.MmNumberOfPhysicalPages
&& self.MmMaximumNonPagedPoolInBytes == other.MmMaximumNonPagedPoolInBytes
&& self.MmNonPagedSystemStart == other.MmNonPagedSystemStart
&& self.MmNonPagedPoolStart == other.MmNonPagedPoolStart
&& self.MmNonPagedPoolEnd == other.MmNonPagedPoolEnd
&& self.MmPagedPoolStart == other.MmPagedPoolStart
&& self.MmPagedPoolEnd == other.MmPagedPoolEnd
&& self.MmPagedPoolInformation == other.MmPagedPoolInformation
&& self.MmPageSize == other.MmPageSize
&& self.MmSizeOfPagedPoolInBytes == other.MmSizeOfPagedPoolInBytes
&& self.MmTotalCommitLimit == other.MmTotalCommitLimit
&& self.MmTotalCommittedPages == other.MmTotalCommittedPages
&& self.MmSharedCommit == other.MmSharedCommit
&& self.MmDriverCommit == other.MmDriverCommit
&& self.MmProcessCommit == other.MmProcessCommit
&& self.MmPagedPoolCommit == other.MmPagedPoolCommit
&& self.MmExtendedCommit == other.MmExtendedCommit
&& self.MmZeroedPageListHead == other.MmZeroedPageListHead
&& self.MmFreePageListHead == other.MmFreePageListHead
&& self.MmStandbyPageListHead == other.MmStandbyPageListHead
&& self.MmModifiedPageListHead == other.MmModifiedPageListHead
&& self.MmModifiedNoWritePageListHead == other.MmModifiedNoWritePageListHead
&& self.MmAvailablePages == other.MmAvailablePages
&& self.MmResidentAvailablePages == other.MmResidentAvailablePages
&& self.PoolTrackTable == other.PoolTrackTable
&& self.NonPagedPoolDescriptor == other.NonPagedPoolDescriptor
&& self.MmHighestUserAddress == other.MmHighestUserAddress
&& self.MmSystemRangeStart == other.MmSystemRangeStart
&& self.MmUserProbeAddress == other.MmUserProbeAddress
&& self.KdPrintCircularBuffer == other.KdPrintCircularBuffer
&& self.KdPrintCircularBufferEnd == other.KdPrintCircularBufferEnd
&& self.KdPrintWritePointer == other.KdPrintWritePointer
&& self.KdPrintRolloverCount == other.KdPrintRolloverCount
&& self.MmLoadedUserImageList == other.MmLoadedUserImageList
}
}
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::cmp::Eq for KDDEBUGGER_DATA32 {}
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::default::Default for KDDEBUGGER_DATA32 {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
#[doc = "Required features: `\"Win32_System_Kernel\"`"]
#[cfg(feature = "Win32_System_Kernel")]
pub struct KDDEBUGGER_DATA64 {
pub Header: DBGKD_DEBUG_DATA_HEADER64,
pub KernBase: u64,
pub BreakpointWithStatus: u64,
pub SavedContext: u64,
pub ThCallbackStack: u16,
pub NextCallback: u16,
pub FramePointer: u16,
pub _bitfield: u16,
pub KiCallUserMode: u64,
pub KeUserCallbackDispatcher: u64,
pub PsLoadedModuleList: u64,
pub PsActiveProcessHead: u64,
pub PspCidTable: u64,
pub ExpSystemResourcesList: u64,
pub ExpPagedPoolDescriptor: u64,
pub ExpNumberOfPagedPools: u64,
pub KeTimeIncrement: u64,
pub KeBugCheckCallbackListHead: u64,
pub KiBugcheckData: u64,
pub IopErrorLogListHead: u64,
pub ObpRootDirectoryObject: u64,
pub ObpTypeObjectType: u64,
pub MmSystemCacheStart: u64,
pub MmSystemCacheEnd: u64,
pub MmSystemCacheWs: u64,
pub MmPfnDatabase: u64,
pub MmSystemPtesStart: u64,
pub MmSystemPtesEnd: u64,
pub MmSubsectionBase: u64,
pub MmNumberOfPagingFiles: u64,
pub MmLowestPhysicalPage: u64,
pub MmHighestPhysicalPage: u64,
pub MmNumberOfPhysicalPages: u64,
pub MmMaximumNonPagedPoolInBytes: u64,
pub MmNonPagedSystemStart: u64,
pub MmNonPagedPoolStart: u64,
pub MmNonPagedPoolEnd: u64,
pub MmPagedPoolStart: u64,
pub MmPagedPoolEnd: u64,
pub MmPagedPoolInformation: u64,
pub MmPageSize: u64,
pub MmSizeOfPagedPoolInBytes: u64,
pub MmTotalCommitLimit: u64,
pub MmTotalCommittedPages: u64,
pub MmSharedCommit: u64,
pub MmDriverCommit: u64,
pub MmProcessCommit: u64,
pub MmPagedPoolCommit: u64,
pub MmExtendedCommit: u64,
pub MmZeroedPageListHead: u64,
pub MmFreePageListHead: u64,
pub MmStandbyPageListHead: u64,
pub MmModifiedPageListHead: u64,
pub MmModifiedNoWritePageListHead: u64,
pub MmAvailablePages: u64,
pub MmResidentAvailablePages: u64,
pub PoolTrackTable: u64,
pub NonPagedPoolDescriptor: u64,
pub MmHighestUserAddress: u64,
pub MmSystemRangeStart: u64,
pub MmUserProbeAddress: u64,
pub KdPrintCircularBuffer: u64,
pub KdPrintCircularBufferEnd: u64,
pub KdPrintWritePointer: u64,
pub KdPrintRolloverCount: u64,
pub MmLoadedUserImageList: u64,
pub NtBuildLab: u64,
pub KiNormalSystemCall: u64,
pub KiProcessorBlock: u64,
pub MmUnloadedDrivers: u64,
pub MmLastUnloadedDriver: u64,
pub MmTriageActionTaken: u64,
pub MmSpecialPoolTag: u64,
pub KernelVerifier: u64,
pub MmVerifierData: u64,
pub MmAllocatedNonPagedPool: u64,
pub MmPeakCommitment: u64,
pub MmTotalCommitLimitMaximum: u64,
pub CmNtCSDVersion: u64,
pub MmPhysicalMemoryBlock: u64,
pub MmSessionBase: u64,
pub MmSessionSize: u64,
pub MmSystemParentTablePage: u64,
pub MmVirtualTranslationBase: u64,
pub OffsetKThreadNextProcessor: u16,
pub OffsetKThreadTeb: u16,
pub OffsetKThreadKernelStack: u16,
pub OffsetKThreadInitialStack: u16,
pub OffsetKThreadApcProcess: u16,
pub OffsetKThreadState: u16,
pub OffsetKThreadBStore: u16,
pub OffsetKThreadBStoreLimit: u16,
pub SizeEProcess: u16,
pub OffsetEprocessPeb: u16,
pub OffsetEprocessParentCID: u16,
pub OffsetEprocessDirectoryTableBase: u16,
pub SizePrcb: u16,
pub OffsetPrcbDpcRoutine: u16,
pub OffsetPrcbCurrentThread: u16,
pub OffsetPrcbMhz: u16,
pub OffsetPrcbCpuType: u16,
pub OffsetPrcbVendorString: u16,
pub OffsetPrcbProcStateContext: u16,
pub OffsetPrcbNumber: u16,
pub SizeEThread: u16,
pub L1tfHighPhysicalBitIndex: u8,
pub L1tfSwizzleBitIndex: u8,
pub Padding0: u32,
pub KdPrintCircularBufferPtr: u64,
pub KdPrintBufferSize: u64,
pub KeLoaderBlock: u64,
pub SizePcr: u16,
pub OffsetPcrSelfPcr: u16,
pub OffsetPcrCurrentPrcb: u16,
pub OffsetPcrContainedPrcb: u16,
pub OffsetPcrInitialBStore: u16,
pub OffsetPcrBStoreLimit: u16,
pub OffsetPcrInitialStack: u16,
pub OffsetPcrStackLimit: u16,
pub OffsetPrcbPcrPage: u16,
pub OffsetPrcbProcStateSpecialReg: u16,
pub GdtR0Code: u16,
pub GdtR0Data: u16,
pub GdtR0Pcr: u16,
pub GdtR3Code: u16,
pub GdtR3Data: u16,
pub GdtR3Teb: u16,
pub GdtLdt: u16,
pub GdtTss: u16,
pub Gdt64R3CmCode: u16,
pub Gdt64R3CmTeb: u16,
pub IopNumTriageDumpDataBlocks: u64,
pub IopTriageDumpDataBlocks: u64,
pub VfCrashDataBlock: u64,
pub MmBadPagesDetected: u64,
pub MmZeroedPageSingleBitErrorsDetected: u64,
pub EtwpDebuggerData: u64,
pub OffsetPrcbContext: u16,
pub OffsetPrcbMaxBreakpoints: u16,
pub OffsetPrcbMaxWatchpoints: u16,
pub OffsetKThreadStackLimit: u32,
pub OffsetKThreadStackBase: u32,
pub OffsetKThreadQueueListEntry: u32,
pub OffsetEThreadIrpList: u32,
pub OffsetPrcbIdleThread: u16,
pub OffsetPrcbNormalDpcState: u16,
pub OffsetPrcbDpcStack: u16,
pub OffsetPrcbIsrStack: u16,
pub SizeKDPC_STACK_FRAME: u16,
pub OffsetKPriQueueThreadListHead: u16,
pub OffsetKThreadWaitReason: u16,
pub Padding1: u16,
pub PteBase: u64,
pub RetpolineStubFunctionTable: u64,
pub RetpolineStubFunctionTableSize: u32,
pub RetpolineStubOffset: u32,
pub RetpolineStubSize: u32,
pub OffsetEProcessMmHotPatchContext: u16,
pub OffsetKThreadShadowStackLimit: u32,
pub OffsetKThreadShadowStackBase: u32,
pub ShadowStackEnabled: u64,
pub PointerAuthMask: u64,
pub OffsetPrcbExceptionStack: u16,
}
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::marker::Copy for KDDEBUGGER_DATA64 {}
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::clone::Clone for KDDEBUGGER_DATA64 {
fn clone(&self) -> Self {
*self
}
}
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::fmt::Debug for KDDEBUGGER_DATA64 {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("KDDEBUGGER_DATA64")
.field("Header", &self.Header)
.field("KernBase", &self.KernBase)
.field("BreakpointWithStatus", &self.BreakpointWithStatus)
.field("SavedContext", &self.SavedContext)
.field("ThCallbackStack", &self.ThCallbackStack)
.field("NextCallback", &self.NextCallback)
.field("FramePointer", &self.FramePointer)
.field("_bitfield", &self._bitfield)
.field("KiCallUserMode", &self.KiCallUserMode)
.field("KeUserCallbackDispatcher", &self.KeUserCallbackDispatcher)
.field("PsLoadedModuleList", &self.PsLoadedModuleList)
.field("PsActiveProcessHead", &self.PsActiveProcessHead)
.field("PspCidTable", &self.PspCidTable)
.field("ExpSystemResourcesList", &self.ExpSystemResourcesList)
.field("ExpPagedPoolDescriptor", &self.ExpPagedPoolDescriptor)
.field("ExpNumberOfPagedPools", &self.ExpNumberOfPagedPools)
.field("KeTimeIncrement", &self.KeTimeIncrement)
.field("KeBugCheckCallbackListHead", &self.KeBugCheckCallbackListHead)
.field("KiBugcheckData", &self.KiBugcheckData)
.field("IopErrorLogListHead", &self.IopErrorLogListHead)
.field("ObpRootDirectoryObject", &self.ObpRootDirectoryObject)
.field("ObpTypeObjectType", &self.ObpTypeObjectType)
.field("MmSystemCacheStart", &self.MmSystemCacheStart)
.field("MmSystemCacheEnd", &self.MmSystemCacheEnd)
.field("MmSystemCacheWs", &self.MmSystemCacheWs)
.field("MmPfnDatabase", &self.MmPfnDatabase)
.field("MmSystemPtesStart", &self.MmSystemPtesStart)
.field("MmSystemPtesEnd", &self.MmSystemPtesEnd)
.field("MmSubsectionBase", &self.MmSubsectionBase)
.field("MmNumberOfPagingFiles", &self.MmNumberOfPagingFiles)
.field("MmLowestPhysicalPage", &self.MmLowestPhysicalPage)
.field("MmHighestPhysicalPage", &self.MmHighestPhysicalPage)
.field("MmNumberOfPhysicalPages", &self.MmNumberOfPhysicalPages)
.field("MmMaximumNonPagedPoolInBytes", &self.MmMaximumNonPagedPoolInBytes)
.field("MmNonPagedSystemStart", &self.MmNonPagedSystemStart)
.field("MmNonPagedPoolStart", &self.MmNonPagedPoolStart)
.field("MmNonPagedPoolEnd", &self.MmNonPagedPoolEnd)
.field("MmPagedPoolStart", &self.MmPagedPoolStart)
.field("MmPagedPoolEnd", &self.MmPagedPoolEnd)
.field("MmPagedPoolInformation", &self.MmPagedPoolInformation)
.field("MmPageSize", &self.MmPageSize)
.field("MmSizeOfPagedPoolInBytes", &self.MmSizeOfPagedPoolInBytes)
.field("MmTotalCommitLimit", &self.MmTotalCommitLimit)
.field("MmTotalCommittedPages", &self.MmTotalCommittedPages)
.field("MmSharedCommit", &self.MmSharedCommit)
.field("MmDriverCommit", &self.MmDriverCommit)
.field("MmProcessCommit", &self.MmProcessCommit)
.field("MmPagedPoolCommit", &self.MmPagedPoolCommit)
.field("MmExtendedCommit", &self.MmExtendedCommit)
.field("MmZeroedPageListHead", &self.MmZeroedPageListHead)
.field("MmFreePageListHead", &self.MmFreePageListHead)
.field("MmStandbyPageListHead", &self.MmStandbyPageListHead)
.field("MmModifiedPageListHead", &self.MmModifiedPageListHead)
.field("MmModifiedNoWritePageListHead", &self.MmModifiedNoWritePageListHead)
.field("MmAvailablePages", &self.MmAvailablePages)
.field("MmResidentAvailablePages", &self.MmResidentAvailablePages)
.field("PoolTrackTable", &self.PoolTrackTable)
.field("NonPagedPoolDescriptor", &self.NonPagedPoolDescriptor)
.field("MmHighestUserAddress", &self.MmHighestUserAddress)
.field("MmSystemRangeStart", &self.MmSystemRangeStart)
.field("MmUserProbeAddress", &self.MmUserProbeAddress)
.field("KdPrintCircularBuffer", &self.KdPrintCircularBuffer)
.field("KdPrintCircularBufferEnd", &self.KdPrintCircularBufferEnd)
.field("KdPrintWritePointer", &self.KdPrintWritePointer)
.field("KdPrintRolloverCount", &self.KdPrintRolloverCount)
.field("MmLoadedUserImageList", &self.MmLoadedUserImageList)
.field("NtBuildLab", &self.NtBuildLab)
.field("KiNormalSystemCall", &self.KiNormalSystemCall)
.field("KiProcessorBlock", &self.KiProcessorBlock)
.field("MmUnloadedDrivers", &self.MmUnloadedDrivers)
.field("MmLastUnloadedDriver", &self.MmLastUnloadedDriver)
.field("MmTriageActionTaken", &self.MmTriageActionTaken)
.field("MmSpecialPoolTag", &self.MmSpecialPoolTag)
.field("KernelVerifier", &self.KernelVerifier)
.field("MmVerifierData", &self.MmVerifierData)
.field("MmAllocatedNonPagedPool", &self.MmAllocatedNonPagedPool)
.field("MmPeakCommitment", &self.MmPeakCommitment)
.field("MmTotalCommitLimitMaximum", &self.MmTotalCommitLimitMaximum)
.field("CmNtCSDVersion", &self.CmNtCSDVersion)
.field("MmPhysicalMemoryBlock", &self.MmPhysicalMemoryBlock)
.field("MmSessionBase", &self.MmSessionBase)
.field("MmSessionSize", &self.MmSessionSize)
.field("MmSystemParentTablePage", &self.MmSystemParentTablePage)
.field("MmVirtualTranslationBase", &self.MmVirtualTranslationBase)
.field("OffsetKThreadNextProcessor", &self.OffsetKThreadNextProcessor)
.field("OffsetKThreadTeb", &self.OffsetKThreadTeb)
.field("OffsetKThreadKernelStack", &self.OffsetKThreadKernelStack)
.field("OffsetKThreadInitialStack", &self.OffsetKThreadInitialStack)
.field("OffsetKThreadApcProcess", &self.OffsetKThreadApcProcess)
.field("OffsetKThreadState", &self.OffsetKThreadState)
.field("OffsetKThreadBStore", &self.OffsetKThreadBStore)
.field("OffsetKThreadBStoreLimit", &self.OffsetKThreadBStoreLimit)
.field("SizeEProcess", &self.SizeEProcess)
.field("OffsetEprocessPeb", &self.OffsetEprocessPeb)
.field("OffsetEprocessParentCID", &self.OffsetEprocessParentCID)
.field("OffsetEprocessDirectoryTableBase", &self.OffsetEprocessDirectoryTableBase)
.field("SizePrcb", &self.SizePrcb)
.field("OffsetPrcbDpcRoutine", &self.OffsetPrcbDpcRoutine)
.field("OffsetPrcbCurrentThread", &self.OffsetPrcbCurrentThread)
.field("OffsetPrcbMhz", &self.OffsetPrcbMhz)
.field("OffsetPrcbCpuType", &self.OffsetPrcbCpuType)
.field("OffsetPrcbVendorString", &self.OffsetPrcbVendorString)
.field("OffsetPrcbProcStateContext", &self.OffsetPrcbProcStateContext)
.field("OffsetPrcbNumber", &self.OffsetPrcbNumber)
.field("SizeEThread", &self.SizeEThread)
.field("L1tfHighPhysicalBitIndex", &self.L1tfHighPhysicalBitIndex)
.field("L1tfSwizzleBitIndex", &self.L1tfSwizzleBitIndex)
.field("Padding0", &self.Padding0)
.field("KdPrintCircularBufferPtr", &self.KdPrintCircularBufferPtr)
.field("KdPrintBufferSize", &self.KdPrintBufferSize)
.field("KeLoaderBlock", &self.KeLoaderBlock)
.field("SizePcr", &self.SizePcr)
.field("OffsetPcrSelfPcr", &self.OffsetPcrSelfPcr)
.field("OffsetPcrCurrentPrcb", &self.OffsetPcrCurrentPrcb)
.field("OffsetPcrContainedPrcb", &self.OffsetPcrContainedPrcb)
.field("OffsetPcrInitialBStore", &self.OffsetPcrInitialBStore)
.field("OffsetPcrBStoreLimit", &self.OffsetPcrBStoreLimit)
.field("OffsetPcrInitialStack", &self.OffsetPcrInitialStack)
.field("OffsetPcrStackLimit", &self.OffsetPcrStackLimit)
.field("OffsetPrcbPcrPage", &self.OffsetPrcbPcrPage)
.field("OffsetPrcbProcStateSpecialReg", &self.OffsetPrcbProcStateSpecialReg)
.field("GdtR0Code", &self.GdtR0Code)
.field("GdtR0Data", &self.GdtR0Data)
.field("GdtR0Pcr", &self.GdtR0Pcr)
.field("GdtR3Code", &self.GdtR3Code)
.field("GdtR3Data", &self.GdtR3Data)
.field("GdtR3Teb", &self.GdtR3Teb)
.field("GdtLdt", &self.GdtLdt)
.field("GdtTss", &self.GdtTss)
.field("Gdt64R3CmCode", &self.Gdt64R3CmCode)
.field("Gdt64R3CmTeb", &self.Gdt64R3CmTeb)
.field("IopNumTriageDumpDataBlocks", &self.IopNumTriageDumpDataBlocks)
.field("IopTriageDumpDataBlocks", &self.IopTriageDumpDataBlocks)
.field("VfCrashDataBlock", &self.VfCrashDataBlock)
.field("MmBadPagesDetected", &self.MmBadPagesDetected)
.field("MmZeroedPageSingleBitErrorsDetected", &self.MmZeroedPageSingleBitErrorsDetected)
.field("EtwpDebuggerData", &self.EtwpDebuggerData)
.field("OffsetPrcbContext", &self.OffsetPrcbContext)
.field("OffsetPrcbMaxBreakpoints", &self.OffsetPrcbMaxBreakpoints)
.field("OffsetPrcbMaxWatchpoints", &self.OffsetPrcbMaxWatchpoints)
.field("OffsetKThreadStackLimit", &self.OffsetKThreadStackLimit)
.field("OffsetKThreadStackBase", &self.OffsetKThreadStackBase)
.field("OffsetKThreadQueueListEntry", &self.OffsetKThreadQueueListEntry)
.field("OffsetEThreadIrpList", &self.OffsetEThreadIrpList)
.field("OffsetPrcbIdleThread", &self.OffsetPrcbIdleThread)
.field("OffsetPrcbNormalDpcState", &self.OffsetPrcbNormalDpcState)
.field("OffsetPrcbDpcStack", &self.OffsetPrcbDpcStack)
.field("OffsetPrcbIsrStack", &self.OffsetPrcbIsrStack)
.field("SizeKDPC_STACK_FRAME", &self.SizeKDPC_STACK_FRAME)
.field("OffsetKPriQueueThreadListHead", &self.OffsetKPriQueueThreadListHead)
.field("OffsetKThreadWaitReason", &self.OffsetKThreadWaitReason)
.field("Padding1", &self.Padding1)
.field("PteBase", &self.PteBase)
.field("RetpolineStubFunctionTable", &self.RetpolineStubFunctionTable)
.field("RetpolineStubFunctionTableSize", &self.RetpolineStubFunctionTableSize)
.field("RetpolineStubOffset", &self.RetpolineStubOffset)
.field("RetpolineStubSize", &self.RetpolineStubSize)
.field("OffsetEProcessMmHotPatchContext", &self.OffsetEProcessMmHotPatchContext)
.field("OffsetKThreadShadowStackLimit", &self.OffsetKThreadShadowStackLimit)
.field("OffsetKThreadShadowStackBase", &self.OffsetKThreadShadowStackBase)
.field("ShadowStackEnabled", &self.ShadowStackEnabled)
.field("PointerAuthMask", &self.PointerAuthMask)
.field("OffsetPrcbExceptionStack", &self.OffsetPrcbExceptionStack)
.finish()
}
}
#[cfg(feature = "Win32_System_Kernel")]
impl ::windows_core::TypeKind for KDDEBUGGER_DATA64 {
type TypeKind = ::windows_core::CopyType;
}
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::cmp::PartialEq for KDDEBUGGER_DATA64 {
fn eq(&self, other: &Self) -> bool {
self.Header == other.Header
&& self.KernBase == other.KernBase
&& self.BreakpointWithStatus == other.BreakpointWithStatus
&& self.SavedContext == other.SavedContext
&& self.ThCallbackStack == other.ThCallbackStack
&& self.NextCallback == other.NextCallback
&& self.FramePointer == other.FramePointer
&& self._bitfield == other._bitfield
&& self.KiCallUserMode == other.KiCallUserMode
&& self.KeUserCallbackDispatcher == other.KeUserCallbackDispatcher
&& self.PsLoadedModuleList == other.PsLoadedModuleList
&& self.PsActiveProcessHead == other.PsActiveProcessHead
&& self.PspCidTable == other.PspCidTable
&& self.ExpSystemResourcesList == other.ExpSystemResourcesList
&& self.ExpPagedPoolDescriptor == other.ExpPagedPoolDescriptor
&& self.ExpNumberOfPagedPools == other.ExpNumberOfPagedPools
&& self.KeTimeIncrement == other.KeTimeIncrement
&& self.KeBugCheckCallbackListHead == other.KeBugCheckCallbackListHead
&& self.KiBugcheckData == other.KiBugcheckData
&& self.IopErrorLogListHead == other.IopErrorLogListHead
&& self.ObpRootDirectoryObject == other.ObpRootDirectoryObject
&& self.ObpTypeObjectType == other.ObpTypeObjectType
&& self.MmSystemCacheStart == other.MmSystemCacheStart
&& self.MmSystemCacheEnd == other.MmSystemCacheEnd
&& self.MmSystemCacheWs == other.MmSystemCacheWs
&& self.MmPfnDatabase == other.MmPfnDatabase
&& self.MmSystemPtesStart == other.MmSystemPtesStart
&& self.MmSystemPtesEnd == other.MmSystemPtesEnd
&& self.MmSubsectionBase == other.MmSubsectionBase
&& self.MmNumberOfPagingFiles == other.MmNumberOfPagingFiles
&& self.MmLowestPhysicalPage == other.MmLowestPhysicalPage
&& self.MmHighestPhysicalPage == other.MmHighestPhysicalPage
&& self.MmNumberOfPhysicalPages == other.MmNumberOfPhysicalPages
&& self.MmMaximumNonPagedPoolInBytes == other.MmMaximumNonPagedPoolInBytes
&& self.MmNonPagedSystemStart == other.MmNonPagedSystemStart
&& self.MmNonPagedPoolStart == other.MmNonPagedPoolStart
&& self.MmNonPagedPoolEnd == other.MmNonPagedPoolEnd
&& self.MmPagedPoolStart == other.MmPagedPoolStart
&& self.MmPagedPoolEnd == other.MmPagedPoolEnd
&& self.MmPagedPoolInformation == other.MmPagedPoolInformation
&& self.MmPageSize == other.MmPageSize
&& self.MmSizeOfPagedPoolInBytes == other.MmSizeOfPagedPoolInBytes
&& self.MmTotalCommitLimit == other.MmTotalCommitLimit
&& self.MmTotalCommittedPages == other.MmTotalCommittedPages
&& self.MmSharedCommit == other.MmSharedCommit
&& self.MmDriverCommit == other.MmDriverCommit
&& self.MmProcessCommit == other.MmProcessCommit
&& self.MmPagedPoolCommit == other.MmPagedPoolCommit
&& self.MmExtendedCommit == other.MmExtendedCommit
&& self.MmZeroedPageListHead == other.MmZeroedPageListHead
&& self.MmFreePageListHead == other.MmFreePageListHead
&& self.MmStandbyPageListHead == other.MmStandbyPageListHead
&& self.MmModifiedPageListHead == other.MmModifiedPageListHead
&& self.MmModifiedNoWritePageListHead == other.MmModifiedNoWritePageListHead
&& self.MmAvailablePages == other.MmAvailablePages
&& self.MmResidentAvailablePages == other.MmResidentAvailablePages
&& self.PoolTrackTable == other.PoolTrackTable
&& self.NonPagedPoolDescriptor == other.NonPagedPoolDescriptor
&& self.MmHighestUserAddress == other.MmHighestUserAddress
&& self.MmSystemRangeStart == other.MmSystemRangeStart
&& self.MmUserProbeAddress == other.MmUserProbeAddress
&& self.KdPrintCircularBuffer == other.KdPrintCircularBuffer
&& self.KdPrintCircularBufferEnd == other.KdPrintCircularBufferEnd
&& self.KdPrintWritePointer == other.KdPrintWritePointer
&& self.KdPrintRolloverCount == other.KdPrintRolloverCount
&& self.MmLoadedUserImageList == other.MmLoadedUserImageList
&& self.NtBuildLab == other.NtBuildLab
&& self.KiNormalSystemCall == other.KiNormalSystemCall
&& self.KiProcessorBlock == other.KiProcessorBlock
&& self.MmUnloadedDrivers == other.MmUnloadedDrivers
&& self.MmLastUnloadedDriver == other.MmLastUnloadedDriver
&& self.MmTriageActionTaken == other.MmTriageActionTaken
&& self.MmSpecialPoolTag == other.MmSpecialPoolTag
&& self.KernelVerifier == other.KernelVerifier
&& self.MmVerifierData == other.MmVerifierData
&& self.MmAllocatedNonPagedPool == other.MmAllocatedNonPagedPool
&& self.MmPeakCommitment == other.MmPeakCommitment
&& self.MmTotalCommitLimitMaximum == other.MmTotalCommitLimitMaximum
&& self.CmNtCSDVersion == other.CmNtCSDVersion
&& self.MmPhysicalMemoryBlock == other.MmPhysicalMemoryBlock
&& self.MmSessionBase == other.MmSessionBase
&& self.MmSessionSize == other.MmSessionSize
&& self.MmSystemParentTablePage == other.MmSystemParentTablePage
&& self.MmVirtualTranslationBase == other.MmVirtualTranslationBase
&& self.OffsetKThreadNextProcessor == other.OffsetKThreadNextProcessor
&& self.OffsetKThreadTeb == other.OffsetKThreadTeb
&& self.OffsetKThreadKernelStack == other.OffsetKThreadKernelStack
&& self.OffsetKThreadInitialStack == other.OffsetKThreadInitialStack
&& self.OffsetKThreadApcProcess == other.OffsetKThreadApcProcess
&& self.OffsetKThreadState == other.OffsetKThreadState
&& self.OffsetKThreadBStore == other.OffsetKThreadBStore
&& self.OffsetKThreadBStoreLimit == other.OffsetKThreadBStoreLimit
&& self.SizeEProcess == other.SizeEProcess
&& self.OffsetEprocessPeb == other.OffsetEprocessPeb
&& self.OffsetEprocessParentCID == other.OffsetEprocessParentCID
&& self.OffsetEprocessDirectoryTableBase == other.OffsetEprocessDirectoryTableBase
&& self.SizePrcb == other.SizePrcb
&& self.OffsetPrcbDpcRoutine == other.OffsetPrcbDpcRoutine
&& self.OffsetPrcbCurrentThread == other.OffsetPrcbCurrentThread
&& self.OffsetPrcbMhz == other.OffsetPrcbMhz
&& self.OffsetPrcbCpuType == other.OffsetPrcbCpuType
&& self.OffsetPrcbVendorString == other.OffsetPrcbVendorString
&& self.OffsetPrcbProcStateContext == other.OffsetPrcbProcStateContext
&& self.OffsetPrcbNumber == other.OffsetPrcbNumber
&& self.SizeEThread == other.SizeEThread
&& self.L1tfHighPhysicalBitIndex == other.L1tfHighPhysicalBitIndex
&& self.L1tfSwizzleBitIndex == other.L1tfSwizzleBitIndex
&& self.Padding0 == other.Padding0
&& self.KdPrintCircularBufferPtr == other.KdPrintCircularBufferPtr
&& self.KdPrintBufferSize == other.KdPrintBufferSize
&& self.KeLoaderBlock == other.KeLoaderBlock
&& self.SizePcr == other.SizePcr
&& self.OffsetPcrSelfPcr == other.OffsetPcrSelfPcr
&& self.OffsetPcrCurrentPrcb == other.OffsetPcrCurrentPrcb
&& self.OffsetPcrContainedPrcb == other.OffsetPcrContainedPrcb
&& self.OffsetPcrInitialBStore == other.OffsetPcrInitialBStore
&& self.OffsetPcrBStoreLimit == other.OffsetPcrBStoreLimit
&& self.OffsetPcrInitialStack == other.OffsetPcrInitialStack
&& self.OffsetPcrStackLimit == other.OffsetPcrStackLimit
&& self.OffsetPrcbPcrPage == other.OffsetPrcbPcrPage
&& self.OffsetPrcbProcStateSpecialReg == other.OffsetPrcbProcStateSpecialReg
&& self.GdtR0Code == other.GdtR0Code
&& self.GdtR0Data == other.GdtR0Data
&& self.GdtR0Pcr == other.GdtR0Pcr
&& self.GdtR3Code == other.GdtR3Code
&& self.GdtR3Data == other.GdtR3Data
&& self.GdtR3Teb == other.GdtR3Teb
&& self.GdtLdt == other.GdtLdt
&& self.GdtTss == other.GdtTss
&& self.Gdt64R3CmCode == other.Gdt64R3CmCode
&& self.Gdt64R3CmTeb == other.Gdt64R3CmTeb
&& self.IopNumTriageDumpDataBlocks == other.IopNumTriageDumpDataBlocks
&& self.IopTriageDumpDataBlocks == other.IopTriageDumpDataBlocks
&& self.VfCrashDataBlock == other.VfCrashDataBlock
&& self.MmBadPagesDetected == other.MmBadPagesDetected
&& self.MmZeroedPageSingleBitErrorsDetected == other.MmZeroedPageSingleBitErrorsDetected
&& self.EtwpDebuggerData == other.EtwpDebuggerData
&& self.OffsetPrcbContext == other.OffsetPrcbContext
&& self.OffsetPrcbMaxBreakpoints == other.OffsetPrcbMaxBreakpoints
&& self.OffsetPrcbMaxWatchpoints == other.OffsetPrcbMaxWatchpoints
&& self.OffsetKThreadStackLimit == other.OffsetKThreadStackLimit
&& self.OffsetKThreadStackBase == other.OffsetKThreadStackBase
&& self.OffsetKThreadQueueListEntry == other.OffsetKThreadQueueListEntry
&& self.OffsetEThreadIrpList == other.OffsetEThreadIrpList
&& self.OffsetPrcbIdleThread == other.OffsetPrcbIdleThread
&& self.OffsetPrcbNormalDpcState == other.OffsetPrcbNormalDpcState
&& self.OffsetPrcbDpcStack == other.OffsetPrcbDpcStack
&& self.OffsetPrcbIsrStack == other.OffsetPrcbIsrStack
&& self.SizeKDPC_STACK_FRAME == other.SizeKDPC_STACK_FRAME
&& self.OffsetKPriQueueThreadListHead == other.OffsetKPriQueueThreadListHead
&& self.OffsetKThreadWaitReason == other.OffsetKThreadWaitReason
&& self.Padding1 == other.Padding1
&& self.PteBase == other.PteBase
&& self.RetpolineStubFunctionTable == other.RetpolineStubFunctionTable
&& self.RetpolineStubFunctionTableSize == other.RetpolineStubFunctionTableSize
&& self.RetpolineStubOffset == other.RetpolineStubOffset
&& self.RetpolineStubSize == other.RetpolineStubSize
&& self.OffsetEProcessMmHotPatchContext == other.OffsetEProcessMmHotPatchContext
&& self.OffsetKThreadShadowStackLimit == other.OffsetKThreadShadowStackLimit
&& self.OffsetKThreadShadowStackBase == other.OffsetKThreadShadowStackBase
&& self.ShadowStackEnabled == other.ShadowStackEnabled
&& self.PointerAuthMask == other.PointerAuthMask
&& self.OffsetPrcbExceptionStack == other.OffsetPrcbExceptionStack
}
}
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::cmp::Eq for KDDEBUGGER_DATA64 {}
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::default::Default for KDDEBUGGER_DATA64 {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub struct KDEXTS_LOCK_INFO {
pub SizeOfStruct: u32,
pub Address: u64,
pub OwningThread: u64,
pub ExclusiveOwned: super::super::super::super::Foundation::BOOL,
pub NumOwners: u32,
pub ContentionCount: u32,
pub NumExclusiveWaiters: u32,
pub NumSharedWaiters: u32,
pub pOwnerThreads: *mut u64,
pub pWaiterThreads: *mut u64,
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::marker::Copy for KDEXTS_LOCK_INFO {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::clone::Clone for KDEXTS_LOCK_INFO {
fn clone(&self) -> Self {
*self
}
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::fmt::Debug for KDEXTS_LOCK_INFO {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("KDEXTS_LOCK_INFO")
.field("SizeOfStruct", &self.SizeOfStruct)
.field("Address", &self.Address)
.field("OwningThread", &self.OwningThread)
.field("ExclusiveOwned", &self.ExclusiveOwned)
.field("NumOwners", &self.NumOwners)
.field("ContentionCount", &self.ContentionCount)
.field("NumExclusiveWaiters", &self.NumExclusiveWaiters)
.field("NumSharedWaiters", &self.NumSharedWaiters)
.field("pOwnerThreads", &self.pOwnerThreads)
.field("pWaiterThreads", &self.pWaiterThreads)
.finish()
}
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::TypeKind for KDEXTS_LOCK_INFO {
type TypeKind = ::windows_core::CopyType;
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::PartialEq for KDEXTS_LOCK_INFO {
fn eq(&self, other: &Self) -> bool {
self.SizeOfStruct == other.SizeOfStruct && self.Address == other.Address && self.OwningThread == other.OwningThread && self.ExclusiveOwned == other.ExclusiveOwned && self.NumOwners == other.NumOwners && self.ContentionCount == other.ContentionCount && self.NumExclusiveWaiters == other.NumExclusiveWaiters && self.NumSharedWaiters == other.NumSharedWaiters && self.pOwnerThreads == other.pOwnerThreads && self.pWaiterThreads == other.pWaiterThreads
}
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::Eq for KDEXTS_LOCK_INFO {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::default::Default for KDEXTS_LOCK_INFO {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct KDEXTS_PTE_INFO {
pub SizeOfStruct: u32,
pub VirtualAddress: u64,
pub PpeAddress: u64,
pub PdeAddress: u64,
pub PteAddress: u64,
pub Pfn: u64,
pub Levels: u64,
pub _bitfield1: u32,
pub _bitfield2: u32,
}
impl ::core::marker::Copy for KDEXTS_PTE_INFO {}
impl ::core::clone::Clone for KDEXTS_PTE_INFO {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for KDEXTS_PTE_INFO {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("KDEXTS_PTE_INFO").field("SizeOfStruct", &self.SizeOfStruct).field("VirtualAddress", &self.VirtualAddress).field("PpeAddress", &self.PpeAddress).field("PdeAddress", &self.PdeAddress).field("PteAddress", &self.PteAddress).field("Pfn", &self.Pfn).field("Levels", &self.Levels).field("_bitfield1", &self._bitfield1).field("_bitfield2", &self._bitfield2).finish()
}
}
impl ::windows_core::TypeKind for KDEXTS_PTE_INFO {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for KDEXTS_PTE_INFO {
fn eq(&self, other: &Self) -> bool {
self.SizeOfStruct == other.SizeOfStruct && self.VirtualAddress == other.VirtualAddress && self.PpeAddress == other.PpeAddress && self.PdeAddress == other.PdeAddress && self.PteAddress == other.PteAddress && self.Pfn == other.Pfn && self.Levels == other.Levels && self._bitfield1 == other._bitfield1 && self._bitfield2 == other._bitfield2
}
}
impl ::core::cmp::Eq for KDEXTS_PTE_INFO {}
impl ::core::default::Default for KDEXTS_PTE_INFO {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct KDEXT_FILELOCK_OWNER {
pub Sizeofstruct: u32,
pub FileObject: u64,
pub OwnerThread: u64,
pub WaitIrp: u64,
pub DeviceObject: u64,
pub BlockingDirver: [u8; 32],
}
impl ::core::marker::Copy for KDEXT_FILELOCK_OWNER {}
impl ::core::clone::Clone for KDEXT_FILELOCK_OWNER {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for KDEXT_FILELOCK_OWNER {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("KDEXT_FILELOCK_OWNER").field("Sizeofstruct", &self.Sizeofstruct).field("FileObject", &self.FileObject).field("OwnerThread", &self.OwnerThread).field("WaitIrp", &self.WaitIrp).field("DeviceObject", &self.DeviceObject).field("BlockingDirver", &self.BlockingDirver).finish()
}
}
impl ::windows_core::TypeKind for KDEXT_FILELOCK_OWNER {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for KDEXT_FILELOCK_OWNER {
fn eq(&self, other: &Self) -> bool {
self.Sizeofstruct == other.Sizeofstruct && self.FileObject == other.FileObject && self.OwnerThread == other.OwnerThread && self.WaitIrp == other.WaitIrp && self.DeviceObject == other.DeviceObject && self.BlockingDirver == other.BlockingDirver
}
}
impl ::core::cmp::Eq for KDEXT_FILELOCK_OWNER {}
impl ::core::default::Default for KDEXT_FILELOCK_OWNER {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub struct KDEXT_HANDLE_INFORMATION {
pub HandleTableEntry: u64,
pub Handle: u64,
pub Object: u64,
pub ObjectBody: u64,
pub GrantedAccess: u64,
pub HandleAttributes: u32,
pub PagedOut: super::super::super::super::Foundation::BOOLEAN,
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::marker::Copy for KDEXT_HANDLE_INFORMATION {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::clone::Clone for KDEXT_HANDLE_INFORMATION {
fn clone(&self) -> Self {
*self
}
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::fmt::Debug for KDEXT_HANDLE_INFORMATION {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("KDEXT_HANDLE_INFORMATION").field("HandleTableEntry", &self.HandleTableEntry).field("Handle", &self.Handle).field("Object", &self.Object).field("ObjectBody", &self.ObjectBody).field("GrantedAccess", &self.GrantedAccess).field("HandleAttributes", &self.HandleAttributes).field("PagedOut", &self.PagedOut).finish()
}
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::TypeKind for KDEXT_HANDLE_INFORMATION {
type TypeKind = ::windows_core::CopyType;
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::PartialEq for KDEXT_HANDLE_INFORMATION {
fn eq(&self, other: &Self) -> bool {
self.HandleTableEntry == other.HandleTableEntry && self.Handle == other.Handle && self.Object == other.Object && self.ObjectBody == other.ObjectBody && self.GrantedAccess == other.GrantedAccess && self.HandleAttributes == other.HandleAttributes && self.PagedOut == other.PagedOut
}
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::Eq for KDEXT_HANDLE_INFORMATION {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::default::Default for KDEXT_HANDLE_INFORMATION {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct KDEXT_PROCESS_FIND_PARAMS {
pub SizeofStruct: u32,
pub Pid: u32,
pub Session: u32,
pub ImageName: ::windows_core::PSTR,
}
impl ::core::marker::Copy for KDEXT_PROCESS_FIND_PARAMS {}
impl ::core::clone::Clone for KDEXT_PROCESS_FIND_PARAMS {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for KDEXT_PROCESS_FIND_PARAMS {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("KDEXT_PROCESS_FIND_PARAMS").field("SizeofStruct", &self.SizeofStruct).field("Pid", &self.Pid).field("Session", &self.Session).field("ImageName", &self.ImageName).finish()
}
}
impl ::windows_core::TypeKind for KDEXT_PROCESS_FIND_PARAMS {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for KDEXT_PROCESS_FIND_PARAMS {
fn eq(&self, other: &Self) -> bool {
self.SizeofStruct == other.SizeofStruct && self.Pid == other.Pid && self.Session == other.Session && self.ImageName == other.ImageName
}
}
impl ::core::cmp::Eq for KDEXT_PROCESS_FIND_PARAMS {}
impl ::core::default::Default for KDEXT_PROCESS_FIND_PARAMS {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct KDEXT_THREAD_FIND_PARAMS {
pub SizeofStruct: u32,
pub StackPointer: u64,
pub Cid: u32,
pub Thread: u64,
}
impl ::core::marker::Copy for KDEXT_THREAD_FIND_PARAMS {}
impl ::core::clone::Clone for KDEXT_THREAD_FIND_PARAMS {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for KDEXT_THREAD_FIND_PARAMS {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("KDEXT_THREAD_FIND_PARAMS").field("SizeofStruct", &self.SizeofStruct).field("StackPointer", &self.StackPointer).field("Cid", &self.Cid).field("Thread", &self.Thread).finish()
}
}
impl ::windows_core::TypeKind for KDEXT_THREAD_FIND_PARAMS {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for KDEXT_THREAD_FIND_PARAMS {
fn eq(&self, other: &Self) -> bool {
self.SizeofStruct == other.SizeofStruct && self.StackPointer == other.StackPointer && self.Cid == other.Cid && self.Thread == other.Thread
}
}
impl ::core::cmp::Eq for KDEXT_THREAD_FIND_PARAMS {}
impl ::core::default::Default for KDEXT_THREAD_FIND_PARAMS {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct Location {
pub HostDefined: u64,
pub Offset: u64,
}
impl ::core::marker::Copy for Location {}
impl ::core::clone::Clone for Location {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for Location {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("Location").field("HostDefined", &self.HostDefined).field("Offset", &self.Offset).finish()
}
}
impl ::windows_core::TypeKind for Location {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for Location {
fn eq(&self, other: &Self) -> bool {
self.HostDefined == other.HostDefined && self.Offset == other.Offset
}
}
impl ::core::cmp::Eq for Location {}
impl ::core::default::Default for Location {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct OS_INFO {
pub MajorVer: u32,
pub MinorVer: u32,
pub Build: u32,
pub BuildQfe: u32,
pub ProductType: u32,
pub Suite: u32,
pub Revision: u32,
pub s: OS_INFO_0,
pub SrvPackNumber: u32,
pub ServicePackBuild: u32,
pub Architecture: u32,
pub Lcid: u32,
pub Name: [u8; 64],
pub FullName: [u8; 256],
pub Language: [u8; 30],
pub BuildVersion: [u8; 64],
pub ServicePackString: [u8; 64],
}
impl ::core::marker::Copy for OS_INFO {}
impl ::core::clone::Clone for OS_INFO {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for OS_INFO {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("OS_INFO")
.field("MajorVer", &self.MajorVer)
.field("MinorVer", &self.MinorVer)
.field("Build", &self.Build)
.field("BuildQfe", &self.BuildQfe)
.field("ProductType", &self.ProductType)
.field("Suite", &self.Suite)
.field("Revision", &self.Revision)
.field("s", &self.s)
.field("SrvPackNumber", &self.SrvPackNumber)
.field("ServicePackBuild", &self.ServicePackBuild)
.field("Architecture", &self.Architecture)
.field("Lcid", &self.Lcid)
.field("Name", &self.Name)
.field("FullName", &self.FullName)
.field("Language", &self.Language)
.field("BuildVersion", &self.BuildVersion)
.field("ServicePackString", &self.ServicePackString)
.finish()
}
}
impl ::windows_core::TypeKind for OS_INFO {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for OS_INFO {
fn eq(&self, other: &Self) -> bool {
self.MajorVer == other.MajorVer && self.MinorVer == other.MinorVer && self.Build == other.Build && self.BuildQfe == other.BuildQfe && self.ProductType == other.ProductType && self.Suite == other.Suite && self.Revision == other.Revision && self.s == other.s && self.SrvPackNumber == other.SrvPackNumber && self.ServicePackBuild == other.ServicePackBuild && self.Architecture == other.Architecture && self.Lcid == other.Lcid && self.Name == other.Name && self.FullName == other.FullName && self.Language == other.Language && self.BuildVersion == other.BuildVersion && self.ServicePackString == other.ServicePackString
}
}
impl ::core::cmp::Eq for OS_INFO {}
impl ::core::default::Default for OS_INFO {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct OS_INFO_0 {
pub _bitfield: u32,
}
impl ::core::marker::Copy for OS_INFO_0 {}
impl ::core::clone::Clone for OS_INFO_0 {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for OS_INFO_0 {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("OS_INFO_0").field("_bitfield", &self._bitfield).finish()
}
}
impl ::windows_core::TypeKind for OS_INFO_0 {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for OS_INFO_0 {
fn eq(&self, other: &Self) -> bool {
self._bitfield == other._bitfield
}
}
impl ::core::cmp::Eq for OS_INFO_0 {}
impl ::core::default::Default for OS_INFO_0 {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct OS_INFO_v1 {
pub Type: OS_TYPE,
pub Anonymous: OS_INFO_v1_0,
pub ProductType: u32,
pub Suite: u32,
pub s: OS_INFO_v1_1,
pub SrvPackNumber: u32,
pub Language: [u8; 30],
pub OsString: [u8; 64],
pub ServicePackString: [u8; 64],
}
impl ::core::marker::Copy for OS_INFO_v1 {}
impl ::core::clone::Clone for OS_INFO_v1 {
fn clone(&self) -> Self {
*self
}
}
impl ::windows_core::TypeKind for OS_INFO_v1 {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::default::Default for OS_INFO_v1 {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub union OS_INFO_v1_0 {
pub Version: OS_INFO_v1_0_0,
pub Ver64: u64,
}
impl ::core::marker::Copy for OS_INFO_v1_0 {}
impl ::core::clone::Clone for OS_INFO_v1_0 {
fn clone(&self) -> Self {
*self
}
}
impl ::windows_core::TypeKind for OS_INFO_v1_0 {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::default::Default for OS_INFO_v1_0 {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct OS_INFO_v1_0_0 {
pub Major: u32,
pub Minor: u32,
}
impl ::core::marker::Copy for OS_INFO_v1_0_0 {}
impl ::core::clone::Clone for OS_INFO_v1_0_0 {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for OS_INFO_v1_0_0 {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("OS_INFO_v1_0_0").field("Major", &self.Major).field("Minor", &self.Minor).finish()
}
}
impl ::windows_core::TypeKind for OS_INFO_v1_0_0 {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for OS_INFO_v1_0_0 {
fn eq(&self, other: &Self) -> bool {
self.Major == other.Major && self.Minor == other.Minor
}
}
impl ::core::cmp::Eq for OS_INFO_v1_0_0 {}
impl ::core::default::Default for OS_INFO_v1_0_0 {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct OS_INFO_v1_1 {
pub _bitfield: u32,
}
impl ::core::marker::Copy for OS_INFO_v1_1 {}
impl ::core::clone::Clone for OS_INFO_v1_1 {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for OS_INFO_v1_1 {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("OS_INFO_v1_1").field("_bitfield", &self._bitfield).finish()
}
}
impl ::windows_core::TypeKind for OS_INFO_v1_1 {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for OS_INFO_v1_1 {
fn eq(&self, other: &Self) -> bool {
self._bitfield == other._bitfield
}
}
impl ::core::cmp::Eq for OS_INFO_v1_1 {}
impl ::core::default::Default for OS_INFO_v1_1 {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct PHYSICAL {
pub Address: u64,
pub BufLen: u32,
pub Buf: [u8; 1],
}
impl ::core::marker::Copy for PHYSICAL {}
impl ::core::clone::Clone for PHYSICAL {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for PHYSICAL {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("PHYSICAL").field("Address", &self.Address).field("BufLen", &self.BufLen).field("Buf", &self.Buf).finish()
}
}
impl ::windows_core::TypeKind for PHYSICAL {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for PHYSICAL {
fn eq(&self, other: &Self) -> bool {
self.Address == other.Address && self.BufLen == other.BufLen && self.Buf == other.Buf
}
}
impl ::core::cmp::Eq for PHYSICAL {}
impl ::core::default::Default for PHYSICAL {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct PHYSICAL_TO_VIRTUAL {
pub Status: u32,
pub Size: u32,
pub PdeAddress: u64,
}
impl ::core::marker::Copy for PHYSICAL_TO_VIRTUAL {}
impl ::core::clone::Clone for PHYSICAL_TO_VIRTUAL {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for PHYSICAL_TO_VIRTUAL {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("PHYSICAL_TO_VIRTUAL").field("Status", &self.Status).field("Size", &self.Size).field("PdeAddress", &self.PdeAddress).finish()
}
}
impl ::windows_core::TypeKind for PHYSICAL_TO_VIRTUAL {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for PHYSICAL_TO_VIRTUAL {
fn eq(&self, other: &Self) -> bool {
self.Status == other.Status && self.Size == other.Size && self.PdeAddress == other.PdeAddress
}
}
impl ::core::cmp::Eq for PHYSICAL_TO_VIRTUAL {}
impl ::core::default::Default for PHYSICAL_TO_VIRTUAL {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct PHYSICAL_WITH_FLAGS {
pub Address: u64,
pub BufLen: u32,
pub Flags: u32,
pub Buf: [u8; 1],
}
impl ::core::marker::Copy for PHYSICAL_WITH_FLAGS {}
impl ::core::clone::Clone for PHYSICAL_WITH_FLAGS {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for PHYSICAL_WITH_FLAGS {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("PHYSICAL_WITH_FLAGS").field("Address", &self.Address).field("BufLen", &self.BufLen).field("Flags", &self.Flags).field("Buf", &self.Buf).finish()
}
}
impl ::windows_core::TypeKind for PHYSICAL_WITH_FLAGS {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for PHYSICAL_WITH_FLAGS {
fn eq(&self, other: &Self) -> bool {
self.Address == other.Address && self.BufLen == other.BufLen && self.Flags == other.Flags && self.Buf == other.Buf
}
}
impl ::core::cmp::Eq for PHYSICAL_WITH_FLAGS {}
impl ::core::default::Default for PHYSICAL_WITH_FLAGS {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct POINTER_SEARCH_PHYSICAL {
pub Offset: u64,
pub Length: u64,
pub PointerMin: u64,
pub PointerMax: u64,
pub Flags: u32,
pub MatchOffsets: *mut u64,
pub MatchOffsetsSize: u32,
pub MatchOffsetsCount: u32,
}
impl ::core::marker::Copy for POINTER_SEARCH_PHYSICAL {}
impl ::core::clone::Clone for POINTER_SEARCH_PHYSICAL {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for POINTER_SEARCH_PHYSICAL {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("POINTER_SEARCH_PHYSICAL").field("Offset", &self.Offset).field("Length", &self.Length).field("PointerMin", &self.PointerMin).field("PointerMax", &self.PointerMax).field("Flags", &self.Flags).field("MatchOffsets", &self.MatchOffsets).field("MatchOffsetsSize", &self.MatchOffsetsSize).field("MatchOffsetsCount", &self.MatchOffsetsCount).finish()
}
}
impl ::windows_core::TypeKind for POINTER_SEARCH_PHYSICAL {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for POINTER_SEARCH_PHYSICAL {
fn eq(&self, other: &Self) -> bool {
self.Offset == other.Offset && self.Length == other.Length && self.PointerMin == other.PointerMin && self.PointerMax == other.PointerMax && self.Flags == other.Flags && self.MatchOffsets == other.MatchOffsets && self.MatchOffsetsSize == other.MatchOffsetsSize && self.MatchOffsetsCount == other.MatchOffsetsCount
}
}
impl ::core::cmp::Eq for POINTER_SEARCH_PHYSICAL {}
impl ::core::default::Default for POINTER_SEARCH_PHYSICAL {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct PROCESSORINFO {
pub Processor: u16,
pub NumberProcessors: u16,
}
impl ::core::marker::Copy for PROCESSORINFO {}
impl ::core::clone::Clone for PROCESSORINFO {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for PROCESSORINFO {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("PROCESSORINFO").field("Processor", &self.Processor).field("NumberProcessors", &self.NumberProcessors).finish()
}
}
impl ::windows_core::TypeKind for PROCESSORINFO {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for PROCESSORINFO {
fn eq(&self, other: &Self) -> bool {
self.Processor == other.Processor && self.NumberProcessors == other.NumberProcessors
}
}
impl ::core::cmp::Eq for PROCESSORINFO {}
impl ::core::default::Default for PROCESSORINFO {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct PROCESS_COMMIT_USAGE {
pub ImageFileName: [u8; 16],
pub ClientId: u64,
pub ProcessAddress: u64,
pub CommitCharge: u64,
pub SharedCommitCharge: u64,
pub ReleasedCommitDebt: u64,
pub Reserved: u64,
}
impl ::core::marker::Copy for PROCESS_COMMIT_USAGE {}
impl ::core::clone::Clone for PROCESS_COMMIT_USAGE {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for PROCESS_COMMIT_USAGE {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("PROCESS_COMMIT_USAGE").field("ImageFileName", &self.ImageFileName).field("ClientId", &self.ClientId).field("ProcessAddress", &self.ProcessAddress).field("CommitCharge", &self.CommitCharge).field("SharedCommitCharge", &self.SharedCommitCharge).field("ReleasedCommitDebt", &self.ReleasedCommitDebt).field("Reserved", &self.Reserved).finish()
}
}
impl ::windows_core::TypeKind for PROCESS_COMMIT_USAGE {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for PROCESS_COMMIT_USAGE {
fn eq(&self, other: &Self) -> bool {
self.ImageFileName == other.ImageFileName && self.ClientId == other.ClientId && self.ProcessAddress == other.ProcessAddress && self.CommitCharge == other.CommitCharge && self.SharedCommitCharge == other.SharedCommitCharge && self.ReleasedCommitDebt == other.ReleasedCommitDebt && self.Reserved == other.Reserved
}
}
impl ::core::cmp::Eq for PROCESS_COMMIT_USAGE {}
impl ::core::default::Default for PROCESS_COMMIT_USAGE {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct PROCESS_NAME_ENTRY {
pub ProcessId: u32,
pub NameOffset: u32,
pub NameSize: u32,
pub NextEntry: u32,
}
impl ::core::marker::Copy for PROCESS_NAME_ENTRY {}
impl ::core::clone::Clone for PROCESS_NAME_ENTRY {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for PROCESS_NAME_ENTRY {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("PROCESS_NAME_ENTRY").field("ProcessId", &self.ProcessId).field("NameOffset", &self.NameOffset).field("NameSize", &self.NameSize).field("NextEntry", &self.NextEntry).finish()
}
}
impl ::windows_core::TypeKind for PROCESS_NAME_ENTRY {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for PROCESS_NAME_ENTRY {
fn eq(&self, other: &Self) -> bool {
self.ProcessId == other.ProcessId && self.NameOffset == other.NameOffset && self.NameSize == other.NameSize && self.NextEntry == other.NextEntry
}
}
impl ::core::cmp::Eq for PROCESS_NAME_ENTRY {}
impl ::core::default::Default for PROCESS_NAME_ENTRY {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct READCONTROLSPACE {
pub Processor: u16,
pub Address: u32,
pub BufLen: u32,
pub Buf: [u8; 1],
}
impl ::core::marker::Copy for READCONTROLSPACE {}
impl ::core::clone::Clone for READCONTROLSPACE {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for READCONTROLSPACE {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("READCONTROLSPACE").field("Processor", &self.Processor).field("Address", &self.Address).field("BufLen", &self.BufLen).field("Buf", &self.Buf).finish()
}
}
impl ::windows_core::TypeKind for READCONTROLSPACE {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for READCONTROLSPACE {
fn eq(&self, other: &Self) -> bool {
self.Processor == other.Processor && self.Address == other.Address && self.BufLen == other.BufLen && self.Buf == other.Buf
}
}
impl ::core::cmp::Eq for READCONTROLSPACE {}
impl ::core::default::Default for READCONTROLSPACE {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct READCONTROLSPACE32 {
pub Processor: u16,
pub Address: u32,
pub BufLen: u32,
pub Buf: [u8; 1],
}
impl ::core::marker::Copy for READCONTROLSPACE32 {}
impl ::core::clone::Clone for READCONTROLSPACE32 {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for READCONTROLSPACE32 {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("READCONTROLSPACE32").field("Processor", &self.Processor).field("Address", &self.Address).field("BufLen", &self.BufLen).field("Buf", &self.Buf).finish()
}
}
impl ::windows_core::TypeKind for READCONTROLSPACE32 {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for READCONTROLSPACE32 {
fn eq(&self, other: &Self) -> bool {
self.Processor == other.Processor && self.Address == other.Address && self.BufLen == other.BufLen && self.Buf == other.Buf
}
}
impl ::core::cmp::Eq for READCONTROLSPACE32 {}
impl ::core::default::Default for READCONTROLSPACE32 {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct READCONTROLSPACE64 {
pub Processor: u16,
pub Address: u64,
pub BufLen: u32,
pub Buf: [u8; 1],
}
impl ::core::marker::Copy for READCONTROLSPACE64 {}
impl ::core::clone::Clone for READCONTROLSPACE64 {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for READCONTROLSPACE64 {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("READCONTROLSPACE64").field("Processor", &self.Processor).field("Address", &self.Address).field("BufLen", &self.BufLen).field("Buf", &self.Buf).finish()
}
}
impl ::windows_core::TypeKind for READCONTROLSPACE64 {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for READCONTROLSPACE64 {
fn eq(&self, other: &Self) -> bool {
self.Processor == other.Processor && self.Address == other.Address && self.BufLen == other.BufLen && self.Buf == other.Buf
}
}
impl ::core::cmp::Eq for READCONTROLSPACE64 {}
impl ::core::default::Default for READCONTROLSPACE64 {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct READ_WRITE_MSR {
pub Msr: u32,
pub Value: i64,
}
impl ::core::marker::Copy for READ_WRITE_MSR {}
impl ::core::clone::Clone for READ_WRITE_MSR {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for READ_WRITE_MSR {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("READ_WRITE_MSR").field("Msr", &self.Msr).field("Value", &self.Value).finish()
}
}
impl ::windows_core::TypeKind for READ_WRITE_MSR {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for READ_WRITE_MSR {
fn eq(&self, other: &Self) -> bool {
self.Msr == other.Msr && self.Value == other.Value
}
}
impl ::core::cmp::Eq for READ_WRITE_MSR {}
impl ::core::default::Default for READ_WRITE_MSR {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct SEARCHMEMORY {
pub SearchAddress: u64,
pub SearchLength: u64,
pub FoundAddress: u64,
pub PatternLength: u32,
pub Pattern: *mut ::core::ffi::c_void,
}
impl ::core::marker::Copy for SEARCHMEMORY {}
impl ::core::clone::Clone for SEARCHMEMORY {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for SEARCHMEMORY {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("SEARCHMEMORY").field("SearchAddress", &self.SearchAddress).field("SearchLength", &self.SearchLength).field("FoundAddress", &self.FoundAddress).field("PatternLength", &self.PatternLength).field("Pattern", &self.Pattern).finish()
}
}
impl ::windows_core::TypeKind for SEARCHMEMORY {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for SEARCHMEMORY {
fn eq(&self, other: &Self) -> bool {
self.SearchAddress == other.SearchAddress && self.SearchLength == other.SearchLength && self.FoundAddress == other.FoundAddress && self.PatternLength == other.PatternLength && self.Pattern == other.Pattern
}
}
impl ::core::cmp::Eq for SEARCHMEMORY {}
impl ::core::default::Default for SEARCHMEMORY {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct STACK_SRC_INFO {
pub ImagePath: ::windows_core::PCWSTR,
pub ModuleName: ::windows_core::PCWSTR,
pub Function: ::windows_core::PCWSTR,
pub Displacement: u32,
pub Row: u32,
pub Column: u32,
}
impl ::core::marker::Copy for STACK_SRC_INFO {}
impl ::core::clone::Clone for STACK_SRC_INFO {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for STACK_SRC_INFO {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("STACK_SRC_INFO").field("ImagePath", &self.ImagePath).field("ModuleName", &self.ModuleName).field("Function", &self.Function).field("Displacement", &self.Displacement).field("Row", &self.Row).field("Column", &self.Column).finish()
}
}
impl ::windows_core::TypeKind for STACK_SRC_INFO {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for STACK_SRC_INFO {
fn eq(&self, other: &Self) -> bool {
self.ImagePath == other.ImagePath && self.ModuleName == other.ModuleName && self.Function == other.Function && self.Displacement == other.Displacement && self.Row == other.Row && self.Column == other.Column
}
}
impl ::core::cmp::Eq for STACK_SRC_INFO {}
impl ::core::default::Default for STACK_SRC_INFO {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub struct STACK_SYM_FRAME_INFO {
pub StackFrameEx: DEBUG_STACK_FRAME_EX,
pub SrcInfo: STACK_SRC_INFO,
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::marker::Copy for STACK_SYM_FRAME_INFO {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::clone::Clone for STACK_SYM_FRAME_INFO {
fn clone(&self) -> Self {
*self
}
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::fmt::Debug for STACK_SYM_FRAME_INFO {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("STACK_SYM_FRAME_INFO").field("StackFrameEx", &self.StackFrameEx).field("SrcInfo", &self.SrcInfo).finish()
}
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::TypeKind for STACK_SYM_FRAME_INFO {
type TypeKind = ::windows_core::CopyType;
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::PartialEq for STACK_SYM_FRAME_INFO {
fn eq(&self, other: &Self) -> bool {
self.StackFrameEx == other.StackFrameEx && self.SrcInfo == other.SrcInfo
}
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::Eq for STACK_SYM_FRAME_INFO {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::default::Default for STACK_SYM_FRAME_INFO {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct SYMBOL_INFO_EX {
pub SizeOfStruct: u32,
pub TypeOfInfo: u32,
pub Offset: u64,
pub Line: u32,
pub Displacement: u32,
pub Reserved: [u32; 4],
}
impl ::core::marker::Copy for SYMBOL_INFO_EX {}
impl ::core::clone::Clone for SYMBOL_INFO_EX {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for SYMBOL_INFO_EX {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("SYMBOL_INFO_EX").field("SizeOfStruct", &self.SizeOfStruct).field("TypeOfInfo", &self.TypeOfInfo).field("Offset", &self.Offset).field("Line", &self.Line).field("Displacement", &self.Displacement).field("Reserved", &self.Reserved).finish()
}
}
impl ::windows_core::TypeKind for SYMBOL_INFO_EX {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for SYMBOL_INFO_EX {
fn eq(&self, other: &Self) -> bool {
self.SizeOfStruct == other.SizeOfStruct && self.TypeOfInfo == other.TypeOfInfo && self.Offset == other.Offset && self.Line == other.Line && self.Displacement == other.Displacement && self.Reserved == other.Reserved
}
}
impl ::core::cmp::Eq for SYMBOL_INFO_EX {}
impl ::core::default::Default for SYMBOL_INFO_EX {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct SYM_DUMP_PARAM {
pub size: u32,
pub sName: *mut u8,
pub Options: u32,
pub addr: u64,
pub listLink: *mut FIELD_INFO,
pub Anonymous: SYM_DUMP_PARAM_0,
pub CallbackRoutine: PSYM_DUMP_FIELD_CALLBACK,
pub nFields: u32,
pub Fields: *mut FIELD_INFO,
pub ModBase: u64,
pub TypeId: u32,
pub TypeSize: u32,
pub BufferSize: u32,
pub _bitfield: u32,
}
impl ::core::marker::Copy for SYM_DUMP_PARAM {}
impl ::core::clone::Clone for SYM_DUMP_PARAM {
fn clone(&self) -> Self {
*self
}
}
impl ::windows_core::TypeKind for SYM_DUMP_PARAM {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::default::Default for SYM_DUMP_PARAM {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub union SYM_DUMP_PARAM_0 {
pub Context: *mut ::core::ffi::c_void,
pub pBuffer: *mut ::core::ffi::c_void,
}
impl ::core::marker::Copy for SYM_DUMP_PARAM_0 {}
impl ::core::clone::Clone for SYM_DUMP_PARAM_0 {
fn clone(&self) -> Self {
*self
}
}
impl ::windows_core::TypeKind for SYM_DUMP_PARAM_0 {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::default::Default for SYM_DUMP_PARAM_0 {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct ScriptDebugEventInformation {
pub DebugEvent: ScriptDebugEvent,
pub EventPosition: ScriptDebugPosition,
pub EventSpanEnd: ScriptDebugPosition,
pub u: ScriptDebugEventInformation_0,
}
impl ::core::marker::Copy for ScriptDebugEventInformation {}
impl ::core::clone::Clone for ScriptDebugEventInformation {
fn clone(&self) -> Self {
*self
}
}
impl ::windows_core::TypeKind for ScriptDebugEventInformation {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::default::Default for ScriptDebugEventInformation {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub union ScriptDebugEventInformation_0 {
pub ExceptionInformation: ScriptDebugEventInformation_0_1,
pub BreakpointInformation: ScriptDebugEventInformation_0_0,
}
impl ::core::marker::Copy for ScriptDebugEventInformation_0 {}
impl ::core::clone::Clone for ScriptDebugEventInformation_0 {
fn clone(&self) -> Self {
*self
}
}
impl ::windows_core::TypeKind for ScriptDebugEventInformation_0 {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::default::Default for ScriptDebugEventInformation_0 {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct ScriptDebugEventInformation_0_0 {
pub BreakpointId: u64,
}
impl ::core::marker::Copy for ScriptDebugEventInformation_0_0 {}
impl ::core::clone::Clone for ScriptDebugEventInformation_0_0 {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for ScriptDebugEventInformation_0_0 {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("ScriptDebugEventInformation_0_0").field("BreakpointId", &self.BreakpointId).finish()
}
}
impl ::windows_core::TypeKind for ScriptDebugEventInformation_0_0 {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for ScriptDebugEventInformation_0_0 {
fn eq(&self, other: &Self) -> bool {
self.BreakpointId == other.BreakpointId
}
}
impl ::core::cmp::Eq for ScriptDebugEventInformation_0_0 {}
impl ::core::default::Default for ScriptDebugEventInformation_0_0 {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct ScriptDebugEventInformation_0_1 {
pub IsUncaught: u8,
}
impl ::core::marker::Copy for ScriptDebugEventInformation_0_1 {}
impl ::core::clone::Clone for ScriptDebugEventInformation_0_1 {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for ScriptDebugEventInformation_0_1 {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("ScriptDebugEventInformation_0_1").field("IsUncaught", &self.IsUncaught).finish()
}
}
impl ::windows_core::TypeKind for ScriptDebugEventInformation_0_1 {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for ScriptDebugEventInformation_0_1 {
fn eq(&self, other: &Self) -> bool {
self.IsUncaught == other.IsUncaught
}
}
impl ::core::cmp::Eq for ScriptDebugEventInformation_0_1 {}
impl ::core::default::Default for ScriptDebugEventInformation_0_1 {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct ScriptDebugPosition {
pub Line: u32,
pub Column: u32,
}
impl ::core::marker::Copy for ScriptDebugPosition {}
impl ::core::clone::Clone for ScriptDebugPosition {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for ScriptDebugPosition {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("ScriptDebugPosition").field("Line", &self.Line).field("Column", &self.Column).finish()
}
}
impl ::windows_core::TypeKind for ScriptDebugPosition {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for ScriptDebugPosition {
fn eq(&self, other: &Self) -> bool {
self.Line == other.Line && self.Column == other.Column
}
}
impl ::core::cmp::Eq for ScriptDebugPosition {}
impl ::core::default::Default for ScriptDebugPosition {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct TARGET_DEBUG_INFO {
pub SizeOfStruct: u32,
pub EntryDate: u64,
pub DebugeeClass: u32,
pub SysUpTime: u64,
pub AppUpTime: u64,
pub CrashTime: u64,
pub OsInfo: OS_INFO,
pub Cpu: CPU_INFO,
pub DumpFile: [u8; 260],
}
impl ::core::marker::Copy for TARGET_DEBUG_INFO {}
impl ::core::clone::Clone for TARGET_DEBUG_INFO {
fn clone(&self) -> Self {
*self
}
}
impl ::windows_core::TypeKind for TARGET_DEBUG_INFO {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::default::Default for TARGET_DEBUG_INFO {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct TARGET_DEBUG_INFO_v1 {
pub SizeOfStruct: u32,
pub Id: u64,
pub Source: u64,
pub EntryDate: u64,
pub SysUpTime: u64,
pub AppUpTime: u64,
pub CrashTime: u64,
pub Mode: u64,
pub OsInfo: OS_INFO_v1,
pub Cpu: CPU_INFO_v1,
pub DumpFile: [u8; 260],
pub FailureData: *mut ::core::ffi::c_void,
pub StackTr: [u8; 4096],
}
impl ::core::marker::Copy for TARGET_DEBUG_INFO_v1 {}
impl ::core::clone::Clone for TARGET_DEBUG_INFO_v1 {
fn clone(&self) -> Self {
*self
}
}
impl ::windows_core::TypeKind for TARGET_DEBUG_INFO_v1 {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::default::Default for TARGET_DEBUG_INFO_v1 {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct TARGET_DEBUG_INFO_v2 {
pub SizeOfStruct: u32,
pub EntryDate: u64,
pub DebugeeClass: u32,
pub SysUpTime: u64,
pub AppUpTime: u64,
pub CrashTime: u64,
pub OsInfo: OS_INFO,
pub Cpu: CPU_INFO_v2,
pub DumpFile: [u8; 260],
}
impl ::core::marker::Copy for TARGET_DEBUG_INFO_v2 {}
impl ::core::clone::Clone for TARGET_DEBUG_INFO_v2 {
fn clone(&self) -> Self {
*self
}
}
impl ::windows_core::TypeKind for TARGET_DEBUG_INFO_v2 {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::default::Default for TARGET_DEBUG_INFO_v2 {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct TRANSLATE_VIRTUAL_TO_PHYSICAL {
pub Virtual: u64,
pub Physical: u64,
}
impl ::core::marker::Copy for TRANSLATE_VIRTUAL_TO_PHYSICAL {}
impl ::core::clone::Clone for TRANSLATE_VIRTUAL_TO_PHYSICAL {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for TRANSLATE_VIRTUAL_TO_PHYSICAL {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("TRANSLATE_VIRTUAL_TO_PHYSICAL").field("Virtual", &self.Virtual).field("Physical", &self.Physical).finish()
}
}
impl ::windows_core::TypeKind for TRANSLATE_VIRTUAL_TO_PHYSICAL {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for TRANSLATE_VIRTUAL_TO_PHYSICAL {
fn eq(&self, other: &Self) -> bool {
self.Virtual == other.Virtual && self.Physical == other.Physical
}
}
impl ::core::cmp::Eq for TRANSLATE_VIRTUAL_TO_PHYSICAL {}
impl ::core::default::Default for TRANSLATE_VIRTUAL_TO_PHYSICAL {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct VIRTUAL_TO_PHYSICAL {
pub Status: u32,
pub Size: u32,
pub PdeAddress: u64,
pub Virtual: u64,
pub Physical: u64,
}
impl ::core::marker::Copy for VIRTUAL_TO_PHYSICAL {}
impl ::core::clone::Clone for VIRTUAL_TO_PHYSICAL {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for VIRTUAL_TO_PHYSICAL {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("VIRTUAL_TO_PHYSICAL").field("Status", &self.Status).field("Size", &self.Size).field("PdeAddress", &self.PdeAddress).field("Virtual", &self.Virtual).field("Physical", &self.Physical).finish()
}
}
impl ::windows_core::TypeKind for VIRTUAL_TO_PHYSICAL {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for VIRTUAL_TO_PHYSICAL {
fn eq(&self, other: &Self) -> bool {
self.Status == other.Status && self.Size == other.Size && self.PdeAddress == other.PdeAddress && self.Virtual == other.Virtual && self.Physical == other.Physical
}
}
impl ::core::cmp::Eq for VIRTUAL_TO_PHYSICAL {}
impl ::core::default::Default for VIRTUAL_TO_PHYSICAL {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct WDBGEXTS_CLR_DATA_INTERFACE {
pub Iid: *const ::windows_core::GUID,
pub Iface: *mut ::core::ffi::c_void,
}
impl ::core::marker::Copy for WDBGEXTS_CLR_DATA_INTERFACE {}
impl ::core::clone::Clone for WDBGEXTS_CLR_DATA_INTERFACE {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for WDBGEXTS_CLR_DATA_INTERFACE {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("WDBGEXTS_CLR_DATA_INTERFACE").field("Iid", &self.Iid).field("Iface", &self.Iface).finish()
}
}
impl ::windows_core::TypeKind for WDBGEXTS_CLR_DATA_INTERFACE {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for WDBGEXTS_CLR_DATA_INTERFACE {
fn eq(&self, other: &Self) -> bool {
self.Iid == other.Iid && self.Iface == other.Iface
}
}
impl ::core::cmp::Eq for WDBGEXTS_CLR_DATA_INTERFACE {}
impl ::core::default::Default for WDBGEXTS_CLR_DATA_INTERFACE {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct WDBGEXTS_DISASSEMBLE_BUFFER {
pub InOffset: u64,
pub OutOffset: u64,
pub AddrFlags: u32,
pub FormatFlags: u32,
pub DataBufferBytes: u32,
pub DisasmBufferChars: u32,
pub DataBuffer: *mut ::core::ffi::c_void,
pub DisasmBuffer: ::windows_core::PWSTR,
pub Reserved0: [u64; 3],
}
impl ::core::marker::Copy for WDBGEXTS_DISASSEMBLE_BUFFER {}
impl ::core::clone::Clone for WDBGEXTS_DISASSEMBLE_BUFFER {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for WDBGEXTS_DISASSEMBLE_BUFFER {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("WDBGEXTS_DISASSEMBLE_BUFFER").field("InOffset", &self.InOffset).field("OutOffset", &self.OutOffset).field("AddrFlags", &self.AddrFlags).field("FormatFlags", &self.FormatFlags).field("DataBufferBytes", &self.DataBufferBytes).field("DisasmBufferChars", &self.DisasmBufferChars).field("DataBuffer", &self.DataBuffer).field("DisasmBuffer", &self.DisasmBuffer).field("Reserved0", &self.Reserved0).finish()
}
}
impl ::windows_core::TypeKind for WDBGEXTS_DISASSEMBLE_BUFFER {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for WDBGEXTS_DISASSEMBLE_BUFFER {
fn eq(&self, other: &Self) -> bool {
self.InOffset == other.InOffset && self.OutOffset == other.OutOffset && self.AddrFlags == other.AddrFlags && self.FormatFlags == other.FormatFlags && self.DataBufferBytes == other.DataBufferBytes && self.DisasmBufferChars == other.DisasmBufferChars && self.DataBuffer == other.DataBuffer && self.DisasmBuffer == other.DisasmBuffer && self.Reserved0 == other.Reserved0
}
}
impl ::core::cmp::Eq for WDBGEXTS_DISASSEMBLE_BUFFER {}
impl ::core::default::Default for WDBGEXTS_DISASSEMBLE_BUFFER {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct WDBGEXTS_MODULE_IN_RANGE {
pub Start: u64,
pub End: u64,
pub FoundModBase: u64,
pub FoundModSize: u32,
}
impl ::core::marker::Copy for WDBGEXTS_MODULE_IN_RANGE {}
impl ::core::clone::Clone for WDBGEXTS_MODULE_IN_RANGE {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for WDBGEXTS_MODULE_IN_RANGE {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("WDBGEXTS_MODULE_IN_RANGE").field("Start", &self.Start).field("End", &self.End).field("FoundModBase", &self.FoundModBase).field("FoundModSize", &self.FoundModSize).finish()
}
}
impl ::windows_core::TypeKind for WDBGEXTS_MODULE_IN_RANGE {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for WDBGEXTS_MODULE_IN_RANGE {
fn eq(&self, other: &Self) -> bool {
self.Start == other.Start && self.End == other.End && self.FoundModBase == other.FoundModBase && self.FoundModSize == other.FoundModSize
}
}
impl ::core::cmp::Eq for WDBGEXTS_MODULE_IN_RANGE {}
impl ::core::default::Default for WDBGEXTS_MODULE_IN_RANGE {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct WDBGEXTS_QUERY_INTERFACE {
pub Iid: *const ::windows_core::GUID,
pub Iface: *mut ::core::ffi::c_void,
}
impl ::core::marker::Copy for WDBGEXTS_QUERY_INTERFACE {}
impl ::core::clone::Clone for WDBGEXTS_QUERY_INTERFACE {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for WDBGEXTS_QUERY_INTERFACE {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("WDBGEXTS_QUERY_INTERFACE").field("Iid", &self.Iid).field("Iface", &self.Iface).finish()
}
}
impl ::windows_core::TypeKind for WDBGEXTS_QUERY_INTERFACE {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for WDBGEXTS_QUERY_INTERFACE {
fn eq(&self, other: &Self) -> bool {
self.Iid == other.Iid && self.Iface == other.Iface
}
}
impl ::core::cmp::Eq for WDBGEXTS_QUERY_INTERFACE {}
impl ::core::default::Default for WDBGEXTS_QUERY_INTERFACE {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct WDBGEXTS_THREAD_OS_INFO {
pub ThreadId: u32,
pub ExitStatus: u32,
pub PriorityClass: u32,
pub Priority: u32,
pub CreateTime: u64,
pub ExitTime: u64,
pub KernelTime: u64,
pub UserTime: u64,
pub StartOffset: u64,
pub Affinity: u64,
}
impl ::core::marker::Copy for WDBGEXTS_THREAD_OS_INFO {}
impl ::core::clone::Clone for WDBGEXTS_THREAD_OS_INFO {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for WDBGEXTS_THREAD_OS_INFO {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("WDBGEXTS_THREAD_OS_INFO").field("ThreadId", &self.ThreadId).field("ExitStatus", &self.ExitStatus).field("PriorityClass", &self.PriorityClass).field("Priority", &self.Priority).field("CreateTime", &self.CreateTime).field("ExitTime", &self.ExitTime).field("KernelTime", &self.KernelTime).field("UserTime", &self.UserTime).field("StartOffset", &self.StartOffset).field("Affinity", &self.Affinity).finish()
}
}
impl ::windows_core::TypeKind for WDBGEXTS_THREAD_OS_INFO {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for WDBGEXTS_THREAD_OS_INFO {
fn eq(&self, other: &Self) -> bool {
self.ThreadId == other.ThreadId && self.ExitStatus == other.ExitStatus && self.PriorityClass == other.PriorityClass && self.Priority == other.Priority && self.CreateTime == other.CreateTime && self.ExitTime == other.ExitTime && self.KernelTime == other.KernelTime && self.UserTime == other.UserTime && self.StartOffset == other.StartOffset && self.Affinity == other.Affinity
}
}
impl ::core::cmp::Eq for WDBGEXTS_THREAD_OS_INFO {}
impl ::core::default::Default for WDBGEXTS_THREAD_OS_INFO {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
#[doc = "Required features: `\"Win32_System_Kernel\"`"]
#[cfg(feature = "Win32_System_Kernel")]
pub struct WINDBG_EXTENSION_APIS {
pub nSize: u32,
pub lpOutputRoutine: PWINDBG_OUTPUT_ROUTINE,
pub lpGetExpressionRoutine: PWINDBG_GET_EXPRESSION,
pub lpGetSymbolRoutine: PWINDBG_GET_SYMBOL,
pub lpDisasmRoutine: PWINDBG_DISASM,
pub lpCheckControlCRoutine: PWINDBG_CHECK_CONTROL_C,
pub lpReadProcessMemoryRoutine: PWINDBG_READ_PROCESS_MEMORY_ROUTINE,
pub lpWriteProcessMemoryRoutine: PWINDBG_WRITE_PROCESS_MEMORY_ROUTINE,
pub lpGetThreadContextRoutine: PWINDBG_GET_THREAD_CONTEXT_ROUTINE,
pub lpSetThreadContextRoutine: PWINDBG_SET_THREAD_CONTEXT_ROUTINE,
pub lpIoctlRoutine: PWINDBG_IOCTL_ROUTINE,
pub lpStackTraceRoutine: PWINDBG_STACKTRACE_ROUTINE,
}
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::marker::Copy for WINDBG_EXTENSION_APIS {}
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::clone::Clone for WINDBG_EXTENSION_APIS {
fn clone(&self) -> Self {
*self
}
}
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::fmt::Debug for WINDBG_EXTENSION_APIS {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("WINDBG_EXTENSION_APIS").field("nSize", &self.nSize).finish()
}
}
#[cfg(feature = "Win32_System_Kernel")]
impl ::windows_core::TypeKind for WINDBG_EXTENSION_APIS {
type TypeKind = ::windows_core::CopyType;
}
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::default::Default for WINDBG_EXTENSION_APIS {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
#[doc = "Required features: `\"Win32_System_Kernel\"`"]
#[cfg(feature = "Win32_System_Kernel")]
pub struct WINDBG_EXTENSION_APIS32 {
pub nSize: u32,
pub lpOutputRoutine: PWINDBG_OUTPUT_ROUTINE,
pub lpGetExpressionRoutine: PWINDBG_GET_EXPRESSION32,
pub lpGetSymbolRoutine: PWINDBG_GET_SYMBOL32,
pub lpDisasmRoutine: PWINDBG_DISASM32,
pub lpCheckControlCRoutine: PWINDBG_CHECK_CONTROL_C,
pub lpReadProcessMemoryRoutine: PWINDBG_READ_PROCESS_MEMORY_ROUTINE32,
pub lpWriteProcessMemoryRoutine: PWINDBG_WRITE_PROCESS_MEMORY_ROUTINE32,
pub lpGetThreadContextRoutine: PWINDBG_GET_THREAD_CONTEXT_ROUTINE,
pub lpSetThreadContextRoutine: PWINDBG_SET_THREAD_CONTEXT_ROUTINE,
pub lpIoctlRoutine: PWINDBG_IOCTL_ROUTINE,
pub lpStackTraceRoutine: PWINDBG_STACKTRACE_ROUTINE32,
}
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::marker::Copy for WINDBG_EXTENSION_APIS32 {}
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::clone::Clone for WINDBG_EXTENSION_APIS32 {
fn clone(&self) -> Self {
*self
}
}
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::fmt::Debug for WINDBG_EXTENSION_APIS32 {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("WINDBG_EXTENSION_APIS32").field("nSize", &self.nSize).finish()
}
}
#[cfg(feature = "Win32_System_Kernel")]
impl ::windows_core::TypeKind for WINDBG_EXTENSION_APIS32 {
type TypeKind = ::windows_core::CopyType;
}
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::default::Default for WINDBG_EXTENSION_APIS32 {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
#[doc = "Required features: `\"Win32_System_Kernel\"`"]
#[cfg(feature = "Win32_System_Kernel")]
pub struct WINDBG_EXTENSION_APIS64 {
pub nSize: u32,
pub lpOutputRoutine: PWINDBG_OUTPUT_ROUTINE,
pub lpGetExpressionRoutine: PWINDBG_GET_EXPRESSION64,
pub lpGetSymbolRoutine: PWINDBG_GET_SYMBOL64,
pub lpDisasmRoutine: PWINDBG_DISASM64,
pub lpCheckControlCRoutine: PWINDBG_CHECK_CONTROL_C,
pub lpReadProcessMemoryRoutine: PWINDBG_READ_PROCESS_MEMORY_ROUTINE64,
pub lpWriteProcessMemoryRoutine: PWINDBG_WRITE_PROCESS_MEMORY_ROUTINE64,
pub lpGetThreadContextRoutine: PWINDBG_GET_THREAD_CONTEXT_ROUTINE,
pub lpSetThreadContextRoutine: PWINDBG_SET_THREAD_CONTEXT_ROUTINE,
pub lpIoctlRoutine: PWINDBG_IOCTL_ROUTINE,
pub lpStackTraceRoutine: PWINDBG_STACKTRACE_ROUTINE64,
}
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::marker::Copy for WINDBG_EXTENSION_APIS64 {}
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::clone::Clone for WINDBG_EXTENSION_APIS64 {
fn clone(&self) -> Self {
*self
}
}
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::fmt::Debug for WINDBG_EXTENSION_APIS64 {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("WINDBG_EXTENSION_APIS64").field("nSize", &self.nSize).finish()
}
}
#[cfg(feature = "Win32_System_Kernel")]
impl ::windows_core::TypeKind for WINDBG_EXTENSION_APIS64 {
type TypeKind = ::windows_core::CopyType;
}
#[cfg(feature = "Win32_System_Kernel")]
impl ::core::default::Default for WINDBG_EXTENSION_APIS64 {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct WINDBG_OLDKD_EXTENSION_APIS {
pub nSize: u32,
pub lpOutputRoutine: PWINDBG_OUTPUT_ROUTINE,
pub lpGetExpressionRoutine: PWINDBG_GET_EXPRESSION32,
pub lpGetSymbolRoutine: PWINDBG_GET_SYMBOL32,
pub lpDisasmRoutine: PWINDBG_DISASM32,
pub lpCheckControlCRoutine: PWINDBG_CHECK_CONTROL_C,
pub lpReadVirtualMemRoutine: PWINDBG_READ_PROCESS_MEMORY_ROUTINE32,
pub lpWriteVirtualMemRoutine: PWINDBG_WRITE_PROCESS_MEMORY_ROUTINE32,
pub lpReadPhysicalMemRoutine: PWINDBG_OLDKD_READ_PHYSICAL_MEMORY,
pub lpWritePhysicalMemRoutine: PWINDBG_OLDKD_WRITE_PHYSICAL_MEMORY,
}
impl ::core::marker::Copy for WINDBG_OLDKD_EXTENSION_APIS {}
impl ::core::clone::Clone for WINDBG_OLDKD_EXTENSION_APIS {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for WINDBG_OLDKD_EXTENSION_APIS {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("WINDBG_OLDKD_EXTENSION_APIS").field("nSize", &self.nSize).finish()
}
}
impl ::windows_core::TypeKind for WINDBG_OLDKD_EXTENSION_APIS {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::default::Default for WINDBG_OLDKD_EXTENSION_APIS {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct WINDBG_OLD_EXTENSION_APIS {
pub nSize: u32,
pub lpOutputRoutine: PWINDBG_OUTPUT_ROUTINE,
pub lpGetExpressionRoutine: PWINDBG_GET_EXPRESSION,
pub lpGetSymbolRoutine: PWINDBG_GET_SYMBOL,
pub lpDisasmRoutine: PWINDBG_DISASM,
pub lpCheckControlCRoutine: PWINDBG_CHECK_CONTROL_C,
}
impl ::core::marker::Copy for WINDBG_OLD_EXTENSION_APIS {}
impl ::core::clone::Clone for WINDBG_OLD_EXTENSION_APIS {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for WINDBG_OLD_EXTENSION_APIS {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("WINDBG_OLD_EXTENSION_APIS").field("nSize", &self.nSize).finish()
}
}
impl ::windows_core::TypeKind for WINDBG_OLD_EXTENSION_APIS {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::default::Default for WINDBG_OLD_EXTENSION_APIS {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
pub struct XML_DRIVER_NODE_INFO {
pub FileName: [u8; 64],
pub FileSize: u64,
pub CreationDate: u64,
pub Version: [u8; 64],
pub Manufacturer: [u8; 260],
pub ProductName: [u8; 260],
pub Group: [u8; 260],
pub Altitude: [u8; 260],
}
impl ::core::marker::Copy for XML_DRIVER_NODE_INFO {}
impl ::core::clone::Clone for XML_DRIVER_NODE_INFO {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for XML_DRIVER_NODE_INFO {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("XML_DRIVER_NODE_INFO").field("FileName", &self.FileName).field("FileSize", &self.FileSize).field("CreationDate", &self.CreationDate).field("Version", &self.Version).field("Manufacturer", &self.Manufacturer).field("ProductName", &self.ProductName).field("Group", &self.Group).field("Altitude", &self.Altitude).finish()
}
}
impl ::windows_core::TypeKind for XML_DRIVER_NODE_INFO {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for XML_DRIVER_NODE_INFO {
fn eq(&self, other: &Self) -> bool {
self.FileName == other.FileName && self.FileSize == other.FileSize && self.CreationDate == other.CreationDate && self.Version == other.Version && self.Manufacturer == other.Manufacturer && self.ProductName == other.ProductName && self.Group == other.Group && self.Altitude == other.Altitude
}
}
impl ::core::cmp::Eq for XML_DRIVER_NODE_INFO {}
impl ::core::default::Default for XML_DRIVER_NODE_INFO {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
pub type ENTRY_CALLBACK = ::core::option::Option<unsafe extern "system" fn(entryaddress: u64, context: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT>;
pub type EXTDLL_ITERATERTLBALANCEDNODES = ::core::option::Option<unsafe extern "system" fn(rootnode: u64, entryoffset: u32, callback: ENTRY_CALLBACK, callbackcontext: *mut ::core::ffi::c_void) -> ()>;
pub type EXTDLL_QUERYDATABYTAG = ::core::option::Option<unsafe extern "system" fn(client: ::core::option::Option<IDebugClient4>, dwdatatag: u32, pqueryinfo: *const ::core::ffi::c_void, pdata: *mut u8, cbdata: u32) -> ::windows_core::HRESULT>;
pub type EXTDLL_QUERYDATABYTAGEX = ::core::option::Option<unsafe extern "system" fn(client: ::core::option::Option<IDebugClient4>, dwdatatag: u32, pqueryinfo: *const ::core::ffi::c_void, pdata: *mut u8, cbdata: u32, pdataex: *mut u8, cbdataex: u32) -> ::windows_core::HRESULT>;
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub type EXTS_JOB_PROCESS_CALLBACK = ::core::option::Option<unsafe extern "system" fn(job: u64, process: u64, context: *mut ::core::ffi::c_void) -> super::super::super::super::Foundation::BOOLEAN>;
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub type EXTS_TABLE_ENTRY_CALLBACK = ::core::option::Option<unsafe extern "system" fn(entry: u64, context: *mut ::core::ffi::c_void) -> super::super::super::super::Foundation::BOOLEAN>;
pub type EXT_ANALYSIS_PLUGIN = ::core::option::Option<unsafe extern "system" fn(client: ::core::option::Option<IDebugClient4>, callphase: FA_EXTENSION_PLUGIN_PHASE, panalysis: ::core::option::Option<IDebugFailureAnalysis2>) -> ::windows_core::HRESULT>;
pub type EXT_ANALYZER = ::core::option::Option<unsafe extern "system" fn(client: ::core::option::Option<IDebugClient>, bucketsuffix: ::windows_core::PSTR, cbbucketsuffix: u32, debugtext: ::windows_core::PSTR, cbdebugtext: u32, flags: *const u32, panalysis: ::core::option::Option<IDebugFailureAnalysis>) -> ::windows_core::HRESULT>;
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub type EXT_DECODE_ERROR = ::core::option::Option<unsafe extern "system" fn(pdecodeerror: *mut DEBUG_DECODE_ERROR) -> ()>;
pub type EXT_GET_DEBUG_FAILURE_ANALYSIS = ::core::option::Option<unsafe extern "system" fn(client: ::core::option::Option<IDebugClient4>, flags: u32, classid: ::windows_core::GUID, ppanalysis: *mut ::core::option::Option<IDebugFailureAnalysis2>) -> ::windows_core::HRESULT>;
pub type EXT_GET_ENVIRONMENT_VARIABLE = ::core::option::Option<unsafe extern "system" fn(peb: u64, variable: ::windows_core::PCSTR, buffer: ::windows_core::PCSTR, buffersize: u32) -> ::windows_core::HRESULT>;
pub type EXT_GET_FAILURE_ANALYSIS = ::core::option::Option<unsafe extern "system" fn(client: ::core::option::Option<IDebugClient4>, flags: u32, ppanalysis: *mut ::core::option::Option<IDebugFailureAnalysis>) -> ::windows_core::HRESULT>;
pub type EXT_GET_FA_ENTRIES_DATA = ::core::option::Option<unsafe extern "system" fn(client: ::core::option::Option<IDebugClient4>, count: *mut u32, entries: *mut *mut FA_ENTRY) -> ::windows_core::HRESULT>;
pub type EXT_GET_HANDLE_TRACE = ::core::option::Option<unsafe extern "system" fn(client: ::core::option::Option<IDebugClient>, tracetype: u32, startindex: u32, handlevalue: *mut u64, stackfunctions: *mut u64, stacktracesize: u32) -> ::windows_core::HRESULT>;
pub type EXT_RELOAD_TRIAGER = ::core::option::Option<unsafe extern "system" fn(client: ::core::option::Option<IDebugClient4>) -> ::windows_core::HRESULT>;
pub type EXT_TARGET_INFO = ::core::option::Option<unsafe extern "system" fn(client: ::core::option::Option<IDebugClient4>, ptargetinfo: *mut TARGET_DEBUG_INFO) -> ::windows_core::HRESULT>;
pub type EXT_TRIAGE_FOLLOWUP = ::core::option::Option<unsafe extern "system" fn(client: ::core::option::Option<IDebugClient4>, symbolname: ::windows_core::PCSTR, ownerinfo: *mut DEBUG_TRIAGE_FOLLOWUP_INFO) -> u32>;
pub type EXT_XML_DATA = ::core::option::Option<unsafe extern "system" fn(client: ::core::option::Option<IDebugClient4>, pxmpdata: *mut EXT_CAB_XML_DATA) -> ::windows_core::HRESULT>;
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub type KDEXTS_LOCK_CALLBACKROUTINE = ::core::option::Option<unsafe extern "system" fn(plock: *mut KDEXTS_LOCK_INFO, context: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT>;
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub type KDEXT_DUMP_HANDLE_CALLBACK = ::core::option::Option<unsafe extern "system" fn(handleinfo: *const KDEXT_HANDLE_INFORMATION, flags: u32, context: *mut ::core::ffi::c_void) -> super::super::super::super::Foundation::BOOLEAN>;
pub type PDEBUG_EXTENSION_CALL = ::core::option::Option<unsafe extern "system" fn(client: ::core::option::Option<IDebugClient>, args: ::windows_core::PCSTR) -> ::windows_core::HRESULT>;
pub type PDEBUG_EXTENSION_CANUNLOAD = ::core::option::Option<unsafe extern "system" fn() -> ::windows_core::HRESULT>;
pub type PDEBUG_EXTENSION_INITIALIZE = ::core::option::Option<unsafe extern "system" fn(version: *mut u32, flags: *mut u32) -> ::windows_core::HRESULT>;
pub type PDEBUG_EXTENSION_KNOWN_STRUCT = ::core::option::Option<unsafe extern "system" fn(flags: u32, offset: u64, typename: ::windows_core::PCSTR, buffer: ::windows_core::PSTR, bufferchars: *mut u32) -> ::windows_core::HRESULT>;
pub type PDEBUG_EXTENSION_KNOWN_STRUCT_EX = ::core::option::Option<unsafe extern "system" fn(client: ::core::option::Option<IDebugClient>, flags: u32, offset: u64, typename: ::windows_core::PCSTR, buffer: ::windows_core::PSTR, bufferchars: *mut u32) -> ::windows_core::HRESULT>;
pub type PDEBUG_EXTENSION_NOTIFY = ::core::option::Option<unsafe extern "system" fn(notify: u32, argument: u64) -> ()>;
pub type PDEBUG_EXTENSION_PROVIDE_VALUE = ::core::option::Option<unsafe extern "system" fn(client: ::core::option::Option<IDebugClient>, flags: u32, name: ::windows_core::PCWSTR, value: *mut u64, typemodbase: *mut u64, typeid: *mut u32, typeflags: *mut u32) -> ::windows_core::HRESULT>;
pub type PDEBUG_EXTENSION_QUERY_VALUE_NAMES = ::core::option::Option<unsafe extern "system" fn(client: ::core::option::Option<IDebugClient>, flags: u32, buffer: ::windows_core::PWSTR, bufferchars: u32, bufferneeded: *mut u32) -> ::windows_core::HRESULT>;
pub type PDEBUG_EXTENSION_UNINITIALIZE = ::core::option::Option<unsafe extern "system" fn() -> ()>;
pub type PDEBUG_EXTENSION_UNLOAD = ::core::option::Option<unsafe extern "system" fn() -> ()>;
pub type PDEBUG_STACK_PROVIDER_BEGINTHREADSTACKRECONSTRUCTION = ::core::option::Option<unsafe extern "system" fn(streamtype: u32, minidumpstreambuffer: *const ::core::ffi::c_void, buffersize: u32) -> ::windows_core::HRESULT>;
pub type PDEBUG_STACK_PROVIDER_ENDTHREADSTACKRECONSTRUCTION = ::core::option::Option<unsafe extern "system" fn() -> ::windows_core::HRESULT>;
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub type PDEBUG_STACK_PROVIDER_FREESTACKSYMFRAMES = ::core::option::Option<unsafe extern "system" fn(stacksymframes: *const STACK_SYM_FRAME_INFO) -> ::windows_core::HRESULT>;
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub type PDEBUG_STACK_PROVIDER_RECONSTRUCTSTACK = ::core::option::Option<unsafe extern "system" fn(systemthreadid: u32, nativeframes: *const DEBUG_STACK_FRAME_EX, countnativeframes: u32, stacksymframes: *mut *mut STACK_SYM_FRAME_INFO, stacksymframesfilled: *mut u32) -> ::windows_core::HRESULT>;
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub type PENUMERATE_HANDLES = ::core::option::Option<unsafe extern "system" fn(client: ::core::option::Option<IDebugClient>, process: u64, handletodump: u64, flags: u32, callback: KDEXT_DUMP_HANDLE_CALLBACK, context: *const ::core::ffi::c_void) -> ::windows_core::HRESULT>;
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub type PENUMERATE_HASH_TABLE = ::core::option::Option<unsafe extern "system" fn(client: ::core::option::Option<IDebugClient>, hashtable: u64, callback: EXTS_TABLE_ENTRY_CALLBACK, context: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT>;
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub type PENUMERATE_JOB_PROCESSES = ::core::option::Option<unsafe extern "system" fn(client: ::core::option::Option<IDebugClient>, job: u64, callback: EXTS_JOB_PROCESS_CALLBACK, context: *const ::core::ffi::c_void) -> ::windows_core::HRESULT>;
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub type PENUMERATE_SYSTEM_LOCKS = ::core::option::Option<unsafe extern "system" fn(client: ::core::option::Option<IDebugClient>, flags: u32, callback: KDEXTS_LOCK_CALLBACKROUTINE, context: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT>;
pub type PFIND_FILELOCK_OWNERINFO = ::core::option::Option<unsafe extern "system" fn(client: ::core::option::Option<IDebugClient>, pfilelockowner: *mut KDEXT_FILELOCK_OWNER) -> ::windows_core::HRESULT>;
pub type PFIND_MATCHING_PROCESS = ::core::option::Option<unsafe extern "system" fn(client: ::core::option::Option<IDebugClient>, processinfo: *const KDEXT_PROCESS_FIND_PARAMS, process: *mut u64) -> ::windows_core::HRESULT>;
pub type PFIND_MATCHING_THREAD = ::core::option::Option<unsafe extern "system" fn(client: ::core::option::Option<IDebugClient>, threadinfo: *mut KDEXT_THREAD_FIND_PARAMS) -> ::windows_core::HRESULT>;
pub type PGET_CPU_MICROCODE_VERSION = ::core::option::Option<unsafe extern "system" fn(client: ::core::option::Option<IDebugClient>, pcpumicrocodeversion: *mut DEBUG_CPU_MICROCODE_VERSION) -> ::windows_core::HRESULT>;
pub type PGET_CPU_PSPEED_INFO = ::core::option::Option<unsafe extern "system" fn(client: ::core::option::Option<IDebugClient>, pcpuspeedinfo: *mut DEBUG_CPU_SPEED_INFO) -> ::windows_core::HRESULT>;
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub type PGET_DEVICE_OBJECT_INFO = ::core::option::Option<unsafe extern "system" fn(client: ::core::option::Option<IDebugClient>, deviceobject: u64, pdevobjinfo: *mut DEBUG_DEVICE_OBJECT_INFO) -> ::windows_core::HRESULT>;
pub type PGET_DRIVER_OBJECT_INFO = ::core::option::Option<unsafe extern "system" fn(client: ::core::option::Option<IDebugClient>, driverobject: u64, pdrvobjinfo: *mut DEBUG_DRIVER_OBJECT_INFO) -> ::windows_core::HRESULT>;
pub type PGET_FULL_IMAGE_NAME = ::core::option::Option<unsafe extern "system" fn(client: ::core::option::Option<IDebugClient>, process: u64, fullimagename: *mut ::windows_core::PSTR) -> ::windows_core::HRESULT>;
pub type PGET_IRP_INFO = ::core::option::Option<unsafe extern "system" fn(client: ::core::option::Option<IDebugClient>, irp: u64, irpinfo: *mut DEBUG_IRP_INFO) -> ::windows_core::HRESULT>;
pub type PGET_PNP_TRIAGE_INFO = ::core::option::Option<unsafe extern "system" fn(client: ::core::option::Option<IDebugClient>, ppnptriageinfo: *mut DEBUG_PNP_TRIAGE_INFO) -> ::windows_core::HRESULT>;
pub type PGET_POOL_DATA = ::core::option::Option<unsafe extern "system" fn(client: ::core::option::Option<IDebugClient>, pool: u64, pooldata: *mut DEBUG_POOL_DATA) -> ::windows_core::HRESULT>;
pub type PGET_POOL_REGION = ::core::option::Option<unsafe extern "system" fn(client: ::core::option::Option<IDebugClient>, pool: u64, poolregion: *mut DEBUG_POOL_REGION) -> ::windows_core::HRESULT>;
pub type PGET_POOL_TAG_DESCRIPTION = ::core::option::Option<unsafe extern "system" fn(pooltag: u32, pdescription: *mut DEBUG_POOLTAG_DESCRIPTION) -> ::windows_core::HRESULT>;
pub type PGET_PROCESS_COMMIT = ::core::option::Option<unsafe extern "system" fn(client: ::core::option::Option<IDebugClient>, totalcommitcharge: *mut u64, numberofprocesses: *mut u32, commitdata: *mut *mut PROCESS_COMMIT_USAGE) -> ::windows_core::HRESULT>;
pub type PGET_SMBIOS_INFO = ::core::option::Option<unsafe extern "system" fn(client: ::core::option::Option<IDebugClient>, psmbiosinfo: *mut DEBUG_SMBIOS_INFO) -> ::windows_core::HRESULT>;
pub type PKDEXTS_GET_PTE_INFO = ::core::option::Option<unsafe extern "system" fn(client: ::core::option::Option<IDebugClient>, r#virtual: u64, pteinfo: *mut KDEXTS_PTE_INFO) -> ::windows_core::HRESULT>;
pub type PSYM_DUMP_FIELD_CALLBACK = ::core::option::Option<unsafe extern "system" fn(pfield: *mut FIELD_INFO, usercontext: *mut ::core::ffi::c_void) -> u32>;
pub type PWINDBG_CHECK_CONTROL_C = ::core::option::Option<unsafe extern "system" fn() -> u32>;
pub type PWINDBG_CHECK_VERSION = ::core::option::Option<unsafe extern "system" fn() -> u32>;
pub type PWINDBG_DISASM = ::core::option::Option<unsafe extern "system" fn(lpoffset: *mut usize, lpbuffer: ::windows_core::PCSTR, fshoweffectiveaddress: u32) -> u32>;
pub type PWINDBG_DISASM32 = ::core::option::Option<unsafe extern "system" fn(lpoffset: *mut u32, lpbuffer: ::windows_core::PCSTR, fshoweffectiveaddress: u32) -> u32>;
pub type PWINDBG_DISASM64 = ::core::option::Option<unsafe extern "system" fn(lpoffset: *mut u64, lpbuffer: ::windows_core::PCSTR, fshoweffectiveaddress: u32) -> u32>;
pub type PWINDBG_EXTENSION_API_VERSION = ::core::option::Option<unsafe extern "system" fn() -> *mut EXT_API_VERSION>;
#[doc = "Required features: `\"Win32_System_Kernel\"`"]
#[cfg(feature = "Win32_System_Kernel")]
pub type PWINDBG_EXTENSION_DLL_INIT = ::core::option::Option<unsafe extern "system" fn(lpextensionapis: *mut WINDBG_EXTENSION_APIS, majorversion: u16, minorversion: u16) -> ()>;
#[doc = "Required features: `\"Win32_System_Kernel\"`"]
#[cfg(feature = "Win32_System_Kernel")]
pub type PWINDBG_EXTENSION_DLL_INIT32 = ::core::option::Option<unsafe extern "system" fn(lpextensionapis: *mut WINDBG_EXTENSION_APIS32, majorversion: u16, minorversion: u16) -> ()>;
#[doc = "Required features: `\"Win32_System_Kernel\"`"]
#[cfg(feature = "Win32_System_Kernel")]
pub type PWINDBG_EXTENSION_DLL_INIT64 = ::core::option::Option<unsafe extern "system" fn(lpextensionapis: *mut WINDBG_EXTENSION_APIS64, majorversion: u16, minorversion: u16) -> ()>;
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub type PWINDBG_EXTENSION_ROUTINE = ::core::option::Option<unsafe extern "system" fn(hcurrentprocess: super::super::super::super::Foundation::HANDLE, hcurrentthread: super::super::super::super::Foundation::HANDLE, dwcurrentpc: u32, dwprocessor: u32, lpargumentstring: ::windows_core::PCSTR) -> ()>;
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub type PWINDBG_EXTENSION_ROUTINE32 = ::core::option::Option<unsafe extern "system" fn(hcurrentprocess: super::super::super::super::Foundation::HANDLE, hcurrentthread: super::super::super::super::Foundation::HANDLE, dwcurrentpc: u32, dwprocessor: u32, lpargumentstring: ::windows_core::PCSTR) -> ()>;
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(feature = "Win32_Foundation")]
pub type PWINDBG_EXTENSION_ROUTINE64 = ::core::option::Option<unsafe extern "system" fn(hcurrentprocess: super::super::super::super::Foundation::HANDLE, hcurrentthread: super::super::super::super::Foundation::HANDLE, dwcurrentpc: u64, dwprocessor: u32, lpargumentstring: ::windows_core::PCSTR) -> ()>;
pub type PWINDBG_GET_EXPRESSION = ::core::option::Option<unsafe extern "system" fn(lpexpression: ::windows_core::PCSTR) -> usize>;
pub type PWINDBG_GET_EXPRESSION32 = ::core::option::Option<unsafe extern "system" fn(lpexpression: ::windows_core::PCSTR) -> u32>;
pub type PWINDBG_GET_EXPRESSION64 = ::core::option::Option<unsafe extern "system" fn(lpexpression: ::windows_core::PCSTR) -> u64>;
pub type PWINDBG_GET_SYMBOL = ::core::option::Option<unsafe extern "system" fn(offset: *mut ::core::ffi::c_void, pchbuffer: ::windows_core::PCSTR, pdisplacement: *mut usize) -> ()>;
pub type PWINDBG_GET_SYMBOL32 = ::core::option::Option<unsafe extern "system" fn(offset: u32, pchbuffer: ::windows_core::PCSTR, pdisplacement: *mut u32) -> ()>;
pub type PWINDBG_GET_SYMBOL64 = ::core::option::Option<unsafe extern "system" fn(offset: u64, pchbuffer: ::windows_core::PCSTR, pdisplacement: *mut u64) -> ()>;
#[doc = "Required features: `\"Win32_System_Kernel\"`"]
#[cfg(feature = "Win32_System_Kernel")]
pub type PWINDBG_GET_THREAD_CONTEXT_ROUTINE = ::core::option::Option<unsafe extern "system" fn(processor: u32, lpcontext: *mut super::CONTEXT, cbsizeofcontext: u32) -> u32>;
pub type PWINDBG_IOCTL_ROUTINE = ::core::option::Option<unsafe extern "system" fn(ioctltype: u16, lpvdata: *mut ::core::ffi::c_void, cbsize: u32) -> u32>;
pub type PWINDBG_OLDKD_EXTENSION_ROUTINE = ::core::option::Option<unsafe extern "system" fn(dwcurrentpc: u32, lpextensionapis: *mut WINDBG_OLDKD_EXTENSION_APIS, lpargumentstring: ::windows_core::PCSTR) -> ()>;
pub type PWINDBG_OLDKD_READ_PHYSICAL_MEMORY = ::core::option::Option<unsafe extern "system" fn(address: u64, buffer: *mut ::core::ffi::c_void, count: u32, bytesread: *mut u32) -> u32>;
pub type PWINDBG_OLDKD_WRITE_PHYSICAL_MEMORY = ::core::option::Option<unsafe extern "system" fn(address: u64, buffer: *mut ::core::ffi::c_void, length: u32, byteswritten: *mut u32) -> u32>;
#[doc = "Required features: `\"Win32_System_Kernel\"`"]
#[cfg(feature = "Win32_System_Kernel")]
pub type PWINDBG_OLD_EXTENSION_ROUTINE = ::core::option::Option<unsafe extern "system" fn(dwcurrentpc: u32, lpextensionapis: *mut WINDBG_EXTENSION_APIS, lpargumentstring: ::windows_core::PCSTR) -> ()>;
pub type PWINDBG_OUTPUT_ROUTINE = ::core::option::Option<unsafe extern "system" fn(lpformat: ::windows_core::PCSTR) -> ()>;
pub type PWINDBG_READ_PROCESS_MEMORY_ROUTINE = ::core::option::Option<unsafe extern "system" fn(offset: usize, lpbuffer: *mut ::core::ffi::c_void, cb: u32, lpcbbytesread: *mut u32) -> u32>;
pub type PWINDBG_READ_PROCESS_MEMORY_ROUTINE32 = ::core::option::Option<unsafe extern "system" fn(offset: u32, lpbuffer: *mut ::core::ffi::c_void, cb: u32, lpcbbytesread: *mut u32) -> u32>;
pub type PWINDBG_READ_PROCESS_MEMORY_ROUTINE64 = ::core::option::Option<unsafe extern "system" fn(offset: u64, lpbuffer: *mut ::core::ffi::c_void, cb: u32, lpcbbytesread: *mut u32) -> u32>;
#[doc = "Required features: `\"Win32_System_Kernel\"`"]
#[cfg(feature = "Win32_System_Kernel")]
pub type PWINDBG_SET_THREAD_CONTEXT_ROUTINE = ::core::option::Option<unsafe extern "system" fn(processor: u32, lpcontext: *mut super::CONTEXT, cbsizeofcontext: u32) -> u32>;
pub type PWINDBG_STACKTRACE_ROUTINE = ::core::option::Option<unsafe extern "system" fn(framepointer: u32, stackpointer: u32, programcounter: u32, stackframes: *mut EXTSTACKTRACE, frames: u32) -> u32>;
pub type PWINDBG_STACKTRACE_ROUTINE32 = ::core::option::Option<unsafe extern "system" fn(framepointer: u32, stackpointer: u32, programcounter: u32, stackframes: *mut EXTSTACKTRACE32, frames: u32) -> u32>;
pub type PWINDBG_STACKTRACE_ROUTINE64 = ::core::option::Option<unsafe extern "system" fn(framepointer: u64, stackpointer: u64, programcounter: u64, stackframes: *mut EXTSTACKTRACE64, frames: u32) -> u32>;
pub type PWINDBG_WRITE_PROCESS_MEMORY_ROUTINE = ::core::option::Option<unsafe extern "system" fn(offset: usize, lpbuffer: *const ::core::ffi::c_void, cb: u32, lpcbbyteswritten: *mut u32) -> u32>;
pub type PWINDBG_WRITE_PROCESS_MEMORY_ROUTINE32 = ::core::option::Option<unsafe extern "system" fn(offset: u32, lpbuffer: *const ::core::ffi::c_void, cb: u32, lpcbbyteswritten: *mut u32) -> u32>;
pub type PWINDBG_WRITE_PROCESS_MEMORY_ROUTINE64 = ::core::option::Option<unsafe extern "system" fn(offset: u64, lpbuffer: *const ::core::ffi::c_void, cb: u32, lpcbbyteswritten: *mut u32) -> u32>;
pub type fnDebugFailureAnalysisCreateInstance = ::core::option::Option<unsafe extern "system" fn(client: ::core::option::Option<IDebugClient>, args: ::windows_core::PCWSTR, flags: u32, rclsid: *const ::windows_core::GUID, riid: *const ::windows_core::GUID, ppv: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT>;
#[cfg(feature = "implement")]
::core::include!("impl.rs");