#[inline]
pub unsafe fn CreateDataModelManager<P0>(debughost: P0) -> windows_core::Result<IDataModelManager>
where
P0: windows_core::Param<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__ = core::mem::zeroed();
CreateDataModelManager(debughost.param().abi(), &mut result__).and_then(|| windows_core::Type::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::Param<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.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::Param<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.param().abi(), interfaceid, interface).ok()
}
#[inline]
pub unsafe fn DebugCreate<T>() -> windows_core::Result<T>
where
T: windows_core::Interface,
{
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__ = core::ptr::null_mut();
DebugCreate(&T::IID, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
#[inline]
pub unsafe fn DebugCreateEx<T>(dbgengoptions: u32) -> windows_core::Result<T>
where
T: windows_core::Interface,
{
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__ = core::ptr::null_mut();
DebugCreateEx(&T::IID, dbgengoptions, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
windows_core::imp::define_interface!(DebugBaseEventCallbacks, DebugBaseEventCallbacks_Vtbl, 0);
impl core::ops::Deref for DebugBaseEventCallbacks {
type Target = IDebugEventCallbacks;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(DebugBaseEventCallbacks, windows_core::IUnknown, IDebugEventCallbacks);
impl DebugBaseEventCallbacks {}
#[repr(C)]
pub struct DebugBaseEventCallbacks_Vtbl {
pub base__: IDebugEventCallbacks_Vtbl,
}
windows_core::imp::define_interface!(DebugBaseEventCallbacksWide, DebugBaseEventCallbacksWide_Vtbl, 0);
impl core::ops::Deref for DebugBaseEventCallbacksWide {
type Target = IDebugEventCallbacksWide;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(DebugBaseEventCallbacksWide, windows_core::IUnknown, IDebugEventCallbacksWide);
impl DebugBaseEventCallbacksWide {}
#[repr(C)]
pub struct DebugBaseEventCallbacksWide_Vtbl {
pub base__: IDebugEventCallbacksWide_Vtbl,
}
windows_core::imp::define_interface!(ICodeAddressConcept, ICodeAddressConcept_Vtbl, 0xc7371568_5c78_4a00_a4ab_6ef8823184cb);
impl core::ops::Deref for ICodeAddressConcept {
type Target = windows_core::IUnknown;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(ICodeAddressConcept, windows_core::IUnknown);
impl ICodeAddressConcept {
pub unsafe fn GetContainingSymbol<P0>(&self, pcontextobject: P0) -> windows_core::Result<IDebugHostSymbol>
where
P0: windows_core::Param<IModelObject>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetContainingSymbol)(windows_core::Interface::as_raw(self), pcontextobject.param().abi(), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
#[repr(C)]
pub struct ICodeAddressConcept_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetContainingSymbol: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IComparableConcept, IComparableConcept_Vtbl, 0xa7830646_9f0c_4a31_ba19_503f33e6c8a3);
impl core::ops::Deref for IComparableConcept {
type Target = windows_core::IUnknown;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(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::Param<IModelObject>,
P1: windows_core::Param<IModelObject>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).CompareObjects)(windows_core::Interface::as_raw(self), contextobject.param().abi(), otherobject.param().abi(), &mut result__).map(|| result__)
}
}
#[repr(C)]
pub struct IComparableConcept_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub CompareObjects: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, *mut core::ffi::c_void, *mut i32) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IDataModelConcept, IDataModelConcept_Vtbl, 0xfcb98d1d_1114_4fbf_b24c_effcb5def0d3);
impl core::ops::Deref for IDataModelConcept {
type Target = windows_core::IUnknown;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(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::Param<IModelObject>,
P1: windows_core::Param<IDebugHostTypeSignature>,
P2: windows_core::Param<IDebugHostSymbolEnumerator>,
{
(windows_core::Interface::vtable(self).InitializeObject)(windows_core::Interface::as_raw(self), modelobject.param().abi(), matchingtypesignature.param().abi(), wildcardmatches.param().abi()).ok()
}
pub unsafe fn GetName(&self) -> windows_core::Result<windows_core::BSTR> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetName)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
#[repr(C)]
pub struct IDataModelConcept_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub InitializeObject: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, *mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetName: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::mem::MaybeUninit<windows_core::BSTR>) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IDataModelManager, IDataModelManager_Vtbl, 0x73fe19f4_a110_4500_8ed9_3c28896f508c);
impl core::ops::Deref for IDataModelManager {
type Target = windows_core::IUnknown;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).CreateNoValue)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn CreateErrorObject<P0>(&self, hrerror: windows_core::HRESULT, pwszmessage: P0) -> windows_core::Result<IModelObject>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).CreateErrorObject)(windows_core::Interface::as_raw(self), hrerror, pwszmessage.param().abi(), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn CreateTypedObject<P0, P1>(&self, context: P0, objectlocation: Location, objecttype: P1) -> windows_core::Result<IModelObject>
where
P0: windows_core::Param<IDebugHostContext>,
P1: windows_core::Param<IDebugHostType>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).CreateTypedObject)(windows_core::Interface::as_raw(self), context.param().abi(), core::mem::transmute(objectlocation), objecttype.param().abi(), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn CreateTypedObjectReference<P0, P1>(&self, context: P0, objectlocation: Location, objecttype: P1) -> windows_core::Result<IModelObject>
where
P0: windows_core::Param<IDebugHostContext>,
P1: windows_core::Param<IDebugHostType>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).CreateTypedObjectReference)(windows_core::Interface::as_raw(self), context.param().abi(), core::mem::transmute(objectlocation), objecttype.param().abi(), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn CreateSyntheticObject<P0>(&self, context: P0) -> windows_core::Result<IModelObject>
where
P0: windows_core::Param<IDebugHostContext>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).CreateSyntheticObject)(windows_core::Interface::as_raw(self), context.param().abi(), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn CreateDataModelObject<P0>(&self, datamodel: P0) -> windows_core::Result<IModelObject>
where
P0: windows_core::Param<IDataModelConcept>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).CreateDataModelObject)(windows_core::Interface::as_raw(self), datamodel.param().abi(), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn CreateIntrinsicObject(&self, objectkind: ModelObjectKind, intrinsicdata: *const windows_core::VARIANT) -> windows_core::Result<IModelObject> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).CreateIntrinsicObject)(windows_core::Interface::as_raw(self), objectkind, core::mem::transmute(intrinsicdata), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn CreateTypedIntrinsicObject<P0>(&self, intrinsicdata: *const windows_core::VARIANT, r#type: P0) -> windows_core::Result<IModelObject>
where
P0: windows_core::Param<IDebugHostType>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).CreateTypedIntrinsicObject)(windows_core::Interface::as_raw(self), core::mem::transmute(intrinsicdata), r#type.param().abi(), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn GetModelForTypeSignature<P0>(&self, typesignature: P0) -> windows_core::Result<IModelObject>
where
P0: windows_core::Param<IDebugHostTypeSignature>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetModelForTypeSignature)(windows_core::Interface::as_raw(self), typesignature.param().abi(), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn GetModelForType<P0>(&self, r#type: P0, datamodel: *mut Option<IModelObject>, typesignature: Option<*mut Option<IDebugHostTypeSignature>>, wildcardmatches: Option<*mut Option<IDebugHostSymbolEnumerator>>) -> windows_core::Result<()>
where
P0: windows_core::Param<IDebugHostType>,
{
(windows_core::Interface::vtable(self).GetModelForType)(windows_core::Interface::as_raw(self), r#type.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::Param<IDebugHostTypeSignature>,
P1: windows_core::Param<IModelObject>,
{
(windows_core::Interface::vtable(self).RegisterModelForTypeSignature)(windows_core::Interface::as_raw(self), typesignature.param().abi(), datamodel.param().abi()).ok()
}
pub unsafe fn UnregisterModelForTypeSignature<P0, P1>(&self, datamodel: P0, typesignature: P1) -> windows_core::Result<()>
where
P0: windows_core::Param<IModelObject>,
P1: windows_core::Param<IDebugHostTypeSignature>,
{
(windows_core::Interface::vtable(self).UnregisterModelForTypeSignature)(windows_core::Interface::as_raw(self), datamodel.param().abi(), typesignature.param().abi()).ok()
}
pub unsafe fn RegisterExtensionForTypeSignature<P0, P1>(&self, typesignature: P0, datamodel: P1) -> windows_core::Result<()>
where
P0: windows_core::Param<IDebugHostTypeSignature>,
P1: windows_core::Param<IModelObject>,
{
(windows_core::Interface::vtable(self).RegisterExtensionForTypeSignature)(windows_core::Interface::as_raw(self), typesignature.param().abi(), datamodel.param().abi()).ok()
}
pub unsafe fn UnregisterExtensionForTypeSignature<P0, P1>(&self, datamodel: P0, typesignature: P1) -> windows_core::Result<()>
where
P0: windows_core::Param<IModelObject>,
P1: windows_core::Param<IDebugHostTypeSignature>,
{
(windows_core::Interface::vtable(self).UnregisterExtensionForTypeSignature)(windows_core::Interface::as_raw(self), datamodel.param().abi(), typesignature.param().abi()).ok()
}
pub unsafe fn CreateMetadataStore<P0>(&self, parentstore: P0) -> windows_core::Result<IKeyStore>
where
P0: windows_core::Param<IKeyStore>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).CreateMetadataStore)(windows_core::Interface::as_raw(self), parentstore.param().abi(), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn GetRootNamespace(&self) -> windows_core::Result<IModelObject> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRootNamespace)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn RegisterNamedModel<P0, P1>(&self, modelname: P0, modeobject: P1) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
P1: windows_core::Param<IModelObject>,
{
(windows_core::Interface::vtable(self).RegisterNamedModel)(windows_core::Interface::as_raw(self), modelname.param().abi(), modeobject.param().abi()).ok()
}
pub unsafe fn UnregisterNamedModel<P0>(&self, modelname: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).UnregisterNamedModel)(windows_core::Interface::as_raw(self), modelname.param().abi()).ok()
}
pub unsafe fn AcquireNamedModel<P0>(&self, modelname: P0) -> windows_core::Result<IModelObject>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).AcquireNamedModel)(windows_core::Interface::as_raw(self), modelname.param().abi(), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
#[repr(C)]
pub struct IDataModelManager_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub Close: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub CreateNoValue: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub CreateErrorObject: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::HRESULT, windows_core::PCWSTR, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub CreateTypedObject: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, Location, *mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub CreateTypedObjectReference: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, Location, *mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub CreateSyntheticObject: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub CreateDataModelObject: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub CreateIntrinsicObject: unsafe extern "system" fn(*mut core::ffi::c_void, ModelObjectKind, *const core::mem::MaybeUninit<windows_core::VARIANT>, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub CreateTypedIntrinsicObject: unsafe extern "system" fn(*mut core::ffi::c_void, *const core::mem::MaybeUninit<windows_core::VARIANT>, *mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetModelForTypeSignature: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetModelForType: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, *mut *mut core::ffi::c_void, *mut *mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub RegisterModelForTypeSignature: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub UnregisterModelForTypeSignature: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub RegisterExtensionForTypeSignature: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub UnregisterExtensionForTypeSignature: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub CreateMetadataStore: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetRootNamespace: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub RegisterNamedModel: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub UnregisterNamedModel: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR) -> windows_core::HRESULT,
pub AcquireNamedModel: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IDataModelManager2, IDataModelManager2_Vtbl, 0xf412c5ea_2284_4622_a660_a697160d3312);
impl core::ops::Deref for IDataModelManager2 {
type Target = IDataModelManager;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(IDataModelManager2, windows_core::IUnknown, IDataModelManager);
impl IDataModelManager2 {
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::Param<windows_core::PCWSTR>,
P1: windows_core::Param<windows_core::PCWSTR>,
P2: windows_core::Param<windows_core::PCWSTR>,
P3: windows_core::Param<IKeyStore>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).AcquireSubNamespace)(windows_core::Interface::as_raw(self), modelname.param().abi(), subnamespacemodelname.param().abi(), accessname.param().abi(), metadata.param().abi(), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn CreateTypedIntrinsicObjectEx<P0, P1>(&self, context: P0, intrinsicdata: *const windows_core::VARIANT, r#type: P1) -> windows_core::Result<IModelObject>
where
P0: windows_core::Param<IDebugHostContext>,
P1: windows_core::Param<IDebugHostType>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).CreateTypedIntrinsicObjectEx)(windows_core::Interface::as_raw(self), context.param().abi(), core::mem::transmute(intrinsicdata), r#type.param().abi(), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
#[repr(C)]
pub struct IDataModelManager2_Vtbl {
pub base__: IDataModelManager_Vtbl,
pub AcquireSubNamespace: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR, windows_core::PCWSTR, windows_core::PCWSTR, *mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub CreateTypedIntrinsicObjectEx: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, *const core::mem::MaybeUninit<windows_core::VARIANT>, *mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IDataModelNameBinder, IDataModelNameBinder_Vtbl, 0xaf352b7b_8292_4c01_b360_2dc3696c65e7);
impl core::ops::Deref for IDataModelNameBinder {
type Target = windows_core::IUnknown;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(IDataModelNameBinder, windows_core::IUnknown);
impl IDataModelNameBinder {
pub unsafe fn BindValue<P0, P1>(&self, contextobject: P0, name: P1, value: *mut Option<IModelObject>, metadata: Option<*mut Option<IKeyStore>>) -> windows_core::Result<()>
where
P0: windows_core::Param<IModelObject>,
P1: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).BindValue)(windows_core::Interface::as_raw(self), contextobject.param().abi(), name.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 Option<IModelObject>, metadata: Option<*mut Option<IKeyStore>>) -> windows_core::Result<()>
where
P0: windows_core::Param<IModelObject>,
P1: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).BindReference)(windows_core::Interface::as_raw(self), contextobject.param().abi(), name.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::Param<IModelObject>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).EnumerateValues)(windows_core::Interface::as_raw(self), contextobject.param().abi(), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn EnumerateReferences<P0>(&self, contextobject: P0) -> windows_core::Result<IKeyEnumerator>
where
P0: windows_core::Param<IModelObject>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).EnumerateReferences)(windows_core::Interface::as_raw(self), contextobject.param().abi(), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
#[repr(C)]
pub struct IDataModelNameBinder_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub BindValue: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, windows_core::PCWSTR, *mut *mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub BindReference: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, windows_core::PCWSTR, *mut *mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub EnumerateValues: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub EnumerateReferences: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IDataModelScript, IDataModelScript_Vtbl, 0x7b4d30fc_b14a_49f8_8d87_d9a1480c97f7);
impl core::ops::Deref for IDataModelScript {
type Target = windows_core::IUnknown;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(IDataModelScript, windows_core::IUnknown);
impl IDataModelScript {
pub unsafe fn GetName(&self) -> windows_core::Result<windows_core::BSTR> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetName)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn Rename<P0>(&self, scriptname: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).Rename)(windows_core::Interface::as_raw(self), scriptname.param().abi()).ok()
}
#[cfg(feature = "Win32_System_Com")]
pub unsafe fn Populate<P0>(&self, contentstream: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<super::super::super::Com::IStream>,
{
(windows_core::Interface::vtable(self).Populate)(windows_core::Interface::as_raw(self), contentstream.param().abi()).ok()
}
pub unsafe fn Execute<P0>(&self, client: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<IDataModelScriptClient>,
{
(windows_core::Interface::vtable(self).Execute)(windows_core::Interface::as_raw(self), client.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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).IsInvocable)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn InvokeMain<P0>(&self, client: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<IDataModelScriptClient>,
{
(windows_core::Interface::vtable(self).InvokeMain)(windows_core::Interface::as_raw(self), client.param().abi()).ok()
}
}
#[repr(C)]
pub struct IDataModelScript_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetName: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::mem::MaybeUninit<windows_core::BSTR>) -> windows_core::HRESULT,
pub Rename: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR) -> windows_core::HRESULT,
#[cfg(feature = "Win32_System_Com")]
pub Populate: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
#[cfg(not(feature = "Win32_System_Com"))]
Populate: usize,
pub Execute: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub Unlink: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub IsInvocable: unsafe extern "system" fn(*mut core::ffi::c_void, *mut bool) -> windows_core::HRESULT,
pub InvokeMain: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IDataModelScriptClient, IDataModelScriptClient_Vtbl, 0x3b362b0e_89f0_46c6_a663_dfdc95194aef);
impl core::ops::Deref for IDataModelScriptClient {
type Target = windows_core::IUnknown;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(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::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).ReportError)(windows_core::Interface::as_raw(self), errclass, hrfail, message.param().abi(), line, position).ok()
}
}
#[repr(C)]
pub struct IDataModelScriptClient_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub ReportError: unsafe extern "system" fn(*mut core::ffi::c_void, ErrorClass, windows_core::HRESULT, windows_core::PCWSTR, u32, u32) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IDataModelScriptDebug, IDataModelScriptDebug_Vtbl, 0xde8e0945_9750_4471_ab76_a8f79d6ec350);
impl core::ops::Deref for IDataModelScriptDebug {
type Target = windows_core::IUnknown;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(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: Option<*mut ScriptDebugPosition>, linetext: 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetStack)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn SetBreakpoint(&self, lineposition: u32, columnposition: u32) -> windows_core::Result<IDataModelScriptDebugBreakpoint> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).SetBreakpoint)(windows_core::Interface::as_raw(self), lineposition, columnposition, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn FindBreakpointById(&self, breakpointid: u64) -> windows_core::Result<IDataModelScriptDebugBreakpoint> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).FindBreakpointById)(windows_core::Interface::as_raw(self), breakpointid, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn EnumerateBreakpoints(&self) -> windows_core::Result<IDataModelScriptDebugBreakpointEnumerator> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).EnumerateBreakpoints)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn GetEventFilter(&self, eventfilter: ScriptDebugEventFilter) -> windows_core::Result<bool> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetEventFilter)(windows_core::Interface::as_raw(self), eventfilter, &mut result__).map(|| 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::Param<IDataModelScriptDebugClient>,
{
(windows_core::Interface::vtable(self).StartDebugging)(windows_core::Interface::as_raw(self), debugclient.param().abi()).ok()
}
pub unsafe fn StopDebugging<P0>(&self, debugclient: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<IDataModelScriptDebugClient>,
{
(windows_core::Interface::vtable(self).StopDebugging)(windows_core::Interface::as_raw(self), debugclient.param().abi()).ok()
}
}
#[repr(C)]
pub struct IDataModelScriptDebug_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetDebugState: unsafe extern "system" fn(*mut core::ffi::c_void) -> ScriptDebugState,
pub GetCurrentPosition: unsafe extern "system" fn(*mut core::ffi::c_void, *mut ScriptDebugPosition, *mut ScriptDebugPosition, *mut core::mem::MaybeUninit<windows_core::BSTR>) -> windows_core::HRESULT,
pub GetStack: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub SetBreakpoint: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub FindBreakpointById: unsafe extern "system" fn(*mut core::ffi::c_void, u64, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub EnumerateBreakpoints: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetEventFilter: unsafe extern "system" fn(*mut core::ffi::c_void, ScriptDebugEventFilter, *mut bool) -> windows_core::HRESULT,
pub SetEventFilter: unsafe extern "system" fn(*mut core::ffi::c_void, ScriptDebugEventFilter, u8) -> windows_core::HRESULT,
pub StartDebugging: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub StopDebugging: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IDataModelScriptDebug2, IDataModelScriptDebug2_Vtbl, 0xcbb10ed3_839e_426c_9243_e23535c1ae1a);
impl core::ops::Deref for IDataModelScriptDebug2 {
type Target = IDataModelScriptDebug;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(IDataModelScriptDebug2, windows_core::IUnknown, IDataModelScriptDebug);
impl IDataModelScriptDebug2 {
pub unsafe fn SetBreakpointAtFunction<P0>(&self, functionname: P0) -> windows_core::Result<IDataModelScriptDebugBreakpoint>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).SetBreakpointAtFunction)(windows_core::Interface::as_raw(self), functionname.param().abi(), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
#[repr(C)]
pub struct IDataModelScriptDebug2_Vtbl {
pub base__: IDataModelScriptDebug_Vtbl,
pub SetBreakpointAtFunction: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IDataModelScriptDebugBreakpoint, IDataModelScriptDebugBreakpoint_Vtbl, 0x6bb27b35_02e6_47cb_90a0_5371244032de);
impl core::ops::Deref for IDataModelScriptDebugBreakpoint {
type Target = windows_core::IUnknown;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(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: Option<*mut ScriptDebugPosition>, linetext: 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()
}
}
#[repr(C)]
pub struct IDataModelScriptDebugBreakpoint_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetId: unsafe extern "system" fn(*mut core::ffi::c_void) -> u64,
pub IsEnabled: unsafe extern "system" fn(*mut core::ffi::c_void) -> bool,
pub Enable: unsafe extern "system" fn(*mut core::ffi::c_void),
pub Disable: unsafe extern "system" fn(*mut core::ffi::c_void),
pub Remove: unsafe extern "system" fn(*mut core::ffi::c_void),
pub GetPosition: unsafe extern "system" fn(*mut core::ffi::c_void, *mut ScriptDebugPosition, *mut ScriptDebugPosition, *mut core::mem::MaybeUninit<windows_core::BSTR>) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IDataModelScriptDebugBreakpointEnumerator, IDataModelScriptDebugBreakpointEnumerator_Vtbl, 0x39484a75_b4f3_4799_86da_691afa57b299);
impl core::ops::Deref for IDataModelScriptDebugBreakpointEnumerator {
type Target = windows_core::IUnknown;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNext)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
#[repr(C)]
pub struct IDataModelScriptDebugBreakpointEnumerator_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub Reset: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetNext: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IDataModelScriptDebugClient, IDataModelScriptDebugClient_Vtbl, 0x53159b6d_d4c4_471b_a863_5b110ca800ca);
impl core::ops::Deref for IDataModelScriptDebugClient {
type Target = windows_core::IUnknown;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(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::Param<IDataModelScript>,
P1: windows_core::Param<IModelObject>,
{
(windows_core::Interface::vtable(self).NotifyDebugEvent)(windows_core::Interface::as_raw(self), peventinfo, pscript.param().abi(), peventdataobject.param().abi(), resumeeventkind).ok()
}
}
#[repr(C)]
pub struct IDataModelScriptDebugClient_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub NotifyDebugEvent: unsafe extern "system" fn(*mut core::ffi::c_void, *const ScriptDebugEventInformation, *mut core::ffi::c_void, *mut core::ffi::c_void, *mut ScriptExecutionKind) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IDataModelScriptDebugStack, IDataModelScriptDebugStack_Vtbl, 0x051364dd_e449_443e_9762_fe578f4a5473);
impl core::ops::Deref for IDataModelScriptDebugStack {
type Target = windows_core::IUnknown;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetStackFrame)(windows_core::Interface::as_raw(self), framenumber, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
#[repr(C)]
pub struct IDataModelScriptDebugStack_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetFrameCount: unsafe extern "system" fn(*mut core::ffi::c_void) -> u64,
pub GetStackFrame: unsafe extern "system" fn(*mut core::ffi::c_void, u64, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IDataModelScriptDebugStackFrame, IDataModelScriptDebugStackFrame_Vtbl, 0xdec6ed5e_6360_4941_ab4c_a26409de4f82);
impl core::ops::Deref for IDataModelScriptDebugStackFrame {
type Target = windows_core::IUnknown;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(IDataModelScriptDebugStackFrame, windows_core::IUnknown);
impl IDataModelScriptDebugStackFrame {
pub unsafe fn GetName(&self) -> windows_core::Result<windows_core::BSTR> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetName)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn GetPosition(&self, position: *mut ScriptDebugPosition, positionspanend: Option<*mut ScriptDebugPosition>, linetext: 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).IsTransitionPoint)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetTransition(&self, transitionscript: *mut 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::Param<windows_core::PCWSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Evaluate)(windows_core::Interface::as_raw(self), pwszexpression.param().abi(), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn EnumerateLocals(&self) -> windows_core::Result<IDataModelScriptDebugVariableSetEnumerator> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).EnumerateLocals)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn EnumerateArguments(&self) -> windows_core::Result<IDataModelScriptDebugVariableSetEnumerator> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).EnumerateArguments)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
#[repr(C)]
pub struct IDataModelScriptDebugStackFrame_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetName: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::mem::MaybeUninit<windows_core::BSTR>) -> windows_core::HRESULT,
pub GetPosition: unsafe extern "system" fn(*mut core::ffi::c_void, *mut ScriptDebugPosition, *mut ScriptDebugPosition, *mut core::mem::MaybeUninit<windows_core::BSTR>) -> windows_core::HRESULT,
pub IsTransitionPoint: unsafe extern "system" fn(*mut core::ffi::c_void, *mut bool) -> windows_core::HRESULT,
pub GetTransition: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void, *mut bool) -> windows_core::HRESULT,
pub Evaluate: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub EnumerateLocals: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub EnumerateArguments: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IDataModelScriptDebugVariableSetEnumerator, IDataModelScriptDebugVariableSetEnumerator_Vtbl, 0x0f9feed7_d045_4ac3_98a8_a98942cf6a35);
impl core::ops::Deref for IDataModelScriptDebugVariableSetEnumerator {
type Target = windows_core::IUnknown;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(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: Option<*mut Option<IModelObject>>, variablemetadata: Option<*mut 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()
}
}
#[repr(C)]
pub struct IDataModelScriptDebugVariableSetEnumerator_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub Reset: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetNext: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::mem::MaybeUninit<windows_core::BSTR>, *mut *mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IDataModelScriptHostContext, IDataModelScriptHostContext_Vtbl, 0x014d366a_1f23_4981_9219_b2db8b402054);
impl core::ops::Deref for IDataModelScriptHostContext {
type Target = windows_core::IUnknown;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(IDataModelScriptHostContext, windows_core::IUnknown);
impl IDataModelScriptHostContext {
pub unsafe fn NotifyScriptChange<P0>(&self, script: P0, changekind: ScriptChangeKind) -> windows_core::Result<()>
where
P0: windows_core::Param<IDataModelScript>,
{
(windows_core::Interface::vtable(self).NotifyScriptChange)(windows_core::Interface::as_raw(self), script.param().abi(), changekind).ok()
}
pub unsafe fn GetNamespaceObject(&self) -> windows_core::Result<IModelObject> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNamespaceObject)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
#[repr(C)]
pub struct IDataModelScriptHostContext_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub NotifyScriptChange: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, ScriptChangeKind) -> windows_core::HRESULT,
pub GetNamespaceObject: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IDataModelScriptManager, IDataModelScriptManager_Vtbl, 0x6fd11e33_e5ad_410b_8011_68c6bc4bf80d);
impl core::ops::Deref for IDataModelScriptManager {
type Target = windows_core::IUnknown;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(IDataModelScriptManager, windows_core::IUnknown);
impl IDataModelScriptManager {
pub unsafe fn GetDefaultNameBinder(&self) -> windows_core::Result<IDataModelNameBinder> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetDefaultNameBinder)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn RegisterScriptProvider<P0>(&self, provider: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<IDataModelScriptProvider>,
{
(windows_core::Interface::vtable(self).RegisterScriptProvider)(windows_core::Interface::as_raw(self), provider.param().abi()).ok()
}
pub unsafe fn UnregisterScriptProvider<P0>(&self, provider: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<IDataModelScriptProvider>,
{
(windows_core::Interface::vtable(self).UnregisterScriptProvider)(windows_core::Interface::as_raw(self), provider.param().abi()).ok()
}
pub unsafe fn FindProviderForScriptType<P0>(&self, scripttype: P0) -> windows_core::Result<IDataModelScriptProvider>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).FindProviderForScriptType)(windows_core::Interface::as_raw(self), scripttype.param().abi(), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn FindProviderForScriptExtension<P0>(&self, scriptextension: P0) -> windows_core::Result<IDataModelScriptProvider>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).FindProviderForScriptExtension)(windows_core::Interface::as_raw(self), scriptextension.param().abi(), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn EnumerateScriptProviders(&self) -> windows_core::Result<IDataModelScriptProviderEnumerator> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).EnumerateScriptProviders)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
#[repr(C)]
pub struct IDataModelScriptManager_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetDefaultNameBinder: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub RegisterScriptProvider: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub UnregisterScriptProvider: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub FindProviderForScriptType: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub FindProviderForScriptExtension: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub EnumerateScriptProviders: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IDataModelScriptProvider, IDataModelScriptProvider_Vtbl, 0x513461e0_4fca_48ce_8658_32f3e2056f3b);
impl core::ops::Deref for IDataModelScriptProvider {
type Target = windows_core::IUnknown;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(IDataModelScriptProvider, windows_core::IUnknown);
impl IDataModelScriptProvider {
pub unsafe fn GetName(&self) -> windows_core::Result<windows_core::BSTR> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetName)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn GetExtension(&self) -> windows_core::Result<windows_core::BSTR> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetExtension)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn CreateScript(&self) -> windows_core::Result<IDataModelScript> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).CreateScript)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn GetDefaultTemplateContent(&self) -> windows_core::Result<IDataModelScriptTemplate> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetDefaultTemplateContent)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn EnumerateTemplates(&self) -> windows_core::Result<IDataModelScriptTemplateEnumerator> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).EnumerateTemplates)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
#[repr(C)]
pub struct IDataModelScriptProvider_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetName: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::mem::MaybeUninit<windows_core::BSTR>) -> windows_core::HRESULT,
pub GetExtension: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::mem::MaybeUninit<windows_core::BSTR>) -> windows_core::HRESULT,
pub CreateScript: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetDefaultTemplateContent: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub EnumerateTemplates: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IDataModelScriptProviderEnumerator, IDataModelScriptProviderEnumerator_Vtbl, 0x95ba00e2_704a_4fe2_a8f1_a7e7d8fb0941);
impl core::ops::Deref for IDataModelScriptProviderEnumerator {
type Target = windows_core::IUnknown;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNext)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
#[repr(C)]
pub struct IDataModelScriptProviderEnumerator_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub Reset: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetNext: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IDataModelScriptTemplate, IDataModelScriptTemplate_Vtbl, 0x1303dec4_fa3b_4f1b_9224_b953d16babb5);
impl core::ops::Deref for IDataModelScriptTemplate {
type Target = windows_core::IUnknown;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(IDataModelScriptTemplate, windows_core::IUnknown);
impl IDataModelScriptTemplate {
pub unsafe fn GetName(&self) -> windows_core::Result<windows_core::BSTR> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetName)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn GetDescription(&self) -> windows_core::Result<windows_core::BSTR> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetDescription)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
#[cfg(feature = "Win32_System_Com")]
pub unsafe fn GetContent(&self) -> windows_core::Result<super::super::super::Com::IStream> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetContent)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
#[repr(C)]
pub struct IDataModelScriptTemplate_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetName: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::mem::MaybeUninit<windows_core::BSTR>) -> windows_core::HRESULT,
pub GetDescription: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::mem::MaybeUninit<windows_core::BSTR>) -> windows_core::HRESULT,
#[cfg(feature = "Win32_System_Com")]
pub GetContent: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
#[cfg(not(feature = "Win32_System_Com"))]
GetContent: usize,
}
windows_core::imp::define_interface!(IDataModelScriptTemplateEnumerator, IDataModelScriptTemplateEnumerator_Vtbl, 0x69ce6ae2_2268_4e6f_b062_20ce62bfe677);
impl core::ops::Deref for IDataModelScriptTemplateEnumerator {
type Target = windows_core::IUnknown;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNext)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
#[repr(C)]
pub struct IDataModelScriptTemplateEnumerator_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub Reset: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetNext: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IDebugAdvanced, IDebugAdvanced_Vtbl, 0xf2df5f53_071f_47bd_9de6_5734c3fed689);
impl core::ops::Deref for IDebugAdvanced {
type Target = windows_core::IUnknown;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(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()
}
}
#[repr(C)]
pub struct IDebugAdvanced_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetThreadContext: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub SetThreadContext: unsafe extern "system" fn(*mut core::ffi::c_void, *const core::ffi::c_void, u32) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IDebugAdvanced2, IDebugAdvanced2_Vtbl, 0x716d14c9_119b_4ba5_af1f_0890e672416a);
impl core::ops::Deref for IDebugAdvanced2 {
type Target = windows_core::IUnknown;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(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: Option<*const core::ffi::c_void>, inbuffersize: u32, outbuffer: Option<*mut core::ffi::c_void>, outbuffersize: u32, outsize: 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: Option<*mut core::ffi::c_void>, buffersize: u32, infosize: Option<*mut u32>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).GetSourceFileInformation)(windows_core::Interface::as_raw(self), which, sourcefile.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: Option<*const core::ffi::c_void>, filetokensize: u32, foundelement: Option<*mut u32>, buffer: Option<&mut [u8]>, foundsize: Option<*mut u32>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).FindSourceFileAndToken)(windows_core::Interface::as_raw(self), startelement, modaddr, file.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: Option<*mut core::ffi::c_void>, buffersize: u32, infosize: Option<*mut u32>, stringbuffer: Option<&mut [u8]>, stringsize: 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: Option<*mut core::ffi::c_void>, buffersize: u32, infosize: 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()
}
}
#[repr(C)]
pub struct IDebugAdvanced2_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetThreadContext: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub SetThreadContext: unsafe extern "system" fn(*mut core::ffi::c_void, *const core::ffi::c_void, u32) -> windows_core::HRESULT,
pub Request: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *const core::ffi::c_void, u32, *mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub GetSourceFileInformation: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR, u64, u32, *mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub FindSourceFileAndToken: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u64, windows_core::PCSTR, u32, *const core::ffi::c_void, u32, *mut u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetSymbolInformation: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u64, u32, *mut core::ffi::c_void, u32, *mut u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetSystemObjectInformation: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u64, u32, *mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IDebugAdvanced3, IDebugAdvanced3_Vtbl, 0xcba4abb4_84c4_444d_87ca_a04e13286739);
impl core::ops::Deref for IDebugAdvanced3 {
type Target = windows_core::IUnknown;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(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: Option<*const core::ffi::c_void>, inbuffersize: u32, outbuffer: Option<*mut core::ffi::c_void>, outbuffersize: u32, outsize: 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: Option<*mut core::ffi::c_void>, buffersize: u32, infosize: Option<*mut u32>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).GetSourceFileInformation)(windows_core::Interface::as_raw(self), which, sourcefile.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: Option<*const core::ffi::c_void>, filetokensize: u32, foundelement: Option<*mut u32>, buffer: Option<&mut [u8]>, foundsize: Option<*mut u32>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).FindSourceFileAndToken)(windows_core::Interface::as_raw(self), startelement, modaddr, file.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: Option<*mut core::ffi::c_void>, buffersize: u32, infosize: Option<*mut u32>, stringbuffer: Option<&mut [u8]>, stringsize: 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: Option<*mut core::ffi::c_void>, buffersize: u32, infosize: 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: Option<*mut core::ffi::c_void>, buffersize: u32, infosize: Option<*mut u32>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).GetSourceFileInformationWide)(windows_core::Interface::as_raw(self), which, sourcefile.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: Option<*const core::ffi::c_void>, filetokensize: u32, foundelement: Option<*mut u32>, buffer: Option<&mut [u16]>, foundsize: Option<*mut u32>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).FindSourceFileAndTokenWide)(windows_core::Interface::as_raw(self), startelement, modaddr, file.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: Option<*mut core::ffi::c_void>, buffersize: u32, infosize: Option<*mut u32>, stringbuffer: Option<&mut [u16]>, stringsize: 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()
}
}
#[repr(C)]
pub struct IDebugAdvanced3_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetThreadContext: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub SetThreadContext: unsafe extern "system" fn(*mut core::ffi::c_void, *const core::ffi::c_void, u32) -> windows_core::HRESULT,
pub Request: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *const core::ffi::c_void, u32, *mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub GetSourceFileInformation: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR, u64, u32, *mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub FindSourceFileAndToken: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u64, windows_core::PCSTR, u32, *const core::ffi::c_void, u32, *mut u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetSymbolInformation: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u64, u32, *mut core::ffi::c_void, u32, *mut u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetSystemObjectInformation: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u64, u32, *mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub GetSourceFileInformationWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCWSTR, u64, u32, *mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub FindSourceFileAndTokenWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u64, windows_core::PCWSTR, u32, *const core::ffi::c_void, u32, *mut u32, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetSymbolInformationWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u64, u32, *mut core::ffi::c_void, u32, *mut u32, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IDebugAdvanced4, IDebugAdvanced4_Vtbl, 0xd1069067_2a65_4bf0_ae97_76184b67856b);
impl core::ops::Deref for IDebugAdvanced4 {
type Target = windows_core::IUnknown;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(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: Option<*const core::ffi::c_void>, inbuffersize: u32, outbuffer: Option<*mut core::ffi::c_void>, outbuffersize: u32, outsize: 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: Option<*mut core::ffi::c_void>, buffersize: u32, infosize: Option<*mut u32>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).GetSourceFileInformation)(windows_core::Interface::as_raw(self), which, sourcefile.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: Option<*const core::ffi::c_void>, filetokensize: u32, foundelement: Option<*mut u32>, buffer: Option<&mut [u8]>, foundsize: Option<*mut u32>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).FindSourceFileAndToken)(windows_core::Interface::as_raw(self), startelement, modaddr, file.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: Option<*mut core::ffi::c_void>, buffersize: u32, infosize: Option<*mut u32>, stringbuffer: Option<&mut [u8]>, stringsize: 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: Option<*mut core::ffi::c_void>, buffersize: u32, infosize: 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: Option<*mut core::ffi::c_void>, buffersize: u32, infosize: Option<*mut u32>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).GetSourceFileInformationWide)(windows_core::Interface::as_raw(self), which, sourcefile.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: Option<*const core::ffi::c_void>, filetokensize: u32, foundelement: Option<*mut u32>, buffer: Option<&mut [u16]>, foundsize: Option<*mut u32>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).FindSourceFileAndTokenWide)(windows_core::Interface::as_raw(self), startelement, modaddr, file.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: Option<*mut core::ffi::c_void>, buffersize: u32, infosize: Option<*mut u32>, stringbuffer: Option<&mut [u16]>, stringsize: 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: Option<*mut core::ffi::c_void>, buffersize: u32, infosize: Option<*mut u32>, stringbuffer: Option<&mut [u16]>, stringsize: Option<*mut u32>, pinfoex: 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()
}
}
#[repr(C)]
pub struct IDebugAdvanced4_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetThreadContext: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub SetThreadContext: unsafe extern "system" fn(*mut core::ffi::c_void, *const core::ffi::c_void, u32) -> windows_core::HRESULT,
pub Request: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *const core::ffi::c_void, u32, *mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub GetSourceFileInformation: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR, u64, u32, *mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub FindSourceFileAndToken: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u64, windows_core::PCSTR, u32, *const core::ffi::c_void, u32, *mut u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetSymbolInformation: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u64, u32, *mut core::ffi::c_void, u32, *mut u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetSystemObjectInformation: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u64, u32, *mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub GetSourceFileInformationWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCWSTR, u64, u32, *mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub FindSourceFileAndTokenWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u64, windows_core::PCWSTR, u32, *const core::ffi::c_void, u32, *mut u32, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetSymbolInformationWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u64, u32, *mut core::ffi::c_void, u32, *mut u32, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetSymbolInformationWideEx: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u64, u32, *mut core::ffi::c_void, u32, *mut u32, windows_core::PWSTR, u32, *mut u32, *mut SYMBOL_INFO_EX) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IDebugBreakpoint, IDebugBreakpoint_Vtbl, 0x5bd9d474_5975_423a_b88b_65a8e7110e65);
impl core::ops::Deref for IDebugBreakpoint {
type Target = windows_core::IUnknown;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(IDebugBreakpoint, windows_core::IUnknown);
impl IDebugBreakpoint {
pub unsafe fn GetId(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetId)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetAdder)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn GetFlags(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetFlags)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetOffset)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetPassCount)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCurrentPassCount)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetMatchThreadId(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetMatchThreadId)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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: Option<&mut [u8]>, commandsize: 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).SetCommand)(windows_core::Interface::as_raw(self), command.param().abi()).ok()
}
pub unsafe fn GetOffsetExpression(&self, buffer: Option<&mut [u8]>, expressionsize: 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).SetOffsetExpression)(windows_core::Interface::as_raw(self), expression.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()
}
}
#[repr(C)]
pub struct IDebugBreakpoint_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetId: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetType: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32, *mut u32) -> windows_core::HRESULT,
pub GetAdder: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetFlags: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub AddFlags: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub RemoveFlags: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub SetFlags: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetOffset: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u64) -> windows_core::HRESULT,
pub SetOffset: unsafe extern "system" fn(*mut core::ffi::c_void, u64) -> windows_core::HRESULT,
pub GetDataParameters: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32, *mut u32) -> windows_core::HRESULT,
pub SetDataParameters: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32) -> windows_core::HRESULT,
pub GetPassCount: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetPassCount: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetCurrentPassCount: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetMatchThreadId: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetMatchThreadId: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetCommand: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetCommand: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR) -> windows_core::HRESULT,
pub GetOffsetExpression: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetOffsetExpression: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR) -> windows_core::HRESULT,
pub GetParameters: unsafe extern "system" fn(*mut core::ffi::c_void, *mut DEBUG_BREAKPOINT_PARAMETERS) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IDebugBreakpoint2, IDebugBreakpoint2_Vtbl, 0x1b278d20_79f2_426e_a3f9_c1ddf375d48e);
impl core::ops::Deref for IDebugBreakpoint2 {
type Target = windows_core::IUnknown;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(IDebugBreakpoint2, windows_core::IUnknown);
impl IDebugBreakpoint2 {
pub unsafe fn GetId(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetId)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetAdder)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn GetFlags(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetFlags)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetOffset)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetPassCount)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCurrentPassCount)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetMatchThreadId(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetMatchThreadId)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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: Option<&mut [u8]>, commandsize: 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).SetCommand)(windows_core::Interface::as_raw(self), command.param().abi()).ok()
}
pub unsafe fn GetOffsetExpression(&self, buffer: Option<&mut [u8]>, expressionsize: 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).SetOffsetExpression)(windows_core::Interface::as_raw(self), expression.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: Option<&mut [u16]>, commandsize: 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::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).SetCommandWide)(windows_core::Interface::as_raw(self), command.param().abi()).ok()
}
pub unsafe fn GetOffsetExpressionWide(&self, buffer: Option<&mut [u16]>, expressionsize: 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::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).SetOffsetExpressionWide)(windows_core::Interface::as_raw(self), expression.param().abi()).ok()
}
}
#[repr(C)]
pub struct IDebugBreakpoint2_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetId: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetType: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32, *mut u32) -> windows_core::HRESULT,
pub GetAdder: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetFlags: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub AddFlags: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub RemoveFlags: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub SetFlags: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetOffset: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u64) -> windows_core::HRESULT,
pub SetOffset: unsafe extern "system" fn(*mut core::ffi::c_void, u64) -> windows_core::HRESULT,
pub GetDataParameters: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32, *mut u32) -> windows_core::HRESULT,
pub SetDataParameters: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32) -> windows_core::HRESULT,
pub GetPassCount: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetPassCount: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetCurrentPassCount: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetMatchThreadId: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetMatchThreadId: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetCommand: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetCommand: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR) -> windows_core::HRESULT,
pub GetOffsetExpression: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetOffsetExpression: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR) -> windows_core::HRESULT,
pub GetParameters: unsafe extern "system" fn(*mut core::ffi::c_void, *mut DEBUG_BREAKPOINT_PARAMETERS) -> windows_core::HRESULT,
pub GetCommandWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetCommandWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR) -> windows_core::HRESULT,
pub GetOffsetExpressionWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetOffsetExpressionWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IDebugBreakpoint3, IDebugBreakpoint3_Vtbl, 0x38f5c249_b448_43bb_9835_579d4ec02249);
impl core::ops::Deref for IDebugBreakpoint3 {
type Target = windows_core::IUnknown;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(IDebugBreakpoint3, windows_core::IUnknown);
impl IDebugBreakpoint3 {
pub unsafe fn GetId(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetId)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetAdder)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn GetFlags(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetFlags)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetOffset)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetPassCount)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCurrentPassCount)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetMatchThreadId(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetMatchThreadId)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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: Option<&mut [u8]>, commandsize: 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).SetCommand)(windows_core::Interface::as_raw(self), command.param().abi()).ok()
}
pub unsafe fn GetOffsetExpression(&self, buffer: Option<&mut [u8]>, expressionsize: 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).SetOffsetExpression)(windows_core::Interface::as_raw(self), expression.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: Option<&mut [u16]>, commandsize: 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::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).SetCommandWide)(windows_core::Interface::as_raw(self), command.param().abi()).ok()
}
pub unsafe fn GetOffsetExpressionWide(&self, buffer: Option<&mut [u16]>, expressionsize: 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::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).SetOffsetExpressionWide)(windows_core::Interface::as_raw(self), expression.param().abi()).ok()
}
pub unsafe fn GetGuid(&self) -> windows_core::Result<windows_core::GUID> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetGuid)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
#[repr(C)]
pub struct IDebugBreakpoint3_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetId: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetType: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32, *mut u32) -> windows_core::HRESULT,
pub GetAdder: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetFlags: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub AddFlags: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub RemoveFlags: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub SetFlags: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetOffset: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u64) -> windows_core::HRESULT,
pub SetOffset: unsafe extern "system" fn(*mut core::ffi::c_void, u64) -> windows_core::HRESULT,
pub GetDataParameters: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32, *mut u32) -> windows_core::HRESULT,
pub SetDataParameters: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32) -> windows_core::HRESULT,
pub GetPassCount: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetPassCount: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetCurrentPassCount: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetMatchThreadId: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetMatchThreadId: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetCommand: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetCommand: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR) -> windows_core::HRESULT,
pub GetOffsetExpression: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetOffsetExpression: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR) -> windows_core::HRESULT,
pub GetParameters: unsafe extern "system" fn(*mut core::ffi::c_void, *mut DEBUG_BREAKPOINT_PARAMETERS) -> windows_core::HRESULT,
pub GetCommandWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetCommandWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR) -> windows_core::HRESULT,
pub GetOffsetExpressionWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetOffsetExpressionWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR) -> windows_core::HRESULT,
pub GetGuid: unsafe extern "system" fn(*mut core::ffi::c_void, *mut windows_core::GUID) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IDebugClient, IDebugClient_Vtbl, 0x27fe5639_8407_4f47_8364_ee118fb08ac8);
impl core::ops::Deref for IDebugClient {
type Target = windows_core::IUnknown;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(IDebugClient, windows_core::IUnknown);
impl IDebugClient {
pub unsafe fn AttachKernel<P0>(&self, flags: u32, connectoptions: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).AttachKernel)(windows_core::Interface::as_raw(self), flags, connectoptions.param().abi()).ok()
}
pub unsafe fn GetKernelConnectionOptions(&self, buffer: Option<&mut [u8]>, optionssize: 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).SetKernelConnectionOptions)(windows_core::Interface::as_raw(self), options.param().abi()).ok()
}
pub unsafe fn StartProcessServer<P0>(&self, flags: u32, options: P0, reserved: Option<*const core::ffi::c_void>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).StartProcessServer)(windows_core::Interface::as_raw(self), flags, options.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::Param<windows_core::PCSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).ConnectProcessServer)(windows_core::Interface::as_raw(self), remoteoptions.param().abi(), &mut result__).map(|| 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: Option<&mut [u32]>, actualcount: 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::Param<windows_core::PCSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRunningProcessSystemIdByExecutableName)(windows_core::Interface::as_raw(self), server, exename.param().abi(), flags, &mut result__).map(|| result__)
}
pub unsafe fn GetRunningProcessDescription(&self, server: u64, systemid: u32, flags: u32, exename: Option<&mut [u8]>, actualexenamesize: Option<*mut u32>, description: Option<&mut [u8]>, actualdescriptionsize: 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).CreateProcessA)(windows_core::Interface::as_raw(self), server, commandline.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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).CreateProcessAndAttach)(windows_core::Interface::as_raw(self), server, commandline.param().abi(), createflags, processid, attachflags).ok()
}
pub unsafe fn GetProcessOptions(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetProcessOptions)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).OpenDumpFile)(windows_core::Interface::as_raw(self), dumpfile.param().abi()).ok()
}
pub unsafe fn WriteDumpFile<P0>(&self, dumpfile: P0, qualifier: u32) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).WriteDumpFile)(windows_core::Interface::as_raw(self), dumpfile.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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).StartServer)(windows_core::Interface::as_raw(self), options.param().abi()).ok()
}
pub unsafe fn OutputServers<P0>(&self, outputcontrol: u32, machine: P0, flags: u32) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).OutputServers)(windows_core::Interface::as_raw(self), outputcontrol, machine.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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetExitCode)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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::Param<IDebugClient>,
{
(windows_core::Interface::vtable(self).ExitDispatch)(windows_core::Interface::as_raw(self), client.param().abi()).ok()
}
pub unsafe fn CreateClient(&self) -> windows_core::Result<IDebugClient> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).CreateClient)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn GetInputCallbacks(&self) -> windows_core::Result<IDebugInputCallbacks> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetInputCallbacks)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn SetInputCallbacks<P0>(&self, callbacks: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<IDebugInputCallbacks>,
{
(windows_core::Interface::vtable(self).SetInputCallbacks)(windows_core::Interface::as_raw(self), callbacks.param().abi()).ok()
}
pub unsafe fn GetOutputCallbacks(&self) -> windows_core::Result<IDebugOutputCallbacks> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetOutputCallbacks)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn SetOutputCallbacks<P0>(&self, callbacks: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<IDebugOutputCallbacks>,
{
(windows_core::Interface::vtable(self).SetOutputCallbacks)(windows_core::Interface::as_raw(self), callbacks.param().abi()).ok()
}
pub unsafe fn GetOutputMask(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetOutputMask)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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::Param<IDebugClient>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetOtherOutputMask)(windows_core::Interface::as_raw(self), client.param().abi(), &mut result__).map(|| result__)
}
pub unsafe fn SetOtherOutputMask<P0>(&self, client: P0, mask: u32) -> windows_core::Result<()>
where
P0: windows_core::Param<IDebugClient>,
{
(windows_core::Interface::vtable(self).SetOtherOutputMask)(windows_core::Interface::as_raw(self), client.param().abi(), mask).ok()
}
pub unsafe fn GetOutputWidth(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetOutputWidth)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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: Option<&mut [u8]>, prefixsize: 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).SetOutputLinePrefix)(windows_core::Interface::as_raw(self), prefix.param().abi()).ok()
}
pub unsafe fn GetIdentity(&self, buffer: Option<&mut [u8]>, identitysize: 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).OutputIdentity)(windows_core::Interface::as_raw(self), outputcontrol, flags, format.param().abi()).ok()
}
pub unsafe fn GetEventCallbacks(&self) -> windows_core::Result<IDebugEventCallbacks> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetEventCallbacks)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn SetEventCallbacks<P0>(&self, callbacks: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<IDebugEventCallbacks>,
{
(windows_core::Interface::vtable(self).SetEventCallbacks)(windows_core::Interface::as_raw(self), callbacks.param().abi()).ok()
}
pub unsafe fn FlushCallbacks(&self) -> windows_core::Result<()> {
(windows_core::Interface::vtable(self).FlushCallbacks)(windows_core::Interface::as_raw(self)).ok()
}
}
#[repr(C)]
pub struct IDebugClient_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub AttachKernel: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR) -> windows_core::HRESULT,
pub GetKernelConnectionOptions: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetKernelConnectionOptions: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR) -> windows_core::HRESULT,
pub StartProcessServer: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR, *const core::ffi::c_void) -> windows_core::HRESULT,
pub ConnectProcessServer: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, *mut u64) -> windows_core::HRESULT,
pub DisconnectProcessServer: unsafe extern "system" fn(*mut core::ffi::c_void, u64) -> windows_core::HRESULT,
pub GetRunningProcessSystemIds: unsafe extern "system" fn(*mut core::ffi::c_void, u64, *mut u32, u32, *mut u32) -> windows_core::HRESULT,
pub GetRunningProcessSystemIdByExecutableName: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PCSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetRunningProcessDescription: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, u32, windows_core::PSTR, u32, *mut u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub AttachProcess: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, u32) -> windows_core::HRESULT,
pub CreateProcessA: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PCSTR, u32) -> windows_core::HRESULT,
pub CreateProcessAndAttach: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PCSTR, u32, u32, u32) -> windows_core::HRESULT,
pub GetProcessOptions: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub AddProcessOptions: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub RemoveProcessOptions: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub SetProcessOptions: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub OpenDumpFile: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR) -> windows_core::HRESULT,
pub WriteDumpFile: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, u32) -> windows_core::HRESULT,
pub ConnectSession: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32) -> windows_core::HRESULT,
pub StartServer: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR) -> windows_core::HRESULT,
pub OutputServers: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR, u32) -> windows_core::HRESULT,
pub TerminateProcesses: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub DetachProcesses: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub EndSession: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetExitCode: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub DispatchCallbacks: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub ExitDispatch: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub CreateClient: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetInputCallbacks: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub SetInputCallbacks: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetOutputCallbacks: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub SetOutputCallbacks: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetOutputMask: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetOutputMask: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetOtherOutputMask: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetOtherOutputMask: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetOutputWidth: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetOutputWidth: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetOutputLinePrefix: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetOutputLinePrefix: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR) -> windows_core::HRESULT,
pub GetIdentity: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub OutputIdentity: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, windows_core::PCSTR) -> windows_core::HRESULT,
pub GetEventCallbacks: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub SetEventCallbacks: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub FlushCallbacks: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IDebugClient2, IDebugClient2_Vtbl, 0xedbed635_372e_4dab_bbfe_ed0d2f63be81);
impl core::ops::Deref for IDebugClient2 {
type Target = windows_core::IUnknown;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(IDebugClient2, windows_core::IUnknown);
impl IDebugClient2 {
pub unsafe fn AttachKernel<P0>(&self, flags: u32, connectoptions: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).AttachKernel)(windows_core::Interface::as_raw(self), flags, connectoptions.param().abi()).ok()
}
pub unsafe fn GetKernelConnectionOptions(&self, buffer: Option<&mut [u8]>, optionssize: 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).SetKernelConnectionOptions)(windows_core::Interface::as_raw(self), options.param().abi()).ok()
}
pub unsafe fn StartProcessServer<P0>(&self, flags: u32, options: P0, reserved: Option<*const core::ffi::c_void>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).StartProcessServer)(windows_core::Interface::as_raw(self), flags, options.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::Param<windows_core::PCSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).ConnectProcessServer)(windows_core::Interface::as_raw(self), remoteoptions.param().abi(), &mut result__).map(|| 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: Option<&mut [u32]>, actualcount: 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::Param<windows_core::PCSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRunningProcessSystemIdByExecutableName)(windows_core::Interface::as_raw(self), server, exename.param().abi(), flags, &mut result__).map(|| result__)
}
pub unsafe fn GetRunningProcessDescription(&self, server: u64, systemid: u32, flags: u32, exename: Option<&mut [u8]>, actualexenamesize: Option<*mut u32>, description: Option<&mut [u8]>, actualdescriptionsize: 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).CreateProcessA)(windows_core::Interface::as_raw(self), server, commandline.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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).CreateProcessAndAttach)(windows_core::Interface::as_raw(self), server, commandline.param().abi(), createflags, processid, attachflags).ok()
}
pub unsafe fn GetProcessOptions(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetProcessOptions)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).OpenDumpFile)(windows_core::Interface::as_raw(self), dumpfile.param().abi()).ok()
}
pub unsafe fn WriteDumpFile<P0>(&self, dumpfile: P0, qualifier: u32) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).WriteDumpFile)(windows_core::Interface::as_raw(self), dumpfile.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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).StartServer)(windows_core::Interface::as_raw(self), options.param().abi()).ok()
}
pub unsafe fn OutputServers<P0>(&self, outputcontrol: u32, machine: P0, flags: u32) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).OutputServers)(windows_core::Interface::as_raw(self), outputcontrol, machine.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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetExitCode)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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::Param<IDebugClient>,
{
(windows_core::Interface::vtable(self).ExitDispatch)(windows_core::Interface::as_raw(self), client.param().abi()).ok()
}
pub unsafe fn CreateClient(&self) -> windows_core::Result<IDebugClient> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).CreateClient)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn GetInputCallbacks(&self) -> windows_core::Result<IDebugInputCallbacks> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetInputCallbacks)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn SetInputCallbacks<P0>(&self, callbacks: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<IDebugInputCallbacks>,
{
(windows_core::Interface::vtable(self).SetInputCallbacks)(windows_core::Interface::as_raw(self), callbacks.param().abi()).ok()
}
pub unsafe fn GetOutputCallbacks(&self) -> windows_core::Result<IDebugOutputCallbacks> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetOutputCallbacks)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn SetOutputCallbacks<P0>(&self, callbacks: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<IDebugOutputCallbacks>,
{
(windows_core::Interface::vtable(self).SetOutputCallbacks)(windows_core::Interface::as_raw(self), callbacks.param().abi()).ok()
}
pub unsafe fn GetOutputMask(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetOutputMask)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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::Param<IDebugClient>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetOtherOutputMask)(windows_core::Interface::as_raw(self), client.param().abi(), &mut result__).map(|| result__)
}
pub unsafe fn SetOtherOutputMask<P0>(&self, client: P0, mask: u32) -> windows_core::Result<()>
where
P0: windows_core::Param<IDebugClient>,
{
(windows_core::Interface::vtable(self).SetOtherOutputMask)(windows_core::Interface::as_raw(self), client.param().abi(), mask).ok()
}
pub unsafe fn GetOutputWidth(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetOutputWidth)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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: Option<&mut [u8]>, prefixsize: 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).SetOutputLinePrefix)(windows_core::Interface::as_raw(self), prefix.param().abi()).ok()
}
pub unsafe fn GetIdentity(&self, buffer: Option<&mut [u8]>, identitysize: 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).OutputIdentity)(windows_core::Interface::as_raw(self), outputcontrol, flags, format.param().abi()).ok()
}
pub unsafe fn GetEventCallbacks(&self) -> windows_core::Result<IDebugEventCallbacks> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetEventCallbacks)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn SetEventCallbacks<P0>(&self, callbacks: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<IDebugEventCallbacks>,
{
(windows_core::Interface::vtable(self).SetEventCallbacks)(windows_core::Interface::as_raw(self), callbacks.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::Param<windows_core::PCSTR>,
P1: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).WriteDumpFile2)(windows_core::Interface::as_raw(self), dumpfile.param().abi(), qualifier, formatflags, comment.param().abi()).ok()
}
pub unsafe fn AddDumpInformationFile<P0>(&self, infofile: P0, r#type: u32) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).AddDumpInformationFile)(windows_core::Interface::as_raw(self), infofile.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()
}
}
#[repr(C)]
pub struct IDebugClient2_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub AttachKernel: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR) -> windows_core::HRESULT,
pub GetKernelConnectionOptions: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetKernelConnectionOptions: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR) -> windows_core::HRESULT,
pub StartProcessServer: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR, *const core::ffi::c_void) -> windows_core::HRESULT,
pub ConnectProcessServer: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, *mut u64) -> windows_core::HRESULT,
pub DisconnectProcessServer: unsafe extern "system" fn(*mut core::ffi::c_void, u64) -> windows_core::HRESULT,
pub GetRunningProcessSystemIds: unsafe extern "system" fn(*mut core::ffi::c_void, u64, *mut u32, u32, *mut u32) -> windows_core::HRESULT,
pub GetRunningProcessSystemIdByExecutableName: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PCSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetRunningProcessDescription: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, u32, windows_core::PSTR, u32, *mut u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub AttachProcess: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, u32) -> windows_core::HRESULT,
pub CreateProcessA: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PCSTR, u32) -> windows_core::HRESULT,
pub CreateProcessAndAttach: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PCSTR, u32, u32, u32) -> windows_core::HRESULT,
pub GetProcessOptions: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub AddProcessOptions: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub RemoveProcessOptions: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub SetProcessOptions: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub OpenDumpFile: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR) -> windows_core::HRESULT,
pub WriteDumpFile: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, u32) -> windows_core::HRESULT,
pub ConnectSession: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32) -> windows_core::HRESULT,
pub StartServer: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR) -> windows_core::HRESULT,
pub OutputServers: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR, u32) -> windows_core::HRESULT,
pub TerminateProcesses: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub DetachProcesses: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub EndSession: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetExitCode: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub DispatchCallbacks: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub ExitDispatch: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub CreateClient: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetInputCallbacks: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub SetInputCallbacks: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetOutputCallbacks: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub SetOutputCallbacks: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetOutputMask: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetOutputMask: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetOtherOutputMask: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetOtherOutputMask: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetOutputWidth: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetOutputWidth: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetOutputLinePrefix: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetOutputLinePrefix: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR) -> windows_core::HRESULT,
pub GetIdentity: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub OutputIdentity: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, windows_core::PCSTR) -> windows_core::HRESULT,
pub GetEventCallbacks: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub SetEventCallbacks: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub FlushCallbacks: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub WriteDumpFile2: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, u32, u32, windows_core::PCSTR) -> windows_core::HRESULT,
pub AddDumpInformationFile: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, u32) -> windows_core::HRESULT,
pub EndProcessServer: unsafe extern "system" fn(*mut core::ffi::c_void, u64) -> windows_core::HRESULT,
pub WaitForProcessServerEnd: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub IsKernelDebuggerEnabled: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub TerminateCurrentProcess: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub DetachCurrentProcess: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub AbandonCurrentProcess: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IDebugClient3, IDebugClient3_Vtbl, 0xdd492d7f_71b8_4ad6_a8dc_1c887479ff91);
impl core::ops::Deref for IDebugClient3 {
type Target = windows_core::IUnknown;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(IDebugClient3, windows_core::IUnknown);
impl IDebugClient3 {
pub unsafe fn AttachKernel<P0>(&self, flags: u32, connectoptions: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).AttachKernel)(windows_core::Interface::as_raw(self), flags, connectoptions.param().abi()).ok()
}
pub unsafe fn GetKernelConnectionOptions(&self, buffer: Option<&mut [u8]>, optionssize: 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).SetKernelConnectionOptions)(windows_core::Interface::as_raw(self), options.param().abi()).ok()
}
pub unsafe fn StartProcessServer<P0>(&self, flags: u32, options: P0, reserved: Option<*const core::ffi::c_void>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).StartProcessServer)(windows_core::Interface::as_raw(self), flags, options.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::Param<windows_core::PCSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).ConnectProcessServer)(windows_core::Interface::as_raw(self), remoteoptions.param().abi(), &mut result__).map(|| 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: Option<&mut [u32]>, actualcount: 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::Param<windows_core::PCSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRunningProcessSystemIdByExecutableName)(windows_core::Interface::as_raw(self), server, exename.param().abi(), flags, &mut result__).map(|| result__)
}
pub unsafe fn GetRunningProcessDescription(&self, server: u64, systemid: u32, flags: u32, exename: Option<&mut [u8]>, actualexenamesize: Option<*mut u32>, description: Option<&mut [u8]>, actualdescriptionsize: 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).CreateProcessA)(windows_core::Interface::as_raw(self), server, commandline.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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).CreateProcessAndAttach)(windows_core::Interface::as_raw(self), server, commandline.param().abi(), createflags, processid, attachflags).ok()
}
pub unsafe fn GetProcessOptions(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetProcessOptions)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).OpenDumpFile)(windows_core::Interface::as_raw(self), dumpfile.param().abi()).ok()
}
pub unsafe fn WriteDumpFile<P0>(&self, dumpfile: P0, qualifier: u32) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).WriteDumpFile)(windows_core::Interface::as_raw(self), dumpfile.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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).StartServer)(windows_core::Interface::as_raw(self), options.param().abi()).ok()
}
pub unsafe fn OutputServers<P0>(&self, outputcontrol: u32, machine: P0, flags: u32) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).OutputServers)(windows_core::Interface::as_raw(self), outputcontrol, machine.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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetExitCode)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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::Param<IDebugClient>,
{
(windows_core::Interface::vtable(self).ExitDispatch)(windows_core::Interface::as_raw(self), client.param().abi()).ok()
}
pub unsafe fn CreateClient(&self) -> windows_core::Result<IDebugClient> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).CreateClient)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn GetInputCallbacks(&self) -> windows_core::Result<IDebugInputCallbacks> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetInputCallbacks)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn SetInputCallbacks<P0>(&self, callbacks: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<IDebugInputCallbacks>,
{
(windows_core::Interface::vtable(self).SetInputCallbacks)(windows_core::Interface::as_raw(self), callbacks.param().abi()).ok()
}
pub unsafe fn GetOutputCallbacks(&self) -> windows_core::Result<IDebugOutputCallbacks> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetOutputCallbacks)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn SetOutputCallbacks<P0>(&self, callbacks: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<IDebugOutputCallbacks>,
{
(windows_core::Interface::vtable(self).SetOutputCallbacks)(windows_core::Interface::as_raw(self), callbacks.param().abi()).ok()
}
pub unsafe fn GetOutputMask(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetOutputMask)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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::Param<IDebugClient>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetOtherOutputMask)(windows_core::Interface::as_raw(self), client.param().abi(), &mut result__).map(|| result__)
}
pub unsafe fn SetOtherOutputMask<P0>(&self, client: P0, mask: u32) -> windows_core::Result<()>
where
P0: windows_core::Param<IDebugClient>,
{
(windows_core::Interface::vtable(self).SetOtherOutputMask)(windows_core::Interface::as_raw(self), client.param().abi(), mask).ok()
}
pub unsafe fn GetOutputWidth(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetOutputWidth)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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: Option<&mut [u8]>, prefixsize: 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).SetOutputLinePrefix)(windows_core::Interface::as_raw(self), prefix.param().abi()).ok()
}
pub unsafe fn GetIdentity(&self, buffer: Option<&mut [u8]>, identitysize: 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).OutputIdentity)(windows_core::Interface::as_raw(self), outputcontrol, flags, format.param().abi()).ok()
}
pub unsafe fn GetEventCallbacks(&self) -> windows_core::Result<IDebugEventCallbacks> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetEventCallbacks)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn SetEventCallbacks<P0>(&self, callbacks: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<IDebugEventCallbacks>,
{
(windows_core::Interface::vtable(self).SetEventCallbacks)(windows_core::Interface::as_raw(self), callbacks.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::Param<windows_core::PCSTR>,
P1: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).WriteDumpFile2)(windows_core::Interface::as_raw(self), dumpfile.param().abi(), qualifier, formatflags, comment.param().abi()).ok()
}
pub unsafe fn AddDumpInformationFile<P0>(&self, infofile: P0, r#type: u32) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).AddDumpInformationFile)(windows_core::Interface::as_raw(self), infofile.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::Param<windows_core::PCWSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRunningProcessSystemIdByExecutableNameWide)(windows_core::Interface::as_raw(self), server, exename.param().abi(), flags, &mut result__).map(|| result__)
}
pub unsafe fn GetRunningProcessDescriptionWide(&self, server: u64, systemid: u32, flags: u32, exename: Option<&mut [u16]>, actualexenamesize: Option<*mut u32>, description: Option<&mut [u16]>, actualdescriptionsize: 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::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).CreateProcessWide)(windows_core::Interface::as_raw(self), server, commandline.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::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).CreateProcessAndAttachWide)(windows_core::Interface::as_raw(self), server, commandline.param().abi(), createflags, processid, attachflags).ok()
}
}
#[repr(C)]
pub struct IDebugClient3_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub AttachKernel: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR) -> windows_core::HRESULT,
pub GetKernelConnectionOptions: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetKernelConnectionOptions: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR) -> windows_core::HRESULT,
pub StartProcessServer: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR, *const core::ffi::c_void) -> windows_core::HRESULT,
pub ConnectProcessServer: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, *mut u64) -> windows_core::HRESULT,
pub DisconnectProcessServer: unsafe extern "system" fn(*mut core::ffi::c_void, u64) -> windows_core::HRESULT,
pub GetRunningProcessSystemIds: unsafe extern "system" fn(*mut core::ffi::c_void, u64, *mut u32, u32, *mut u32) -> windows_core::HRESULT,
pub GetRunningProcessSystemIdByExecutableName: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PCSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetRunningProcessDescription: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, u32, windows_core::PSTR, u32, *mut u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub AttachProcess: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, u32) -> windows_core::HRESULT,
pub CreateProcessA: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PCSTR, u32) -> windows_core::HRESULT,
pub CreateProcessAndAttach: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PCSTR, u32, u32, u32) -> windows_core::HRESULT,
pub GetProcessOptions: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub AddProcessOptions: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub RemoveProcessOptions: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub SetProcessOptions: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub OpenDumpFile: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR) -> windows_core::HRESULT,
pub WriteDumpFile: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, u32) -> windows_core::HRESULT,
pub ConnectSession: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32) -> windows_core::HRESULT,
pub StartServer: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR) -> windows_core::HRESULT,
pub OutputServers: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR, u32) -> windows_core::HRESULT,
pub TerminateProcesses: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub DetachProcesses: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub EndSession: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetExitCode: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub DispatchCallbacks: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub ExitDispatch: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub CreateClient: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetInputCallbacks: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub SetInputCallbacks: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetOutputCallbacks: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub SetOutputCallbacks: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetOutputMask: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetOutputMask: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetOtherOutputMask: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetOtherOutputMask: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetOutputWidth: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetOutputWidth: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetOutputLinePrefix: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetOutputLinePrefix: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR) -> windows_core::HRESULT,
pub GetIdentity: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub OutputIdentity: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, windows_core::PCSTR) -> windows_core::HRESULT,
pub GetEventCallbacks: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub SetEventCallbacks: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub FlushCallbacks: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub WriteDumpFile2: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, u32, u32, windows_core::PCSTR) -> windows_core::HRESULT,
pub AddDumpInformationFile: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, u32) -> windows_core::HRESULT,
pub EndProcessServer: unsafe extern "system" fn(*mut core::ffi::c_void, u64) -> windows_core::HRESULT,
pub WaitForProcessServerEnd: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub IsKernelDebuggerEnabled: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub TerminateCurrentProcess: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub DetachCurrentProcess: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub AbandonCurrentProcess: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetRunningProcessSystemIdByExecutableNameWide: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PCWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetRunningProcessDescriptionWide: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, u32, windows_core::PWSTR, u32, *mut u32, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub CreateProcessWide: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PCWSTR, u32) -> windows_core::HRESULT,
pub CreateProcessAndAttachWide: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PCWSTR, u32, u32, u32) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IDebugClient4, IDebugClient4_Vtbl, 0xca83c3de_5089_4cf8_93c8_d892387f2a5e);
impl core::ops::Deref for IDebugClient4 {
type Target = windows_core::IUnknown;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(IDebugClient4, windows_core::IUnknown);
impl IDebugClient4 {
pub unsafe fn AttachKernel<P0>(&self, flags: u32, connectoptions: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).AttachKernel)(windows_core::Interface::as_raw(self), flags, connectoptions.param().abi()).ok()
}
pub unsafe fn GetKernelConnectionOptions(&self, buffer: Option<&mut [u8]>, optionssize: 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).SetKernelConnectionOptions)(windows_core::Interface::as_raw(self), options.param().abi()).ok()
}
pub unsafe fn StartProcessServer<P0>(&self, flags: u32, options: P0, reserved: Option<*const core::ffi::c_void>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).StartProcessServer)(windows_core::Interface::as_raw(self), flags, options.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::Param<windows_core::PCSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).ConnectProcessServer)(windows_core::Interface::as_raw(self), remoteoptions.param().abi(), &mut result__).map(|| 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: Option<&mut [u32]>, actualcount: 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::Param<windows_core::PCSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRunningProcessSystemIdByExecutableName)(windows_core::Interface::as_raw(self), server, exename.param().abi(), flags, &mut result__).map(|| result__)
}
pub unsafe fn GetRunningProcessDescription(&self, server: u64, systemid: u32, flags: u32, exename: Option<&mut [u8]>, actualexenamesize: Option<*mut u32>, description: Option<&mut [u8]>, actualdescriptionsize: 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).CreateProcessA)(windows_core::Interface::as_raw(self), server, commandline.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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).CreateProcessAndAttach)(windows_core::Interface::as_raw(self), server, commandline.param().abi(), createflags, processid, attachflags).ok()
}
pub unsafe fn GetProcessOptions(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetProcessOptions)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).OpenDumpFile)(windows_core::Interface::as_raw(self), dumpfile.param().abi()).ok()
}
pub unsafe fn WriteDumpFile<P0>(&self, dumpfile: P0, qualifier: u32) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).WriteDumpFile)(windows_core::Interface::as_raw(self), dumpfile.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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).StartServer)(windows_core::Interface::as_raw(self), options.param().abi()).ok()
}
pub unsafe fn OutputServers<P0>(&self, outputcontrol: u32, machine: P0, flags: u32) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).OutputServers)(windows_core::Interface::as_raw(self), outputcontrol, machine.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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetExitCode)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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::Param<IDebugClient>,
{
(windows_core::Interface::vtable(self).ExitDispatch)(windows_core::Interface::as_raw(self), client.param().abi()).ok()
}
pub unsafe fn CreateClient(&self) -> windows_core::Result<IDebugClient> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).CreateClient)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn GetInputCallbacks(&self) -> windows_core::Result<IDebugInputCallbacks> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetInputCallbacks)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn SetInputCallbacks<P0>(&self, callbacks: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<IDebugInputCallbacks>,
{
(windows_core::Interface::vtable(self).SetInputCallbacks)(windows_core::Interface::as_raw(self), callbacks.param().abi()).ok()
}
pub unsafe fn GetOutputCallbacks(&self) -> windows_core::Result<IDebugOutputCallbacks> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetOutputCallbacks)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn SetOutputCallbacks<P0>(&self, callbacks: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<IDebugOutputCallbacks>,
{
(windows_core::Interface::vtable(self).SetOutputCallbacks)(windows_core::Interface::as_raw(self), callbacks.param().abi()).ok()
}
pub unsafe fn GetOutputMask(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetOutputMask)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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::Param<IDebugClient>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetOtherOutputMask)(windows_core::Interface::as_raw(self), client.param().abi(), &mut result__).map(|| result__)
}
pub unsafe fn SetOtherOutputMask<P0>(&self, client: P0, mask: u32) -> windows_core::Result<()>
where
P0: windows_core::Param<IDebugClient>,
{
(windows_core::Interface::vtable(self).SetOtherOutputMask)(windows_core::Interface::as_raw(self), client.param().abi(), mask).ok()
}
pub unsafe fn GetOutputWidth(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetOutputWidth)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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: Option<&mut [u8]>, prefixsize: 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).SetOutputLinePrefix)(windows_core::Interface::as_raw(self), prefix.param().abi()).ok()
}
pub unsafe fn GetIdentity(&self, buffer: Option<&mut [u8]>, identitysize: 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).OutputIdentity)(windows_core::Interface::as_raw(self), outputcontrol, flags, format.param().abi()).ok()
}
pub unsafe fn GetEventCallbacks(&self) -> windows_core::Result<IDebugEventCallbacks> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetEventCallbacks)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn SetEventCallbacks<P0>(&self, callbacks: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<IDebugEventCallbacks>,
{
(windows_core::Interface::vtable(self).SetEventCallbacks)(windows_core::Interface::as_raw(self), callbacks.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::Param<windows_core::PCSTR>,
P1: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).WriteDumpFile2)(windows_core::Interface::as_raw(self), dumpfile.param().abi(), qualifier, formatflags, comment.param().abi()).ok()
}
pub unsafe fn AddDumpInformationFile<P0>(&self, infofile: P0, r#type: u32) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).AddDumpInformationFile)(windows_core::Interface::as_raw(self), infofile.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::Param<windows_core::PCWSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRunningProcessSystemIdByExecutableNameWide)(windows_core::Interface::as_raw(self), server, exename.param().abi(), flags, &mut result__).map(|| result__)
}
pub unsafe fn GetRunningProcessDescriptionWide(&self, server: u64, systemid: u32, flags: u32, exename: Option<&mut [u16]>, actualexenamesize: Option<*mut u32>, description: Option<&mut [u16]>, actualdescriptionsize: 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::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).CreateProcessWide)(windows_core::Interface::as_raw(self), server, commandline.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::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).CreateProcessAndAttachWide)(windows_core::Interface::as_raw(self), server, commandline.param().abi(), createflags, processid, attachflags).ok()
}
pub unsafe fn OpenDumpFileWide<P0>(&self, filename: P0, filehandle: u64) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).OpenDumpFileWide)(windows_core::Interface::as_raw(self), filename.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::Param<windows_core::PCWSTR>,
P1: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).WriteDumpFileWide)(windows_core::Interface::as_raw(self), filename.param().abi(), filehandle, qualifier, formatflags, comment.param().abi()).ok()
}
pub unsafe fn AddDumpInformationFileWide<P0>(&self, filename: P0, filehandle: u64, r#type: u32) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).AddDumpInformationFileWide)(windows_core::Interface::as_raw(self), filename.param().abi(), filehandle, r#type).ok()
}
pub unsafe fn GetNumberDumpFiles(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNumberDumpFiles)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetDumpFile(&self, index: u32, buffer: Option<&mut [u8]>, namesize: Option<*mut u32>, handle: 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: Option<&mut [u16]>, namesize: Option<*mut u32>, handle: 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()
}
}
#[repr(C)]
pub struct IDebugClient4_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub AttachKernel: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR) -> windows_core::HRESULT,
pub GetKernelConnectionOptions: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetKernelConnectionOptions: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR) -> windows_core::HRESULT,
pub StartProcessServer: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR, *const core::ffi::c_void) -> windows_core::HRESULT,
pub ConnectProcessServer: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, *mut u64) -> windows_core::HRESULT,
pub DisconnectProcessServer: unsafe extern "system" fn(*mut core::ffi::c_void, u64) -> windows_core::HRESULT,
pub GetRunningProcessSystemIds: unsafe extern "system" fn(*mut core::ffi::c_void, u64, *mut u32, u32, *mut u32) -> windows_core::HRESULT,
pub GetRunningProcessSystemIdByExecutableName: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PCSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetRunningProcessDescription: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, u32, windows_core::PSTR, u32, *mut u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub AttachProcess: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, u32) -> windows_core::HRESULT,
pub CreateProcessA: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PCSTR, u32) -> windows_core::HRESULT,
pub CreateProcessAndAttach: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PCSTR, u32, u32, u32) -> windows_core::HRESULT,
pub GetProcessOptions: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub AddProcessOptions: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub RemoveProcessOptions: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub SetProcessOptions: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub OpenDumpFile: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR) -> windows_core::HRESULT,
pub WriteDumpFile: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, u32) -> windows_core::HRESULT,
pub ConnectSession: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32) -> windows_core::HRESULT,
pub StartServer: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR) -> windows_core::HRESULT,
pub OutputServers: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR, u32) -> windows_core::HRESULT,
pub TerminateProcesses: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub DetachProcesses: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub EndSession: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetExitCode: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub DispatchCallbacks: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub ExitDispatch: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub CreateClient: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetInputCallbacks: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub SetInputCallbacks: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetOutputCallbacks: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub SetOutputCallbacks: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetOutputMask: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetOutputMask: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetOtherOutputMask: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetOtherOutputMask: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetOutputWidth: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetOutputWidth: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetOutputLinePrefix: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetOutputLinePrefix: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR) -> windows_core::HRESULT,
pub GetIdentity: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub OutputIdentity: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, windows_core::PCSTR) -> windows_core::HRESULT,
pub GetEventCallbacks: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub SetEventCallbacks: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub FlushCallbacks: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub WriteDumpFile2: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, u32, u32, windows_core::PCSTR) -> windows_core::HRESULT,
pub AddDumpInformationFile: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, u32) -> windows_core::HRESULT,
pub EndProcessServer: unsafe extern "system" fn(*mut core::ffi::c_void, u64) -> windows_core::HRESULT,
pub WaitForProcessServerEnd: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub IsKernelDebuggerEnabled: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub TerminateCurrentProcess: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub DetachCurrentProcess: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub AbandonCurrentProcess: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetRunningProcessSystemIdByExecutableNameWide: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PCWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetRunningProcessDescriptionWide: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, u32, windows_core::PWSTR, u32, *mut u32, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub CreateProcessWide: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PCWSTR, u32) -> windows_core::HRESULT,
pub CreateProcessAndAttachWide: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PCWSTR, u32, u32, u32) -> windows_core::HRESULT,
pub OpenDumpFileWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR, u64) -> windows_core::HRESULT,
pub WriteDumpFileWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR, u64, u32, u32, windows_core::PCWSTR) -> windows_core::HRESULT,
pub AddDumpInformationFileWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR, u64, u32) -> windows_core::HRESULT,
pub GetNumberDumpFiles: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetDumpFile: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PSTR, u32, *mut u32, *mut u64, *mut u32) -> windows_core::HRESULT,
pub GetDumpFileWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PWSTR, u32, *mut u32, *mut u64, *mut u32) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IDebugClient5, IDebugClient5_Vtbl, 0xe3acb9d7_7ec2_4f0c_a0da_e81e0cbbe628);
impl core::ops::Deref for IDebugClient5 {
type Target = windows_core::IUnknown;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(IDebugClient5, windows_core::IUnknown);
impl IDebugClient5 {
pub unsafe fn AttachKernel<P0>(&self, flags: u32, connectoptions: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).AttachKernel)(windows_core::Interface::as_raw(self), flags, connectoptions.param().abi()).ok()
}
pub unsafe fn GetKernelConnectionOptions(&self, buffer: Option<&mut [u8]>, optionssize: 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).SetKernelConnectionOptions)(windows_core::Interface::as_raw(self), options.param().abi()).ok()
}
pub unsafe fn StartProcessServer<P0>(&self, flags: u32, options: P0, reserved: Option<*const core::ffi::c_void>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).StartProcessServer)(windows_core::Interface::as_raw(self), flags, options.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::Param<windows_core::PCSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).ConnectProcessServer)(windows_core::Interface::as_raw(self), remoteoptions.param().abi(), &mut result__).map(|| 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: Option<&mut [u32]>, actualcount: 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::Param<windows_core::PCSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRunningProcessSystemIdByExecutableName)(windows_core::Interface::as_raw(self), server, exename.param().abi(), flags, &mut result__).map(|| result__)
}
pub unsafe fn GetRunningProcessDescription(&self, server: u64, systemid: u32, flags: u32, exename: Option<&mut [u8]>, actualexenamesize: Option<*mut u32>, description: Option<&mut [u8]>, actualdescriptionsize: 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).CreateProcessA)(windows_core::Interface::as_raw(self), server, commandline.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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).CreateProcessAndAttach)(windows_core::Interface::as_raw(self), server, commandline.param().abi(), createflags, processid, attachflags).ok()
}
pub unsafe fn GetProcessOptions(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetProcessOptions)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).OpenDumpFile)(windows_core::Interface::as_raw(self), dumpfile.param().abi()).ok()
}
pub unsafe fn WriteDumpFile<P0>(&self, dumpfile: P0, qualifier: u32) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).WriteDumpFile)(windows_core::Interface::as_raw(self), dumpfile.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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).StartServer)(windows_core::Interface::as_raw(self), options.param().abi()).ok()
}
pub unsafe fn OutputServers<P0>(&self, outputcontrol: u32, machine: P0, flags: u32) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).OutputServers)(windows_core::Interface::as_raw(self), outputcontrol, machine.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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetExitCode)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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::Param<IDebugClient>,
{
(windows_core::Interface::vtable(self).ExitDispatch)(windows_core::Interface::as_raw(self), client.param().abi()).ok()
}
pub unsafe fn CreateClient(&self) -> windows_core::Result<IDebugClient> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).CreateClient)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn GetInputCallbacks(&self) -> windows_core::Result<IDebugInputCallbacks> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetInputCallbacks)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn SetInputCallbacks<P0>(&self, callbacks: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<IDebugInputCallbacks>,
{
(windows_core::Interface::vtable(self).SetInputCallbacks)(windows_core::Interface::as_raw(self), callbacks.param().abi()).ok()
}
pub unsafe fn GetOutputCallbacks(&self) -> windows_core::Result<IDebugOutputCallbacks> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetOutputCallbacks)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn SetOutputCallbacks<P0>(&self, callbacks: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<IDebugOutputCallbacks>,
{
(windows_core::Interface::vtable(self).SetOutputCallbacks)(windows_core::Interface::as_raw(self), callbacks.param().abi()).ok()
}
pub unsafe fn GetOutputMask(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetOutputMask)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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::Param<IDebugClient>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetOtherOutputMask)(windows_core::Interface::as_raw(self), client.param().abi(), &mut result__).map(|| result__)
}
pub unsafe fn SetOtherOutputMask<P0>(&self, client: P0, mask: u32) -> windows_core::Result<()>
where
P0: windows_core::Param<IDebugClient>,
{
(windows_core::Interface::vtable(self).SetOtherOutputMask)(windows_core::Interface::as_raw(self), client.param().abi(), mask).ok()
}
pub unsafe fn GetOutputWidth(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetOutputWidth)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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: Option<&mut [u8]>, prefixsize: 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).SetOutputLinePrefix)(windows_core::Interface::as_raw(self), prefix.param().abi()).ok()
}
pub unsafe fn GetIdentity(&self, buffer: Option<&mut [u8]>, identitysize: 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).OutputIdentity)(windows_core::Interface::as_raw(self), outputcontrol, flags, format.param().abi()).ok()
}
pub unsafe fn GetEventCallbacks(&self) -> windows_core::Result<IDebugEventCallbacks> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetEventCallbacks)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn SetEventCallbacks<P0>(&self, callbacks: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<IDebugEventCallbacks>,
{
(windows_core::Interface::vtable(self).SetEventCallbacks)(windows_core::Interface::as_raw(self), callbacks.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::Param<windows_core::PCSTR>,
P1: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).WriteDumpFile2)(windows_core::Interface::as_raw(self), dumpfile.param().abi(), qualifier, formatflags, comment.param().abi()).ok()
}
pub unsafe fn AddDumpInformationFile<P0>(&self, infofile: P0, r#type: u32) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).AddDumpInformationFile)(windows_core::Interface::as_raw(self), infofile.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::Param<windows_core::PCWSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRunningProcessSystemIdByExecutableNameWide)(windows_core::Interface::as_raw(self), server, exename.param().abi(), flags, &mut result__).map(|| result__)
}
pub unsafe fn GetRunningProcessDescriptionWide(&self, server: u64, systemid: u32, flags: u32, exename: Option<&mut [u16]>, actualexenamesize: Option<*mut u32>, description: Option<&mut [u16]>, actualdescriptionsize: 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::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).CreateProcessWide)(windows_core::Interface::as_raw(self), server, commandline.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::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).CreateProcessAndAttachWide)(windows_core::Interface::as_raw(self), server, commandline.param().abi(), createflags, processid, attachflags).ok()
}
pub unsafe fn OpenDumpFileWide<P0>(&self, filename: P0, filehandle: u64) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).OpenDumpFileWide)(windows_core::Interface::as_raw(self), filename.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::Param<windows_core::PCWSTR>,
P1: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).WriteDumpFileWide)(windows_core::Interface::as_raw(self), filename.param().abi(), filehandle, qualifier, formatflags, comment.param().abi()).ok()
}
pub unsafe fn AddDumpInformationFileWide<P0>(&self, filename: P0, filehandle: u64, r#type: u32) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).AddDumpInformationFileWide)(windows_core::Interface::as_raw(self), filename.param().abi(), filehandle, r#type).ok()
}
pub unsafe fn GetNumberDumpFiles(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNumberDumpFiles)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetDumpFile(&self, index: u32, buffer: Option<&mut [u8]>, namesize: Option<*mut u32>, handle: 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: Option<&mut [u16]>, namesize: Option<*mut u32>, handle: 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::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).AttachKernelWide)(windows_core::Interface::as_raw(self), flags, connectoptions.param().abi()).ok()
}
pub unsafe fn GetKernelConnectionOptionsWide(&self, buffer: Option<&mut [u16]>, optionssize: 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::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).SetKernelConnectionOptionsWide)(windows_core::Interface::as_raw(self), options.param().abi()).ok()
}
pub unsafe fn StartProcessServerWide<P0>(&self, flags: u32, options: P0, reserved: Option<*const core::ffi::c_void>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).StartProcessServerWide)(windows_core::Interface::as_raw(self), flags, options.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::Param<windows_core::PCWSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).ConnectProcessServerWide)(windows_core::Interface::as_raw(self), remoteoptions.param().abi(), &mut result__).map(|| result__)
}
pub unsafe fn StartServerWide<P0>(&self, options: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).StartServerWide)(windows_core::Interface::as_raw(self), options.param().abi()).ok()
}
pub unsafe fn OutputServersWide<P0>(&self, outputcontrol: u32, machine: P0, flags: u32) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).OutputServersWide)(windows_core::Interface::as_raw(self), outputcontrol, machine.param().abi(), flags).ok()
}
pub unsafe fn GetOutputCallbacksWide(&self) -> windows_core::Result<IDebugOutputCallbacksWide> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetOutputCallbacksWide)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn SetOutputCallbacksWide<P0>(&self, callbacks: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<IDebugOutputCallbacksWide>,
{
(windows_core::Interface::vtable(self).SetOutputCallbacksWide)(windows_core::Interface::as_raw(self), callbacks.param().abi()).ok()
}
pub unsafe fn GetOutputLinePrefixWide(&self, buffer: Option<&mut [u16]>, prefixsize: 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::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).SetOutputLinePrefixWide)(windows_core::Interface::as_raw(self), prefix.param().abi()).ok()
}
pub unsafe fn GetIdentityWide(&self, buffer: Option<&mut [u16]>, identitysize: 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::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).OutputIdentityWide)(windows_core::Interface::as_raw(self), outputcontrol, flags, format.param().abi()).ok()
}
pub unsafe fn GetEventCallbacksWide(&self) -> windows_core::Result<IDebugEventCallbacksWide> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetEventCallbacksWide)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn SetEventCallbacksWide<P0>(&self, callbacks: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<IDebugEventCallbacksWide>,
{
(windows_core::Interface::vtable(self).SetEventCallbacksWide)(windows_core::Interface::as_raw(self), callbacks.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::Param<windows_core::PCSTR>,
P1: windows_core::Param<windows_core::PCSTR>,
P2: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).CreateProcess2)(windows_core::Interface::as_raw(self), server, commandline.param().abi(), optionsbuffer, optionsbuffersize, initialdirectory.param().abi(), environment.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::Param<windows_core::PCWSTR>,
P1: windows_core::Param<windows_core::PCWSTR>,
P2: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).CreateProcess2Wide)(windows_core::Interface::as_raw(self), server, commandline.param().abi(), optionsbuffer, optionsbuffersize, initialdirectory.param().abi(), environment.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::Param<windows_core::PCSTR>,
P1: windows_core::Param<windows_core::PCSTR>,
P2: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).CreateProcessAndAttach2)(windows_core::Interface::as_raw(self), server, commandline.param().abi(), optionsbuffer, optionsbuffersize, initialdirectory.param().abi(), environment.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::Param<windows_core::PCWSTR>,
P1: windows_core::Param<windows_core::PCWSTR>,
P2: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).CreateProcessAndAttach2Wide)(windows_core::Interface::as_raw(self), server, commandline.param().abi(), optionsbuffer, optionsbuffersize, initialdirectory.param().abi(), environment.param().abi(), processid, attachflags).ok()
}
pub unsafe fn PushOutputLinePrefix<P0>(&self, newprefix: P0) -> windows_core::Result<u64>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).PushOutputLinePrefix)(windows_core::Interface::as_raw(self), newprefix.param().abi(), &mut result__).map(|| result__)
}
pub unsafe fn PushOutputLinePrefixWide<P0>(&self, newprefix: P0) -> windows_core::Result<u64>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).PushOutputLinePrefixWide)(windows_core::Interface::as_raw(self), newprefix.param().abi(), &mut result__).map(|| 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNumberInputCallbacks)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetNumberOutputCallbacks(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNumberOutputCallbacks)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetNumberEventCallbacks(&self, eventflags: u32) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNumberEventCallbacks)(windows_core::Interface::as_raw(self), eventflags, &mut result__).map(|| result__)
}
pub unsafe fn GetQuitLockString(&self, buffer: Option<&mut [u8]>, stringsize: 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).SetQuitLockString)(windows_core::Interface::as_raw(self), string.param().abi()).ok()
}
pub unsafe fn GetQuitLockStringWide(&self, buffer: Option<&mut [u16]>, stringsize: 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::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).SetQuitLockStringWide)(windows_core::Interface::as_raw(self), string.param().abi()).ok()
}
}
#[repr(C)]
pub struct IDebugClient5_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub AttachKernel: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR) -> windows_core::HRESULT,
pub GetKernelConnectionOptions: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetKernelConnectionOptions: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR) -> windows_core::HRESULT,
pub StartProcessServer: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR, *const core::ffi::c_void) -> windows_core::HRESULT,
pub ConnectProcessServer: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, *mut u64) -> windows_core::HRESULT,
pub DisconnectProcessServer: unsafe extern "system" fn(*mut core::ffi::c_void, u64) -> windows_core::HRESULT,
pub GetRunningProcessSystemIds: unsafe extern "system" fn(*mut core::ffi::c_void, u64, *mut u32, u32, *mut u32) -> windows_core::HRESULT,
pub GetRunningProcessSystemIdByExecutableName: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PCSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetRunningProcessDescription: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, u32, windows_core::PSTR, u32, *mut u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub AttachProcess: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, u32) -> windows_core::HRESULT,
pub CreateProcessA: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PCSTR, u32) -> windows_core::HRESULT,
pub CreateProcessAndAttach: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PCSTR, u32, u32, u32) -> windows_core::HRESULT,
pub GetProcessOptions: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub AddProcessOptions: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub RemoveProcessOptions: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub SetProcessOptions: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub OpenDumpFile: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR) -> windows_core::HRESULT,
pub WriteDumpFile: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, u32) -> windows_core::HRESULT,
pub ConnectSession: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32) -> windows_core::HRESULT,
pub StartServer: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR) -> windows_core::HRESULT,
pub OutputServers: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR, u32) -> windows_core::HRESULT,
pub TerminateProcesses: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub DetachProcesses: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub EndSession: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetExitCode: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub DispatchCallbacks: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub ExitDispatch: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub CreateClient: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetInputCallbacks: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub SetInputCallbacks: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetOutputCallbacks: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub SetOutputCallbacks: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetOutputMask: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetOutputMask: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetOtherOutputMask: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetOtherOutputMask: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetOutputWidth: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetOutputWidth: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetOutputLinePrefix: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetOutputLinePrefix: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR) -> windows_core::HRESULT,
pub GetIdentity: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub OutputIdentity: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, windows_core::PCSTR) -> windows_core::HRESULT,
pub GetEventCallbacks: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub SetEventCallbacks: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub FlushCallbacks: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub WriteDumpFile2: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, u32, u32, windows_core::PCSTR) -> windows_core::HRESULT,
pub AddDumpInformationFile: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, u32) -> windows_core::HRESULT,
pub EndProcessServer: unsafe extern "system" fn(*mut core::ffi::c_void, u64) -> windows_core::HRESULT,
pub WaitForProcessServerEnd: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub IsKernelDebuggerEnabled: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub TerminateCurrentProcess: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub DetachCurrentProcess: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub AbandonCurrentProcess: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetRunningProcessSystemIdByExecutableNameWide: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PCWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetRunningProcessDescriptionWide: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, u32, windows_core::PWSTR, u32, *mut u32, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub CreateProcessWide: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PCWSTR, u32) -> windows_core::HRESULT,
pub CreateProcessAndAttachWide: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PCWSTR, u32, u32, u32) -> windows_core::HRESULT,
pub OpenDumpFileWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR, u64) -> windows_core::HRESULT,
pub WriteDumpFileWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR, u64, u32, u32, windows_core::PCWSTR) -> windows_core::HRESULT,
pub AddDumpInformationFileWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR, u64, u32) -> windows_core::HRESULT,
pub GetNumberDumpFiles: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetDumpFile: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PSTR, u32, *mut u32, *mut u64, *mut u32) -> windows_core::HRESULT,
pub GetDumpFileWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PWSTR, u32, *mut u32, *mut u64, *mut u32) -> windows_core::HRESULT,
pub AttachKernelWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCWSTR) -> windows_core::HRESULT,
pub GetKernelConnectionOptionsWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetKernelConnectionOptionsWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR) -> windows_core::HRESULT,
pub StartProcessServerWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCWSTR, *const core::ffi::c_void) -> windows_core::HRESULT,
pub ConnectProcessServerWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR, *mut u64) -> windows_core::HRESULT,
pub StartServerWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR) -> windows_core::HRESULT,
pub OutputServersWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCWSTR, u32) -> windows_core::HRESULT,
pub GetOutputCallbacksWide: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub SetOutputCallbacksWide: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetOutputLinePrefixWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetOutputLinePrefixWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR) -> windows_core::HRESULT,
pub GetIdentityWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub OutputIdentityWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, windows_core::PCWSTR) -> windows_core::HRESULT,
pub GetEventCallbacksWide: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub SetEventCallbacksWide: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub CreateProcess2: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PCSTR, *const core::ffi::c_void, u32, windows_core::PCSTR, windows_core::PCSTR) -> windows_core::HRESULT,
pub CreateProcess2Wide: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PCWSTR, *const core::ffi::c_void, u32, windows_core::PCWSTR, windows_core::PCWSTR) -> windows_core::HRESULT,
pub CreateProcessAndAttach2: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PCSTR, *const core::ffi::c_void, u32, windows_core::PCSTR, windows_core::PCSTR, u32, u32) -> windows_core::HRESULT,
pub CreateProcessAndAttach2Wide: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PCWSTR, *const core::ffi::c_void, u32, windows_core::PCWSTR, windows_core::PCWSTR, u32, u32) -> windows_core::HRESULT,
pub PushOutputLinePrefix: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, *mut u64) -> windows_core::HRESULT,
pub PushOutputLinePrefixWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR, *mut u64) -> windows_core::HRESULT,
pub PopOutputLinePrefix: unsafe extern "system" fn(*mut core::ffi::c_void, u64) -> windows_core::HRESULT,
pub GetNumberInputCallbacks: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetNumberOutputCallbacks: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetNumberEventCallbacks: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub GetQuitLockString: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetQuitLockString: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR) -> windows_core::HRESULT,
pub GetQuitLockStringWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetQuitLockStringWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IDebugClient6, IDebugClient6_Vtbl, 0xfd28b4c5_c498_4686_a28e_62cad2154eb3);
impl core::ops::Deref for IDebugClient6 {
type Target = windows_core::IUnknown;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(IDebugClient6, windows_core::IUnknown);
impl IDebugClient6 {
pub unsafe fn AttachKernel<P0>(&self, flags: u32, connectoptions: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).AttachKernel)(windows_core::Interface::as_raw(self), flags, connectoptions.param().abi()).ok()
}
pub unsafe fn GetKernelConnectionOptions(&self, buffer: Option<&mut [u8]>, optionssize: 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).SetKernelConnectionOptions)(windows_core::Interface::as_raw(self), options.param().abi()).ok()
}
pub unsafe fn StartProcessServer<P0>(&self, flags: u32, options: P0, reserved: Option<*const core::ffi::c_void>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).StartProcessServer)(windows_core::Interface::as_raw(self), flags, options.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::Param<windows_core::PCSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).ConnectProcessServer)(windows_core::Interface::as_raw(self), remoteoptions.param().abi(), &mut result__).map(|| 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: Option<&mut [u32]>, actualcount: 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::Param<windows_core::PCSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRunningProcessSystemIdByExecutableName)(windows_core::Interface::as_raw(self), server, exename.param().abi(), flags, &mut result__).map(|| result__)
}
pub unsafe fn GetRunningProcessDescription(&self, server: u64, systemid: u32, flags: u32, exename: Option<&mut [u8]>, actualexenamesize: Option<*mut u32>, description: Option<&mut [u8]>, actualdescriptionsize: 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).CreateProcessA)(windows_core::Interface::as_raw(self), server, commandline.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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).CreateProcessAndAttach)(windows_core::Interface::as_raw(self), server, commandline.param().abi(), createflags, processid, attachflags).ok()
}
pub unsafe fn GetProcessOptions(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetProcessOptions)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).OpenDumpFile)(windows_core::Interface::as_raw(self), dumpfile.param().abi()).ok()
}
pub unsafe fn WriteDumpFile<P0>(&self, dumpfile: P0, qualifier: u32) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).WriteDumpFile)(windows_core::Interface::as_raw(self), dumpfile.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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).StartServer)(windows_core::Interface::as_raw(self), options.param().abi()).ok()
}
pub unsafe fn OutputServers<P0>(&self, outputcontrol: u32, machine: P0, flags: u32) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).OutputServers)(windows_core::Interface::as_raw(self), outputcontrol, machine.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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetExitCode)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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::Param<IDebugClient>,
{
(windows_core::Interface::vtable(self).ExitDispatch)(windows_core::Interface::as_raw(self), client.param().abi()).ok()
}
pub unsafe fn CreateClient(&self) -> windows_core::Result<IDebugClient> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).CreateClient)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn GetInputCallbacks(&self) -> windows_core::Result<IDebugInputCallbacks> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetInputCallbacks)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn SetInputCallbacks<P0>(&self, callbacks: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<IDebugInputCallbacks>,
{
(windows_core::Interface::vtable(self).SetInputCallbacks)(windows_core::Interface::as_raw(self), callbacks.param().abi()).ok()
}
pub unsafe fn GetOutputCallbacks(&self) -> windows_core::Result<IDebugOutputCallbacks> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetOutputCallbacks)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn SetOutputCallbacks<P0>(&self, callbacks: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<IDebugOutputCallbacks>,
{
(windows_core::Interface::vtable(self).SetOutputCallbacks)(windows_core::Interface::as_raw(self), callbacks.param().abi()).ok()
}
pub unsafe fn GetOutputMask(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetOutputMask)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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::Param<IDebugClient>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetOtherOutputMask)(windows_core::Interface::as_raw(self), client.param().abi(), &mut result__).map(|| result__)
}
pub unsafe fn SetOtherOutputMask<P0>(&self, client: P0, mask: u32) -> windows_core::Result<()>
where
P0: windows_core::Param<IDebugClient>,
{
(windows_core::Interface::vtable(self).SetOtherOutputMask)(windows_core::Interface::as_raw(self), client.param().abi(), mask).ok()
}
pub unsafe fn GetOutputWidth(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetOutputWidth)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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: Option<&mut [u8]>, prefixsize: 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).SetOutputLinePrefix)(windows_core::Interface::as_raw(self), prefix.param().abi()).ok()
}
pub unsafe fn GetIdentity(&self, buffer: Option<&mut [u8]>, identitysize: 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).OutputIdentity)(windows_core::Interface::as_raw(self), outputcontrol, flags, format.param().abi()).ok()
}
pub unsafe fn GetEventCallbacks(&self) -> windows_core::Result<IDebugEventCallbacks> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetEventCallbacks)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn SetEventCallbacks<P0>(&self, callbacks: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<IDebugEventCallbacks>,
{
(windows_core::Interface::vtable(self).SetEventCallbacks)(windows_core::Interface::as_raw(self), callbacks.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::Param<windows_core::PCSTR>,
P1: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).WriteDumpFile2)(windows_core::Interface::as_raw(self), dumpfile.param().abi(), qualifier, formatflags, comment.param().abi()).ok()
}
pub unsafe fn AddDumpInformationFile<P0>(&self, infofile: P0, r#type: u32) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).AddDumpInformationFile)(windows_core::Interface::as_raw(self), infofile.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::Param<windows_core::PCWSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRunningProcessSystemIdByExecutableNameWide)(windows_core::Interface::as_raw(self), server, exename.param().abi(), flags, &mut result__).map(|| result__)
}
pub unsafe fn GetRunningProcessDescriptionWide(&self, server: u64, systemid: u32, flags: u32, exename: Option<&mut [u16]>, actualexenamesize: Option<*mut u32>, description: Option<&mut [u16]>, actualdescriptionsize: 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::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).CreateProcessWide)(windows_core::Interface::as_raw(self), server, commandline.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::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).CreateProcessAndAttachWide)(windows_core::Interface::as_raw(self), server, commandline.param().abi(), createflags, processid, attachflags).ok()
}
pub unsafe fn OpenDumpFileWide<P0>(&self, filename: P0, filehandle: u64) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).OpenDumpFileWide)(windows_core::Interface::as_raw(self), filename.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::Param<windows_core::PCWSTR>,
P1: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).WriteDumpFileWide)(windows_core::Interface::as_raw(self), filename.param().abi(), filehandle, qualifier, formatflags, comment.param().abi()).ok()
}
pub unsafe fn AddDumpInformationFileWide<P0>(&self, filename: P0, filehandle: u64, r#type: u32) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).AddDumpInformationFileWide)(windows_core::Interface::as_raw(self), filename.param().abi(), filehandle, r#type).ok()
}
pub unsafe fn GetNumberDumpFiles(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNumberDumpFiles)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetDumpFile(&self, index: u32, buffer: Option<&mut [u8]>, namesize: Option<*mut u32>, handle: 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: Option<&mut [u16]>, namesize: Option<*mut u32>, handle: 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::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).AttachKernelWide)(windows_core::Interface::as_raw(self), flags, connectoptions.param().abi()).ok()
}
pub unsafe fn GetKernelConnectionOptionsWide(&self, buffer: Option<&mut [u16]>, optionssize: 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::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).SetKernelConnectionOptionsWide)(windows_core::Interface::as_raw(self), options.param().abi()).ok()
}
pub unsafe fn StartProcessServerWide<P0>(&self, flags: u32, options: P0, reserved: Option<*const core::ffi::c_void>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).StartProcessServerWide)(windows_core::Interface::as_raw(self), flags, options.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::Param<windows_core::PCWSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).ConnectProcessServerWide)(windows_core::Interface::as_raw(self), remoteoptions.param().abi(), &mut result__).map(|| result__)
}
pub unsafe fn StartServerWide<P0>(&self, options: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).StartServerWide)(windows_core::Interface::as_raw(self), options.param().abi()).ok()
}
pub unsafe fn OutputServersWide<P0>(&self, outputcontrol: u32, machine: P0, flags: u32) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).OutputServersWide)(windows_core::Interface::as_raw(self), outputcontrol, machine.param().abi(), flags).ok()
}
pub unsafe fn GetOutputCallbacksWide(&self) -> windows_core::Result<IDebugOutputCallbacksWide> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetOutputCallbacksWide)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn SetOutputCallbacksWide<P0>(&self, callbacks: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<IDebugOutputCallbacksWide>,
{
(windows_core::Interface::vtable(self).SetOutputCallbacksWide)(windows_core::Interface::as_raw(self), callbacks.param().abi()).ok()
}
pub unsafe fn GetOutputLinePrefixWide(&self, buffer: Option<&mut [u16]>, prefixsize: 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::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).SetOutputLinePrefixWide)(windows_core::Interface::as_raw(self), prefix.param().abi()).ok()
}
pub unsafe fn GetIdentityWide(&self, buffer: Option<&mut [u16]>, identitysize: 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::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).OutputIdentityWide)(windows_core::Interface::as_raw(self), outputcontrol, flags, format.param().abi()).ok()
}
pub unsafe fn GetEventCallbacksWide(&self) -> windows_core::Result<IDebugEventCallbacksWide> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetEventCallbacksWide)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn SetEventCallbacksWide<P0>(&self, callbacks: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<IDebugEventCallbacksWide>,
{
(windows_core::Interface::vtable(self).SetEventCallbacksWide)(windows_core::Interface::as_raw(self), callbacks.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::Param<windows_core::PCSTR>,
P1: windows_core::Param<windows_core::PCSTR>,
P2: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).CreateProcess2)(windows_core::Interface::as_raw(self), server, commandline.param().abi(), optionsbuffer, optionsbuffersize, initialdirectory.param().abi(), environment.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::Param<windows_core::PCWSTR>,
P1: windows_core::Param<windows_core::PCWSTR>,
P2: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).CreateProcess2Wide)(windows_core::Interface::as_raw(self), server, commandline.param().abi(), optionsbuffer, optionsbuffersize, initialdirectory.param().abi(), environment.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::Param<windows_core::PCSTR>,
P1: windows_core::Param<windows_core::PCSTR>,
P2: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).CreateProcessAndAttach2)(windows_core::Interface::as_raw(self), server, commandline.param().abi(), optionsbuffer, optionsbuffersize, initialdirectory.param().abi(), environment.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::Param<windows_core::PCWSTR>,
P1: windows_core::Param<windows_core::PCWSTR>,
P2: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).CreateProcessAndAttach2Wide)(windows_core::Interface::as_raw(self), server, commandline.param().abi(), optionsbuffer, optionsbuffersize, initialdirectory.param().abi(), environment.param().abi(), processid, attachflags).ok()
}
pub unsafe fn PushOutputLinePrefix<P0>(&self, newprefix: P0) -> windows_core::Result<u64>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).PushOutputLinePrefix)(windows_core::Interface::as_raw(self), newprefix.param().abi(), &mut result__).map(|| result__)
}
pub unsafe fn PushOutputLinePrefixWide<P0>(&self, newprefix: P0) -> windows_core::Result<u64>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).PushOutputLinePrefixWide)(windows_core::Interface::as_raw(self), newprefix.param().abi(), &mut result__).map(|| 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNumberInputCallbacks)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetNumberOutputCallbacks(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNumberOutputCallbacks)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetNumberEventCallbacks(&self, eventflags: u32) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNumberEventCallbacks)(windows_core::Interface::as_raw(self), eventflags, &mut result__).map(|| result__)
}
pub unsafe fn GetQuitLockString(&self, buffer: Option<&mut [u8]>, stringsize: 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).SetQuitLockString)(windows_core::Interface::as_raw(self), string.param().abi()).ok()
}
pub unsafe fn GetQuitLockStringWide(&self, buffer: Option<&mut [u16]>, stringsize: 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::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).SetQuitLockStringWide)(windows_core::Interface::as_raw(self), string.param().abi()).ok()
}
pub unsafe fn SetEventContextCallbacks<P0>(&self, callbacks: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<IDebugEventContextCallbacks>,
{
(windows_core::Interface::vtable(self).SetEventContextCallbacks)(windows_core::Interface::as_raw(self), callbacks.param().abi()).ok()
}
}
#[repr(C)]
pub struct IDebugClient6_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub AttachKernel: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR) -> windows_core::HRESULT,
pub GetKernelConnectionOptions: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetKernelConnectionOptions: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR) -> windows_core::HRESULT,
pub StartProcessServer: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR, *const core::ffi::c_void) -> windows_core::HRESULT,
pub ConnectProcessServer: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, *mut u64) -> windows_core::HRESULT,
pub DisconnectProcessServer: unsafe extern "system" fn(*mut core::ffi::c_void, u64) -> windows_core::HRESULT,
pub GetRunningProcessSystemIds: unsafe extern "system" fn(*mut core::ffi::c_void, u64, *mut u32, u32, *mut u32) -> windows_core::HRESULT,
pub GetRunningProcessSystemIdByExecutableName: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PCSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetRunningProcessDescription: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, u32, windows_core::PSTR, u32, *mut u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub AttachProcess: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, u32) -> windows_core::HRESULT,
pub CreateProcessA: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PCSTR, u32) -> windows_core::HRESULT,
pub CreateProcessAndAttach: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PCSTR, u32, u32, u32) -> windows_core::HRESULT,
pub GetProcessOptions: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub AddProcessOptions: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub RemoveProcessOptions: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub SetProcessOptions: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub OpenDumpFile: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR) -> windows_core::HRESULT,
pub WriteDumpFile: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, u32) -> windows_core::HRESULT,
pub ConnectSession: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32) -> windows_core::HRESULT,
pub StartServer: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR) -> windows_core::HRESULT,
pub OutputServers: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR, u32) -> windows_core::HRESULT,
pub TerminateProcesses: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub DetachProcesses: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub EndSession: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetExitCode: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub DispatchCallbacks: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub ExitDispatch: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub CreateClient: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetInputCallbacks: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub SetInputCallbacks: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetOutputCallbacks: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub SetOutputCallbacks: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetOutputMask: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetOutputMask: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetOtherOutputMask: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetOtherOutputMask: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetOutputWidth: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetOutputWidth: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetOutputLinePrefix: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetOutputLinePrefix: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR) -> windows_core::HRESULT,
pub GetIdentity: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub OutputIdentity: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, windows_core::PCSTR) -> windows_core::HRESULT,
pub GetEventCallbacks: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub SetEventCallbacks: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub FlushCallbacks: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub WriteDumpFile2: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, u32, u32, windows_core::PCSTR) -> windows_core::HRESULT,
pub AddDumpInformationFile: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, u32) -> windows_core::HRESULT,
pub EndProcessServer: unsafe extern "system" fn(*mut core::ffi::c_void, u64) -> windows_core::HRESULT,
pub WaitForProcessServerEnd: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub IsKernelDebuggerEnabled: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub TerminateCurrentProcess: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub DetachCurrentProcess: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub AbandonCurrentProcess: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetRunningProcessSystemIdByExecutableNameWide: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PCWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetRunningProcessDescriptionWide: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, u32, windows_core::PWSTR, u32, *mut u32, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub CreateProcessWide: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PCWSTR, u32) -> windows_core::HRESULT,
pub CreateProcessAndAttachWide: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PCWSTR, u32, u32, u32) -> windows_core::HRESULT,
pub OpenDumpFileWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR, u64) -> windows_core::HRESULT,
pub WriteDumpFileWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR, u64, u32, u32, windows_core::PCWSTR) -> windows_core::HRESULT,
pub AddDumpInformationFileWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR, u64, u32) -> windows_core::HRESULT,
pub GetNumberDumpFiles: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetDumpFile: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PSTR, u32, *mut u32, *mut u64, *mut u32) -> windows_core::HRESULT,
pub GetDumpFileWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PWSTR, u32, *mut u32, *mut u64, *mut u32) -> windows_core::HRESULT,
pub AttachKernelWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCWSTR) -> windows_core::HRESULT,
pub GetKernelConnectionOptionsWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetKernelConnectionOptionsWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR) -> windows_core::HRESULT,
pub StartProcessServerWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCWSTR, *const core::ffi::c_void) -> windows_core::HRESULT,
pub ConnectProcessServerWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR, *mut u64) -> windows_core::HRESULT,
pub StartServerWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR) -> windows_core::HRESULT,
pub OutputServersWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCWSTR, u32) -> windows_core::HRESULT,
pub GetOutputCallbacksWide: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub SetOutputCallbacksWide: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetOutputLinePrefixWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetOutputLinePrefixWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR) -> windows_core::HRESULT,
pub GetIdentityWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub OutputIdentityWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, windows_core::PCWSTR) -> windows_core::HRESULT,
pub GetEventCallbacksWide: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub SetEventCallbacksWide: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub CreateProcess2: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PCSTR, *const core::ffi::c_void, u32, windows_core::PCSTR, windows_core::PCSTR) -> windows_core::HRESULT,
pub CreateProcess2Wide: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PCWSTR, *const core::ffi::c_void, u32, windows_core::PCWSTR, windows_core::PCWSTR) -> windows_core::HRESULT,
pub CreateProcessAndAttach2: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PCSTR, *const core::ffi::c_void, u32, windows_core::PCSTR, windows_core::PCSTR, u32, u32) -> windows_core::HRESULT,
pub CreateProcessAndAttach2Wide: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PCWSTR, *const core::ffi::c_void, u32, windows_core::PCWSTR, windows_core::PCWSTR, u32, u32) -> windows_core::HRESULT,
pub PushOutputLinePrefix: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, *mut u64) -> windows_core::HRESULT,
pub PushOutputLinePrefixWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR, *mut u64) -> windows_core::HRESULT,
pub PopOutputLinePrefix: unsafe extern "system" fn(*mut core::ffi::c_void, u64) -> windows_core::HRESULT,
pub GetNumberInputCallbacks: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetNumberOutputCallbacks: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetNumberEventCallbacks: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub GetQuitLockString: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetQuitLockString: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR) -> windows_core::HRESULT,
pub GetQuitLockStringWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetQuitLockStringWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR) -> windows_core::HRESULT,
pub SetEventContextCallbacks: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IDebugClient7, IDebugClient7_Vtbl, 0x13586be3_542e_481e_b1f2_8497ba74f9a9);
impl core::ops::Deref for IDebugClient7 {
type Target = windows_core::IUnknown;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(IDebugClient7, windows_core::IUnknown);
impl IDebugClient7 {
pub unsafe fn AttachKernel<P0>(&self, flags: u32, connectoptions: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).AttachKernel)(windows_core::Interface::as_raw(self), flags, connectoptions.param().abi()).ok()
}
pub unsafe fn GetKernelConnectionOptions(&self, buffer: Option<&mut [u8]>, optionssize: 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).SetKernelConnectionOptions)(windows_core::Interface::as_raw(self), options.param().abi()).ok()
}
pub unsafe fn StartProcessServer<P0>(&self, flags: u32, options: P0, reserved: Option<*const core::ffi::c_void>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).StartProcessServer)(windows_core::Interface::as_raw(self), flags, options.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::Param<windows_core::PCSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).ConnectProcessServer)(windows_core::Interface::as_raw(self), remoteoptions.param().abi(), &mut result__).map(|| 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: Option<&mut [u32]>, actualcount: 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::Param<windows_core::PCSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRunningProcessSystemIdByExecutableName)(windows_core::Interface::as_raw(self), server, exename.param().abi(), flags, &mut result__).map(|| result__)
}
pub unsafe fn GetRunningProcessDescription(&self, server: u64, systemid: u32, flags: u32, exename: Option<&mut [u8]>, actualexenamesize: Option<*mut u32>, description: Option<&mut [u8]>, actualdescriptionsize: 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).CreateProcessA)(windows_core::Interface::as_raw(self), server, commandline.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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).CreateProcessAndAttach)(windows_core::Interface::as_raw(self), server, commandline.param().abi(), createflags, processid, attachflags).ok()
}
pub unsafe fn GetProcessOptions(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetProcessOptions)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).OpenDumpFile)(windows_core::Interface::as_raw(self), dumpfile.param().abi()).ok()
}
pub unsafe fn WriteDumpFile<P0>(&self, dumpfile: P0, qualifier: u32) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).WriteDumpFile)(windows_core::Interface::as_raw(self), dumpfile.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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).StartServer)(windows_core::Interface::as_raw(self), options.param().abi()).ok()
}
pub unsafe fn OutputServers<P0>(&self, outputcontrol: u32, machine: P0, flags: u32) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).OutputServers)(windows_core::Interface::as_raw(self), outputcontrol, machine.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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetExitCode)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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::Param<IDebugClient>,
{
(windows_core::Interface::vtable(self).ExitDispatch)(windows_core::Interface::as_raw(self), client.param().abi()).ok()
}
pub unsafe fn CreateClient(&self) -> windows_core::Result<IDebugClient> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).CreateClient)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn GetInputCallbacks(&self) -> windows_core::Result<IDebugInputCallbacks> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetInputCallbacks)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn SetInputCallbacks<P0>(&self, callbacks: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<IDebugInputCallbacks>,
{
(windows_core::Interface::vtable(self).SetInputCallbacks)(windows_core::Interface::as_raw(self), callbacks.param().abi()).ok()
}
pub unsafe fn GetOutputCallbacks(&self) -> windows_core::Result<IDebugOutputCallbacks> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetOutputCallbacks)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn SetOutputCallbacks<P0>(&self, callbacks: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<IDebugOutputCallbacks>,
{
(windows_core::Interface::vtable(self).SetOutputCallbacks)(windows_core::Interface::as_raw(self), callbacks.param().abi()).ok()
}
pub unsafe fn GetOutputMask(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetOutputMask)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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::Param<IDebugClient>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetOtherOutputMask)(windows_core::Interface::as_raw(self), client.param().abi(), &mut result__).map(|| result__)
}
pub unsafe fn SetOtherOutputMask<P0>(&self, client: P0, mask: u32) -> windows_core::Result<()>
where
P0: windows_core::Param<IDebugClient>,
{
(windows_core::Interface::vtable(self).SetOtherOutputMask)(windows_core::Interface::as_raw(self), client.param().abi(), mask).ok()
}
pub unsafe fn GetOutputWidth(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetOutputWidth)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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: Option<&mut [u8]>, prefixsize: 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).SetOutputLinePrefix)(windows_core::Interface::as_raw(self), prefix.param().abi()).ok()
}
pub unsafe fn GetIdentity(&self, buffer: Option<&mut [u8]>, identitysize: 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).OutputIdentity)(windows_core::Interface::as_raw(self), outputcontrol, flags, format.param().abi()).ok()
}
pub unsafe fn GetEventCallbacks(&self) -> windows_core::Result<IDebugEventCallbacks> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetEventCallbacks)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn SetEventCallbacks<P0>(&self, callbacks: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<IDebugEventCallbacks>,
{
(windows_core::Interface::vtable(self).SetEventCallbacks)(windows_core::Interface::as_raw(self), callbacks.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::Param<windows_core::PCSTR>,
P1: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).WriteDumpFile2)(windows_core::Interface::as_raw(self), dumpfile.param().abi(), qualifier, formatflags, comment.param().abi()).ok()
}
pub unsafe fn AddDumpInformationFile<P0>(&self, infofile: P0, r#type: u32) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).AddDumpInformationFile)(windows_core::Interface::as_raw(self), infofile.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::Param<windows_core::PCWSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRunningProcessSystemIdByExecutableNameWide)(windows_core::Interface::as_raw(self), server, exename.param().abi(), flags, &mut result__).map(|| result__)
}
pub unsafe fn GetRunningProcessDescriptionWide(&self, server: u64, systemid: u32, flags: u32, exename: Option<&mut [u16]>, actualexenamesize: Option<*mut u32>, description: Option<&mut [u16]>, actualdescriptionsize: 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::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).CreateProcessWide)(windows_core::Interface::as_raw(self), server, commandline.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::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).CreateProcessAndAttachWide)(windows_core::Interface::as_raw(self), server, commandline.param().abi(), createflags, processid, attachflags).ok()
}
pub unsafe fn OpenDumpFileWide<P0>(&self, filename: P0, filehandle: u64) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).OpenDumpFileWide)(windows_core::Interface::as_raw(self), filename.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::Param<windows_core::PCWSTR>,
P1: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).WriteDumpFileWide)(windows_core::Interface::as_raw(self), filename.param().abi(), filehandle, qualifier, formatflags, comment.param().abi()).ok()
}
pub unsafe fn AddDumpInformationFileWide<P0>(&self, filename: P0, filehandle: u64, r#type: u32) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).AddDumpInformationFileWide)(windows_core::Interface::as_raw(self), filename.param().abi(), filehandle, r#type).ok()
}
pub unsafe fn GetNumberDumpFiles(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNumberDumpFiles)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetDumpFile(&self, index: u32, buffer: Option<&mut [u8]>, namesize: Option<*mut u32>, handle: 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: Option<&mut [u16]>, namesize: Option<*mut u32>, handle: 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::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).AttachKernelWide)(windows_core::Interface::as_raw(self), flags, connectoptions.param().abi()).ok()
}
pub unsafe fn GetKernelConnectionOptionsWide(&self, buffer: Option<&mut [u16]>, optionssize: 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::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).SetKernelConnectionOptionsWide)(windows_core::Interface::as_raw(self), options.param().abi()).ok()
}
pub unsafe fn StartProcessServerWide<P0>(&self, flags: u32, options: P0, reserved: Option<*const core::ffi::c_void>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).StartProcessServerWide)(windows_core::Interface::as_raw(self), flags, options.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::Param<windows_core::PCWSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).ConnectProcessServerWide)(windows_core::Interface::as_raw(self), remoteoptions.param().abi(), &mut result__).map(|| result__)
}
pub unsafe fn StartServerWide<P0>(&self, options: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).StartServerWide)(windows_core::Interface::as_raw(self), options.param().abi()).ok()
}
pub unsafe fn OutputServersWide<P0>(&self, outputcontrol: u32, machine: P0, flags: u32) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).OutputServersWide)(windows_core::Interface::as_raw(self), outputcontrol, machine.param().abi(), flags).ok()
}
pub unsafe fn GetOutputCallbacksWide(&self) -> windows_core::Result<IDebugOutputCallbacksWide> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetOutputCallbacksWide)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn SetOutputCallbacksWide<P0>(&self, callbacks: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<IDebugOutputCallbacksWide>,
{
(windows_core::Interface::vtable(self).SetOutputCallbacksWide)(windows_core::Interface::as_raw(self), callbacks.param().abi()).ok()
}
pub unsafe fn GetOutputLinePrefixWide(&self, buffer: Option<&mut [u16]>, prefixsize: 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::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).SetOutputLinePrefixWide)(windows_core::Interface::as_raw(self), prefix.param().abi()).ok()
}
pub unsafe fn GetIdentityWide(&self, buffer: Option<&mut [u16]>, identitysize: 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::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).OutputIdentityWide)(windows_core::Interface::as_raw(self), outputcontrol, flags, format.param().abi()).ok()
}
pub unsafe fn GetEventCallbacksWide(&self) -> windows_core::Result<IDebugEventCallbacksWide> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetEventCallbacksWide)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn SetEventCallbacksWide<P0>(&self, callbacks: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<IDebugEventCallbacksWide>,
{
(windows_core::Interface::vtable(self).SetEventCallbacksWide)(windows_core::Interface::as_raw(self), callbacks.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::Param<windows_core::PCSTR>,
P1: windows_core::Param<windows_core::PCSTR>,
P2: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).CreateProcess2)(windows_core::Interface::as_raw(self), server, commandline.param().abi(), optionsbuffer, optionsbuffersize, initialdirectory.param().abi(), environment.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::Param<windows_core::PCWSTR>,
P1: windows_core::Param<windows_core::PCWSTR>,
P2: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).CreateProcess2Wide)(windows_core::Interface::as_raw(self), server, commandline.param().abi(), optionsbuffer, optionsbuffersize, initialdirectory.param().abi(), environment.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::Param<windows_core::PCSTR>,
P1: windows_core::Param<windows_core::PCSTR>,
P2: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).CreateProcessAndAttach2)(windows_core::Interface::as_raw(self), server, commandline.param().abi(), optionsbuffer, optionsbuffersize, initialdirectory.param().abi(), environment.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::Param<windows_core::PCWSTR>,
P1: windows_core::Param<windows_core::PCWSTR>,
P2: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).CreateProcessAndAttach2Wide)(windows_core::Interface::as_raw(self), server, commandline.param().abi(), optionsbuffer, optionsbuffersize, initialdirectory.param().abi(), environment.param().abi(), processid, attachflags).ok()
}
pub unsafe fn PushOutputLinePrefix<P0>(&self, newprefix: P0) -> windows_core::Result<u64>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).PushOutputLinePrefix)(windows_core::Interface::as_raw(self), newprefix.param().abi(), &mut result__).map(|| result__)
}
pub unsafe fn PushOutputLinePrefixWide<P0>(&self, newprefix: P0) -> windows_core::Result<u64>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).PushOutputLinePrefixWide)(windows_core::Interface::as_raw(self), newprefix.param().abi(), &mut result__).map(|| 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNumberInputCallbacks)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetNumberOutputCallbacks(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNumberOutputCallbacks)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetNumberEventCallbacks(&self, eventflags: u32) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNumberEventCallbacks)(windows_core::Interface::as_raw(self), eventflags, &mut result__).map(|| result__)
}
pub unsafe fn GetQuitLockString(&self, buffer: Option<&mut [u8]>, stringsize: 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).SetQuitLockString)(windows_core::Interface::as_raw(self), string.param().abi()).ok()
}
pub unsafe fn GetQuitLockStringWide(&self, buffer: Option<&mut [u16]>, stringsize: 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::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).SetQuitLockStringWide)(windows_core::Interface::as_raw(self), string.param().abi()).ok()
}
pub unsafe fn SetEventContextCallbacks<P0>(&self, callbacks: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<IDebugEventContextCallbacks>,
{
(windows_core::Interface::vtable(self).SetEventContextCallbacks)(windows_core::Interface::as_raw(self), callbacks.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()
}
}
#[repr(C)]
pub struct IDebugClient7_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub AttachKernel: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR) -> windows_core::HRESULT,
pub GetKernelConnectionOptions: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetKernelConnectionOptions: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR) -> windows_core::HRESULT,
pub StartProcessServer: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR, *const core::ffi::c_void) -> windows_core::HRESULT,
pub ConnectProcessServer: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, *mut u64) -> windows_core::HRESULT,
pub DisconnectProcessServer: unsafe extern "system" fn(*mut core::ffi::c_void, u64) -> windows_core::HRESULT,
pub GetRunningProcessSystemIds: unsafe extern "system" fn(*mut core::ffi::c_void, u64, *mut u32, u32, *mut u32) -> windows_core::HRESULT,
pub GetRunningProcessSystemIdByExecutableName: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PCSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetRunningProcessDescription: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, u32, windows_core::PSTR, u32, *mut u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub AttachProcess: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, u32) -> windows_core::HRESULT,
pub CreateProcessA: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PCSTR, u32) -> windows_core::HRESULT,
pub CreateProcessAndAttach: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PCSTR, u32, u32, u32) -> windows_core::HRESULT,
pub GetProcessOptions: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub AddProcessOptions: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub RemoveProcessOptions: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub SetProcessOptions: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub OpenDumpFile: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR) -> windows_core::HRESULT,
pub WriteDumpFile: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, u32) -> windows_core::HRESULT,
pub ConnectSession: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32) -> windows_core::HRESULT,
pub StartServer: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR) -> windows_core::HRESULT,
pub OutputServers: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR, u32) -> windows_core::HRESULT,
pub TerminateProcesses: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub DetachProcesses: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub EndSession: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetExitCode: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub DispatchCallbacks: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub ExitDispatch: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub CreateClient: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetInputCallbacks: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub SetInputCallbacks: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetOutputCallbacks: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub SetOutputCallbacks: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetOutputMask: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetOutputMask: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetOtherOutputMask: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetOtherOutputMask: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetOutputWidth: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetOutputWidth: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetOutputLinePrefix: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetOutputLinePrefix: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR) -> windows_core::HRESULT,
pub GetIdentity: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub OutputIdentity: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, windows_core::PCSTR) -> windows_core::HRESULT,
pub GetEventCallbacks: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub SetEventCallbacks: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub FlushCallbacks: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub WriteDumpFile2: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, u32, u32, windows_core::PCSTR) -> windows_core::HRESULT,
pub AddDumpInformationFile: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, u32) -> windows_core::HRESULT,
pub EndProcessServer: unsafe extern "system" fn(*mut core::ffi::c_void, u64) -> windows_core::HRESULT,
pub WaitForProcessServerEnd: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub IsKernelDebuggerEnabled: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub TerminateCurrentProcess: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub DetachCurrentProcess: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub AbandonCurrentProcess: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetRunningProcessSystemIdByExecutableNameWide: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PCWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetRunningProcessDescriptionWide: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, u32, windows_core::PWSTR, u32, *mut u32, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub CreateProcessWide: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PCWSTR, u32) -> windows_core::HRESULT,
pub CreateProcessAndAttachWide: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PCWSTR, u32, u32, u32) -> windows_core::HRESULT,
pub OpenDumpFileWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR, u64) -> windows_core::HRESULT,
pub WriteDumpFileWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR, u64, u32, u32, windows_core::PCWSTR) -> windows_core::HRESULT,
pub AddDumpInformationFileWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR, u64, u32) -> windows_core::HRESULT,
pub GetNumberDumpFiles: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetDumpFile: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PSTR, u32, *mut u32, *mut u64, *mut u32) -> windows_core::HRESULT,
pub GetDumpFileWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PWSTR, u32, *mut u32, *mut u64, *mut u32) -> windows_core::HRESULT,
pub AttachKernelWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCWSTR) -> windows_core::HRESULT,
pub GetKernelConnectionOptionsWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetKernelConnectionOptionsWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR) -> windows_core::HRESULT,
pub StartProcessServerWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCWSTR, *const core::ffi::c_void) -> windows_core::HRESULT,
pub ConnectProcessServerWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR, *mut u64) -> windows_core::HRESULT,
pub StartServerWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR) -> windows_core::HRESULT,
pub OutputServersWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCWSTR, u32) -> windows_core::HRESULT,
pub GetOutputCallbacksWide: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub SetOutputCallbacksWide: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetOutputLinePrefixWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetOutputLinePrefixWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR) -> windows_core::HRESULT,
pub GetIdentityWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub OutputIdentityWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, windows_core::PCWSTR) -> windows_core::HRESULT,
pub GetEventCallbacksWide: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub SetEventCallbacksWide: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub CreateProcess2: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PCSTR, *const core::ffi::c_void, u32, windows_core::PCSTR, windows_core::PCSTR) -> windows_core::HRESULT,
pub CreateProcess2Wide: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PCWSTR, *const core::ffi::c_void, u32, windows_core::PCWSTR, windows_core::PCWSTR) -> windows_core::HRESULT,
pub CreateProcessAndAttach2: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PCSTR, *const core::ffi::c_void, u32, windows_core::PCSTR, windows_core::PCSTR, u32, u32) -> windows_core::HRESULT,
pub CreateProcessAndAttach2Wide: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PCWSTR, *const core::ffi::c_void, u32, windows_core::PCWSTR, windows_core::PCWSTR, u32, u32) -> windows_core::HRESULT,
pub PushOutputLinePrefix: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, *mut u64) -> windows_core::HRESULT,
pub PushOutputLinePrefixWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR, *mut u64) -> windows_core::HRESULT,
pub PopOutputLinePrefix: unsafe extern "system" fn(*mut core::ffi::c_void, u64) -> windows_core::HRESULT,
pub GetNumberInputCallbacks: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetNumberOutputCallbacks: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetNumberEventCallbacks: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub GetQuitLockString: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetQuitLockString: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR) -> windows_core::HRESULT,
pub GetQuitLockStringWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetQuitLockStringWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR) -> windows_core::HRESULT,
pub SetEventContextCallbacks: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub SetClientContext: unsafe extern "system" fn(*mut core::ffi::c_void, *const core::ffi::c_void, u32) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IDebugClient8, IDebugClient8_Vtbl, 0xcec43add_6375_469e_83d5_414e4033c19a);
impl core::ops::Deref for IDebugClient8 {
type Target = windows_core::IUnknown;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(IDebugClient8, windows_core::IUnknown);
impl IDebugClient8 {
pub unsafe fn AttachKernel<P0>(&self, flags: u32, connectoptions: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).AttachKernel)(windows_core::Interface::as_raw(self), flags, connectoptions.param().abi()).ok()
}
pub unsafe fn GetKernelConnectionOptions(&self, buffer: Option<&mut [u8]>, optionssize: 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).SetKernelConnectionOptions)(windows_core::Interface::as_raw(self), options.param().abi()).ok()
}
pub unsafe fn StartProcessServer<P0>(&self, flags: u32, options: P0, reserved: Option<*const core::ffi::c_void>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).StartProcessServer)(windows_core::Interface::as_raw(self), flags, options.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::Param<windows_core::PCSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).ConnectProcessServer)(windows_core::Interface::as_raw(self), remoteoptions.param().abi(), &mut result__).map(|| 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: Option<&mut [u32]>, actualcount: 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::Param<windows_core::PCSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRunningProcessSystemIdByExecutableName)(windows_core::Interface::as_raw(self), server, exename.param().abi(), flags, &mut result__).map(|| result__)
}
pub unsafe fn GetRunningProcessDescription(&self, server: u64, systemid: u32, flags: u32, exename: Option<&mut [u8]>, actualexenamesize: Option<*mut u32>, description: Option<&mut [u8]>, actualdescriptionsize: 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).CreateProcessA)(windows_core::Interface::as_raw(self), server, commandline.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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).CreateProcessAndAttach)(windows_core::Interface::as_raw(self), server, commandline.param().abi(), createflags, processid, attachflags).ok()
}
pub unsafe fn GetProcessOptions(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetProcessOptions)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).OpenDumpFile)(windows_core::Interface::as_raw(self), dumpfile.param().abi()).ok()
}
pub unsafe fn WriteDumpFile<P0>(&self, dumpfile: P0, qualifier: u32) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).WriteDumpFile)(windows_core::Interface::as_raw(self), dumpfile.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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).StartServer)(windows_core::Interface::as_raw(self), options.param().abi()).ok()
}
pub unsafe fn OutputServers<P0>(&self, outputcontrol: u32, machine: P0, flags: u32) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).OutputServers)(windows_core::Interface::as_raw(self), outputcontrol, machine.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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetExitCode)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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::Param<IDebugClient>,
{
(windows_core::Interface::vtable(self).ExitDispatch)(windows_core::Interface::as_raw(self), client.param().abi()).ok()
}
pub unsafe fn CreateClient(&self) -> windows_core::Result<IDebugClient> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).CreateClient)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn GetInputCallbacks(&self) -> windows_core::Result<IDebugInputCallbacks> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetInputCallbacks)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn SetInputCallbacks<P0>(&self, callbacks: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<IDebugInputCallbacks>,
{
(windows_core::Interface::vtable(self).SetInputCallbacks)(windows_core::Interface::as_raw(self), callbacks.param().abi()).ok()
}
pub unsafe fn GetOutputCallbacks(&self) -> windows_core::Result<IDebugOutputCallbacks> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetOutputCallbacks)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn SetOutputCallbacks<P0>(&self, callbacks: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<IDebugOutputCallbacks>,
{
(windows_core::Interface::vtable(self).SetOutputCallbacks)(windows_core::Interface::as_raw(self), callbacks.param().abi()).ok()
}
pub unsafe fn GetOutputMask(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetOutputMask)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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::Param<IDebugClient>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetOtherOutputMask)(windows_core::Interface::as_raw(self), client.param().abi(), &mut result__).map(|| result__)
}
pub unsafe fn SetOtherOutputMask<P0>(&self, client: P0, mask: u32) -> windows_core::Result<()>
where
P0: windows_core::Param<IDebugClient>,
{
(windows_core::Interface::vtable(self).SetOtherOutputMask)(windows_core::Interface::as_raw(self), client.param().abi(), mask).ok()
}
pub unsafe fn GetOutputWidth(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetOutputWidth)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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: Option<&mut [u8]>, prefixsize: 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).SetOutputLinePrefix)(windows_core::Interface::as_raw(self), prefix.param().abi()).ok()
}
pub unsafe fn GetIdentity(&self, buffer: Option<&mut [u8]>, identitysize: 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).OutputIdentity)(windows_core::Interface::as_raw(self), outputcontrol, flags, format.param().abi()).ok()
}
pub unsafe fn GetEventCallbacks(&self) -> windows_core::Result<IDebugEventCallbacks> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetEventCallbacks)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn SetEventCallbacks<P0>(&self, callbacks: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<IDebugEventCallbacks>,
{
(windows_core::Interface::vtable(self).SetEventCallbacks)(windows_core::Interface::as_raw(self), callbacks.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::Param<windows_core::PCSTR>,
P1: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).WriteDumpFile2)(windows_core::Interface::as_raw(self), dumpfile.param().abi(), qualifier, formatflags, comment.param().abi()).ok()
}
pub unsafe fn AddDumpInformationFile<P0>(&self, infofile: P0, r#type: u32) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).AddDumpInformationFile)(windows_core::Interface::as_raw(self), infofile.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::Param<windows_core::PCWSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRunningProcessSystemIdByExecutableNameWide)(windows_core::Interface::as_raw(self), server, exename.param().abi(), flags, &mut result__).map(|| result__)
}
pub unsafe fn GetRunningProcessDescriptionWide(&self, server: u64, systemid: u32, flags: u32, exename: Option<&mut [u16]>, actualexenamesize: Option<*mut u32>, description: Option<&mut [u16]>, actualdescriptionsize: 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::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).CreateProcessWide)(windows_core::Interface::as_raw(self), server, commandline.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::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).CreateProcessAndAttachWide)(windows_core::Interface::as_raw(self), server, commandline.param().abi(), createflags, processid, attachflags).ok()
}
pub unsafe fn OpenDumpFileWide<P0>(&self, filename: P0, filehandle: u64) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).OpenDumpFileWide)(windows_core::Interface::as_raw(self), filename.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::Param<windows_core::PCWSTR>,
P1: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).WriteDumpFileWide)(windows_core::Interface::as_raw(self), filename.param().abi(), filehandle, qualifier, formatflags, comment.param().abi()).ok()
}
pub unsafe fn AddDumpInformationFileWide<P0>(&self, filename: P0, filehandle: u64, r#type: u32) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).AddDumpInformationFileWide)(windows_core::Interface::as_raw(self), filename.param().abi(), filehandle, r#type).ok()
}
pub unsafe fn GetNumberDumpFiles(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNumberDumpFiles)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetDumpFile(&self, index: u32, buffer: Option<&mut [u8]>, namesize: Option<*mut u32>, handle: 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: Option<&mut [u16]>, namesize: Option<*mut u32>, handle: 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::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).AttachKernelWide)(windows_core::Interface::as_raw(self), flags, connectoptions.param().abi()).ok()
}
pub unsafe fn GetKernelConnectionOptionsWide(&self, buffer: Option<&mut [u16]>, optionssize: 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::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).SetKernelConnectionOptionsWide)(windows_core::Interface::as_raw(self), options.param().abi()).ok()
}
pub unsafe fn StartProcessServerWide<P0>(&self, flags: u32, options: P0, reserved: Option<*const core::ffi::c_void>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).StartProcessServerWide)(windows_core::Interface::as_raw(self), flags, options.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::Param<windows_core::PCWSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).ConnectProcessServerWide)(windows_core::Interface::as_raw(self), remoteoptions.param().abi(), &mut result__).map(|| result__)
}
pub unsafe fn StartServerWide<P0>(&self, options: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).StartServerWide)(windows_core::Interface::as_raw(self), options.param().abi()).ok()
}
pub unsafe fn OutputServersWide<P0>(&self, outputcontrol: u32, machine: P0, flags: u32) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).OutputServersWide)(windows_core::Interface::as_raw(self), outputcontrol, machine.param().abi(), flags).ok()
}
pub unsafe fn GetOutputCallbacksWide(&self) -> windows_core::Result<IDebugOutputCallbacksWide> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetOutputCallbacksWide)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn SetOutputCallbacksWide<P0>(&self, callbacks: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<IDebugOutputCallbacksWide>,
{
(windows_core::Interface::vtable(self).SetOutputCallbacksWide)(windows_core::Interface::as_raw(self), callbacks.param().abi()).ok()
}
pub unsafe fn GetOutputLinePrefixWide(&self, buffer: Option<&mut [u16]>, prefixsize: 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::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).SetOutputLinePrefixWide)(windows_core::Interface::as_raw(self), prefix.param().abi()).ok()
}
pub unsafe fn GetIdentityWide(&self, buffer: Option<&mut [u16]>, identitysize: 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::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).OutputIdentityWide)(windows_core::Interface::as_raw(self), outputcontrol, flags, format.param().abi()).ok()
}
pub unsafe fn GetEventCallbacksWide(&self) -> windows_core::Result<IDebugEventCallbacksWide> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetEventCallbacksWide)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn SetEventCallbacksWide<P0>(&self, callbacks: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<IDebugEventCallbacksWide>,
{
(windows_core::Interface::vtable(self).SetEventCallbacksWide)(windows_core::Interface::as_raw(self), callbacks.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::Param<windows_core::PCSTR>,
P1: windows_core::Param<windows_core::PCSTR>,
P2: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).CreateProcess2)(windows_core::Interface::as_raw(self), server, commandline.param().abi(), optionsbuffer, optionsbuffersize, initialdirectory.param().abi(), environment.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::Param<windows_core::PCWSTR>,
P1: windows_core::Param<windows_core::PCWSTR>,
P2: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).CreateProcess2Wide)(windows_core::Interface::as_raw(self), server, commandline.param().abi(), optionsbuffer, optionsbuffersize, initialdirectory.param().abi(), environment.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::Param<windows_core::PCSTR>,
P1: windows_core::Param<windows_core::PCSTR>,
P2: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).CreateProcessAndAttach2)(windows_core::Interface::as_raw(self), server, commandline.param().abi(), optionsbuffer, optionsbuffersize, initialdirectory.param().abi(), environment.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::Param<windows_core::PCWSTR>,
P1: windows_core::Param<windows_core::PCWSTR>,
P2: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).CreateProcessAndAttach2Wide)(windows_core::Interface::as_raw(self), server, commandline.param().abi(), optionsbuffer, optionsbuffersize, initialdirectory.param().abi(), environment.param().abi(), processid, attachflags).ok()
}
pub unsafe fn PushOutputLinePrefix<P0>(&self, newprefix: P0) -> windows_core::Result<u64>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).PushOutputLinePrefix)(windows_core::Interface::as_raw(self), newprefix.param().abi(), &mut result__).map(|| result__)
}
pub unsafe fn PushOutputLinePrefixWide<P0>(&self, newprefix: P0) -> windows_core::Result<u64>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).PushOutputLinePrefixWide)(windows_core::Interface::as_raw(self), newprefix.param().abi(), &mut result__).map(|| 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNumberInputCallbacks)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetNumberOutputCallbacks(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNumberOutputCallbacks)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetNumberEventCallbacks(&self, eventflags: u32) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNumberEventCallbacks)(windows_core::Interface::as_raw(self), eventflags, &mut result__).map(|| result__)
}
pub unsafe fn GetQuitLockString(&self, buffer: Option<&mut [u8]>, stringsize: 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).SetQuitLockString)(windows_core::Interface::as_raw(self), string.param().abi()).ok()
}
pub unsafe fn GetQuitLockStringWide(&self, buffer: Option<&mut [u16]>, stringsize: 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::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).SetQuitLockStringWide)(windows_core::Interface::as_raw(self), string.param().abi()).ok()
}
pub unsafe fn SetEventContextCallbacks<P0>(&self, callbacks: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<IDebugEventContextCallbacks>,
{
(windows_core::Interface::vtable(self).SetEventContextCallbacks)(windows_core::Interface::as_raw(self), callbacks.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::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).OpenDumpFileWide2)(windows_core::Interface::as_raw(self), filename.param().abi(), filehandle, alternatearch).ok()
}
}
#[repr(C)]
pub struct IDebugClient8_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub AttachKernel: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR) -> windows_core::HRESULT,
pub GetKernelConnectionOptions: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetKernelConnectionOptions: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR) -> windows_core::HRESULT,
pub StartProcessServer: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR, *const core::ffi::c_void) -> windows_core::HRESULT,
pub ConnectProcessServer: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, *mut u64) -> windows_core::HRESULT,
pub DisconnectProcessServer: unsafe extern "system" fn(*mut core::ffi::c_void, u64) -> windows_core::HRESULT,
pub GetRunningProcessSystemIds: unsafe extern "system" fn(*mut core::ffi::c_void, u64, *mut u32, u32, *mut u32) -> windows_core::HRESULT,
pub GetRunningProcessSystemIdByExecutableName: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PCSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetRunningProcessDescription: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, u32, windows_core::PSTR, u32, *mut u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub AttachProcess: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, u32) -> windows_core::HRESULT,
pub CreateProcessA: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PCSTR, u32) -> windows_core::HRESULT,
pub CreateProcessAndAttach: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PCSTR, u32, u32, u32) -> windows_core::HRESULT,
pub GetProcessOptions: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub AddProcessOptions: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub RemoveProcessOptions: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub SetProcessOptions: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub OpenDumpFile: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR) -> windows_core::HRESULT,
pub WriteDumpFile: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, u32) -> windows_core::HRESULT,
pub ConnectSession: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32) -> windows_core::HRESULT,
pub StartServer: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR) -> windows_core::HRESULT,
pub OutputServers: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR, u32) -> windows_core::HRESULT,
pub TerminateProcesses: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub DetachProcesses: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub EndSession: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetExitCode: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub DispatchCallbacks: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub ExitDispatch: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub CreateClient: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetInputCallbacks: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub SetInputCallbacks: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetOutputCallbacks: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub SetOutputCallbacks: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetOutputMask: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetOutputMask: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetOtherOutputMask: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetOtherOutputMask: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetOutputWidth: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetOutputWidth: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetOutputLinePrefix: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetOutputLinePrefix: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR) -> windows_core::HRESULT,
pub GetIdentity: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub OutputIdentity: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, windows_core::PCSTR) -> windows_core::HRESULT,
pub GetEventCallbacks: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub SetEventCallbacks: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub FlushCallbacks: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub WriteDumpFile2: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, u32, u32, windows_core::PCSTR) -> windows_core::HRESULT,
pub AddDumpInformationFile: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, u32) -> windows_core::HRESULT,
pub EndProcessServer: unsafe extern "system" fn(*mut core::ffi::c_void, u64) -> windows_core::HRESULT,
pub WaitForProcessServerEnd: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub IsKernelDebuggerEnabled: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub TerminateCurrentProcess: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub DetachCurrentProcess: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub AbandonCurrentProcess: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetRunningProcessSystemIdByExecutableNameWide: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PCWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetRunningProcessDescriptionWide: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, u32, windows_core::PWSTR, u32, *mut u32, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub CreateProcessWide: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PCWSTR, u32) -> windows_core::HRESULT,
pub CreateProcessAndAttachWide: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PCWSTR, u32, u32, u32) -> windows_core::HRESULT,
pub OpenDumpFileWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR, u64) -> windows_core::HRESULT,
pub WriteDumpFileWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR, u64, u32, u32, windows_core::PCWSTR) -> windows_core::HRESULT,
pub AddDumpInformationFileWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR, u64, u32) -> windows_core::HRESULT,
pub GetNumberDumpFiles: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetDumpFile: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PSTR, u32, *mut u32, *mut u64, *mut u32) -> windows_core::HRESULT,
pub GetDumpFileWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PWSTR, u32, *mut u32, *mut u64, *mut u32) -> windows_core::HRESULT,
pub AttachKernelWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCWSTR) -> windows_core::HRESULT,
pub GetKernelConnectionOptionsWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetKernelConnectionOptionsWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR) -> windows_core::HRESULT,
pub StartProcessServerWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCWSTR, *const core::ffi::c_void) -> windows_core::HRESULT,
pub ConnectProcessServerWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR, *mut u64) -> windows_core::HRESULT,
pub StartServerWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR) -> windows_core::HRESULT,
pub OutputServersWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCWSTR, u32) -> windows_core::HRESULT,
pub GetOutputCallbacksWide: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub SetOutputCallbacksWide: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetOutputLinePrefixWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetOutputLinePrefixWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR) -> windows_core::HRESULT,
pub GetIdentityWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub OutputIdentityWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, windows_core::PCWSTR) -> windows_core::HRESULT,
pub GetEventCallbacksWide: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub SetEventCallbacksWide: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub CreateProcess2: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PCSTR, *const core::ffi::c_void, u32, windows_core::PCSTR, windows_core::PCSTR) -> windows_core::HRESULT,
pub CreateProcess2Wide: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PCWSTR, *const core::ffi::c_void, u32, windows_core::PCWSTR, windows_core::PCWSTR) -> windows_core::HRESULT,
pub CreateProcessAndAttach2: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PCSTR, *const core::ffi::c_void, u32, windows_core::PCSTR, windows_core::PCSTR, u32, u32) -> windows_core::HRESULT,
pub CreateProcessAndAttach2Wide: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PCWSTR, *const core::ffi::c_void, u32, windows_core::PCWSTR, windows_core::PCWSTR, u32, u32) -> windows_core::HRESULT,
pub PushOutputLinePrefix: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, *mut u64) -> windows_core::HRESULT,
pub PushOutputLinePrefixWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR, *mut u64) -> windows_core::HRESULT,
pub PopOutputLinePrefix: unsafe extern "system" fn(*mut core::ffi::c_void, u64) -> windows_core::HRESULT,
pub GetNumberInputCallbacks: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetNumberOutputCallbacks: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetNumberEventCallbacks: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub GetQuitLockString: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetQuitLockString: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR) -> windows_core::HRESULT,
pub GetQuitLockStringWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetQuitLockStringWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR) -> windows_core::HRESULT,
pub SetEventContextCallbacks: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub SetClientContext: unsafe extern "system" fn(*mut core::ffi::c_void, *const core::ffi::c_void, u32) -> windows_core::HRESULT,
pub OpenDumpFileWide2: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR, u64, u32) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IDebugControl, IDebugControl_Vtbl, 0x5182e668_105e_416e_ad92_24ef800424ba);
impl core::ops::Deref for IDebugControl {
type Target = windows_core::IUnknown;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetInterruptTimeout)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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()
}
pub unsafe fn GetLogFile(&self, buffer: Option<&mut [u8]>, filesize: 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()
}
pub unsafe fn OpenLogFile<P0, P1>(&self, file: P0, append: P1) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
P1: windows_core::Param<super::super::super::super::Foundation::BOOL>,
{
(windows_core::Interface::vtable(self).OpenLogFile)(windows_core::Interface::as_raw(self), file.param().abi(), append.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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetLogMask)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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: 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).ReturnInput)(windows_core::Interface::as_raw(self), buffer.param().abi()).ok()
}
pub unsafe fn Output<P0>(&self, mask: u32, format: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).Output)(windows_core::Interface::as_raw(self), mask, format.param().abi()).ok()
}
pub unsafe fn OutputVaList<P0>(&self, mask: u32, format: P0, args: *const i8) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).OutputVaList)(windows_core::Interface::as_raw(self), mask, format.param().abi(), args).ok()
}
pub unsafe fn ControlledOutput<P0>(&self, outputcontrol: u32, mask: u32, format: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).ControlledOutput)(windows_core::Interface::as_raw(self), outputcontrol, mask, format.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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).ControlledOutputVaList)(windows_core::Interface::as_raw(self), outputcontrol, mask, format.param().abi(), args).ok()
}
pub unsafe fn OutputPrompt<P0>(&self, outputcontrol: u32, format: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).OutputPrompt)(windows_core::Interface::as_raw(self), outputcontrol, format.param().abi()).ok()
}
pub unsafe fn OutputPromptVaList<P0>(&self, outputcontrol: u32, format: P0, args: *const i8) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).OutputPromptVaList)(windows_core::Interface::as_raw(self), outputcontrol, format.param().abi(), args).ok()
}
pub unsafe fn GetPromptText(&self, buffer: Option<&mut [u8]>, textsize: 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNotifyEventHandle)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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::Param<windows_core::PCSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Assemble)(windows_core::Interface::as_raw(self), offset, instr.param().abi(), &mut result__).map(|| result__)
}
pub unsafe fn Disassemble(&self, offset: u64, flags: u32, buffer: Option<&mut [u8]>, disassemblysize: 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetDisassembleEffectiveOffset)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn OutputDisassembly(&self, outputcontrol: u32, offset: u64, flags: u32) -> windows_core::Result<u64> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).OutputDisassembly)(windows_core::Interface::as_raw(self), outputcontrol, offset, flags, &mut result__).map(|| result__)
}
pub unsafe fn OutputDisassemblyLines(&self, outputcontrol: u32, previouslines: u32, offset: u64, flags: u32, offsetline: Option<*mut u32>, startoffset: Option<*mut u64>, endoffset: Option<*mut u64>, lineoffsets: 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNearInstruction)(windows_core::Interface::as_raw(self), offset, delta, &mut result__).map(|| result__)
}
pub unsafe fn GetStackTrace(&self, frameoffset: u64, stackoffset: u64, instructionoffset: u64, frames: &mut [DEBUG_STACK_FRAME], framesfilled: 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetReturnOffset)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn OutputStackTrace(&self, outputcontrol: u32, frames: 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetActualProcessorType)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetExecutingProcessorType(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetExecutingProcessorType)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetNumberPossibleExecutingProcessorTypes(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNumberPossibleExecutingProcessorTypes)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNumberProcessors)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetSystemVersion(&self, platformid: *mut u32, major: *mut u32, minor: *mut u32, servicepackstring: Option<&mut [u8]>, servicepackstringused: Option<*mut u32>, servicepacknumber: *mut u32, buildstring: Option<&mut [u8]>, buildstringused: 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetPageSize)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNumberSupportedProcessorTypes)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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: Option<&mut [u8]>, fullnamesize: Option<*mut u32>, abbrevnamebuffer: Option<&mut [u8]>, abbrevnamesize: 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetEffectiveProcessorType)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetExecutionStatus)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCodeLevel)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetEngineOptions)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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: Option<&mut [u8]>, macrosize: 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).SetTextMacro)(windows_core::Interface::as_raw(self), slot, r#macro.param().abi()).ok()
}
pub unsafe fn GetRadix(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRadix)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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()
}
pub unsafe fn Evaluate<P0>(&self, expression: P0, desiredtype: u32, value: *mut DEBUG_VALUE, remainderindex: Option<*mut u32>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).Evaluate)(windows_core::Interface::as_raw(self), expression.param().abi(), desiredtype, value, core::mem::transmute(remainderindex.unwrap_or(std::ptr::null_mut()))).ok()
}
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()
}
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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).Execute)(windows_core::Interface::as_raw(self), outputcontrol, command.param().abi(), flags).ok()
}
pub unsafe fn ExecuteCommandFile<P0>(&self, outputcontrol: u32, commandfile: P0, flags: u32) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).ExecuteCommandFile)(windows_core::Interface::as_raw(self), outputcontrol, commandfile.param().abi(), flags).ok()
}
pub unsafe fn GetNumberBreakpoints(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNumberBreakpoints)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetBreakpointByIndex(&self, index: u32) -> windows_core::Result<IDebugBreakpoint> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetBreakpointByIndex)(windows_core::Interface::as_raw(self), index, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn GetBreakpointById(&self, id: u32) -> windows_core::Result<IDebugBreakpoint> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetBreakpointById)(windows_core::Interface::as_raw(self), id, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn GetBreakpointParameters(&self, count: u32, ids: 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).AddBreakpoint)(windows_core::Interface::as_raw(self), r#type, desiredid, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn RemoveBreakpoint<P0>(&self, bp: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<IDebugBreakpoint>,
{
(windows_core::Interface::vtable(self).RemoveBreakpoint)(windows_core::Interface::as_raw(self), bp.param().abi()).ok()
}
pub unsafe fn AddExtension<P0>(&self, path: P0, flags: u32) -> windows_core::Result<u64>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).AddExtension)(windows_core::Interface::as_raw(self), path.param().abi(), flags, &mut result__).map(|| 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::Param<windows_core::PCSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetExtensionByPath)(windows_core::Interface::as_raw(self), path.param().abi(), &mut result__).map(|| result__)
}
pub unsafe fn CallExtension<P0, P1>(&self, handle: u64, function: P0, arguments: P1) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
P1: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).CallExtension)(windows_core::Interface::as_raw(self), handle, function.param().abi(), arguments.param().abi()).ok()
}
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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).GetExtensionFunction)(windows_core::Interface::as_raw(self), handle, funcname.param().abi(), function).ok()
}
#[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()
}
#[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: Option<&mut [u8]>, textsize: 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: Option<&mut [u8]>, commandsize: 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).SetEventFilterCommand)(windows_core::Interface::as_raw(self), index, command.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: Option<&mut [u8]>, argumentsize: 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).SetSpecificFilterArgument)(windows_core::Interface::as_raw(self), index, argument.param().abi()).ok()
}
pub unsafe fn GetExceptionFilterParameters(&self, count: u32, codes: 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: Option<&mut [u8]>, commandsize: 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).SetExceptionFilterSecondCommand)(windows_core::Interface::as_raw(self), index, command.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: Option<*mut core::ffi::c_void>, extrainformationsize: u32, extrainformationused: Option<*mut u32>, description: Option<&mut [u8]>, descriptionused: 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()
}
}
#[repr(C)]
pub struct IDebugControl_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetInterrupt: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub SetInterrupt: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetInterruptTimeout: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetInterruptTimeout: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetLogFile: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PSTR, u32, *mut u32, *mut super::super::super::super::Foundation::BOOL) -> windows_core::HRESULT,
pub OpenLogFile: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, super::super::super::super::Foundation::BOOL) -> windows_core::HRESULT,
pub CloseLogFile: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetLogMask: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetLogMask: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub Input: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub ReturnInput: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR) -> windows_core::HRESULT,
pub Output: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR) -> windows_core::HRESULT,
pub OutputVaList: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR, *const i8) -> windows_core::HRESULT,
pub ControlledOutput: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, windows_core::PCSTR) -> windows_core::HRESULT,
pub ControlledOutputVaList: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, windows_core::PCSTR, *const i8) -> windows_core::HRESULT,
pub OutputPrompt: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR) -> windows_core::HRESULT,
pub OutputPromptVaList: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR, *const i8) -> windows_core::HRESULT,
pub GetPromptText: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub OutputCurrentState: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32) -> windows_core::HRESULT,
pub OutputVersionInformation: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetNotifyEventHandle: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u64) -> windows_core::HRESULT,
pub SetNotifyEventHandle: unsafe extern "system" fn(*mut core::ffi::c_void, u64) -> windows_core::HRESULT,
pub Assemble: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PCSTR, *mut u64) -> windows_core::HRESULT,
pub Disassemble: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, windows_core::PSTR, u32, *mut u32, *mut u64) -> windows_core::HRESULT,
pub GetDisassembleEffectiveOffset: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u64) -> windows_core::HRESULT,
pub OutputDisassembly: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u64, u32, *mut u64) -> windows_core::HRESULT,
pub OutputDisassemblyLines: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, u32, u64, u32, *mut u32, *mut u64, *mut u64, *mut u64) -> windows_core::HRESULT,
pub GetNearInstruction: unsafe extern "system" fn(*mut core::ffi::c_void, u64, i32, *mut u64) -> windows_core::HRESULT,
pub GetStackTrace: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u64, u64, *mut DEBUG_STACK_FRAME, u32, *mut u32) -> windows_core::HRESULT,
pub GetReturnOffset: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u64) -> windows_core::HRESULT,
pub OutputStackTrace: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *const DEBUG_STACK_FRAME, u32, u32) -> windows_core::HRESULT,
pub GetDebuggeeType: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32, *mut u32) -> windows_core::HRESULT,
pub GetActualProcessorType: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetExecutingProcessorType: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetNumberPossibleExecutingProcessorTypes: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetPossibleExecutingProcessorTypes: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, *mut u32) -> windows_core::HRESULT,
pub GetNumberProcessors: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetSystemVersion: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32, *mut u32, *mut u32, windows_core::PSTR, u32, *mut u32, *mut u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetPageSize: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub IsPointer64Bit: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub ReadBugCheckData: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32, *mut u64, *mut u64, *mut u64, *mut u64) -> windows_core::HRESULT,
pub GetNumberSupportedProcessorTypes: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetSupportedProcessorTypes: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, *mut u32) -> windows_core::HRESULT,
pub GetProcessorTypeNames: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PSTR, u32, *mut u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetEffectiveProcessorType: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetEffectiveProcessorType: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetExecutionStatus: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetExecutionStatus: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetCodeLevel: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetCodeLevel: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetEngineOptions: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub AddEngineOptions: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub RemoveEngineOptions: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub SetEngineOptions: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetSystemErrorControl: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32, *mut u32) -> windows_core::HRESULT,
pub SetSystemErrorControl: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32) -> windows_core::HRESULT,
pub GetTextMacro: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetTextMacro: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR) -> windows_core::HRESULT,
pub GetRadix: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetRadix: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub Evaluate: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, u32, *mut DEBUG_VALUE, *mut u32) -> windows_core::HRESULT,
pub CoerceValue: unsafe extern "system" fn(*mut core::ffi::c_void, *const DEBUG_VALUE, u32, *mut DEBUG_VALUE) -> windows_core::HRESULT,
pub CoerceValues: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *const DEBUG_VALUE, *const u32, *mut DEBUG_VALUE) -> windows_core::HRESULT,
pub Execute: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR, u32) -> windows_core::HRESULT,
pub ExecuteCommandFile: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR, u32) -> windows_core::HRESULT,
pub GetNumberBreakpoints: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetBreakpointByIndex: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetBreakpointById: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetBreakpointParameters: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *const u32, u32, *mut DEBUG_BREAKPOINT_PARAMETERS) -> windows_core::HRESULT,
pub AddBreakpoint: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub RemoveBreakpoint: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub AddExtension: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, u32, *mut u64) -> windows_core::HRESULT,
pub RemoveExtension: unsafe extern "system" fn(*mut core::ffi::c_void, u64) -> windows_core::HRESULT,
pub GetExtensionByPath: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, *mut u64) -> windows_core::HRESULT,
pub CallExtension: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PCSTR, windows_core::PCSTR) -> windows_core::HRESULT,
pub GetExtensionFunction: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PCSTR, *mut super::super::super::super::Foundation::FARPROC) -> windows_core::HRESULT,
#[cfg(feature = "Win32_System_Kernel")]
pub GetWindbgExtensionApis32: unsafe extern "system" fn(*mut core::ffi::c_void, *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(*mut core::ffi::c_void, *mut WINDBG_EXTENSION_APIS64) -> windows_core::HRESULT,
#[cfg(not(feature = "Win32_System_Kernel"))]
GetWindbgExtensionApis64: usize,
pub GetNumberEventFilters: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32, *mut u32, *mut u32) -> windows_core::HRESULT,
pub GetEventFilterText: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetEventFilterCommand: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetEventFilterCommand: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR) -> windows_core::HRESULT,
pub GetSpecificFilterParameters: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, *mut DEBUG_SPECIFIC_FILTER_PARAMETERS) -> windows_core::HRESULT,
pub SetSpecificFilterParameters: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, *const DEBUG_SPECIFIC_FILTER_PARAMETERS) -> windows_core::HRESULT,
pub GetSpecificFilterArgument: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetSpecificFilterArgument: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR) -> windows_core::HRESULT,
pub GetExceptionFilterParameters: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *const u32, u32, *mut DEBUG_EXCEPTION_FILTER_PARAMETERS) -> windows_core::HRESULT,
pub SetExceptionFilterParameters: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *const DEBUG_EXCEPTION_FILTER_PARAMETERS) -> windows_core::HRESULT,
pub GetExceptionFilterSecondCommand: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetExceptionFilterSecondCommand: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR) -> windows_core::HRESULT,
pub WaitForEvent: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32) -> windows_core::HRESULT,
pub GetLastEventInformation: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32, *mut u32, *mut u32, *mut core::ffi::c_void, u32, *mut u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IDebugControl2, IDebugControl2_Vtbl, 0xd4366723_44df_4bed_8c7e_4c05424f4588);
impl core::ops::Deref for IDebugControl2 {
type Target = windows_core::IUnknown;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetInterruptTimeout)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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()
}
pub unsafe fn GetLogFile(&self, buffer: Option<&mut [u8]>, filesize: 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()
}
pub unsafe fn OpenLogFile<P0, P1>(&self, file: P0, append: P1) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
P1: windows_core::Param<super::super::super::super::Foundation::BOOL>,
{
(windows_core::Interface::vtable(self).OpenLogFile)(windows_core::Interface::as_raw(self), file.param().abi(), append.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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetLogMask)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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: 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).ReturnInput)(windows_core::Interface::as_raw(self), buffer.param().abi()).ok()
}
pub unsafe fn Output<P0>(&self, mask: u32, format: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).Output)(windows_core::Interface::as_raw(self), mask, format.param().abi()).ok()
}
pub unsafe fn OutputVaList<P0>(&self, mask: u32, format: P0, args: *const i8) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).OutputVaList)(windows_core::Interface::as_raw(self), mask, format.param().abi(), args).ok()
}
pub unsafe fn ControlledOutput<P0>(&self, outputcontrol: u32, mask: u32, format: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).ControlledOutput)(windows_core::Interface::as_raw(self), outputcontrol, mask, format.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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).ControlledOutputVaList)(windows_core::Interface::as_raw(self), outputcontrol, mask, format.param().abi(), args).ok()
}
pub unsafe fn OutputPrompt<P0>(&self, outputcontrol: u32, format: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).OutputPrompt)(windows_core::Interface::as_raw(self), outputcontrol, format.param().abi()).ok()
}
pub unsafe fn OutputPromptVaList<P0>(&self, outputcontrol: u32, format: P0, args: *const i8) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).OutputPromptVaList)(windows_core::Interface::as_raw(self), outputcontrol, format.param().abi(), args).ok()
}
pub unsafe fn GetPromptText(&self, buffer: Option<&mut [u8]>, textsize: 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNotifyEventHandle)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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::Param<windows_core::PCSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Assemble)(windows_core::Interface::as_raw(self), offset, instr.param().abi(), &mut result__).map(|| result__)
}
pub unsafe fn Disassemble(&self, offset: u64, flags: u32, buffer: Option<&mut [u8]>, disassemblysize: 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetDisassembleEffectiveOffset)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn OutputDisassembly(&self, outputcontrol: u32, offset: u64, flags: u32) -> windows_core::Result<u64> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).OutputDisassembly)(windows_core::Interface::as_raw(self), outputcontrol, offset, flags, &mut result__).map(|| result__)
}
pub unsafe fn OutputDisassemblyLines(&self, outputcontrol: u32, previouslines: u32, offset: u64, flags: u32, offsetline: Option<*mut u32>, startoffset: Option<*mut u64>, endoffset: Option<*mut u64>, lineoffsets: 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNearInstruction)(windows_core::Interface::as_raw(self), offset, delta, &mut result__).map(|| result__)
}
pub unsafe fn GetStackTrace(&self, frameoffset: u64, stackoffset: u64, instructionoffset: u64, frames: &mut [DEBUG_STACK_FRAME], framesfilled: 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetReturnOffset)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn OutputStackTrace(&self, outputcontrol: u32, frames: 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetActualProcessorType)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetExecutingProcessorType(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetExecutingProcessorType)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetNumberPossibleExecutingProcessorTypes(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNumberPossibleExecutingProcessorTypes)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNumberProcessors)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetSystemVersion(&self, platformid: *mut u32, major: *mut u32, minor: *mut u32, servicepackstring: Option<&mut [u8]>, servicepackstringused: Option<*mut u32>, servicepacknumber: *mut u32, buildstring: Option<&mut [u8]>, buildstringused: 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetPageSize)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNumberSupportedProcessorTypes)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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: Option<&mut [u8]>, fullnamesize: Option<*mut u32>, abbrevnamebuffer: Option<&mut [u8]>, abbrevnamesize: 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetEffectiveProcessorType)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetExecutionStatus)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCodeLevel)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetEngineOptions)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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: Option<&mut [u8]>, macrosize: 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).SetTextMacro)(windows_core::Interface::as_raw(self), slot, r#macro.param().abi()).ok()
}
pub unsafe fn GetRadix(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRadix)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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()
}
pub unsafe fn Evaluate<P0>(&self, expression: P0, desiredtype: u32, value: *mut DEBUG_VALUE, remainderindex: Option<*mut u32>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).Evaluate)(windows_core::Interface::as_raw(self), expression.param().abi(), desiredtype, value, core::mem::transmute(remainderindex.unwrap_or(std::ptr::null_mut()))).ok()
}
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()
}
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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).Execute)(windows_core::Interface::as_raw(self), outputcontrol, command.param().abi(), flags).ok()
}
pub unsafe fn ExecuteCommandFile<P0>(&self, outputcontrol: u32, commandfile: P0, flags: u32) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).ExecuteCommandFile)(windows_core::Interface::as_raw(self), outputcontrol, commandfile.param().abi(), flags).ok()
}
pub unsafe fn GetNumberBreakpoints(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNumberBreakpoints)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetBreakpointByIndex(&self, index: u32) -> windows_core::Result<IDebugBreakpoint> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetBreakpointByIndex)(windows_core::Interface::as_raw(self), index, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn GetBreakpointById(&self, id: u32) -> windows_core::Result<IDebugBreakpoint> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetBreakpointById)(windows_core::Interface::as_raw(self), id, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn GetBreakpointParameters(&self, count: u32, ids: 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).AddBreakpoint)(windows_core::Interface::as_raw(self), r#type, desiredid, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn RemoveBreakpoint<P0>(&self, bp: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<IDebugBreakpoint>,
{
(windows_core::Interface::vtable(self).RemoveBreakpoint)(windows_core::Interface::as_raw(self), bp.param().abi()).ok()
}
pub unsafe fn AddExtension<P0>(&self, path: P0, flags: u32) -> windows_core::Result<u64>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).AddExtension)(windows_core::Interface::as_raw(self), path.param().abi(), flags, &mut result__).map(|| 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::Param<windows_core::PCSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetExtensionByPath)(windows_core::Interface::as_raw(self), path.param().abi(), &mut result__).map(|| result__)
}
pub unsafe fn CallExtension<P0, P1>(&self, handle: u64, function: P0, arguments: P1) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
P1: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).CallExtension)(windows_core::Interface::as_raw(self), handle, function.param().abi(), arguments.param().abi()).ok()
}
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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).GetExtensionFunction)(windows_core::Interface::as_raw(self), handle, funcname.param().abi(), function).ok()
}
#[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()
}
#[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: Option<&mut [u8]>, textsize: 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: Option<&mut [u8]>, commandsize: 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).SetEventFilterCommand)(windows_core::Interface::as_raw(self), index, command.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: Option<&mut [u8]>, argumentsize: 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).SetSpecificFilterArgument)(windows_core::Interface::as_raw(self), index, argument.param().abi()).ok()
}
pub unsafe fn GetExceptionFilterParameters(&self, count: u32, codes: 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: Option<&mut [u8]>, commandsize: 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).SetExceptionFilterSecondCommand)(windows_core::Interface::as_raw(self), index, command.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: Option<*mut core::ffi::c_void>, extrainformationsize: u32, extrainformationused: Option<*mut u32>, description: Option<&mut [u8]>, descriptionused: 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCurrentTimeDate)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetCurrentSystemUpTime(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCurrentSystemUpTime)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetDumpFormatFlags(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetDumpFormatFlags)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetNumberTextReplacements(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNumberTextReplacements)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetTextReplacement<P0>(&self, srctext: P0, index: u32, srcbuffer: Option<&mut [u8]>, srcsize: Option<*mut u32>, dstbuffer: Option<&mut [u8]>, dstsize: Option<*mut u32>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).GetTextReplacement)(
windows_core::Interface::as_raw(self),
srctext.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::Param<windows_core::PCSTR>,
P1: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).SetTextReplacement)(windows_core::Interface::as_raw(self), srctext.param().abi(), dsttext.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()
}
}
#[repr(C)]
pub struct IDebugControl2_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetInterrupt: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub SetInterrupt: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetInterruptTimeout: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetInterruptTimeout: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetLogFile: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PSTR, u32, *mut u32, *mut super::super::super::super::Foundation::BOOL) -> windows_core::HRESULT,
pub OpenLogFile: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, super::super::super::super::Foundation::BOOL) -> windows_core::HRESULT,
pub CloseLogFile: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetLogMask: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetLogMask: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub Input: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub ReturnInput: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR) -> windows_core::HRESULT,
pub Output: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR) -> windows_core::HRESULT,
pub OutputVaList: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR, *const i8) -> windows_core::HRESULT,
pub ControlledOutput: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, windows_core::PCSTR) -> windows_core::HRESULT,
pub ControlledOutputVaList: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, windows_core::PCSTR, *const i8) -> windows_core::HRESULT,
pub OutputPrompt: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR) -> windows_core::HRESULT,
pub OutputPromptVaList: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR, *const i8) -> windows_core::HRESULT,
pub GetPromptText: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub OutputCurrentState: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32) -> windows_core::HRESULT,
pub OutputVersionInformation: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetNotifyEventHandle: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u64) -> windows_core::HRESULT,
pub SetNotifyEventHandle: unsafe extern "system" fn(*mut core::ffi::c_void, u64) -> windows_core::HRESULT,
pub Assemble: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PCSTR, *mut u64) -> windows_core::HRESULT,
pub Disassemble: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, windows_core::PSTR, u32, *mut u32, *mut u64) -> windows_core::HRESULT,
pub GetDisassembleEffectiveOffset: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u64) -> windows_core::HRESULT,
pub OutputDisassembly: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u64, u32, *mut u64) -> windows_core::HRESULT,
pub OutputDisassemblyLines: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, u32, u64, u32, *mut u32, *mut u64, *mut u64, *mut u64) -> windows_core::HRESULT,
pub GetNearInstruction: unsafe extern "system" fn(*mut core::ffi::c_void, u64, i32, *mut u64) -> windows_core::HRESULT,
pub GetStackTrace: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u64, u64, *mut DEBUG_STACK_FRAME, u32, *mut u32) -> windows_core::HRESULT,
pub GetReturnOffset: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u64) -> windows_core::HRESULT,
pub OutputStackTrace: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *const DEBUG_STACK_FRAME, u32, u32) -> windows_core::HRESULT,
pub GetDebuggeeType: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32, *mut u32) -> windows_core::HRESULT,
pub GetActualProcessorType: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetExecutingProcessorType: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetNumberPossibleExecutingProcessorTypes: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetPossibleExecutingProcessorTypes: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, *mut u32) -> windows_core::HRESULT,
pub GetNumberProcessors: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetSystemVersion: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32, *mut u32, *mut u32, windows_core::PSTR, u32, *mut u32, *mut u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetPageSize: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub IsPointer64Bit: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub ReadBugCheckData: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32, *mut u64, *mut u64, *mut u64, *mut u64) -> windows_core::HRESULT,
pub GetNumberSupportedProcessorTypes: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetSupportedProcessorTypes: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, *mut u32) -> windows_core::HRESULT,
pub GetProcessorTypeNames: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PSTR, u32, *mut u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetEffectiveProcessorType: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetEffectiveProcessorType: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetExecutionStatus: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetExecutionStatus: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetCodeLevel: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetCodeLevel: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetEngineOptions: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub AddEngineOptions: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub RemoveEngineOptions: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub SetEngineOptions: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetSystemErrorControl: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32, *mut u32) -> windows_core::HRESULT,
pub SetSystemErrorControl: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32) -> windows_core::HRESULT,
pub GetTextMacro: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetTextMacro: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR) -> windows_core::HRESULT,
pub GetRadix: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetRadix: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub Evaluate: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, u32, *mut DEBUG_VALUE, *mut u32) -> windows_core::HRESULT,
pub CoerceValue: unsafe extern "system" fn(*mut core::ffi::c_void, *const DEBUG_VALUE, u32, *mut DEBUG_VALUE) -> windows_core::HRESULT,
pub CoerceValues: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *const DEBUG_VALUE, *const u32, *mut DEBUG_VALUE) -> windows_core::HRESULT,
pub Execute: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR, u32) -> windows_core::HRESULT,
pub ExecuteCommandFile: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR, u32) -> windows_core::HRESULT,
pub GetNumberBreakpoints: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetBreakpointByIndex: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetBreakpointById: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetBreakpointParameters: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *const u32, u32, *mut DEBUG_BREAKPOINT_PARAMETERS) -> windows_core::HRESULT,
pub AddBreakpoint: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub RemoveBreakpoint: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub AddExtension: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, u32, *mut u64) -> windows_core::HRESULT,
pub RemoveExtension: unsafe extern "system" fn(*mut core::ffi::c_void, u64) -> windows_core::HRESULT,
pub GetExtensionByPath: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, *mut u64) -> windows_core::HRESULT,
pub CallExtension: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PCSTR, windows_core::PCSTR) -> windows_core::HRESULT,
pub GetExtensionFunction: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PCSTR, *mut super::super::super::super::Foundation::FARPROC) -> windows_core::HRESULT,
#[cfg(feature = "Win32_System_Kernel")]
pub GetWindbgExtensionApis32: unsafe extern "system" fn(*mut core::ffi::c_void, *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(*mut core::ffi::c_void, *mut WINDBG_EXTENSION_APIS64) -> windows_core::HRESULT,
#[cfg(not(feature = "Win32_System_Kernel"))]
GetWindbgExtensionApis64: usize,
pub GetNumberEventFilters: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32, *mut u32, *mut u32) -> windows_core::HRESULT,
pub GetEventFilterText: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetEventFilterCommand: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetEventFilterCommand: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR) -> windows_core::HRESULT,
pub GetSpecificFilterParameters: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, *mut DEBUG_SPECIFIC_FILTER_PARAMETERS) -> windows_core::HRESULT,
pub SetSpecificFilterParameters: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, *const DEBUG_SPECIFIC_FILTER_PARAMETERS) -> windows_core::HRESULT,
pub GetSpecificFilterArgument: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetSpecificFilterArgument: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR) -> windows_core::HRESULT,
pub GetExceptionFilterParameters: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *const u32, u32, *mut DEBUG_EXCEPTION_FILTER_PARAMETERS) -> windows_core::HRESULT,
pub SetExceptionFilterParameters: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *const DEBUG_EXCEPTION_FILTER_PARAMETERS) -> windows_core::HRESULT,
pub GetExceptionFilterSecondCommand: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetExceptionFilterSecondCommand: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR) -> windows_core::HRESULT,
pub WaitForEvent: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32) -> windows_core::HRESULT,
pub GetLastEventInformation: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32, *mut u32, *mut u32, *mut core::ffi::c_void, u32, *mut u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetCurrentTimeDate: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetCurrentSystemUpTime: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetDumpFormatFlags: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetNumberTextReplacements: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetTextReplacement: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, u32, windows_core::PSTR, u32, *mut u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetTextReplacement: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, windows_core::PCSTR) -> windows_core::HRESULT,
pub RemoveTextReplacements: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub OutputTextReplacements: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IDebugControl3, IDebugControl3_Vtbl, 0x7df74a86_b03f_407f_90ab_a20dadcead08);
impl core::ops::Deref for IDebugControl3 {
type Target = windows_core::IUnknown;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetInterruptTimeout)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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()
}
pub unsafe fn GetLogFile(&self, buffer: Option<&mut [u8]>, filesize: 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()
}
pub unsafe fn OpenLogFile<P0, P1>(&self, file: P0, append: P1) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
P1: windows_core::Param<super::super::super::super::Foundation::BOOL>,
{
(windows_core::Interface::vtable(self).OpenLogFile)(windows_core::Interface::as_raw(self), file.param().abi(), append.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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetLogMask)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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: 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).ReturnInput)(windows_core::Interface::as_raw(self), buffer.param().abi()).ok()
}
pub unsafe fn Output<P0>(&self, mask: u32, format: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).Output)(windows_core::Interface::as_raw(self), mask, format.param().abi()).ok()
}
pub unsafe fn OutputVaList<P0>(&self, mask: u32, format: P0, args: *const i8) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).OutputVaList)(windows_core::Interface::as_raw(self), mask, format.param().abi(), args).ok()
}
pub unsafe fn ControlledOutput<P0>(&self, outputcontrol: u32, mask: u32, format: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).ControlledOutput)(windows_core::Interface::as_raw(self), outputcontrol, mask, format.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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).ControlledOutputVaList)(windows_core::Interface::as_raw(self), outputcontrol, mask, format.param().abi(), args).ok()
}
pub unsafe fn OutputPrompt<P0>(&self, outputcontrol: u32, format: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).OutputPrompt)(windows_core::Interface::as_raw(self), outputcontrol, format.param().abi()).ok()
}
pub unsafe fn OutputPromptVaList<P0>(&self, outputcontrol: u32, format: P0, args: *const i8) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).OutputPromptVaList)(windows_core::Interface::as_raw(self), outputcontrol, format.param().abi(), args).ok()
}
pub unsafe fn GetPromptText(&self, buffer: Option<&mut [u8]>, textsize: 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNotifyEventHandle)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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::Param<windows_core::PCSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Assemble)(windows_core::Interface::as_raw(self), offset, instr.param().abi(), &mut result__).map(|| result__)
}
pub unsafe fn Disassemble(&self, offset: u64, flags: u32, buffer: Option<&mut [u8]>, disassemblysize: 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetDisassembleEffectiveOffset)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn OutputDisassembly(&self, outputcontrol: u32, offset: u64, flags: u32) -> windows_core::Result<u64> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).OutputDisassembly)(windows_core::Interface::as_raw(self), outputcontrol, offset, flags, &mut result__).map(|| result__)
}
pub unsafe fn OutputDisassemblyLines(&self, outputcontrol: u32, previouslines: u32, offset: u64, flags: u32, offsetline: Option<*mut u32>, startoffset: Option<*mut u64>, endoffset: Option<*mut u64>, lineoffsets: 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNearInstruction)(windows_core::Interface::as_raw(self), offset, delta, &mut result__).map(|| result__)
}
pub unsafe fn GetStackTrace(&self, frameoffset: u64, stackoffset: u64, instructionoffset: u64, frames: &mut [DEBUG_STACK_FRAME], framesfilled: 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetReturnOffset)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn OutputStackTrace(&self, outputcontrol: u32, frames: 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetActualProcessorType)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetExecutingProcessorType(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetExecutingProcessorType)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetNumberPossibleExecutingProcessorTypes(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNumberPossibleExecutingProcessorTypes)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNumberProcessors)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetSystemVersion(&self, platformid: *mut u32, major: *mut u32, minor: *mut u32, servicepackstring: Option<&mut [u8]>, servicepackstringused: Option<*mut u32>, servicepacknumber: *mut u32, buildstring: Option<&mut [u8]>, buildstringused: 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetPageSize)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNumberSupportedProcessorTypes)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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: Option<&mut [u8]>, fullnamesize: Option<*mut u32>, abbrevnamebuffer: Option<&mut [u8]>, abbrevnamesize: 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetEffectiveProcessorType)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetExecutionStatus)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCodeLevel)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetEngineOptions)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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: Option<&mut [u8]>, macrosize: 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).SetTextMacro)(windows_core::Interface::as_raw(self), slot, r#macro.param().abi()).ok()
}
pub unsafe fn GetRadix(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRadix)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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()
}
pub unsafe fn Evaluate<P0>(&self, expression: P0, desiredtype: u32, value: *mut DEBUG_VALUE, remainderindex: Option<*mut u32>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).Evaluate)(windows_core::Interface::as_raw(self), expression.param().abi(), desiredtype, value, core::mem::transmute(remainderindex.unwrap_or(std::ptr::null_mut()))).ok()
}
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()
}
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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).Execute)(windows_core::Interface::as_raw(self), outputcontrol, command.param().abi(), flags).ok()
}
pub unsafe fn ExecuteCommandFile<P0>(&self, outputcontrol: u32, commandfile: P0, flags: u32) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).ExecuteCommandFile)(windows_core::Interface::as_raw(self), outputcontrol, commandfile.param().abi(), flags).ok()
}
pub unsafe fn GetNumberBreakpoints(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNumberBreakpoints)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetBreakpointByIndex(&self, index: u32) -> windows_core::Result<IDebugBreakpoint> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetBreakpointByIndex)(windows_core::Interface::as_raw(self), index, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn GetBreakpointById(&self, id: u32) -> windows_core::Result<IDebugBreakpoint> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetBreakpointById)(windows_core::Interface::as_raw(self), id, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn GetBreakpointParameters(&self, count: u32, ids: 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).AddBreakpoint)(windows_core::Interface::as_raw(self), r#type, desiredid, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn RemoveBreakpoint<P0>(&self, bp: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<IDebugBreakpoint>,
{
(windows_core::Interface::vtable(self).RemoveBreakpoint)(windows_core::Interface::as_raw(self), bp.param().abi()).ok()
}
pub unsafe fn AddExtension<P0>(&self, path: P0, flags: u32) -> windows_core::Result<u64>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).AddExtension)(windows_core::Interface::as_raw(self), path.param().abi(), flags, &mut result__).map(|| 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::Param<windows_core::PCSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetExtensionByPath)(windows_core::Interface::as_raw(self), path.param().abi(), &mut result__).map(|| result__)
}
pub unsafe fn CallExtension<P0, P1>(&self, handle: u64, function: P0, arguments: P1) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
P1: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).CallExtension)(windows_core::Interface::as_raw(self), handle, function.param().abi(), arguments.param().abi()).ok()
}
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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).GetExtensionFunction)(windows_core::Interface::as_raw(self), handle, funcname.param().abi(), function).ok()
}
#[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()
}
#[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: Option<&mut [u8]>, textsize: 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: Option<&mut [u8]>, commandsize: 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).SetEventFilterCommand)(windows_core::Interface::as_raw(self), index, command.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: Option<&mut [u8]>, argumentsize: 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).SetSpecificFilterArgument)(windows_core::Interface::as_raw(self), index, argument.param().abi()).ok()
}
pub unsafe fn GetExceptionFilterParameters(&self, count: u32, codes: 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: Option<&mut [u8]>, commandsize: 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).SetExceptionFilterSecondCommand)(windows_core::Interface::as_raw(self), index, command.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: Option<*mut core::ffi::c_void>, extrainformationsize: u32, extrainformationused: Option<*mut u32>, description: Option<&mut [u8]>, descriptionused: 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCurrentTimeDate)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetCurrentSystemUpTime(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCurrentSystemUpTime)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetDumpFormatFlags(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetDumpFormatFlags)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetNumberTextReplacements(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNumberTextReplacements)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetTextReplacement<P0>(&self, srctext: P0, index: u32, srcbuffer: Option<&mut [u8]>, srcsize: Option<*mut u32>, dstbuffer: Option<&mut [u8]>, dstsize: Option<*mut u32>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).GetTextReplacement)(
windows_core::Interface::as_raw(self),
srctext.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::Param<windows_core::PCSTR>,
P1: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).SetTextReplacement)(windows_core::Interface::as_raw(self), srctext.param().abi(), dsttext.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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetAssemblyOptions)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetExpressionSyntax)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).SetExpressionSyntaxByName)(windows_core::Interface::as_raw(self), abbrevname.param().abi()).ok()
}
pub unsafe fn GetNumberExpressionSyntaxes(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNumberExpressionSyntaxes)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetExpressionSyntaxNames(&self, index: u32, fullnamebuffer: Option<&mut [u8]>, fullnamesize: Option<*mut u32>, abbrevnamebuffer: Option<&mut [u8]>, abbrevnamesize: 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNumberEvents)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetEventIndexDescription<P0>(&self, index: u32, which: u32, buffer: P0, buffersize: u32, descsize: Option<*mut u32>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).GetEventIndexDescription)(windows_core::Interface::as_raw(self), index, which, buffer.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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCurrentEventIndex)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn SetNextEventIndex(&self, relation: u32, value: u32) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).SetNextEventIndex)(windows_core::Interface::as_raw(self), relation, value, &mut result__).map(|| result__)
}
}
#[repr(C)]
pub struct IDebugControl3_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetInterrupt: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub SetInterrupt: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetInterruptTimeout: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetInterruptTimeout: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetLogFile: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PSTR, u32, *mut u32, *mut super::super::super::super::Foundation::BOOL) -> windows_core::HRESULT,
pub OpenLogFile: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, super::super::super::super::Foundation::BOOL) -> windows_core::HRESULT,
pub CloseLogFile: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetLogMask: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetLogMask: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub Input: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub ReturnInput: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR) -> windows_core::HRESULT,
pub Output: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR) -> windows_core::HRESULT,
pub OutputVaList: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR, *const i8) -> windows_core::HRESULT,
pub ControlledOutput: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, windows_core::PCSTR) -> windows_core::HRESULT,
pub ControlledOutputVaList: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, windows_core::PCSTR, *const i8) -> windows_core::HRESULT,
pub OutputPrompt: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR) -> windows_core::HRESULT,
pub OutputPromptVaList: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR, *const i8) -> windows_core::HRESULT,
pub GetPromptText: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub OutputCurrentState: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32) -> windows_core::HRESULT,
pub OutputVersionInformation: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetNotifyEventHandle: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u64) -> windows_core::HRESULT,
pub SetNotifyEventHandle: unsafe extern "system" fn(*mut core::ffi::c_void, u64) -> windows_core::HRESULT,
pub Assemble: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PCSTR, *mut u64) -> windows_core::HRESULT,
pub Disassemble: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, windows_core::PSTR, u32, *mut u32, *mut u64) -> windows_core::HRESULT,
pub GetDisassembleEffectiveOffset: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u64) -> windows_core::HRESULT,
pub OutputDisassembly: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u64, u32, *mut u64) -> windows_core::HRESULT,
pub OutputDisassemblyLines: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, u32, u64, u32, *mut u32, *mut u64, *mut u64, *mut u64) -> windows_core::HRESULT,
pub GetNearInstruction: unsafe extern "system" fn(*mut core::ffi::c_void, u64, i32, *mut u64) -> windows_core::HRESULT,
pub GetStackTrace: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u64, u64, *mut DEBUG_STACK_FRAME, u32, *mut u32) -> windows_core::HRESULT,
pub GetReturnOffset: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u64) -> windows_core::HRESULT,
pub OutputStackTrace: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *const DEBUG_STACK_FRAME, u32, u32) -> windows_core::HRESULT,
pub GetDebuggeeType: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32, *mut u32) -> windows_core::HRESULT,
pub GetActualProcessorType: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetExecutingProcessorType: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetNumberPossibleExecutingProcessorTypes: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetPossibleExecutingProcessorTypes: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, *mut u32) -> windows_core::HRESULT,
pub GetNumberProcessors: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetSystemVersion: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32, *mut u32, *mut u32, windows_core::PSTR, u32, *mut u32, *mut u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetPageSize: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub IsPointer64Bit: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub ReadBugCheckData: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32, *mut u64, *mut u64, *mut u64, *mut u64) -> windows_core::HRESULT,
pub GetNumberSupportedProcessorTypes: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetSupportedProcessorTypes: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, *mut u32) -> windows_core::HRESULT,
pub GetProcessorTypeNames: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PSTR, u32, *mut u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetEffectiveProcessorType: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetEffectiveProcessorType: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetExecutionStatus: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetExecutionStatus: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetCodeLevel: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetCodeLevel: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetEngineOptions: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub AddEngineOptions: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub RemoveEngineOptions: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub SetEngineOptions: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetSystemErrorControl: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32, *mut u32) -> windows_core::HRESULT,
pub SetSystemErrorControl: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32) -> windows_core::HRESULT,
pub GetTextMacro: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetTextMacro: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR) -> windows_core::HRESULT,
pub GetRadix: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetRadix: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub Evaluate: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, u32, *mut DEBUG_VALUE, *mut u32) -> windows_core::HRESULT,
pub CoerceValue: unsafe extern "system" fn(*mut core::ffi::c_void, *const DEBUG_VALUE, u32, *mut DEBUG_VALUE) -> windows_core::HRESULT,
pub CoerceValues: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *const DEBUG_VALUE, *const u32, *mut DEBUG_VALUE) -> windows_core::HRESULT,
pub Execute: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR, u32) -> windows_core::HRESULT,
pub ExecuteCommandFile: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR, u32) -> windows_core::HRESULT,
pub GetNumberBreakpoints: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetBreakpointByIndex: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetBreakpointById: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetBreakpointParameters: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *const u32, u32, *mut DEBUG_BREAKPOINT_PARAMETERS) -> windows_core::HRESULT,
pub AddBreakpoint: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub RemoveBreakpoint: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub AddExtension: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, u32, *mut u64) -> windows_core::HRESULT,
pub RemoveExtension: unsafe extern "system" fn(*mut core::ffi::c_void, u64) -> windows_core::HRESULT,
pub GetExtensionByPath: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, *mut u64) -> windows_core::HRESULT,
pub CallExtension: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PCSTR, windows_core::PCSTR) -> windows_core::HRESULT,
pub GetExtensionFunction: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PCSTR, *mut super::super::super::super::Foundation::FARPROC) -> windows_core::HRESULT,
#[cfg(feature = "Win32_System_Kernel")]
pub GetWindbgExtensionApis32: unsafe extern "system" fn(*mut core::ffi::c_void, *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(*mut core::ffi::c_void, *mut WINDBG_EXTENSION_APIS64) -> windows_core::HRESULT,
#[cfg(not(feature = "Win32_System_Kernel"))]
GetWindbgExtensionApis64: usize,
pub GetNumberEventFilters: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32, *mut u32, *mut u32) -> windows_core::HRESULT,
pub GetEventFilterText: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetEventFilterCommand: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetEventFilterCommand: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR) -> windows_core::HRESULT,
pub GetSpecificFilterParameters: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, *mut DEBUG_SPECIFIC_FILTER_PARAMETERS) -> windows_core::HRESULT,
pub SetSpecificFilterParameters: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, *const DEBUG_SPECIFIC_FILTER_PARAMETERS) -> windows_core::HRESULT,
pub GetSpecificFilterArgument: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetSpecificFilterArgument: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR) -> windows_core::HRESULT,
pub GetExceptionFilterParameters: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *const u32, u32, *mut DEBUG_EXCEPTION_FILTER_PARAMETERS) -> windows_core::HRESULT,
pub SetExceptionFilterParameters: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *const DEBUG_EXCEPTION_FILTER_PARAMETERS) -> windows_core::HRESULT,
pub GetExceptionFilterSecondCommand: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetExceptionFilterSecondCommand: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR) -> windows_core::HRESULT,
pub WaitForEvent: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32) -> windows_core::HRESULT,
pub GetLastEventInformation: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32, *mut u32, *mut u32, *mut core::ffi::c_void, u32, *mut u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetCurrentTimeDate: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetCurrentSystemUpTime: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetDumpFormatFlags: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetNumberTextReplacements: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetTextReplacement: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, u32, windows_core::PSTR, u32, *mut u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetTextReplacement: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, windows_core::PCSTR) -> windows_core::HRESULT,
pub RemoveTextReplacements: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub OutputTextReplacements: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32) -> windows_core::HRESULT,
pub GetAssemblyOptions: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub AddAssemblyOptions: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub RemoveAssemblyOptions: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub SetAssemblyOptions: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetExpressionSyntax: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetExpressionSyntax: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub SetExpressionSyntaxByName: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR) -> windows_core::HRESULT,
pub GetNumberExpressionSyntaxes: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetExpressionSyntaxNames: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PSTR, u32, *mut u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetNumberEvents: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetEventIndexDescription: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, windows_core::PCSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetCurrentEventIndex: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetNextEventIndex: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, *mut u32) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IDebugControl4, IDebugControl4_Vtbl, 0x94e60ce9_9b41_4b19_9fc0_6d9eb35272b3);
impl core::ops::Deref for IDebugControl4 {
type Target = windows_core::IUnknown;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetInterruptTimeout)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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()
}
pub unsafe fn GetLogFile(&self, buffer: Option<&mut [u8]>, filesize: 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()
}
pub unsafe fn OpenLogFile<P0, P1>(&self, file: P0, append: P1) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
P1: windows_core::Param<super::super::super::super::Foundation::BOOL>,
{
(windows_core::Interface::vtable(self).OpenLogFile)(windows_core::Interface::as_raw(self), file.param().abi(), append.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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetLogMask)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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: 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).ReturnInput)(windows_core::Interface::as_raw(self), buffer.param().abi()).ok()
}
pub unsafe fn Output<P0>(&self, mask: u32, format: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).Output)(windows_core::Interface::as_raw(self), mask, format.param().abi()).ok()
}
pub unsafe fn OutputVaList<P0>(&self, mask: u32, format: P0, args: *const i8) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).OutputVaList)(windows_core::Interface::as_raw(self), mask, format.param().abi(), args).ok()
}
pub unsafe fn ControlledOutput<P0>(&self, outputcontrol: u32, mask: u32, format: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).ControlledOutput)(windows_core::Interface::as_raw(self), outputcontrol, mask, format.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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).ControlledOutputVaList)(windows_core::Interface::as_raw(self), outputcontrol, mask, format.param().abi(), args).ok()
}
pub unsafe fn OutputPrompt<P0>(&self, outputcontrol: u32, format: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).OutputPrompt)(windows_core::Interface::as_raw(self), outputcontrol, format.param().abi()).ok()
}
pub unsafe fn OutputPromptVaList<P0>(&self, outputcontrol: u32, format: P0, args: *const i8) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).OutputPromptVaList)(windows_core::Interface::as_raw(self), outputcontrol, format.param().abi(), args).ok()
}
pub unsafe fn GetPromptText(&self, buffer: Option<&mut [u8]>, textsize: 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNotifyEventHandle)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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::Param<windows_core::PCSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Assemble)(windows_core::Interface::as_raw(self), offset, instr.param().abi(), &mut result__).map(|| result__)
}
pub unsafe fn Disassemble(&self, offset: u64, flags: u32, buffer: Option<&mut [u8]>, disassemblysize: 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetDisassembleEffectiveOffset)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn OutputDisassembly(&self, outputcontrol: u32, offset: u64, flags: u32) -> windows_core::Result<u64> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).OutputDisassembly)(windows_core::Interface::as_raw(self), outputcontrol, offset, flags, &mut result__).map(|| result__)
}
pub unsafe fn OutputDisassemblyLines(&self, outputcontrol: u32, previouslines: u32, offset: u64, flags: u32, offsetline: Option<*mut u32>, startoffset: Option<*mut u64>, endoffset: Option<*mut u64>, lineoffsets: 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNearInstruction)(windows_core::Interface::as_raw(self), offset, delta, &mut result__).map(|| result__)
}
pub unsafe fn GetStackTrace(&self, frameoffset: u64, stackoffset: u64, instructionoffset: u64, frames: &mut [DEBUG_STACK_FRAME], framesfilled: 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetReturnOffset)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn OutputStackTrace(&self, outputcontrol: u32, frames: 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetActualProcessorType)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetExecutingProcessorType(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetExecutingProcessorType)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetNumberPossibleExecutingProcessorTypes(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNumberPossibleExecutingProcessorTypes)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNumberProcessors)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetSystemVersion(&self, platformid: *mut u32, major: *mut u32, minor: *mut u32, servicepackstring: Option<&mut [u8]>, servicepackstringused: Option<*mut u32>, servicepacknumber: *mut u32, buildstring: Option<&mut [u8]>, buildstringused: 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetPageSize)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNumberSupportedProcessorTypes)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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: Option<&mut [u8]>, fullnamesize: Option<*mut u32>, abbrevnamebuffer: Option<&mut [u8]>, abbrevnamesize: 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetEffectiveProcessorType)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetExecutionStatus)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCodeLevel)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetEngineOptions)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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: Option<&mut [u8]>, macrosize: 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).SetTextMacro)(windows_core::Interface::as_raw(self), slot, r#macro.param().abi()).ok()
}
pub unsafe fn GetRadix(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRadix)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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()
}
pub unsafe fn Evaluate<P0>(&self, expression: P0, desiredtype: u32, value: *mut DEBUG_VALUE, remainderindex: Option<*mut u32>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).Evaluate)(windows_core::Interface::as_raw(self), expression.param().abi(), desiredtype, value, core::mem::transmute(remainderindex.unwrap_or(std::ptr::null_mut()))).ok()
}
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()
}
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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).Execute)(windows_core::Interface::as_raw(self), outputcontrol, command.param().abi(), flags).ok()
}
pub unsafe fn ExecuteCommandFile<P0>(&self, outputcontrol: u32, commandfile: P0, flags: u32) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).ExecuteCommandFile)(windows_core::Interface::as_raw(self), outputcontrol, commandfile.param().abi(), flags).ok()
}
pub unsafe fn GetNumberBreakpoints(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNumberBreakpoints)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetBreakpointByIndex(&self, index: u32) -> windows_core::Result<IDebugBreakpoint> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetBreakpointByIndex)(windows_core::Interface::as_raw(self), index, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn GetBreakpointById(&self, id: u32) -> windows_core::Result<IDebugBreakpoint> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetBreakpointById)(windows_core::Interface::as_raw(self), id, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn GetBreakpointParameters(&self, count: u32, ids: 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).AddBreakpoint)(windows_core::Interface::as_raw(self), r#type, desiredid, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn RemoveBreakpoint<P0>(&self, bp: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<IDebugBreakpoint>,
{
(windows_core::Interface::vtable(self).RemoveBreakpoint)(windows_core::Interface::as_raw(self), bp.param().abi()).ok()
}
pub unsafe fn AddExtension<P0>(&self, path: P0, flags: u32) -> windows_core::Result<u64>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).AddExtension)(windows_core::Interface::as_raw(self), path.param().abi(), flags, &mut result__).map(|| 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::Param<windows_core::PCSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetExtensionByPath)(windows_core::Interface::as_raw(self), path.param().abi(), &mut result__).map(|| result__)
}
pub unsafe fn CallExtension<P0, P1>(&self, handle: u64, function: P0, arguments: P1) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
P1: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).CallExtension)(windows_core::Interface::as_raw(self), handle, function.param().abi(), arguments.param().abi()).ok()
}
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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).GetExtensionFunction)(windows_core::Interface::as_raw(self), handle, funcname.param().abi(), function).ok()
}
#[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()
}
#[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: Option<&mut [u8]>, textsize: 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: Option<&mut [u8]>, commandsize: 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).SetEventFilterCommand)(windows_core::Interface::as_raw(self), index, command.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: Option<&mut [u8]>, argumentsize: 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).SetSpecificFilterArgument)(windows_core::Interface::as_raw(self), index, argument.param().abi()).ok()
}
pub unsafe fn GetExceptionFilterParameters(&self, count: u32, codes: 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: Option<&mut [u8]>, commandsize: 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).SetExceptionFilterSecondCommand)(windows_core::Interface::as_raw(self), index, command.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: Option<*mut core::ffi::c_void>, extrainformationsize: u32, extrainformationused: Option<*mut u32>, description: Option<&mut [u8]>, descriptionused: 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCurrentTimeDate)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetCurrentSystemUpTime(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCurrentSystemUpTime)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetDumpFormatFlags(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetDumpFormatFlags)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetNumberTextReplacements(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNumberTextReplacements)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetTextReplacement<P0>(&self, srctext: P0, index: u32, srcbuffer: Option<&mut [u8]>, srcsize: Option<*mut u32>, dstbuffer: Option<&mut [u8]>, dstsize: Option<*mut u32>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).GetTextReplacement)(
windows_core::Interface::as_raw(self),
srctext.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::Param<windows_core::PCSTR>,
P1: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).SetTextReplacement)(windows_core::Interface::as_raw(self), srctext.param().abi(), dsttext.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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetAssemblyOptions)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetExpressionSyntax)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).SetExpressionSyntaxByName)(windows_core::Interface::as_raw(self), abbrevname.param().abi()).ok()
}
pub unsafe fn GetNumberExpressionSyntaxes(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNumberExpressionSyntaxes)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetExpressionSyntaxNames(&self, index: u32, fullnamebuffer: Option<&mut [u8]>, fullnamesize: Option<*mut u32>, abbrevnamebuffer: Option<&mut [u8]>, abbrevnamesize: 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNumberEvents)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetEventIndexDescription<P0>(&self, index: u32, which: u32, buffer: P0, buffersize: u32, descsize: Option<*mut u32>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).GetEventIndexDescription)(windows_core::Interface::as_raw(self), index, which, buffer.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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCurrentEventIndex)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn SetNextEventIndex(&self, relation: u32, value: u32) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).SetNextEventIndex)(windows_core::Interface::as_raw(self), relation, value, &mut result__).map(|| result__)
}
pub unsafe fn GetLogFileWide(&self, buffer: Option<&mut [u16]>, filesize: 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()
}
pub unsafe fn OpenLogFileWide<P0, P1>(&self, file: P0, append: P1) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
P1: windows_core::Param<super::super::super::super::Foundation::BOOL>,
{
(windows_core::Interface::vtable(self).OpenLogFileWide)(windows_core::Interface::as_raw(self), file.param().abi(), append.param().abi()).ok()
}
pub unsafe fn InputWide(&self, buffer: &mut [u16], inputsize: 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::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).ReturnInputWide)(windows_core::Interface::as_raw(self), buffer.param().abi()).ok()
}
pub unsafe fn OutputWide<P0>(&self, mask: u32, format: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).OutputWide)(windows_core::Interface::as_raw(self), mask, format.param().abi()).ok()
}
pub unsafe fn OutputVaListWide<P0>(&self, mask: u32, format: P0, args: *const i8) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).OutputVaListWide)(windows_core::Interface::as_raw(self), mask, format.param().abi(), args).ok()
}
pub unsafe fn ControlledOutputWide<P0>(&self, outputcontrol: u32, mask: u32, format: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).ControlledOutputWide)(windows_core::Interface::as_raw(self), outputcontrol, mask, format.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::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).ControlledOutputVaListWide)(windows_core::Interface::as_raw(self), outputcontrol, mask, format.param().abi(), args).ok()
}
pub unsafe fn OutputPromptWide<P0>(&self, outputcontrol: u32, format: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).OutputPromptWide)(windows_core::Interface::as_raw(self), outputcontrol, format.param().abi()).ok()
}
pub unsafe fn OutputPromptVaListWide<P0>(&self, outputcontrol: u32, format: P0, args: *const i8) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).OutputPromptVaListWide)(windows_core::Interface::as_raw(self), outputcontrol, format.param().abi(), args).ok()
}
pub unsafe fn GetPromptTextWide(&self, buffer: Option<&mut [u16]>, textsize: 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::Param<windows_core::PCWSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).AssembleWide)(windows_core::Interface::as_raw(self), offset, instr.param().abi(), &mut result__).map(|| result__)
}
pub unsafe fn DisassembleWide(&self, offset: u64, flags: u32, buffer: Option<&mut [u16]>, disassemblysize: 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: Option<&mut [u16]>, fullnamesize: Option<*mut u32>, abbrevnamebuffer: Option<&mut [u16]>, abbrevnamesize: 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: Option<&mut [u16]>, macrosize: 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::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).SetTextMacroWide)(windows_core::Interface::as_raw(self), slot, r#macro.param().abi()).ok()
}
pub unsafe fn EvaluateWide<P0>(&self, expression: P0, desiredtype: u32, value: *mut DEBUG_VALUE, remainderindex: Option<*mut u32>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).EvaluateWide)(windows_core::Interface::as_raw(self), expression.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::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).ExecuteWide)(windows_core::Interface::as_raw(self), outputcontrol, command.param().abi(), flags).ok()
}
pub unsafe fn ExecuteCommandFileWide<P0>(&self, outputcontrol: u32, commandfile: P0, flags: u32) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).ExecuteCommandFileWide)(windows_core::Interface::as_raw(self), outputcontrol, commandfile.param().abi(), flags).ok()
}
pub unsafe fn GetBreakpointByIndex2(&self, index: u32) -> windows_core::Result<IDebugBreakpoint2> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetBreakpointByIndex2)(windows_core::Interface::as_raw(self), index, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn GetBreakpointById2(&self, id: u32) -> windows_core::Result<IDebugBreakpoint2> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetBreakpointById2)(windows_core::Interface::as_raw(self), id, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn AddBreakpoint2(&self, r#type: u32, desiredid: u32) -> windows_core::Result<IDebugBreakpoint2> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).AddBreakpoint2)(windows_core::Interface::as_raw(self), r#type, desiredid, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn RemoveBreakpoint2<P0>(&self, bp: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<IDebugBreakpoint2>,
{
(windows_core::Interface::vtable(self).RemoveBreakpoint2)(windows_core::Interface::as_raw(self), bp.param().abi()).ok()
}
pub unsafe fn AddExtensionWide<P0>(&self, path: P0, flags: u32) -> windows_core::Result<u64>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).AddExtensionWide)(windows_core::Interface::as_raw(self), path.param().abi(), flags, &mut result__).map(|| result__)
}
pub unsafe fn GetExtensionByPathWide<P0>(&self, path: P0) -> windows_core::Result<u64>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetExtensionByPathWide)(windows_core::Interface::as_raw(self), path.param().abi(), &mut result__).map(|| result__)
}
pub unsafe fn CallExtensionWide<P0, P1>(&self, handle: u64, function: P0, arguments: P1) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
P1: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).CallExtensionWide)(windows_core::Interface::as_raw(self), handle, function.param().abi(), arguments.param().abi()).ok()
}
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::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).GetExtensionFunctionWide)(windows_core::Interface::as_raw(self), handle, funcname.param().abi(), function).ok()
}
pub unsafe fn GetEventFilterTextWide(&self, index: u32, buffer: Option<&mut [u16]>, textsize: 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: Option<&mut [u16]>, commandsize: 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::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).SetEventFilterCommandWide)(windows_core::Interface::as_raw(self), index, command.param().abi()).ok()
}
pub unsafe fn GetSpecificFilterArgumentWide(&self, index: u32, buffer: Option<&mut [u16]>, argumentsize: 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::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).SetSpecificFilterArgumentWide)(windows_core::Interface::as_raw(self), index, argument.param().abi()).ok()
}
pub unsafe fn GetExceptionFilterSecondCommandWide(&self, index: u32, buffer: Option<&mut [u16]>, commandsize: 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::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).SetExceptionFilterSecondCommandWide)(windows_core::Interface::as_raw(self), index, command.param().abi()).ok()
}
pub unsafe fn GetLastEventInformationWide(&self, r#type: *mut u32, processid: *mut u32, threadid: *mut u32, extrainformation: Option<*mut core::ffi::c_void>, extrainformationsize: u32, extrainformationused: Option<*mut u32>, description: Option<&mut [u16]>, descriptionused: 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: Option<&mut [u16]>, srcsize: Option<*mut u32>, dstbuffer: Option<&mut [u16]>, dstsize: Option<*mut u32>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).GetTextReplacementWide)(
windows_core::Interface::as_raw(self),
srctext.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::Param<windows_core::PCWSTR>,
P1: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).SetTextReplacementWide)(windows_core::Interface::as_raw(self), srctext.param().abi(), dsttext.param().abi()).ok()
}
pub unsafe fn SetExpressionSyntaxByNameWide<P0>(&self, abbrevname: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).SetExpressionSyntaxByNameWide)(windows_core::Interface::as_raw(self), abbrevname.param().abi()).ok()
}
pub unsafe fn GetExpressionSyntaxNamesWide(&self, index: u32, fullnamebuffer: Option<&mut [u16]>, fullnamesize: Option<*mut u32>, abbrevnamebuffer: Option<&mut [u16]>, abbrevnamesize: 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: Option<*mut u32>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).GetEventIndexDescriptionWide)(windows_core::Interface::as_raw(self), index, which, buffer.param().abi(), buffersize, core::mem::transmute(descsize.unwrap_or(std::ptr::null_mut()))).ok()
}
pub unsafe fn GetLogFile2(&self, buffer: Option<&mut [u8]>, filesize: 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).OpenLogFile2)(windows_core::Interface::as_raw(self), file.param().abi(), flags).ok()
}
pub unsafe fn GetLogFile2Wide(&self, buffer: Option<&mut [u16]>, filesize: 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::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).OpenLogFile2Wide)(windows_core::Interface::as_raw(self), file.param().abi(), flags).ok()
}
pub unsafe fn GetSystemVersionValues(&self, platformid: *mut u32, win32major: *mut u32, win32minor: *mut u32, kdmajor: Option<*mut u32>, kdminor: 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: Option<&mut [u8]>, stringsize: 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: Option<&mut [u16]>, stringsize: 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()
}
pub unsafe fn GetContextStackTrace(&self, startcontext: Option<*const core::ffi::c_void>, startcontextsize: u32, frames: Option<&mut [DEBUG_STACK_FRAME]>, framecontexts: Option<*mut core::ffi::c_void>, framecontextssize: u32, framecontextsentrysize: u32, framesfilled: 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()
}
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: Option<*mut core::ffi::c_void>, contextsize: u32, contextused: Option<*mut u32>, extrainformation: Option<*mut core::ffi::c_void>, extrainformationsize: u32, extrainformationused: 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: Option<*mut u32>, whichstring: u32, string: Option<&mut [u8]>, stringneeded: 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: Option<*mut u32>, whichstring: u32, string: Option<&mut [u16]>, stringneeded: 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()
}
}
#[repr(C)]
pub struct IDebugControl4_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetInterrupt: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub SetInterrupt: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetInterruptTimeout: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetInterruptTimeout: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetLogFile: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PSTR, u32, *mut u32, *mut super::super::super::super::Foundation::BOOL) -> windows_core::HRESULT,
pub OpenLogFile: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, super::super::super::super::Foundation::BOOL) -> windows_core::HRESULT,
pub CloseLogFile: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetLogMask: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetLogMask: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub Input: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub ReturnInput: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR) -> windows_core::HRESULT,
pub Output: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR) -> windows_core::HRESULT,
pub OutputVaList: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR, *const i8) -> windows_core::HRESULT,
pub ControlledOutput: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, windows_core::PCSTR) -> windows_core::HRESULT,
pub ControlledOutputVaList: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, windows_core::PCSTR, *const i8) -> windows_core::HRESULT,
pub OutputPrompt: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR) -> windows_core::HRESULT,
pub OutputPromptVaList: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR, *const i8) -> windows_core::HRESULT,
pub GetPromptText: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub OutputCurrentState: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32) -> windows_core::HRESULT,
pub OutputVersionInformation: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetNotifyEventHandle: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u64) -> windows_core::HRESULT,
pub SetNotifyEventHandle: unsafe extern "system" fn(*mut core::ffi::c_void, u64) -> windows_core::HRESULT,
pub Assemble: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PCSTR, *mut u64) -> windows_core::HRESULT,
pub Disassemble: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, windows_core::PSTR, u32, *mut u32, *mut u64) -> windows_core::HRESULT,
pub GetDisassembleEffectiveOffset: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u64) -> windows_core::HRESULT,
pub OutputDisassembly: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u64, u32, *mut u64) -> windows_core::HRESULT,
pub OutputDisassemblyLines: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, u32, u64, u32, *mut u32, *mut u64, *mut u64, *mut u64) -> windows_core::HRESULT,
pub GetNearInstruction: unsafe extern "system" fn(*mut core::ffi::c_void, u64, i32, *mut u64) -> windows_core::HRESULT,
pub GetStackTrace: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u64, u64, *mut DEBUG_STACK_FRAME, u32, *mut u32) -> windows_core::HRESULT,
pub GetReturnOffset: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u64) -> windows_core::HRESULT,
pub OutputStackTrace: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *const DEBUG_STACK_FRAME, u32, u32) -> windows_core::HRESULT,
pub GetDebuggeeType: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32, *mut u32) -> windows_core::HRESULT,
pub GetActualProcessorType: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetExecutingProcessorType: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetNumberPossibleExecutingProcessorTypes: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetPossibleExecutingProcessorTypes: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, *mut u32) -> windows_core::HRESULT,
pub GetNumberProcessors: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetSystemVersion: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32, *mut u32, *mut u32, windows_core::PSTR, u32, *mut u32, *mut u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetPageSize: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub IsPointer64Bit: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub ReadBugCheckData: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32, *mut u64, *mut u64, *mut u64, *mut u64) -> windows_core::HRESULT,
pub GetNumberSupportedProcessorTypes: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetSupportedProcessorTypes: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, *mut u32) -> windows_core::HRESULT,
pub GetProcessorTypeNames: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PSTR, u32, *mut u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetEffectiveProcessorType: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetEffectiveProcessorType: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetExecutionStatus: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetExecutionStatus: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetCodeLevel: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetCodeLevel: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetEngineOptions: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub AddEngineOptions: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub RemoveEngineOptions: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub SetEngineOptions: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetSystemErrorControl: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32, *mut u32) -> windows_core::HRESULT,
pub SetSystemErrorControl: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32) -> windows_core::HRESULT,
pub GetTextMacro: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetTextMacro: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR) -> windows_core::HRESULT,
pub GetRadix: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetRadix: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub Evaluate: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, u32, *mut DEBUG_VALUE, *mut u32) -> windows_core::HRESULT,
pub CoerceValue: unsafe extern "system" fn(*mut core::ffi::c_void, *const DEBUG_VALUE, u32, *mut DEBUG_VALUE) -> windows_core::HRESULT,
pub CoerceValues: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *const DEBUG_VALUE, *const u32, *mut DEBUG_VALUE) -> windows_core::HRESULT,
pub Execute: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR, u32) -> windows_core::HRESULT,
pub ExecuteCommandFile: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR, u32) -> windows_core::HRESULT,
pub GetNumberBreakpoints: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetBreakpointByIndex: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetBreakpointById: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetBreakpointParameters: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *const u32, u32, *mut DEBUG_BREAKPOINT_PARAMETERS) -> windows_core::HRESULT,
pub AddBreakpoint: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub RemoveBreakpoint: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub AddExtension: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, u32, *mut u64) -> windows_core::HRESULT,
pub RemoveExtension: unsafe extern "system" fn(*mut core::ffi::c_void, u64) -> windows_core::HRESULT,
pub GetExtensionByPath: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, *mut u64) -> windows_core::HRESULT,
pub CallExtension: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PCSTR, windows_core::PCSTR) -> windows_core::HRESULT,
pub GetExtensionFunction: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PCSTR, *mut super::super::super::super::Foundation::FARPROC) -> windows_core::HRESULT,
#[cfg(feature = "Win32_System_Kernel")]
pub GetWindbgExtensionApis32: unsafe extern "system" fn(*mut core::ffi::c_void, *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(*mut core::ffi::c_void, *mut WINDBG_EXTENSION_APIS64) -> windows_core::HRESULT,
#[cfg(not(feature = "Win32_System_Kernel"))]
GetWindbgExtensionApis64: usize,
pub GetNumberEventFilters: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32, *mut u32, *mut u32) -> windows_core::HRESULT,
pub GetEventFilterText: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetEventFilterCommand: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetEventFilterCommand: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR) -> windows_core::HRESULT,
pub GetSpecificFilterParameters: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, *mut DEBUG_SPECIFIC_FILTER_PARAMETERS) -> windows_core::HRESULT,
pub SetSpecificFilterParameters: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, *const DEBUG_SPECIFIC_FILTER_PARAMETERS) -> windows_core::HRESULT,
pub GetSpecificFilterArgument: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetSpecificFilterArgument: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR) -> windows_core::HRESULT,
pub GetExceptionFilterParameters: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *const u32, u32, *mut DEBUG_EXCEPTION_FILTER_PARAMETERS) -> windows_core::HRESULT,
pub SetExceptionFilterParameters: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *const DEBUG_EXCEPTION_FILTER_PARAMETERS) -> windows_core::HRESULT,
pub GetExceptionFilterSecondCommand: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetExceptionFilterSecondCommand: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR) -> windows_core::HRESULT,
pub WaitForEvent: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32) -> windows_core::HRESULT,
pub GetLastEventInformation: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32, *mut u32, *mut u32, *mut core::ffi::c_void, u32, *mut u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetCurrentTimeDate: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetCurrentSystemUpTime: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetDumpFormatFlags: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetNumberTextReplacements: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetTextReplacement: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, u32, windows_core::PSTR, u32, *mut u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetTextReplacement: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, windows_core::PCSTR) -> windows_core::HRESULT,
pub RemoveTextReplacements: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub OutputTextReplacements: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32) -> windows_core::HRESULT,
pub GetAssemblyOptions: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub AddAssemblyOptions: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub RemoveAssemblyOptions: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub SetAssemblyOptions: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetExpressionSyntax: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetExpressionSyntax: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub SetExpressionSyntaxByName: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR) -> windows_core::HRESULT,
pub GetNumberExpressionSyntaxes: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetExpressionSyntaxNames: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PSTR, u32, *mut u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetNumberEvents: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetEventIndexDescription: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, windows_core::PCSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetCurrentEventIndex: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetNextEventIndex: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, *mut u32) -> windows_core::HRESULT,
pub GetLogFileWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PWSTR, u32, *mut u32, *mut super::super::super::super::Foundation::BOOL) -> windows_core::HRESULT,
pub OpenLogFileWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR, super::super::super::super::Foundation::BOOL) -> windows_core::HRESULT,
pub InputWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub ReturnInputWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR) -> windows_core::HRESULT,
pub OutputWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCWSTR) -> windows_core::HRESULT,
pub OutputVaListWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCWSTR, *const i8) -> windows_core::HRESULT,
pub ControlledOutputWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, windows_core::PCWSTR) -> windows_core::HRESULT,
pub ControlledOutputVaListWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, windows_core::PCWSTR, *const i8) -> windows_core::HRESULT,
pub OutputPromptWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCWSTR) -> windows_core::HRESULT,
pub OutputPromptVaListWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCWSTR, *const i8) -> windows_core::HRESULT,
pub GetPromptTextWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub AssembleWide: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PCWSTR, *mut u64) -> windows_core::HRESULT,
pub DisassembleWide: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, windows_core::PWSTR, u32, *mut u32, *mut u64) -> windows_core::HRESULT,
pub GetProcessorTypeNamesWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PWSTR, u32, *mut u32, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetTextMacroWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetTextMacroWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCWSTR) -> windows_core::HRESULT,
pub EvaluateWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR, u32, *mut DEBUG_VALUE, *mut u32) -> windows_core::HRESULT,
pub ExecuteWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCWSTR, u32) -> windows_core::HRESULT,
pub ExecuteCommandFileWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCWSTR, u32) -> windows_core::HRESULT,
pub GetBreakpointByIndex2: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetBreakpointById2: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub AddBreakpoint2: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub RemoveBreakpoint2: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub AddExtensionWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR, u32, *mut u64) -> windows_core::HRESULT,
pub GetExtensionByPathWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR, *mut u64) -> windows_core::HRESULT,
pub CallExtensionWide: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PCWSTR, windows_core::PCWSTR) -> windows_core::HRESULT,
pub GetExtensionFunctionWide: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PCWSTR, *mut super::super::super::super::Foundation::FARPROC) -> windows_core::HRESULT,
pub GetEventFilterTextWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetEventFilterCommandWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetEventFilterCommandWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCWSTR) -> windows_core::HRESULT,
pub GetSpecificFilterArgumentWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetSpecificFilterArgumentWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCWSTR) -> windows_core::HRESULT,
pub GetExceptionFilterSecondCommandWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetExceptionFilterSecondCommandWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCWSTR) -> windows_core::HRESULT,
pub GetLastEventInformationWide: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32, *mut u32, *mut u32, *mut core::ffi::c_void, u32, *mut u32, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetTextReplacementWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR, u32, windows_core::PWSTR, u32, *mut u32, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetTextReplacementWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR, windows_core::PCWSTR) -> windows_core::HRESULT,
pub SetExpressionSyntaxByNameWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR) -> windows_core::HRESULT,
pub GetExpressionSyntaxNamesWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PWSTR, u32, *mut u32, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetEventIndexDescriptionWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, windows_core::PCWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetLogFile2: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PSTR, u32, *mut u32, *mut u32) -> windows_core::HRESULT,
pub OpenLogFile2: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, u32) -> windows_core::HRESULT,
pub GetLogFile2Wide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PWSTR, u32, *mut u32, *mut u32) -> windows_core::HRESULT,
pub OpenLogFile2Wide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR, u32) -> windows_core::HRESULT,
pub GetSystemVersionValues: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32, *mut u32, *mut u32, *mut u32, *mut u32) -> windows_core::HRESULT,
pub GetSystemVersionString: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetSystemVersionStringWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetContextStackTrace: unsafe extern "system" fn(*mut core::ffi::c_void, *const core::ffi::c_void, u32, *mut DEBUG_STACK_FRAME, u32, *mut core::ffi::c_void, u32, u32, *mut u32) -> windows_core::HRESULT,
pub OutputContextStackTrace: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *const DEBUG_STACK_FRAME, u32, *const core::ffi::c_void, u32, u32, u32) -> windows_core::HRESULT,
pub GetStoredEventInformation: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32, *mut u32, *mut u32, *mut core::ffi::c_void, u32, *mut u32, *mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub GetManagedStatus: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32, u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetManagedStatusWide: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32, u32, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub ResetManagedStatus: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IDebugControl5, IDebugControl5_Vtbl, 0xb2ffe162_2412_429f_8d1d_5bf6dd824696);
impl core::ops::Deref for IDebugControl5 {
type Target = windows_core::IUnknown;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetInterruptTimeout)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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()
}
pub unsafe fn GetLogFile(&self, buffer: Option<&mut [u8]>, filesize: 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()
}
pub unsafe fn OpenLogFile<P0, P1>(&self, file: P0, append: P1) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
P1: windows_core::Param<super::super::super::super::Foundation::BOOL>,
{
(windows_core::Interface::vtable(self).OpenLogFile)(windows_core::Interface::as_raw(self), file.param().abi(), append.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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetLogMask)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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: 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).ReturnInput)(windows_core::Interface::as_raw(self), buffer.param().abi()).ok()
}
pub unsafe fn Output<P0>(&self, mask: u32, format: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).Output)(windows_core::Interface::as_raw(self), mask, format.param().abi()).ok()
}
pub unsafe fn OutputVaList<P0>(&self, mask: u32, format: P0, args: *const i8) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).OutputVaList)(windows_core::Interface::as_raw(self), mask, format.param().abi(), args).ok()
}
pub unsafe fn ControlledOutput<P0>(&self, outputcontrol: u32, mask: u32, format: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).ControlledOutput)(windows_core::Interface::as_raw(self), outputcontrol, mask, format.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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).ControlledOutputVaList)(windows_core::Interface::as_raw(self), outputcontrol, mask, format.param().abi(), args).ok()
}
pub unsafe fn OutputPrompt<P0>(&self, outputcontrol: u32, format: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).OutputPrompt)(windows_core::Interface::as_raw(self), outputcontrol, format.param().abi()).ok()
}
pub unsafe fn OutputPromptVaList<P0>(&self, outputcontrol: u32, format: P0, args: *const i8) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).OutputPromptVaList)(windows_core::Interface::as_raw(self), outputcontrol, format.param().abi(), args).ok()
}
pub unsafe fn GetPromptText(&self, buffer: Option<&mut [u8]>, textsize: 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNotifyEventHandle)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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::Param<windows_core::PCSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Assemble)(windows_core::Interface::as_raw(self), offset, instr.param().abi(), &mut result__).map(|| result__)
}
pub unsafe fn Disassemble(&self, offset: u64, flags: u32, buffer: Option<&mut [u8]>, disassemblysize: 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetDisassembleEffectiveOffset)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn OutputDisassembly(&self, outputcontrol: u32, offset: u64, flags: u32) -> windows_core::Result<u64> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).OutputDisassembly)(windows_core::Interface::as_raw(self), outputcontrol, offset, flags, &mut result__).map(|| result__)
}
pub unsafe fn OutputDisassemblyLines(&self, outputcontrol: u32, previouslines: u32, offset: u64, flags: u32, offsetline: Option<*mut u32>, startoffset: Option<*mut u64>, endoffset: Option<*mut u64>, lineoffsets: 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNearInstruction)(windows_core::Interface::as_raw(self), offset, delta, &mut result__).map(|| result__)
}
pub unsafe fn GetStackTrace(&self, frameoffset: u64, stackoffset: u64, instructionoffset: u64, frames: &mut [DEBUG_STACK_FRAME], framesfilled: 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetReturnOffset)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn OutputStackTrace(&self, outputcontrol: u32, frames: 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetActualProcessorType)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetExecutingProcessorType(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetExecutingProcessorType)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetNumberPossibleExecutingProcessorTypes(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNumberPossibleExecutingProcessorTypes)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNumberProcessors)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetSystemVersion(&self, platformid: *mut u32, major: *mut u32, minor: *mut u32, servicepackstring: Option<&mut [u8]>, servicepackstringused: Option<*mut u32>, servicepacknumber: *mut u32, buildstring: Option<&mut [u8]>, buildstringused: 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetPageSize)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNumberSupportedProcessorTypes)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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: Option<&mut [u8]>, fullnamesize: Option<*mut u32>, abbrevnamebuffer: Option<&mut [u8]>, abbrevnamesize: 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetEffectiveProcessorType)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetExecutionStatus)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCodeLevel)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetEngineOptions)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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: Option<&mut [u8]>, macrosize: 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).SetTextMacro)(windows_core::Interface::as_raw(self), slot, r#macro.param().abi()).ok()
}
pub unsafe fn GetRadix(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRadix)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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()
}
pub unsafe fn Evaluate<P0>(&self, expression: P0, desiredtype: u32, value: *mut DEBUG_VALUE, remainderindex: Option<*mut u32>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).Evaluate)(windows_core::Interface::as_raw(self), expression.param().abi(), desiredtype, value, core::mem::transmute(remainderindex.unwrap_or(std::ptr::null_mut()))).ok()
}
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()
}
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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).Execute)(windows_core::Interface::as_raw(self), outputcontrol, command.param().abi(), flags).ok()
}
pub unsafe fn ExecuteCommandFile<P0>(&self, outputcontrol: u32, commandfile: P0, flags: u32) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).ExecuteCommandFile)(windows_core::Interface::as_raw(self), outputcontrol, commandfile.param().abi(), flags).ok()
}
pub unsafe fn GetNumberBreakpoints(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNumberBreakpoints)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetBreakpointByIndex(&self, index: u32) -> windows_core::Result<IDebugBreakpoint> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetBreakpointByIndex)(windows_core::Interface::as_raw(self), index, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn GetBreakpointById(&self, id: u32) -> windows_core::Result<IDebugBreakpoint> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetBreakpointById)(windows_core::Interface::as_raw(self), id, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn GetBreakpointParameters(&self, count: u32, ids: 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).AddBreakpoint)(windows_core::Interface::as_raw(self), r#type, desiredid, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn RemoveBreakpoint<P0>(&self, bp: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<IDebugBreakpoint>,
{
(windows_core::Interface::vtable(self).RemoveBreakpoint)(windows_core::Interface::as_raw(self), bp.param().abi()).ok()
}
pub unsafe fn AddExtension<P0>(&self, path: P0, flags: u32) -> windows_core::Result<u64>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).AddExtension)(windows_core::Interface::as_raw(self), path.param().abi(), flags, &mut result__).map(|| 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::Param<windows_core::PCSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetExtensionByPath)(windows_core::Interface::as_raw(self), path.param().abi(), &mut result__).map(|| result__)
}
pub unsafe fn CallExtension<P0, P1>(&self, handle: u64, function: P0, arguments: P1) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
P1: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).CallExtension)(windows_core::Interface::as_raw(self), handle, function.param().abi(), arguments.param().abi()).ok()
}
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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).GetExtensionFunction)(windows_core::Interface::as_raw(self), handle, funcname.param().abi(), function).ok()
}
#[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()
}
#[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: Option<&mut [u8]>, textsize: 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: Option<&mut [u8]>, commandsize: 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).SetEventFilterCommand)(windows_core::Interface::as_raw(self), index, command.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: Option<&mut [u8]>, argumentsize: 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).SetSpecificFilterArgument)(windows_core::Interface::as_raw(self), index, argument.param().abi()).ok()
}
pub unsafe fn GetExceptionFilterParameters(&self, count: u32, codes: 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: Option<&mut [u8]>, commandsize: 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).SetExceptionFilterSecondCommand)(windows_core::Interface::as_raw(self), index, command.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: Option<*mut core::ffi::c_void>, extrainformationsize: u32, extrainformationused: Option<*mut u32>, description: Option<&mut [u8]>, descriptionused: 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCurrentTimeDate)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetCurrentSystemUpTime(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCurrentSystemUpTime)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetDumpFormatFlags(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetDumpFormatFlags)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetNumberTextReplacements(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNumberTextReplacements)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetTextReplacement<P0>(&self, srctext: P0, index: u32, srcbuffer: Option<&mut [u8]>, srcsize: Option<*mut u32>, dstbuffer: Option<&mut [u8]>, dstsize: Option<*mut u32>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).GetTextReplacement)(
windows_core::Interface::as_raw(self),
srctext.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::Param<windows_core::PCSTR>,
P1: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).SetTextReplacement)(windows_core::Interface::as_raw(self), srctext.param().abi(), dsttext.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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetAssemblyOptions)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetExpressionSyntax)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).SetExpressionSyntaxByName)(windows_core::Interface::as_raw(self), abbrevname.param().abi()).ok()
}
pub unsafe fn GetNumberExpressionSyntaxes(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNumberExpressionSyntaxes)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetExpressionSyntaxNames(&self, index: u32, fullnamebuffer: Option<&mut [u8]>, fullnamesize: Option<*mut u32>, abbrevnamebuffer: Option<&mut [u8]>, abbrevnamesize: 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNumberEvents)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetEventIndexDescription<P0>(&self, index: u32, which: u32, buffer: P0, buffersize: u32, descsize: Option<*mut u32>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).GetEventIndexDescription)(windows_core::Interface::as_raw(self), index, which, buffer.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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCurrentEventIndex)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn SetNextEventIndex(&self, relation: u32, value: u32) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).SetNextEventIndex)(windows_core::Interface::as_raw(self), relation, value, &mut result__).map(|| result__)
}
pub unsafe fn GetLogFileWide(&self, buffer: Option<&mut [u16]>, filesize: 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()
}
pub unsafe fn OpenLogFileWide<P0, P1>(&self, file: P0, append: P1) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
P1: windows_core::Param<super::super::super::super::Foundation::BOOL>,
{
(windows_core::Interface::vtable(self).OpenLogFileWide)(windows_core::Interface::as_raw(self), file.param().abi(), append.param().abi()).ok()
}
pub unsafe fn InputWide(&self, buffer: &mut [u16], inputsize: 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::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).ReturnInputWide)(windows_core::Interface::as_raw(self), buffer.param().abi()).ok()
}
pub unsafe fn OutputWide<P0>(&self, mask: u32, format: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).OutputWide)(windows_core::Interface::as_raw(self), mask, format.param().abi()).ok()
}
pub unsafe fn OutputVaListWide<P0>(&self, mask: u32, format: P0, args: *const i8) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).OutputVaListWide)(windows_core::Interface::as_raw(self), mask, format.param().abi(), args).ok()
}
pub unsafe fn ControlledOutputWide<P0>(&self, outputcontrol: u32, mask: u32, format: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).ControlledOutputWide)(windows_core::Interface::as_raw(self), outputcontrol, mask, format.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::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).ControlledOutputVaListWide)(windows_core::Interface::as_raw(self), outputcontrol, mask, format.param().abi(), args).ok()
}
pub unsafe fn OutputPromptWide<P0>(&self, outputcontrol: u32, format: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).OutputPromptWide)(windows_core::Interface::as_raw(self), outputcontrol, format.param().abi()).ok()
}
pub unsafe fn OutputPromptVaListWide<P0>(&self, outputcontrol: u32, format: P0, args: *const i8) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).OutputPromptVaListWide)(windows_core::Interface::as_raw(self), outputcontrol, format.param().abi(), args).ok()
}
pub unsafe fn GetPromptTextWide(&self, buffer: Option<&mut [u16]>, textsize: 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::Param<windows_core::PCWSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).AssembleWide)(windows_core::Interface::as_raw(self), offset, instr.param().abi(), &mut result__).map(|| result__)
}
pub unsafe fn DisassembleWide(&self, offset: u64, flags: u32, buffer: Option<&mut [u16]>, disassemblysize: 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: Option<&mut [u16]>, fullnamesize: Option<*mut u32>, abbrevnamebuffer: Option<&mut [u16]>, abbrevnamesize: 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: Option<&mut [u16]>, macrosize: 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::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).SetTextMacroWide)(windows_core::Interface::as_raw(self), slot, r#macro.param().abi()).ok()
}
pub unsafe fn EvaluateWide<P0>(&self, expression: P0, desiredtype: u32, value: *mut DEBUG_VALUE, remainderindex: Option<*mut u32>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).EvaluateWide)(windows_core::Interface::as_raw(self), expression.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::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).ExecuteWide)(windows_core::Interface::as_raw(self), outputcontrol, command.param().abi(), flags).ok()
}
pub unsafe fn ExecuteCommandFileWide<P0>(&self, outputcontrol: u32, commandfile: P0, flags: u32) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).ExecuteCommandFileWide)(windows_core::Interface::as_raw(self), outputcontrol, commandfile.param().abi(), flags).ok()
}
pub unsafe fn GetBreakpointByIndex2(&self, index: u32) -> windows_core::Result<IDebugBreakpoint2> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetBreakpointByIndex2)(windows_core::Interface::as_raw(self), index, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn GetBreakpointById2(&self, id: u32) -> windows_core::Result<IDebugBreakpoint2> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetBreakpointById2)(windows_core::Interface::as_raw(self), id, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn AddBreakpoint2(&self, r#type: u32, desiredid: u32) -> windows_core::Result<IDebugBreakpoint2> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).AddBreakpoint2)(windows_core::Interface::as_raw(self), r#type, desiredid, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn RemoveBreakpoint2<P0>(&self, bp: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<IDebugBreakpoint2>,
{
(windows_core::Interface::vtable(self).RemoveBreakpoint2)(windows_core::Interface::as_raw(self), bp.param().abi()).ok()
}
pub unsafe fn AddExtensionWide<P0>(&self, path: P0, flags: u32) -> windows_core::Result<u64>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).AddExtensionWide)(windows_core::Interface::as_raw(self), path.param().abi(), flags, &mut result__).map(|| result__)
}
pub unsafe fn GetExtensionByPathWide<P0>(&self, path: P0) -> windows_core::Result<u64>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetExtensionByPathWide)(windows_core::Interface::as_raw(self), path.param().abi(), &mut result__).map(|| result__)
}
pub unsafe fn CallExtensionWide<P0, P1>(&self, handle: u64, function: P0, arguments: P1) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
P1: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).CallExtensionWide)(windows_core::Interface::as_raw(self), handle, function.param().abi(), arguments.param().abi()).ok()
}
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::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).GetExtensionFunctionWide)(windows_core::Interface::as_raw(self), handle, funcname.param().abi(), function).ok()
}
pub unsafe fn GetEventFilterTextWide(&self, index: u32, buffer: Option<&mut [u16]>, textsize: 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: Option<&mut [u16]>, commandsize: 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::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).SetEventFilterCommandWide)(windows_core::Interface::as_raw(self), index, command.param().abi()).ok()
}
pub unsafe fn GetSpecificFilterArgumentWide(&self, index: u32, buffer: Option<&mut [u16]>, argumentsize: 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::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).SetSpecificFilterArgumentWide)(windows_core::Interface::as_raw(self), index, argument.param().abi()).ok()
}
pub unsafe fn GetExceptionFilterSecondCommandWide(&self, index: u32, buffer: Option<&mut [u16]>, commandsize: 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::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).SetExceptionFilterSecondCommandWide)(windows_core::Interface::as_raw(self), index, command.param().abi()).ok()
}
pub unsafe fn GetLastEventInformationWide(&self, r#type: *mut u32, processid: *mut u32, threadid: *mut u32, extrainformation: Option<*mut core::ffi::c_void>, extrainformationsize: u32, extrainformationused: Option<*mut u32>, description: Option<&mut [u16]>, descriptionused: 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: Option<&mut [u16]>, srcsize: Option<*mut u32>, dstbuffer: Option<&mut [u16]>, dstsize: Option<*mut u32>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).GetTextReplacementWide)(
windows_core::Interface::as_raw(self),
srctext.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::Param<windows_core::PCWSTR>,
P1: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).SetTextReplacementWide)(windows_core::Interface::as_raw(self), srctext.param().abi(), dsttext.param().abi()).ok()
}
pub unsafe fn SetExpressionSyntaxByNameWide<P0>(&self, abbrevname: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).SetExpressionSyntaxByNameWide)(windows_core::Interface::as_raw(self), abbrevname.param().abi()).ok()
}
pub unsafe fn GetExpressionSyntaxNamesWide(&self, index: u32, fullnamebuffer: Option<&mut [u16]>, fullnamesize: Option<*mut u32>, abbrevnamebuffer: Option<&mut [u16]>, abbrevnamesize: 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: Option<*mut u32>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).GetEventIndexDescriptionWide)(windows_core::Interface::as_raw(self), index, which, buffer.param().abi(), buffersize, core::mem::transmute(descsize.unwrap_or(std::ptr::null_mut()))).ok()
}
pub unsafe fn GetLogFile2(&self, buffer: Option<&mut [u8]>, filesize: 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).OpenLogFile2)(windows_core::Interface::as_raw(self), file.param().abi(), flags).ok()
}
pub unsafe fn GetLogFile2Wide(&self, buffer: Option<&mut [u16]>, filesize: 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::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).OpenLogFile2Wide)(windows_core::Interface::as_raw(self), file.param().abi(), flags).ok()
}
pub unsafe fn GetSystemVersionValues(&self, platformid: *mut u32, win32major: *mut u32, win32minor: *mut u32, kdmajor: Option<*mut u32>, kdminor: 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: Option<&mut [u8]>, stringsize: 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: Option<&mut [u16]>, stringsize: 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()
}
pub unsafe fn GetContextStackTrace(&self, startcontext: Option<*const core::ffi::c_void>, startcontextsize: u32, frames: Option<&mut [DEBUG_STACK_FRAME]>, framecontexts: Option<*mut core::ffi::c_void>, framecontextssize: u32, framecontextsentrysize: u32, framesfilled: 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()
}
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: Option<*mut core::ffi::c_void>, contextsize: u32, contextused: Option<*mut u32>, extrainformation: Option<*mut core::ffi::c_void>, extrainformationsize: u32, extrainformationused: 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: Option<*mut u32>, whichstring: u32, string: Option<&mut [u8]>, stringneeded: 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: Option<*mut u32>, whichstring: u32, string: Option<&mut [u16]>, stringneeded: 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()
}
pub unsafe fn GetStackTraceEx(&self, frameoffset: u64, stackoffset: u64, instructionoffset: u64, frames: &mut [DEBUG_STACK_FRAME_EX], framesfilled: 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()
}
pub unsafe fn OutputStackTraceEx(&self, outputcontrol: u32, frames: 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()
}
pub unsafe fn GetContextStackTraceEx(&self, startcontext: Option<*const core::ffi::c_void>, startcontextsize: u32, frames: Option<&mut [DEBUG_STACK_FRAME_EX]>, framecontexts: Option<*mut core::ffi::c_void>, framecontextssize: u32, framecontextsentrysize: u32, framesfilled: 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()
}
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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetBreakpointByGuid)(windows_core::Interface::as_raw(self), guid, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
#[repr(C)]
pub struct IDebugControl5_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetInterrupt: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub SetInterrupt: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetInterruptTimeout: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetInterruptTimeout: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetLogFile: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PSTR, u32, *mut u32, *mut super::super::super::super::Foundation::BOOL) -> windows_core::HRESULT,
pub OpenLogFile: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, super::super::super::super::Foundation::BOOL) -> windows_core::HRESULT,
pub CloseLogFile: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetLogMask: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetLogMask: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub Input: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub ReturnInput: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR) -> windows_core::HRESULT,
pub Output: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR) -> windows_core::HRESULT,
pub OutputVaList: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR, *const i8) -> windows_core::HRESULT,
pub ControlledOutput: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, windows_core::PCSTR) -> windows_core::HRESULT,
pub ControlledOutputVaList: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, windows_core::PCSTR, *const i8) -> windows_core::HRESULT,
pub OutputPrompt: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR) -> windows_core::HRESULT,
pub OutputPromptVaList: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR, *const i8) -> windows_core::HRESULT,
pub GetPromptText: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub OutputCurrentState: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32) -> windows_core::HRESULT,
pub OutputVersionInformation: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetNotifyEventHandle: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u64) -> windows_core::HRESULT,
pub SetNotifyEventHandle: unsafe extern "system" fn(*mut core::ffi::c_void, u64) -> windows_core::HRESULT,
pub Assemble: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PCSTR, *mut u64) -> windows_core::HRESULT,
pub Disassemble: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, windows_core::PSTR, u32, *mut u32, *mut u64) -> windows_core::HRESULT,
pub GetDisassembleEffectiveOffset: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u64) -> windows_core::HRESULT,
pub OutputDisassembly: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u64, u32, *mut u64) -> windows_core::HRESULT,
pub OutputDisassemblyLines: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, u32, u64, u32, *mut u32, *mut u64, *mut u64, *mut u64) -> windows_core::HRESULT,
pub GetNearInstruction: unsafe extern "system" fn(*mut core::ffi::c_void, u64, i32, *mut u64) -> windows_core::HRESULT,
pub GetStackTrace: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u64, u64, *mut DEBUG_STACK_FRAME, u32, *mut u32) -> windows_core::HRESULT,
pub GetReturnOffset: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u64) -> windows_core::HRESULT,
pub OutputStackTrace: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *const DEBUG_STACK_FRAME, u32, u32) -> windows_core::HRESULT,
pub GetDebuggeeType: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32, *mut u32) -> windows_core::HRESULT,
pub GetActualProcessorType: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetExecutingProcessorType: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetNumberPossibleExecutingProcessorTypes: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetPossibleExecutingProcessorTypes: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, *mut u32) -> windows_core::HRESULT,
pub GetNumberProcessors: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetSystemVersion: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32, *mut u32, *mut u32, windows_core::PSTR, u32, *mut u32, *mut u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetPageSize: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub IsPointer64Bit: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub ReadBugCheckData: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32, *mut u64, *mut u64, *mut u64, *mut u64) -> windows_core::HRESULT,
pub GetNumberSupportedProcessorTypes: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetSupportedProcessorTypes: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, *mut u32) -> windows_core::HRESULT,
pub GetProcessorTypeNames: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PSTR, u32, *mut u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetEffectiveProcessorType: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetEffectiveProcessorType: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetExecutionStatus: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetExecutionStatus: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetCodeLevel: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetCodeLevel: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetEngineOptions: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub AddEngineOptions: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub RemoveEngineOptions: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub SetEngineOptions: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetSystemErrorControl: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32, *mut u32) -> windows_core::HRESULT,
pub SetSystemErrorControl: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32) -> windows_core::HRESULT,
pub GetTextMacro: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetTextMacro: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR) -> windows_core::HRESULT,
pub GetRadix: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetRadix: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub Evaluate: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, u32, *mut DEBUG_VALUE, *mut u32) -> windows_core::HRESULT,
pub CoerceValue: unsafe extern "system" fn(*mut core::ffi::c_void, *const DEBUG_VALUE, u32, *mut DEBUG_VALUE) -> windows_core::HRESULT,
pub CoerceValues: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *const DEBUG_VALUE, *const u32, *mut DEBUG_VALUE) -> windows_core::HRESULT,
pub Execute: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR, u32) -> windows_core::HRESULT,
pub ExecuteCommandFile: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR, u32) -> windows_core::HRESULT,
pub GetNumberBreakpoints: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetBreakpointByIndex: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetBreakpointById: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetBreakpointParameters: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *const u32, u32, *mut DEBUG_BREAKPOINT_PARAMETERS) -> windows_core::HRESULT,
pub AddBreakpoint: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub RemoveBreakpoint: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub AddExtension: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, u32, *mut u64) -> windows_core::HRESULT,
pub RemoveExtension: unsafe extern "system" fn(*mut core::ffi::c_void, u64) -> windows_core::HRESULT,
pub GetExtensionByPath: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, *mut u64) -> windows_core::HRESULT,
pub CallExtension: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PCSTR, windows_core::PCSTR) -> windows_core::HRESULT,
pub GetExtensionFunction: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PCSTR, *mut super::super::super::super::Foundation::FARPROC) -> windows_core::HRESULT,
#[cfg(feature = "Win32_System_Kernel")]
pub GetWindbgExtensionApis32: unsafe extern "system" fn(*mut core::ffi::c_void, *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(*mut core::ffi::c_void, *mut WINDBG_EXTENSION_APIS64) -> windows_core::HRESULT,
#[cfg(not(feature = "Win32_System_Kernel"))]
GetWindbgExtensionApis64: usize,
pub GetNumberEventFilters: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32, *mut u32, *mut u32) -> windows_core::HRESULT,
pub GetEventFilterText: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetEventFilterCommand: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetEventFilterCommand: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR) -> windows_core::HRESULT,
pub GetSpecificFilterParameters: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, *mut DEBUG_SPECIFIC_FILTER_PARAMETERS) -> windows_core::HRESULT,
pub SetSpecificFilterParameters: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, *const DEBUG_SPECIFIC_FILTER_PARAMETERS) -> windows_core::HRESULT,
pub GetSpecificFilterArgument: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetSpecificFilterArgument: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR) -> windows_core::HRESULT,
pub GetExceptionFilterParameters: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *const u32, u32, *mut DEBUG_EXCEPTION_FILTER_PARAMETERS) -> windows_core::HRESULT,
pub SetExceptionFilterParameters: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *const DEBUG_EXCEPTION_FILTER_PARAMETERS) -> windows_core::HRESULT,
pub GetExceptionFilterSecondCommand: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetExceptionFilterSecondCommand: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR) -> windows_core::HRESULT,
pub WaitForEvent: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32) -> windows_core::HRESULT,
pub GetLastEventInformation: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32, *mut u32, *mut u32, *mut core::ffi::c_void, u32, *mut u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetCurrentTimeDate: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetCurrentSystemUpTime: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetDumpFormatFlags: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetNumberTextReplacements: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetTextReplacement: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, u32, windows_core::PSTR, u32, *mut u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetTextReplacement: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, windows_core::PCSTR) -> windows_core::HRESULT,
pub RemoveTextReplacements: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub OutputTextReplacements: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32) -> windows_core::HRESULT,
pub GetAssemblyOptions: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub AddAssemblyOptions: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub RemoveAssemblyOptions: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub SetAssemblyOptions: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetExpressionSyntax: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetExpressionSyntax: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub SetExpressionSyntaxByName: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR) -> windows_core::HRESULT,
pub GetNumberExpressionSyntaxes: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetExpressionSyntaxNames: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PSTR, u32, *mut u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetNumberEvents: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetEventIndexDescription: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, windows_core::PCSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetCurrentEventIndex: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetNextEventIndex: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, *mut u32) -> windows_core::HRESULT,
pub GetLogFileWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PWSTR, u32, *mut u32, *mut super::super::super::super::Foundation::BOOL) -> windows_core::HRESULT,
pub OpenLogFileWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR, super::super::super::super::Foundation::BOOL) -> windows_core::HRESULT,
pub InputWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub ReturnInputWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR) -> windows_core::HRESULT,
pub OutputWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCWSTR) -> windows_core::HRESULT,
pub OutputVaListWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCWSTR, *const i8) -> windows_core::HRESULT,
pub ControlledOutputWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, windows_core::PCWSTR) -> windows_core::HRESULT,
pub ControlledOutputVaListWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, windows_core::PCWSTR, *const i8) -> windows_core::HRESULT,
pub OutputPromptWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCWSTR) -> windows_core::HRESULT,
pub OutputPromptVaListWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCWSTR, *const i8) -> windows_core::HRESULT,
pub GetPromptTextWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub AssembleWide: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PCWSTR, *mut u64) -> windows_core::HRESULT,
pub DisassembleWide: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, windows_core::PWSTR, u32, *mut u32, *mut u64) -> windows_core::HRESULT,
pub GetProcessorTypeNamesWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PWSTR, u32, *mut u32, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetTextMacroWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetTextMacroWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCWSTR) -> windows_core::HRESULT,
pub EvaluateWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR, u32, *mut DEBUG_VALUE, *mut u32) -> windows_core::HRESULT,
pub ExecuteWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCWSTR, u32) -> windows_core::HRESULT,
pub ExecuteCommandFileWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCWSTR, u32) -> windows_core::HRESULT,
pub GetBreakpointByIndex2: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetBreakpointById2: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub AddBreakpoint2: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub RemoveBreakpoint2: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub AddExtensionWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR, u32, *mut u64) -> windows_core::HRESULT,
pub GetExtensionByPathWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR, *mut u64) -> windows_core::HRESULT,
pub CallExtensionWide: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PCWSTR, windows_core::PCWSTR) -> windows_core::HRESULT,
pub GetExtensionFunctionWide: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PCWSTR, *mut super::super::super::super::Foundation::FARPROC) -> windows_core::HRESULT,
pub GetEventFilterTextWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetEventFilterCommandWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetEventFilterCommandWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCWSTR) -> windows_core::HRESULT,
pub GetSpecificFilterArgumentWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetSpecificFilterArgumentWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCWSTR) -> windows_core::HRESULT,
pub GetExceptionFilterSecondCommandWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetExceptionFilterSecondCommandWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCWSTR) -> windows_core::HRESULT,
pub GetLastEventInformationWide: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32, *mut u32, *mut u32, *mut core::ffi::c_void, u32, *mut u32, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetTextReplacementWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR, u32, windows_core::PWSTR, u32, *mut u32, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetTextReplacementWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR, windows_core::PCWSTR) -> windows_core::HRESULT,
pub SetExpressionSyntaxByNameWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR) -> windows_core::HRESULT,
pub GetExpressionSyntaxNamesWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PWSTR, u32, *mut u32, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetEventIndexDescriptionWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, windows_core::PCWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetLogFile2: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PSTR, u32, *mut u32, *mut u32) -> windows_core::HRESULT,
pub OpenLogFile2: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, u32) -> windows_core::HRESULT,
pub GetLogFile2Wide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PWSTR, u32, *mut u32, *mut u32) -> windows_core::HRESULT,
pub OpenLogFile2Wide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR, u32) -> windows_core::HRESULT,
pub GetSystemVersionValues: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32, *mut u32, *mut u32, *mut u32, *mut u32) -> windows_core::HRESULT,
pub GetSystemVersionString: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetSystemVersionStringWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetContextStackTrace: unsafe extern "system" fn(*mut core::ffi::c_void, *const core::ffi::c_void, u32, *mut DEBUG_STACK_FRAME, u32, *mut core::ffi::c_void, u32, u32, *mut u32) -> windows_core::HRESULT,
pub OutputContextStackTrace: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *const DEBUG_STACK_FRAME, u32, *const core::ffi::c_void, u32, u32, u32) -> windows_core::HRESULT,
pub GetStoredEventInformation: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32, *mut u32, *mut u32, *mut core::ffi::c_void, u32, *mut u32, *mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub GetManagedStatus: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32, u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetManagedStatusWide: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32, u32, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub ResetManagedStatus: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetStackTraceEx: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u64, u64, *mut DEBUG_STACK_FRAME_EX, u32, *mut u32) -> windows_core::HRESULT,
pub OutputStackTraceEx: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *const DEBUG_STACK_FRAME_EX, u32, u32) -> windows_core::HRESULT,
pub GetContextStackTraceEx: unsafe extern "system" fn(*mut core::ffi::c_void, *const core::ffi::c_void, u32, *mut DEBUG_STACK_FRAME_EX, u32, *mut core::ffi::c_void, u32, u32, *mut u32) -> windows_core::HRESULT,
pub OutputContextStackTraceEx: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *const DEBUG_STACK_FRAME_EX, u32, *const core::ffi::c_void, u32, u32, u32) -> windows_core::HRESULT,
pub GetBreakpointByGuid: unsafe extern "system" fn(*mut core::ffi::c_void, *const windows_core::GUID, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IDebugControl6, IDebugControl6_Vtbl, 0xbc0d583f_126d_43a1_9cc4_a860ab1d537b);
impl core::ops::Deref for IDebugControl6 {
type Target = windows_core::IUnknown;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetInterruptTimeout)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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()
}
pub unsafe fn GetLogFile(&self, buffer: Option<&mut [u8]>, filesize: 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()
}
pub unsafe fn OpenLogFile<P0, P1>(&self, file: P0, append: P1) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
P1: windows_core::Param<super::super::super::super::Foundation::BOOL>,
{
(windows_core::Interface::vtable(self).OpenLogFile)(windows_core::Interface::as_raw(self), file.param().abi(), append.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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetLogMask)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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: 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).ReturnInput)(windows_core::Interface::as_raw(self), buffer.param().abi()).ok()
}
pub unsafe fn Output<P0>(&self, mask: u32, format: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).Output)(windows_core::Interface::as_raw(self), mask, format.param().abi()).ok()
}
pub unsafe fn OutputVaList<P0>(&self, mask: u32, format: P0, args: *const i8) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).OutputVaList)(windows_core::Interface::as_raw(self), mask, format.param().abi(), args).ok()
}
pub unsafe fn ControlledOutput<P0>(&self, outputcontrol: u32, mask: u32, format: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).ControlledOutput)(windows_core::Interface::as_raw(self), outputcontrol, mask, format.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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).ControlledOutputVaList)(windows_core::Interface::as_raw(self), outputcontrol, mask, format.param().abi(), args).ok()
}
pub unsafe fn OutputPrompt<P0>(&self, outputcontrol: u32, format: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).OutputPrompt)(windows_core::Interface::as_raw(self), outputcontrol, format.param().abi()).ok()
}
pub unsafe fn OutputPromptVaList<P0>(&self, outputcontrol: u32, format: P0, args: *const i8) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).OutputPromptVaList)(windows_core::Interface::as_raw(self), outputcontrol, format.param().abi(), args).ok()
}
pub unsafe fn GetPromptText(&self, buffer: Option<&mut [u8]>, textsize: 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNotifyEventHandle)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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::Param<windows_core::PCSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Assemble)(windows_core::Interface::as_raw(self), offset, instr.param().abi(), &mut result__).map(|| result__)
}
pub unsafe fn Disassemble(&self, offset: u64, flags: u32, buffer: Option<&mut [u8]>, disassemblysize: 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetDisassembleEffectiveOffset)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn OutputDisassembly(&self, outputcontrol: u32, offset: u64, flags: u32) -> windows_core::Result<u64> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).OutputDisassembly)(windows_core::Interface::as_raw(self), outputcontrol, offset, flags, &mut result__).map(|| result__)
}
pub unsafe fn OutputDisassemblyLines(&self, outputcontrol: u32, previouslines: u32, offset: u64, flags: u32, offsetline: Option<*mut u32>, startoffset: Option<*mut u64>, endoffset: Option<*mut u64>, lineoffsets: 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNearInstruction)(windows_core::Interface::as_raw(self), offset, delta, &mut result__).map(|| result__)
}
pub unsafe fn GetStackTrace(&self, frameoffset: u64, stackoffset: u64, instructionoffset: u64, frames: &mut [DEBUG_STACK_FRAME], framesfilled: 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetReturnOffset)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn OutputStackTrace(&self, outputcontrol: u32, frames: 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetActualProcessorType)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetExecutingProcessorType(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetExecutingProcessorType)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetNumberPossibleExecutingProcessorTypes(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNumberPossibleExecutingProcessorTypes)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNumberProcessors)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetSystemVersion(&self, platformid: *mut u32, major: *mut u32, minor: *mut u32, servicepackstring: Option<&mut [u8]>, servicepackstringused: Option<*mut u32>, servicepacknumber: *mut u32, buildstring: Option<&mut [u8]>, buildstringused: 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetPageSize)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNumberSupportedProcessorTypes)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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: Option<&mut [u8]>, fullnamesize: Option<*mut u32>, abbrevnamebuffer: Option<&mut [u8]>, abbrevnamesize: 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetEffectiveProcessorType)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetExecutionStatus)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCodeLevel)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetEngineOptions)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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: Option<&mut [u8]>, macrosize: 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).SetTextMacro)(windows_core::Interface::as_raw(self), slot, r#macro.param().abi()).ok()
}
pub unsafe fn GetRadix(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRadix)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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()
}
pub unsafe fn Evaluate<P0>(&self, expression: P0, desiredtype: u32, value: *mut DEBUG_VALUE, remainderindex: Option<*mut u32>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).Evaluate)(windows_core::Interface::as_raw(self), expression.param().abi(), desiredtype, value, core::mem::transmute(remainderindex.unwrap_or(std::ptr::null_mut()))).ok()
}
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()
}
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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).Execute)(windows_core::Interface::as_raw(self), outputcontrol, command.param().abi(), flags).ok()
}
pub unsafe fn ExecuteCommandFile<P0>(&self, outputcontrol: u32, commandfile: P0, flags: u32) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).ExecuteCommandFile)(windows_core::Interface::as_raw(self), outputcontrol, commandfile.param().abi(), flags).ok()
}
pub unsafe fn GetNumberBreakpoints(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNumberBreakpoints)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetBreakpointByIndex(&self, index: u32) -> windows_core::Result<IDebugBreakpoint> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetBreakpointByIndex)(windows_core::Interface::as_raw(self), index, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn GetBreakpointById(&self, id: u32) -> windows_core::Result<IDebugBreakpoint> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetBreakpointById)(windows_core::Interface::as_raw(self), id, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn GetBreakpointParameters(&self, count: u32, ids: 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).AddBreakpoint)(windows_core::Interface::as_raw(self), r#type, desiredid, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn RemoveBreakpoint<P0>(&self, bp: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<IDebugBreakpoint>,
{
(windows_core::Interface::vtable(self).RemoveBreakpoint)(windows_core::Interface::as_raw(self), bp.param().abi()).ok()
}
pub unsafe fn AddExtension<P0>(&self, path: P0, flags: u32) -> windows_core::Result<u64>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).AddExtension)(windows_core::Interface::as_raw(self), path.param().abi(), flags, &mut result__).map(|| 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::Param<windows_core::PCSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetExtensionByPath)(windows_core::Interface::as_raw(self), path.param().abi(), &mut result__).map(|| result__)
}
pub unsafe fn CallExtension<P0, P1>(&self, handle: u64, function: P0, arguments: P1) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
P1: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).CallExtension)(windows_core::Interface::as_raw(self), handle, function.param().abi(), arguments.param().abi()).ok()
}
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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).GetExtensionFunction)(windows_core::Interface::as_raw(self), handle, funcname.param().abi(), function).ok()
}
#[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()
}
#[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: Option<&mut [u8]>, textsize: 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: Option<&mut [u8]>, commandsize: 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).SetEventFilterCommand)(windows_core::Interface::as_raw(self), index, command.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: Option<&mut [u8]>, argumentsize: 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).SetSpecificFilterArgument)(windows_core::Interface::as_raw(self), index, argument.param().abi()).ok()
}
pub unsafe fn GetExceptionFilterParameters(&self, count: u32, codes: 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: Option<&mut [u8]>, commandsize: 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).SetExceptionFilterSecondCommand)(windows_core::Interface::as_raw(self), index, command.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: Option<*mut core::ffi::c_void>, extrainformationsize: u32, extrainformationused: Option<*mut u32>, description: Option<&mut [u8]>, descriptionused: 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCurrentTimeDate)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetCurrentSystemUpTime(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCurrentSystemUpTime)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetDumpFormatFlags(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetDumpFormatFlags)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetNumberTextReplacements(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNumberTextReplacements)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetTextReplacement<P0>(&self, srctext: P0, index: u32, srcbuffer: Option<&mut [u8]>, srcsize: Option<*mut u32>, dstbuffer: Option<&mut [u8]>, dstsize: Option<*mut u32>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).GetTextReplacement)(
windows_core::Interface::as_raw(self),
srctext.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::Param<windows_core::PCSTR>,
P1: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).SetTextReplacement)(windows_core::Interface::as_raw(self), srctext.param().abi(), dsttext.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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetAssemblyOptions)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetExpressionSyntax)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).SetExpressionSyntaxByName)(windows_core::Interface::as_raw(self), abbrevname.param().abi()).ok()
}
pub unsafe fn GetNumberExpressionSyntaxes(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNumberExpressionSyntaxes)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetExpressionSyntaxNames(&self, index: u32, fullnamebuffer: Option<&mut [u8]>, fullnamesize: Option<*mut u32>, abbrevnamebuffer: Option<&mut [u8]>, abbrevnamesize: 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNumberEvents)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetEventIndexDescription<P0>(&self, index: u32, which: u32, buffer: P0, buffersize: u32, descsize: Option<*mut u32>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).GetEventIndexDescription)(windows_core::Interface::as_raw(self), index, which, buffer.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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCurrentEventIndex)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn SetNextEventIndex(&self, relation: u32, value: u32) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).SetNextEventIndex)(windows_core::Interface::as_raw(self), relation, value, &mut result__).map(|| result__)
}
pub unsafe fn GetLogFileWide(&self, buffer: Option<&mut [u16]>, filesize: 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()
}
pub unsafe fn OpenLogFileWide<P0, P1>(&self, file: P0, append: P1) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
P1: windows_core::Param<super::super::super::super::Foundation::BOOL>,
{
(windows_core::Interface::vtable(self).OpenLogFileWide)(windows_core::Interface::as_raw(self), file.param().abi(), append.param().abi()).ok()
}
pub unsafe fn InputWide(&self, buffer: &mut [u16], inputsize: 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::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).ReturnInputWide)(windows_core::Interface::as_raw(self), buffer.param().abi()).ok()
}
pub unsafe fn OutputWide<P0>(&self, mask: u32, format: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).OutputWide)(windows_core::Interface::as_raw(self), mask, format.param().abi()).ok()
}
pub unsafe fn OutputVaListWide<P0>(&self, mask: u32, format: P0, args: *const i8) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).OutputVaListWide)(windows_core::Interface::as_raw(self), mask, format.param().abi(), args).ok()
}
pub unsafe fn ControlledOutputWide<P0>(&self, outputcontrol: u32, mask: u32, format: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).ControlledOutputWide)(windows_core::Interface::as_raw(self), outputcontrol, mask, format.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::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).ControlledOutputVaListWide)(windows_core::Interface::as_raw(self), outputcontrol, mask, format.param().abi(), args).ok()
}
pub unsafe fn OutputPromptWide<P0>(&self, outputcontrol: u32, format: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).OutputPromptWide)(windows_core::Interface::as_raw(self), outputcontrol, format.param().abi()).ok()
}
pub unsafe fn OutputPromptVaListWide<P0>(&self, outputcontrol: u32, format: P0, args: *const i8) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).OutputPromptVaListWide)(windows_core::Interface::as_raw(self), outputcontrol, format.param().abi(), args).ok()
}
pub unsafe fn GetPromptTextWide(&self, buffer: Option<&mut [u16]>, textsize: 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::Param<windows_core::PCWSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).AssembleWide)(windows_core::Interface::as_raw(self), offset, instr.param().abi(), &mut result__).map(|| result__)
}
pub unsafe fn DisassembleWide(&self, offset: u64, flags: u32, buffer: Option<&mut [u16]>, disassemblysize: 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: Option<&mut [u16]>, fullnamesize: Option<*mut u32>, abbrevnamebuffer: Option<&mut [u16]>, abbrevnamesize: 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: Option<&mut [u16]>, macrosize: 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::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).SetTextMacroWide)(windows_core::Interface::as_raw(self), slot, r#macro.param().abi()).ok()
}
pub unsafe fn EvaluateWide<P0>(&self, expression: P0, desiredtype: u32, value: *mut DEBUG_VALUE, remainderindex: Option<*mut u32>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).EvaluateWide)(windows_core::Interface::as_raw(self), expression.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::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).ExecuteWide)(windows_core::Interface::as_raw(self), outputcontrol, command.param().abi(), flags).ok()
}
pub unsafe fn ExecuteCommandFileWide<P0>(&self, outputcontrol: u32, commandfile: P0, flags: u32) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).ExecuteCommandFileWide)(windows_core::Interface::as_raw(self), outputcontrol, commandfile.param().abi(), flags).ok()
}
pub unsafe fn GetBreakpointByIndex2(&self, index: u32) -> windows_core::Result<IDebugBreakpoint2> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetBreakpointByIndex2)(windows_core::Interface::as_raw(self), index, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn GetBreakpointById2(&self, id: u32) -> windows_core::Result<IDebugBreakpoint2> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetBreakpointById2)(windows_core::Interface::as_raw(self), id, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn AddBreakpoint2(&self, r#type: u32, desiredid: u32) -> windows_core::Result<IDebugBreakpoint2> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).AddBreakpoint2)(windows_core::Interface::as_raw(self), r#type, desiredid, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn RemoveBreakpoint2<P0>(&self, bp: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<IDebugBreakpoint2>,
{
(windows_core::Interface::vtable(self).RemoveBreakpoint2)(windows_core::Interface::as_raw(self), bp.param().abi()).ok()
}
pub unsafe fn AddExtensionWide<P0>(&self, path: P0, flags: u32) -> windows_core::Result<u64>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).AddExtensionWide)(windows_core::Interface::as_raw(self), path.param().abi(), flags, &mut result__).map(|| result__)
}
pub unsafe fn GetExtensionByPathWide<P0>(&self, path: P0) -> windows_core::Result<u64>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetExtensionByPathWide)(windows_core::Interface::as_raw(self), path.param().abi(), &mut result__).map(|| result__)
}
pub unsafe fn CallExtensionWide<P0, P1>(&self, handle: u64, function: P0, arguments: P1) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
P1: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).CallExtensionWide)(windows_core::Interface::as_raw(self), handle, function.param().abi(), arguments.param().abi()).ok()
}
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::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).GetExtensionFunctionWide)(windows_core::Interface::as_raw(self), handle, funcname.param().abi(), function).ok()
}
pub unsafe fn GetEventFilterTextWide(&self, index: u32, buffer: Option<&mut [u16]>, textsize: 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: Option<&mut [u16]>, commandsize: 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::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).SetEventFilterCommandWide)(windows_core::Interface::as_raw(self), index, command.param().abi()).ok()
}
pub unsafe fn GetSpecificFilterArgumentWide(&self, index: u32, buffer: Option<&mut [u16]>, argumentsize: 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::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).SetSpecificFilterArgumentWide)(windows_core::Interface::as_raw(self), index, argument.param().abi()).ok()
}
pub unsafe fn GetExceptionFilterSecondCommandWide(&self, index: u32, buffer: Option<&mut [u16]>, commandsize: 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::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).SetExceptionFilterSecondCommandWide)(windows_core::Interface::as_raw(self), index, command.param().abi()).ok()
}
pub unsafe fn GetLastEventInformationWide(&self, r#type: *mut u32, processid: *mut u32, threadid: *mut u32, extrainformation: Option<*mut core::ffi::c_void>, extrainformationsize: u32, extrainformationused: Option<*mut u32>, description: Option<&mut [u16]>, descriptionused: 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: Option<&mut [u16]>, srcsize: Option<*mut u32>, dstbuffer: Option<&mut [u16]>, dstsize: Option<*mut u32>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).GetTextReplacementWide)(
windows_core::Interface::as_raw(self),
srctext.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::Param<windows_core::PCWSTR>,
P1: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).SetTextReplacementWide)(windows_core::Interface::as_raw(self), srctext.param().abi(), dsttext.param().abi()).ok()
}
pub unsafe fn SetExpressionSyntaxByNameWide<P0>(&self, abbrevname: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).SetExpressionSyntaxByNameWide)(windows_core::Interface::as_raw(self), abbrevname.param().abi()).ok()
}
pub unsafe fn GetExpressionSyntaxNamesWide(&self, index: u32, fullnamebuffer: Option<&mut [u16]>, fullnamesize: Option<*mut u32>, abbrevnamebuffer: Option<&mut [u16]>, abbrevnamesize: 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: Option<*mut u32>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).GetEventIndexDescriptionWide)(windows_core::Interface::as_raw(self), index, which, buffer.param().abi(), buffersize, core::mem::transmute(descsize.unwrap_or(std::ptr::null_mut()))).ok()
}
pub unsafe fn GetLogFile2(&self, buffer: Option<&mut [u8]>, filesize: 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).OpenLogFile2)(windows_core::Interface::as_raw(self), file.param().abi(), flags).ok()
}
pub unsafe fn GetLogFile2Wide(&self, buffer: Option<&mut [u16]>, filesize: 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::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).OpenLogFile2Wide)(windows_core::Interface::as_raw(self), file.param().abi(), flags).ok()
}
pub unsafe fn GetSystemVersionValues(&self, platformid: *mut u32, win32major: *mut u32, win32minor: *mut u32, kdmajor: Option<*mut u32>, kdminor: 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: Option<&mut [u8]>, stringsize: 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: Option<&mut [u16]>, stringsize: 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()
}
pub unsafe fn GetContextStackTrace(&self, startcontext: Option<*const core::ffi::c_void>, startcontextsize: u32, frames: Option<&mut [DEBUG_STACK_FRAME]>, framecontexts: Option<*mut core::ffi::c_void>, framecontextssize: u32, framecontextsentrysize: u32, framesfilled: 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()
}
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: Option<*mut core::ffi::c_void>, contextsize: u32, contextused: Option<*mut u32>, extrainformation: Option<*mut core::ffi::c_void>, extrainformationsize: u32, extrainformationused: 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: Option<*mut u32>, whichstring: u32, string: Option<&mut [u8]>, stringneeded: 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: Option<*mut u32>, whichstring: u32, string: Option<&mut [u16]>, stringneeded: 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()
}
pub unsafe fn GetStackTraceEx(&self, frameoffset: u64, stackoffset: u64, instructionoffset: u64, frames: &mut [DEBUG_STACK_FRAME_EX], framesfilled: 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()
}
pub unsafe fn OutputStackTraceEx(&self, outputcontrol: u32, frames: 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()
}
pub unsafe fn GetContextStackTraceEx(&self, startcontext: Option<*const core::ffi::c_void>, startcontextsize: u32, frames: Option<&mut [DEBUG_STACK_FRAME_EX]>, framecontexts: Option<*mut core::ffi::c_void>, framecontextssize: u32, framecontextsentrysize: u32, framesfilled: 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()
}
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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetBreakpointByGuid)(windows_core::Interface::as_raw(self), guid, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn GetExecutionStatusEx(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetExecutionStatusEx)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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()
}
}
#[repr(C)]
pub struct IDebugControl6_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetInterrupt: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub SetInterrupt: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetInterruptTimeout: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetInterruptTimeout: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetLogFile: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PSTR, u32, *mut u32, *mut super::super::super::super::Foundation::BOOL) -> windows_core::HRESULT,
pub OpenLogFile: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, super::super::super::super::Foundation::BOOL) -> windows_core::HRESULT,
pub CloseLogFile: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetLogMask: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetLogMask: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub Input: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub ReturnInput: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR) -> windows_core::HRESULT,
pub Output: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR) -> windows_core::HRESULT,
pub OutputVaList: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR, *const i8) -> windows_core::HRESULT,
pub ControlledOutput: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, windows_core::PCSTR) -> windows_core::HRESULT,
pub ControlledOutputVaList: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, windows_core::PCSTR, *const i8) -> windows_core::HRESULT,
pub OutputPrompt: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR) -> windows_core::HRESULT,
pub OutputPromptVaList: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR, *const i8) -> windows_core::HRESULT,
pub GetPromptText: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub OutputCurrentState: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32) -> windows_core::HRESULT,
pub OutputVersionInformation: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetNotifyEventHandle: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u64) -> windows_core::HRESULT,
pub SetNotifyEventHandle: unsafe extern "system" fn(*mut core::ffi::c_void, u64) -> windows_core::HRESULT,
pub Assemble: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PCSTR, *mut u64) -> windows_core::HRESULT,
pub Disassemble: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, windows_core::PSTR, u32, *mut u32, *mut u64) -> windows_core::HRESULT,
pub GetDisassembleEffectiveOffset: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u64) -> windows_core::HRESULT,
pub OutputDisassembly: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u64, u32, *mut u64) -> windows_core::HRESULT,
pub OutputDisassemblyLines: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, u32, u64, u32, *mut u32, *mut u64, *mut u64, *mut u64) -> windows_core::HRESULT,
pub GetNearInstruction: unsafe extern "system" fn(*mut core::ffi::c_void, u64, i32, *mut u64) -> windows_core::HRESULT,
pub GetStackTrace: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u64, u64, *mut DEBUG_STACK_FRAME, u32, *mut u32) -> windows_core::HRESULT,
pub GetReturnOffset: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u64) -> windows_core::HRESULT,
pub OutputStackTrace: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *const DEBUG_STACK_FRAME, u32, u32) -> windows_core::HRESULT,
pub GetDebuggeeType: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32, *mut u32) -> windows_core::HRESULT,
pub GetActualProcessorType: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetExecutingProcessorType: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetNumberPossibleExecutingProcessorTypes: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetPossibleExecutingProcessorTypes: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, *mut u32) -> windows_core::HRESULT,
pub GetNumberProcessors: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetSystemVersion: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32, *mut u32, *mut u32, windows_core::PSTR, u32, *mut u32, *mut u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetPageSize: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub IsPointer64Bit: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub ReadBugCheckData: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32, *mut u64, *mut u64, *mut u64, *mut u64) -> windows_core::HRESULT,
pub GetNumberSupportedProcessorTypes: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetSupportedProcessorTypes: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, *mut u32) -> windows_core::HRESULT,
pub GetProcessorTypeNames: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PSTR, u32, *mut u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetEffectiveProcessorType: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetEffectiveProcessorType: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetExecutionStatus: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetExecutionStatus: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetCodeLevel: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetCodeLevel: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetEngineOptions: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub AddEngineOptions: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub RemoveEngineOptions: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub SetEngineOptions: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetSystemErrorControl: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32, *mut u32) -> windows_core::HRESULT,
pub SetSystemErrorControl: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32) -> windows_core::HRESULT,
pub GetTextMacro: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetTextMacro: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR) -> windows_core::HRESULT,
pub GetRadix: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetRadix: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub Evaluate: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, u32, *mut DEBUG_VALUE, *mut u32) -> windows_core::HRESULT,
pub CoerceValue: unsafe extern "system" fn(*mut core::ffi::c_void, *const DEBUG_VALUE, u32, *mut DEBUG_VALUE) -> windows_core::HRESULT,
pub CoerceValues: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *const DEBUG_VALUE, *const u32, *mut DEBUG_VALUE) -> windows_core::HRESULT,
pub Execute: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR, u32) -> windows_core::HRESULT,
pub ExecuteCommandFile: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR, u32) -> windows_core::HRESULT,
pub GetNumberBreakpoints: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetBreakpointByIndex: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetBreakpointById: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetBreakpointParameters: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *const u32, u32, *mut DEBUG_BREAKPOINT_PARAMETERS) -> windows_core::HRESULT,
pub AddBreakpoint: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub RemoveBreakpoint: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub AddExtension: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, u32, *mut u64) -> windows_core::HRESULT,
pub RemoveExtension: unsafe extern "system" fn(*mut core::ffi::c_void, u64) -> windows_core::HRESULT,
pub GetExtensionByPath: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, *mut u64) -> windows_core::HRESULT,
pub CallExtension: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PCSTR, windows_core::PCSTR) -> windows_core::HRESULT,
pub GetExtensionFunction: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PCSTR, *mut super::super::super::super::Foundation::FARPROC) -> windows_core::HRESULT,
#[cfg(feature = "Win32_System_Kernel")]
pub GetWindbgExtensionApis32: unsafe extern "system" fn(*mut core::ffi::c_void, *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(*mut core::ffi::c_void, *mut WINDBG_EXTENSION_APIS64) -> windows_core::HRESULT,
#[cfg(not(feature = "Win32_System_Kernel"))]
GetWindbgExtensionApis64: usize,
pub GetNumberEventFilters: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32, *mut u32, *mut u32) -> windows_core::HRESULT,
pub GetEventFilterText: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetEventFilterCommand: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetEventFilterCommand: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR) -> windows_core::HRESULT,
pub GetSpecificFilterParameters: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, *mut DEBUG_SPECIFIC_FILTER_PARAMETERS) -> windows_core::HRESULT,
pub SetSpecificFilterParameters: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, *const DEBUG_SPECIFIC_FILTER_PARAMETERS) -> windows_core::HRESULT,
pub GetSpecificFilterArgument: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetSpecificFilterArgument: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR) -> windows_core::HRESULT,
pub GetExceptionFilterParameters: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *const u32, u32, *mut DEBUG_EXCEPTION_FILTER_PARAMETERS) -> windows_core::HRESULT,
pub SetExceptionFilterParameters: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *const DEBUG_EXCEPTION_FILTER_PARAMETERS) -> windows_core::HRESULT,
pub GetExceptionFilterSecondCommand: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetExceptionFilterSecondCommand: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR) -> windows_core::HRESULT,
pub WaitForEvent: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32) -> windows_core::HRESULT,
pub GetLastEventInformation: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32, *mut u32, *mut u32, *mut core::ffi::c_void, u32, *mut u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetCurrentTimeDate: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetCurrentSystemUpTime: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetDumpFormatFlags: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetNumberTextReplacements: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetTextReplacement: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, u32, windows_core::PSTR, u32, *mut u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetTextReplacement: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, windows_core::PCSTR) -> windows_core::HRESULT,
pub RemoveTextReplacements: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub OutputTextReplacements: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32) -> windows_core::HRESULT,
pub GetAssemblyOptions: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub AddAssemblyOptions: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub RemoveAssemblyOptions: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub SetAssemblyOptions: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetExpressionSyntax: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetExpressionSyntax: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub SetExpressionSyntaxByName: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR) -> windows_core::HRESULT,
pub GetNumberExpressionSyntaxes: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetExpressionSyntaxNames: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PSTR, u32, *mut u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetNumberEvents: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetEventIndexDescription: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, windows_core::PCSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetCurrentEventIndex: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetNextEventIndex: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, *mut u32) -> windows_core::HRESULT,
pub GetLogFileWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PWSTR, u32, *mut u32, *mut super::super::super::super::Foundation::BOOL) -> windows_core::HRESULT,
pub OpenLogFileWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR, super::super::super::super::Foundation::BOOL) -> windows_core::HRESULT,
pub InputWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub ReturnInputWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR) -> windows_core::HRESULT,
pub OutputWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCWSTR) -> windows_core::HRESULT,
pub OutputVaListWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCWSTR, *const i8) -> windows_core::HRESULT,
pub ControlledOutputWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, windows_core::PCWSTR) -> windows_core::HRESULT,
pub ControlledOutputVaListWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, windows_core::PCWSTR, *const i8) -> windows_core::HRESULT,
pub OutputPromptWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCWSTR) -> windows_core::HRESULT,
pub OutputPromptVaListWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCWSTR, *const i8) -> windows_core::HRESULT,
pub GetPromptTextWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub AssembleWide: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PCWSTR, *mut u64) -> windows_core::HRESULT,
pub DisassembleWide: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, windows_core::PWSTR, u32, *mut u32, *mut u64) -> windows_core::HRESULT,
pub GetProcessorTypeNamesWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PWSTR, u32, *mut u32, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetTextMacroWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetTextMacroWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCWSTR) -> windows_core::HRESULT,
pub EvaluateWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR, u32, *mut DEBUG_VALUE, *mut u32) -> windows_core::HRESULT,
pub ExecuteWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCWSTR, u32) -> windows_core::HRESULT,
pub ExecuteCommandFileWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCWSTR, u32) -> windows_core::HRESULT,
pub GetBreakpointByIndex2: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetBreakpointById2: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub AddBreakpoint2: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub RemoveBreakpoint2: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub AddExtensionWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR, u32, *mut u64) -> windows_core::HRESULT,
pub GetExtensionByPathWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR, *mut u64) -> windows_core::HRESULT,
pub CallExtensionWide: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PCWSTR, windows_core::PCWSTR) -> windows_core::HRESULT,
pub GetExtensionFunctionWide: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PCWSTR, *mut super::super::super::super::Foundation::FARPROC) -> windows_core::HRESULT,
pub GetEventFilterTextWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetEventFilterCommandWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetEventFilterCommandWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCWSTR) -> windows_core::HRESULT,
pub GetSpecificFilterArgumentWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetSpecificFilterArgumentWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCWSTR) -> windows_core::HRESULT,
pub GetExceptionFilterSecondCommandWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetExceptionFilterSecondCommandWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCWSTR) -> windows_core::HRESULT,
pub GetLastEventInformationWide: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32, *mut u32, *mut u32, *mut core::ffi::c_void, u32, *mut u32, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetTextReplacementWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR, u32, windows_core::PWSTR, u32, *mut u32, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetTextReplacementWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR, windows_core::PCWSTR) -> windows_core::HRESULT,
pub SetExpressionSyntaxByNameWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR) -> windows_core::HRESULT,
pub GetExpressionSyntaxNamesWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PWSTR, u32, *mut u32, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetEventIndexDescriptionWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, windows_core::PCWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetLogFile2: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PSTR, u32, *mut u32, *mut u32) -> windows_core::HRESULT,
pub OpenLogFile2: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, u32) -> windows_core::HRESULT,
pub GetLogFile2Wide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PWSTR, u32, *mut u32, *mut u32) -> windows_core::HRESULT,
pub OpenLogFile2Wide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR, u32) -> windows_core::HRESULT,
pub GetSystemVersionValues: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32, *mut u32, *mut u32, *mut u32, *mut u32) -> windows_core::HRESULT,
pub GetSystemVersionString: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetSystemVersionStringWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetContextStackTrace: unsafe extern "system" fn(*mut core::ffi::c_void, *const core::ffi::c_void, u32, *mut DEBUG_STACK_FRAME, u32, *mut core::ffi::c_void, u32, u32, *mut u32) -> windows_core::HRESULT,
pub OutputContextStackTrace: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *const DEBUG_STACK_FRAME, u32, *const core::ffi::c_void, u32, u32, u32) -> windows_core::HRESULT,
pub GetStoredEventInformation: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32, *mut u32, *mut u32, *mut core::ffi::c_void, u32, *mut u32, *mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub GetManagedStatus: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32, u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetManagedStatusWide: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32, u32, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub ResetManagedStatus: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetStackTraceEx: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u64, u64, *mut DEBUG_STACK_FRAME_EX, u32, *mut u32) -> windows_core::HRESULT,
pub OutputStackTraceEx: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *const DEBUG_STACK_FRAME_EX, u32, u32) -> windows_core::HRESULT,
pub GetContextStackTraceEx: unsafe extern "system" fn(*mut core::ffi::c_void, *const core::ffi::c_void, u32, *mut DEBUG_STACK_FRAME_EX, u32, *mut core::ffi::c_void, u32, u32, *mut u32) -> windows_core::HRESULT,
pub OutputContextStackTraceEx: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *const DEBUG_STACK_FRAME_EX, u32, *const core::ffi::c_void, u32, u32, u32) -> windows_core::HRESULT,
pub GetBreakpointByGuid: unsafe extern "system" fn(*mut core::ffi::c_void, *const windows_core::GUID, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetExecutionStatusEx: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetSynchronizationStatus: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32, *mut u32) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IDebugControl7, IDebugControl7_Vtbl, 0xb86fb3b1_80d4_475b_aea3_cf06539cf63a);
impl core::ops::Deref for IDebugControl7 {
type Target = windows_core::IUnknown;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetInterruptTimeout)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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()
}
pub unsafe fn GetLogFile(&self, buffer: Option<&mut [u8]>, filesize: 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()
}
pub unsafe fn OpenLogFile<P0, P1>(&self, file: P0, append: P1) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
P1: windows_core::Param<super::super::super::super::Foundation::BOOL>,
{
(windows_core::Interface::vtable(self).OpenLogFile)(windows_core::Interface::as_raw(self), file.param().abi(), append.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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetLogMask)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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: 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).ReturnInput)(windows_core::Interface::as_raw(self), buffer.param().abi()).ok()
}
pub unsafe fn Output<P0>(&self, mask: u32, format: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).Output)(windows_core::Interface::as_raw(self), mask, format.param().abi()).ok()
}
pub unsafe fn OutputVaList<P0>(&self, mask: u32, format: P0, args: *const i8) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).OutputVaList)(windows_core::Interface::as_raw(self), mask, format.param().abi(), args).ok()
}
pub unsafe fn ControlledOutput<P0>(&self, outputcontrol: u32, mask: u32, format: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).ControlledOutput)(windows_core::Interface::as_raw(self), outputcontrol, mask, format.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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).ControlledOutputVaList)(windows_core::Interface::as_raw(self), outputcontrol, mask, format.param().abi(), args).ok()
}
pub unsafe fn OutputPrompt<P0>(&self, outputcontrol: u32, format: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).OutputPrompt)(windows_core::Interface::as_raw(self), outputcontrol, format.param().abi()).ok()
}
pub unsafe fn OutputPromptVaList<P0>(&self, outputcontrol: u32, format: P0, args: *const i8) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).OutputPromptVaList)(windows_core::Interface::as_raw(self), outputcontrol, format.param().abi(), args).ok()
}
pub unsafe fn GetPromptText(&self, buffer: Option<&mut [u8]>, textsize: 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNotifyEventHandle)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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::Param<windows_core::PCSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Assemble)(windows_core::Interface::as_raw(self), offset, instr.param().abi(), &mut result__).map(|| result__)
}
pub unsafe fn Disassemble(&self, offset: u64, flags: u32, buffer: Option<&mut [u8]>, disassemblysize: 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetDisassembleEffectiveOffset)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn OutputDisassembly(&self, outputcontrol: u32, offset: u64, flags: u32) -> windows_core::Result<u64> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).OutputDisassembly)(windows_core::Interface::as_raw(self), outputcontrol, offset, flags, &mut result__).map(|| result__)
}
pub unsafe fn OutputDisassemblyLines(&self, outputcontrol: u32, previouslines: u32, offset: u64, flags: u32, offsetline: Option<*mut u32>, startoffset: Option<*mut u64>, endoffset: Option<*mut u64>, lineoffsets: 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNearInstruction)(windows_core::Interface::as_raw(self), offset, delta, &mut result__).map(|| result__)
}
pub unsafe fn GetStackTrace(&self, frameoffset: u64, stackoffset: u64, instructionoffset: u64, frames: &mut [DEBUG_STACK_FRAME], framesfilled: 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetReturnOffset)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn OutputStackTrace(&self, outputcontrol: u32, frames: 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetActualProcessorType)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetExecutingProcessorType(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetExecutingProcessorType)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetNumberPossibleExecutingProcessorTypes(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNumberPossibleExecutingProcessorTypes)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNumberProcessors)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetSystemVersion(&self, platformid: *mut u32, major: *mut u32, minor: *mut u32, servicepackstring: Option<&mut [u8]>, servicepackstringused: Option<*mut u32>, servicepacknumber: *mut u32, buildstring: Option<&mut [u8]>, buildstringused: 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetPageSize)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNumberSupportedProcessorTypes)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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: Option<&mut [u8]>, fullnamesize: Option<*mut u32>, abbrevnamebuffer: Option<&mut [u8]>, abbrevnamesize: 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetEffectiveProcessorType)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetExecutionStatus)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCodeLevel)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetEngineOptions)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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: Option<&mut [u8]>, macrosize: 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).SetTextMacro)(windows_core::Interface::as_raw(self), slot, r#macro.param().abi()).ok()
}
pub unsafe fn GetRadix(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRadix)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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()
}
pub unsafe fn Evaluate<P0>(&self, expression: P0, desiredtype: u32, value: *mut DEBUG_VALUE, remainderindex: Option<*mut u32>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).Evaluate)(windows_core::Interface::as_raw(self), expression.param().abi(), desiredtype, value, core::mem::transmute(remainderindex.unwrap_or(std::ptr::null_mut()))).ok()
}
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()
}
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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).Execute)(windows_core::Interface::as_raw(self), outputcontrol, command.param().abi(), flags).ok()
}
pub unsafe fn ExecuteCommandFile<P0>(&self, outputcontrol: u32, commandfile: P0, flags: u32) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).ExecuteCommandFile)(windows_core::Interface::as_raw(self), outputcontrol, commandfile.param().abi(), flags).ok()
}
pub unsafe fn GetNumberBreakpoints(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNumberBreakpoints)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetBreakpointByIndex(&self, index: u32) -> windows_core::Result<IDebugBreakpoint> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetBreakpointByIndex)(windows_core::Interface::as_raw(self), index, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn GetBreakpointById(&self, id: u32) -> windows_core::Result<IDebugBreakpoint> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetBreakpointById)(windows_core::Interface::as_raw(self), id, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn GetBreakpointParameters(&self, count: u32, ids: 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).AddBreakpoint)(windows_core::Interface::as_raw(self), r#type, desiredid, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn RemoveBreakpoint<P0>(&self, bp: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<IDebugBreakpoint>,
{
(windows_core::Interface::vtable(self).RemoveBreakpoint)(windows_core::Interface::as_raw(self), bp.param().abi()).ok()
}
pub unsafe fn AddExtension<P0>(&self, path: P0, flags: u32) -> windows_core::Result<u64>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).AddExtension)(windows_core::Interface::as_raw(self), path.param().abi(), flags, &mut result__).map(|| 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::Param<windows_core::PCSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetExtensionByPath)(windows_core::Interface::as_raw(self), path.param().abi(), &mut result__).map(|| result__)
}
pub unsafe fn CallExtension<P0, P1>(&self, handle: u64, function: P0, arguments: P1) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
P1: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).CallExtension)(windows_core::Interface::as_raw(self), handle, function.param().abi(), arguments.param().abi()).ok()
}
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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).GetExtensionFunction)(windows_core::Interface::as_raw(self), handle, funcname.param().abi(), function).ok()
}
#[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()
}
#[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: Option<&mut [u8]>, textsize: 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: Option<&mut [u8]>, commandsize: 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).SetEventFilterCommand)(windows_core::Interface::as_raw(self), index, command.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: Option<&mut [u8]>, argumentsize: 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).SetSpecificFilterArgument)(windows_core::Interface::as_raw(self), index, argument.param().abi()).ok()
}
pub unsafe fn GetExceptionFilterParameters(&self, count: u32, codes: 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: Option<&mut [u8]>, commandsize: 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).SetExceptionFilterSecondCommand)(windows_core::Interface::as_raw(self), index, command.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: Option<*mut core::ffi::c_void>, extrainformationsize: u32, extrainformationused: Option<*mut u32>, description: Option<&mut [u8]>, descriptionused: 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCurrentTimeDate)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetCurrentSystemUpTime(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCurrentSystemUpTime)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetDumpFormatFlags(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetDumpFormatFlags)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetNumberTextReplacements(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNumberTextReplacements)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetTextReplacement<P0>(&self, srctext: P0, index: u32, srcbuffer: Option<&mut [u8]>, srcsize: Option<*mut u32>, dstbuffer: Option<&mut [u8]>, dstsize: Option<*mut u32>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).GetTextReplacement)(
windows_core::Interface::as_raw(self),
srctext.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::Param<windows_core::PCSTR>,
P1: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).SetTextReplacement)(windows_core::Interface::as_raw(self), srctext.param().abi(), dsttext.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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetAssemblyOptions)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetExpressionSyntax)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).SetExpressionSyntaxByName)(windows_core::Interface::as_raw(self), abbrevname.param().abi()).ok()
}
pub unsafe fn GetNumberExpressionSyntaxes(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNumberExpressionSyntaxes)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetExpressionSyntaxNames(&self, index: u32, fullnamebuffer: Option<&mut [u8]>, fullnamesize: Option<*mut u32>, abbrevnamebuffer: Option<&mut [u8]>, abbrevnamesize: 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNumberEvents)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetEventIndexDescription<P0>(&self, index: u32, which: u32, buffer: P0, buffersize: u32, descsize: Option<*mut u32>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).GetEventIndexDescription)(windows_core::Interface::as_raw(self), index, which, buffer.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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCurrentEventIndex)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn SetNextEventIndex(&self, relation: u32, value: u32) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).SetNextEventIndex)(windows_core::Interface::as_raw(self), relation, value, &mut result__).map(|| result__)
}
pub unsafe fn GetLogFileWide(&self, buffer: Option<&mut [u16]>, filesize: 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()
}
pub unsafe fn OpenLogFileWide<P0, P1>(&self, file: P0, append: P1) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
P1: windows_core::Param<super::super::super::super::Foundation::BOOL>,
{
(windows_core::Interface::vtable(self).OpenLogFileWide)(windows_core::Interface::as_raw(self), file.param().abi(), append.param().abi()).ok()
}
pub unsafe fn InputWide(&self, buffer: &mut [u16], inputsize: 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::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).ReturnInputWide)(windows_core::Interface::as_raw(self), buffer.param().abi()).ok()
}
pub unsafe fn OutputWide<P0>(&self, mask: u32, format: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).OutputWide)(windows_core::Interface::as_raw(self), mask, format.param().abi()).ok()
}
pub unsafe fn OutputVaListWide<P0>(&self, mask: u32, format: P0, args: *const i8) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).OutputVaListWide)(windows_core::Interface::as_raw(self), mask, format.param().abi(), args).ok()
}
pub unsafe fn ControlledOutputWide<P0>(&self, outputcontrol: u32, mask: u32, format: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).ControlledOutputWide)(windows_core::Interface::as_raw(self), outputcontrol, mask, format.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::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).ControlledOutputVaListWide)(windows_core::Interface::as_raw(self), outputcontrol, mask, format.param().abi(), args).ok()
}
pub unsafe fn OutputPromptWide<P0>(&self, outputcontrol: u32, format: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).OutputPromptWide)(windows_core::Interface::as_raw(self), outputcontrol, format.param().abi()).ok()
}
pub unsafe fn OutputPromptVaListWide<P0>(&self, outputcontrol: u32, format: P0, args: *const i8) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).OutputPromptVaListWide)(windows_core::Interface::as_raw(self), outputcontrol, format.param().abi(), args).ok()
}
pub unsafe fn GetPromptTextWide(&self, buffer: Option<&mut [u16]>, textsize: 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::Param<windows_core::PCWSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).AssembleWide)(windows_core::Interface::as_raw(self), offset, instr.param().abi(), &mut result__).map(|| result__)
}
pub unsafe fn DisassembleWide(&self, offset: u64, flags: u32, buffer: Option<&mut [u16]>, disassemblysize: 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: Option<&mut [u16]>, fullnamesize: Option<*mut u32>, abbrevnamebuffer: Option<&mut [u16]>, abbrevnamesize: 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: Option<&mut [u16]>, macrosize: 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::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).SetTextMacroWide)(windows_core::Interface::as_raw(self), slot, r#macro.param().abi()).ok()
}
pub unsafe fn EvaluateWide<P0>(&self, expression: P0, desiredtype: u32, value: *mut DEBUG_VALUE, remainderindex: Option<*mut u32>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).EvaluateWide)(windows_core::Interface::as_raw(self), expression.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::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).ExecuteWide)(windows_core::Interface::as_raw(self), outputcontrol, command.param().abi(), flags).ok()
}
pub unsafe fn ExecuteCommandFileWide<P0>(&self, outputcontrol: u32, commandfile: P0, flags: u32) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).ExecuteCommandFileWide)(windows_core::Interface::as_raw(self), outputcontrol, commandfile.param().abi(), flags).ok()
}
pub unsafe fn GetBreakpointByIndex2(&self, index: u32) -> windows_core::Result<IDebugBreakpoint2> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetBreakpointByIndex2)(windows_core::Interface::as_raw(self), index, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn GetBreakpointById2(&self, id: u32) -> windows_core::Result<IDebugBreakpoint2> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetBreakpointById2)(windows_core::Interface::as_raw(self), id, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn AddBreakpoint2(&self, r#type: u32, desiredid: u32) -> windows_core::Result<IDebugBreakpoint2> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).AddBreakpoint2)(windows_core::Interface::as_raw(self), r#type, desiredid, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn RemoveBreakpoint2<P0>(&self, bp: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<IDebugBreakpoint2>,
{
(windows_core::Interface::vtable(self).RemoveBreakpoint2)(windows_core::Interface::as_raw(self), bp.param().abi()).ok()
}
pub unsafe fn AddExtensionWide<P0>(&self, path: P0, flags: u32) -> windows_core::Result<u64>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).AddExtensionWide)(windows_core::Interface::as_raw(self), path.param().abi(), flags, &mut result__).map(|| result__)
}
pub unsafe fn GetExtensionByPathWide<P0>(&self, path: P0) -> windows_core::Result<u64>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetExtensionByPathWide)(windows_core::Interface::as_raw(self), path.param().abi(), &mut result__).map(|| result__)
}
pub unsafe fn CallExtensionWide<P0, P1>(&self, handle: u64, function: P0, arguments: P1) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
P1: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).CallExtensionWide)(windows_core::Interface::as_raw(self), handle, function.param().abi(), arguments.param().abi()).ok()
}
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::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).GetExtensionFunctionWide)(windows_core::Interface::as_raw(self), handle, funcname.param().abi(), function).ok()
}
pub unsafe fn GetEventFilterTextWide(&self, index: u32, buffer: Option<&mut [u16]>, textsize: 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: Option<&mut [u16]>, commandsize: 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::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).SetEventFilterCommandWide)(windows_core::Interface::as_raw(self), index, command.param().abi()).ok()
}
pub unsafe fn GetSpecificFilterArgumentWide(&self, index: u32, buffer: Option<&mut [u16]>, argumentsize: 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::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).SetSpecificFilterArgumentWide)(windows_core::Interface::as_raw(self), index, argument.param().abi()).ok()
}
pub unsafe fn GetExceptionFilterSecondCommandWide(&self, index: u32, buffer: Option<&mut [u16]>, commandsize: 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::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).SetExceptionFilterSecondCommandWide)(windows_core::Interface::as_raw(self), index, command.param().abi()).ok()
}
pub unsafe fn GetLastEventInformationWide(&self, r#type: *mut u32, processid: *mut u32, threadid: *mut u32, extrainformation: Option<*mut core::ffi::c_void>, extrainformationsize: u32, extrainformationused: Option<*mut u32>, description: Option<&mut [u16]>, descriptionused: 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: Option<&mut [u16]>, srcsize: Option<*mut u32>, dstbuffer: Option<&mut [u16]>, dstsize: Option<*mut u32>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).GetTextReplacementWide)(
windows_core::Interface::as_raw(self),
srctext.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::Param<windows_core::PCWSTR>,
P1: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).SetTextReplacementWide)(windows_core::Interface::as_raw(self), srctext.param().abi(), dsttext.param().abi()).ok()
}
pub unsafe fn SetExpressionSyntaxByNameWide<P0>(&self, abbrevname: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).SetExpressionSyntaxByNameWide)(windows_core::Interface::as_raw(self), abbrevname.param().abi()).ok()
}
pub unsafe fn GetExpressionSyntaxNamesWide(&self, index: u32, fullnamebuffer: Option<&mut [u16]>, fullnamesize: Option<*mut u32>, abbrevnamebuffer: Option<&mut [u16]>, abbrevnamesize: 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: Option<*mut u32>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).GetEventIndexDescriptionWide)(windows_core::Interface::as_raw(self), index, which, buffer.param().abi(), buffersize, core::mem::transmute(descsize.unwrap_or(std::ptr::null_mut()))).ok()
}
pub unsafe fn GetLogFile2(&self, buffer: Option<&mut [u8]>, filesize: 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).OpenLogFile2)(windows_core::Interface::as_raw(self), file.param().abi(), flags).ok()
}
pub unsafe fn GetLogFile2Wide(&self, buffer: Option<&mut [u16]>, filesize: 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::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).OpenLogFile2Wide)(windows_core::Interface::as_raw(self), file.param().abi(), flags).ok()
}
pub unsafe fn GetSystemVersionValues(&self, platformid: *mut u32, win32major: *mut u32, win32minor: *mut u32, kdmajor: Option<*mut u32>, kdminor: 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: Option<&mut [u8]>, stringsize: 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: Option<&mut [u16]>, stringsize: 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()
}
pub unsafe fn GetContextStackTrace(&self, startcontext: Option<*const core::ffi::c_void>, startcontextsize: u32, frames: Option<&mut [DEBUG_STACK_FRAME]>, framecontexts: Option<*mut core::ffi::c_void>, framecontextssize: u32, framecontextsentrysize: u32, framesfilled: 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()
}
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: Option<*mut core::ffi::c_void>, contextsize: u32, contextused: Option<*mut u32>, extrainformation: Option<*mut core::ffi::c_void>, extrainformationsize: u32, extrainformationused: 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: Option<*mut u32>, whichstring: u32, string: Option<&mut [u8]>, stringneeded: 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: Option<*mut u32>, whichstring: u32, string: Option<&mut [u16]>, stringneeded: 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()
}
pub unsafe fn GetStackTraceEx(&self, frameoffset: u64, stackoffset: u64, instructionoffset: u64, frames: &mut [DEBUG_STACK_FRAME_EX], framesfilled: 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()
}
pub unsafe fn OutputStackTraceEx(&self, outputcontrol: u32, frames: 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()
}
pub unsafe fn GetContextStackTraceEx(&self, startcontext: Option<*const core::ffi::c_void>, startcontextsize: u32, frames: Option<&mut [DEBUG_STACK_FRAME_EX]>, framecontexts: Option<*mut core::ffi::c_void>, framecontextssize: u32, framecontextsentrysize: u32, framesfilled: 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()
}
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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetBreakpointByGuid)(windows_core::Interface::as_raw(self), guid, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn GetExecutionStatusEx(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetExecutionStatusEx)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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()
}
}
#[repr(C)]
pub struct IDebugControl7_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetInterrupt: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub SetInterrupt: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetInterruptTimeout: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetInterruptTimeout: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetLogFile: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PSTR, u32, *mut u32, *mut super::super::super::super::Foundation::BOOL) -> windows_core::HRESULT,
pub OpenLogFile: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, super::super::super::super::Foundation::BOOL) -> windows_core::HRESULT,
pub CloseLogFile: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetLogMask: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetLogMask: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub Input: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub ReturnInput: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR) -> windows_core::HRESULT,
pub Output: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR) -> windows_core::HRESULT,
pub OutputVaList: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR, *const i8) -> windows_core::HRESULT,
pub ControlledOutput: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, windows_core::PCSTR) -> windows_core::HRESULT,
pub ControlledOutputVaList: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, windows_core::PCSTR, *const i8) -> windows_core::HRESULT,
pub OutputPrompt: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR) -> windows_core::HRESULT,
pub OutputPromptVaList: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR, *const i8) -> windows_core::HRESULT,
pub GetPromptText: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub OutputCurrentState: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32) -> windows_core::HRESULT,
pub OutputVersionInformation: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetNotifyEventHandle: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u64) -> windows_core::HRESULT,
pub SetNotifyEventHandle: unsafe extern "system" fn(*mut core::ffi::c_void, u64) -> windows_core::HRESULT,
pub Assemble: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PCSTR, *mut u64) -> windows_core::HRESULT,
pub Disassemble: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, windows_core::PSTR, u32, *mut u32, *mut u64) -> windows_core::HRESULT,
pub GetDisassembleEffectiveOffset: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u64) -> windows_core::HRESULT,
pub OutputDisassembly: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u64, u32, *mut u64) -> windows_core::HRESULT,
pub OutputDisassemblyLines: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, u32, u64, u32, *mut u32, *mut u64, *mut u64, *mut u64) -> windows_core::HRESULT,
pub GetNearInstruction: unsafe extern "system" fn(*mut core::ffi::c_void, u64, i32, *mut u64) -> windows_core::HRESULT,
pub GetStackTrace: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u64, u64, *mut DEBUG_STACK_FRAME, u32, *mut u32) -> windows_core::HRESULT,
pub GetReturnOffset: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u64) -> windows_core::HRESULT,
pub OutputStackTrace: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *const DEBUG_STACK_FRAME, u32, u32) -> windows_core::HRESULT,
pub GetDebuggeeType: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32, *mut u32) -> windows_core::HRESULT,
pub GetActualProcessorType: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetExecutingProcessorType: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetNumberPossibleExecutingProcessorTypes: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetPossibleExecutingProcessorTypes: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, *mut u32) -> windows_core::HRESULT,
pub GetNumberProcessors: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetSystemVersion: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32, *mut u32, *mut u32, windows_core::PSTR, u32, *mut u32, *mut u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetPageSize: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub IsPointer64Bit: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub ReadBugCheckData: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32, *mut u64, *mut u64, *mut u64, *mut u64) -> windows_core::HRESULT,
pub GetNumberSupportedProcessorTypes: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetSupportedProcessorTypes: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, *mut u32) -> windows_core::HRESULT,
pub GetProcessorTypeNames: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PSTR, u32, *mut u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetEffectiveProcessorType: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetEffectiveProcessorType: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetExecutionStatus: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetExecutionStatus: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetCodeLevel: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetCodeLevel: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetEngineOptions: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub AddEngineOptions: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub RemoveEngineOptions: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub SetEngineOptions: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetSystemErrorControl: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32, *mut u32) -> windows_core::HRESULT,
pub SetSystemErrorControl: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32) -> windows_core::HRESULT,
pub GetTextMacro: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetTextMacro: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR) -> windows_core::HRESULT,
pub GetRadix: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetRadix: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub Evaluate: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, u32, *mut DEBUG_VALUE, *mut u32) -> windows_core::HRESULT,
pub CoerceValue: unsafe extern "system" fn(*mut core::ffi::c_void, *const DEBUG_VALUE, u32, *mut DEBUG_VALUE) -> windows_core::HRESULT,
pub CoerceValues: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *const DEBUG_VALUE, *const u32, *mut DEBUG_VALUE) -> windows_core::HRESULT,
pub Execute: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR, u32) -> windows_core::HRESULT,
pub ExecuteCommandFile: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR, u32) -> windows_core::HRESULT,
pub GetNumberBreakpoints: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetBreakpointByIndex: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetBreakpointById: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetBreakpointParameters: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *const u32, u32, *mut DEBUG_BREAKPOINT_PARAMETERS) -> windows_core::HRESULT,
pub AddBreakpoint: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub RemoveBreakpoint: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub AddExtension: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, u32, *mut u64) -> windows_core::HRESULT,
pub RemoveExtension: unsafe extern "system" fn(*mut core::ffi::c_void, u64) -> windows_core::HRESULT,
pub GetExtensionByPath: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, *mut u64) -> windows_core::HRESULT,
pub CallExtension: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PCSTR, windows_core::PCSTR) -> windows_core::HRESULT,
pub GetExtensionFunction: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PCSTR, *mut super::super::super::super::Foundation::FARPROC) -> windows_core::HRESULT,
#[cfg(feature = "Win32_System_Kernel")]
pub GetWindbgExtensionApis32: unsafe extern "system" fn(*mut core::ffi::c_void, *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(*mut core::ffi::c_void, *mut WINDBG_EXTENSION_APIS64) -> windows_core::HRESULT,
#[cfg(not(feature = "Win32_System_Kernel"))]
GetWindbgExtensionApis64: usize,
pub GetNumberEventFilters: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32, *mut u32, *mut u32) -> windows_core::HRESULT,
pub GetEventFilterText: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetEventFilterCommand: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetEventFilterCommand: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR) -> windows_core::HRESULT,
pub GetSpecificFilterParameters: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, *mut DEBUG_SPECIFIC_FILTER_PARAMETERS) -> windows_core::HRESULT,
pub SetSpecificFilterParameters: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, *const DEBUG_SPECIFIC_FILTER_PARAMETERS) -> windows_core::HRESULT,
pub GetSpecificFilterArgument: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetSpecificFilterArgument: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR) -> windows_core::HRESULT,
pub GetExceptionFilterParameters: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *const u32, u32, *mut DEBUG_EXCEPTION_FILTER_PARAMETERS) -> windows_core::HRESULT,
pub SetExceptionFilterParameters: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *const DEBUG_EXCEPTION_FILTER_PARAMETERS) -> windows_core::HRESULT,
pub GetExceptionFilterSecondCommand: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetExceptionFilterSecondCommand: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR) -> windows_core::HRESULT,
pub WaitForEvent: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32) -> windows_core::HRESULT,
pub GetLastEventInformation: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32, *mut u32, *mut u32, *mut core::ffi::c_void, u32, *mut u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetCurrentTimeDate: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetCurrentSystemUpTime: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetDumpFormatFlags: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetNumberTextReplacements: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetTextReplacement: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, u32, windows_core::PSTR, u32, *mut u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetTextReplacement: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, windows_core::PCSTR) -> windows_core::HRESULT,
pub RemoveTextReplacements: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub OutputTextReplacements: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32) -> windows_core::HRESULT,
pub GetAssemblyOptions: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub AddAssemblyOptions: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub RemoveAssemblyOptions: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub SetAssemblyOptions: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetExpressionSyntax: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetExpressionSyntax: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub SetExpressionSyntaxByName: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR) -> windows_core::HRESULT,
pub GetNumberExpressionSyntaxes: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetExpressionSyntaxNames: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PSTR, u32, *mut u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetNumberEvents: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetEventIndexDescription: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, windows_core::PCSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetCurrentEventIndex: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetNextEventIndex: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, *mut u32) -> windows_core::HRESULT,
pub GetLogFileWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PWSTR, u32, *mut u32, *mut super::super::super::super::Foundation::BOOL) -> windows_core::HRESULT,
pub OpenLogFileWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR, super::super::super::super::Foundation::BOOL) -> windows_core::HRESULT,
pub InputWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub ReturnInputWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR) -> windows_core::HRESULT,
pub OutputWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCWSTR) -> windows_core::HRESULT,
pub OutputVaListWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCWSTR, *const i8) -> windows_core::HRESULT,
pub ControlledOutputWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, windows_core::PCWSTR) -> windows_core::HRESULT,
pub ControlledOutputVaListWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, windows_core::PCWSTR, *const i8) -> windows_core::HRESULT,
pub OutputPromptWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCWSTR) -> windows_core::HRESULT,
pub OutputPromptVaListWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCWSTR, *const i8) -> windows_core::HRESULT,
pub GetPromptTextWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub AssembleWide: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PCWSTR, *mut u64) -> windows_core::HRESULT,
pub DisassembleWide: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, windows_core::PWSTR, u32, *mut u32, *mut u64) -> windows_core::HRESULT,
pub GetProcessorTypeNamesWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PWSTR, u32, *mut u32, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetTextMacroWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetTextMacroWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCWSTR) -> windows_core::HRESULT,
pub EvaluateWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR, u32, *mut DEBUG_VALUE, *mut u32) -> windows_core::HRESULT,
pub ExecuteWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCWSTR, u32) -> windows_core::HRESULT,
pub ExecuteCommandFileWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCWSTR, u32) -> windows_core::HRESULT,
pub GetBreakpointByIndex2: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetBreakpointById2: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub AddBreakpoint2: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub RemoveBreakpoint2: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub AddExtensionWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR, u32, *mut u64) -> windows_core::HRESULT,
pub GetExtensionByPathWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR, *mut u64) -> windows_core::HRESULT,
pub CallExtensionWide: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PCWSTR, windows_core::PCWSTR) -> windows_core::HRESULT,
pub GetExtensionFunctionWide: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PCWSTR, *mut super::super::super::super::Foundation::FARPROC) -> windows_core::HRESULT,
pub GetEventFilterTextWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetEventFilterCommandWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetEventFilterCommandWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCWSTR) -> windows_core::HRESULT,
pub GetSpecificFilterArgumentWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetSpecificFilterArgumentWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCWSTR) -> windows_core::HRESULT,
pub GetExceptionFilterSecondCommandWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetExceptionFilterSecondCommandWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCWSTR) -> windows_core::HRESULT,
pub GetLastEventInformationWide: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32, *mut u32, *mut u32, *mut core::ffi::c_void, u32, *mut u32, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetTextReplacementWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR, u32, windows_core::PWSTR, u32, *mut u32, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetTextReplacementWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR, windows_core::PCWSTR) -> windows_core::HRESULT,
pub SetExpressionSyntaxByNameWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR) -> windows_core::HRESULT,
pub GetExpressionSyntaxNamesWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PWSTR, u32, *mut u32, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetEventIndexDescriptionWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, windows_core::PCWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetLogFile2: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PSTR, u32, *mut u32, *mut u32) -> windows_core::HRESULT,
pub OpenLogFile2: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, u32) -> windows_core::HRESULT,
pub GetLogFile2Wide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PWSTR, u32, *mut u32, *mut u32) -> windows_core::HRESULT,
pub OpenLogFile2Wide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR, u32) -> windows_core::HRESULT,
pub GetSystemVersionValues: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32, *mut u32, *mut u32, *mut u32, *mut u32) -> windows_core::HRESULT,
pub GetSystemVersionString: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetSystemVersionStringWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetContextStackTrace: unsafe extern "system" fn(*mut core::ffi::c_void, *const core::ffi::c_void, u32, *mut DEBUG_STACK_FRAME, u32, *mut core::ffi::c_void, u32, u32, *mut u32) -> windows_core::HRESULT,
pub OutputContextStackTrace: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *const DEBUG_STACK_FRAME, u32, *const core::ffi::c_void, u32, u32, u32) -> windows_core::HRESULT,
pub GetStoredEventInformation: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32, *mut u32, *mut u32, *mut core::ffi::c_void, u32, *mut u32, *mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub GetManagedStatus: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32, u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetManagedStatusWide: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32, u32, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub ResetManagedStatus: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetStackTraceEx: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u64, u64, *mut DEBUG_STACK_FRAME_EX, u32, *mut u32) -> windows_core::HRESULT,
pub OutputStackTraceEx: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *const DEBUG_STACK_FRAME_EX, u32, u32) -> windows_core::HRESULT,
pub GetContextStackTraceEx: unsafe extern "system" fn(*mut core::ffi::c_void, *const core::ffi::c_void, u32, *mut DEBUG_STACK_FRAME_EX, u32, *mut core::ffi::c_void, u32, u32, *mut u32) -> windows_core::HRESULT,
pub OutputContextStackTraceEx: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *const DEBUG_STACK_FRAME_EX, u32, *const core::ffi::c_void, u32, u32, u32) -> windows_core::HRESULT,
pub GetBreakpointByGuid: unsafe extern "system" fn(*mut core::ffi::c_void, *const windows_core::GUID, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetExecutionStatusEx: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetSynchronizationStatus: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32, *mut u32) -> windows_core::HRESULT,
pub GetDebuggeeType2: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut u32, *mut u32) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IDebugDataSpaces, IDebugDataSpaces_Vtbl, 0x88f7dfab_3ea7_4c3a_aefb_c4e8106173aa);
impl core::ops::Deref for IDebugDataSpaces {
type Target = windows_core::IUnknown;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(IDebugDataSpaces, windows_core::IUnknown);
impl IDebugDataSpaces {
pub unsafe fn ReadVirtual(&self, offset: u64, buffer: *mut core::ffi::c_void, buffersize: u32, bytesread: 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: 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).SearchVirtual)(windows_core::Interface::as_raw(self), offset, length, pattern, patternsize, patterngranularity, &mut result__).map(|| result__)
}
pub unsafe fn ReadVirtualUncached(&self, offset: u64, buffer: *mut core::ffi::c_void, buffersize: u32, bytesread: 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: 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: 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: 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: 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: 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: 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: 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).ReadMsr)(windows_core::Interface::as_raw(self), msr, &mut result__).map(|| 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: 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: 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: 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: 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()
}
}
#[repr(C)]
pub struct IDebugDataSpaces_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub ReadVirtual: unsafe extern "system" fn(*mut core::ffi::c_void, u64, *mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub WriteVirtual: unsafe extern "system" fn(*mut core::ffi::c_void, u64, *const core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub SearchVirtual: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u64, *const core::ffi::c_void, u32, u32, *mut u64) -> windows_core::HRESULT,
pub ReadVirtualUncached: unsafe extern "system" fn(*mut core::ffi::c_void, u64, *mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub WriteVirtualUncached: unsafe extern "system" fn(*mut core::ffi::c_void, u64, *const core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub ReadPointersVirtual: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u64, *mut u64) -> windows_core::HRESULT,
pub WritePointersVirtual: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u64, *const u64) -> windows_core::HRESULT,
pub ReadPhysical: unsafe extern "system" fn(*mut core::ffi::c_void, u64, *mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub WritePhysical: unsafe extern "system" fn(*mut core::ffi::c_void, u64, *const core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub ReadControl: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u64, *mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub WriteControl: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u64, *const core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub ReadIo: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, u32, u64, *mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub WriteIo: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, u32, u64, *const core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub ReadMsr: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut u64) -> windows_core::HRESULT,
pub WriteMsr: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u64) -> windows_core::HRESULT,
pub ReadBusData: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, u32, u32, *mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub WriteBusData: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, u32, u32, *const core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub CheckLowMemory: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub ReadDebuggerData: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub ReadProcessorSystemData: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, *mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IDebugDataSpaces2, IDebugDataSpaces2_Vtbl, 0x7a5e852f_96e9_468f_ac1b_0b3addc4a049);
impl core::ops::Deref for IDebugDataSpaces2 {
type Target = windows_core::IUnknown;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(IDebugDataSpaces2, windows_core::IUnknown);
impl IDebugDataSpaces2 {
pub unsafe fn ReadVirtual(&self, offset: u64, buffer: *mut core::ffi::c_void, buffersize: u32, bytesread: 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: 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).SearchVirtual)(windows_core::Interface::as_raw(self), offset, length, pattern, patternsize, patterngranularity, &mut result__).map(|| result__)
}
pub unsafe fn ReadVirtualUncached(&self, offset: u64, buffer: *mut core::ffi::c_void, buffersize: u32, bytesread: 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: 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: 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: 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: 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: 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: 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: 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).ReadMsr)(windows_core::Interface::as_raw(self), msr, &mut result__).map(|| 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: 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: 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: 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: 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).VirtualToPhysical)(windows_core::Interface::as_raw(self), r#virtual, &mut result__).map(|| result__)
}
pub unsafe fn GetVirtualTranslationPhysicalOffsets(&self, r#virtual: u64, offsets: Option<&mut [u64]>, levels: 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: Option<*mut core::ffi::c_void>, buffersize: u32, datasize: 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: 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: 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()
}
#[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()
}
}
#[repr(C)]
pub struct IDebugDataSpaces2_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub ReadVirtual: unsafe extern "system" fn(*mut core::ffi::c_void, u64, *mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub WriteVirtual: unsafe extern "system" fn(*mut core::ffi::c_void, u64, *const core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub SearchVirtual: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u64, *const core::ffi::c_void, u32, u32, *mut u64) -> windows_core::HRESULT,
pub ReadVirtualUncached: unsafe extern "system" fn(*mut core::ffi::c_void, u64, *mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub WriteVirtualUncached: unsafe extern "system" fn(*mut core::ffi::c_void, u64, *const core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub ReadPointersVirtual: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u64, *mut u64) -> windows_core::HRESULT,
pub WritePointersVirtual: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u64, *const u64) -> windows_core::HRESULT,
pub ReadPhysical: unsafe extern "system" fn(*mut core::ffi::c_void, u64, *mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub WritePhysical: unsafe extern "system" fn(*mut core::ffi::c_void, u64, *const core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub ReadControl: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u64, *mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub WriteControl: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u64, *const core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub ReadIo: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, u32, u64, *mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub WriteIo: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, u32, u64, *const core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub ReadMsr: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut u64) -> windows_core::HRESULT,
pub WriteMsr: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u64) -> windows_core::HRESULT,
pub ReadBusData: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, u32, u32, *mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub WriteBusData: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, u32, u32, *const core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub CheckLowMemory: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub ReadDebuggerData: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub ReadProcessorSystemData: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, *mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub VirtualToPhysical: unsafe extern "system" fn(*mut core::ffi::c_void, u64, *mut u64) -> windows_core::HRESULT,
pub GetVirtualTranslationPhysicalOffsets: unsafe extern "system" fn(*mut core::ffi::c_void, u64, *mut u64, u32, *mut u32) -> windows_core::HRESULT,
pub ReadHandleData: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, *mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub FillVirtual: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, *const core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub FillPhysical: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, *const core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
#[cfg(feature = "Win32_System_Memory")]
pub QueryVirtual: unsafe extern "system" fn(*mut core::ffi::c_void, u64, *mut super::super::super::Memory::MEMORY_BASIC_INFORMATION64) -> windows_core::HRESULT,
#[cfg(not(feature = "Win32_System_Memory"))]
QueryVirtual: usize,
}
windows_core::imp::define_interface!(IDebugDataSpaces3, IDebugDataSpaces3_Vtbl, 0x23f79d6c_8aaf_4f7c_a607_9995f5407e63);
impl core::ops::Deref for IDebugDataSpaces3 {
type Target = windows_core::IUnknown;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(IDebugDataSpaces3, windows_core::IUnknown);
impl IDebugDataSpaces3 {
pub unsafe fn ReadVirtual(&self, offset: u64, buffer: *mut core::ffi::c_void, buffersize: u32, bytesread: 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: 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).SearchVirtual)(windows_core::Interface::as_raw(self), offset, length, pattern, patternsize, patterngranularity, &mut result__).map(|| result__)
}
pub unsafe fn ReadVirtualUncached(&self, offset: u64, buffer: *mut core::ffi::c_void, buffersize: u32, bytesread: 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: 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: 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: 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: 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: 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: 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: 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).ReadMsr)(windows_core::Interface::as_raw(self), msr, &mut result__).map(|| 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: 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: 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: 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: 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).VirtualToPhysical)(windows_core::Interface::as_raw(self), r#virtual, &mut result__).map(|| result__)
}
pub unsafe fn GetVirtualTranslationPhysicalOffsets(&self, r#virtual: u64, offsets: Option<&mut [u64]>, levels: 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: Option<*mut core::ffi::c_void>, buffersize: u32, datasize: 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: 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: 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()
}
#[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()
}
#[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: Option<*mut core::ffi::c_void>, buffersize: u32, totalsize: 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).StartEnumTagged)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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()
}
}
#[repr(C)]
pub struct IDebugDataSpaces3_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub ReadVirtual: unsafe extern "system" fn(*mut core::ffi::c_void, u64, *mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub WriteVirtual: unsafe extern "system" fn(*mut core::ffi::c_void, u64, *const core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub SearchVirtual: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u64, *const core::ffi::c_void, u32, u32, *mut u64) -> windows_core::HRESULT,
pub ReadVirtualUncached: unsafe extern "system" fn(*mut core::ffi::c_void, u64, *mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub WriteVirtualUncached: unsafe extern "system" fn(*mut core::ffi::c_void, u64, *const core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub ReadPointersVirtual: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u64, *mut u64) -> windows_core::HRESULT,
pub WritePointersVirtual: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u64, *const u64) -> windows_core::HRESULT,
pub ReadPhysical: unsafe extern "system" fn(*mut core::ffi::c_void, u64, *mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub WritePhysical: unsafe extern "system" fn(*mut core::ffi::c_void, u64, *const core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub ReadControl: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u64, *mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub WriteControl: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u64, *const core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub ReadIo: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, u32, u64, *mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub WriteIo: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, u32, u64, *const core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub ReadMsr: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut u64) -> windows_core::HRESULT,
pub WriteMsr: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u64) -> windows_core::HRESULT,
pub ReadBusData: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, u32, u32, *mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub WriteBusData: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, u32, u32, *const core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub CheckLowMemory: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub ReadDebuggerData: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub ReadProcessorSystemData: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, *mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub VirtualToPhysical: unsafe extern "system" fn(*mut core::ffi::c_void, u64, *mut u64) -> windows_core::HRESULT,
pub GetVirtualTranslationPhysicalOffsets: unsafe extern "system" fn(*mut core::ffi::c_void, u64, *mut u64, u32, *mut u32) -> windows_core::HRESULT,
pub ReadHandleData: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, *mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub FillVirtual: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, *const core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub FillPhysical: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, *const core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
#[cfg(feature = "Win32_System_Memory")]
pub QueryVirtual: unsafe extern "system" fn(*mut core::ffi::c_void, u64, *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(*mut core::ffi::c_void, u64, *mut super::IMAGE_NT_HEADERS64) -> windows_core::HRESULT,
#[cfg(not(feature = "Win32_System_SystemInformation"))]
ReadImageNtHeaders: usize,
pub ReadTagged: unsafe extern "system" fn(*mut core::ffi::c_void, *const windows_core::GUID, u32, *mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub StartEnumTagged: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u64) -> windows_core::HRESULT,
pub GetNextTagged: unsafe extern "system" fn(*mut core::ffi::c_void, u64, *mut windows_core::GUID, *mut u32) -> windows_core::HRESULT,
pub EndEnumTagged: unsafe extern "system" fn(*mut core::ffi::c_void, u64) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IDebugDataSpaces4, IDebugDataSpaces4_Vtbl, 0xd98ada1f_29e9_4ef5_a6c0_e53349883212);
impl core::ops::Deref for IDebugDataSpaces4 {
type Target = windows_core::IUnknown;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(IDebugDataSpaces4, windows_core::IUnknown);
impl IDebugDataSpaces4 {
pub unsafe fn ReadVirtual(&self, offset: u64, buffer: *mut core::ffi::c_void, buffersize: u32, bytesread: 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: 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).SearchVirtual)(windows_core::Interface::as_raw(self), offset, length, pattern, patternsize, patterngranularity, &mut result__).map(|| result__)
}
pub unsafe fn ReadVirtualUncached(&self, offset: u64, buffer: *mut core::ffi::c_void, buffersize: u32, bytesread: 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: 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: 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: 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: 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: 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: 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: 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).ReadMsr)(windows_core::Interface::as_raw(self), msr, &mut result__).map(|| 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: 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: 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: 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: 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).VirtualToPhysical)(windows_core::Interface::as_raw(self), r#virtual, &mut result__).map(|| result__)
}
pub unsafe fn GetVirtualTranslationPhysicalOffsets(&self, r#virtual: u64, offsets: Option<&mut [u64]>, levels: 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: Option<*mut core::ffi::c_void>, buffersize: u32, datasize: 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: 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: 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()
}
#[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()
}
#[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: Option<*mut core::ffi::c_void>, buffersize: u32, totalsize: 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).StartEnumTagged)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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: Option<*mut core::ffi::c_void>, buffersize: u32, infosize: 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNextDifferentlyValidOffsetVirtual)(windows_core::Interface::as_raw(self), offset, &mut result__).map(|| 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).SearchVirtual2)(windows_core::Interface::as_raw(self), offset, length, flags, pattern, patternsize, patterngranularity, &mut result__).map(|| result__)
}
pub unsafe fn ReadMultiByteStringVirtual(&self, offset: u64, maxbytes: u32, buffer: Option<&mut [u8]>, stringbytes: 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: Option<&mut [u16]>, stringbytes: 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: Option<&mut [u8]>, stringbytes: 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: Option<&mut [u16]>, stringbytes: 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: 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: 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()
}
}
#[repr(C)]
pub struct IDebugDataSpaces4_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub ReadVirtual: unsafe extern "system" fn(*mut core::ffi::c_void, u64, *mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub WriteVirtual: unsafe extern "system" fn(*mut core::ffi::c_void, u64, *const core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub SearchVirtual: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u64, *const core::ffi::c_void, u32, u32, *mut u64) -> windows_core::HRESULT,
pub ReadVirtualUncached: unsafe extern "system" fn(*mut core::ffi::c_void, u64, *mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub WriteVirtualUncached: unsafe extern "system" fn(*mut core::ffi::c_void, u64, *const core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub ReadPointersVirtual: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u64, *mut u64) -> windows_core::HRESULT,
pub WritePointersVirtual: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u64, *const u64) -> windows_core::HRESULT,
pub ReadPhysical: unsafe extern "system" fn(*mut core::ffi::c_void, u64, *mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub WritePhysical: unsafe extern "system" fn(*mut core::ffi::c_void, u64, *const core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub ReadControl: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u64, *mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub WriteControl: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u64, *const core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub ReadIo: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, u32, u64, *mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub WriteIo: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, u32, u64, *const core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub ReadMsr: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut u64) -> windows_core::HRESULT,
pub WriteMsr: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u64) -> windows_core::HRESULT,
pub ReadBusData: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, u32, u32, *mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub WriteBusData: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, u32, u32, *const core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub CheckLowMemory: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub ReadDebuggerData: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub ReadProcessorSystemData: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, *mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub VirtualToPhysical: unsafe extern "system" fn(*mut core::ffi::c_void, u64, *mut u64) -> windows_core::HRESULT,
pub GetVirtualTranslationPhysicalOffsets: unsafe extern "system" fn(*mut core::ffi::c_void, u64, *mut u64, u32, *mut u32) -> windows_core::HRESULT,
pub ReadHandleData: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, *mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub FillVirtual: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, *const core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub FillPhysical: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, *const core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
#[cfg(feature = "Win32_System_Memory")]
pub QueryVirtual: unsafe extern "system" fn(*mut core::ffi::c_void, u64, *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(*mut core::ffi::c_void, u64, *mut super::IMAGE_NT_HEADERS64) -> windows_core::HRESULT,
#[cfg(not(feature = "Win32_System_SystemInformation"))]
ReadImageNtHeaders: usize,
pub ReadTagged: unsafe extern "system" fn(*mut core::ffi::c_void, *const windows_core::GUID, u32, *mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub StartEnumTagged: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u64) -> windows_core::HRESULT,
pub GetNextTagged: unsafe extern "system" fn(*mut core::ffi::c_void, u64, *mut windows_core::GUID, *mut u32) -> windows_core::HRESULT,
pub EndEnumTagged: unsafe extern "system" fn(*mut core::ffi::c_void, u64) -> windows_core::HRESULT,
pub GetOffsetInformation: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, u64, *mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub GetNextDifferentlyValidOffsetVirtual: unsafe extern "system" fn(*mut core::ffi::c_void, u64, *mut u64) -> windows_core::HRESULT,
pub GetValidRegionVirtual: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, *mut u64, *mut u32) -> windows_core::HRESULT,
pub SearchVirtual2: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u64, u32, *const core::ffi::c_void, u32, u32, *mut u64) -> windows_core::HRESULT,
pub ReadMultiByteStringVirtual: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub ReadMultiByteStringVirtualWide: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, u32, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub ReadUnicodeStringVirtual: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub ReadUnicodeStringVirtualWide: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub ReadPhysical2: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, *mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub WritePhysical2: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, *const core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IDebugEventCallbacks, IDebugEventCallbacks_Vtbl, 0x337be28b_5036_4d72_b6bf_c45fbb9f2eaa);
impl core::ops::Deref for IDebugEventCallbacks {
type Target = windows_core::IUnknown;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(IDebugEventCallbacks, windows_core::IUnknown);
impl IDebugEventCallbacks {
pub unsafe fn GetInterestMask(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetInterestMask)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn Breakpoint<P0>(&self, bp: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<IDebugBreakpoint>,
{
(windows_core::Interface::vtable(self).Breakpoint)(windows_core::Interface::as_raw(self), bp.param().abi()).ok()
}
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::Param<windows_core::PCSTR>,
P1: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).CreateProcessA)(windows_core::Interface::as_raw(self), imagefilehandle, handle, baseoffset, modulesize, modulename.param().abi(), imagename.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::Param<windows_core::PCSTR>,
P1: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).LoadModule)(windows_core::Interface::as_raw(self), imagefilehandle, baseoffset, modulesize, modulename.param().abi(), imagename.param().abi(), checksum, timedatestamp).ok()
}
pub unsafe fn UnloadModule<P0>(&self, imagebasename: P0, baseoffset: u64) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).UnloadModule)(windows_core::Interface::as_raw(self), imagebasename.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()
}
}
#[repr(C)]
pub struct IDebugEventCallbacks_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetInterestMask: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub Breakpoint: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub Exception: unsafe extern "system" fn(*mut core::ffi::c_void, *const super::EXCEPTION_RECORD64, u32) -> windows_core::HRESULT,
pub CreateThread: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u64, u64) -> windows_core::HRESULT,
pub ExitThread: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub CreateProcessA: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u64, u64, u32, windows_core::PCSTR, windows_core::PCSTR, u32, u32, u64, u64, u64) -> windows_core::HRESULT,
pub ExitProcess: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub LoadModule: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u64, u32, windows_core::PCSTR, windows_core::PCSTR, u32, u32) -> windows_core::HRESULT,
pub UnloadModule: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, u64) -> windows_core::HRESULT,
pub SystemError: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32) -> windows_core::HRESULT,
pub SessionStatus: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub ChangeDebuggeeState: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u64) -> windows_core::HRESULT,
pub ChangeEngineState: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u64) -> windows_core::HRESULT,
pub ChangeSymbolState: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u64) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IDebugEventCallbacksWide, IDebugEventCallbacksWide_Vtbl, 0x0690e046_9c23_45ac_a04f_987ac29ad0d3);
impl core::ops::Deref for IDebugEventCallbacksWide {
type Target = windows_core::IUnknown;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(IDebugEventCallbacksWide, windows_core::IUnknown);
impl IDebugEventCallbacksWide {
pub unsafe fn GetInterestMask(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetInterestMask)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn Breakpoint<P0>(&self, bp: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<IDebugBreakpoint2>,
{
(windows_core::Interface::vtable(self).Breakpoint)(windows_core::Interface::as_raw(self), bp.param().abi()).ok()
}
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::Param<windows_core::PCWSTR>,
P1: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).CreateProcessA)(windows_core::Interface::as_raw(self), imagefilehandle, handle, baseoffset, modulesize, modulename.param().abi(), imagename.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::Param<windows_core::PCWSTR>,
P1: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).LoadModule)(windows_core::Interface::as_raw(self), imagefilehandle, baseoffset, modulesize, modulename.param().abi(), imagename.param().abi(), checksum, timedatestamp).ok()
}
pub unsafe fn UnloadModule<P0>(&self, imagebasename: P0, baseoffset: u64) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).UnloadModule)(windows_core::Interface::as_raw(self), imagebasename.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()
}
}
#[repr(C)]
pub struct IDebugEventCallbacksWide_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetInterestMask: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub Breakpoint: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub Exception: unsafe extern "system" fn(*mut core::ffi::c_void, *const super::EXCEPTION_RECORD64, u32) -> windows_core::HRESULT,
pub CreateThread: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u64, u64) -> windows_core::HRESULT,
pub ExitThread: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub CreateProcessA: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u64, u64, u32, windows_core::PCWSTR, windows_core::PCWSTR, u32, u32, u64, u64, u64) -> windows_core::HRESULT,
pub ExitProcess: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub LoadModule: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u64, u32, windows_core::PCWSTR, windows_core::PCWSTR, u32, u32) -> windows_core::HRESULT,
pub UnloadModule: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR, u64) -> windows_core::HRESULT,
pub SystemError: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32) -> windows_core::HRESULT,
pub SessionStatus: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub ChangeDebuggeeState: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u64) -> windows_core::HRESULT,
pub ChangeEngineState: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u64) -> windows_core::HRESULT,
pub ChangeSymbolState: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u64) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IDebugEventContextCallbacks, IDebugEventContextCallbacks_Vtbl, 0x61a4905b_23f9_4247_b3c5_53d087529ab7);
impl core::ops::Deref for IDebugEventContextCallbacks {
type Target = windows_core::IUnknown;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(IDebugEventContextCallbacks, windows_core::IUnknown);
impl IDebugEventContextCallbacks {
pub unsafe fn GetInterestMask(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetInterestMask)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn Breakpoint<P0>(&self, bp: P0, context: *const core::ffi::c_void, contextsize: u32) -> windows_core::Result<()>
where
P0: windows_core::Param<IDebugBreakpoint2>,
{
(windows_core::Interface::vtable(self).Breakpoint)(windows_core::Interface::as_raw(self), bp.param().abi(), context, contextsize).ok()
}
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::Param<windows_core::PCWSTR>,
P1: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).CreateProcessA)(windows_core::Interface::as_raw(self), imagefilehandle, handle, baseoffset, modulesize, modulename.param().abi(), imagename.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::Param<windows_core::PCWSTR>,
P1: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).LoadModule)(windows_core::Interface::as_raw(self), imagefilehandle, baseoffset, modulesize, modulename.param().abi(), imagename.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::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).UnloadModule)(windows_core::Interface::as_raw(self), imagebasename.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()
}
}
#[repr(C)]
pub struct IDebugEventContextCallbacks_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetInterestMask: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub Breakpoint: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, *const core::ffi::c_void, u32) -> windows_core::HRESULT,
pub Exception: unsafe extern "system" fn(*mut core::ffi::c_void, *const super::EXCEPTION_RECORD64, u32, *const core::ffi::c_void, u32) -> windows_core::HRESULT,
pub CreateThread: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u64, u64, *const core::ffi::c_void, u32) -> windows_core::HRESULT,
pub ExitThread: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *const core::ffi::c_void, u32) -> windows_core::HRESULT,
pub CreateProcessA: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u64, u64, u32, windows_core::PCWSTR, windows_core::PCWSTR, u32, u32, u64, u64, u64, *const core::ffi::c_void, u32) -> windows_core::HRESULT,
pub ExitProcess: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *const core::ffi::c_void, u32) -> windows_core::HRESULT,
pub LoadModule: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u64, u32, windows_core::PCWSTR, windows_core::PCWSTR, u32, u32, *const core::ffi::c_void, u32) -> windows_core::HRESULT,
pub UnloadModule: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR, u64, *const core::ffi::c_void, u32) -> windows_core::HRESULT,
pub SystemError: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, *const core::ffi::c_void, u32) -> windows_core::HRESULT,
pub SessionStatus: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub ChangeDebuggeeState: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u64, *const core::ffi::c_void, u32) -> windows_core::HRESULT,
pub ChangeEngineState: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u64, *const core::ffi::c_void, u32) -> windows_core::HRESULT,
pub ChangeSymbolState: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u64) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IDebugFAEntryTags, IDebugFAEntryTags_Vtbl);
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: Option<*mut u32>, description: windows_core::PSTR, descsize: Option<*mut u32>, flags: 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::Param<windows_core::PCSTR>,
P1: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).SetProperties)(windows_core::Interface::as_raw(self), tag, name.param().abi(), description.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::Param<windows_core::PCSTR>,
P1: windows_core::Param<windows_core::PCSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTagByName)(windows_core::Interface::as_raw(self), pluginid.param().abi(), tagname.param().abi(), &mut result__).map(|| result__)
}
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)
}
}
#[repr(C)]
pub struct IDebugFAEntryTags_Vtbl {
pub GetType: unsafe extern "system" fn(*mut core::ffi::c_void, DEBUG_FLR_PARAM_TYPE) -> FA_ENTRY_TYPE,
pub SetType: unsafe extern "system" fn(*mut core::ffi::c_void, DEBUG_FLR_PARAM_TYPE, FA_ENTRY_TYPE) -> windows_core::HRESULT,
pub GetProperties: unsafe extern "system" fn(*mut core::ffi::c_void, DEBUG_FLR_PARAM_TYPE, windows_core::PSTR, *mut u32, windows_core::PSTR, *mut u32, *mut u32) -> windows_core::HRESULT,
pub SetProperties: unsafe extern "system" fn(*mut core::ffi::c_void, DEBUG_FLR_PARAM_TYPE, windows_core::PCSTR, windows_core::PCSTR, u32) -> windows_core::HRESULT,
pub GetTagByName: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, windows_core::PCSTR, *mut DEBUG_FLR_PARAM_TYPE) -> windows_core::HRESULT,
pub IsValidTagToSet: unsafe extern "system" fn(*mut core::ffi::c_void, DEBUG_FLR_PARAM_TYPE) -> super::super::super::super::Foundation::BOOL,
}
windows_core::imp::define_interface!(IDebugFailureAnalysis, IDebugFailureAnalysis_Vtbl, 0xed0de363_451f_4943_820c_62dccdfa7e6d);
impl core::ops::Deref for IDebugFailureAnalysis {
type Target = windows_core::IUnknown;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(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: 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())))
}
}
#[repr(C)]
pub struct IDebugFailureAnalysis_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetFailureClass: unsafe extern "system" fn(*mut core::ffi::c_void) -> u32,
pub GetFailureType: unsafe extern "system" fn(*mut core::ffi::c_void) -> DEBUG_FAILURE_TYPE,
pub GetFailureCode: unsafe extern "system" fn(*mut core::ffi::c_void) -> u32,
pub Get: unsafe extern "system" fn(*mut core::ffi::c_void, DEBUG_FLR_PARAM_TYPE) -> *mut FA_ENTRY,
pub GetNext: unsafe extern "system" fn(*mut core::ffi::c_void, *mut FA_ENTRY, DEBUG_FLR_PARAM_TYPE, DEBUG_FLR_PARAM_TYPE) -> *mut FA_ENTRY,
pub GetString: unsafe extern "system" fn(*mut core::ffi::c_void, DEBUG_FLR_PARAM_TYPE, windows_core::PSTR, u32) -> *mut FA_ENTRY,
pub GetBuffer: unsafe extern "system" fn(*mut core::ffi::c_void, DEBUG_FLR_PARAM_TYPE, *mut core::ffi::c_void, u32) -> *mut FA_ENTRY,
pub GetUlong: unsafe extern "system" fn(*mut core::ffi::c_void, DEBUG_FLR_PARAM_TYPE, *mut u32) -> *mut FA_ENTRY,
pub GetUlong64: unsafe extern "system" fn(*mut core::ffi::c_void, DEBUG_FLR_PARAM_TYPE, *mut u64) -> *mut FA_ENTRY,
pub NextEntry: unsafe extern "system" fn(*mut core::ffi::c_void, *const FA_ENTRY) -> *mut FA_ENTRY,
}
windows_core::imp::define_interface!(IDebugFailureAnalysis2, IDebugFailureAnalysis2_Vtbl, 0xea15c288_8226_4b70_acf6_0be6b189e3ad);
impl core::ops::Deref for IDebugFailureAnalysis2 {
type Target = windows_core::IUnknown;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(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: 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).SetString)(windows_core::Interface::as_raw(self), tag, str.param().abi())
}
pub unsafe fn SetExtensionCommand<P0>(&self, tag: DEBUG_FLR_PARAM_TYPE, extension: P0) -> *mut FA_ENTRY
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).SetExtensionCommand)(windows_core::Interface::as_raw(self), tag, extension.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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).AddString)(windows_core::Interface::as_raw(self), tag, str.param().abi())
}
pub unsafe fn AddExtensionCommand<P0>(&self, tag: DEBUG_FLR_PARAM_TYPE, extension: P0) -> *mut FA_ENTRY
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).AddExtensionCommand)(windows_core::Interface::as_raw(self), tag, extension.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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetDebugFATagControl)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
#[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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetAnalysisXml)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn AddStructuredAnalysisData<P0>(&self, tag: DEBUG_FLR_PARAM_TYPE, analysis: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<IDebugFailureAnalysis2>,
{
(windows_core::Interface::vtable(self).AddStructuredAnalysisData)(windows_core::Interface::as_raw(self), tag, analysis.param().abi()).ok()
}
}
#[repr(C)]
pub struct IDebugFailureAnalysis2_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetFailureClass: unsafe extern "system" fn(*mut core::ffi::c_void) -> u32,
pub GetFailureType: unsafe extern "system" fn(*mut core::ffi::c_void) -> DEBUG_FAILURE_TYPE,
pub GetFailureCode: unsafe extern "system" fn(*mut core::ffi::c_void) -> u32,
pub Get: unsafe extern "system" fn(*mut core::ffi::c_void, DEBUG_FLR_PARAM_TYPE) -> *mut FA_ENTRY,
pub GetNext: unsafe extern "system" fn(*mut core::ffi::c_void, *const FA_ENTRY, DEBUG_FLR_PARAM_TYPE, DEBUG_FLR_PARAM_TYPE) -> *mut FA_ENTRY,
pub GetString: unsafe extern "system" fn(*mut core::ffi::c_void, DEBUG_FLR_PARAM_TYPE, windows_core::PSTR, u32) -> *mut FA_ENTRY,
pub GetBuffer: unsafe extern "system" fn(*mut core::ffi::c_void, DEBUG_FLR_PARAM_TYPE, *mut core::ffi::c_void, u32) -> *mut FA_ENTRY,
pub GetUlong: unsafe extern "system" fn(*mut core::ffi::c_void, DEBUG_FLR_PARAM_TYPE, *mut u32) -> *mut FA_ENTRY,
pub GetUlong64: unsafe extern "system" fn(*mut core::ffi::c_void, DEBUG_FLR_PARAM_TYPE, *mut u64) -> *mut FA_ENTRY,
pub NextEntry: unsafe extern "system" fn(*mut core::ffi::c_void, *const FA_ENTRY) -> *mut FA_ENTRY,
pub SetString: unsafe extern "system" fn(*mut core::ffi::c_void, DEBUG_FLR_PARAM_TYPE, windows_core::PCSTR) -> *mut FA_ENTRY,
pub SetExtensionCommand: unsafe extern "system" fn(*mut core::ffi::c_void, DEBUG_FLR_PARAM_TYPE, windows_core::PCSTR) -> *mut FA_ENTRY,
pub SetUlong: unsafe extern "system" fn(*mut core::ffi::c_void, DEBUG_FLR_PARAM_TYPE, u32) -> *mut FA_ENTRY,
pub SetUlong64: unsafe extern "system" fn(*mut core::ffi::c_void, DEBUG_FLR_PARAM_TYPE, u64) -> *mut FA_ENTRY,
pub SetBuffer: unsafe extern "system" fn(*mut core::ffi::c_void, DEBUG_FLR_PARAM_TYPE, FA_ENTRY_TYPE, *const core::ffi::c_void, u32) -> *mut FA_ENTRY,
pub AddString: unsafe extern "system" fn(*mut core::ffi::c_void, DEBUG_FLR_PARAM_TYPE, windows_core::PCSTR) -> *mut FA_ENTRY,
pub AddExtensionCommand: unsafe extern "system" fn(*mut core::ffi::c_void, DEBUG_FLR_PARAM_TYPE, windows_core::PCSTR) -> *mut FA_ENTRY,
pub AddUlong: unsafe extern "system" fn(*mut core::ffi::c_void, DEBUG_FLR_PARAM_TYPE, u32) -> *mut FA_ENTRY,
pub AddUlong64: unsafe extern "system" fn(*mut core::ffi::c_void, DEBUG_FLR_PARAM_TYPE, u64) -> *mut FA_ENTRY,
pub AddBuffer: unsafe extern "system" fn(*mut core::ffi::c_void, DEBUG_FLR_PARAM_TYPE, FA_ENTRY_TYPE, *const core::ffi::c_void, u32) -> *mut FA_ENTRY,
pub GetDebugFATagControl: unsafe extern "system" fn(*mut core::ffi::c_void, *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(*mut core::ffi::c_void, *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(*mut core::ffi::c_void, DEBUG_FLR_PARAM_TYPE, *mut core::ffi::c_void) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IDebugFailureAnalysis3, IDebugFailureAnalysis3_Vtbl, 0x3627dc67_fd45_42ff_9ba4_4a67ee64619f);
impl core::ops::Deref for IDebugFailureAnalysis3 {
type Target = windows_core::IUnknown;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(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: 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).SetString)(windows_core::Interface::as_raw(self), tag, str.param().abi())
}
pub unsafe fn SetExtensionCommand<P0>(&self, tag: DEBUG_FLR_PARAM_TYPE, extension: P0) -> *mut FA_ENTRY
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).SetExtensionCommand)(windows_core::Interface::as_raw(self), tag, extension.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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).AddString)(windows_core::Interface::as_raw(self), tag, str.param().abi())
}
pub unsafe fn AddExtensionCommand<P0>(&self, tag: DEBUG_FLR_PARAM_TYPE, extension: P0) -> *mut FA_ENTRY
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).AddExtensionCommand)(windows_core::Interface::as_raw(self), tag, extension.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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetDebugFATagControl)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
#[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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetAnalysisXml)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn AddStructuredAnalysisData<P0>(&self, tag: DEBUG_FLR_PARAM_TYPE, analysis: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<IDebugFailureAnalysis2>,
{
(windows_core::Interface::vtable(self).AddStructuredAnalysisData)(windows_core::Interface::as_raw(self), tag, analysis.param().abi()).ok()
}
pub unsafe fn AddThreads<P0>(&self, pdebugfailurethreadenum: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::IUnknown>,
{
(windows_core::Interface::vtable(self).AddThreads)(windows_core::Interface::as_raw(self), pdebugfailurethreadenum.param().abi()).ok()
}
pub unsafe fn AttributeGet(&self, nindex: u32) -> windows_core::Result<windows_core::VARIANT> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).AttributeGet)(windows_core::Interface::as_raw(self), nindex, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn AttributeGetName(&self, nindex: u32) -> windows_core::Result<windows_core::BSTR> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).AttributeGetName)(windows_core::Interface::as_raw(self), nindex, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn AttributeSet<P0>(&self, nindex: u32, value: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::VARIANT>,
{
(windows_core::Interface::vtable(self).AttributeSet)(windows_core::Interface::as_raw(self), nindex, value.param().abi()).ok()
}
pub unsafe fn BlameApplication<P0>(&self, postfix: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::BSTR>,
{
(windows_core::Interface::vtable(self).BlameApplication)(windows_core::Interface::as_raw(self), postfix.param().abi()).ok()
}
pub unsafe fn BlameProcess<P0>(&self, postfix: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::BSTR>,
{
(windows_core::Interface::vtable(self).BlameProcess)(windows_core::Interface::as_raw(self), postfix.param().abi()).ok()
}
pub unsafe fn BlameThread<P0>(&self, pthread: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::IUnknown>,
{
(windows_core::Interface::vtable(self).BlameThread)(windows_core::Interface::as_raw(self), pthread.param().abi()).ok()
}
pub unsafe fn BlameStitch<P0, P1>(&self, pthread: P0, stitch: P1) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::IUnknown>,
P1: windows_core::Param<windows_core::BSTR>,
{
(windows_core::Interface::vtable(self).BlameStitch)(windows_core::Interface::as_raw(self), pthread.param().abi(), stitch.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()
}
pub unsafe fn ProblemClassIsSet(&self, nindex: u32) -> windows_core::Result<super::super::super::super::Foundation::VARIANT_BOOL> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).ProblemClassIsSet)(windows_core::Interface::as_raw(self), nindex, &mut result__).map(|| 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::Param<windows_core::BSTR>,
{
(windows_core::Interface::vtable(self).ProblemClassSetBSTR)(windows_core::Interface::as_raw(self), nindex, value.param().abi()).ok()
}
pub unsafe fn SetAdditionalXML<P0, P1>(&self, key: P0, pxmldomelement: P1) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::BSTR>,
P1: windows_core::Param<windows_core::IUnknown>,
{
(windows_core::Interface::vtable(self).SetAdditionalXML)(windows_core::Interface::as_raw(self), key.param().abi(), pxmldomelement.param().abi()).ok()
}
pub unsafe fn GetAdditionalXML<P0>(&self, key: P0) -> windows_core::Result<windows_core::IUnknown>
where
P0: windows_core::Param<windows_core::BSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetAdditionalXML)(windows_core::Interface::as_raw(self), key.param().abi(), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn DeleteAdditionalXML<P0>(&self, key: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::BSTR>,
{
(windows_core::Interface::vtable(self).DeleteAdditionalXML)(windows_core::Interface::as_raw(self), key.param().abi()).ok()
}
}
#[repr(C)]
pub struct IDebugFailureAnalysis3_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetFailureClass: unsafe extern "system" fn(*mut core::ffi::c_void) -> u32,
pub GetFailureType: unsafe extern "system" fn(*mut core::ffi::c_void) -> DEBUG_FAILURE_TYPE,
pub GetFailureCode: unsafe extern "system" fn(*mut core::ffi::c_void) -> u32,
pub Get: unsafe extern "system" fn(*mut core::ffi::c_void, DEBUG_FLR_PARAM_TYPE) -> *mut FA_ENTRY,
pub GetNext: unsafe extern "system" fn(*mut core::ffi::c_void, *const FA_ENTRY, DEBUG_FLR_PARAM_TYPE, DEBUG_FLR_PARAM_TYPE) -> *mut FA_ENTRY,
pub GetString: unsafe extern "system" fn(*mut core::ffi::c_void, DEBUG_FLR_PARAM_TYPE, windows_core::PSTR, u32) -> *mut FA_ENTRY,
pub GetBuffer: unsafe extern "system" fn(*mut core::ffi::c_void, DEBUG_FLR_PARAM_TYPE, *mut core::ffi::c_void, u32) -> *mut FA_ENTRY,
pub GetUlong: unsafe extern "system" fn(*mut core::ffi::c_void, DEBUG_FLR_PARAM_TYPE, *mut u32) -> *mut FA_ENTRY,
pub GetUlong64: unsafe extern "system" fn(*mut core::ffi::c_void, DEBUG_FLR_PARAM_TYPE, *mut u64) -> *mut FA_ENTRY,
pub NextEntry: unsafe extern "system" fn(*mut core::ffi::c_void, *const FA_ENTRY) -> *mut FA_ENTRY,
pub SetString: unsafe extern "system" fn(*mut core::ffi::c_void, DEBUG_FLR_PARAM_TYPE, windows_core::PCSTR) -> *mut FA_ENTRY,
pub SetExtensionCommand: unsafe extern "system" fn(*mut core::ffi::c_void, DEBUG_FLR_PARAM_TYPE, windows_core::PCSTR) -> *mut FA_ENTRY,
pub SetUlong: unsafe extern "system" fn(*mut core::ffi::c_void, DEBUG_FLR_PARAM_TYPE, u32) -> *mut FA_ENTRY,
pub SetUlong64: unsafe extern "system" fn(*mut core::ffi::c_void, DEBUG_FLR_PARAM_TYPE, u64) -> *mut FA_ENTRY,
pub SetBuffer: unsafe extern "system" fn(*mut core::ffi::c_void, DEBUG_FLR_PARAM_TYPE, FA_ENTRY_TYPE, *const core::ffi::c_void, u32) -> *mut FA_ENTRY,
pub AddString: unsafe extern "system" fn(*mut core::ffi::c_void, DEBUG_FLR_PARAM_TYPE, windows_core::PCSTR) -> *mut FA_ENTRY,
pub AddExtensionCommand: unsafe extern "system" fn(*mut core::ffi::c_void, DEBUG_FLR_PARAM_TYPE, windows_core::PCSTR) -> *mut FA_ENTRY,
pub AddUlong: unsafe extern "system" fn(*mut core::ffi::c_void, DEBUG_FLR_PARAM_TYPE, u32) -> *mut FA_ENTRY,
pub AddUlong64: unsafe extern "system" fn(*mut core::ffi::c_void, DEBUG_FLR_PARAM_TYPE, u64) -> *mut FA_ENTRY,
pub AddBuffer: unsafe extern "system" fn(*mut core::ffi::c_void, DEBUG_FLR_PARAM_TYPE, FA_ENTRY_TYPE, *const core::ffi::c_void, u32) -> *mut FA_ENTRY,
pub GetDebugFATagControl: unsafe extern "system" fn(*mut core::ffi::c_void, *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(*mut core::ffi::c_void, *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(*mut core::ffi::c_void, DEBUG_FLR_PARAM_TYPE, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub AddThreads: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub AttributeGet: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut core::mem::MaybeUninit<windows_core::VARIANT>) -> windows_core::HRESULT,
pub AttributeGetName: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut core::mem::MaybeUninit<windows_core::BSTR>) -> windows_core::HRESULT,
pub AttributeSet: unsafe extern "system" fn(*mut core::ffi::c_void, u32, core::mem::MaybeUninit<windows_core::VARIANT>) -> windows_core::HRESULT,
pub BlameApplication: unsafe extern "system" fn(*mut core::ffi::c_void, core::mem::MaybeUninit<windows_core::BSTR>) -> windows_core::HRESULT,
pub BlameProcess: unsafe extern "system" fn(*mut core::ffi::c_void, core::mem::MaybeUninit<windows_core::BSTR>) -> windows_core::HRESULT,
pub BlameThread: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub BlameStitch: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, core::mem::MaybeUninit<windows_core::BSTR>) -> windows_core::HRESULT,
pub BlameTEB: unsafe extern "system" fn(*mut core::ffi::c_void, u64) -> windows_core::HRESULT,
pub BlameETHREAD: unsafe extern "system" fn(*mut core::ffi::c_void, u64) -> windows_core::HRESULT,
pub ProblemClassIsSet: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut super::super::super::super::Foundation::VARIANT_BOOL) -> windows_core::HRESULT,
pub ProblemClassDelete: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub ProblemClassSet: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub ProblemClassSetBSTR: unsafe extern "system" fn(*mut core::ffi::c_void, u32, core::mem::MaybeUninit<windows_core::BSTR>) -> windows_core::HRESULT,
pub SetAdditionalXML: unsafe extern "system" fn(*mut core::ffi::c_void, core::mem::MaybeUninit<windows_core::BSTR>, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetAdditionalXML: unsafe extern "system" fn(*mut core::ffi::c_void, core::mem::MaybeUninit<windows_core::BSTR>, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub DeleteAdditionalXML: unsafe extern "system" fn(*mut core::ffi::c_void, core::mem::MaybeUninit<windows_core::BSTR>) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IDebugHost, IDebugHost_Vtbl, 0xb8c74943_6b2c_4eeb_b5c5_35d378a6d99d);
impl core::ops::Deref for IDebugHost {
type Target = windows_core::IUnknown;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(IDebugHost, windows_core::IUnknown);
impl IDebugHost {
pub unsafe fn GetHostDefinedInterface(&self) -> windows_core::Result<windows_core::IUnknown> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetHostDefinedInterface)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn GetCurrentContext(&self) -> windows_core::Result<IDebugHostContext> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCurrentContext)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn GetDefaultMetadata(&self) -> windows_core::Result<IKeyStore> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetDefaultMetadata)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
#[repr(C)]
pub struct IDebugHost_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetHostDefinedInterface: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetCurrentContext: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetDefaultMetadata: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IDebugHostBaseClass, IDebugHostBaseClass_Vtbl, 0xb94d57d2_390b_40f7_b5b4_b6db897d974b);
impl core::ops::Deref for IDebugHostBaseClass {
type Target = IDebugHostSymbol;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(IDebugHostBaseClass, windows_core::IUnknown, IDebugHostSymbol);
impl IDebugHostBaseClass {
pub unsafe fn GetOffset(&self) -> windows_core::Result<u64> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetOffset)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
#[repr(C)]
pub struct IDebugHostBaseClass_Vtbl {
pub base__: IDebugHostSymbol_Vtbl,
pub GetOffset: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u64) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IDebugHostConstant, IDebugHostConstant_Vtbl, 0x62787edc_fa76_4690_bd71_5e8c3e2937ec);
impl core::ops::Deref for IDebugHostConstant {
type Target = IDebugHostSymbol;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(IDebugHostConstant, windows_core::IUnknown, IDebugHostSymbol);
impl IDebugHostConstant {
pub unsafe fn GetValue(&self) -> windows_core::Result<windows_core::VARIANT> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetValue)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
#[repr(C)]
pub struct IDebugHostConstant_Vtbl {
pub base__: IDebugHostSymbol_Vtbl,
pub GetValue: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::mem::MaybeUninit<windows_core::VARIANT>) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IDebugHostContext, IDebugHostContext_Vtbl, 0xa68c70d8_5ec0_46e5_b775_3134a48ea2e3);
impl core::ops::Deref for IDebugHostContext {
type Target = windows_core::IUnknown;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(IDebugHostContext, windows_core::IUnknown);
impl IDebugHostContext {
pub unsafe fn IsEqualTo<P0>(&self, pcontext: P0) -> windows_core::Result<bool>
where
P0: windows_core::Param<IDebugHostContext>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).IsEqualTo)(windows_core::Interface::as_raw(self), pcontext.param().abi(), &mut result__).map(|| result__)
}
}
#[repr(C)]
pub struct IDebugHostContext_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub IsEqualTo: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, *mut bool) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IDebugHostData, IDebugHostData_Vtbl, 0xa3d64993_826c_44fa_897d_926f2fe7ad0b);
impl core::ops::Deref for IDebugHostData {
type Target = IDebugHostSymbol;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(IDebugHostData, windows_core::IUnknown, IDebugHostSymbol);
impl IDebugHostData {
pub unsafe fn GetLocationKind(&self) -> windows_core::Result<LocationKind> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetLocationKind)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetLocation(&self) -> windows_core::Result<Location> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetLocation)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetValue(&self) -> windows_core::Result<windows_core::VARIANT> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetValue)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
#[repr(C)]
pub struct IDebugHostData_Vtbl {
pub base__: IDebugHostSymbol_Vtbl,
pub GetLocationKind: unsafe extern "system" fn(*mut core::ffi::c_void, *mut LocationKind) -> windows_core::HRESULT,
pub GetLocation: unsafe extern "system" fn(*mut core::ffi::c_void, *mut Location) -> windows_core::HRESULT,
pub GetValue: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::mem::MaybeUninit<windows_core::VARIANT>) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IDebugHostErrorSink, IDebugHostErrorSink_Vtbl, 0xc8ff0f0b_fce9_467e_8bb3_5d69ef109c00);
impl core::ops::Deref for IDebugHostErrorSink {
type Target = windows_core::IUnknown;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(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::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).ReportError)(windows_core::Interface::as_raw(self), errclass, hrerror, message.param().abi()).ok()
}
}
#[repr(C)]
pub struct IDebugHostErrorSink_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub ReportError: unsafe extern "system" fn(*mut core::ffi::c_void, ErrorClass, windows_core::HRESULT, windows_core::PCWSTR) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IDebugHostEvaluator, IDebugHostEvaluator_Vtbl, 0x0fef9a21_577e_4997_ac7b_1c4883241d99);
impl core::ops::Deref for IDebugHostEvaluator {
type Target = windows_core::IUnknown;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(IDebugHostEvaluator, windows_core::IUnknown);
impl IDebugHostEvaluator {
pub unsafe fn EvaluateExpression<P0, P1, P2>(&self, context: P0, expression: P1, bindingcontext: P2, result: *mut Option<IModelObject>, metadata: Option<*mut Option<IKeyStore>>) -> windows_core::Result<()>
where
P0: windows_core::Param<IDebugHostContext>,
P1: windows_core::Param<windows_core::PCWSTR>,
P2: windows_core::Param<IModelObject>,
{
(windows_core::Interface::vtable(self).EvaluateExpression)(windows_core::Interface::as_raw(self), context.param().abi(), expression.param().abi(), bindingcontext.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 Option<IModelObject>, metadata: Option<*mut Option<IKeyStore>>) -> windows_core::Result<()>
where
P0: windows_core::Param<IDebugHostContext>,
P1: windows_core::Param<windows_core::PCWSTR>,
P2: windows_core::Param<IModelObject>,
{
(windows_core::Interface::vtable(self).EvaluateExtendedExpression)(windows_core::Interface::as_raw(self), context.param().abi(), expression.param().abi(), bindingcontext.param().abi(), core::mem::transmute(result), core::mem::transmute(metadata.unwrap_or(std::ptr::null_mut()))).ok()
}
}
#[repr(C)]
pub struct IDebugHostEvaluator_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub EvaluateExpression: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, windows_core::PCWSTR, *mut core::ffi::c_void, *mut *mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub EvaluateExtendedExpression: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, windows_core::PCWSTR, *mut core::ffi::c_void, *mut *mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IDebugHostEvaluator2, IDebugHostEvaluator2_Vtbl, 0xa117a435_1fb4_4092_a2ab_a929576c1e87);
impl core::ops::Deref for IDebugHostEvaluator2 {
type Target = IDebugHostEvaluator;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(IDebugHostEvaluator2, windows_core::IUnknown, IDebugHostEvaluator);
impl IDebugHostEvaluator2 {
pub unsafe fn AssignTo<P0, P1>(&self, assignmentreference: P0, assignmentvalue: P1, assignmentresult: *mut Option<IModelObject>, assignmentmetadata: Option<*mut Option<IKeyStore>>) -> windows_core::Result<()>
where
P0: windows_core::Param<IModelObject>,
P1: windows_core::Param<IModelObject>,
{
(windows_core::Interface::vtable(self).AssignTo)(windows_core::Interface::as_raw(self), assignmentreference.param().abi(), assignmentvalue.param().abi(), core::mem::transmute(assignmentresult), core::mem::transmute(assignmentmetadata.unwrap_or(std::ptr::null_mut()))).ok()
}
}
#[repr(C)]
pub struct IDebugHostEvaluator2_Vtbl {
pub base__: IDebugHostEvaluator_Vtbl,
pub AssignTo: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, *mut core::ffi::c_void, *mut *mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IDebugHostExtensibility, IDebugHostExtensibility_Vtbl, 0x3c2b24e1_11d0_4f86_8ae5_4df166f73253);
impl core::ops::Deref for IDebugHostExtensibility {
type Target = windows_core::IUnknown;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(IDebugHostExtensibility, windows_core::IUnknown);
impl IDebugHostExtensibility {
pub unsafe fn CreateFunctionAlias<P0, P1>(&self, aliasname: P0, functionobject: P1) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
P1: windows_core::Param<IModelObject>,
{
(windows_core::Interface::vtable(self).CreateFunctionAlias)(windows_core::Interface::as_raw(self), aliasname.param().abi(), functionobject.param().abi()).ok()
}
pub unsafe fn DestroyFunctionAlias<P0>(&self, aliasname: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).DestroyFunctionAlias)(windows_core::Interface::as_raw(self), aliasname.param().abi()).ok()
}
}
#[repr(C)]
pub struct IDebugHostExtensibility_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub CreateFunctionAlias: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub DestroyFunctionAlias: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IDebugHostField, IDebugHostField_Vtbl, 0xe06f6495_16bc_4cc9_b11d_2a6b23fa72f3);
impl core::ops::Deref for IDebugHostField {
type Target = IDebugHostSymbol;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(IDebugHostField, windows_core::IUnknown, IDebugHostSymbol);
impl IDebugHostField {
pub unsafe fn GetLocationKind(&self) -> windows_core::Result<LocationKind> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetLocationKind)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetOffset(&self) -> windows_core::Result<u64> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetOffset)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetLocation(&self) -> windows_core::Result<Location> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetLocation)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetValue(&self) -> windows_core::Result<windows_core::VARIANT> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetValue)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
#[repr(C)]
pub struct IDebugHostField_Vtbl {
pub base__: IDebugHostSymbol_Vtbl,
pub GetLocationKind: unsafe extern "system" fn(*mut core::ffi::c_void, *mut LocationKind) -> windows_core::HRESULT,
pub GetOffset: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u64) -> windows_core::HRESULT,
pub GetLocation: unsafe extern "system" fn(*mut core::ffi::c_void, *mut Location) -> windows_core::HRESULT,
pub GetValue: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::mem::MaybeUninit<windows_core::VARIANT>) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IDebugHostMemory, IDebugHostMemory_Vtbl, 0x212149c9_9183_4a3e_b00e_4fd1dc95339b);
impl core::ops::Deref for IDebugHostMemory {
type Target = windows_core::IUnknown;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(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: Option<*mut u64>) -> windows_core::Result<()>
where
P0: windows_core::Param<IDebugHostContext>,
{
(windows_core::Interface::vtable(self).ReadBytes)(windows_core::Interface::as_raw(self), context.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: Option<*mut u64>) -> windows_core::Result<()>
where
P0: windows_core::Param<IDebugHostContext>,
{
(windows_core::Interface::vtable(self).WriteBytes)(windows_core::Interface::as_raw(self), context.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::Param<IDebugHostContext>,
{
(windows_core::Interface::vtable(self).ReadPointers)(windows_core::Interface::as_raw(self), context.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::Param<IDebugHostContext>,
{
(windows_core::Interface::vtable(self).WritePointers)(windows_core::Interface::as_raw(self), context.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::Param<IDebugHostContext>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetDisplayStringForLocation)(windows_core::Interface::as_raw(self), context.param().abi(), core::mem::transmute(location), verbose, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
#[repr(C)]
pub struct IDebugHostMemory_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub ReadBytes: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, Location, *mut core::ffi::c_void, u64, *mut u64) -> windows_core::HRESULT,
pub WriteBytes: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, Location, *const core::ffi::c_void, u64, *mut u64) -> windows_core::HRESULT,
pub ReadPointers: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, Location, u64, *mut u64) -> windows_core::HRESULT,
pub WritePointers: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, Location, u64, *const u64) -> windows_core::HRESULT,
pub GetDisplayStringForLocation: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, Location, u8, *mut core::mem::MaybeUninit<windows_core::BSTR>) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IDebugHostMemory2, IDebugHostMemory2_Vtbl, 0xeea033de_38f6_416b_a251_1d3771001270);
impl core::ops::Deref for IDebugHostMemory2 {
type Target = IDebugHostMemory;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(IDebugHostMemory2, windows_core::IUnknown, IDebugHostMemory);
impl IDebugHostMemory2 {
pub unsafe fn LinearizeLocation<P0>(&self, context: P0, location: Location) -> windows_core::Result<Location>
where
P0: windows_core::Param<IDebugHostContext>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).LinearizeLocation)(windows_core::Interface::as_raw(self), context.param().abi(), core::mem::transmute(location), &mut result__).map(|| result__)
}
}
#[repr(C)]
pub struct IDebugHostMemory2_Vtbl {
pub base__: IDebugHostMemory_Vtbl,
pub LinearizeLocation: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, Location, *mut Location) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IDebugHostModule, IDebugHostModule_Vtbl, 0xc9ba3e18_d070_4378_bbd0_34613b346e1e);
impl core::ops::Deref for IDebugHostModule {
type Target = IDebugHostSymbol;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(IDebugHostModule, windows_core::IUnknown, IDebugHostSymbol);
impl IDebugHostModule {
pub unsafe fn GetImageName(&self, allowpath: u8) -> windows_core::Result<windows_core::BSTR> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetImageName)(windows_core::Interface::as_raw(self), allowpath, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn GetBaseLocation(&self) -> windows_core::Result<Location> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetBaseLocation)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetVersion(&self, fileversion: Option<*mut u64>, productversion: 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::Param<windows_core::PCWSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).FindTypeByName)(windows_core::Interface::as_raw(self), typename.param().abi(), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn FindSymbolByRVA(&self, rva: u64) -> windows_core::Result<IDebugHostSymbol> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).FindSymbolByRVA)(windows_core::Interface::as_raw(self), rva, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn FindSymbolByName<P0>(&self, symbolname: P0) -> windows_core::Result<IDebugHostSymbol>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).FindSymbolByName)(windows_core::Interface::as_raw(self), symbolname.param().abi(), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
#[repr(C)]
pub struct IDebugHostModule_Vtbl {
pub base__: IDebugHostSymbol_Vtbl,
pub GetImageName: unsafe extern "system" fn(*mut core::ffi::c_void, u8, *mut core::mem::MaybeUninit<windows_core::BSTR>) -> windows_core::HRESULT,
pub GetBaseLocation: unsafe extern "system" fn(*mut core::ffi::c_void, *mut Location) -> windows_core::HRESULT,
pub GetVersion: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u64, *mut u64) -> windows_core::HRESULT,
pub FindTypeByName: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub FindSymbolByRVA: unsafe extern "system" fn(*mut core::ffi::c_void, u64, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub FindSymbolByName: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IDebugHostModule2, IDebugHostModule2_Vtbl, 0xb51887e8_bcd0_4e8f_a8c7_434398b78c37);
impl core::ops::Deref for IDebugHostModule2 {
type Target = IDebugHostModule;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(IDebugHostModule2, windows_core::IUnknown, IDebugHostSymbol, IDebugHostModule);
impl IDebugHostModule2 {
pub unsafe fn FindContainingSymbolByRVA(&self, rva: u64, symbol: *mut 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()
}
}
#[repr(C)]
pub struct IDebugHostModule2_Vtbl {
pub base__: IDebugHostModule_Vtbl,
pub FindContainingSymbolByRVA: unsafe extern "system" fn(*mut core::ffi::c_void, u64, *mut *mut core::ffi::c_void, *mut u64) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IDebugHostModuleSignature, IDebugHostModuleSignature_Vtbl, 0x31e53a5a_01ee_4bbb_b899_4b46ae7d595c);
impl core::ops::Deref for IDebugHostModuleSignature {
type Target = windows_core::IUnknown;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(IDebugHostModuleSignature, windows_core::IUnknown);
impl IDebugHostModuleSignature {
pub unsafe fn IsMatch<P0>(&self, pmodule: P0) -> windows_core::Result<bool>
where
P0: windows_core::Param<IDebugHostModule>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).IsMatch)(windows_core::Interface::as_raw(self), pmodule.param().abi(), &mut result__).map(|| result__)
}
}
#[repr(C)]
pub struct IDebugHostModuleSignature_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub IsMatch: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, *mut bool) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IDebugHostPublic, IDebugHostPublic_Vtbl, 0x6c597ac9_fb4d_4f6d_9f39_22488539f8f4);
impl core::ops::Deref for IDebugHostPublic {
type Target = IDebugHostSymbol;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(IDebugHostPublic, windows_core::IUnknown, IDebugHostSymbol);
impl IDebugHostPublic {
pub unsafe fn GetLocationKind(&self) -> windows_core::Result<LocationKind> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetLocationKind)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetLocation(&self) -> windows_core::Result<Location> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetLocation)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
#[repr(C)]
pub struct IDebugHostPublic_Vtbl {
pub base__: IDebugHostSymbol_Vtbl,
pub GetLocationKind: unsafe extern "system" fn(*mut core::ffi::c_void, *mut LocationKind) -> windows_core::HRESULT,
pub GetLocation: unsafe extern "system" fn(*mut core::ffi::c_void, *mut Location) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IDebugHostScriptHost, IDebugHostScriptHost_Vtbl, 0xb70334a4_b92c_4570_93a1_d3eb686649a0);
impl core::ops::Deref for IDebugHostScriptHost {
type Target = windows_core::IUnknown;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(IDebugHostScriptHost, windows_core::IUnknown);
impl IDebugHostScriptHost {
pub unsafe fn CreateContext<P0>(&self, script: P0) -> windows_core::Result<IDataModelScriptHostContext>
where
P0: windows_core::Param<IDataModelScript>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).CreateContext)(windows_core::Interface::as_raw(self), script.param().abi(), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
#[repr(C)]
pub struct IDebugHostScriptHost_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub CreateContext: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IDebugHostStatus, IDebugHostStatus_Vtbl, 0x4f3e1ce2_86b2_4c7a_9c65_d0a9d0eecf44);
impl core::ops::Deref for IDebugHostStatus {
type Target = windows_core::IUnknown;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(IDebugHostStatus, windows_core::IUnknown);
impl IDebugHostStatus {
pub unsafe fn PollUserInterrupt(&self) -> windows_core::Result<bool> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).PollUserInterrupt)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
#[repr(C)]
pub struct IDebugHostStatus_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub PollUserInterrupt: unsafe extern "system" fn(*mut core::ffi::c_void, *mut bool) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IDebugHostSymbol, IDebugHostSymbol_Vtbl, 0x0f819103_87de_4e96_8277_e05cd441fb22);
impl core::ops::Deref for IDebugHostSymbol {
type Target = windows_core::IUnknown;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(IDebugHostSymbol, windows_core::IUnknown);
impl IDebugHostSymbol {
pub unsafe fn GetContext(&self) -> windows_core::Result<IDebugHostContext> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetContext)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn EnumerateChildren<P0>(&self, kind: SymbolKind, name: P0) -> windows_core::Result<IDebugHostSymbolEnumerator>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).EnumerateChildren)(windows_core::Interface::as_raw(self), kind, name.param().abi(), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn GetSymbolKind(&self) -> windows_core::Result<SymbolKind> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetSymbolKind)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetName(&self) -> windows_core::Result<windows_core::BSTR> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetName)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn GetType(&self) -> windows_core::Result<IDebugHostType> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetType)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn GetContainingModule(&self) -> windows_core::Result<IDebugHostModule> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetContainingModule)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn CompareAgainst<P0>(&self, pcomparisonsymbol: P0, comparisonflags: u32) -> windows_core::Result<bool>
where
P0: windows_core::Param<IDebugHostSymbol>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).CompareAgainst)(windows_core::Interface::as_raw(self), pcomparisonsymbol.param().abi(), comparisonflags, &mut result__).map(|| result__)
}
}
#[repr(C)]
pub struct IDebugHostSymbol_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetContext: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub EnumerateChildren: unsafe extern "system" fn(*mut core::ffi::c_void, SymbolKind, windows_core::PCWSTR, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetSymbolKind: unsafe extern "system" fn(*mut core::ffi::c_void, *mut SymbolKind) -> windows_core::HRESULT,
pub GetName: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::mem::MaybeUninit<windows_core::BSTR>) -> windows_core::HRESULT,
pub GetType: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetContainingModule: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub CompareAgainst: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, u32, *mut bool) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IDebugHostSymbol2, IDebugHostSymbol2_Vtbl, 0x21515b67_6720_4257_8a68_077dc944471c);
impl core::ops::Deref for IDebugHostSymbol2 {
type Target = IDebugHostSymbol;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(IDebugHostSymbol2, windows_core::IUnknown, IDebugHostSymbol);
impl IDebugHostSymbol2 {
pub unsafe fn GetLanguage(&self) -> windows_core::Result<LanguageKind> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetLanguage)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
#[repr(C)]
pub struct IDebugHostSymbol2_Vtbl {
pub base__: IDebugHostSymbol_Vtbl,
pub GetLanguage: unsafe extern "system" fn(*mut core::ffi::c_void, *mut LanguageKind) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IDebugHostSymbolEnumerator, IDebugHostSymbolEnumerator_Vtbl, 0x28d96c86_10a3_4976_b14e_eaef4790aa1f);
impl core::ops::Deref for IDebugHostSymbolEnumerator {
type Target = windows_core::IUnknown;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNext)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
#[repr(C)]
pub struct IDebugHostSymbolEnumerator_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub Reset: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetNext: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IDebugHostSymbols, IDebugHostSymbols_Vtbl, 0x854fd751_c2e1_4eb2_b525_6619cb97a588);
impl core::ops::Deref for IDebugHostSymbols {
type Target = windows_core::IUnknown;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(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::Param<windows_core::PCWSTR>,
P1: windows_core::Param<windows_core::PCWSTR>,
P2: windows_core::Param<windows_core::PCWSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).CreateModuleSignature)(windows_core::Interface::as_raw(self), pwszmodulename.param().abi(), pwszminversion.param().abi(), pwszmaxversion.param().abi(), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn CreateTypeSignature<P0, P1>(&self, signaturespecification: P0, module: P1) -> windows_core::Result<IDebugHostTypeSignature>
where
P0: windows_core::Param<windows_core::PCWSTR>,
P1: windows_core::Param<IDebugHostModule>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).CreateTypeSignature)(windows_core::Interface::as_raw(self), signaturespecification.param().abi(), module.param().abi(), &mut result__).and_then(|| windows_core::Type::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::Param<windows_core::PCWSTR>,
P1: windows_core::Param<windows_core::PCWSTR>,
P2: windows_core::Param<windows_core::PCWSTR>,
P3: windows_core::Param<windows_core::PCWSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).CreateTypeSignatureForModuleRange)(windows_core::Interface::as_raw(self), signaturespecification.param().abi(), modulename.param().abi(), minversion.param().abi(), maxversion.param().abi(), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn EnumerateModules<P0>(&self, context: P0) -> windows_core::Result<IDebugHostSymbolEnumerator>
where
P0: windows_core::Param<IDebugHostContext>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).EnumerateModules)(windows_core::Interface::as_raw(self), context.param().abi(), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn FindModuleByName<P0, P1>(&self, context: P0, modulename: P1) -> windows_core::Result<IDebugHostModule>
where
P0: windows_core::Param<IDebugHostContext>,
P1: windows_core::Param<windows_core::PCWSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).FindModuleByName)(windows_core::Interface::as_raw(self), context.param().abi(), modulename.param().abi(), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn FindModuleByLocation<P0>(&self, context: P0, modulelocation: Location) -> windows_core::Result<IDebugHostModule>
where
P0: windows_core::Param<IDebugHostContext>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).FindModuleByLocation)(windows_core::Interface::as_raw(self), context.param().abi(), core::mem::transmute(modulelocation), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn GetMostDerivedObject<P0, P1>(&self, pcontext: P0, location: Location, objecttype: P1, derivedlocation: *mut Location, derivedtype: *mut Option<IDebugHostType>) -> windows_core::Result<()>
where
P0: windows_core::Param<IDebugHostContext>,
P1: windows_core::Param<IDebugHostType>,
{
(windows_core::Interface::vtable(self).GetMostDerivedObject)(windows_core::Interface::as_raw(self), pcontext.param().abi(), core::mem::transmute(location), objecttype.param().abi(), derivedlocation, core::mem::transmute(derivedtype)).ok()
}
}
#[repr(C)]
pub struct IDebugHostSymbols_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub CreateModuleSignature: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR, windows_core::PCWSTR, windows_core::PCWSTR, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub CreateTypeSignature: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR, *mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub CreateTypeSignatureForModuleRange: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR, windows_core::PCWSTR, windows_core::PCWSTR, windows_core::PCWSTR, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub EnumerateModules: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub FindModuleByName: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, windows_core::PCWSTR, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub FindModuleByLocation: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, Location, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetMostDerivedObject: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, Location, *mut core::ffi::c_void, *mut Location, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IDebugHostType, IDebugHostType_Vtbl, 0x3aadc353_2b14_4abb_9893_5e03458e07ee);
impl core::ops::Deref for IDebugHostType {
type Target = IDebugHostSymbol;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(IDebugHostType, windows_core::IUnknown, IDebugHostSymbol);
impl IDebugHostType {
pub unsafe fn GetTypeKind(&self) -> windows_core::Result<TypeKind> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTypeKind)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetSize(&self) -> windows_core::Result<u64> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetSize)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetBaseType(&self) -> windows_core::Result<IDebugHostType> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetBaseType)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn GetHashCode(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetHashCode)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetIntrinsicType(&self, intrinsickind: Option<*mut IntrinsicKind>, carriertype: 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetPointerKind)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetMemberType(&self) -> windows_core::Result<IDebugHostType> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetMemberType)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn CreatePointerTo(&self, kind: PointerKind) -> windows_core::Result<IDebugHostType> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).CreatePointerTo)(windows_core::Interface::as_raw(self), kind, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn GetArrayDimensionality(&self) -> windows_core::Result<u64> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetArrayDimensionality)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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__ = core::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__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn GetFunctionCallingConvention(&self) -> windows_core::Result<CallingConventionKind> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetFunctionCallingConvention)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetFunctionReturnType(&self) -> windows_core::Result<IDebugHostType> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetFunctionReturnType)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn GetFunctionParameterTypeCount(&self) -> windows_core::Result<u64> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetFunctionParameterTypeCount)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetFunctionParameterTypeAt(&self, i: u64) -> windows_core::Result<IDebugHostType> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetFunctionParameterTypeAt)(windows_core::Interface::as_raw(self), i, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn IsGeneric(&self) -> windows_core::Result<bool> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).IsGeneric)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetGenericArgumentCount(&self) -> windows_core::Result<u64> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetGenericArgumentCount)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetGenericArgumentAt(&self, i: u64) -> windows_core::Result<IDebugHostSymbol> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetGenericArgumentAt)(windows_core::Interface::as_raw(self), i, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
#[repr(C)]
pub struct IDebugHostType_Vtbl {
pub base__: IDebugHostSymbol_Vtbl,
pub GetTypeKind: unsafe extern "system" fn(*mut core::ffi::c_void, *mut TypeKind) -> windows_core::HRESULT,
pub GetSize: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u64) -> windows_core::HRESULT,
pub GetBaseType: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetHashCode: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetIntrinsicType: unsafe extern "system" fn(*mut core::ffi::c_void, *mut IntrinsicKind, *mut u16) -> windows_core::HRESULT,
pub GetBitField: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32, *mut u32) -> windows_core::HRESULT,
pub GetPointerKind: unsafe extern "system" fn(*mut core::ffi::c_void, *mut PointerKind) -> windows_core::HRESULT,
pub GetMemberType: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub CreatePointerTo: unsafe extern "system" fn(*mut core::ffi::c_void, PointerKind, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetArrayDimensionality: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u64) -> windows_core::HRESULT,
pub GetArrayDimensions: unsafe extern "system" fn(*mut core::ffi::c_void, u64, *mut ArrayDimension) -> windows_core::HRESULT,
pub CreateArrayOf: unsafe extern "system" fn(*mut core::ffi::c_void, u64, *const ArrayDimension, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetFunctionCallingConvention: unsafe extern "system" fn(*mut core::ffi::c_void, *mut CallingConventionKind) -> windows_core::HRESULT,
pub GetFunctionReturnType: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetFunctionParameterTypeCount: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u64) -> windows_core::HRESULT,
pub GetFunctionParameterTypeAt: unsafe extern "system" fn(*mut core::ffi::c_void, u64, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub IsGeneric: unsafe extern "system" fn(*mut core::ffi::c_void, *mut bool) -> windows_core::HRESULT,
pub GetGenericArgumentCount: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u64) -> windows_core::HRESULT,
pub GetGenericArgumentAt: unsafe extern "system" fn(*mut core::ffi::c_void, u64, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IDebugHostType2, IDebugHostType2_Vtbl, 0xb28632b9_8506_4676_87ce_8f7e05e59876);
impl core::ops::Deref for IDebugHostType2 {
type Target = IDebugHostType;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(IDebugHostType2, windows_core::IUnknown, IDebugHostSymbol, IDebugHostType);
impl IDebugHostType2 {
pub unsafe fn IsTypedef(&self) -> windows_core::Result<bool> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).IsTypedef)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetTypedefBaseType(&self) -> windows_core::Result<IDebugHostType2> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTypedefBaseType)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn GetTypedefFinalBaseType(&self) -> windows_core::Result<IDebugHostType2> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTypedefFinalBaseType)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn GetFunctionVarArgsKind(&self) -> windows_core::Result<VarArgsKind> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetFunctionVarArgsKind)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetFunctionInstancePointerType(&self) -> windows_core::Result<IDebugHostType2> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetFunctionInstancePointerType)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
#[repr(C)]
pub struct IDebugHostType2_Vtbl {
pub base__: IDebugHostType_Vtbl,
pub IsTypedef: unsafe extern "system" fn(*mut core::ffi::c_void, *mut bool) -> windows_core::HRESULT,
pub GetTypedefBaseType: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetTypedefFinalBaseType: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetFunctionVarArgsKind: unsafe extern "system" fn(*mut core::ffi::c_void, *mut VarArgsKind) -> windows_core::HRESULT,
pub GetFunctionInstancePointerType: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IDebugHostTypeSignature, IDebugHostTypeSignature_Vtbl, 0x3aadc353_2b14_4abb_9893_5e03458e07ee);
impl core::ops::Deref for IDebugHostTypeSignature {
type Target = windows_core::IUnknown;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(IDebugHostTypeSignature, windows_core::IUnknown);
impl IDebugHostTypeSignature {
pub unsafe fn GetHashCode(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetHashCode)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn IsMatch<P0>(&self, r#type: P0, ismatch: *mut bool, wildcardmatches: Option<*mut Option<IDebugHostSymbolEnumerator>>) -> windows_core::Result<()>
where
P0: windows_core::Param<IDebugHostType>,
{
(windows_core::Interface::vtable(self).IsMatch)(windows_core::Interface::as_raw(self), r#type.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::Param<IDebugHostTypeSignature>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).CompareAgainst)(windows_core::Interface::as_raw(self), typesignature.param().abi(), &mut result__).map(|| result__)
}
}
#[repr(C)]
pub struct IDebugHostTypeSignature_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetHashCode: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub IsMatch: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, *mut bool, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub CompareAgainst: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, *mut SignatureComparison) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IDebugInputCallbacks, IDebugInputCallbacks_Vtbl, 0x9f50e42c_f136_499e_9a97_73036c94ed2d);
impl core::ops::Deref for IDebugInputCallbacks {
type Target = windows_core::IUnknown;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(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()
}
}
#[repr(C)]
pub struct IDebugInputCallbacks_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub StartInput: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub EndInput: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IDebugOutputCallbacks, IDebugOutputCallbacks_Vtbl, 0x4bf58045_d654_4c40_b0af_683090f356dc);
impl core::ops::Deref for IDebugOutputCallbacks {
type Target = windows_core::IUnknown;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(IDebugOutputCallbacks, windows_core::IUnknown);
impl IDebugOutputCallbacks {
pub unsafe fn Output<P0>(&self, mask: u32, text: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).Output)(windows_core::Interface::as_raw(self), mask, text.param().abi()).ok()
}
}
#[repr(C)]
pub struct IDebugOutputCallbacks_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub Output: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IDebugOutputCallbacks2, IDebugOutputCallbacks2_Vtbl, 0x67721fe9_56d2_4a44_a325_2b65513ce6eb);
impl core::ops::Deref for IDebugOutputCallbacks2 {
type Target = windows_core::IUnknown;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(IDebugOutputCallbacks2, windows_core::IUnknown);
impl IDebugOutputCallbacks2 {
pub unsafe fn Output<P0>(&self, mask: u32, text: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).Output)(windows_core::Interface::as_raw(self), mask, text.param().abi()).ok()
}
pub unsafe fn GetInterestMask(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetInterestMask)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn Output2<P0>(&self, which: u32, flags: u32, arg: u64, text: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).Output2)(windows_core::Interface::as_raw(self), which, flags, arg, text.param().abi()).ok()
}
}
#[repr(C)]
pub struct IDebugOutputCallbacks2_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub Output: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR) -> windows_core::HRESULT,
pub GetInterestMask: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub Output2: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, u64, windows_core::PCWSTR) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IDebugOutputCallbacksWide, IDebugOutputCallbacksWide_Vtbl, 0x4c7fd663_c394_4e26_8ef1_34ad5ed3764c);
impl core::ops::Deref for IDebugOutputCallbacksWide {
type Target = windows_core::IUnknown;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(IDebugOutputCallbacksWide, windows_core::IUnknown);
impl IDebugOutputCallbacksWide {
pub unsafe fn Output<P0>(&self, mask: u32, text: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).Output)(windows_core::Interface::as_raw(self), mask, text.param().abi()).ok()
}
}
#[repr(C)]
pub struct IDebugOutputCallbacksWide_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub Output: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCWSTR) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IDebugOutputStream, IDebugOutputStream_Vtbl, 0x7782d8f2_2b85_4059_ab88_28ceddca1c80);
impl core::ops::Deref for IDebugOutputStream {
type Target = windows_core::IUnknown;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(IDebugOutputStream, windows_core::IUnknown);
impl IDebugOutputStream {
pub unsafe fn Write<P0>(&self, psz: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).Write)(windows_core::Interface::as_raw(self), psz.param().abi()).ok()
}
}
#[repr(C)]
pub struct IDebugOutputStream_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub Write: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IDebugPlmClient, IDebugPlmClient_Vtbl, 0xa02b66c4_aea3_4234_a9f7_fe4c383d4e29);
impl core::ops::Deref for IDebugPlmClient {
type Target = windows_core::IUnknown;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(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::Param<windows_core::PCWSTR>,
P1: windows_core::Param<windows_core::PCWSTR>,
P2: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).LaunchPlmPackageForDebugWide)(windows_core::Interface::as_raw(self), server, timeout, packagefullname.param().abi(), appname.param().abi(), arguments.param().abi(), processid, threadid).ok()
}
}
#[repr(C)]
pub struct IDebugPlmClient_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub LaunchPlmPackageForDebugWide: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, windows_core::PCWSTR, windows_core::PCWSTR, windows_core::PCWSTR, *mut u32, *mut u32) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IDebugPlmClient2, IDebugPlmClient2_Vtbl, 0x597c980d_e7bd_4309_962c_9d9b69a7372c);
impl core::ops::Deref for IDebugPlmClient2 {
type Target = windows_core::IUnknown;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(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::Param<windows_core::PCWSTR>,
P1: windows_core::Param<windows_core::PCWSTR>,
P2: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).LaunchPlmPackageForDebugWide)(windows_core::Interface::as_raw(self), server, timeout, packagefullname.param().abi(), appname.param().abi(), arguments.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::Param<windows_core::PCWSTR>,
P1: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).LaunchPlmBgTaskForDebugWide)(windows_core::Interface::as_raw(self), server, timeout, packagefullname.param().abi(), backgroundtaskid.param().abi(), processid, threadid).ok()
}
}
#[repr(C)]
pub struct IDebugPlmClient2_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub LaunchPlmPackageForDebugWide: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, windows_core::PCWSTR, windows_core::PCWSTR, windows_core::PCWSTR, *mut u32, *mut u32) -> windows_core::HRESULT,
pub LaunchPlmBgTaskForDebugWide: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, windows_core::PCWSTR, windows_core::PCWSTR, *mut u32, *mut u32) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IDebugPlmClient3, IDebugPlmClient3_Vtbl, 0xd4a5dbd1_ca02_4d90_856a_2a92bfd0f20f);
impl core::ops::Deref for IDebugPlmClient3 {
type Target = windows_core::IUnknown;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(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::Param<windows_core::PCWSTR>,
P1: windows_core::Param<windows_core::PCWSTR>,
P2: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).LaunchPlmPackageForDebugWide)(windows_core::Interface::as_raw(self), server, timeout, packagefullname.param().abi(), appname.param().abi(), arguments.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::Param<windows_core::PCWSTR>,
P1: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).LaunchPlmBgTaskForDebugWide)(windows_core::Interface::as_raw(self), server, timeout, packagefullname.param().abi(), backgroundtaskid.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::Param<windows_core::PCWSTR>,
P1: windows_core::Param<IDebugOutputStream>,
{
(windows_core::Interface::vtable(self).QueryPlmPackageWide)(windows_core::Interface::as_raw(self), server, packagefullname.param().abi(), stream.param().abi()).ok()
}
pub unsafe fn QueryPlmPackageList<P0>(&self, server: u64, stream: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<IDebugOutputStream>,
{
(windows_core::Interface::vtable(self).QueryPlmPackageList)(windows_core::Interface::as_raw(self), server, stream.param().abi()).ok()
}
pub unsafe fn EnablePlmPackageDebugWide<P0>(&self, server: u64, packagefullname: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).EnablePlmPackageDebugWide)(windows_core::Interface::as_raw(self), server, packagefullname.param().abi()).ok()
}
pub unsafe fn DisablePlmPackageDebugWide<P0>(&self, server: u64, packagefullname: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).DisablePlmPackageDebugWide)(windows_core::Interface::as_raw(self), server, packagefullname.param().abi()).ok()
}
pub unsafe fn SuspendPlmPackageWide<P0>(&self, server: u64, packagefullname: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).SuspendPlmPackageWide)(windows_core::Interface::as_raw(self), server, packagefullname.param().abi()).ok()
}
pub unsafe fn ResumePlmPackageWide<P0>(&self, server: u64, packagefullname: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).ResumePlmPackageWide)(windows_core::Interface::as_raw(self), server, packagefullname.param().abi()).ok()
}
pub unsafe fn TerminatePlmPackageWide<P0>(&self, server: u64, packagefullname: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).TerminatePlmPackageWide)(windows_core::Interface::as_raw(self), server, packagefullname.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::Param<windows_core::PCWSTR>,
P1: windows_core::Param<windows_core::PCWSTR>,
P2: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).LaunchAndDebugPlmAppWide)(windows_core::Interface::as_raw(self), server, packagefullname.param().abi(), appname.param().abi(), arguments.param().abi()).ok()
}
pub unsafe fn ActivateAndDebugPlmBgTaskWide<P0, P1>(&self, server: u64, packagefullname: P0, backgroundtaskid: P1) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
P1: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).ActivateAndDebugPlmBgTaskWide)(windows_core::Interface::as_raw(self), server, packagefullname.param().abi(), backgroundtaskid.param().abi()).ok()
}
}
#[repr(C)]
pub struct IDebugPlmClient3_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub LaunchPlmPackageForDebugWide: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, windows_core::PCWSTR, windows_core::PCWSTR, windows_core::PCWSTR, *mut u32, *mut u32) -> windows_core::HRESULT,
pub LaunchPlmBgTaskForDebugWide: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, windows_core::PCWSTR, windows_core::PCWSTR, *mut u32, *mut u32) -> windows_core::HRESULT,
pub QueryPlmPackageWide: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PCWSTR, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub QueryPlmPackageList: unsafe extern "system" fn(*mut core::ffi::c_void, u64, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub EnablePlmPackageDebugWide: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PCWSTR) -> windows_core::HRESULT,
pub DisablePlmPackageDebugWide: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PCWSTR) -> windows_core::HRESULT,
pub SuspendPlmPackageWide: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PCWSTR) -> windows_core::HRESULT,
pub ResumePlmPackageWide: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PCWSTR) -> windows_core::HRESULT,
pub TerminatePlmPackageWide: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PCWSTR) -> windows_core::HRESULT,
pub LaunchAndDebugPlmAppWide: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PCWSTR, windows_core::PCWSTR, windows_core::PCWSTR) -> windows_core::HRESULT,
pub ActivateAndDebugPlmBgTaskWide: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PCWSTR, windows_core::PCWSTR) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IDebugRegisters, IDebugRegisters_Vtbl, 0xce289126_9e84_45a7_937e_67bb18691493);
impl core::ops::Deref for IDebugRegisters {
type Target = windows_core::IUnknown;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(IDebugRegisters, windows_core::IUnknown);
impl IDebugRegisters {
pub unsafe fn GetNumberRegisters(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNumberRegisters)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetDescription(&self, register: u32, namebuffer: Option<&mut [u8]>, namesize: Option<*mut u32>, desc: 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::Param<windows_core::PCSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetIndexByName)(windows_core::Interface::as_raw(self), name.param().abi(), &mut result__).map(|| result__)
}
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()
}
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()
}
pub unsafe fn GetValues(&self, count: u32, indices: 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()
}
pub unsafe fn SetValues(&self, count: u32, indices: 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetInstructionOffset)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetStackOffset(&self) -> windows_core::Result<u64> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetStackOffset)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetFrameOffset(&self) -> windows_core::Result<u64> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetFrameOffset)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
}
#[repr(C)]
pub struct IDebugRegisters_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetNumberRegisters: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetDescription: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PSTR, u32, *mut u32, *mut DEBUG_REGISTER_DESCRIPTION) -> windows_core::HRESULT,
pub GetIndexByName: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, *mut u32) -> windows_core::HRESULT,
pub GetValue: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut DEBUG_VALUE) -> windows_core::HRESULT,
pub SetValue: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *const DEBUG_VALUE) -> windows_core::HRESULT,
pub GetValues: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *const u32, u32, *mut DEBUG_VALUE) -> windows_core::HRESULT,
pub SetValues: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *const u32, u32, *const DEBUG_VALUE) -> windows_core::HRESULT,
pub OutputRegisters: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32) -> windows_core::HRESULT,
pub GetInstructionOffset: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u64) -> windows_core::HRESULT,
pub GetStackOffset: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u64) -> windows_core::HRESULT,
pub GetFrameOffset: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u64) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IDebugRegisters2, IDebugRegisters2_Vtbl, 0x1656afa9_19c6_4e3a_97e7_5dc9160cf9c4);
impl core::ops::Deref for IDebugRegisters2 {
type Target = windows_core::IUnknown;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(IDebugRegisters2, windows_core::IUnknown);
impl IDebugRegisters2 {
pub unsafe fn GetNumberRegisters(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNumberRegisters)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetDescription(&self, register: u32, namebuffer: Option<&mut [u8]>, namesize: Option<*mut u32>, desc: 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::Param<windows_core::PCSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetIndexByName)(windows_core::Interface::as_raw(self), name.param().abi(), &mut result__).map(|| result__)
}
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()
}
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()
}
pub unsafe fn GetValues(&self, count: u32, indices: 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()
}
pub unsafe fn SetValues(&self, count: u32, indices: 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetInstructionOffset)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetStackOffset(&self) -> windows_core::Result<u64> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetStackOffset)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetFrameOffset(&self) -> windows_core::Result<u64> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetFrameOffset)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetDescriptionWide(&self, register: u32, namebuffer: Option<&mut [u16]>, namesize: Option<*mut u32>, desc: 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::Param<windows_core::PCWSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetIndexByNameWide)(windows_core::Interface::as_raw(self), name.param().abi(), &mut result__).map(|| result__)
}
pub unsafe fn GetNumberPseudoRegisters(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNumberPseudoRegisters)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetPseudoDescription(&self, register: u32, namebuffer: Option<&mut [u8]>, namesize: Option<*mut u32>, typemodule: Option<*mut u64>, typeid: 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: Option<&mut [u16]>, namesize: Option<*mut u32>, typemodule: Option<*mut u64>, typeid: 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::Param<windows_core::PCSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetPseudoIndexByName)(windows_core::Interface::as_raw(self), name.param().abi(), &mut result__).map(|| result__)
}
pub unsafe fn GetPseudoIndexByNameWide<P0>(&self, name: P0) -> windows_core::Result<u32>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetPseudoIndexByNameWide)(windows_core::Interface::as_raw(self), name.param().abi(), &mut result__).map(|| result__)
}
pub unsafe fn GetPseudoValues(&self, source: u32, count: u32, indices: 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()
}
pub unsafe fn SetPseudoValues(&self, source: u32, count: u32, indices: 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()
}
pub unsafe fn GetValues2(&self, source: u32, count: u32, indices: 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()
}
pub unsafe fn SetValues2(&self, source: u32, count: u32, indices: 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetInstructionOffset2)(windows_core::Interface::as_raw(self), source, &mut result__).map(|| result__)
}
pub unsafe fn GetStackOffset2(&self, source: u32) -> windows_core::Result<u64> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetStackOffset2)(windows_core::Interface::as_raw(self), source, &mut result__).map(|| result__)
}
pub unsafe fn GetFrameOffset2(&self, source: u32) -> windows_core::Result<u64> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetFrameOffset2)(windows_core::Interface::as_raw(self), source, &mut result__).map(|| result__)
}
}
#[repr(C)]
pub struct IDebugRegisters2_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetNumberRegisters: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetDescription: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PSTR, u32, *mut u32, *mut DEBUG_REGISTER_DESCRIPTION) -> windows_core::HRESULT,
pub GetIndexByName: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, *mut u32) -> windows_core::HRESULT,
pub GetValue: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut DEBUG_VALUE) -> windows_core::HRESULT,
pub SetValue: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *const DEBUG_VALUE) -> windows_core::HRESULT,
pub GetValues: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *const u32, u32, *mut DEBUG_VALUE) -> windows_core::HRESULT,
pub SetValues: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *const u32, u32, *const DEBUG_VALUE) -> windows_core::HRESULT,
pub OutputRegisters: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32) -> windows_core::HRESULT,
pub GetInstructionOffset: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u64) -> windows_core::HRESULT,
pub GetStackOffset: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u64) -> windows_core::HRESULT,
pub GetFrameOffset: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u64) -> windows_core::HRESULT,
pub GetDescriptionWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PWSTR, u32, *mut u32, *mut DEBUG_REGISTER_DESCRIPTION) -> windows_core::HRESULT,
pub GetIndexByNameWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR, *mut u32) -> windows_core::HRESULT,
pub GetNumberPseudoRegisters: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetPseudoDescription: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PSTR, u32, *mut u32, *mut u64, *mut u32) -> windows_core::HRESULT,
pub GetPseudoDescriptionWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PWSTR, u32, *mut u32, *mut u64, *mut u32) -> windows_core::HRESULT,
pub GetPseudoIndexByName: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, *mut u32) -> windows_core::HRESULT,
pub GetPseudoIndexByNameWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR, *mut u32) -> windows_core::HRESULT,
pub GetPseudoValues: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, *const u32, u32, *mut DEBUG_VALUE) -> windows_core::HRESULT,
pub SetPseudoValues: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, *const u32, u32, *const DEBUG_VALUE) -> windows_core::HRESULT,
pub GetValues2: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, *const u32, u32, *mut DEBUG_VALUE) -> windows_core::HRESULT,
pub SetValues2: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, *const u32, u32, *const DEBUG_VALUE) -> windows_core::HRESULT,
pub OutputRegisters2: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, u32) -> windows_core::HRESULT,
pub GetInstructionOffset2: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut u64) -> windows_core::HRESULT,
pub GetStackOffset2: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut u64) -> windows_core::HRESULT,
pub GetFrameOffset2: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut u64) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IDebugSymbolGroup, IDebugSymbolGroup_Vtbl, 0xf2528316_0f1a_4431_aeed_11d096e1e2ab);
impl core::ops::Deref for IDebugSymbolGroup {
type Target = windows_core::IUnknown;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(IDebugSymbolGroup, windows_core::IUnknown);
impl IDebugSymbolGroup {
pub unsafe fn GetNumberSymbols(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNumberSymbols)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn AddSymbol<P0>(&self, name: P0, index: *mut u32) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).AddSymbol)(windows_core::Interface::as_raw(self), name.param().abi(), index).ok()
}
pub unsafe fn RemoveSymbolByName<P0>(&self, name: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).RemoveSymbolByName)(windows_core::Interface::as_raw(self), name.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: Option<&mut [u8]>, namesize: 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()
}
pub unsafe fn ExpandSymbol<P0>(&self, index: u32, expand: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<super::super::super::super::Foundation::BOOL>,
{
(windows_core::Interface::vtable(self).ExpandSymbol)(windows_core::Interface::as_raw(self), index, expand.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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).WriteSymbol)(windows_core::Interface::as_raw(self), index, value.param().abi()).ok()
}
pub unsafe fn OutputAsType<P0>(&self, index: u32, r#type: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).OutputAsType)(windows_core::Interface::as_raw(self), index, r#type.param().abi()).ok()
}
}
#[repr(C)]
pub struct IDebugSymbolGroup_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetNumberSymbols: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub AddSymbol: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, *mut u32) -> windows_core::HRESULT,
pub RemoveSymbolByName: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR) -> windows_core::HRESULT,
pub RemoveSymbolByIndex: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetSymbolName: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetSymbolParameters: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, *mut DEBUG_SYMBOL_PARAMETERS) -> windows_core::HRESULT,
pub ExpandSymbol: unsafe extern "system" fn(*mut core::ffi::c_void, u32, super::super::super::super::Foundation::BOOL) -> windows_core::HRESULT,
pub OutputSymbols: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, u32, u32) -> windows_core::HRESULT,
pub WriteSymbol: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR) -> windows_core::HRESULT,
pub OutputAsType: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IDebugSymbolGroup2, IDebugSymbolGroup2_Vtbl, 0x6a7ccc5f_fb5e_4dcc_b41c_6c20307bccc7);
impl core::ops::Deref for IDebugSymbolGroup2 {
type Target = windows_core::IUnknown;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(IDebugSymbolGroup2, windows_core::IUnknown);
impl IDebugSymbolGroup2 {
pub unsafe fn GetNumberSymbols(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNumberSymbols)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn AddSymbol<P0>(&self, name: P0, index: *mut u32) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).AddSymbol)(windows_core::Interface::as_raw(self), name.param().abi(), index).ok()
}
pub unsafe fn RemoveSymbolByName<P0>(&self, name: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).RemoveSymbolByName)(windows_core::Interface::as_raw(self), name.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: Option<&mut [u8]>, namesize: 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()
}
pub unsafe fn ExpandSymbol<P0>(&self, index: u32, expand: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<super::super::super::super::Foundation::BOOL>,
{
(windows_core::Interface::vtable(self).ExpandSymbol)(windows_core::Interface::as_raw(self), index, expand.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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).WriteSymbol)(windows_core::Interface::as_raw(self), index, value.param().abi()).ok()
}
pub unsafe fn OutputAsType<P0>(&self, index: u32, r#type: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).OutputAsType)(windows_core::Interface::as_raw(self), index, r#type.param().abi()).ok()
}
pub unsafe fn AddSymbolWide<P0>(&self, name: P0, index: *mut u32) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).AddSymbolWide)(windows_core::Interface::as_raw(self), name.param().abi(), index).ok()
}
pub unsafe fn RemoveSymbolByNameWide<P0>(&self, name: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).RemoveSymbolByNameWide)(windows_core::Interface::as_raw(self), name.param().abi()).ok()
}
pub unsafe fn GetSymbolNameWide(&self, index: u32, buffer: Option<&mut [u16]>, namesize: 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::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).WriteSymbolWide)(windows_core::Interface::as_raw(self), index, value.param().abi()).ok()
}
pub unsafe fn OutputAsTypeWide<P0>(&self, index: u32, r#type: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).OutputAsTypeWide)(windows_core::Interface::as_raw(self), index, r#type.param().abi()).ok()
}
pub unsafe fn GetSymbolTypeName(&self, index: u32, buffer: Option<&mut [u8]>, namesize: 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: Option<&mut [u16]>, namesize: 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetSymbolSize)(windows_core::Interface::as_raw(self), index, &mut result__).map(|| result__)
}
pub unsafe fn GetSymbolOffset(&self, index: u32) -> windows_core::Result<u64> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetSymbolOffset)(windows_core::Interface::as_raw(self), index, &mut result__).map(|| result__)
}
pub unsafe fn GetSymbolRegister(&self, index: u32) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetSymbolRegister)(windows_core::Interface::as_raw(self), index, &mut result__).map(|| result__)
}
pub unsafe fn GetSymbolValueText(&self, index: u32, buffer: Option<&mut [u8]>, namesize: 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: Option<&mut [u16]>, namesize: 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()
}
}
#[repr(C)]
pub struct IDebugSymbolGroup2_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetNumberSymbols: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub AddSymbol: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, *mut u32) -> windows_core::HRESULT,
pub RemoveSymbolByName: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR) -> windows_core::HRESULT,
pub RemoveSymbolByIndex: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetSymbolName: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetSymbolParameters: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, *mut DEBUG_SYMBOL_PARAMETERS) -> windows_core::HRESULT,
pub ExpandSymbol: unsafe extern "system" fn(*mut core::ffi::c_void, u32, super::super::super::super::Foundation::BOOL) -> windows_core::HRESULT,
pub OutputSymbols: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, u32, u32) -> windows_core::HRESULT,
pub WriteSymbol: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR) -> windows_core::HRESULT,
pub OutputAsType: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR) -> windows_core::HRESULT,
pub AddSymbolWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR, *mut u32) -> windows_core::HRESULT,
pub RemoveSymbolByNameWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR) -> windows_core::HRESULT,
pub GetSymbolNameWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub WriteSymbolWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCWSTR) -> windows_core::HRESULT,
pub OutputAsTypeWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCWSTR) -> windows_core::HRESULT,
pub GetSymbolTypeName: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetSymbolTypeNameWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetSymbolSize: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub GetSymbolOffset: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut u64) -> windows_core::HRESULT,
pub GetSymbolRegister: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub GetSymbolValueText: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetSymbolValueTextWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetSymbolEntryInformation: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut DEBUG_SYMBOL_ENTRY) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IDebugSymbols, IDebugSymbols_Vtbl, 0x8c31e98c_983a_48a5_9016_6fe5d667a950);
impl core::ops::Deref for IDebugSymbols {
type Target = windows_core::IUnknown;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(IDebugSymbols, windows_core::IUnknown);
impl IDebugSymbols {
pub unsafe fn GetSymbolOptions(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetSymbolOptions)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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: Option<&mut [u8]>, namesize: Option<*mut u32>, displacement: 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::Param<windows_core::PCSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetOffsetByName)(windows_core::Interface::as_raw(self), symbol.param().abi(), &mut result__).map(|| result__)
}
pub unsafe fn GetNearNameByOffset(&self, offset: u64, delta: i32, namebuffer: Option<&mut [u8]>, namesize: Option<*mut u32>, displacement: 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: Option<*mut u32>, filebuffer: Option<&mut [u8]>, filesize: Option<*mut u32>, displacement: 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::Param<windows_core::PCSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetOffsetByLine)(windows_core::Interface::as_raw(self), line, file.param().abi(), &mut result__).map(|| 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetModuleByIndex)(windows_core::Interface::as_raw(self), index, &mut result__).map(|| result__)
}
pub unsafe fn GetModuleByModuleName<P0>(&self, name: P0, startindex: u32, index: Option<*mut u32>, base: Option<*mut u64>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).GetModuleByModuleName)(windows_core::Interface::as_raw(self), name.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: Option<*mut u32>, base: 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: Option<&mut [u8]>, imagenamesize: Option<*mut u32>, modulenamebuffer: Option<&mut [u8]>, modulenamesize: Option<*mut u32>, loadedimagenamebuffer: Option<&mut [u8]>, loadedimagenamesize: 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: 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::Param<windows_core::PCSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetSymbolModule)(windows_core::Interface::as_raw(self), symbol.param().abi(), &mut result__).map(|| result__)
}
pub unsafe fn GetTypeName(&self, module: u64, typeid: u32, namebuffer: Option<&mut [u8]>, namesize: 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::Param<windows_core::PCSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTypeId)(windows_core::Interface::as_raw(self), module, name.param().abi(), &mut result__).map(|| result__)
}
pub unsafe fn GetTypeSize(&self, module: u64, typeid: u32) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTypeSize)(windows_core::Interface::as_raw(self), module, typeid, &mut result__).map(|| result__)
}
pub unsafe fn GetFieldOffset<P0>(&self, module: u64, typeid: u32, field: P0) -> windows_core::Result<u32>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetFieldOffset)(windows_core::Interface::as_raw(self), module, typeid, field.param().abi(), &mut result__).map(|| result__)
}
pub unsafe fn GetSymbolTypeId<P0>(&self, symbol: P0, typeid: *mut u32, module: Option<*mut u64>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).GetSymbolTypeId)(windows_core::Interface::as_raw(self), symbol.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: 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: 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: 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: 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: 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()
}
pub unsafe fn GetScope(&self, instructionoffset: Option<*mut u64>, scopeframe: Option<*mut DEBUG_STACK_FRAME>, scopecontext: 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()
}
pub unsafe fn SetScope(&self, instructionoffset: u64, scopeframe: Option<*const DEBUG_STACK_FRAME>, scopecontext: 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::Param<IDebugSymbolGroup>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetScopeSymbolGroup)(windows_core::Interface::as_raw(self), flags, update.param().abi(), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn CreateSymbolGroup(&self) -> windows_core::Result<IDebugSymbolGroup> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).CreateSymbolGroup)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn StartSymbolMatch<P0>(&self, pattern: P0) -> windows_core::Result<u64>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).StartSymbolMatch)(windows_core::Interface::as_raw(self), pattern.param().abi(), &mut result__).map(|| result__)
}
pub unsafe fn GetNextSymbolMatch(&self, handle: u64, buffer: Option<&mut [u8]>, matchsize: Option<*mut u32>, offset: 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).Reload)(windows_core::Interface::as_raw(self), module.param().abi()).ok()
}
pub unsafe fn GetSymbolPath(&self, buffer: Option<&mut [u8]>, pathsize: 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).SetSymbolPath)(windows_core::Interface::as_raw(self), path.param().abi()).ok()
}
pub unsafe fn AppendSymbolPath<P0>(&self, addition: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).AppendSymbolPath)(windows_core::Interface::as_raw(self), addition.param().abi()).ok()
}
pub unsafe fn GetImagePath(&self, buffer: Option<&mut [u8]>, pathsize: 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).SetImagePath)(windows_core::Interface::as_raw(self), path.param().abi()).ok()
}
pub unsafe fn AppendImagePath<P0>(&self, addition: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).AppendImagePath)(windows_core::Interface::as_raw(self), addition.param().abi()).ok()
}
pub unsafe fn GetSourcePath(&self, buffer: Option<&mut [u8]>, pathsize: 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: Option<&mut [u8]>, elementsize: 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).SetSourcePath)(windows_core::Interface::as_raw(self), path.param().abi()).ok()
}
pub unsafe fn AppendSourcePath<P0>(&self, addition: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).AppendSourcePath)(windows_core::Interface::as_raw(self), addition.param().abi()).ok()
}
pub unsafe fn FindSourceFile<P0>(&self, startelement: u32, file: P0, flags: u32, foundelement: Option<*mut u32>, buffer: Option<&mut [u8]>, foundsize: Option<*mut u32>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).FindSourceFile)(windows_core::Interface::as_raw(self), startelement, file.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: Option<&mut [u64]>, filelines: Option<*mut u32>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).GetSourceFileLineOffsets)(windows_core::Interface::as_raw(self), file.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()
}
}
#[repr(C)]
pub struct IDebugSymbols_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetSymbolOptions: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub AddSymbolOptions: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub RemoveSymbolOptions: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub SetSymbolOptions: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetNameByOffset: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PSTR, u32, *mut u32, *mut u64) -> windows_core::HRESULT,
pub GetOffsetByName: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, *mut u64) -> windows_core::HRESULT,
pub GetNearNameByOffset: unsafe extern "system" fn(*mut core::ffi::c_void, u64, i32, windows_core::PSTR, u32, *mut u32, *mut u64) -> windows_core::HRESULT,
pub GetLineByOffset: unsafe extern "system" fn(*mut core::ffi::c_void, u64, *mut u32, windows_core::PSTR, u32, *mut u32, *mut u64) -> windows_core::HRESULT,
pub GetOffsetByLine: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR, *mut u64) -> windows_core::HRESULT,
pub GetNumberModules: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32, *mut u32) -> windows_core::HRESULT,
pub GetModuleByIndex: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut u64) -> windows_core::HRESULT,
pub GetModuleByModuleName: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, u32, *mut u32, *mut u64) -> windows_core::HRESULT,
pub GetModuleByOffset: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, *mut u32, *mut u64) -> windows_core::HRESULT,
pub GetModuleNames: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u64, windows_core::PSTR, u32, *mut u32, windows_core::PSTR, u32, *mut u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetModuleParameters: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *const u64, u32, *mut DEBUG_MODULE_PARAMETERS) -> windows_core::HRESULT,
pub GetSymbolModule: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, *mut u64) -> windows_core::HRESULT,
pub GetTypeName: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetTypeId: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PCSTR, *mut u32) -> windows_core::HRESULT,
pub GetTypeSize: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, *mut u32) -> windows_core::HRESULT,
pub GetFieldOffset: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, windows_core::PCSTR, *mut u32) -> windows_core::HRESULT,
pub GetSymbolTypeId: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, *mut u32, *mut u64) -> windows_core::HRESULT,
pub GetOffsetTypeId: unsafe extern "system" fn(*mut core::ffi::c_void, u64, *mut u32, *mut u64) -> windows_core::HRESULT,
pub ReadTypedDataVirtual: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u64, u32, *mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub WriteTypedDataVirtual: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u64, u32, *const core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub OutputTypedDataVirtual: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u64, u64, u32, u32) -> windows_core::HRESULT,
pub ReadTypedDataPhysical: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u64, u32, *mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub WriteTypedDataPhysical: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u64, u32, *const core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub OutputTypedDataPhysical: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u64, u64, u32, u32) -> windows_core::HRESULT,
pub GetScope: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u64, *mut DEBUG_STACK_FRAME, *mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub SetScope: unsafe extern "system" fn(*mut core::ffi::c_void, u64, *const DEBUG_STACK_FRAME, *const core::ffi::c_void, u32) -> windows_core::HRESULT,
pub ResetScope: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetScopeSymbolGroup: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub CreateSymbolGroup: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub StartSymbolMatch: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, *mut u64) -> windows_core::HRESULT,
pub GetNextSymbolMatch: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PSTR, u32, *mut u32, *mut u64) -> windows_core::HRESULT,
pub EndSymbolMatch: unsafe extern "system" fn(*mut core::ffi::c_void, u64) -> windows_core::HRESULT,
pub Reload: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR) -> windows_core::HRESULT,
pub GetSymbolPath: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetSymbolPath: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR) -> windows_core::HRESULT,
pub AppendSymbolPath: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR) -> windows_core::HRESULT,
pub GetImagePath: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetImagePath: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR) -> windows_core::HRESULT,
pub AppendImagePath: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR) -> windows_core::HRESULT,
pub GetSourcePath: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetSourcePathElement: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetSourcePath: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR) -> windows_core::HRESULT,
pub AppendSourcePath: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR) -> windows_core::HRESULT,
pub FindSourceFile: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR, u32, *mut u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetSourceFileLineOffsets: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, *mut u64, u32, *mut u32) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IDebugSymbols2, IDebugSymbols2_Vtbl, 0x3a707211_afdd_4495_ad4f_56fecdf8163f);
impl core::ops::Deref for IDebugSymbols2 {
type Target = windows_core::IUnknown;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(IDebugSymbols2, windows_core::IUnknown);
impl IDebugSymbols2 {
pub unsafe fn GetSymbolOptions(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetSymbolOptions)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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: Option<&mut [u8]>, namesize: Option<*mut u32>, displacement: 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::Param<windows_core::PCSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetOffsetByName)(windows_core::Interface::as_raw(self), symbol.param().abi(), &mut result__).map(|| result__)
}
pub unsafe fn GetNearNameByOffset(&self, offset: u64, delta: i32, namebuffer: Option<&mut [u8]>, namesize: Option<*mut u32>, displacement: 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: Option<*mut u32>, filebuffer: Option<&mut [u8]>, filesize: Option<*mut u32>, displacement: 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::Param<windows_core::PCSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetOffsetByLine)(windows_core::Interface::as_raw(self), line, file.param().abi(), &mut result__).map(|| 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetModuleByIndex)(windows_core::Interface::as_raw(self), index, &mut result__).map(|| result__)
}
pub unsafe fn GetModuleByModuleName<P0>(&self, name: P0, startindex: u32, index: Option<*mut u32>, base: Option<*mut u64>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).GetModuleByModuleName)(windows_core::Interface::as_raw(self), name.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: Option<*mut u32>, base: 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: Option<&mut [u8]>, imagenamesize: Option<*mut u32>, modulenamebuffer: Option<&mut [u8]>, modulenamesize: Option<*mut u32>, loadedimagenamebuffer: Option<&mut [u8]>, loadedimagenamesize: 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: 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::Param<windows_core::PCSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetSymbolModule)(windows_core::Interface::as_raw(self), symbol.param().abi(), &mut result__).map(|| result__)
}
pub unsafe fn GetTypeName(&self, module: u64, typeid: u32, namebuffer: Option<&mut [u8]>, namesize: 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::Param<windows_core::PCSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTypeId)(windows_core::Interface::as_raw(self), module, name.param().abi(), &mut result__).map(|| result__)
}
pub unsafe fn GetTypeSize(&self, module: u64, typeid: u32) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTypeSize)(windows_core::Interface::as_raw(self), module, typeid, &mut result__).map(|| result__)
}
pub unsafe fn GetFieldOffset<P0>(&self, module: u64, typeid: u32, field: P0) -> windows_core::Result<u32>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetFieldOffset)(windows_core::Interface::as_raw(self), module, typeid, field.param().abi(), &mut result__).map(|| result__)
}
pub unsafe fn GetSymbolTypeId<P0>(&self, symbol: P0, typeid: *mut u32, module: Option<*mut u64>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).GetSymbolTypeId)(windows_core::Interface::as_raw(self), symbol.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: 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: 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: 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: 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: 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()
}
pub unsafe fn GetScope(&self, instructionoffset: Option<*mut u64>, scopeframe: Option<*mut DEBUG_STACK_FRAME>, scopecontext: 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()
}
pub unsafe fn SetScope(&self, instructionoffset: u64, scopeframe: Option<*const DEBUG_STACK_FRAME>, scopecontext: 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::Param<IDebugSymbolGroup>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetScopeSymbolGroup)(windows_core::Interface::as_raw(self), flags, update.param().abi(), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn CreateSymbolGroup(&self) -> windows_core::Result<IDebugSymbolGroup> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).CreateSymbolGroup)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn StartSymbolMatch<P0>(&self, pattern: P0) -> windows_core::Result<u64>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).StartSymbolMatch)(windows_core::Interface::as_raw(self), pattern.param().abi(), &mut result__).map(|| result__)
}
pub unsafe fn GetNextSymbolMatch(&self, handle: u64, buffer: Option<&mut [u8]>, matchsize: Option<*mut u32>, offset: 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).Reload)(windows_core::Interface::as_raw(self), module.param().abi()).ok()
}
pub unsafe fn GetSymbolPath(&self, buffer: Option<&mut [u8]>, pathsize: 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).SetSymbolPath)(windows_core::Interface::as_raw(self), path.param().abi()).ok()
}
pub unsafe fn AppendSymbolPath<P0>(&self, addition: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).AppendSymbolPath)(windows_core::Interface::as_raw(self), addition.param().abi()).ok()
}
pub unsafe fn GetImagePath(&self, buffer: Option<&mut [u8]>, pathsize: 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).SetImagePath)(windows_core::Interface::as_raw(self), path.param().abi()).ok()
}
pub unsafe fn AppendImagePath<P0>(&self, addition: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).AppendImagePath)(windows_core::Interface::as_raw(self), addition.param().abi()).ok()
}
pub unsafe fn GetSourcePath(&self, buffer: Option<&mut [u8]>, pathsize: 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: Option<&mut [u8]>, elementsize: 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).SetSourcePath)(windows_core::Interface::as_raw(self), path.param().abi()).ok()
}
pub unsafe fn AppendSourcePath<P0>(&self, addition: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).AppendSourcePath)(windows_core::Interface::as_raw(self), addition.param().abi()).ok()
}
pub unsafe fn FindSourceFile<P0>(&self, startelement: u32, file: P0, flags: u32, foundelement: Option<*mut u32>, buffer: Option<&mut [u8]>, foundsize: Option<*mut u32>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).FindSourceFile)(windows_core::Interface::as_raw(self), startelement, file.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: Option<&mut [u64]>, filelines: Option<*mut u32>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).GetSourceFileLineOffsets)(windows_core::Interface::as_raw(self), file.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: Option<*mut core::ffi::c_void>, buffersize: u32, verinfosize: Option<*mut u32>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).GetModuleVersionInformation)(windows_core::Interface::as_raw(self), index, base, item.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: Option<&mut [u8]>, namesize: 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: Option<&mut [u8]>, namesize: 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: Option<&mut [u8]>, namesize: 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTypeOptions)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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()
}
}
#[repr(C)]
pub struct IDebugSymbols2_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetSymbolOptions: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub AddSymbolOptions: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub RemoveSymbolOptions: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub SetSymbolOptions: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetNameByOffset: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PSTR, u32, *mut u32, *mut u64) -> windows_core::HRESULT,
pub GetOffsetByName: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, *mut u64) -> windows_core::HRESULT,
pub GetNearNameByOffset: unsafe extern "system" fn(*mut core::ffi::c_void, u64, i32, windows_core::PSTR, u32, *mut u32, *mut u64) -> windows_core::HRESULT,
pub GetLineByOffset: unsafe extern "system" fn(*mut core::ffi::c_void, u64, *mut u32, windows_core::PSTR, u32, *mut u32, *mut u64) -> windows_core::HRESULT,
pub GetOffsetByLine: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR, *mut u64) -> windows_core::HRESULT,
pub GetNumberModules: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32, *mut u32) -> windows_core::HRESULT,
pub GetModuleByIndex: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut u64) -> windows_core::HRESULT,
pub GetModuleByModuleName: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, u32, *mut u32, *mut u64) -> windows_core::HRESULT,
pub GetModuleByOffset: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, *mut u32, *mut u64) -> windows_core::HRESULT,
pub GetModuleNames: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u64, windows_core::PSTR, u32, *mut u32, windows_core::PSTR, u32, *mut u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetModuleParameters: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *const u64, u32, *mut DEBUG_MODULE_PARAMETERS) -> windows_core::HRESULT,
pub GetSymbolModule: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, *mut u64) -> windows_core::HRESULT,
pub GetTypeName: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetTypeId: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PCSTR, *mut u32) -> windows_core::HRESULT,
pub GetTypeSize: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, *mut u32) -> windows_core::HRESULT,
pub GetFieldOffset: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, windows_core::PCSTR, *mut u32) -> windows_core::HRESULT,
pub GetSymbolTypeId: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, *mut u32, *mut u64) -> windows_core::HRESULT,
pub GetOffsetTypeId: unsafe extern "system" fn(*mut core::ffi::c_void, u64, *mut u32, *mut u64) -> windows_core::HRESULT,
pub ReadTypedDataVirtual: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u64, u32, *mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub WriteTypedDataVirtual: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u64, u32, *const core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub OutputTypedDataVirtual: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u64, u64, u32, u32) -> windows_core::HRESULT,
pub ReadTypedDataPhysical: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u64, u32, *mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub WriteTypedDataPhysical: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u64, u32, *const core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub OutputTypedDataPhysical: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u64, u64, u32, u32) -> windows_core::HRESULT,
pub GetScope: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u64, *mut DEBUG_STACK_FRAME, *mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub SetScope: unsafe extern "system" fn(*mut core::ffi::c_void, u64, *const DEBUG_STACK_FRAME, *const core::ffi::c_void, u32) -> windows_core::HRESULT,
pub ResetScope: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetScopeSymbolGroup: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub CreateSymbolGroup: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub StartSymbolMatch: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, *mut u64) -> windows_core::HRESULT,
pub GetNextSymbolMatch: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PSTR, u32, *mut u32, *mut u64) -> windows_core::HRESULT,
pub EndSymbolMatch: unsafe extern "system" fn(*mut core::ffi::c_void, u64) -> windows_core::HRESULT,
pub Reload: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR) -> windows_core::HRESULT,
pub GetSymbolPath: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetSymbolPath: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR) -> windows_core::HRESULT,
pub AppendSymbolPath: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR) -> windows_core::HRESULT,
pub GetImagePath: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetImagePath: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR) -> windows_core::HRESULT,
pub AppendImagePath: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR) -> windows_core::HRESULT,
pub GetSourcePath: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetSourcePathElement: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetSourcePath: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR) -> windows_core::HRESULT,
pub AppendSourcePath: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR) -> windows_core::HRESULT,
pub FindSourceFile: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR, u32, *mut u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetSourceFileLineOffsets: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, *mut u64, u32, *mut u32) -> windows_core::HRESULT,
pub GetModuleVersionInformation: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u64, windows_core::PCSTR, *mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub GetModuleNameString: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, u64, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetConstantName: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, u64, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetFieldName: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetTypeOptions: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub AddTypeOptions: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub RemoveTypeOptions: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub SetTypeOptions: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IDebugSymbols3, IDebugSymbols3_Vtbl, 0xf02fbecc_50ac_4f36_9ad9_c975e8f32ff8);
impl core::ops::Deref for IDebugSymbols3 {
type Target = windows_core::IUnknown;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(IDebugSymbols3, windows_core::IUnknown);
impl IDebugSymbols3 {
pub unsafe fn GetSymbolOptions(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetSymbolOptions)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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: Option<&mut [u8]>, namesize: Option<*mut u32>, displacement: 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::Param<windows_core::PCSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetOffsetByName)(windows_core::Interface::as_raw(self), symbol.param().abi(), &mut result__).map(|| result__)
}
pub unsafe fn GetNearNameByOffset(&self, offset: u64, delta: i32, namebuffer: Option<&mut [u8]>, namesize: Option<*mut u32>, displacement: 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: Option<*mut u32>, filebuffer: Option<&mut [u8]>, filesize: Option<*mut u32>, displacement: 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::Param<windows_core::PCSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetOffsetByLine)(windows_core::Interface::as_raw(self), line, file.param().abi(), &mut result__).map(|| 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetModuleByIndex)(windows_core::Interface::as_raw(self), index, &mut result__).map(|| result__)
}
pub unsafe fn GetModuleByModuleName<P0>(&self, name: P0, startindex: u32, index: Option<*mut u32>, base: Option<*mut u64>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).GetModuleByModuleName)(windows_core::Interface::as_raw(self), name.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: Option<*mut u32>, base: 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: Option<&mut [u8]>, imagenamesize: Option<*mut u32>, modulenamebuffer: Option<&mut [u8]>, modulenamesize: Option<*mut u32>, loadedimagenamebuffer: Option<&mut [u8]>, loadedimagenamesize: 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: 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::Param<windows_core::PCSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetSymbolModule)(windows_core::Interface::as_raw(self), symbol.param().abi(), &mut result__).map(|| result__)
}
pub unsafe fn GetTypeName(&self, module: u64, typeid: u32, namebuffer: Option<&mut [u8]>, namesize: 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::Param<windows_core::PCSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTypeId)(windows_core::Interface::as_raw(self), module, name.param().abi(), &mut result__).map(|| result__)
}
pub unsafe fn GetTypeSize(&self, module: u64, typeid: u32) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTypeSize)(windows_core::Interface::as_raw(self), module, typeid, &mut result__).map(|| result__)
}
pub unsafe fn GetFieldOffset<P0>(&self, module: u64, typeid: u32, field: P0) -> windows_core::Result<u32>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetFieldOffset)(windows_core::Interface::as_raw(self), module, typeid, field.param().abi(), &mut result__).map(|| result__)
}
pub unsafe fn GetSymbolTypeId<P0>(&self, symbol: P0, typeid: *mut u32, module: Option<*mut u64>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).GetSymbolTypeId)(windows_core::Interface::as_raw(self), symbol.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: 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: 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: 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: 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: 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()
}
pub unsafe fn GetScope(&self, instructionoffset: Option<*mut u64>, scopeframe: Option<*mut DEBUG_STACK_FRAME>, scopecontext: 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()
}
pub unsafe fn SetScope(&self, instructionoffset: u64, scopeframe: Option<*const DEBUG_STACK_FRAME>, scopecontext: 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::Param<IDebugSymbolGroup>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetScopeSymbolGroup)(windows_core::Interface::as_raw(self), flags, update.param().abi(), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn CreateSymbolGroup(&self) -> windows_core::Result<IDebugSymbolGroup> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).CreateSymbolGroup)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn StartSymbolMatch<P0>(&self, pattern: P0) -> windows_core::Result<u64>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).StartSymbolMatch)(windows_core::Interface::as_raw(self), pattern.param().abi(), &mut result__).map(|| result__)
}
pub unsafe fn GetNextSymbolMatch(&self, handle: u64, buffer: Option<&mut [u8]>, matchsize: Option<*mut u32>, offset: 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).Reload)(windows_core::Interface::as_raw(self), module.param().abi()).ok()
}
pub unsafe fn GetSymbolPath(&self, buffer: Option<&mut [u8]>, pathsize: 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).SetSymbolPath)(windows_core::Interface::as_raw(self), path.param().abi()).ok()
}
pub unsafe fn AppendSymbolPath<P0>(&self, addition: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).AppendSymbolPath)(windows_core::Interface::as_raw(self), addition.param().abi()).ok()
}
pub unsafe fn GetImagePath(&self, buffer: Option<&mut [u8]>, pathsize: 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).SetImagePath)(windows_core::Interface::as_raw(self), path.param().abi()).ok()
}
pub unsafe fn AppendImagePath<P0>(&self, addition: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).AppendImagePath)(windows_core::Interface::as_raw(self), addition.param().abi()).ok()
}
pub unsafe fn GetSourcePath(&self, buffer: Option<&mut [u8]>, pathsize: 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: Option<&mut [u8]>, elementsize: 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).SetSourcePath)(windows_core::Interface::as_raw(self), path.param().abi()).ok()
}
pub unsafe fn AppendSourcePath<P0>(&self, addition: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).AppendSourcePath)(windows_core::Interface::as_raw(self), addition.param().abi()).ok()
}
pub unsafe fn FindSourceFile<P0>(&self, startelement: u32, file: P0, flags: u32, foundelement: Option<*mut u32>, buffer: Option<&mut [u8]>, foundsize: Option<*mut u32>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).FindSourceFile)(windows_core::Interface::as_raw(self), startelement, file.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: Option<&mut [u64]>, filelines: Option<*mut u32>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).GetSourceFileLineOffsets)(windows_core::Interface::as_raw(self), file.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: Option<*mut core::ffi::c_void>, buffersize: u32, verinfosize: Option<*mut u32>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).GetModuleVersionInformation)(windows_core::Interface::as_raw(self), index, base, item.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: Option<&mut [u8]>, namesize: 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: Option<&mut [u8]>, namesize: 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: Option<&mut [u8]>, namesize: 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTypeOptions)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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: Option<&mut [u16]>, namesize: Option<*mut u32>, displacement: 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::Param<windows_core::PCWSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetOffsetByNameWide)(windows_core::Interface::as_raw(self), symbol.param().abi(), &mut result__).map(|| result__)
}
pub unsafe fn GetNearNameByOffsetWide(&self, offset: u64, delta: i32, namebuffer: Option<&mut [u16]>, namesize: Option<*mut u32>, displacement: 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: Option<*mut u32>, filebuffer: Option<&mut [u16]>, filesize: Option<*mut u32>, displacement: 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::Param<windows_core::PCWSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetOffsetByLineWide)(windows_core::Interface::as_raw(self), line, file.param().abi(), &mut result__).map(|| result__)
}
pub unsafe fn GetModuleByModuleNameWide<P0>(&self, name: P0, startindex: u32, index: Option<*mut u32>, base: Option<*mut u64>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).GetModuleByModuleNameWide)(windows_core::Interface::as_raw(self), name.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::Param<windows_core::PCWSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetSymbolModuleWide)(windows_core::Interface::as_raw(self), symbol.param().abi(), &mut result__).map(|| result__)
}
pub unsafe fn GetTypeNameWide(&self, module: u64, typeid: u32, namebuffer: Option<&mut [u16]>, namesize: 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::Param<windows_core::PCWSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTypeIdWide)(windows_core::Interface::as_raw(self), module, name.param().abi(), &mut result__).map(|| result__)
}
pub unsafe fn GetFieldOffsetWide<P0>(&self, module: u64, typeid: u32, field: P0) -> windows_core::Result<u32>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetFieldOffsetWide)(windows_core::Interface::as_raw(self), module, typeid, field.param().abi(), &mut result__).map(|| result__)
}
pub unsafe fn GetSymbolTypeIdWide<P0>(&self, symbol: P0, typeid: *mut u32, module: Option<*mut u64>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).GetSymbolTypeIdWide)(windows_core::Interface::as_raw(self), symbol.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::Param<IDebugSymbolGroup2>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetScopeSymbolGroup2)(windows_core::Interface::as_raw(self), flags, update.param().abi(), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn CreateSymbolGroup2(&self) -> windows_core::Result<IDebugSymbolGroup2> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).CreateSymbolGroup2)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn StartSymbolMatchWide<P0>(&self, pattern: P0) -> windows_core::Result<u64>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).StartSymbolMatchWide)(windows_core::Interface::as_raw(self), pattern.param().abi(), &mut result__).map(|| result__)
}
pub unsafe fn GetNextSymbolMatchWide(&self, handle: u64, buffer: Option<&mut [u16]>, matchsize: Option<*mut u32>, offset: 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::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).ReloadWide)(windows_core::Interface::as_raw(self), module.param().abi()).ok()
}
pub unsafe fn GetSymbolPathWide(&self, buffer: Option<&mut [u16]>, pathsize: 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::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).SetSymbolPathWide)(windows_core::Interface::as_raw(self), path.param().abi()).ok()
}
pub unsafe fn AppendSymbolPathWide<P0>(&self, addition: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).AppendSymbolPathWide)(windows_core::Interface::as_raw(self), addition.param().abi()).ok()
}
pub unsafe fn GetImagePathWide(&self, buffer: Option<&mut [u16]>, pathsize: 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::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).SetImagePathWide)(windows_core::Interface::as_raw(self), path.param().abi()).ok()
}
pub unsafe fn AppendImagePathWide<P0>(&self, addition: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).AppendImagePathWide)(windows_core::Interface::as_raw(self), addition.param().abi()).ok()
}
pub unsafe fn GetSourcePathWide(&self, buffer: Option<&mut [u16]>, pathsize: 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: Option<&mut [u16]>, elementsize: 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::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).SetSourcePathWide)(windows_core::Interface::as_raw(self), path.param().abi()).ok()
}
pub unsafe fn AppendSourcePathWide<P0>(&self, addition: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).AppendSourcePathWide)(windows_core::Interface::as_raw(self), addition.param().abi()).ok()
}
pub unsafe fn FindSourceFileWide<P0>(&self, startelement: u32, file: P0, flags: u32, foundelement: Option<*mut u32>, buffer: Option<&mut [u16]>, foundsize: Option<*mut u32>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).FindSourceFileWide)(windows_core::Interface::as_raw(self), startelement, file.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: Option<&mut [u64]>, filelines: Option<*mut u32>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).GetSourceFileLineOffsetsWide)(windows_core::Interface::as_raw(self), file.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: Option<*mut core::ffi::c_void>, buffersize: u32, verinfosize: Option<*mut u32>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).GetModuleVersionInformationWide)(windows_core::Interface::as_raw(self), index, base, item.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: Option<&mut [u16]>, namesize: 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: Option<&mut [u16]>, namesize: 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: Option<&mut [u16]>, namesize: 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: Option<*mut u32>, base: Option<*mut u64>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).GetModuleByModuleName2)(windows_core::Interface::as_raw(self), name.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: Option<*mut u32>, base: Option<*mut u64>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).GetModuleByModuleName2Wide)(windows_core::Interface::as_raw(self), name.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: Option<*mut u32>, base: 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::Param<windows_core::PCSTR>,
P1: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).AddSyntheticModule)(windows_core::Interface::as_raw(self), base, size, imagepath.param().abi(), modulename.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::Param<windows_core::PCWSTR>,
P1: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).AddSyntheticModuleWide)(windows_core::Interface::as_raw(self), base, size, imagepath.param().abi(), modulename.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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCurrentScopeFrameIndex)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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: Option<*mut core::ffi::c_void>, buffersize: u32, bufferneeded: 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: Option<*mut u32>, offset: Option<*mut u32>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).GetFieldTypeAndOffset)(windows_core::Interface::as_raw(self), module, containertypeid, field.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: Option<*mut u32>, offset: Option<*mut u32>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).GetFieldTypeAndOffsetWide)(windows_core::Interface::as_raw(self), module, containertypeid, field.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: Option<*mut DEBUG_MODULE_AND_ID>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).AddSyntheticSymbol)(windows_core::Interface::as_raw(self), offset, size, name.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: Option<*mut DEBUG_MODULE_AND_ID>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).AddSyntheticSymbolWide)(windows_core::Interface::as_raw(self), offset, size, name.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: Option<*mut DEBUG_MODULE_AND_ID>, displacements: Option<*mut u64>, idscount: u32, entries: 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: Option<&mut [DEBUG_MODULE_AND_ID]>, entries: Option<*mut u32>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).GetSymbolEntriesByName)(windows_core::Interface::as_raw(self), symbol.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: Option<&mut [DEBUG_MODULE_AND_ID]>, entries: Option<*mut u32>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).GetSymbolEntriesByNameWide)(windows_core::Interface::as_raw(self), symbol.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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetSymbolEntryByToken)(windows_core::Interface::as_raw(self), modulebase, token, &mut result__).map(|| 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: Option<&mut [u8]>, stringsize: 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: Option<&mut [u16]>, stringsize: 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: Option<&mut [DEBUG_OFFSET_REGION]>, regionsavail: 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetSymbolEntryBySymbolEntry)(windows_core::Interface::as_raw(self), fromid, flags, &mut result__).map(|| result__)
}
pub unsafe fn GetSourceEntriesByOffset(&self, offset: u64, flags: u32, entries: Option<&mut [DEBUG_SYMBOL_SOURCE_ENTRY]>, entriesavail: 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: Option<&mut [DEBUG_SYMBOL_SOURCE_ENTRY]>, entriesavail: Option<*mut u32>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).GetSourceEntriesByLine)(windows_core::Interface::as_raw(self), line, file.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: Option<&mut [DEBUG_SYMBOL_SOURCE_ENTRY]>, entriesavail: Option<*mut u32>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).GetSourceEntriesByLineWide)(windows_core::Interface::as_raw(self), line, file.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: Option<&mut [u8]>, stringsize: 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: Option<&mut [u16]>, stringsize: 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: Option<&mut [DEBUG_OFFSET_REGION]>, regionsavail: 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()
}
}
#[repr(C)]
pub struct IDebugSymbols3_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetSymbolOptions: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub AddSymbolOptions: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub RemoveSymbolOptions: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub SetSymbolOptions: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetNameByOffset: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PSTR, u32, *mut u32, *mut u64) -> windows_core::HRESULT,
pub GetOffsetByName: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, *mut u64) -> windows_core::HRESULT,
pub GetNearNameByOffset: unsafe extern "system" fn(*mut core::ffi::c_void, u64, i32, windows_core::PSTR, u32, *mut u32, *mut u64) -> windows_core::HRESULT,
pub GetLineByOffset: unsafe extern "system" fn(*mut core::ffi::c_void, u64, *mut u32, windows_core::PSTR, u32, *mut u32, *mut u64) -> windows_core::HRESULT,
pub GetOffsetByLine: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR, *mut u64) -> windows_core::HRESULT,
pub GetNumberModules: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32, *mut u32) -> windows_core::HRESULT,
pub GetModuleByIndex: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut u64) -> windows_core::HRESULT,
pub GetModuleByModuleName: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, u32, *mut u32, *mut u64) -> windows_core::HRESULT,
pub GetModuleByOffset: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, *mut u32, *mut u64) -> windows_core::HRESULT,
pub GetModuleNames: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u64, windows_core::PSTR, u32, *mut u32, windows_core::PSTR, u32, *mut u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetModuleParameters: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *const u64, u32, *mut DEBUG_MODULE_PARAMETERS) -> windows_core::HRESULT,
pub GetSymbolModule: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, *mut u64) -> windows_core::HRESULT,
pub GetTypeName: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetTypeId: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PCSTR, *mut u32) -> windows_core::HRESULT,
pub GetTypeSize: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, *mut u32) -> windows_core::HRESULT,
pub GetFieldOffset: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, windows_core::PCSTR, *mut u32) -> windows_core::HRESULT,
pub GetSymbolTypeId: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, *mut u32, *mut u64) -> windows_core::HRESULT,
pub GetOffsetTypeId: unsafe extern "system" fn(*mut core::ffi::c_void, u64, *mut u32, *mut u64) -> windows_core::HRESULT,
pub ReadTypedDataVirtual: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u64, u32, *mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub WriteTypedDataVirtual: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u64, u32, *const core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub OutputTypedDataVirtual: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u64, u64, u32, u32) -> windows_core::HRESULT,
pub ReadTypedDataPhysical: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u64, u32, *mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub WriteTypedDataPhysical: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u64, u32, *const core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub OutputTypedDataPhysical: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u64, u64, u32, u32) -> windows_core::HRESULT,
pub GetScope: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u64, *mut DEBUG_STACK_FRAME, *mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub SetScope: unsafe extern "system" fn(*mut core::ffi::c_void, u64, *const DEBUG_STACK_FRAME, *const core::ffi::c_void, u32) -> windows_core::HRESULT,
pub ResetScope: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetScopeSymbolGroup: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub CreateSymbolGroup: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub StartSymbolMatch: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, *mut u64) -> windows_core::HRESULT,
pub GetNextSymbolMatch: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PSTR, u32, *mut u32, *mut u64) -> windows_core::HRESULT,
pub EndSymbolMatch: unsafe extern "system" fn(*mut core::ffi::c_void, u64) -> windows_core::HRESULT,
pub Reload: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR) -> windows_core::HRESULT,
pub GetSymbolPath: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetSymbolPath: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR) -> windows_core::HRESULT,
pub AppendSymbolPath: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR) -> windows_core::HRESULT,
pub GetImagePath: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetImagePath: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR) -> windows_core::HRESULT,
pub AppendImagePath: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR) -> windows_core::HRESULT,
pub GetSourcePath: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetSourcePathElement: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetSourcePath: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR) -> windows_core::HRESULT,
pub AppendSourcePath: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR) -> windows_core::HRESULT,
pub FindSourceFile: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR, u32, *mut u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetSourceFileLineOffsets: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, *mut u64, u32, *mut u32) -> windows_core::HRESULT,
pub GetModuleVersionInformation: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u64, windows_core::PCSTR, *mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub GetModuleNameString: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, u64, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetConstantName: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, u64, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetFieldName: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetTypeOptions: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub AddTypeOptions: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub RemoveTypeOptions: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub SetTypeOptions: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetNameByOffsetWide: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PWSTR, u32, *mut u32, *mut u64) -> windows_core::HRESULT,
pub GetOffsetByNameWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR, *mut u64) -> windows_core::HRESULT,
pub GetNearNameByOffsetWide: unsafe extern "system" fn(*mut core::ffi::c_void, u64, i32, windows_core::PWSTR, u32, *mut u32, *mut u64) -> windows_core::HRESULT,
pub GetLineByOffsetWide: unsafe extern "system" fn(*mut core::ffi::c_void, u64, *mut u32, windows_core::PWSTR, u32, *mut u32, *mut u64) -> windows_core::HRESULT,
pub GetOffsetByLineWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCWSTR, *mut u64) -> windows_core::HRESULT,
pub GetModuleByModuleNameWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR, u32, *mut u32, *mut u64) -> windows_core::HRESULT,
pub GetSymbolModuleWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR, *mut u64) -> windows_core::HRESULT,
pub GetTypeNameWide: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetTypeIdWide: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PCWSTR, *mut u32) -> windows_core::HRESULT,
pub GetFieldOffsetWide: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, windows_core::PCWSTR, *mut u32) -> windows_core::HRESULT,
pub GetSymbolTypeIdWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR, *mut u32, *mut u64) -> windows_core::HRESULT,
pub GetScopeSymbolGroup2: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub CreateSymbolGroup2: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub StartSymbolMatchWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR, *mut u64) -> windows_core::HRESULT,
pub GetNextSymbolMatchWide: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PWSTR, u32, *mut u32, *mut u64) -> windows_core::HRESULT,
pub ReloadWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR) -> windows_core::HRESULT,
pub GetSymbolPathWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetSymbolPathWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR) -> windows_core::HRESULT,
pub AppendSymbolPathWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR) -> windows_core::HRESULT,
pub GetImagePathWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetImagePathWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR) -> windows_core::HRESULT,
pub AppendImagePathWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR) -> windows_core::HRESULT,
pub GetSourcePathWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetSourcePathElementWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetSourcePathWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR) -> windows_core::HRESULT,
pub AppendSourcePathWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR) -> windows_core::HRESULT,
pub FindSourceFileWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCWSTR, u32, *mut u32, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetSourceFileLineOffsetsWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR, *mut u64, u32, *mut u32) -> windows_core::HRESULT,
pub GetModuleVersionInformationWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u64, windows_core::PCWSTR, *mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub GetModuleNameStringWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, u64, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetConstantNameWide: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, u64, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetFieldNameWide: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, u32, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub IsManagedModule: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u64) -> windows_core::HRESULT,
pub GetModuleByModuleName2: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, u32, u32, *mut u32, *mut u64) -> windows_core::HRESULT,
pub GetModuleByModuleName2Wide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR, u32, u32, *mut u32, *mut u64) -> windows_core::HRESULT,
pub GetModuleByOffset2: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, u32, *mut u32, *mut u64) -> windows_core::HRESULT,
pub AddSyntheticModule: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, windows_core::PCSTR, windows_core::PCSTR, u32) -> windows_core::HRESULT,
pub AddSyntheticModuleWide: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, windows_core::PCWSTR, windows_core::PCWSTR, u32) -> windows_core::HRESULT,
pub RemoveSyntheticModule: unsafe extern "system" fn(*mut core::ffi::c_void, u64) -> windows_core::HRESULT,
pub GetCurrentScopeFrameIndex: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetScopeFrameByIndex: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub SetScopeFromJitDebugInfo: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u64) -> windows_core::HRESULT,
pub SetScopeFromStoredEvent: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub OutputSymbolByOffset: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, u64) -> windows_core::HRESULT,
pub GetFunctionEntryByOffset: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, *mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub GetFieldTypeAndOffset: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, windows_core::PCSTR, *mut u32, *mut u32) -> windows_core::HRESULT,
pub GetFieldTypeAndOffsetWide: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, windows_core::PCWSTR, *mut u32, *mut u32) -> windows_core::HRESULT,
pub AddSyntheticSymbol: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, windows_core::PCSTR, u32, *mut DEBUG_MODULE_AND_ID) -> windows_core::HRESULT,
pub AddSyntheticSymbolWide: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, windows_core::PCWSTR, u32, *mut DEBUG_MODULE_AND_ID) -> windows_core::HRESULT,
pub RemoveSyntheticSymbol: unsafe extern "system" fn(*mut core::ffi::c_void, *const DEBUG_MODULE_AND_ID) -> windows_core::HRESULT,
pub GetSymbolEntriesByOffset: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, *mut DEBUG_MODULE_AND_ID, *mut u64, u32, *mut u32) -> windows_core::HRESULT,
pub GetSymbolEntriesByName: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, u32, *mut DEBUG_MODULE_AND_ID, u32, *mut u32) -> windows_core::HRESULT,
pub GetSymbolEntriesByNameWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR, u32, *mut DEBUG_MODULE_AND_ID, u32, *mut u32) -> windows_core::HRESULT,
pub GetSymbolEntryByToken: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, *mut DEBUG_MODULE_AND_ID) -> windows_core::HRESULT,
pub GetSymbolEntryInformation: unsafe extern "system" fn(*mut core::ffi::c_void, *const DEBUG_MODULE_AND_ID, *mut DEBUG_SYMBOL_ENTRY) -> windows_core::HRESULT,
pub GetSymbolEntryString: unsafe extern "system" fn(*mut core::ffi::c_void, *const DEBUG_MODULE_AND_ID, u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetSymbolEntryStringWide: unsafe extern "system" fn(*mut core::ffi::c_void, *const DEBUG_MODULE_AND_ID, u32, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetSymbolEntryOffsetRegions: unsafe extern "system" fn(*mut core::ffi::c_void, *const DEBUG_MODULE_AND_ID, u32, *mut DEBUG_OFFSET_REGION, u32, *mut u32) -> windows_core::HRESULT,
pub GetSymbolEntryBySymbolEntry: unsafe extern "system" fn(*mut core::ffi::c_void, *const DEBUG_MODULE_AND_ID, u32, *mut DEBUG_MODULE_AND_ID) -> windows_core::HRESULT,
pub GetSourceEntriesByOffset: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, *mut DEBUG_SYMBOL_SOURCE_ENTRY, u32, *mut u32) -> windows_core::HRESULT,
pub GetSourceEntriesByLine: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR, u32, *mut DEBUG_SYMBOL_SOURCE_ENTRY, u32, *mut u32) -> windows_core::HRESULT,
pub GetSourceEntriesByLineWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCWSTR, u32, *mut DEBUG_SYMBOL_SOURCE_ENTRY, u32, *mut u32) -> windows_core::HRESULT,
pub GetSourceEntryString: unsafe extern "system" fn(*mut core::ffi::c_void, *const DEBUG_SYMBOL_SOURCE_ENTRY, u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetSourceEntryStringWide: unsafe extern "system" fn(*mut core::ffi::c_void, *const DEBUG_SYMBOL_SOURCE_ENTRY, u32, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetSourceEntryOffsetRegions: unsafe extern "system" fn(*mut core::ffi::c_void, *const DEBUG_SYMBOL_SOURCE_ENTRY, u32, *mut DEBUG_OFFSET_REGION, u32, *mut u32) -> windows_core::HRESULT,
pub GetSourceEntryBySourceEntry: unsafe extern "system" fn(*mut core::ffi::c_void, *const DEBUG_SYMBOL_SOURCE_ENTRY, u32, *mut DEBUG_SYMBOL_SOURCE_ENTRY) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IDebugSymbols4, IDebugSymbols4_Vtbl, 0xe391bbd8_9d8c_4418_840b_c006592a1752);
impl core::ops::Deref for IDebugSymbols4 {
type Target = windows_core::IUnknown;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(IDebugSymbols4, windows_core::IUnknown);
impl IDebugSymbols4 {
pub unsafe fn GetSymbolOptions(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetSymbolOptions)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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: Option<&mut [u8]>, namesize: Option<*mut u32>, displacement: 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::Param<windows_core::PCSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetOffsetByName)(windows_core::Interface::as_raw(self), symbol.param().abi(), &mut result__).map(|| result__)
}
pub unsafe fn GetNearNameByOffset(&self, offset: u64, delta: i32, namebuffer: Option<&mut [u8]>, namesize: Option<*mut u32>, displacement: 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: Option<*mut u32>, filebuffer: Option<&mut [u8]>, filesize: Option<*mut u32>, displacement: 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::Param<windows_core::PCSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetOffsetByLine)(windows_core::Interface::as_raw(self), line, file.param().abi(), &mut result__).map(|| 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetModuleByIndex)(windows_core::Interface::as_raw(self), index, &mut result__).map(|| result__)
}
pub unsafe fn GetModuleByModuleName<P0>(&self, name: P0, startindex: u32, index: Option<*mut u32>, base: Option<*mut u64>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).GetModuleByModuleName)(windows_core::Interface::as_raw(self), name.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: Option<*mut u32>, base: 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: Option<&mut [u8]>, imagenamesize: Option<*mut u32>, modulenamebuffer: Option<&mut [u8]>, modulenamesize: Option<*mut u32>, loadedimagenamebuffer: Option<&mut [u8]>, loadedimagenamesize: 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: 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::Param<windows_core::PCSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetSymbolModule)(windows_core::Interface::as_raw(self), symbol.param().abi(), &mut result__).map(|| result__)
}
pub unsafe fn GetTypeName(&self, module: u64, typeid: u32, namebuffer: Option<&mut [u8]>, namesize: 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::Param<windows_core::PCSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTypeId)(windows_core::Interface::as_raw(self), module, name.param().abi(), &mut result__).map(|| result__)
}
pub unsafe fn GetTypeSize(&self, module: u64, typeid: u32) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTypeSize)(windows_core::Interface::as_raw(self), module, typeid, &mut result__).map(|| result__)
}
pub unsafe fn GetFieldOffset<P0>(&self, module: u64, typeid: u32, field: P0) -> windows_core::Result<u32>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetFieldOffset)(windows_core::Interface::as_raw(self), module, typeid, field.param().abi(), &mut result__).map(|| result__)
}
pub unsafe fn GetSymbolTypeId<P0>(&self, symbol: P0, typeid: *mut u32, module: Option<*mut u64>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).GetSymbolTypeId)(windows_core::Interface::as_raw(self), symbol.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: 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: 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: 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: 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: 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()
}
pub unsafe fn GetScope(&self, instructionoffset: Option<*mut u64>, scopeframe: Option<*mut DEBUG_STACK_FRAME>, scopecontext: 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()
}
pub unsafe fn SetScope(&self, instructionoffset: u64, scopeframe: Option<*const DEBUG_STACK_FRAME>, scopecontext: 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::Param<IDebugSymbolGroup>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetScopeSymbolGroup)(windows_core::Interface::as_raw(self), flags, update.param().abi(), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn CreateSymbolGroup(&self) -> windows_core::Result<IDebugSymbolGroup> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).CreateSymbolGroup)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn StartSymbolMatch<P0>(&self, pattern: P0) -> windows_core::Result<u64>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).StartSymbolMatch)(windows_core::Interface::as_raw(self), pattern.param().abi(), &mut result__).map(|| result__)
}
pub unsafe fn GetNextSymbolMatch(&self, handle: u64, buffer: Option<&mut [u8]>, matchsize: Option<*mut u32>, offset: 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).Reload)(windows_core::Interface::as_raw(self), module.param().abi()).ok()
}
pub unsafe fn GetSymbolPath(&self, buffer: Option<&mut [u8]>, pathsize: 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).SetSymbolPath)(windows_core::Interface::as_raw(self), path.param().abi()).ok()
}
pub unsafe fn AppendSymbolPath<P0>(&self, addition: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).AppendSymbolPath)(windows_core::Interface::as_raw(self), addition.param().abi()).ok()
}
pub unsafe fn GetImagePath(&self, buffer: Option<&mut [u8]>, pathsize: 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).SetImagePath)(windows_core::Interface::as_raw(self), path.param().abi()).ok()
}
pub unsafe fn AppendImagePath<P0>(&self, addition: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).AppendImagePath)(windows_core::Interface::as_raw(self), addition.param().abi()).ok()
}
pub unsafe fn GetSourcePath(&self, buffer: Option<&mut [u8]>, pathsize: 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: Option<&mut [u8]>, elementsize: 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).SetSourcePath)(windows_core::Interface::as_raw(self), path.param().abi()).ok()
}
pub unsafe fn AppendSourcePath<P0>(&self, addition: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).AppendSourcePath)(windows_core::Interface::as_raw(self), addition.param().abi()).ok()
}
pub unsafe fn FindSourceFile<P0>(&self, startelement: u32, file: P0, flags: u32, foundelement: Option<*mut u32>, buffer: Option<&mut [u8]>, foundsize: Option<*mut u32>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).FindSourceFile)(windows_core::Interface::as_raw(self), startelement, file.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: Option<&mut [u64]>, filelines: Option<*mut u32>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).GetSourceFileLineOffsets)(windows_core::Interface::as_raw(self), file.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: Option<*mut core::ffi::c_void>, buffersize: u32, verinfosize: Option<*mut u32>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).GetModuleVersionInformation)(windows_core::Interface::as_raw(self), index, base, item.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: Option<&mut [u8]>, namesize: 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: Option<&mut [u8]>, namesize: 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: Option<&mut [u8]>, namesize: 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTypeOptions)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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: Option<&mut [u16]>, namesize: Option<*mut u32>, displacement: 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::Param<windows_core::PCWSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetOffsetByNameWide)(windows_core::Interface::as_raw(self), symbol.param().abi(), &mut result__).map(|| result__)
}
pub unsafe fn GetNearNameByOffsetWide(&self, offset: u64, delta: i32, namebuffer: Option<&mut [u16]>, namesize: Option<*mut u32>, displacement: 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: Option<*mut u32>, filebuffer: Option<&mut [u16]>, filesize: Option<*mut u32>, displacement: 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::Param<windows_core::PCWSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetOffsetByLineWide)(windows_core::Interface::as_raw(self), line, file.param().abi(), &mut result__).map(|| result__)
}
pub unsafe fn GetModuleByModuleNameWide<P0>(&self, name: P0, startindex: u32, index: Option<*mut u32>, base: Option<*mut u64>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).GetModuleByModuleNameWide)(windows_core::Interface::as_raw(self), name.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::Param<windows_core::PCWSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetSymbolModuleWide)(windows_core::Interface::as_raw(self), symbol.param().abi(), &mut result__).map(|| result__)
}
pub unsafe fn GetTypeNameWide(&self, module: u64, typeid: u32, namebuffer: Option<&mut [u16]>, namesize: 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::Param<windows_core::PCWSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTypeIdWide)(windows_core::Interface::as_raw(self), module, name.param().abi(), &mut result__).map(|| result__)
}
pub unsafe fn GetFieldOffsetWide<P0>(&self, module: u64, typeid: u32, field: P0) -> windows_core::Result<u32>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetFieldOffsetWide)(windows_core::Interface::as_raw(self), module, typeid, field.param().abi(), &mut result__).map(|| result__)
}
pub unsafe fn GetSymbolTypeIdWide<P0>(&self, symbol: P0, typeid: *mut u32, module: Option<*mut u64>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).GetSymbolTypeIdWide)(windows_core::Interface::as_raw(self), symbol.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::Param<IDebugSymbolGroup2>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetScopeSymbolGroup2)(windows_core::Interface::as_raw(self), flags, update.param().abi(), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn CreateSymbolGroup2(&self) -> windows_core::Result<IDebugSymbolGroup2> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).CreateSymbolGroup2)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn StartSymbolMatchWide<P0>(&self, pattern: P0) -> windows_core::Result<u64>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).StartSymbolMatchWide)(windows_core::Interface::as_raw(self), pattern.param().abi(), &mut result__).map(|| result__)
}
pub unsafe fn GetNextSymbolMatchWide(&self, handle: u64, buffer: Option<&mut [u16]>, matchsize: Option<*mut u32>, offset: 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::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).ReloadWide)(windows_core::Interface::as_raw(self), module.param().abi()).ok()
}
pub unsafe fn GetSymbolPathWide(&self, buffer: Option<&mut [u16]>, pathsize: 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::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).SetSymbolPathWide)(windows_core::Interface::as_raw(self), path.param().abi()).ok()
}
pub unsafe fn AppendSymbolPathWide<P0>(&self, addition: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).AppendSymbolPathWide)(windows_core::Interface::as_raw(self), addition.param().abi()).ok()
}
pub unsafe fn GetImagePathWide(&self, buffer: Option<&mut [u16]>, pathsize: 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::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).SetImagePathWide)(windows_core::Interface::as_raw(self), path.param().abi()).ok()
}
pub unsafe fn AppendImagePathWide<P0>(&self, addition: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).AppendImagePathWide)(windows_core::Interface::as_raw(self), addition.param().abi()).ok()
}
pub unsafe fn GetSourcePathWide(&self, buffer: Option<&mut [u16]>, pathsize: 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: Option<&mut [u16]>, elementsize: 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::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).SetSourcePathWide)(windows_core::Interface::as_raw(self), path.param().abi()).ok()
}
pub unsafe fn AppendSourcePathWide<P0>(&self, addition: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).AppendSourcePathWide)(windows_core::Interface::as_raw(self), addition.param().abi()).ok()
}
pub unsafe fn FindSourceFileWide<P0>(&self, startelement: u32, file: P0, flags: u32, foundelement: Option<*mut u32>, buffer: Option<&mut [u16]>, foundsize: Option<*mut u32>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).FindSourceFileWide)(windows_core::Interface::as_raw(self), startelement, file.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: Option<&mut [u64]>, filelines: Option<*mut u32>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).GetSourceFileLineOffsetsWide)(windows_core::Interface::as_raw(self), file.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: Option<*mut core::ffi::c_void>, buffersize: u32, verinfosize: Option<*mut u32>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).GetModuleVersionInformationWide)(windows_core::Interface::as_raw(self), index, base, item.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: Option<&mut [u16]>, namesize: 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: Option<&mut [u16]>, namesize: 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: Option<&mut [u16]>, namesize: 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: Option<*mut u32>, base: Option<*mut u64>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).GetModuleByModuleName2)(windows_core::Interface::as_raw(self), name.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: Option<*mut u32>, base: Option<*mut u64>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).GetModuleByModuleName2Wide)(windows_core::Interface::as_raw(self), name.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: Option<*mut u32>, base: 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::Param<windows_core::PCSTR>,
P1: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).AddSyntheticModule)(windows_core::Interface::as_raw(self), base, size, imagepath.param().abi(), modulename.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::Param<windows_core::PCWSTR>,
P1: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).AddSyntheticModuleWide)(windows_core::Interface::as_raw(self), base, size, imagepath.param().abi(), modulename.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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCurrentScopeFrameIndex)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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: Option<*mut core::ffi::c_void>, buffersize: u32, bufferneeded: 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: Option<*mut u32>, offset: Option<*mut u32>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).GetFieldTypeAndOffset)(windows_core::Interface::as_raw(self), module, containertypeid, field.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: Option<*mut u32>, offset: Option<*mut u32>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).GetFieldTypeAndOffsetWide)(windows_core::Interface::as_raw(self), module, containertypeid, field.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: Option<*mut DEBUG_MODULE_AND_ID>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).AddSyntheticSymbol)(windows_core::Interface::as_raw(self), offset, size, name.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: Option<*mut DEBUG_MODULE_AND_ID>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).AddSyntheticSymbolWide)(windows_core::Interface::as_raw(self), offset, size, name.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: Option<*mut DEBUG_MODULE_AND_ID>, displacements: Option<*mut u64>, idscount: u32, entries: 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: Option<&mut [DEBUG_MODULE_AND_ID]>, entries: Option<*mut u32>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).GetSymbolEntriesByName)(windows_core::Interface::as_raw(self), symbol.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: Option<&mut [DEBUG_MODULE_AND_ID]>, entries: Option<*mut u32>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).GetSymbolEntriesByNameWide)(windows_core::Interface::as_raw(self), symbol.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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetSymbolEntryByToken)(windows_core::Interface::as_raw(self), modulebase, token, &mut result__).map(|| 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: Option<&mut [u8]>, stringsize: 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: Option<&mut [u16]>, stringsize: 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: Option<&mut [DEBUG_OFFSET_REGION]>, regionsavail: 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetSymbolEntryBySymbolEntry)(windows_core::Interface::as_raw(self), fromid, flags, &mut result__).map(|| result__)
}
pub unsafe fn GetSourceEntriesByOffset(&self, offset: u64, flags: u32, entries: Option<&mut [DEBUG_SYMBOL_SOURCE_ENTRY]>, entriesavail: 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: Option<&mut [DEBUG_SYMBOL_SOURCE_ENTRY]>, entriesavail: Option<*mut u32>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).GetSourceEntriesByLine)(windows_core::Interface::as_raw(self), line, file.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: Option<&mut [DEBUG_SYMBOL_SOURCE_ENTRY]>, entriesavail: Option<*mut u32>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).GetSourceEntriesByLineWide)(windows_core::Interface::as_raw(self), line, file.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: Option<&mut [u8]>, stringsize: 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: Option<&mut [u16]>, stringsize: 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: Option<&mut [DEBUG_OFFSET_REGION]>, regionsavail: 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()
}
pub unsafe fn GetScopeEx(&self, instructionoffset: Option<*mut u64>, scopeframe: Option<*mut DEBUG_STACK_FRAME_EX>, scopecontext: 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()
}
pub unsafe fn SetScopeEx(&self, instructionoffset: u64, scopeframe: Option<*const DEBUG_STACK_FRAME_EX>, scopecontext: 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: Option<&mut [u8]>, namesize: Option<*mut u32>, displacement: 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: Option<&mut [u16]>, namesize: Option<*mut u32>, displacement: 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: Option<*mut u32>, filebuffer: Option<&mut [u8]>, filesize: Option<*mut u32>, displacement: 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: Option<*mut u32>, filebuffer: Option<&mut [u16]>, filesize: Option<*mut u32>, displacement: 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()
}
}
#[repr(C)]
pub struct IDebugSymbols4_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetSymbolOptions: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub AddSymbolOptions: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub RemoveSymbolOptions: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub SetSymbolOptions: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetNameByOffset: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PSTR, u32, *mut u32, *mut u64) -> windows_core::HRESULT,
pub GetOffsetByName: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, *mut u64) -> windows_core::HRESULT,
pub GetNearNameByOffset: unsafe extern "system" fn(*mut core::ffi::c_void, u64, i32, windows_core::PSTR, u32, *mut u32, *mut u64) -> windows_core::HRESULT,
pub GetLineByOffset: unsafe extern "system" fn(*mut core::ffi::c_void, u64, *mut u32, windows_core::PSTR, u32, *mut u32, *mut u64) -> windows_core::HRESULT,
pub GetOffsetByLine: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR, *mut u64) -> windows_core::HRESULT,
pub GetNumberModules: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32, *mut u32) -> windows_core::HRESULT,
pub GetModuleByIndex: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut u64) -> windows_core::HRESULT,
pub GetModuleByModuleName: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, u32, *mut u32, *mut u64) -> windows_core::HRESULT,
pub GetModuleByOffset: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, *mut u32, *mut u64) -> windows_core::HRESULT,
pub GetModuleNames: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u64, windows_core::PSTR, u32, *mut u32, windows_core::PSTR, u32, *mut u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetModuleParameters: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *const u64, u32, *mut DEBUG_MODULE_PARAMETERS) -> windows_core::HRESULT,
pub GetSymbolModule: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, *mut u64) -> windows_core::HRESULT,
pub GetTypeName: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetTypeId: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PCSTR, *mut u32) -> windows_core::HRESULT,
pub GetTypeSize: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, *mut u32) -> windows_core::HRESULT,
pub GetFieldOffset: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, windows_core::PCSTR, *mut u32) -> windows_core::HRESULT,
pub GetSymbolTypeId: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, *mut u32, *mut u64) -> windows_core::HRESULT,
pub GetOffsetTypeId: unsafe extern "system" fn(*mut core::ffi::c_void, u64, *mut u32, *mut u64) -> windows_core::HRESULT,
pub ReadTypedDataVirtual: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u64, u32, *mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub WriteTypedDataVirtual: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u64, u32, *const core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub OutputTypedDataVirtual: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u64, u64, u32, u32) -> windows_core::HRESULT,
pub ReadTypedDataPhysical: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u64, u32, *mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub WriteTypedDataPhysical: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u64, u32, *const core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub OutputTypedDataPhysical: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u64, u64, u32, u32) -> windows_core::HRESULT,
pub GetScope: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u64, *mut DEBUG_STACK_FRAME, *mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub SetScope: unsafe extern "system" fn(*mut core::ffi::c_void, u64, *const DEBUG_STACK_FRAME, *const core::ffi::c_void, u32) -> windows_core::HRESULT,
pub ResetScope: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetScopeSymbolGroup: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub CreateSymbolGroup: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub StartSymbolMatch: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, *mut u64) -> windows_core::HRESULT,
pub GetNextSymbolMatch: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PSTR, u32, *mut u32, *mut u64) -> windows_core::HRESULT,
pub EndSymbolMatch: unsafe extern "system" fn(*mut core::ffi::c_void, u64) -> windows_core::HRESULT,
pub Reload: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR) -> windows_core::HRESULT,
pub GetSymbolPath: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetSymbolPath: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR) -> windows_core::HRESULT,
pub AppendSymbolPath: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR) -> windows_core::HRESULT,
pub GetImagePath: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetImagePath: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR) -> windows_core::HRESULT,
pub AppendImagePath: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR) -> windows_core::HRESULT,
pub GetSourcePath: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetSourcePathElement: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetSourcePath: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR) -> windows_core::HRESULT,
pub AppendSourcePath: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR) -> windows_core::HRESULT,
pub FindSourceFile: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR, u32, *mut u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetSourceFileLineOffsets: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, *mut u64, u32, *mut u32) -> windows_core::HRESULT,
pub GetModuleVersionInformation: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u64, windows_core::PCSTR, *mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub GetModuleNameString: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, u64, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetConstantName: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, u64, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetFieldName: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetTypeOptions: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub AddTypeOptions: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub RemoveTypeOptions: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub SetTypeOptions: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetNameByOffsetWide: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PWSTR, u32, *mut u32, *mut u64) -> windows_core::HRESULT,
pub GetOffsetByNameWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR, *mut u64) -> windows_core::HRESULT,
pub GetNearNameByOffsetWide: unsafe extern "system" fn(*mut core::ffi::c_void, u64, i32, windows_core::PWSTR, u32, *mut u32, *mut u64) -> windows_core::HRESULT,
pub GetLineByOffsetWide: unsafe extern "system" fn(*mut core::ffi::c_void, u64, *mut u32, windows_core::PWSTR, u32, *mut u32, *mut u64) -> windows_core::HRESULT,
pub GetOffsetByLineWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCWSTR, *mut u64) -> windows_core::HRESULT,
pub GetModuleByModuleNameWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR, u32, *mut u32, *mut u64) -> windows_core::HRESULT,
pub GetSymbolModuleWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR, *mut u64) -> windows_core::HRESULT,
pub GetTypeNameWide: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetTypeIdWide: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PCWSTR, *mut u32) -> windows_core::HRESULT,
pub GetFieldOffsetWide: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, windows_core::PCWSTR, *mut u32) -> windows_core::HRESULT,
pub GetSymbolTypeIdWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR, *mut u32, *mut u64) -> windows_core::HRESULT,
pub GetScopeSymbolGroup2: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub CreateSymbolGroup2: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub StartSymbolMatchWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR, *mut u64) -> windows_core::HRESULT,
pub GetNextSymbolMatchWide: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PWSTR, u32, *mut u32, *mut u64) -> windows_core::HRESULT,
pub ReloadWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR) -> windows_core::HRESULT,
pub GetSymbolPathWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetSymbolPathWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR) -> windows_core::HRESULT,
pub AppendSymbolPathWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR) -> windows_core::HRESULT,
pub GetImagePathWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetImagePathWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR) -> windows_core::HRESULT,
pub AppendImagePathWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR) -> windows_core::HRESULT,
pub GetSourcePathWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetSourcePathElementWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetSourcePathWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR) -> windows_core::HRESULT,
pub AppendSourcePathWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR) -> windows_core::HRESULT,
pub FindSourceFileWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCWSTR, u32, *mut u32, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetSourceFileLineOffsetsWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR, *mut u64, u32, *mut u32) -> windows_core::HRESULT,
pub GetModuleVersionInformationWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u64, windows_core::PCWSTR, *mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub GetModuleNameStringWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, u64, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetConstantNameWide: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, u64, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetFieldNameWide: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, u32, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub IsManagedModule: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u64) -> windows_core::HRESULT,
pub GetModuleByModuleName2: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, u32, u32, *mut u32, *mut u64) -> windows_core::HRESULT,
pub GetModuleByModuleName2Wide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR, u32, u32, *mut u32, *mut u64) -> windows_core::HRESULT,
pub GetModuleByOffset2: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, u32, *mut u32, *mut u64) -> windows_core::HRESULT,
pub AddSyntheticModule: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, windows_core::PCSTR, windows_core::PCSTR, u32) -> windows_core::HRESULT,
pub AddSyntheticModuleWide: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, windows_core::PCWSTR, windows_core::PCWSTR, u32) -> windows_core::HRESULT,
pub RemoveSyntheticModule: unsafe extern "system" fn(*mut core::ffi::c_void, u64) -> windows_core::HRESULT,
pub GetCurrentScopeFrameIndex: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetScopeFrameByIndex: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub SetScopeFromJitDebugInfo: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u64) -> windows_core::HRESULT,
pub SetScopeFromStoredEvent: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub OutputSymbolByOffset: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, u64) -> windows_core::HRESULT,
pub GetFunctionEntryByOffset: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, *mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub GetFieldTypeAndOffset: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, windows_core::PCSTR, *mut u32, *mut u32) -> windows_core::HRESULT,
pub GetFieldTypeAndOffsetWide: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, windows_core::PCWSTR, *mut u32, *mut u32) -> windows_core::HRESULT,
pub AddSyntheticSymbol: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, windows_core::PCSTR, u32, *mut DEBUG_MODULE_AND_ID) -> windows_core::HRESULT,
pub AddSyntheticSymbolWide: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, windows_core::PCWSTR, u32, *mut DEBUG_MODULE_AND_ID) -> windows_core::HRESULT,
pub RemoveSyntheticSymbol: unsafe extern "system" fn(*mut core::ffi::c_void, *const DEBUG_MODULE_AND_ID) -> windows_core::HRESULT,
pub GetSymbolEntriesByOffset: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, *mut DEBUG_MODULE_AND_ID, *mut u64, u32, *mut u32) -> windows_core::HRESULT,
pub GetSymbolEntriesByName: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, u32, *mut DEBUG_MODULE_AND_ID, u32, *mut u32) -> windows_core::HRESULT,
pub GetSymbolEntriesByNameWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR, u32, *mut DEBUG_MODULE_AND_ID, u32, *mut u32) -> windows_core::HRESULT,
pub GetSymbolEntryByToken: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, *mut DEBUG_MODULE_AND_ID) -> windows_core::HRESULT,
pub GetSymbolEntryInformation: unsafe extern "system" fn(*mut core::ffi::c_void, *const DEBUG_MODULE_AND_ID, *mut DEBUG_SYMBOL_ENTRY) -> windows_core::HRESULT,
pub GetSymbolEntryString: unsafe extern "system" fn(*mut core::ffi::c_void, *const DEBUG_MODULE_AND_ID, u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetSymbolEntryStringWide: unsafe extern "system" fn(*mut core::ffi::c_void, *const DEBUG_MODULE_AND_ID, u32, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetSymbolEntryOffsetRegions: unsafe extern "system" fn(*mut core::ffi::c_void, *const DEBUG_MODULE_AND_ID, u32, *mut DEBUG_OFFSET_REGION, u32, *mut u32) -> windows_core::HRESULT,
pub GetSymbolEntryBySymbolEntry: unsafe extern "system" fn(*mut core::ffi::c_void, *const DEBUG_MODULE_AND_ID, u32, *mut DEBUG_MODULE_AND_ID) -> windows_core::HRESULT,
pub GetSourceEntriesByOffset: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, *mut DEBUG_SYMBOL_SOURCE_ENTRY, u32, *mut u32) -> windows_core::HRESULT,
pub GetSourceEntriesByLine: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR, u32, *mut DEBUG_SYMBOL_SOURCE_ENTRY, u32, *mut u32) -> windows_core::HRESULT,
pub GetSourceEntriesByLineWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCWSTR, u32, *mut DEBUG_SYMBOL_SOURCE_ENTRY, u32, *mut u32) -> windows_core::HRESULT,
pub GetSourceEntryString: unsafe extern "system" fn(*mut core::ffi::c_void, *const DEBUG_SYMBOL_SOURCE_ENTRY, u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetSourceEntryStringWide: unsafe extern "system" fn(*mut core::ffi::c_void, *const DEBUG_SYMBOL_SOURCE_ENTRY, u32, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetSourceEntryOffsetRegions: unsafe extern "system" fn(*mut core::ffi::c_void, *const DEBUG_SYMBOL_SOURCE_ENTRY, u32, *mut DEBUG_OFFSET_REGION, u32, *mut u32) -> windows_core::HRESULT,
pub GetSourceEntryBySourceEntry: unsafe extern "system" fn(*mut core::ffi::c_void, *const DEBUG_SYMBOL_SOURCE_ENTRY, u32, *mut DEBUG_SYMBOL_SOURCE_ENTRY) -> windows_core::HRESULT,
pub GetScopeEx: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u64, *mut DEBUG_STACK_FRAME_EX, *mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub SetScopeEx: unsafe extern "system" fn(*mut core::ffi::c_void, u64, *const DEBUG_STACK_FRAME_EX, *const core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetNameByInlineContext: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, windows_core::PSTR, u32, *mut u32, *mut u64) -> windows_core::HRESULT,
pub GetNameByInlineContextWide: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, windows_core::PWSTR, u32, *mut u32, *mut u64) -> windows_core::HRESULT,
pub GetLineByInlineContext: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, *mut u32, windows_core::PSTR, u32, *mut u32, *mut u64) -> windows_core::HRESULT,
pub GetLineByInlineContextWide: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, *mut u32, windows_core::PWSTR, u32, *mut u32, *mut u64) -> windows_core::HRESULT,
pub OutputSymbolByInlineContext: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, u64, u32) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IDebugSymbols5, IDebugSymbols5_Vtbl, 0xc65fa83e_1e69_475e_8e0e_b5d79e9cc17e);
impl core::ops::Deref for IDebugSymbols5 {
type Target = windows_core::IUnknown;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(IDebugSymbols5, windows_core::IUnknown);
impl IDebugSymbols5 {
pub unsafe fn GetSymbolOptions(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetSymbolOptions)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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: Option<&mut [u8]>, namesize: Option<*mut u32>, displacement: 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::Param<windows_core::PCSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetOffsetByName)(windows_core::Interface::as_raw(self), symbol.param().abi(), &mut result__).map(|| result__)
}
pub unsafe fn GetNearNameByOffset(&self, offset: u64, delta: i32, namebuffer: Option<&mut [u8]>, namesize: Option<*mut u32>, displacement: 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: Option<*mut u32>, filebuffer: Option<&mut [u8]>, filesize: Option<*mut u32>, displacement: 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::Param<windows_core::PCSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetOffsetByLine)(windows_core::Interface::as_raw(self), line, file.param().abi(), &mut result__).map(|| 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetModuleByIndex)(windows_core::Interface::as_raw(self), index, &mut result__).map(|| result__)
}
pub unsafe fn GetModuleByModuleName<P0>(&self, name: P0, startindex: u32, index: Option<*mut u32>, base: Option<*mut u64>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).GetModuleByModuleName)(windows_core::Interface::as_raw(self), name.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: Option<*mut u32>, base: 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: Option<&mut [u8]>, imagenamesize: Option<*mut u32>, modulenamebuffer: Option<&mut [u8]>, modulenamesize: Option<*mut u32>, loadedimagenamebuffer: Option<&mut [u8]>, loadedimagenamesize: 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: 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::Param<windows_core::PCSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetSymbolModule)(windows_core::Interface::as_raw(self), symbol.param().abi(), &mut result__).map(|| result__)
}
pub unsafe fn GetTypeName(&self, module: u64, typeid: u32, namebuffer: Option<&mut [u8]>, namesize: 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::Param<windows_core::PCSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTypeId)(windows_core::Interface::as_raw(self), module, name.param().abi(), &mut result__).map(|| result__)
}
pub unsafe fn GetTypeSize(&self, module: u64, typeid: u32) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTypeSize)(windows_core::Interface::as_raw(self), module, typeid, &mut result__).map(|| result__)
}
pub unsafe fn GetFieldOffset<P0>(&self, module: u64, typeid: u32, field: P0) -> windows_core::Result<u32>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetFieldOffset)(windows_core::Interface::as_raw(self), module, typeid, field.param().abi(), &mut result__).map(|| result__)
}
pub unsafe fn GetSymbolTypeId<P0>(&self, symbol: P0, typeid: *mut u32, module: Option<*mut u64>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).GetSymbolTypeId)(windows_core::Interface::as_raw(self), symbol.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: 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: 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: 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: 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: 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()
}
pub unsafe fn GetScope(&self, instructionoffset: Option<*mut u64>, scopeframe: Option<*mut DEBUG_STACK_FRAME>, scopecontext: 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()
}
pub unsafe fn SetScope(&self, instructionoffset: u64, scopeframe: Option<*const DEBUG_STACK_FRAME>, scopecontext: 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::Param<IDebugSymbolGroup>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetScopeSymbolGroup)(windows_core::Interface::as_raw(self), flags, update.param().abi(), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn CreateSymbolGroup(&self) -> windows_core::Result<IDebugSymbolGroup> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).CreateSymbolGroup)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn StartSymbolMatch<P0>(&self, pattern: P0) -> windows_core::Result<u64>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).StartSymbolMatch)(windows_core::Interface::as_raw(self), pattern.param().abi(), &mut result__).map(|| result__)
}
pub unsafe fn GetNextSymbolMatch(&self, handle: u64, buffer: Option<&mut [u8]>, matchsize: Option<*mut u32>, offset: 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).Reload)(windows_core::Interface::as_raw(self), module.param().abi()).ok()
}
pub unsafe fn GetSymbolPath(&self, buffer: Option<&mut [u8]>, pathsize: 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).SetSymbolPath)(windows_core::Interface::as_raw(self), path.param().abi()).ok()
}
pub unsafe fn AppendSymbolPath<P0>(&self, addition: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).AppendSymbolPath)(windows_core::Interface::as_raw(self), addition.param().abi()).ok()
}
pub unsafe fn GetImagePath(&self, buffer: Option<&mut [u8]>, pathsize: 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).SetImagePath)(windows_core::Interface::as_raw(self), path.param().abi()).ok()
}
pub unsafe fn AppendImagePath<P0>(&self, addition: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).AppendImagePath)(windows_core::Interface::as_raw(self), addition.param().abi()).ok()
}
pub unsafe fn GetSourcePath(&self, buffer: Option<&mut [u8]>, pathsize: 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: Option<&mut [u8]>, elementsize: 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::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).SetSourcePath)(windows_core::Interface::as_raw(self), path.param().abi()).ok()
}
pub unsafe fn AppendSourcePath<P0>(&self, addition: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).AppendSourcePath)(windows_core::Interface::as_raw(self), addition.param().abi()).ok()
}
pub unsafe fn FindSourceFile<P0>(&self, startelement: u32, file: P0, flags: u32, foundelement: Option<*mut u32>, buffer: Option<&mut [u8]>, foundsize: Option<*mut u32>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).FindSourceFile)(windows_core::Interface::as_raw(self), startelement, file.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: Option<&mut [u64]>, filelines: Option<*mut u32>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).GetSourceFileLineOffsets)(windows_core::Interface::as_raw(self), file.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: Option<*mut core::ffi::c_void>, buffersize: u32, verinfosize: Option<*mut u32>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).GetModuleVersionInformation)(windows_core::Interface::as_raw(self), index, base, item.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: Option<&mut [u8]>, namesize: 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: Option<&mut [u8]>, namesize: 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: Option<&mut [u8]>, namesize: 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTypeOptions)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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: Option<&mut [u16]>, namesize: Option<*mut u32>, displacement: 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::Param<windows_core::PCWSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetOffsetByNameWide)(windows_core::Interface::as_raw(self), symbol.param().abi(), &mut result__).map(|| result__)
}
pub unsafe fn GetNearNameByOffsetWide(&self, offset: u64, delta: i32, namebuffer: Option<&mut [u16]>, namesize: Option<*mut u32>, displacement: 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: Option<*mut u32>, filebuffer: Option<&mut [u16]>, filesize: Option<*mut u32>, displacement: 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::Param<windows_core::PCWSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetOffsetByLineWide)(windows_core::Interface::as_raw(self), line, file.param().abi(), &mut result__).map(|| result__)
}
pub unsafe fn GetModuleByModuleNameWide<P0>(&self, name: P0, startindex: u32, index: Option<*mut u32>, base: Option<*mut u64>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).GetModuleByModuleNameWide)(windows_core::Interface::as_raw(self), name.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::Param<windows_core::PCWSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetSymbolModuleWide)(windows_core::Interface::as_raw(self), symbol.param().abi(), &mut result__).map(|| result__)
}
pub unsafe fn GetTypeNameWide(&self, module: u64, typeid: u32, namebuffer: Option<&mut [u16]>, namesize: 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::Param<windows_core::PCWSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTypeIdWide)(windows_core::Interface::as_raw(self), module, name.param().abi(), &mut result__).map(|| result__)
}
pub unsafe fn GetFieldOffsetWide<P0>(&self, module: u64, typeid: u32, field: P0) -> windows_core::Result<u32>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetFieldOffsetWide)(windows_core::Interface::as_raw(self), module, typeid, field.param().abi(), &mut result__).map(|| result__)
}
pub unsafe fn GetSymbolTypeIdWide<P0>(&self, symbol: P0, typeid: *mut u32, module: Option<*mut u64>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).GetSymbolTypeIdWide)(windows_core::Interface::as_raw(self), symbol.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::Param<IDebugSymbolGroup2>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetScopeSymbolGroup2)(windows_core::Interface::as_raw(self), flags, update.param().abi(), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn CreateSymbolGroup2(&self) -> windows_core::Result<IDebugSymbolGroup2> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).CreateSymbolGroup2)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn StartSymbolMatchWide<P0>(&self, pattern: P0) -> windows_core::Result<u64>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).StartSymbolMatchWide)(windows_core::Interface::as_raw(self), pattern.param().abi(), &mut result__).map(|| result__)
}
pub unsafe fn GetNextSymbolMatchWide(&self, handle: u64, buffer: Option<&mut [u16]>, matchsize: Option<*mut u32>, offset: 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::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).ReloadWide)(windows_core::Interface::as_raw(self), module.param().abi()).ok()
}
pub unsafe fn GetSymbolPathWide(&self, buffer: Option<&mut [u16]>, pathsize: 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::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).SetSymbolPathWide)(windows_core::Interface::as_raw(self), path.param().abi()).ok()
}
pub unsafe fn AppendSymbolPathWide<P0>(&self, addition: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).AppendSymbolPathWide)(windows_core::Interface::as_raw(self), addition.param().abi()).ok()
}
pub unsafe fn GetImagePathWide(&self, buffer: Option<&mut [u16]>, pathsize: 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::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).SetImagePathWide)(windows_core::Interface::as_raw(self), path.param().abi()).ok()
}
pub unsafe fn AppendImagePathWide<P0>(&self, addition: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).AppendImagePathWide)(windows_core::Interface::as_raw(self), addition.param().abi()).ok()
}
pub unsafe fn GetSourcePathWide(&self, buffer: Option<&mut [u16]>, pathsize: 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: Option<&mut [u16]>, elementsize: 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::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).SetSourcePathWide)(windows_core::Interface::as_raw(self), path.param().abi()).ok()
}
pub unsafe fn AppendSourcePathWide<P0>(&self, addition: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).AppendSourcePathWide)(windows_core::Interface::as_raw(self), addition.param().abi()).ok()
}
pub unsafe fn FindSourceFileWide<P0>(&self, startelement: u32, file: P0, flags: u32, foundelement: Option<*mut u32>, buffer: Option<&mut [u16]>, foundsize: Option<*mut u32>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).FindSourceFileWide)(windows_core::Interface::as_raw(self), startelement, file.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: Option<&mut [u64]>, filelines: Option<*mut u32>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).GetSourceFileLineOffsetsWide)(windows_core::Interface::as_raw(self), file.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: Option<*mut core::ffi::c_void>, buffersize: u32, verinfosize: Option<*mut u32>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).GetModuleVersionInformationWide)(windows_core::Interface::as_raw(self), index, base, item.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: Option<&mut [u16]>, namesize: 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: Option<&mut [u16]>, namesize: 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: Option<&mut [u16]>, namesize: 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: Option<*mut u32>, base: Option<*mut u64>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).GetModuleByModuleName2)(windows_core::Interface::as_raw(self), name.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: Option<*mut u32>, base: Option<*mut u64>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).GetModuleByModuleName2Wide)(windows_core::Interface::as_raw(self), name.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: Option<*mut u32>, base: 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::Param<windows_core::PCSTR>,
P1: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).AddSyntheticModule)(windows_core::Interface::as_raw(self), base, size, imagepath.param().abi(), modulename.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::Param<windows_core::PCWSTR>,
P1: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).AddSyntheticModuleWide)(windows_core::Interface::as_raw(self), base, size, imagepath.param().abi(), modulename.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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCurrentScopeFrameIndex)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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: Option<*mut core::ffi::c_void>, buffersize: u32, bufferneeded: 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: Option<*mut u32>, offset: Option<*mut u32>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).GetFieldTypeAndOffset)(windows_core::Interface::as_raw(self), module, containertypeid, field.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: Option<*mut u32>, offset: Option<*mut u32>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).GetFieldTypeAndOffsetWide)(windows_core::Interface::as_raw(self), module, containertypeid, field.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: Option<*mut DEBUG_MODULE_AND_ID>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).AddSyntheticSymbol)(windows_core::Interface::as_raw(self), offset, size, name.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: Option<*mut DEBUG_MODULE_AND_ID>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).AddSyntheticSymbolWide)(windows_core::Interface::as_raw(self), offset, size, name.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: Option<*mut DEBUG_MODULE_AND_ID>, displacements: Option<*mut u64>, idscount: u32, entries: 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: Option<&mut [DEBUG_MODULE_AND_ID]>, entries: Option<*mut u32>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).GetSymbolEntriesByName)(windows_core::Interface::as_raw(self), symbol.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: Option<&mut [DEBUG_MODULE_AND_ID]>, entries: Option<*mut u32>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).GetSymbolEntriesByNameWide)(windows_core::Interface::as_raw(self), symbol.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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetSymbolEntryByToken)(windows_core::Interface::as_raw(self), modulebase, token, &mut result__).map(|| 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: Option<&mut [u8]>, stringsize: 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: Option<&mut [u16]>, stringsize: 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: Option<&mut [DEBUG_OFFSET_REGION]>, regionsavail: 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetSymbolEntryBySymbolEntry)(windows_core::Interface::as_raw(self), fromid, flags, &mut result__).map(|| result__)
}
pub unsafe fn GetSourceEntriesByOffset(&self, offset: u64, flags: u32, entries: Option<&mut [DEBUG_SYMBOL_SOURCE_ENTRY]>, entriesavail: 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: Option<&mut [DEBUG_SYMBOL_SOURCE_ENTRY]>, entriesavail: Option<*mut u32>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCSTR>,
{
(windows_core::Interface::vtable(self).GetSourceEntriesByLine)(windows_core::Interface::as_raw(self), line, file.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: Option<&mut [DEBUG_SYMBOL_SOURCE_ENTRY]>, entriesavail: Option<*mut u32>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).GetSourceEntriesByLineWide)(windows_core::Interface::as_raw(self), line, file.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: Option<&mut [u8]>, stringsize: 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: Option<&mut [u16]>, stringsize: 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: Option<&mut [DEBUG_OFFSET_REGION]>, regionsavail: 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()
}
pub unsafe fn GetScopeEx(&self, instructionoffset: Option<*mut u64>, scopeframe: Option<*mut DEBUG_STACK_FRAME_EX>, scopecontext: 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()
}
pub unsafe fn SetScopeEx(&self, instructionoffset: u64, scopeframe: Option<*const DEBUG_STACK_FRAME_EX>, scopecontext: 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: Option<&mut [u8]>, namesize: Option<*mut u32>, displacement: 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: Option<&mut [u16]>, namesize: Option<*mut u32>, displacement: 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: Option<*mut u32>, filebuffer: Option<&mut [u8]>, filesize: Option<*mut u32>, displacement: 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: Option<*mut u32>, filebuffer: Option<&mut [u16]>, filesize: Option<*mut u32>, displacement: 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCurrentScopeFrameIndexEx)(windows_core::Interface::as_raw(self), flags, &mut result__).map(|| 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()
}
}
#[repr(C)]
pub struct IDebugSymbols5_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetSymbolOptions: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub AddSymbolOptions: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub RemoveSymbolOptions: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub SetSymbolOptions: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetNameByOffset: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PSTR, u32, *mut u32, *mut u64) -> windows_core::HRESULT,
pub GetOffsetByName: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, *mut u64) -> windows_core::HRESULT,
pub GetNearNameByOffset: unsafe extern "system" fn(*mut core::ffi::c_void, u64, i32, windows_core::PSTR, u32, *mut u32, *mut u64) -> windows_core::HRESULT,
pub GetLineByOffset: unsafe extern "system" fn(*mut core::ffi::c_void, u64, *mut u32, windows_core::PSTR, u32, *mut u32, *mut u64) -> windows_core::HRESULT,
pub GetOffsetByLine: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR, *mut u64) -> windows_core::HRESULT,
pub GetNumberModules: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32, *mut u32) -> windows_core::HRESULT,
pub GetModuleByIndex: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut u64) -> windows_core::HRESULT,
pub GetModuleByModuleName: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, u32, *mut u32, *mut u64) -> windows_core::HRESULT,
pub GetModuleByOffset: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, *mut u32, *mut u64) -> windows_core::HRESULT,
pub GetModuleNames: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u64, windows_core::PSTR, u32, *mut u32, windows_core::PSTR, u32, *mut u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetModuleParameters: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *const u64, u32, *mut DEBUG_MODULE_PARAMETERS) -> windows_core::HRESULT,
pub GetSymbolModule: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, *mut u64) -> windows_core::HRESULT,
pub GetTypeName: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetTypeId: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PCSTR, *mut u32) -> windows_core::HRESULT,
pub GetTypeSize: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, *mut u32) -> windows_core::HRESULT,
pub GetFieldOffset: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, windows_core::PCSTR, *mut u32) -> windows_core::HRESULT,
pub GetSymbolTypeId: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, *mut u32, *mut u64) -> windows_core::HRESULT,
pub GetOffsetTypeId: unsafe extern "system" fn(*mut core::ffi::c_void, u64, *mut u32, *mut u64) -> windows_core::HRESULT,
pub ReadTypedDataVirtual: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u64, u32, *mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub WriteTypedDataVirtual: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u64, u32, *const core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub OutputTypedDataVirtual: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u64, u64, u32, u32) -> windows_core::HRESULT,
pub ReadTypedDataPhysical: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u64, u32, *mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub WriteTypedDataPhysical: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u64, u32, *const core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub OutputTypedDataPhysical: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u64, u64, u32, u32) -> windows_core::HRESULT,
pub GetScope: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u64, *mut DEBUG_STACK_FRAME, *mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub SetScope: unsafe extern "system" fn(*mut core::ffi::c_void, u64, *const DEBUG_STACK_FRAME, *const core::ffi::c_void, u32) -> windows_core::HRESULT,
pub ResetScope: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetScopeSymbolGroup: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub CreateSymbolGroup: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub StartSymbolMatch: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, *mut u64) -> windows_core::HRESULT,
pub GetNextSymbolMatch: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PSTR, u32, *mut u32, *mut u64) -> windows_core::HRESULT,
pub EndSymbolMatch: unsafe extern "system" fn(*mut core::ffi::c_void, u64) -> windows_core::HRESULT,
pub Reload: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR) -> windows_core::HRESULT,
pub GetSymbolPath: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetSymbolPath: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR) -> windows_core::HRESULT,
pub AppendSymbolPath: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR) -> windows_core::HRESULT,
pub GetImagePath: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetImagePath: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR) -> windows_core::HRESULT,
pub AppendImagePath: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR) -> windows_core::HRESULT,
pub GetSourcePath: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetSourcePathElement: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetSourcePath: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR) -> windows_core::HRESULT,
pub AppendSourcePath: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR) -> windows_core::HRESULT,
pub FindSourceFile: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR, u32, *mut u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetSourceFileLineOffsets: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, *mut u64, u32, *mut u32) -> windows_core::HRESULT,
pub GetModuleVersionInformation: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u64, windows_core::PCSTR, *mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub GetModuleNameString: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, u64, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetConstantName: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, u64, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetFieldName: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetTypeOptions: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub AddTypeOptions: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub RemoveTypeOptions: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub SetTypeOptions: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetNameByOffsetWide: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PWSTR, u32, *mut u32, *mut u64) -> windows_core::HRESULT,
pub GetOffsetByNameWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR, *mut u64) -> windows_core::HRESULT,
pub GetNearNameByOffsetWide: unsafe extern "system" fn(*mut core::ffi::c_void, u64, i32, windows_core::PWSTR, u32, *mut u32, *mut u64) -> windows_core::HRESULT,
pub GetLineByOffsetWide: unsafe extern "system" fn(*mut core::ffi::c_void, u64, *mut u32, windows_core::PWSTR, u32, *mut u32, *mut u64) -> windows_core::HRESULT,
pub GetOffsetByLineWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCWSTR, *mut u64) -> windows_core::HRESULT,
pub GetModuleByModuleNameWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR, u32, *mut u32, *mut u64) -> windows_core::HRESULT,
pub GetSymbolModuleWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR, *mut u64) -> windows_core::HRESULT,
pub GetTypeNameWide: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetTypeIdWide: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PCWSTR, *mut u32) -> windows_core::HRESULT,
pub GetFieldOffsetWide: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, windows_core::PCWSTR, *mut u32) -> windows_core::HRESULT,
pub GetSymbolTypeIdWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR, *mut u32, *mut u64) -> windows_core::HRESULT,
pub GetScopeSymbolGroup2: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub CreateSymbolGroup2: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub StartSymbolMatchWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR, *mut u64) -> windows_core::HRESULT,
pub GetNextSymbolMatchWide: unsafe extern "system" fn(*mut core::ffi::c_void, u64, windows_core::PWSTR, u32, *mut u32, *mut u64) -> windows_core::HRESULT,
pub ReloadWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR) -> windows_core::HRESULT,
pub GetSymbolPathWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetSymbolPathWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR) -> windows_core::HRESULT,
pub AppendSymbolPathWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR) -> windows_core::HRESULT,
pub GetImagePathWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetImagePathWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR) -> windows_core::HRESULT,
pub AppendImagePathWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR) -> windows_core::HRESULT,
pub GetSourcePathWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetSourcePathElementWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub SetSourcePathWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR) -> windows_core::HRESULT,
pub AppendSourcePathWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR) -> windows_core::HRESULT,
pub FindSourceFileWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCWSTR, u32, *mut u32, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetSourceFileLineOffsetsWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR, *mut u64, u32, *mut u32) -> windows_core::HRESULT,
pub GetModuleVersionInformationWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u64, windows_core::PCWSTR, *mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub GetModuleNameStringWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, u64, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetConstantNameWide: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, u64, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetFieldNameWide: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, u32, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub IsManagedModule: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u64) -> windows_core::HRESULT,
pub GetModuleByModuleName2: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, u32, u32, *mut u32, *mut u64) -> windows_core::HRESULT,
pub GetModuleByModuleName2Wide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR, u32, u32, *mut u32, *mut u64) -> windows_core::HRESULT,
pub GetModuleByOffset2: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, u32, *mut u32, *mut u64) -> windows_core::HRESULT,
pub AddSyntheticModule: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, windows_core::PCSTR, windows_core::PCSTR, u32) -> windows_core::HRESULT,
pub AddSyntheticModuleWide: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, windows_core::PCWSTR, windows_core::PCWSTR, u32) -> windows_core::HRESULT,
pub RemoveSyntheticModule: unsafe extern "system" fn(*mut core::ffi::c_void, u64) -> windows_core::HRESULT,
pub GetCurrentScopeFrameIndex: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetScopeFrameByIndex: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub SetScopeFromJitDebugInfo: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u64) -> windows_core::HRESULT,
pub SetScopeFromStoredEvent: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub OutputSymbolByOffset: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, u64) -> windows_core::HRESULT,
pub GetFunctionEntryByOffset: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, *mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub GetFieldTypeAndOffset: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, windows_core::PCSTR, *mut u32, *mut u32) -> windows_core::HRESULT,
pub GetFieldTypeAndOffsetWide: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, windows_core::PCWSTR, *mut u32, *mut u32) -> windows_core::HRESULT,
pub AddSyntheticSymbol: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, windows_core::PCSTR, u32, *mut DEBUG_MODULE_AND_ID) -> windows_core::HRESULT,
pub AddSyntheticSymbolWide: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, windows_core::PCWSTR, u32, *mut DEBUG_MODULE_AND_ID) -> windows_core::HRESULT,
pub RemoveSyntheticSymbol: unsafe extern "system" fn(*mut core::ffi::c_void, *const DEBUG_MODULE_AND_ID) -> windows_core::HRESULT,
pub GetSymbolEntriesByOffset: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, *mut DEBUG_MODULE_AND_ID, *mut u64, u32, *mut u32) -> windows_core::HRESULT,
pub GetSymbolEntriesByName: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCSTR, u32, *mut DEBUG_MODULE_AND_ID, u32, *mut u32) -> windows_core::HRESULT,
pub GetSymbolEntriesByNameWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR, u32, *mut DEBUG_MODULE_AND_ID, u32, *mut u32) -> windows_core::HRESULT,
pub GetSymbolEntryByToken: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, *mut DEBUG_MODULE_AND_ID) -> windows_core::HRESULT,
pub GetSymbolEntryInformation: unsafe extern "system" fn(*mut core::ffi::c_void, *const DEBUG_MODULE_AND_ID, *mut DEBUG_SYMBOL_ENTRY) -> windows_core::HRESULT,
pub GetSymbolEntryString: unsafe extern "system" fn(*mut core::ffi::c_void, *const DEBUG_MODULE_AND_ID, u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetSymbolEntryStringWide: unsafe extern "system" fn(*mut core::ffi::c_void, *const DEBUG_MODULE_AND_ID, u32, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetSymbolEntryOffsetRegions: unsafe extern "system" fn(*mut core::ffi::c_void, *const DEBUG_MODULE_AND_ID, u32, *mut DEBUG_OFFSET_REGION, u32, *mut u32) -> windows_core::HRESULT,
pub GetSymbolEntryBySymbolEntry: unsafe extern "system" fn(*mut core::ffi::c_void, *const DEBUG_MODULE_AND_ID, u32, *mut DEBUG_MODULE_AND_ID) -> windows_core::HRESULT,
pub GetSourceEntriesByOffset: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, *mut DEBUG_SYMBOL_SOURCE_ENTRY, u32, *mut u32) -> windows_core::HRESULT,
pub GetSourceEntriesByLine: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCSTR, u32, *mut DEBUG_SYMBOL_SOURCE_ENTRY, u32, *mut u32) -> windows_core::HRESULT,
pub GetSourceEntriesByLineWide: unsafe extern "system" fn(*mut core::ffi::c_void, u32, windows_core::PCWSTR, u32, *mut DEBUG_SYMBOL_SOURCE_ENTRY, u32, *mut u32) -> windows_core::HRESULT,
pub GetSourceEntryString: unsafe extern "system" fn(*mut core::ffi::c_void, *const DEBUG_SYMBOL_SOURCE_ENTRY, u32, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetSourceEntryStringWide: unsafe extern "system" fn(*mut core::ffi::c_void, *const DEBUG_SYMBOL_SOURCE_ENTRY, u32, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetSourceEntryOffsetRegions: unsafe extern "system" fn(*mut core::ffi::c_void, *const DEBUG_SYMBOL_SOURCE_ENTRY, u32, *mut DEBUG_OFFSET_REGION, u32, *mut u32) -> windows_core::HRESULT,
pub GetSourceEntryBySourceEntry: unsafe extern "system" fn(*mut core::ffi::c_void, *const DEBUG_SYMBOL_SOURCE_ENTRY, u32, *mut DEBUG_SYMBOL_SOURCE_ENTRY) -> windows_core::HRESULT,
pub GetScopeEx: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u64, *mut DEBUG_STACK_FRAME_EX, *mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub SetScopeEx: unsafe extern "system" fn(*mut core::ffi::c_void, u64, *const DEBUG_STACK_FRAME_EX, *const core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetNameByInlineContext: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, windows_core::PSTR, u32, *mut u32, *mut u64) -> windows_core::HRESULT,
pub GetNameByInlineContextWide: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, windows_core::PWSTR, u32, *mut u32, *mut u64) -> windows_core::HRESULT,
pub GetLineByInlineContext: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, *mut u32, windows_core::PSTR, u32, *mut u32, *mut u64) -> windows_core::HRESULT,
pub GetLineByInlineContextWide: unsafe extern "system" fn(*mut core::ffi::c_void, u64, u32, *mut u32, windows_core::PWSTR, u32, *mut u32, *mut u64) -> windows_core::HRESULT,
pub OutputSymbolByInlineContext: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, u64, u32) -> windows_core::HRESULT,
pub GetCurrentScopeFrameIndexEx: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub SetScopeFrameByIndexEx: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IDebugSystemObjects, IDebugSystemObjects_Vtbl, 0x6b86fe2c_2c4f_4f0c_9da2_174311acc327);
impl core::ops::Deref for IDebugSystemObjects {
type Target = windows_core::IUnknown;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(IDebugSystemObjects, windows_core::IUnknown);
impl IDebugSystemObjects {
pub unsafe fn GetEventThread(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetEventThread)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetEventProcess(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetEventProcess)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetCurrentThreadId(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCurrentThreadId)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCurrentProcessId)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNumberThreads)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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: Option<*mut u32>, sysids: 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetThreadIdByProcessor)(windows_core::Interface::as_raw(self), processor, &mut result__).map(|| result__)
}
pub unsafe fn GetCurrentThreadDataOffset(&self) -> windows_core::Result<u64> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCurrentThreadDataOffset)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetThreadIdByDataOffset(&self, offset: u64) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetThreadIdByDataOffset)(windows_core::Interface::as_raw(self), offset, &mut result__).map(|| result__)
}
pub unsafe fn GetCurrentThreadTeb(&self) -> windows_core::Result<u64> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCurrentThreadTeb)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetThreadIdByTeb(&self, offset: u64) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetThreadIdByTeb)(windows_core::Interface::as_raw(self), offset, &mut result__).map(|| result__)
}
pub unsafe fn GetCurrentThreadSystemId(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCurrentThreadSystemId)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetThreadIdBySystemId(&self, sysid: u32) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetThreadIdBySystemId)(windows_core::Interface::as_raw(self), sysid, &mut result__).map(|| result__)
}
pub unsafe fn GetCurrentThreadHandle(&self) -> windows_core::Result<u64> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCurrentThreadHandle)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetThreadIdByHandle(&self, handle: u64) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetThreadIdByHandle)(windows_core::Interface::as_raw(self), handle, &mut result__).map(|| result__)
}
pub unsafe fn GetNumberProcesses(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNumberProcesses)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetProcessIdsByIndex(&self, start: u32, count: u32, ids: Option<*mut u32>, sysids: 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCurrentProcessDataOffset)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetProcessIdByDataOffset(&self, offset: u64) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetProcessIdByDataOffset)(windows_core::Interface::as_raw(self), offset, &mut result__).map(|| result__)
}
pub unsafe fn GetCurrentProcessPeb(&self) -> windows_core::Result<u64> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCurrentProcessPeb)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetProcessIdByPeb(&self, offset: u64) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetProcessIdByPeb)(windows_core::Interface::as_raw(self), offset, &mut result__).map(|| result__)
}
pub unsafe fn GetCurrentProcessSystemId(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCurrentProcessSystemId)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetProcessIdBySystemId(&self, sysid: u32) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetProcessIdBySystemId)(windows_core::Interface::as_raw(self), sysid, &mut result__).map(|| result__)
}
pub unsafe fn GetCurrentProcessHandle(&self) -> windows_core::Result<u64> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCurrentProcessHandle)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetProcessIdByHandle(&self, handle: u64) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetProcessIdByHandle)(windows_core::Interface::as_raw(self), handle, &mut result__).map(|| result__)
}
pub unsafe fn GetCurrentProcessExecutableName(&self, buffer: Option<&mut [u8]>, exesize: 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()
}
}
#[repr(C)]
pub struct IDebugSystemObjects_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetEventThread: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetEventProcess: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetCurrentThreadId: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetCurrentThreadId: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetCurrentProcessId: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetCurrentProcessId: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetNumberThreads: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetTotalNumberThreads: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32, *mut u32) -> windows_core::HRESULT,
pub GetThreadIdsByIndex: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, *mut u32, *mut u32) -> windows_core::HRESULT,
pub GetThreadIdByProcessor: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub GetCurrentThreadDataOffset: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u64) -> windows_core::HRESULT,
pub GetThreadIdByDataOffset: unsafe extern "system" fn(*mut core::ffi::c_void, u64, *mut u32) -> windows_core::HRESULT,
pub GetCurrentThreadTeb: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u64) -> windows_core::HRESULT,
pub GetThreadIdByTeb: unsafe extern "system" fn(*mut core::ffi::c_void, u64, *mut u32) -> windows_core::HRESULT,
pub GetCurrentThreadSystemId: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetThreadIdBySystemId: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub GetCurrentThreadHandle: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u64) -> windows_core::HRESULT,
pub GetThreadIdByHandle: unsafe extern "system" fn(*mut core::ffi::c_void, u64, *mut u32) -> windows_core::HRESULT,
pub GetNumberProcesses: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetProcessIdsByIndex: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, *mut u32, *mut u32) -> windows_core::HRESULT,
pub GetCurrentProcessDataOffset: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u64) -> windows_core::HRESULT,
pub GetProcessIdByDataOffset: unsafe extern "system" fn(*mut core::ffi::c_void, u64, *mut u32) -> windows_core::HRESULT,
pub GetCurrentProcessPeb: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u64) -> windows_core::HRESULT,
pub GetProcessIdByPeb: unsafe extern "system" fn(*mut core::ffi::c_void, u64, *mut u32) -> windows_core::HRESULT,
pub GetCurrentProcessSystemId: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetProcessIdBySystemId: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub GetCurrentProcessHandle: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u64) -> windows_core::HRESULT,
pub GetProcessIdByHandle: unsafe extern "system" fn(*mut core::ffi::c_void, u64, *mut u32) -> windows_core::HRESULT,
pub GetCurrentProcessExecutableName: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IDebugSystemObjects2, IDebugSystemObjects2_Vtbl, 0x0ae9f5ff_1852_4679_b055_494bee6407ee);
impl core::ops::Deref for IDebugSystemObjects2 {
type Target = windows_core::IUnknown;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(IDebugSystemObjects2, windows_core::IUnknown);
impl IDebugSystemObjects2 {
pub unsafe fn GetEventThread(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetEventThread)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetEventProcess(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetEventProcess)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetCurrentThreadId(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCurrentThreadId)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCurrentProcessId)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNumberThreads)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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: Option<*mut u32>, sysids: 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetThreadIdByProcessor)(windows_core::Interface::as_raw(self), processor, &mut result__).map(|| result__)
}
pub unsafe fn GetCurrentThreadDataOffset(&self) -> windows_core::Result<u64> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCurrentThreadDataOffset)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetThreadIdByDataOffset(&self, offset: u64) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetThreadIdByDataOffset)(windows_core::Interface::as_raw(self), offset, &mut result__).map(|| result__)
}
pub unsafe fn GetCurrentThreadTeb(&self) -> windows_core::Result<u64> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCurrentThreadTeb)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetThreadIdByTeb(&self, offset: u64) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetThreadIdByTeb)(windows_core::Interface::as_raw(self), offset, &mut result__).map(|| result__)
}
pub unsafe fn GetCurrentThreadSystemId(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCurrentThreadSystemId)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetThreadIdBySystemId(&self, sysid: u32) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetThreadIdBySystemId)(windows_core::Interface::as_raw(self), sysid, &mut result__).map(|| result__)
}
pub unsafe fn GetCurrentThreadHandle(&self) -> windows_core::Result<u64> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCurrentThreadHandle)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetThreadIdByHandle(&self, handle: u64) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetThreadIdByHandle)(windows_core::Interface::as_raw(self), handle, &mut result__).map(|| result__)
}
pub unsafe fn GetNumberProcesses(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNumberProcesses)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetProcessIdsByIndex(&self, start: u32, count: u32, ids: Option<*mut u32>, sysids: 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCurrentProcessDataOffset)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetProcessIdByDataOffset(&self, offset: u64) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetProcessIdByDataOffset)(windows_core::Interface::as_raw(self), offset, &mut result__).map(|| result__)
}
pub unsafe fn GetCurrentProcessPeb(&self) -> windows_core::Result<u64> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCurrentProcessPeb)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetProcessIdByPeb(&self, offset: u64) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetProcessIdByPeb)(windows_core::Interface::as_raw(self), offset, &mut result__).map(|| result__)
}
pub unsafe fn GetCurrentProcessSystemId(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCurrentProcessSystemId)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetProcessIdBySystemId(&self, sysid: u32) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetProcessIdBySystemId)(windows_core::Interface::as_raw(self), sysid, &mut result__).map(|| result__)
}
pub unsafe fn GetCurrentProcessHandle(&self) -> windows_core::Result<u64> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCurrentProcessHandle)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetProcessIdByHandle(&self, handle: u64) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetProcessIdByHandle)(windows_core::Interface::as_raw(self), handle, &mut result__).map(|| result__)
}
pub unsafe fn GetCurrentProcessExecutableName(&self, buffer: Option<&mut [u8]>, exesize: 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCurrentProcessUpTime)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetImplicitThreadDataOffset(&self) -> windows_core::Result<u64> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetImplicitThreadDataOffset)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetImplicitProcessDataOffset)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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()
}
}
#[repr(C)]
pub struct IDebugSystemObjects2_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetEventThread: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetEventProcess: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetCurrentThreadId: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetCurrentThreadId: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetCurrentProcessId: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetCurrentProcessId: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetNumberThreads: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetTotalNumberThreads: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32, *mut u32) -> windows_core::HRESULT,
pub GetThreadIdsByIndex: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, *mut u32, *mut u32) -> windows_core::HRESULT,
pub GetThreadIdByProcessor: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub GetCurrentThreadDataOffset: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u64) -> windows_core::HRESULT,
pub GetThreadIdByDataOffset: unsafe extern "system" fn(*mut core::ffi::c_void, u64, *mut u32) -> windows_core::HRESULT,
pub GetCurrentThreadTeb: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u64) -> windows_core::HRESULT,
pub GetThreadIdByTeb: unsafe extern "system" fn(*mut core::ffi::c_void, u64, *mut u32) -> windows_core::HRESULT,
pub GetCurrentThreadSystemId: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetThreadIdBySystemId: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub GetCurrentThreadHandle: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u64) -> windows_core::HRESULT,
pub GetThreadIdByHandle: unsafe extern "system" fn(*mut core::ffi::c_void, u64, *mut u32) -> windows_core::HRESULT,
pub GetNumberProcesses: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetProcessIdsByIndex: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, *mut u32, *mut u32) -> windows_core::HRESULT,
pub GetCurrentProcessDataOffset: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u64) -> windows_core::HRESULT,
pub GetProcessIdByDataOffset: unsafe extern "system" fn(*mut core::ffi::c_void, u64, *mut u32) -> windows_core::HRESULT,
pub GetCurrentProcessPeb: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u64) -> windows_core::HRESULT,
pub GetProcessIdByPeb: unsafe extern "system" fn(*mut core::ffi::c_void, u64, *mut u32) -> windows_core::HRESULT,
pub GetCurrentProcessSystemId: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetProcessIdBySystemId: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub GetCurrentProcessHandle: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u64) -> windows_core::HRESULT,
pub GetProcessIdByHandle: unsafe extern "system" fn(*mut core::ffi::c_void, u64, *mut u32) -> windows_core::HRESULT,
pub GetCurrentProcessExecutableName: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetCurrentProcessUpTime: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetImplicitThreadDataOffset: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u64) -> windows_core::HRESULT,
pub SetImplicitThreadDataOffset: unsafe extern "system" fn(*mut core::ffi::c_void, u64) -> windows_core::HRESULT,
pub GetImplicitProcessDataOffset: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u64) -> windows_core::HRESULT,
pub SetImplicitProcessDataOffset: unsafe extern "system" fn(*mut core::ffi::c_void, u64) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IDebugSystemObjects3, IDebugSystemObjects3_Vtbl, 0xe9676e2f_e286_4ea3_b0f9_dfe5d9fc330e);
impl core::ops::Deref for IDebugSystemObjects3 {
type Target = windows_core::IUnknown;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(IDebugSystemObjects3, windows_core::IUnknown);
impl IDebugSystemObjects3 {
pub unsafe fn GetEventThread(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetEventThread)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetEventProcess(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetEventProcess)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetCurrentThreadId(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCurrentThreadId)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCurrentProcessId)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNumberThreads)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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: Option<*mut u32>, sysids: 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetThreadIdByProcessor)(windows_core::Interface::as_raw(self), processor, &mut result__).map(|| result__)
}
pub unsafe fn GetCurrentThreadDataOffset(&self) -> windows_core::Result<u64> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCurrentThreadDataOffset)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetThreadIdByDataOffset(&self, offset: u64) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetThreadIdByDataOffset)(windows_core::Interface::as_raw(self), offset, &mut result__).map(|| result__)
}
pub unsafe fn GetCurrentThreadTeb(&self) -> windows_core::Result<u64> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCurrentThreadTeb)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetThreadIdByTeb(&self, offset: u64) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetThreadIdByTeb)(windows_core::Interface::as_raw(self), offset, &mut result__).map(|| result__)
}
pub unsafe fn GetCurrentThreadSystemId(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCurrentThreadSystemId)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetThreadIdBySystemId(&self, sysid: u32) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetThreadIdBySystemId)(windows_core::Interface::as_raw(self), sysid, &mut result__).map(|| result__)
}
pub unsafe fn GetCurrentThreadHandle(&self) -> windows_core::Result<u64> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCurrentThreadHandle)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetThreadIdByHandle(&self, handle: u64) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetThreadIdByHandle)(windows_core::Interface::as_raw(self), handle, &mut result__).map(|| result__)
}
pub unsafe fn GetNumberProcesses(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNumberProcesses)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetProcessIdsByIndex(&self, start: u32, count: u32, ids: Option<*mut u32>, sysids: 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCurrentProcessDataOffset)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetProcessIdByDataOffset(&self, offset: u64) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetProcessIdByDataOffset)(windows_core::Interface::as_raw(self), offset, &mut result__).map(|| result__)
}
pub unsafe fn GetCurrentProcessPeb(&self) -> windows_core::Result<u64> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCurrentProcessPeb)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetProcessIdByPeb(&self, offset: u64) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetProcessIdByPeb)(windows_core::Interface::as_raw(self), offset, &mut result__).map(|| result__)
}
pub unsafe fn GetCurrentProcessSystemId(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCurrentProcessSystemId)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetProcessIdBySystemId(&self, sysid: u32) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetProcessIdBySystemId)(windows_core::Interface::as_raw(self), sysid, &mut result__).map(|| result__)
}
pub unsafe fn GetCurrentProcessHandle(&self) -> windows_core::Result<u64> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCurrentProcessHandle)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetProcessIdByHandle(&self, handle: u64) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetProcessIdByHandle)(windows_core::Interface::as_raw(self), handle, &mut result__).map(|| result__)
}
pub unsafe fn GetCurrentProcessExecutableName(&self, buffer: Option<&mut [u8]>, exesize: 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCurrentProcessUpTime)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetImplicitThreadDataOffset(&self) -> windows_core::Result<u64> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetImplicitThreadDataOffset)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetImplicitProcessDataOffset)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetEventSystem)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetCurrentSystemId(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCurrentSystemId)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNumberSystems)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCurrentSystemServer)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetSystemByServer(&self, server: u64) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetSystemByServer)(windows_core::Interface::as_raw(self), server, &mut result__).map(|| result__)
}
pub unsafe fn GetCurrentSystemServerName(&self, buffer: Option<&mut [u8]>, namesize: 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()
}
}
#[repr(C)]
pub struct IDebugSystemObjects3_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetEventThread: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetEventProcess: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetCurrentThreadId: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetCurrentThreadId: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetCurrentProcessId: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetCurrentProcessId: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetNumberThreads: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetTotalNumberThreads: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32, *mut u32) -> windows_core::HRESULT,
pub GetThreadIdsByIndex: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, *mut u32, *mut u32) -> windows_core::HRESULT,
pub GetThreadIdByProcessor: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub GetCurrentThreadDataOffset: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u64) -> windows_core::HRESULT,
pub GetThreadIdByDataOffset: unsafe extern "system" fn(*mut core::ffi::c_void, u64, *mut u32) -> windows_core::HRESULT,
pub GetCurrentThreadTeb: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u64) -> windows_core::HRESULT,
pub GetThreadIdByTeb: unsafe extern "system" fn(*mut core::ffi::c_void, u64, *mut u32) -> windows_core::HRESULT,
pub GetCurrentThreadSystemId: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetThreadIdBySystemId: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub GetCurrentThreadHandle: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u64) -> windows_core::HRESULT,
pub GetThreadIdByHandle: unsafe extern "system" fn(*mut core::ffi::c_void, u64, *mut u32) -> windows_core::HRESULT,
pub GetNumberProcesses: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetProcessIdsByIndex: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, *mut u32, *mut u32) -> windows_core::HRESULT,
pub GetCurrentProcessDataOffset: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u64) -> windows_core::HRESULT,
pub GetProcessIdByDataOffset: unsafe extern "system" fn(*mut core::ffi::c_void, u64, *mut u32) -> windows_core::HRESULT,
pub GetCurrentProcessPeb: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u64) -> windows_core::HRESULT,
pub GetProcessIdByPeb: unsafe extern "system" fn(*mut core::ffi::c_void, u64, *mut u32) -> windows_core::HRESULT,
pub GetCurrentProcessSystemId: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetProcessIdBySystemId: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub GetCurrentProcessHandle: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u64) -> windows_core::HRESULT,
pub GetProcessIdByHandle: unsafe extern "system" fn(*mut core::ffi::c_void, u64, *mut u32) -> windows_core::HRESULT,
pub GetCurrentProcessExecutableName: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetCurrentProcessUpTime: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetImplicitThreadDataOffset: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u64) -> windows_core::HRESULT,
pub SetImplicitThreadDataOffset: unsafe extern "system" fn(*mut core::ffi::c_void, u64) -> windows_core::HRESULT,
pub GetImplicitProcessDataOffset: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u64) -> windows_core::HRESULT,
pub SetImplicitProcessDataOffset: unsafe extern "system" fn(*mut core::ffi::c_void, u64) -> windows_core::HRESULT,
pub GetEventSystem: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetCurrentSystemId: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetCurrentSystemId: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetNumberSystems: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetSystemIdsByIndex: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, *mut u32) -> windows_core::HRESULT,
pub GetTotalNumberThreadsAndProcesses: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32, *mut u32, *mut u32, *mut u32, *mut u32) -> windows_core::HRESULT,
pub GetCurrentSystemServer: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u64) -> windows_core::HRESULT,
pub GetSystemByServer: unsafe extern "system" fn(*mut core::ffi::c_void, u64, *mut u32) -> windows_core::HRESULT,
pub GetCurrentSystemServerName: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IDebugSystemObjects4, IDebugSystemObjects4_Vtbl, 0x489468e6_7d0f_4af5_87ab_25207454d553);
impl core::ops::Deref for IDebugSystemObjects4 {
type Target = windows_core::IUnknown;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(IDebugSystemObjects4, windows_core::IUnknown);
impl IDebugSystemObjects4 {
pub unsafe fn GetEventThread(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetEventThread)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetEventProcess(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetEventProcess)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetCurrentThreadId(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCurrentThreadId)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCurrentProcessId)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNumberThreads)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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: Option<*mut u32>, sysids: 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetThreadIdByProcessor)(windows_core::Interface::as_raw(self), processor, &mut result__).map(|| result__)
}
pub unsafe fn GetCurrentThreadDataOffset(&self) -> windows_core::Result<u64> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCurrentThreadDataOffset)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetThreadIdByDataOffset(&self, offset: u64) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetThreadIdByDataOffset)(windows_core::Interface::as_raw(self), offset, &mut result__).map(|| result__)
}
pub unsafe fn GetCurrentThreadTeb(&self) -> windows_core::Result<u64> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCurrentThreadTeb)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetThreadIdByTeb(&self, offset: u64) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetThreadIdByTeb)(windows_core::Interface::as_raw(self), offset, &mut result__).map(|| result__)
}
pub unsafe fn GetCurrentThreadSystemId(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCurrentThreadSystemId)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetThreadIdBySystemId(&self, sysid: u32) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetThreadIdBySystemId)(windows_core::Interface::as_raw(self), sysid, &mut result__).map(|| result__)
}
pub unsafe fn GetCurrentThreadHandle(&self) -> windows_core::Result<u64> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCurrentThreadHandle)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetThreadIdByHandle(&self, handle: u64) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetThreadIdByHandle)(windows_core::Interface::as_raw(self), handle, &mut result__).map(|| result__)
}
pub unsafe fn GetNumberProcesses(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNumberProcesses)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetProcessIdsByIndex(&self, start: u32, count: u32, ids: Option<*mut u32>, sysids: 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCurrentProcessDataOffset)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetProcessIdByDataOffset(&self, offset: u64) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetProcessIdByDataOffset)(windows_core::Interface::as_raw(self), offset, &mut result__).map(|| result__)
}
pub unsafe fn GetCurrentProcessPeb(&self) -> windows_core::Result<u64> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCurrentProcessPeb)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetProcessIdByPeb(&self, offset: u64) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetProcessIdByPeb)(windows_core::Interface::as_raw(self), offset, &mut result__).map(|| result__)
}
pub unsafe fn GetCurrentProcessSystemId(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCurrentProcessSystemId)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetProcessIdBySystemId(&self, sysid: u32) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetProcessIdBySystemId)(windows_core::Interface::as_raw(self), sysid, &mut result__).map(|| result__)
}
pub unsafe fn GetCurrentProcessHandle(&self) -> windows_core::Result<u64> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCurrentProcessHandle)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetProcessIdByHandle(&self, handle: u64) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetProcessIdByHandle)(windows_core::Interface::as_raw(self), handle, &mut result__).map(|| result__)
}
pub unsafe fn GetCurrentProcessExecutableName(&self, buffer: Option<&mut [u8]>, exesize: 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCurrentProcessUpTime)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetImplicitThreadDataOffset(&self) -> windows_core::Result<u64> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetImplicitThreadDataOffset)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetImplicitProcessDataOffset)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetEventSystem)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetCurrentSystemId(&self) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCurrentSystemId)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNumberSystems)(windows_core::Interface::as_raw(self), &mut result__).map(|| 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetCurrentSystemServer)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetSystemByServer(&self, server: u64) -> windows_core::Result<u32> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetSystemByServer)(windows_core::Interface::as_raw(self), server, &mut result__).map(|| result__)
}
pub unsafe fn GetCurrentSystemServerName(&self, buffer: Option<&mut [u8]>, namesize: 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: Option<&mut [u16]>, exesize: 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: Option<&mut [u16]>, namesize: 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()
}
}
#[repr(C)]
pub struct IDebugSystemObjects4_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetEventThread: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetEventProcess: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetCurrentThreadId: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetCurrentThreadId: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetCurrentProcessId: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetCurrentProcessId: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetNumberThreads: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetTotalNumberThreads: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32, *mut u32) -> windows_core::HRESULT,
pub GetThreadIdsByIndex: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, *mut u32, *mut u32) -> windows_core::HRESULT,
pub GetThreadIdByProcessor: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub GetCurrentThreadDataOffset: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u64) -> windows_core::HRESULT,
pub GetThreadIdByDataOffset: unsafe extern "system" fn(*mut core::ffi::c_void, u64, *mut u32) -> windows_core::HRESULT,
pub GetCurrentThreadTeb: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u64) -> windows_core::HRESULT,
pub GetThreadIdByTeb: unsafe extern "system" fn(*mut core::ffi::c_void, u64, *mut u32) -> windows_core::HRESULT,
pub GetCurrentThreadSystemId: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetThreadIdBySystemId: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub GetCurrentThreadHandle: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u64) -> windows_core::HRESULT,
pub GetThreadIdByHandle: unsafe extern "system" fn(*mut core::ffi::c_void, u64, *mut u32) -> windows_core::HRESULT,
pub GetNumberProcesses: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetProcessIdsByIndex: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, *mut u32, *mut u32) -> windows_core::HRESULT,
pub GetCurrentProcessDataOffset: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u64) -> windows_core::HRESULT,
pub GetProcessIdByDataOffset: unsafe extern "system" fn(*mut core::ffi::c_void, u64, *mut u32) -> windows_core::HRESULT,
pub GetCurrentProcessPeb: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u64) -> windows_core::HRESULT,
pub GetProcessIdByPeb: unsafe extern "system" fn(*mut core::ffi::c_void, u64, *mut u32) -> windows_core::HRESULT,
pub GetCurrentProcessSystemId: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetProcessIdBySystemId: unsafe extern "system" fn(*mut core::ffi::c_void, u32, *mut u32) -> windows_core::HRESULT,
pub GetCurrentProcessHandle: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u64) -> windows_core::HRESULT,
pub GetProcessIdByHandle: unsafe extern "system" fn(*mut core::ffi::c_void, u64, *mut u32) -> windows_core::HRESULT,
pub GetCurrentProcessExecutableName: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetCurrentProcessUpTime: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetImplicitThreadDataOffset: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u64) -> windows_core::HRESULT,
pub SetImplicitThreadDataOffset: unsafe extern "system" fn(*mut core::ffi::c_void, u64) -> windows_core::HRESULT,
pub GetImplicitProcessDataOffset: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u64) -> windows_core::HRESULT,
pub SetImplicitProcessDataOffset: unsafe extern "system" fn(*mut core::ffi::c_void, u64) -> windows_core::HRESULT,
pub GetEventSystem: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetCurrentSystemId: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub SetCurrentSystemId: unsafe extern "system" fn(*mut core::ffi::c_void, u32) -> windows_core::HRESULT,
pub GetNumberSystems: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32) -> windows_core::HRESULT,
pub GetSystemIdsByIndex: unsafe extern "system" fn(*mut core::ffi::c_void, u32, u32, *mut u32) -> windows_core::HRESULT,
pub GetTotalNumberThreadsAndProcesses: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u32, *mut u32, *mut u32, *mut u32, *mut u32) -> windows_core::HRESULT,
pub GetCurrentSystemServer: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u64) -> windows_core::HRESULT,
pub GetSystemByServer: unsafe extern "system" fn(*mut core::ffi::c_void, u64, *mut u32) -> windows_core::HRESULT,
pub GetCurrentSystemServerName: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetCurrentProcessExecutableNameWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
pub GetCurrentSystemServerNameWide: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PWSTR, u32, *mut u32) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IDynamicConceptProviderConcept, IDynamicConceptProviderConcept_Vtbl, 0x95a7f7dd_602e_483f_9d06_a15c0ee13174);
impl core::ops::Deref for IDynamicConceptProviderConcept {
type Target = windows_core::IUnknown;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(IDynamicConceptProviderConcept, windows_core::IUnknown);
impl IDynamicConceptProviderConcept {
pub unsafe fn GetConcept<P0>(&self, contextobject: P0, conceptid: *const windows_core::GUID, conceptinterface: *mut Option<windows_core::IUnknown>, conceptmetadata: Option<*mut Option<IKeyStore>>, hasconcept: *mut bool) -> windows_core::Result<()>
where
P0: windows_core::Param<IModelObject>,
{
(windows_core::Interface::vtable(self).GetConcept)(windows_core::Interface::as_raw(self), contextobject.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::Param<IModelObject>,
P1: windows_core::Param<windows_core::IUnknown>,
P2: windows_core::Param<IKeyStore>,
{
(windows_core::Interface::vtable(self).SetConcept)(windows_core::Interface::as_raw(self), contextobject.param().abi(), conceptid, conceptinterface.param().abi(), conceptmetadata.param().abi()).ok()
}
pub unsafe fn NotifyParent<P0>(&self, parentmodel: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<IModelObject>,
{
(windows_core::Interface::vtable(self).NotifyParent)(windows_core::Interface::as_raw(self), parentmodel.param().abi()).ok()
}
pub unsafe fn NotifyParentChange<P0>(&self, parentmodel: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<IModelObject>,
{
(windows_core::Interface::vtable(self).NotifyParentChange)(windows_core::Interface::as_raw(self), parentmodel.param().abi()).ok()
}
pub unsafe fn NotifyDestruct(&self) -> windows_core::Result<()> {
(windows_core::Interface::vtable(self).NotifyDestruct)(windows_core::Interface::as_raw(self)).ok()
}
}
#[repr(C)]
pub struct IDynamicConceptProviderConcept_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetConcept: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, *const windows_core::GUID, *mut *mut core::ffi::c_void, *mut *mut core::ffi::c_void, *mut bool) -> windows_core::HRESULT,
pub SetConcept: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, *const windows_core::GUID, *mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub NotifyParent: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub NotifyParentChange: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub NotifyDestruct: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IDynamicKeyProviderConcept, IDynamicKeyProviderConcept_Vtbl, 0xe7983fa1_80a7_498c_988f_518ddc5d4025);
impl core::ops::Deref for IDynamicKeyProviderConcept {
type Target = windows_core::IUnknown;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(IDynamicKeyProviderConcept, windows_core::IUnknown);
impl IDynamicKeyProviderConcept {
pub unsafe fn GetKey<P0, P1>(&self, contextobject: P0, key: P1, keyvalue: Option<*mut Option<IModelObject>>, metadata: Option<*mut Option<IKeyStore>>, haskey: Option<*mut bool>) -> windows_core::Result<()>
where
P0: windows_core::Param<IModelObject>,
P1: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).GetKey)(windows_core::Interface::as_raw(self), contextobject.param().abi(), key.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::Param<IModelObject>,
P1: windows_core::Param<windows_core::PCWSTR>,
P2: windows_core::Param<IModelObject>,
P3: windows_core::Param<IKeyStore>,
{
(windows_core::Interface::vtable(self).SetKey)(windows_core::Interface::as_raw(self), contextobject.param().abi(), key.param().abi(), keyvalue.param().abi(), metadata.param().abi()).ok()
}
pub unsafe fn EnumerateKeys<P0>(&self, contextobject: P0) -> windows_core::Result<IKeyEnumerator>
where
P0: windows_core::Param<IModelObject>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).EnumerateKeys)(windows_core::Interface::as_raw(self), contextobject.param().abi(), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
#[repr(C)]
pub struct IDynamicKeyProviderConcept_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetKey: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, windows_core::PCWSTR, *mut *mut core::ffi::c_void, *mut *mut core::ffi::c_void, *mut bool) -> windows_core::HRESULT,
pub SetKey: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, windows_core::PCWSTR, *mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub EnumerateKeys: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IEquatableConcept, IEquatableConcept_Vtbl, 0xc52d5d3d_609d_4d5d_8a82_46b0acdec4f4);
impl core::ops::Deref for IEquatableConcept {
type Target = windows_core::IUnknown;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(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::Param<IModelObject>,
P1: windows_core::Param<IModelObject>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).AreObjectsEqual)(windows_core::Interface::as_raw(self), contextobject.param().abi(), otherobject.param().abi(), &mut result__).map(|| result__)
}
}
#[repr(C)]
pub struct IEquatableConcept_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub AreObjectsEqual: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, *mut core::ffi::c_void, *mut bool) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IHostDataModelAccess, IHostDataModelAccess_Vtbl, 0xf2bce54e_4835_4f8a_836e_7981e29904d1);
impl core::ops::Deref for IHostDataModelAccess {
type Target = windows_core::IUnknown;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(IHostDataModelAccess, windows_core::IUnknown);
impl IHostDataModelAccess {
pub unsafe fn GetDataModel(&self, manager: *mut Option<IDataModelManager>, host: *mut 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()
}
}
#[repr(C)]
pub struct IHostDataModelAccess_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetDataModel: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IIndexableConcept, IIndexableConcept_Vtbl, 0xd1fad99f_3f53_4457_850c_8051df2d3fb5);
impl core::ops::Deref for IIndexableConcept {
type Target = windows_core::IUnknown;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(IIndexableConcept, windows_core::IUnknown);
impl IIndexableConcept {
pub unsafe fn GetDimensionality<P0>(&self, contextobject: P0) -> windows_core::Result<u64>
where
P0: windows_core::Param<IModelObject>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetDimensionality)(windows_core::Interface::as_raw(self), contextobject.param().abi(), &mut result__).map(|| result__)
}
pub unsafe fn GetAt<P0>(&self, contextobject: P0, indexers: &[Option<IModelObject>], object: *mut Option<IModelObject>, metadata: Option<*mut Option<IKeyStore>>) -> windows_core::Result<()>
where
P0: windows_core::Param<IModelObject>,
{
(windows_core::Interface::vtable(self).GetAt)(windows_core::Interface::as_raw(self), contextobject.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: &[Option<IModelObject>], value: P1) -> windows_core::Result<()>
where
P0: windows_core::Param<IModelObject>,
P1: windows_core::Param<IModelObject>,
{
(windows_core::Interface::vtable(self).SetAt)(windows_core::Interface::as_raw(self), contextobject.param().abi(), indexers.len().try_into().unwrap(), core::mem::transmute(indexers.as_ptr()), value.param().abi()).ok()
}
}
#[repr(C)]
pub struct IIndexableConcept_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetDimensionality: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, *mut u64) -> windows_core::HRESULT,
pub GetAt: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, u64, *const *mut core::ffi::c_void, *mut *mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub SetAt: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, u64, *const *mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IIterableConcept, IIterableConcept_Vtbl, 0xf5d49d0c_0b02_4301_9c9b_b3a6037628f3);
impl core::ops::Deref for IIterableConcept {
type Target = windows_core::IUnknown;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(IIterableConcept, windows_core::IUnknown);
impl IIterableConcept {
pub unsafe fn GetDefaultIndexDimensionality<P0>(&self, contextobject: P0) -> windows_core::Result<u64>
where
P0: windows_core::Param<IModelObject>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetDefaultIndexDimensionality)(windows_core::Interface::as_raw(self), contextobject.param().abi(), &mut result__).map(|| result__)
}
pub unsafe fn GetIterator<P0>(&self, contextobject: P0) -> windows_core::Result<IModelIterator>
where
P0: windows_core::Param<IModelObject>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetIterator)(windows_core::Interface::as_raw(self), contextobject.param().abi(), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
#[repr(C)]
pub struct IIterableConcept_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetDefaultIndexDimensionality: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, *mut u64) -> windows_core::HRESULT,
pub GetIterator: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IKeyEnumerator, IKeyEnumerator_Vtbl, 0x345fa92e_5e00_4319_9cae_971f7601cdcf);
impl core::ops::Deref for IKeyEnumerator {
type Target = windows_core::IUnknown;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(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: Option<*mut Option<IModelObject>>, metadata: Option<*mut 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()
}
}
#[repr(C)]
pub struct IKeyEnumerator_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub Reset: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetNext: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::mem::MaybeUninit<windows_core::BSTR>, *mut *mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IKeyStore, IKeyStore_Vtbl, 0x0fc7557d_401d_4fca_9365_da1e9850697c);
impl core::ops::Deref for IKeyStore {
type Target = windows_core::IUnknown;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(IKeyStore, windows_core::IUnknown);
impl IKeyStore {
pub unsafe fn GetKey<P0>(&self, key: P0, object: Option<*mut Option<IModelObject>>, metadata: Option<*mut Option<IKeyStore>>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).GetKey)(windows_core::Interface::as_raw(self), key.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::Param<windows_core::PCWSTR>,
P1: windows_core::Param<IModelObject>,
P2: windows_core::Param<IKeyStore>,
{
(windows_core::Interface::vtable(self).SetKey)(windows_core::Interface::as_raw(self), key.param().abi(), object.param().abi(), metadata.param().abi()).ok()
}
pub unsafe fn GetKeyValue<P0>(&self, key: P0, object: Option<*mut Option<IModelObject>>, metadata: Option<*mut Option<IKeyStore>>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).GetKeyValue)(windows_core::Interface::as_raw(self), key.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::Param<windows_core::PCWSTR>,
P1: windows_core::Param<IModelObject>,
{
(windows_core::Interface::vtable(self).SetKeyValue)(windows_core::Interface::as_raw(self), key.param().abi(), object.param().abi()).ok()
}
pub unsafe fn ClearKeys(&self) -> windows_core::Result<()> {
(windows_core::Interface::vtable(self).ClearKeys)(windows_core::Interface::as_raw(self)).ok()
}
}
#[repr(C)]
pub struct IKeyStore_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetKey: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR, *mut *mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub SetKey: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR, *mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetKeyValue: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR, *mut *mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub SetKeyValue: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub ClearKeys: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IModelIterator, IModelIterator_Vtbl, 0xe4622136_927d_4490_874f_581f3e4e3688);
impl core::ops::Deref for IModelIterator {
type Target = windows_core::IUnknown;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(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 Option<IModelObject>, indexers: Option<&mut [Option<IModelObject>]>, metadata: Option<*mut 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()
}
}
#[repr(C)]
pub struct IModelIterator_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub Reset: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetNext: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void, u64, *mut *mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IModelKeyReference, IModelKeyReference_Vtbl, 0x5253dcf8_5aff_4c62_b302_56a289e00998);
impl core::ops::Deref for IModelKeyReference {
type Target = windows_core::IUnknown;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(IModelKeyReference, windows_core::IUnknown);
impl IModelKeyReference {
pub unsafe fn GetKeyName(&self) -> windows_core::Result<windows_core::BSTR> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetKeyName)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn GetOriginalObject(&self) -> windows_core::Result<IModelObject> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetOriginalObject)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn GetContextObject(&self) -> windows_core::Result<IModelObject> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetContextObject)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn GetKey(&self, object: Option<*mut Option<IModelObject>>, metadata: Option<*mut 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: Option<*mut Option<IModelObject>>, metadata: Option<*mut 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::Param<IModelObject>,
P1: windows_core::Param<IKeyStore>,
{
(windows_core::Interface::vtable(self).SetKey)(windows_core::Interface::as_raw(self), object.param().abi(), metadata.param().abi()).ok()
}
pub unsafe fn SetKeyValue<P0>(&self, object: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<IModelObject>,
{
(windows_core::Interface::vtable(self).SetKeyValue)(windows_core::Interface::as_raw(self), object.param().abi()).ok()
}
}
#[repr(C)]
pub struct IModelKeyReference_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetKeyName: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::mem::MaybeUninit<windows_core::BSTR>) -> windows_core::HRESULT,
pub GetOriginalObject: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetContextObject: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetKey: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetKeyValue: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub SetKey: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub SetKeyValue: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IModelKeyReference2, IModelKeyReference2_Vtbl, 0x80e2f7c5_7159_4e92_887e_7e0347e88406);
impl core::ops::Deref for IModelKeyReference2 {
type Target = IModelKeyReference;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(IModelKeyReference2, windows_core::IUnknown, IModelKeyReference);
impl IModelKeyReference2 {
pub unsafe fn OverrideContextObject<P0>(&self, newcontextobject: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<IModelObject>,
{
(windows_core::Interface::vtable(self).OverrideContextObject)(windows_core::Interface::as_raw(self), newcontextobject.param().abi()).ok()
}
}
#[repr(C)]
pub struct IModelKeyReference2_Vtbl {
pub base__: IModelKeyReference_Vtbl,
pub OverrideContextObject: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IModelMethod, IModelMethod_Vtbl, 0x80600c1f_b90b_4896_82ad_1c00207909e8);
impl core::ops::Deref for IModelMethod {
type Target = windows_core::IUnknown;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(IModelMethod, windows_core::IUnknown);
impl IModelMethod {
pub unsafe fn Call<P0>(&self, pcontextobject: P0, pparguments: &[Option<IModelObject>], ppresult: *mut Option<IModelObject>, ppmetadata: Option<*mut Option<IKeyStore>>) -> windows_core::Result<()>
where
P0: windows_core::Param<IModelObject>,
{
(windows_core::Interface::vtable(self).Call)(windows_core::Interface::as_raw(self), pcontextobject.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()
}
}
#[repr(C)]
pub struct IModelMethod_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub Call: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, u64, *const *mut core::ffi::c_void, *mut *mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IModelObject, IModelObject_Vtbl, 0xe28c7893_3f4b_4b96_baca_293cdc55f45d);
impl core::ops::Deref for IModelObject {
type Target = windows_core::IUnknown;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(IModelObject, windows_core::IUnknown);
impl IModelObject {
pub unsafe fn GetContext(&self) -> windows_core::Result<IDebugHostContext> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetContext)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn GetKind(&self) -> windows_core::Result<ModelObjectKind> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetKind)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetIntrinsicValue(&self) -> windows_core::Result<windows_core::VARIANT> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetIntrinsicValue)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
#[cfg(feature = "Win32_System_Variant")]
pub unsafe fn GetIntrinsicValueAs(&self, vt: super::super::super::Variant::VARENUM) -> windows_core::Result<windows_core::VARIANT> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetIntrinsicValueAs)(windows_core::Interface::as_raw(self), vt, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn GetKeyValue<P0>(&self, key: P0, object: Option<*mut Option<IModelObject>>, metadata: Option<*mut Option<IKeyStore>>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).GetKeyValue)(windows_core::Interface::as_raw(self), key.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::Param<windows_core::PCWSTR>,
P1: windows_core::Param<IModelObject>,
{
(windows_core::Interface::vtable(self).SetKeyValue)(windows_core::Interface::as_raw(self), key.param().abi(), object.param().abi()).ok()
}
pub unsafe fn EnumerateKeyValues(&self) -> windows_core::Result<IKeyEnumerator> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).EnumerateKeyValues)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn GetRawValue<P0>(&self, kind: SymbolKind, name: P0, searchflags: u32) -> windows_core::Result<IModelObject>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRawValue)(windows_core::Interface::as_raw(self), kind, name.param().abi(), searchflags, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn EnumerateRawValues(&self, kind: SymbolKind, searchflags: u32) -> windows_core::Result<IRawEnumerator> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).EnumerateRawValues)(windows_core::Interface::as_raw(self), kind, searchflags, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn Dereference(&self) -> windows_core::Result<IModelObject> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).Dereference)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn TryCastToRuntimeType(&self) -> windows_core::Result<IModelObject> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).TryCastToRuntimeType)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn GetConcept(&self, conceptid: *const windows_core::GUID, conceptinterface: *mut Option<windows_core::IUnknown>, conceptmetadata: Option<*mut 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetLocation)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetTypeInfo(&self) -> windows_core::Result<IDebugHostType> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetTypeInfo)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn GetTargetInfo(&self, location: *mut Location, r#type: *mut 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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetNumberOfParentModels)(windows_core::Interface::as_raw(self), &mut result__).map(|| result__)
}
pub unsafe fn GetParentModel(&self, i: u64, model: *mut Option<IModelObject>, contextobject: *mut 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::Param<IModelObject>,
P1: windows_core::Param<IModelObject>,
{
(windows_core::Interface::vtable(self).AddParentModel)(windows_core::Interface::as_raw(self), model.param().abi(), contextobject.param().abi(), r#override).ok()
}
pub unsafe fn RemoveParentModel<P0>(&self, model: P0) -> windows_core::Result<()>
where
P0: windows_core::Param<IModelObject>,
{
(windows_core::Interface::vtable(self).RemoveParentModel)(windows_core::Interface::as_raw(self), model.param().abi()).ok()
}
pub unsafe fn GetKey<P0>(&self, key: P0, object: Option<*mut Option<IModelObject>>, metadata: Option<*mut Option<IKeyStore>>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).GetKey)(windows_core::Interface::as_raw(self), key.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: Option<*mut Option<IModelObject>>, metadata: Option<*mut Option<IKeyStore>>) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
{
(windows_core::Interface::vtable(self).GetKeyReference)(windows_core::Interface::as_raw(self), key.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::Param<windows_core::PCWSTR>,
P1: windows_core::Param<IModelObject>,
P2: windows_core::Param<IKeyStore>,
{
(windows_core::Interface::vtable(self).SetKey)(windows_core::Interface::as_raw(self), key.param().abi(), object.param().abi(), metadata.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__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).EnumerateKeys)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn EnumerateKeyReferences(&self) -> windows_core::Result<IKeyEnumerator> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).EnumerateKeyReferences)(windows_core::Interface::as_raw(self), &mut result__).and_then(|| windows_core::Type::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::Param<windows_core::IUnknown>,
P1: windows_core::Param<IKeyStore>,
{
(windows_core::Interface::vtable(self).SetConcept)(windows_core::Interface::as_raw(self), conceptid, conceptinterface.param().abi(), conceptmetadata.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::Param<windows_core::PCWSTR>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetRawReference)(windows_core::Interface::as_raw(self), kind, name.param().abi(), searchflags, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn EnumerateRawReferences(&self, kind: SymbolKind, searchflags: u32) -> windows_core::Result<IRawEnumerator> {
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).EnumerateRawReferences)(windows_core::Interface::as_raw(self), kind, searchflags, &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn SetContextForDataModel<P0, P1>(&self, datamodelobject: P0, context: P1) -> windows_core::Result<()>
where
P0: windows_core::Param<IModelObject>,
P1: windows_core::Param<windows_core::IUnknown>,
{
(windows_core::Interface::vtable(self).SetContextForDataModel)(windows_core::Interface::as_raw(self), datamodelobject.param().abi(), context.param().abi()).ok()
}
pub unsafe fn GetContextForDataModel<P0>(&self, datamodelobject: P0) -> windows_core::Result<windows_core::IUnknown>
where
P0: windows_core::Param<IModelObject>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetContextForDataModel)(windows_core::Interface::as_raw(self), datamodelobject.param().abi(), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn Compare<P0>(&self, other: P0, ppresult: Option<*mut Option<IModelObject>>) -> windows_core::Result<()>
where
P0: windows_core::Param<IModelObject>,
{
(windows_core::Interface::vtable(self).Compare)(windows_core::Interface::as_raw(self), other.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::Param<IModelObject>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).IsEqualTo)(windows_core::Interface::as_raw(self), other.param().abi(), &mut result__).map(|| result__)
}
}
#[repr(C)]
pub struct IModelObject_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetContext: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetKind: unsafe extern "system" fn(*mut core::ffi::c_void, *mut ModelObjectKind) -> windows_core::HRESULT,
pub GetIntrinsicValue: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::mem::MaybeUninit<windows_core::VARIANT>) -> windows_core::HRESULT,
#[cfg(feature = "Win32_System_Variant")]
pub GetIntrinsicValueAs: unsafe extern "system" fn(*mut core::ffi::c_void, super::super::super::Variant::VARENUM, *mut core::mem::MaybeUninit<windows_core::VARIANT>) -> windows_core::HRESULT,
#[cfg(not(feature = "Win32_System_Variant"))]
GetIntrinsicValueAs: usize,
pub GetKeyValue: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR, *mut *mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub SetKeyValue: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub EnumerateKeyValues: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetRawValue: unsafe extern "system" fn(*mut core::ffi::c_void, SymbolKind, windows_core::PCWSTR, u32, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub EnumerateRawValues: unsafe extern "system" fn(*mut core::ffi::c_void, SymbolKind, u32, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub Dereference: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub TryCastToRuntimeType: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetConcept: unsafe extern "system" fn(*mut core::ffi::c_void, *const windows_core::GUID, *mut *mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetLocation: unsafe extern "system" fn(*mut core::ffi::c_void, *mut Location) -> windows_core::HRESULT,
pub GetTypeInfo: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetTargetInfo: unsafe extern "system" fn(*mut core::ffi::c_void, *mut Location, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetNumberOfParentModels: unsafe extern "system" fn(*mut core::ffi::c_void, *mut u64) -> windows_core::HRESULT,
pub GetParentModel: unsafe extern "system" fn(*mut core::ffi::c_void, u64, *mut *mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub AddParentModel: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, *mut core::ffi::c_void, u8) -> windows_core::HRESULT,
pub RemoveParentModel: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetKey: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR, *mut *mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetKeyReference: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR, *mut *mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub SetKey: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR, *mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub ClearKeys: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub EnumerateKeys: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub EnumerateKeyReferences: unsafe extern "system" fn(*mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub SetConcept: unsafe extern "system" fn(*mut core::ffi::c_void, *const windows_core::GUID, *mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub ClearConcepts: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetRawReference: unsafe extern "system" fn(*mut core::ffi::c_void, SymbolKind, windows_core::PCWSTR, u32, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub EnumerateRawReferences: unsafe extern "system" fn(*mut core::ffi::c_void, SymbolKind, u32, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub SetContextForDataModel: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetContextForDataModel: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub Compare: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub IsEqualTo: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, *mut bool) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IModelPropertyAccessor, IModelPropertyAccessor_Vtbl, 0x5a0c63d9_0526_42b8_960c_9516a3254c85);
impl core::ops::Deref for IModelPropertyAccessor {
type Target = windows_core::IUnknown;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(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::Param<windows_core::PCWSTR>,
P1: windows_core::Param<IModelObject>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).GetValue)(windows_core::Interface::as_raw(self), key.param().abi(), contextobject.param().abi(), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
pub unsafe fn SetValue<P0, P1, P2>(&self, key: P0, contextobject: P1, value: P2) -> windows_core::Result<()>
where
P0: windows_core::Param<windows_core::PCWSTR>,
P1: windows_core::Param<IModelObject>,
P2: windows_core::Param<IModelObject>,
{
(windows_core::Interface::vtable(self).SetValue)(windows_core::Interface::as_raw(self), key.param().abi(), contextobject.param().abi(), value.param().abi()).ok()
}
}
#[repr(C)]
pub struct IModelPropertyAccessor_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub GetValue: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR, *mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
pub SetValue: unsafe extern "system" fn(*mut core::ffi::c_void, windows_core::PCWSTR, *mut core::ffi::c_void, *mut core::ffi::c_void) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IPreferredRuntimeTypeConcept, IPreferredRuntimeTypeConcept_Vtbl, 0x9d6c1d7b_a76f_4618_8068_5f76bd9a4e8a);
impl core::ops::Deref for IPreferredRuntimeTypeConcept {
type Target = windows_core::IUnknown;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(IPreferredRuntimeTypeConcept, windows_core::IUnknown);
impl IPreferredRuntimeTypeConcept {
pub unsafe fn CastToPreferredRuntimeType<P0>(&self, contextobject: P0) -> windows_core::Result<IModelObject>
where
P0: windows_core::Param<IModelObject>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).CastToPreferredRuntimeType)(windows_core::Interface::as_raw(self), contextobject.param().abi(), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
#[repr(C)]
pub struct IPreferredRuntimeTypeConcept_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub CastToPreferredRuntimeType: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IRawEnumerator, IRawEnumerator_Vtbl, 0xe13613f9_3a3c_40b5_8f48_1e5ebfb9b21b);
impl core::ops::Deref for IRawEnumerator {
type Target = windows_core::IUnknown;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(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: Option<*mut windows_core::BSTR>, kind: Option<*mut SymbolKind>, value: Option<*mut 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()
}
}
#[repr(C)]
pub struct IRawEnumerator_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub Reset: unsafe extern "system" fn(*mut core::ffi::c_void) -> windows_core::HRESULT,
pub GetNext: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::mem::MaybeUninit<windows_core::BSTR>, *mut SymbolKind, *mut *mut core::ffi::c_void) -> windows_core::HRESULT,
}
windows_core::imp::define_interface!(IStringDisplayableConcept, IStringDisplayableConcept_Vtbl, 0xd28e8d70_6c00_4205_940d_501016601ea3);
impl core::ops::Deref for IStringDisplayableConcept {
type Target = windows_core::IUnknown;
fn deref(&self) -> &Self::Target {
unsafe { core::mem::transmute(self) }
}
}
windows_core::imp::interface_hierarchy!(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::Param<IModelObject>,
P1: windows_core::Param<IKeyStore>,
{
let mut result__ = core::mem::zeroed();
(windows_core::Interface::vtable(self).ToDisplayString)(windows_core::Interface::as_raw(self), contextobject.param().abi(), metadata.param().abi(), &mut result__).and_then(|| windows_core::Type::from_abi(result__))
}
}
#[repr(C)]
pub struct IStringDisplayableConcept_Vtbl {
pub base__: windows_core::IUnknown_Vtbl,
pub ToDisplayString: unsafe extern "system" fn(*mut core::ffi::c_void, *mut core::ffi::c_void, *mut core::ffi::c_void, *mut core::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(PartialEq, Eq, Copy, Clone, Default)]
pub struct CallingConventionKind(pub i32);
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(PartialEq, Eq, Copy, Clone, Default)]
pub struct DBGKD_MAJOR_TYPES(pub i32);
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(PartialEq, Eq, Copy, Clone, Default)]
pub struct DEBUG_FAILURE_TYPE(pub i32);
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(PartialEq, Eq, Copy, Clone, Default)]
pub struct DEBUG_FLR_PARAM_TYPE(pub i32);
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(PartialEq, Eq, Copy, Clone, Default)]
pub struct DEBUG_POOL_REGION(pub i32);
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(PartialEq, Eq, Copy, Clone, Default)]
pub struct EXT_TDOP(pub i32);
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(PartialEq, Eq, Copy, Clone, Default)]
pub struct ErrorClass(pub i32);
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(PartialEq, Eq, Copy, Clone, Default)]
pub struct FA_ENTRY_TYPE(pub i32);
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(PartialEq, Eq, Copy, Clone, Default)]
pub struct FA_EXTENSION_PLUGIN_PHASE(pub i32);
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(PartialEq, Eq, Copy, Clone, Default)]
pub struct IntrinsicKind(pub i32);
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(PartialEq, Eq, Copy, Clone, Default)]
pub struct LanguageKind(pub i32);
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(PartialEq, Eq, Copy, Clone, Default)]
pub struct LocationKind(pub i32);
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(PartialEq, Eq, Copy, Clone, Default)]
pub struct ModelObjectKind(pub i32);
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(PartialEq, Eq, Copy, Clone, Default)]
pub struct OS_TYPE(pub i32);
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(PartialEq, Eq, Copy, Clone, Default)]
pub struct PointerKind(pub i32);
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(PartialEq, Eq, Copy, Clone, Default)]
pub struct PreferredFormat(pub i32);
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(PartialEq, Eq, Copy, Clone, Default)]
pub struct RawSearchFlags(pub i32);
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(PartialEq, Eq, Copy, Clone, Default)]
pub struct ScriptChangeKind(pub i32);
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(PartialEq, Eq, Copy, Clone, Default)]
pub struct ScriptDebugEvent(pub i32);
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(PartialEq, Eq, Copy, Clone, Default)]
pub struct ScriptDebugEventFilter(pub i32);
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(PartialEq, Eq, Copy, Clone, Default)]
pub struct ScriptDebugState(pub i32);
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(PartialEq, Eq, Copy, Clone, Default)]
pub struct ScriptExecutionKind(pub i32);
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(PartialEq, Eq, Copy, Clone, Default)]
pub struct SignatureComparison(pub i32);
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(PartialEq, Eq, Copy, Clone, Default)]
pub struct SymbolKind(pub i32);
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(PartialEq, Eq, Copy, Clone, Default)]
pub struct SymbolSearchOptions(pub i32);
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(PartialEq, Eq, Copy, Clone, Default)]
pub struct TANALYZE_RETURN(pub i32);
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(PartialEq, Eq, Copy, Clone, Default)]
pub struct TypeKind(pub i32);
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(PartialEq, Eq, Copy, Clone, Default)]
pub struct VarArgsKind(pub i32);
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)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub struct ArrayDimension {
pub LowerBound: i64,
pub Length: u64,
pub Stride: u64,
}
impl windows_core::TypeKind for ArrayDimension {
type TypeKind = windows_core::CopyType;
}
impl Default for ArrayDimension {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
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 windows_core::TypeKind for BUSDATA {
type TypeKind = windows_core::CopyType;
}
impl Default for BUSDATA {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub struct CKCL_DATA {
pub NextLogEvent: *mut core::ffi::c_void,
pub TAnalyzeString: windows_core::PSTR,
pub TAnalyzeReturnType: TANALYZE_RETURN,
}
impl windows_core::TypeKind for CKCL_DATA {
type TypeKind = windows_core::CopyType;
}
impl Default for CKCL_DATA {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub struct CKCL_LISTHEAD {
pub LogEventListHead: *mut CKCL_DATA,
pub Heap: super::super::super::super::Foundation::HANDLE,
}
impl windows_core::TypeKind for CKCL_LISTHEAD {
type TypeKind = windows_core::CopyType;
}
impl Default for CKCL_LISTHEAD {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy)]
pub struct CPU_INFO {
pub Type: u32,
pub NumCPUs: u32,
pub CurrentProc: u32,
pub ProcInfo: [DEBUG_PROCESSOR_IDENTIFICATION_ALL; 2048],
pub Mhz: u32,
}
impl windows_core::TypeKind for CPU_INFO {
type TypeKind = windows_core::CopyType;
}
impl Default for CPU_INFO {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy)]
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 windows_core::TypeKind for CPU_INFO_v1 {
type TypeKind = windows_core::CopyType;
}
impl Default for CPU_INFO_v1 {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy)]
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 windows_core::TypeKind for CPU_INFO_v2 {
type TypeKind = windows_core::CopyType;
}
impl Default for CPU_INFO_v2 {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[cfg(feature = "Win32_System_Kernel")]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
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 windows_core::TypeKind for DBGKD_DEBUG_DATA_HEADER32 {
type TypeKind = windows_core::CopyType;
}
#[cfg(feature = "Win32_System_Kernel")]
impl Default for DBGKD_DEBUG_DATA_HEADER32 {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[cfg(feature = "Win32_System_Kernel")]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
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 windows_core::TypeKind for DBGKD_DEBUG_DATA_HEADER64 {
type TypeKind = windows_core::CopyType;
}
#[cfg(feature = "Win32_System_Kernel")]
impl Default for DBGKD_DEBUG_DATA_HEADER64 {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
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 windows_core::TypeKind for DBGKD_GET_VERSION32 {
type TypeKind = windows_core::CopyType;
}
impl Default for DBGKD_GET_VERSION32 {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
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 windows_core::TypeKind for DBGKD_GET_VERSION64 {
type TypeKind = windows_core::CopyType;
}
impl Default for DBGKD_GET_VERSION64 {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
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: [i8; 100],
pub SymName: [i8; 100],
}
impl windows_core::TypeKind for DBG_THREAD_ATTRIBUTES {
type TypeKind = windows_core::CopyType;
}
impl Default for DBG_THREAD_ATTRIBUTES {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
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: [i8; 32],
pub Manufacturer: [i8; 64],
pub Name: [i8; 64],
pub Version: [i8; 64],
pub Description: [i8; 64],
}
impl windows_core::TypeKind for DEBUG_ANALYSIS_PROCESSOR_INFO {
type TypeKind = windows_core::CopyType;
}
impl Default for DEBUG_ANALYSIS_PROCESSOR_INFO {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
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 windows_core::TypeKind for DEBUG_BREAKPOINT_PARAMETERS {
type TypeKind = windows_core::CopyType;
}
impl Default for DEBUG_BREAKPOINT_PARAMETERS {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub struct DEBUG_CACHED_SYMBOL_INFO {
pub ModBase: u64,
pub Arg1: u64,
pub Arg2: u64,
pub Id: u32,
pub Arg3: u32,
}
impl windows_core::TypeKind for DEBUG_CACHED_SYMBOL_INFO {
type TypeKind = windows_core::CopyType;
}
impl Default for DEBUG_CACHED_SYMBOL_INFO {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub struct DEBUG_CLIENT_CONTEXT {
pub cbSize: u32,
pub eClient: u32,
}
impl windows_core::TypeKind for DEBUG_CLIENT_CONTEXT {
type TypeKind = windows_core::CopyType;
}
impl Default for DEBUG_CLIENT_CONTEXT {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
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 windows_core::TypeKind for DEBUG_CPU_MICROCODE_VERSION {
type TypeKind = windows_core::CopyType;
}
impl Default for DEBUG_CPU_MICROCODE_VERSION {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub struct DEBUG_CPU_SPEED_INFO {
pub SizeOfStruct: u32,
pub CurrentSpeed: u32,
pub RatedSpeed: u32,
pub NameString: [u16; 256],
}
impl windows_core::TypeKind for DEBUG_CPU_SPEED_INFO {
type TypeKind = windows_core::CopyType;
}
impl Default for DEBUG_CPU_SPEED_INFO {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub struct DEBUG_CREATE_PROCESS_OPTIONS {
pub CreateFlags: u32,
pub EngCreateFlags: u32,
pub VerifierFlags: u32,
pub Reserved: u32,
}
impl windows_core::TypeKind for DEBUG_CREATE_PROCESS_OPTIONS {
type TypeKind = windows_core::CopyType;
}
impl Default for DEBUG_CREATE_PROCESS_OPTIONS {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub struct DEBUG_DECODE_ERROR {
pub SizeOfStruct: u32,
pub Code: u32,
pub TreatAsStatus: super::super::super::super::Foundation::BOOL,
pub Source: [i8; 64],
pub Message: [i8; 260],
}
impl windows_core::TypeKind for DEBUG_DECODE_ERROR {
type TypeKind = windows_core::CopyType;
}
impl Default for DEBUG_DECODE_ERROR {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
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,
}
impl windows_core::TypeKind for DEBUG_DEVICE_OBJECT_INFO {
type TypeKind = windows_core::CopyType;
}
impl Default for DEBUG_DEVICE_OBJECT_INFO {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
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 windows_core::TypeKind for DEBUG_DRIVER_OBJECT_INFO {
type TypeKind = windows_core::CopyType;
}
impl Default for DEBUG_DRIVER_OBJECT_INFO {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub struct DEBUG_DRIVER_OBJECT_INFO_0 {
pub Length: u16,
pub MaximumLength: u16,
pub Buffer: u64,
}
impl windows_core::TypeKind for DEBUG_DRIVER_OBJECT_INFO_0 {
type TypeKind = windows_core::CopyType;
}
impl Default for DEBUG_DRIVER_OBJECT_INFO_0 {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub struct DEBUG_EVENT_CONTEXT {
pub Size: u32,
pub ProcessEngineId: u32,
pub ThreadEngineId: u32,
pub FrameEngineId: u32,
}
impl windows_core::TypeKind for DEBUG_EVENT_CONTEXT {
type TypeKind = windows_core::CopyType;
}
impl Default for DEBUG_EVENT_CONTEXT {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
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 windows_core::TypeKind for DEBUG_EXCEPTION_FILTER_PARAMETERS {
type TypeKind = windows_core::CopyType;
}
impl Default for DEBUG_EXCEPTION_FILTER_PARAMETERS {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub struct DEBUG_GET_TEXT_COMPLETIONS_IN {
pub Flags: u32,
pub MatchCountLimit: u32,
pub Reserved: [u64; 3],
}
impl windows_core::TypeKind for DEBUG_GET_TEXT_COMPLETIONS_IN {
type TypeKind = windows_core::CopyType;
}
impl Default for DEBUG_GET_TEXT_COMPLETIONS_IN {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub struct DEBUG_GET_TEXT_COMPLETIONS_OUT {
pub Flags: u32,
pub ReplaceIndex: u32,
pub MatchCount: u32,
pub Reserved1: u32,
pub Reserved2: [u64; 2],
}
impl windows_core::TypeKind for DEBUG_GET_TEXT_COMPLETIONS_OUT {
type TypeKind = windows_core::CopyType;
}
impl Default for DEBUG_GET_TEXT_COMPLETIONS_OUT {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
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 windows_core::TypeKind for DEBUG_HANDLE_DATA_BASIC {
type TypeKind = windows_core::CopyType;
}
impl Default for DEBUG_HANDLE_DATA_BASIC {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
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 windows_core::TypeKind for DEBUG_IRP_INFO {
type TypeKind = windows_core::CopyType;
}
impl Default for DEBUG_IRP_INFO {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
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 windows_core::TypeKind for DEBUG_IRP_STACK_INFO {
type TypeKind = windows_core::CopyType;
}
impl Default for DEBUG_IRP_STACK_INFO {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub struct DEBUG_LAST_EVENT_INFO_BREAKPOINT {
pub Id: u32,
}
impl windows_core::TypeKind for DEBUG_LAST_EVENT_INFO_BREAKPOINT {
type TypeKind = windows_core::CopyType;
}
impl Default for DEBUG_LAST_EVENT_INFO_BREAKPOINT {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub struct DEBUG_LAST_EVENT_INFO_EXCEPTION {
pub ExceptionRecord: super::EXCEPTION_RECORD64,
pub FirstChance: u32,
}
impl windows_core::TypeKind for DEBUG_LAST_EVENT_INFO_EXCEPTION {
type TypeKind = windows_core::CopyType;
}
impl Default for DEBUG_LAST_EVENT_INFO_EXCEPTION {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub struct DEBUG_LAST_EVENT_INFO_EXIT_PROCESS {
pub ExitCode: u32,
}
impl windows_core::TypeKind for DEBUG_LAST_EVENT_INFO_EXIT_PROCESS {
type TypeKind = windows_core::CopyType;
}
impl Default for DEBUG_LAST_EVENT_INFO_EXIT_PROCESS {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub struct DEBUG_LAST_EVENT_INFO_EXIT_THREAD {
pub ExitCode: u32,
}
impl windows_core::TypeKind for DEBUG_LAST_EVENT_INFO_EXIT_THREAD {
type TypeKind = windows_core::CopyType;
}
impl Default for DEBUG_LAST_EVENT_INFO_EXIT_THREAD {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub struct DEBUG_LAST_EVENT_INFO_LOAD_MODULE {
pub Base: u64,
}
impl windows_core::TypeKind for DEBUG_LAST_EVENT_INFO_LOAD_MODULE {
type TypeKind = windows_core::CopyType;
}
impl Default for DEBUG_LAST_EVENT_INFO_LOAD_MODULE {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub struct DEBUG_LAST_EVENT_INFO_SERVICE_EXCEPTION {
pub Kind: u32,
pub DataSize: u32,
pub Address: u64,
}
impl windows_core::TypeKind for DEBUG_LAST_EVENT_INFO_SERVICE_EXCEPTION {
type TypeKind = windows_core::CopyType;
}
impl Default for DEBUG_LAST_EVENT_INFO_SERVICE_EXCEPTION {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub struct DEBUG_LAST_EVENT_INFO_SYSTEM_ERROR {
pub Error: u32,
pub Level: u32,
}
impl windows_core::TypeKind for DEBUG_LAST_EVENT_INFO_SYSTEM_ERROR {
type TypeKind = windows_core::CopyType;
}
impl Default for DEBUG_LAST_EVENT_INFO_SYSTEM_ERROR {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub struct DEBUG_LAST_EVENT_INFO_UNLOAD_MODULE {
pub Base: u64,
}
impl windows_core::TypeKind for DEBUG_LAST_EVENT_INFO_UNLOAD_MODULE {
type TypeKind = windows_core::CopyType;
}
impl Default for DEBUG_LAST_EVENT_INFO_UNLOAD_MODULE {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub struct DEBUG_MODULE_AND_ID {
pub ModuleBase: u64,
pub Id: u64,
}
impl windows_core::TypeKind for DEBUG_MODULE_AND_ID {
type TypeKind = windows_core::CopyType;
}
impl Default for DEBUG_MODULE_AND_ID {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
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 windows_core::TypeKind for DEBUG_MODULE_PARAMETERS {
type TypeKind = windows_core::CopyType;
}
impl Default for DEBUG_MODULE_PARAMETERS {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub struct DEBUG_OFFSET_REGION {
pub Base: u64,
pub Size: u64,
}
impl windows_core::TypeKind for DEBUG_OFFSET_REGION {
type TypeKind = windows_core::CopyType;
}
impl Default for DEBUG_OFFSET_REGION {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
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 windows_core::TypeKind for DEBUG_PNP_TRIAGE_INFO {
type TypeKind = windows_core::CopyType;
}
impl Default for DEBUG_PNP_TRIAGE_INFO {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub struct DEBUG_POOLTAG_DESCRIPTION {
pub SizeOfStruct: u32,
pub PoolTag: u32,
pub Description: [i8; 260],
pub Binary: [i8; 32],
pub Owner: [i8; 32],
}
impl windows_core::TypeKind for DEBUG_POOLTAG_DESCRIPTION {
type TypeKind = windows_core::CopyType;
}
impl Default for DEBUG_POOLTAG_DESCRIPTION {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy)]
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: [i8; 64],
}
impl windows_core::TypeKind for DEBUG_POOL_DATA {
type TypeKind = windows_core::CopyType;
}
impl Default for DEBUG_POOL_DATA {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy)]
pub union DEBUG_POOL_DATA_0 {
pub Anonymous: DEBUG_POOL_DATA_0_0,
pub AsUlong: u32,
}
impl windows_core::TypeKind for DEBUG_POOL_DATA_0 {
type TypeKind = windows_core::CopyType;
}
impl Default for DEBUG_POOL_DATA_0 {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub struct DEBUG_POOL_DATA_0_0 {
pub _bitfield: u32,
}
impl windows_core::TypeKind for DEBUG_POOL_DATA_0_0 {
type TypeKind = windows_core::CopyType;
}
impl Default for DEBUG_POOL_DATA_0_0 {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy)]
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 windows_core::TypeKind for DEBUG_PROCESSOR_IDENTIFICATION_ALL {
type TypeKind = windows_core::CopyType;
}
impl Default for DEBUG_PROCESSOR_IDENTIFICATION_ALL {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub struct DEBUG_PROCESSOR_IDENTIFICATION_ALPHA {
pub Type: u32,
pub Revision: u32,
}
impl windows_core::TypeKind for DEBUG_PROCESSOR_IDENTIFICATION_ALPHA {
type TypeKind = windows_core::CopyType;
}
impl Default for DEBUG_PROCESSOR_IDENTIFICATION_ALPHA {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub struct DEBUG_PROCESSOR_IDENTIFICATION_AMD64 {
pub Family: u32,
pub Model: u32,
pub Stepping: u32,
pub VendorString: [i8; 16],
}
impl windows_core::TypeKind for DEBUG_PROCESSOR_IDENTIFICATION_AMD64 {
type TypeKind = windows_core::CopyType;
}
impl Default for DEBUG_PROCESSOR_IDENTIFICATION_AMD64 {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub struct DEBUG_PROCESSOR_IDENTIFICATION_ARM {
pub Model: u32,
pub Revision: u32,
pub VendorString: [i8; 16],
}
impl windows_core::TypeKind for DEBUG_PROCESSOR_IDENTIFICATION_ARM {
type TypeKind = windows_core::CopyType;
}
impl Default for DEBUG_PROCESSOR_IDENTIFICATION_ARM {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub struct DEBUG_PROCESSOR_IDENTIFICATION_ARM64 {
pub Model: u32,
pub Revision: u32,
pub VendorString: [i8; 16],
}
impl windows_core::TypeKind for DEBUG_PROCESSOR_IDENTIFICATION_ARM64 {
type TypeKind = windows_core::CopyType;
}
impl Default for DEBUG_PROCESSOR_IDENTIFICATION_ARM64 {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub struct DEBUG_PROCESSOR_IDENTIFICATION_IA64 {
pub Model: u32,
pub Revision: u32,
pub Family: u32,
pub ArchRev: u32,
pub VendorString: [i8; 16],
}
impl windows_core::TypeKind for DEBUG_PROCESSOR_IDENTIFICATION_IA64 {
type TypeKind = windows_core::CopyType;
}
impl Default for DEBUG_PROCESSOR_IDENTIFICATION_IA64 {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub struct DEBUG_PROCESSOR_IDENTIFICATION_X86 {
pub Family: u32,
pub Model: u32,
pub Stepping: u32,
pub VendorString: [i8; 16],
}
impl windows_core::TypeKind for DEBUG_PROCESSOR_IDENTIFICATION_X86 {
type TypeKind = windows_core::CopyType;
}
impl Default for DEBUG_PROCESSOR_IDENTIFICATION_X86 {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
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 windows_core::TypeKind for DEBUG_READ_USER_MINIDUMP_STREAM {
type TypeKind = windows_core::CopyType;
}
impl Default for DEBUG_READ_USER_MINIDUMP_STREAM {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
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 windows_core::TypeKind for DEBUG_REGISTER_DESCRIPTION {
type TypeKind = windows_core::CopyType;
}
impl Default for DEBUG_REGISTER_DESCRIPTION {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
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: [i8; 64],
pub BaseBoardProduct: [i8; 64],
pub BaseBoardVersion: [i8; 64],
pub BiosReleaseDate: [i8; 64],
pub BiosVendor: [i8; 64],
pub BiosVersion: [i8; 64],
pub SystemFamily: [i8; 64],
pub SystemManufacturer: [i8; 64],
pub SystemProductName: [i8; 64],
pub SystemSKU: [i8; 64],
pub SystemVersion: [i8; 64],
}
impl windows_core::TypeKind for DEBUG_SMBIOS_INFO {
type TypeKind = windows_core::CopyType;
}
impl Default for DEBUG_SMBIOS_INFO {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub struct DEBUG_SPECIFIC_FILTER_PARAMETERS {
pub ExecutionOption: u32,
pub ContinueOption: u32,
pub TextSize: u32,
pub CommandSize: u32,
pub ArgumentSize: u32,
}
impl windows_core::TypeKind for DEBUG_SPECIFIC_FILTER_PARAMETERS {
type TypeKind = windows_core::CopyType;
}
impl Default for DEBUG_SPECIFIC_FILTER_PARAMETERS {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
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,
}
impl windows_core::TypeKind for DEBUG_STACK_FRAME {
type TypeKind = windows_core::CopyType;
}
impl Default for DEBUG_STACK_FRAME {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
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,
}
impl windows_core::TypeKind for DEBUG_STACK_FRAME_EX {
type TypeKind = windows_core::CopyType;
}
impl Default for DEBUG_STACK_FRAME_EX {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
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 windows_core::TypeKind for DEBUG_SYMBOL_ENTRY {
type TypeKind = windows_core::CopyType;
}
impl Default for DEBUG_SYMBOL_ENTRY {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub struct DEBUG_SYMBOL_PARAMETERS {
pub Module: u64,
pub TypeId: u32,
pub ParentSymbol: u32,
pub SubElements: u32,
pub Flags: u32,
pub Reserved: u64,
}
impl windows_core::TypeKind for DEBUG_SYMBOL_PARAMETERS {
type TypeKind = windows_core::CopyType;
}
impl Default for DEBUG_SYMBOL_PARAMETERS {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
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 windows_core::TypeKind for DEBUG_SYMBOL_SOURCE_ENTRY {
type TypeKind = windows_core::CopyType;
}
impl Default for DEBUG_SYMBOL_SOURCE_ENTRY {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
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 windows_core::TypeKind for DEBUG_THREAD_BASIC_INFORMATION {
type TypeKind = windows_core::CopyType;
}
impl Default for DEBUG_THREAD_BASIC_INFORMATION {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub struct DEBUG_TRIAGE_FOLLOWUP_INFO {
pub SizeOfStruct: u32,
pub OwnerNameSize: u32,
pub OwnerName: windows_core::PSTR,
}
impl windows_core::TypeKind for DEBUG_TRIAGE_FOLLOWUP_INFO {
type TypeKind = windows_core::CopyType;
}
impl Default for DEBUG_TRIAGE_FOLLOWUP_INFO {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
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 windows_core::TypeKind for DEBUG_TRIAGE_FOLLOWUP_INFO_2 {
type TypeKind = windows_core::CopyType;
}
impl Default for DEBUG_TRIAGE_FOLLOWUP_INFO_2 {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
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 windows_core::TypeKind for DEBUG_TYPED_DATA {
type TypeKind = windows_core::CopyType;
}
impl Default for DEBUG_TYPED_DATA {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy)]
pub struct DEBUG_VALUE {
pub Anonymous: DEBUG_VALUE_0,
pub TailOfRawBytes: u32,
pub Type: u32,
}
impl windows_core::TypeKind for DEBUG_VALUE {
type TypeKind = windows_core::CopyType;
}
impl Default for DEBUG_VALUE {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy)]
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],
}
impl windows_core::TypeKind for DEBUG_VALUE_0 {
type TypeKind = windows_core::CopyType;
}
impl Default for DEBUG_VALUE_0 {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub struct DEBUG_VALUE_0_0 {
pub I64: u64,
pub Nat: super::super::super::super::Foundation::BOOL,
}
impl windows_core::TypeKind for DEBUG_VALUE_0_0 {
type TypeKind = windows_core::CopyType;
}
impl Default for DEBUG_VALUE_0_0 {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub struct DEBUG_VALUE_0_1 {
pub LowPart: u64,
pub HighPart: i64,
}
impl windows_core::TypeKind for DEBUG_VALUE_0_1 {
type TypeKind = windows_core::CopyType;
}
impl Default for DEBUG_VALUE_0_1 {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub struct DEBUG_VALUE_0_2 {
pub LowPart: u32,
pub HighPart: u32,
}
impl windows_core::TypeKind for DEBUG_VALUE_0_2 {
type TypeKind = windows_core::CopyType;
}
impl Default for DEBUG_VALUE_0_2 {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub struct EXTSTACKTRACE {
pub FramePointer: u32,
pub ProgramCounter: u32,
pub ReturnAddress: u32,
pub Args: [u32; 4],
}
impl windows_core::TypeKind for EXTSTACKTRACE {
type TypeKind = windows_core::CopyType;
}
impl Default for EXTSTACKTRACE {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub struct EXTSTACKTRACE32 {
pub FramePointer: u32,
pub ProgramCounter: u32,
pub ReturnAddress: u32,
pub Args: [u32; 4],
}
impl windows_core::TypeKind for EXTSTACKTRACE32 {
type TypeKind = windows_core::CopyType;
}
impl Default for EXTSTACKTRACE32 {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub struct EXTSTACKTRACE64 {
pub FramePointer: u64,
pub ProgramCounter: u64,
pub ReturnAddress: u64,
pub Args: [u64; 4],
}
impl windows_core::TypeKind for EXTSTACKTRACE64 {
type TypeKind = windows_core::CopyType;
}
impl Default for EXTSTACKTRACE64 {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub struct EXT_API_VERSION {
pub MajorVersion: u16,
pub MinorVersion: u16,
pub Revision: u16,
pub Reserved: u16,
}
impl windows_core::TypeKind for EXT_API_VERSION {
type TypeKind = windows_core::CopyType;
}
impl Default for EXT_API_VERSION {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
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 windows_core::TypeKind for EXT_CAB_XML_DATA {
type TypeKind = windows_core::CopyType;
}
impl Default for EXT_CAB_XML_DATA {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
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 windows_core::TypeKind for EXT_CAB_XML_DATA_0 {
type TypeKind = windows_core::CopyType;
}
impl Default for EXT_CAB_XML_DATA_0 {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
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,
}
impl windows_core::TypeKind for EXT_FIND_FILE {
type TypeKind = windows_core::CopyType;
}
impl Default for EXT_FIND_FILE {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub struct EXT_MATCH_PATTERN_A {
pub Str: windows_core::PCSTR,
pub Pattern: windows_core::PCSTR,
pub CaseSensitive: u32,
}
impl windows_core::TypeKind for EXT_MATCH_PATTERN_A {
type TypeKind = windows_core::CopyType;
}
impl Default for EXT_MATCH_PATTERN_A {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
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 windows_core::TypeKind for EXT_TYPED_DATA {
type TypeKind = windows_core::CopyType;
}
impl Default for EXT_TYPED_DATA {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub struct FA_ENTRY {
pub Tag: DEBUG_FLR_PARAM_TYPE,
pub FullSize: u16,
pub DataSize: u16,
}
impl windows_core::TypeKind for FA_ENTRY {
type TypeKind = windows_core::CopyType;
}
impl Default for FA_ENTRY {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy)]
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 windows_core::TypeKind for FIELD_INFO {
type TypeKind = windows_core::CopyType;
}
impl Default for FIELD_INFO {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy)]
pub union FIELD_INFO_0 {
pub fieldCallBack: *mut core::ffi::c_void,
pub pBuffer: *mut core::ffi::c_void,
}
impl windows_core::TypeKind for FIELD_INFO_0 {
type TypeKind = windows_core::CopyType;
}
impl Default for FIELD_INFO_0 {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub struct FIELD_INFO_1 {
pub Position: u16,
pub Size: u16,
}
impl windows_core::TypeKind for FIELD_INFO_1 {
type TypeKind = windows_core::CopyType;
}
impl Default for FIELD_INFO_1 {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub struct GET_CONTEXT_EX {
pub Status: u32,
pub ContextSize: u32,
pub pContext: *mut core::ffi::c_void,
}
impl windows_core::TypeKind for GET_CONTEXT_EX {
type TypeKind = windows_core::CopyType;
}
impl Default for GET_CONTEXT_EX {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub struct GET_CURRENT_PROCESS_ADDRESS {
pub Processor: u32,
pub CurrentThread: u64,
pub Address: u64,
}
impl windows_core::TypeKind for GET_CURRENT_PROCESS_ADDRESS {
type TypeKind = windows_core::CopyType;
}
impl Default for GET_CURRENT_PROCESS_ADDRESS {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub struct GET_CURRENT_THREAD_ADDRESS {
pub Processor: u32,
pub Address: u64,
}
impl windows_core::TypeKind for GET_CURRENT_THREAD_ADDRESS {
type TypeKind = windows_core::CopyType;
}
impl Default for GET_CURRENT_THREAD_ADDRESS {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub struct GET_EXPRESSION_EX {
pub Expression: windows_core::PCSTR,
pub Remainder: windows_core::PCSTR,
pub Value: u64,
}
impl windows_core::TypeKind for GET_EXPRESSION_EX {
type TypeKind = windows_core::CopyType;
}
impl Default for GET_EXPRESSION_EX {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub struct GET_INPUT_LINE {
pub Prompt: windows_core::PCSTR,
pub Buffer: windows_core::PSTR,
pub BufferSize: u32,
pub InputSize: u32,
}
impl windows_core::TypeKind for GET_INPUT_LINE {
type TypeKind = windows_core::CopyType;
}
impl Default for GET_INPUT_LINE {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub struct GET_PEB_ADDRESS {
pub CurrentThread: u64,
pub Address: u64,
}
impl windows_core::TypeKind for GET_PEB_ADDRESS {
type TypeKind = windows_core::CopyType;
}
impl Default for GET_PEB_ADDRESS {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub struct GET_SET_SYMPATH {
pub Args: windows_core::PCSTR,
pub Result: windows_core::PSTR,
pub Length: i32,
}
impl windows_core::TypeKind for GET_SET_SYMPATH {
type TypeKind = windows_core::CopyType;
}
impl Default for GET_SET_SYMPATH {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub struct GET_TEB_ADDRESS {
pub Address: u64,
}
impl windows_core::TypeKind for GET_TEB_ADDRESS {
type TypeKind = windows_core::CopyType;
}
impl Default for GET_TEB_ADDRESS {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy)]
pub union INLINE_FRAME_CONTEXT {
pub ContextValue: u32,
pub Anonymous: INLINE_FRAME_CONTEXT_0,
}
impl windows_core::TypeKind for INLINE_FRAME_CONTEXT {
type TypeKind = windows_core::CopyType;
}
impl Default for INLINE_FRAME_CONTEXT {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub struct INLINE_FRAME_CONTEXT_0 {
pub FrameId: u8,
pub FrameType: u8,
pub FrameSignature: u16,
}
impl windows_core::TypeKind for INLINE_FRAME_CONTEXT_0 {
type TypeKind = windows_core::CopyType;
}
impl Default for INLINE_FRAME_CONTEXT_0 {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub struct IOSPACE {
pub Address: u32,
pub Length: u32,
pub Data: u32,
}
impl windows_core::TypeKind for IOSPACE {
type TypeKind = windows_core::CopyType;
}
impl Default for IOSPACE {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub struct IOSPACE32 {
pub Address: u32,
pub Length: u32,
pub Data: u32,
}
impl windows_core::TypeKind for IOSPACE32 {
type TypeKind = windows_core::CopyType;
}
impl Default for IOSPACE32 {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub struct IOSPACE64 {
pub Address: u64,
pub Length: u32,
pub Data: u32,
}
impl windows_core::TypeKind for IOSPACE64 {
type TypeKind = windows_core::CopyType;
}
impl Default for IOSPACE64 {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub struct IOSPACE_EX {
pub Address: u32,
pub Length: u32,
pub Data: u32,
pub InterfaceType: u32,
pub BusNumber: u32,
pub AddressSpace: u32,
}
impl windows_core::TypeKind for IOSPACE_EX {
type TypeKind = windows_core::CopyType;
}
impl Default for IOSPACE_EX {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub struct IOSPACE_EX32 {
pub Address: u32,
pub Length: u32,
pub Data: u32,
pub InterfaceType: u32,
pub BusNumber: u32,
pub AddressSpace: u32,
}
impl windows_core::TypeKind for IOSPACE_EX32 {
type TypeKind = windows_core::CopyType;
}
impl Default for IOSPACE_EX32 {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub struct IOSPACE_EX64 {
pub Address: u64,
pub Length: u32,
pub Data: u32,
pub InterfaceType: u32,
pub BusNumber: u32,
pub AddressSpace: u32,
}
impl windows_core::TypeKind for IOSPACE_EX64 {
type TypeKind = windows_core::CopyType;
}
impl Default for IOSPACE_EX64 {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[cfg(feature = "Win32_System_Kernel")]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
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 windows_core::TypeKind for KDDEBUGGER_DATA32 {
type TypeKind = windows_core::CopyType;
}
#[cfg(feature = "Win32_System_Kernel")]
impl Default for KDDEBUGGER_DATA32 {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[cfg(feature = "Win32_System_Kernel")]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
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 windows_core::TypeKind for KDDEBUGGER_DATA64 {
type TypeKind = windows_core::CopyType;
}
#[cfg(feature = "Win32_System_Kernel")]
impl Default for KDDEBUGGER_DATA64 {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
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,
}
impl windows_core::TypeKind for KDEXTS_LOCK_INFO {
type TypeKind = windows_core::CopyType;
}
impl Default for KDEXTS_LOCK_INFO {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
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 windows_core::TypeKind for KDEXTS_PTE_INFO {
type TypeKind = windows_core::CopyType;
}
impl Default for KDEXTS_PTE_INFO {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub struct KDEXT_FILELOCK_OWNER {
pub Sizeofstruct: u32,
pub FileObject: u64,
pub OwnerThread: u64,
pub WaitIrp: u64,
pub DeviceObject: u64,
pub BlockingDirver: [i8; 32],
}
impl windows_core::TypeKind for KDEXT_FILELOCK_OWNER {
type TypeKind = windows_core::CopyType;
}
impl Default for KDEXT_FILELOCK_OWNER {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
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,
}
impl windows_core::TypeKind for KDEXT_HANDLE_INFORMATION {
type TypeKind = windows_core::CopyType;
}
impl Default for KDEXT_HANDLE_INFORMATION {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub struct KDEXT_PROCESS_FIND_PARAMS {
pub SizeofStruct: u32,
pub Pid: u32,
pub Session: u32,
pub ImageName: windows_core::PSTR,
}
impl windows_core::TypeKind for KDEXT_PROCESS_FIND_PARAMS {
type TypeKind = windows_core::CopyType;
}
impl Default for KDEXT_PROCESS_FIND_PARAMS {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub struct KDEXT_THREAD_FIND_PARAMS {
pub SizeofStruct: u32,
pub StackPointer: u64,
pub Cid: u32,
pub Thread: u64,
}
impl windows_core::TypeKind for KDEXT_THREAD_FIND_PARAMS {
type TypeKind = windows_core::CopyType;
}
impl Default for KDEXT_THREAD_FIND_PARAMS {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub struct Location {
pub HostDefined: u64,
pub Offset: u64,
}
impl windows_core::TypeKind for Location {
type TypeKind = windows_core::CopyType;
}
impl Default for Location {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
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: [i8; 64],
pub FullName: [i8; 256],
pub Language: [i8; 30],
pub BuildVersion: [i8; 64],
pub ServicePackString: [i8; 64],
}
impl windows_core::TypeKind for OS_INFO {
type TypeKind = windows_core::CopyType;
}
impl Default for OS_INFO {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub struct OS_INFO_0 {
pub _bitfield: u32,
}
impl windows_core::TypeKind for OS_INFO_0 {
type TypeKind = windows_core::CopyType;
}
impl Default for OS_INFO_0 {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy)]
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: [i8; 30],
pub OsString: [i8; 64],
pub ServicePackString: [i8; 64],
}
impl windows_core::TypeKind for OS_INFO_v1 {
type TypeKind = windows_core::CopyType;
}
impl Default for OS_INFO_v1 {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy)]
pub union OS_INFO_v1_0 {
pub Version: OS_INFO_v1_0_0,
pub Ver64: u64,
}
impl windows_core::TypeKind for OS_INFO_v1_0 {
type TypeKind = windows_core::CopyType;
}
impl Default for OS_INFO_v1_0 {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub struct OS_INFO_v1_0_0 {
pub Major: u32,
pub Minor: u32,
}
impl windows_core::TypeKind for OS_INFO_v1_0_0 {
type TypeKind = windows_core::CopyType;
}
impl Default for OS_INFO_v1_0_0 {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub struct OS_INFO_v1_1 {
pub _bitfield: u32,
}
impl windows_core::TypeKind for OS_INFO_v1_1 {
type TypeKind = windows_core::CopyType;
}
impl Default for OS_INFO_v1_1 {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub struct PHYSICAL {
pub Address: u64,
pub BufLen: u32,
pub Buf: [u8; 1],
}
impl windows_core::TypeKind for PHYSICAL {
type TypeKind = windows_core::CopyType;
}
impl Default for PHYSICAL {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub struct PHYSICAL_TO_VIRTUAL {
pub Status: u32,
pub Size: u32,
pub PdeAddress: u64,
}
impl windows_core::TypeKind for PHYSICAL_TO_VIRTUAL {
type TypeKind = windows_core::CopyType;
}
impl Default for PHYSICAL_TO_VIRTUAL {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub struct PHYSICAL_WITH_FLAGS {
pub Address: u64,
pub BufLen: u32,
pub Flags: u32,
pub Buf: [u8; 1],
}
impl windows_core::TypeKind for PHYSICAL_WITH_FLAGS {
type TypeKind = windows_core::CopyType;
}
impl Default for PHYSICAL_WITH_FLAGS {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
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 windows_core::TypeKind for POINTER_SEARCH_PHYSICAL {
type TypeKind = windows_core::CopyType;
}
impl Default for POINTER_SEARCH_PHYSICAL {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub struct PROCESSORINFO {
pub Processor: u16,
pub NumberProcessors: u16,
}
impl windows_core::TypeKind for PROCESSORINFO {
type TypeKind = windows_core::CopyType;
}
impl Default for PROCESSORINFO {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
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 windows_core::TypeKind for PROCESS_COMMIT_USAGE {
type TypeKind = windows_core::CopyType;
}
impl Default for PROCESS_COMMIT_USAGE {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub struct PROCESS_NAME_ENTRY {
pub ProcessId: u32,
pub NameOffset: u32,
pub NameSize: u32,
pub NextEntry: u32,
}
impl windows_core::TypeKind for PROCESS_NAME_ENTRY {
type TypeKind = windows_core::CopyType;
}
impl Default for PROCESS_NAME_ENTRY {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub struct READCONTROLSPACE {
pub Processor: u16,
pub Address: u32,
pub BufLen: u32,
pub Buf: [u8; 1],
}
impl windows_core::TypeKind for READCONTROLSPACE {
type TypeKind = windows_core::CopyType;
}
impl Default for READCONTROLSPACE {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub struct READCONTROLSPACE32 {
pub Processor: u16,
pub Address: u32,
pub BufLen: u32,
pub Buf: [u8; 1],
}
impl windows_core::TypeKind for READCONTROLSPACE32 {
type TypeKind = windows_core::CopyType;
}
impl Default for READCONTROLSPACE32 {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub struct READCONTROLSPACE64 {
pub Processor: u16,
pub Address: u64,
pub BufLen: u32,
pub Buf: [u8; 1],
}
impl windows_core::TypeKind for READCONTROLSPACE64 {
type TypeKind = windows_core::CopyType;
}
impl Default for READCONTROLSPACE64 {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub struct READ_WRITE_MSR {
pub Msr: u32,
pub Value: i64,
}
impl windows_core::TypeKind for READ_WRITE_MSR {
type TypeKind = windows_core::CopyType;
}
impl Default for READ_WRITE_MSR {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub struct SEARCHMEMORY {
pub SearchAddress: u64,
pub SearchLength: u64,
pub FoundAddress: u64,
pub PatternLength: u32,
pub Pattern: *mut core::ffi::c_void,
}
impl windows_core::TypeKind for SEARCHMEMORY {
type TypeKind = windows_core::CopyType;
}
impl Default for SEARCHMEMORY {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
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 windows_core::TypeKind for STACK_SRC_INFO {
type TypeKind = windows_core::CopyType;
}
impl Default for STACK_SRC_INFO {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub struct STACK_SYM_FRAME_INFO {
pub StackFrameEx: DEBUG_STACK_FRAME_EX,
pub SrcInfo: STACK_SRC_INFO,
}
impl windows_core::TypeKind for STACK_SYM_FRAME_INFO {
type TypeKind = windows_core::CopyType;
}
impl Default for STACK_SYM_FRAME_INFO {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
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 windows_core::TypeKind for SYMBOL_INFO_EX {
type TypeKind = windows_core::CopyType;
}
impl Default for SYMBOL_INFO_EX {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy)]
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 windows_core::TypeKind for SYM_DUMP_PARAM {
type TypeKind = windows_core::CopyType;
}
impl Default for SYM_DUMP_PARAM {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy)]
pub union SYM_DUMP_PARAM_0 {
pub Context: *mut core::ffi::c_void,
pub pBuffer: *mut core::ffi::c_void,
}
impl windows_core::TypeKind for SYM_DUMP_PARAM_0 {
type TypeKind = windows_core::CopyType;
}
impl Default for SYM_DUMP_PARAM_0 {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy)]
pub struct ScriptDebugEventInformation {
pub DebugEvent: ScriptDebugEvent,
pub EventPosition: ScriptDebugPosition,
pub EventSpanEnd: ScriptDebugPosition,
pub u: ScriptDebugEventInformation_0,
}
impl windows_core::TypeKind for ScriptDebugEventInformation {
type TypeKind = windows_core::CopyType;
}
impl Default for ScriptDebugEventInformation {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy)]
pub union ScriptDebugEventInformation_0 {
pub ExceptionInformation: ScriptDebugEventInformation_0_1,
pub BreakpointInformation: ScriptDebugEventInformation_0_0,
}
impl windows_core::TypeKind for ScriptDebugEventInformation_0 {
type TypeKind = windows_core::CopyType;
}
impl Default for ScriptDebugEventInformation_0 {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub struct ScriptDebugEventInformation_0_0 {
pub BreakpointId: u64,
}
impl windows_core::TypeKind for ScriptDebugEventInformation_0_0 {
type TypeKind = windows_core::CopyType;
}
impl Default for ScriptDebugEventInformation_0_0 {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub struct ScriptDebugEventInformation_0_1 {
pub IsUncaught: u8,
}
impl windows_core::TypeKind for ScriptDebugEventInformation_0_1 {
type TypeKind = windows_core::CopyType;
}
impl Default for ScriptDebugEventInformation_0_1 {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub struct ScriptDebugPosition {
pub Line: u32,
pub Column: u32,
}
impl windows_core::TypeKind for ScriptDebugPosition {
type TypeKind = windows_core::CopyType;
}
impl Default for ScriptDebugPosition {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy)]
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: [i8; 260],
}
impl windows_core::TypeKind for TARGET_DEBUG_INFO {
type TypeKind = windows_core::CopyType;
}
impl Default for TARGET_DEBUG_INFO {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy)]
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: [i8; 260],
pub FailureData: *mut core::ffi::c_void,
pub StackTr: [i8; 4096],
}
impl windows_core::TypeKind for TARGET_DEBUG_INFO_v1 {
type TypeKind = windows_core::CopyType;
}
impl Default for TARGET_DEBUG_INFO_v1 {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy)]
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: [i8; 260],
}
impl windows_core::TypeKind for TARGET_DEBUG_INFO_v2 {
type TypeKind = windows_core::CopyType;
}
impl Default for TARGET_DEBUG_INFO_v2 {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub struct TRANSLATE_VIRTUAL_TO_PHYSICAL {
pub Virtual: u64,
pub Physical: u64,
}
impl windows_core::TypeKind for TRANSLATE_VIRTUAL_TO_PHYSICAL {
type TypeKind = windows_core::CopyType;
}
impl Default for TRANSLATE_VIRTUAL_TO_PHYSICAL {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub struct VIRTUAL_TO_PHYSICAL {
pub Status: u32,
pub Size: u32,
pub PdeAddress: u64,
pub Virtual: u64,
pub Physical: u64,
}
impl windows_core::TypeKind for VIRTUAL_TO_PHYSICAL {
type TypeKind = windows_core::CopyType;
}
impl Default for VIRTUAL_TO_PHYSICAL {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub struct WDBGEXTS_CLR_DATA_INTERFACE {
pub Iid: *const windows_core::GUID,
pub Iface: *mut core::ffi::c_void,
}
impl windows_core::TypeKind for WDBGEXTS_CLR_DATA_INTERFACE {
type TypeKind = windows_core::CopyType;
}
impl Default for WDBGEXTS_CLR_DATA_INTERFACE {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
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 windows_core::TypeKind for WDBGEXTS_DISASSEMBLE_BUFFER {
type TypeKind = windows_core::CopyType;
}
impl Default for WDBGEXTS_DISASSEMBLE_BUFFER {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub struct WDBGEXTS_MODULE_IN_RANGE {
pub Start: u64,
pub End: u64,
pub FoundModBase: u64,
pub FoundModSize: u32,
}
impl windows_core::TypeKind for WDBGEXTS_MODULE_IN_RANGE {
type TypeKind = windows_core::CopyType;
}
impl Default for WDBGEXTS_MODULE_IN_RANGE {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub struct WDBGEXTS_QUERY_INTERFACE {
pub Iid: *const windows_core::GUID,
pub Iface: *mut core::ffi::c_void,
}
impl windows_core::TypeKind for WDBGEXTS_QUERY_INTERFACE {
type TypeKind = windows_core::CopyType;
}
impl Default for WDBGEXTS_QUERY_INTERFACE {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
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 windows_core::TypeKind for WDBGEXTS_THREAD_OS_INFO {
type TypeKind = windows_core::CopyType;
}
impl Default for WDBGEXTS_THREAD_OS_INFO {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[cfg(feature = "Win32_System_Kernel")]
#[derive(Clone, Copy, Debug)]
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 windows_core::TypeKind for WINDBG_EXTENSION_APIS {
type TypeKind = windows_core::CopyType;
}
#[cfg(feature = "Win32_System_Kernel")]
impl Default for WINDBG_EXTENSION_APIS {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[cfg(feature = "Win32_System_Kernel")]
#[derive(Clone, Copy, Debug)]
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 windows_core::TypeKind for WINDBG_EXTENSION_APIS32 {
type TypeKind = windows_core::CopyType;
}
#[cfg(feature = "Win32_System_Kernel")]
impl Default for WINDBG_EXTENSION_APIS32 {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[cfg(feature = "Win32_System_Kernel")]
#[derive(Clone, Copy, Debug)]
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 windows_core::TypeKind for WINDBG_EXTENSION_APIS64 {
type TypeKind = windows_core::CopyType;
}
#[cfg(feature = "Win32_System_Kernel")]
impl Default for WINDBG_EXTENSION_APIS64 {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug)]
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 windows_core::TypeKind for WINDBG_OLDKD_EXTENSION_APIS {
type TypeKind = windows_core::CopyType;
}
impl Default for WINDBG_OLDKD_EXTENSION_APIS {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug)]
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 windows_core::TypeKind for WINDBG_OLD_EXTENSION_APIS {
type TypeKind = windows_core::CopyType;
}
impl Default for WINDBG_OLD_EXTENSION_APIS {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub struct XML_DRIVER_NODE_INFO {
pub FileName: [i8; 64],
pub FileSize: u64,
pub CreationDate: u64,
pub Version: [i8; 64],
pub Manufacturer: [i8; 260],
pub ProductName: [i8; 260],
pub Group: [i8; 260],
pub Altitude: [i8; 260],
}
impl windows_core::TypeKind for XML_DRIVER_NODE_INFO {
type TypeKind = windows_core::CopyType;
}
impl Default for XML_DRIVER_NODE_INFO {
fn default() -> Self {
unsafe { core::mem::zeroed() }
}
}
pub type ENTRY_CALLBACK = Option<unsafe extern "system" fn(entryaddress: u64, context: *mut core::ffi::c_void) -> windows_core::HRESULT>;
pub type EXTDLL_ITERATERTLBALANCEDNODES = Option<unsafe extern "system" fn(rootnode: u64, entryoffset: u32, callback: ENTRY_CALLBACK, callbackcontext: *mut core::ffi::c_void)>;
pub type EXTDLL_QUERYDATABYTAG = Option<unsafe extern "system" fn(client: Option<IDebugClient4>, dwdatatag: u32, pqueryinfo: *const core::ffi::c_void, pdata: *mut u8, cbdata: u32) -> windows_core::HRESULT>;
pub type EXTDLL_QUERYDATABYTAGEX = Option<unsafe extern "system" fn(client: Option<IDebugClient4>, dwdatatag: u32, pqueryinfo: *const core::ffi::c_void, pdata: *mut u8, cbdata: u32, pdataex: *mut u8, cbdataex: u32) -> windows_core::HRESULT>;
pub type EXTS_JOB_PROCESS_CALLBACK = Option<unsafe extern "system" fn(job: u64, process: u64, context: *mut core::ffi::c_void) -> super::super::super::super::Foundation::BOOLEAN>;
pub type EXTS_TABLE_ENTRY_CALLBACK = Option<unsafe extern "system" fn(entry: u64, context: *mut core::ffi::c_void) -> super::super::super::super::Foundation::BOOLEAN>;
pub type EXT_ANALYSIS_PLUGIN = Option<unsafe extern "system" fn(client: Option<IDebugClient4>, callphase: FA_EXTENSION_PLUGIN_PHASE, panalysis: Option<IDebugFailureAnalysis2>) -> windows_core::HRESULT>;
pub type EXT_ANALYZER = Option<unsafe extern "system" fn(client: Option<IDebugClient>, bucketsuffix: windows_core::PSTR, cbbucketsuffix: u32, debugtext: windows_core::PSTR, cbdebugtext: u32, flags: *const u32, panalysis: Option<IDebugFailureAnalysis>) -> windows_core::HRESULT>;
pub type EXT_DECODE_ERROR = Option<unsafe extern "system" fn(pdecodeerror: *mut DEBUG_DECODE_ERROR)>;
pub type EXT_GET_DEBUG_FAILURE_ANALYSIS = Option<unsafe extern "system" fn(client: Option<IDebugClient4>, flags: u32, classid: windows_core::GUID, ppanalysis: *mut Option<IDebugFailureAnalysis2>) -> windows_core::HRESULT>;
pub type EXT_GET_ENVIRONMENT_VARIABLE = 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 = Option<unsafe extern "system" fn(client: Option<IDebugClient4>, flags: u32, ppanalysis: *mut Option<IDebugFailureAnalysis>) -> windows_core::HRESULT>;
pub type EXT_GET_FA_ENTRIES_DATA = Option<unsafe extern "system" fn(client: Option<IDebugClient4>, count: *mut u32, entries: *mut *mut FA_ENTRY) -> windows_core::HRESULT>;
pub type EXT_GET_HANDLE_TRACE = Option<unsafe extern "system" fn(client: Option<IDebugClient>, tracetype: u32, startindex: u32, handlevalue: *mut u64, stackfunctions: *mut u64, stacktracesize: u32) -> windows_core::HRESULT>;
pub type EXT_RELOAD_TRIAGER = Option<unsafe extern "system" fn(client: Option<IDebugClient4>) -> windows_core::HRESULT>;
pub type EXT_TARGET_INFO = Option<unsafe extern "system" fn(client: Option<IDebugClient4>, ptargetinfo: *mut TARGET_DEBUG_INFO) -> windows_core::HRESULT>;
pub type EXT_TRIAGE_FOLLOWUP = Option<unsafe extern "system" fn(client: Option<IDebugClient4>, symbolname: windows_core::PCSTR, ownerinfo: *mut DEBUG_TRIAGE_FOLLOWUP_INFO) -> u32>;
pub type EXT_XML_DATA = Option<unsafe extern "system" fn(client: Option<IDebugClient4>, pxmpdata: *mut EXT_CAB_XML_DATA) -> windows_core::HRESULT>;
pub type KDEXTS_LOCK_CALLBACKROUTINE = Option<unsafe extern "system" fn(plock: *mut KDEXTS_LOCK_INFO, context: *mut core::ffi::c_void) -> windows_core::HRESULT>;
pub type KDEXT_DUMP_HANDLE_CALLBACK = 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 = Option<unsafe extern "system" fn(client: Option<IDebugClient>, args: windows_core::PCSTR) -> windows_core::HRESULT>;
pub type PDEBUG_EXTENSION_CANUNLOAD = Option<unsafe extern "system" fn() -> windows_core::HRESULT>;
pub type PDEBUG_EXTENSION_INITIALIZE = Option<unsafe extern "system" fn(version: *mut u32, flags: *mut u32) -> windows_core::HRESULT>;
pub type PDEBUG_EXTENSION_KNOWN_STRUCT = 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 = Option<unsafe extern "system" fn(client: 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 = Option<unsafe extern "system" fn(notify: u32, argument: u64)>;
pub type PDEBUG_EXTENSION_PROVIDE_VALUE = Option<unsafe extern "system" fn(client: 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 = Option<unsafe extern "system" fn(client: Option<IDebugClient>, flags: u32, buffer: windows_core::PWSTR, bufferchars: u32, bufferneeded: *mut u32) -> windows_core::HRESULT>;
pub type PDEBUG_EXTENSION_UNINITIALIZE = Option<unsafe extern "system" fn()>;
pub type PDEBUG_EXTENSION_UNLOAD = Option<unsafe extern "system" fn()>;
pub type PDEBUG_STACK_PROVIDER_BEGINTHREADSTACKRECONSTRUCTION = Option<unsafe extern "system" fn(streamtype: u32, minidumpstreambuffer: *const core::ffi::c_void, buffersize: u32) -> windows_core::HRESULT>;
pub type PDEBUG_STACK_PROVIDER_ENDTHREADSTACKRECONSTRUCTION = Option<unsafe extern "system" fn() -> windows_core::HRESULT>;
pub type PDEBUG_STACK_PROVIDER_FREESTACKSYMFRAMES = Option<unsafe extern "system" fn(stacksymframes: *const STACK_SYM_FRAME_INFO) -> windows_core::HRESULT>;
pub type PDEBUG_STACK_PROVIDER_RECONSTRUCTSTACK = 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>;
pub type PENUMERATE_HANDLES = Option<unsafe extern "system" fn(client: Option<IDebugClient>, process: u64, handletodump: u64, flags: u32, callback: KDEXT_DUMP_HANDLE_CALLBACK, context: *const core::ffi::c_void) -> windows_core::HRESULT>;
pub type PENUMERATE_HASH_TABLE = Option<unsafe extern "system" fn(client: Option<IDebugClient>, hashtable: u64, callback: EXTS_TABLE_ENTRY_CALLBACK, context: *mut core::ffi::c_void) -> windows_core::HRESULT>;
pub type PENUMERATE_JOB_PROCESSES = Option<unsafe extern "system" fn(client: Option<IDebugClient>, job: u64, callback: EXTS_JOB_PROCESS_CALLBACK, context: *const core::ffi::c_void) -> windows_core::HRESULT>;
pub type PENUMERATE_SYSTEM_LOCKS = Option<unsafe extern "system" fn(client: Option<IDebugClient>, flags: u32, callback: KDEXTS_LOCK_CALLBACKROUTINE, context: *mut core::ffi::c_void) -> windows_core::HRESULT>;
pub type PFIND_FILELOCK_OWNERINFO = Option<unsafe extern "system" fn(client: Option<IDebugClient>, pfilelockowner: *mut KDEXT_FILELOCK_OWNER) -> windows_core::HRESULT>;
pub type PFIND_MATCHING_PROCESS = Option<unsafe extern "system" fn(client: Option<IDebugClient>, processinfo: *const KDEXT_PROCESS_FIND_PARAMS, process: *mut u64) -> windows_core::HRESULT>;
pub type PFIND_MATCHING_THREAD = Option<unsafe extern "system" fn(client: Option<IDebugClient>, threadinfo: *mut KDEXT_THREAD_FIND_PARAMS) -> windows_core::HRESULT>;
pub type PGET_CPU_MICROCODE_VERSION = Option<unsafe extern "system" fn(client: Option<IDebugClient>, pcpumicrocodeversion: *mut DEBUG_CPU_MICROCODE_VERSION) -> windows_core::HRESULT>;
pub type PGET_CPU_PSPEED_INFO = Option<unsafe extern "system" fn(client: Option<IDebugClient>, pcpuspeedinfo: *mut DEBUG_CPU_SPEED_INFO) -> windows_core::HRESULT>;
pub type PGET_DEVICE_OBJECT_INFO = Option<unsafe extern "system" fn(client: Option<IDebugClient>, deviceobject: u64, pdevobjinfo: *mut DEBUG_DEVICE_OBJECT_INFO) -> windows_core::HRESULT>;
pub type PGET_DRIVER_OBJECT_INFO = Option<unsafe extern "system" fn(client: Option<IDebugClient>, driverobject: u64, pdrvobjinfo: *mut DEBUG_DRIVER_OBJECT_INFO) -> windows_core::HRESULT>;
pub type PGET_FULL_IMAGE_NAME = Option<unsafe extern "system" fn(client: Option<IDebugClient>, process: u64, fullimagename: *mut windows_core::PSTR) -> windows_core::HRESULT>;
pub type PGET_IRP_INFO = Option<unsafe extern "system" fn(client: Option<IDebugClient>, irp: u64, irpinfo: *mut DEBUG_IRP_INFO) -> windows_core::HRESULT>;
pub type PGET_PNP_TRIAGE_INFO = Option<unsafe extern "system" fn(client: Option<IDebugClient>, ppnptriageinfo: *mut DEBUG_PNP_TRIAGE_INFO) -> windows_core::HRESULT>;
pub type PGET_POOL_DATA = Option<unsafe extern "system" fn(client: Option<IDebugClient>, pool: u64, pooldata: *mut DEBUG_POOL_DATA) -> windows_core::HRESULT>;
pub type PGET_POOL_REGION = Option<unsafe extern "system" fn(client: Option<IDebugClient>, pool: u64, poolregion: *mut DEBUG_POOL_REGION) -> windows_core::HRESULT>;
pub type PGET_POOL_TAG_DESCRIPTION = Option<unsafe extern "system" fn(pooltag: u32, pdescription: *mut DEBUG_POOLTAG_DESCRIPTION) -> windows_core::HRESULT>;
pub type PGET_PROCESS_COMMIT = Option<unsafe extern "system" fn(client: Option<IDebugClient>, totalcommitcharge: *mut u64, numberofprocesses: *mut u32, commitdata: *mut *mut PROCESS_COMMIT_USAGE) -> windows_core::HRESULT>;
pub type PGET_SMBIOS_INFO = Option<unsafe extern "system" fn(client: Option<IDebugClient>, psmbiosinfo: *mut DEBUG_SMBIOS_INFO) -> windows_core::HRESULT>;
pub type PKDEXTS_GET_PTE_INFO = Option<unsafe extern "system" fn(client: Option<IDebugClient>, r#virtual: u64, pteinfo: *mut KDEXTS_PTE_INFO) -> windows_core::HRESULT>;
pub type PSYM_DUMP_FIELD_CALLBACK = Option<unsafe extern "system" fn(pfield: *mut FIELD_INFO, usercontext: *mut core::ffi::c_void) -> u32>;
pub type PWINDBG_CHECK_CONTROL_C = Option<unsafe extern "system" fn() -> u32>;
pub type PWINDBG_CHECK_VERSION = Option<unsafe extern "system" fn() -> u32>;
pub type PWINDBG_DISASM = Option<unsafe extern "system" fn(lpoffset: *mut usize, lpbuffer: windows_core::PCSTR, fshoweffectiveaddress: u32) -> u32>;
pub type PWINDBG_DISASM32 = Option<unsafe extern "system" fn(lpoffset: *mut u32, lpbuffer: windows_core::PCSTR, fshoweffectiveaddress: u32) -> u32>;
pub type PWINDBG_DISASM64 = Option<unsafe extern "system" fn(lpoffset: *mut u64, lpbuffer: windows_core::PCSTR, fshoweffectiveaddress: u32) -> u32>;
pub type PWINDBG_EXTENSION_API_VERSION = Option<unsafe extern "system" fn() -> *mut EXT_API_VERSION>;
#[cfg(feature = "Win32_System_Kernel")]
pub type PWINDBG_EXTENSION_DLL_INIT = Option<unsafe extern "system" fn(lpextensionapis: *mut WINDBG_EXTENSION_APIS, majorversion: u16, minorversion: u16)>;
#[cfg(feature = "Win32_System_Kernel")]
pub type PWINDBG_EXTENSION_DLL_INIT32 = Option<unsafe extern "system" fn(lpextensionapis: *mut WINDBG_EXTENSION_APIS32, majorversion: u16, minorversion: u16)>;
#[cfg(feature = "Win32_System_Kernel")]
pub type PWINDBG_EXTENSION_DLL_INIT64 = Option<unsafe extern "system" fn(lpextensionapis: *mut WINDBG_EXTENSION_APIS64, majorversion: u16, minorversion: u16)>;
pub type PWINDBG_EXTENSION_ROUTINE = 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)>;
pub type PWINDBG_EXTENSION_ROUTINE32 = 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)>;
pub type PWINDBG_EXTENSION_ROUTINE64 = 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 = Option<unsafe extern "system" fn(lpexpression: windows_core::PCSTR) -> usize>;
pub type PWINDBG_GET_EXPRESSION32 = Option<unsafe extern "system" fn(lpexpression: windows_core::PCSTR) -> u32>;
pub type PWINDBG_GET_EXPRESSION64 = Option<unsafe extern "system" fn(lpexpression: windows_core::PCSTR) -> u64>;
pub type PWINDBG_GET_SYMBOL = Option<unsafe extern "system" fn(offset: *mut core::ffi::c_void, pchbuffer: windows_core::PCSTR, pdisplacement: *mut usize)>;
pub type PWINDBG_GET_SYMBOL32 = Option<unsafe extern "system" fn(offset: u32, pchbuffer: windows_core::PCSTR, pdisplacement: *mut u32)>;
pub type PWINDBG_GET_SYMBOL64 = Option<unsafe extern "system" fn(offset: u64, pchbuffer: windows_core::PCSTR, pdisplacement: *mut u64)>;
#[cfg(feature = "Win32_System_Kernel")]
pub type PWINDBG_GET_THREAD_CONTEXT_ROUTINE = Option<unsafe extern "system" fn(processor: u32, lpcontext: *mut super::CONTEXT, cbsizeofcontext: u32) -> u32>;
pub type PWINDBG_IOCTL_ROUTINE = Option<unsafe extern "system" fn(ioctltype: u16, lpvdata: *mut core::ffi::c_void, cbsize: u32) -> u32>;
pub type PWINDBG_OLDKD_EXTENSION_ROUTINE = Option<unsafe extern "system" fn(dwcurrentpc: u32, lpextensionapis: *mut WINDBG_OLDKD_EXTENSION_APIS, lpargumentstring: windows_core::PCSTR)>;
pub type PWINDBG_OLDKD_READ_PHYSICAL_MEMORY = 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 = Option<unsafe extern "system" fn(address: u64, buffer: *mut core::ffi::c_void, length: u32, byteswritten: *mut u32) -> u32>;
#[cfg(feature = "Win32_System_Kernel")]
pub type PWINDBG_OLD_EXTENSION_ROUTINE = Option<unsafe extern "system" fn(dwcurrentpc: u32, lpextensionapis: *mut WINDBG_EXTENSION_APIS, lpargumentstring: windows_core::PCSTR)>;
pub type PWINDBG_OUTPUT_ROUTINE = Option<unsafe extern "system" fn(lpformat: windows_core::PCSTR)>;
pub type PWINDBG_READ_PROCESS_MEMORY_ROUTINE = 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 = 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 = Option<unsafe extern "system" fn(offset: u64, lpbuffer: *mut core::ffi::c_void, cb: u32, lpcbbytesread: *mut u32) -> u32>;
#[cfg(feature = "Win32_System_Kernel")]
pub type PWINDBG_SET_THREAD_CONTEXT_ROUTINE = Option<unsafe extern "system" fn(processor: u32, lpcontext: *mut super::CONTEXT, cbsizeofcontext: u32) -> u32>;
pub type PWINDBG_STACKTRACE_ROUTINE = Option<unsafe extern "system" fn(framepointer: u32, stackpointer: u32, programcounter: u32, stackframes: *mut EXTSTACKTRACE, frames: u32) -> u32>;
pub type PWINDBG_STACKTRACE_ROUTINE32 = Option<unsafe extern "system" fn(framepointer: u32, stackpointer: u32, programcounter: u32, stackframes: *mut EXTSTACKTRACE32, frames: u32) -> u32>;
pub type PWINDBG_STACKTRACE_ROUTINE64 = Option<unsafe extern "system" fn(framepointer: u64, stackpointer: u64, programcounter: u64, stackframes: *mut EXTSTACKTRACE64, frames: u32) -> u32>;
pub type PWINDBG_WRITE_PROCESS_MEMORY_ROUTINE = 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 = 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 = Option<unsafe extern "system" fn(offset: u64, lpbuffer: *const core::ffi::c_void, cb: u32, lpcbbyteswritten: *mut u32) -> u32>;
pub type fnDebugFailureAnalysisCreateInstance = Option<unsafe extern "system" fn(client: 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");