blob: 921031bd18ec189e83aeed49a4b613a8e5b3ea87 [file] [log] [blame]
#[doc = "*Required features: `\"Win32_System_Antimalware\"`*"]
#[inline]
pub unsafe fn AmsiCloseSession<P0, P1>(amsicontext: P0, amsisession: P1)
where
P0: ::windows_core::IntoParam<HAMSICONTEXT>,
P1: ::windows_core::IntoParam<HAMSISESSION>,
{
::windows_targets::link!("amsi.dll" "system" fn AmsiCloseSession(amsicontext : HAMSICONTEXT, amsisession : HAMSISESSION) -> ());
AmsiCloseSession(amsicontext.into_param().abi(), amsisession.into_param().abi())
}
#[doc = "*Required features: `\"Win32_System_Antimalware\"`*"]
#[inline]
pub unsafe fn AmsiInitialize<P0>(appname: P0) -> ::windows_core::Result<HAMSICONTEXT>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
::windows_targets::link!("amsi.dll" "system" fn AmsiInitialize(appname : ::windows_core::PCWSTR, amsicontext : *mut HAMSICONTEXT) -> ::windows_core::HRESULT);
let mut result__ = ::std::mem::zeroed();
AmsiInitialize(appname.into_param().abi(), &mut result__).from_abi(result__)
}
#[doc = "*Required features: `\"Win32_System_Antimalware\"`*"]
#[inline]
pub unsafe fn AmsiNotifyOperation<P0, P1>(amsicontext: P0, buffer: *const ::core::ffi::c_void, length: u32, contentname: P1) -> ::windows_core::Result<AMSI_RESULT>
where
P0: ::windows_core::IntoParam<HAMSICONTEXT>,
P1: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
::windows_targets::link!("amsi.dll" "system" fn AmsiNotifyOperation(amsicontext : HAMSICONTEXT, buffer : *const ::core::ffi::c_void, length : u32, contentname : ::windows_core::PCWSTR, result : *mut AMSI_RESULT) -> ::windows_core::HRESULT);
let mut result__ = ::std::mem::zeroed();
AmsiNotifyOperation(amsicontext.into_param().abi(), buffer, length, contentname.into_param().abi(), &mut result__).from_abi(result__)
}
#[doc = "*Required features: `\"Win32_System_Antimalware\"`*"]
#[inline]
pub unsafe fn AmsiOpenSession<P0>(amsicontext: P0) -> ::windows_core::Result<HAMSISESSION>
where
P0: ::windows_core::IntoParam<HAMSICONTEXT>,
{
::windows_targets::link!("amsi.dll" "system" fn AmsiOpenSession(amsicontext : HAMSICONTEXT, amsisession : *mut HAMSISESSION) -> ::windows_core::HRESULT);
let mut result__ = ::std::mem::zeroed();
AmsiOpenSession(amsicontext.into_param().abi(), &mut result__).from_abi(result__)
}
#[doc = "*Required features: `\"Win32_System_Antimalware\"`*"]
#[inline]
pub unsafe fn AmsiScanBuffer<P0, P1, P2>(amsicontext: P0, buffer: *const ::core::ffi::c_void, length: u32, contentname: P1, amsisession: P2) -> ::windows_core::Result<AMSI_RESULT>
where
P0: ::windows_core::IntoParam<HAMSICONTEXT>,
P1: ::windows_core::IntoParam<::windows_core::PCWSTR>,
P2: ::windows_core::IntoParam<HAMSISESSION>,
{
::windows_targets::link!("amsi.dll" "system" fn AmsiScanBuffer(amsicontext : HAMSICONTEXT, buffer : *const ::core::ffi::c_void, length : u32, contentname : ::windows_core::PCWSTR, amsisession : HAMSISESSION, result : *mut AMSI_RESULT) -> ::windows_core::HRESULT);
let mut result__ = ::std::mem::zeroed();
AmsiScanBuffer(amsicontext.into_param().abi(), buffer, length, contentname.into_param().abi(), amsisession.into_param().abi(), &mut result__).from_abi(result__)
}
#[doc = "*Required features: `\"Win32_System_Antimalware\"`*"]
#[inline]
pub unsafe fn AmsiScanString<P0, P1, P2, P3>(amsicontext: P0, string: P1, contentname: P2, amsisession: P3) -> ::windows_core::Result<AMSI_RESULT>
where
P0: ::windows_core::IntoParam<HAMSICONTEXT>,
P1: ::windows_core::IntoParam<::windows_core::PCWSTR>,
P2: ::windows_core::IntoParam<::windows_core::PCWSTR>,
P3: ::windows_core::IntoParam<HAMSISESSION>,
{
::windows_targets::link!("amsi.dll" "system" fn AmsiScanString(amsicontext : HAMSICONTEXT, string : ::windows_core::PCWSTR, contentname : ::windows_core::PCWSTR, amsisession : HAMSISESSION, result : *mut AMSI_RESULT) -> ::windows_core::HRESULT);
let mut result__ = ::std::mem::zeroed();
AmsiScanString(amsicontext.into_param().abi(), string.into_param().abi(), contentname.into_param().abi(), amsisession.into_param().abi(), &mut result__).from_abi(result__)
}
#[doc = "*Required features: `\"Win32_System_Antimalware\"`*"]
#[inline]
pub unsafe fn AmsiUninitialize<P0>(amsicontext: P0)
where
P0: ::windows_core::IntoParam<HAMSICONTEXT>,
{
::windows_targets::link!("amsi.dll" "system" fn AmsiUninitialize(amsicontext : HAMSICONTEXT) -> ());
AmsiUninitialize(amsicontext.into_param().abi())
}
#[doc = "*Required features: `\"Win32_System_Antimalware\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn InstallELAMCertificateInfo<P0>(elamfile: P0) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<super::super::Foundation::HANDLE>,
{
::windows_targets::link!("kernel32.dll" "system" fn InstallELAMCertificateInfo(elamfile : super::super::Foundation:: HANDLE) -> super::super::Foundation:: BOOL);
InstallELAMCertificateInfo(elamfile.into_param().abi()).ok()
}
#[doc = "*Required features: `\"Win32_System_Antimalware\"`*"]
#[repr(transparent)]
pub struct IAmsiStream(::windows_core::IUnknown);
impl IAmsiStream {
pub unsafe fn GetAttribute(&self, attribute: AMSI_ATTRIBUTE, data: &mut [u8], retdata: *mut u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).GetAttribute)(::windows_core::Interface::as_raw(self), attribute, data.len() as _, ::core::mem::transmute(data.as_ptr()), retdata).ok()
}
pub unsafe fn Read(&self, position: u64, buffer: &mut [u8], readsize: *mut u32) -> ::windows_core::Result<()> {
(::windows_core::Interface::vtable(self).Read)(::windows_core::Interface::as_raw(self), position, buffer.len() as _, ::core::mem::transmute(buffer.as_ptr()), readsize).ok()
}
}
::windows_core::imp::interface_hierarchy!(IAmsiStream, ::windows_core::IUnknown);
impl ::core::cmp::PartialEq for IAmsiStream {
fn eq(&self, other: &Self) -> bool {
self.0 == other.0
}
}
impl ::core::cmp::Eq for IAmsiStream {}
impl ::core::fmt::Debug for IAmsiStream {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_tuple("IAmsiStream").field(&self.0).finish()
}
}
unsafe impl ::windows_core::Interface for IAmsiStream {
type Vtable = IAmsiStream_Vtbl;
}
impl ::core::clone::Clone for IAmsiStream {
fn clone(&self) -> Self {
Self(self.0.clone())
}
}
unsafe impl ::windows_core::ComInterface for IAmsiStream {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0x3e47f2e5_81d4_4d3b_897f_545096770373);
}
#[repr(C)]
#[doc(hidden)]
pub struct IAmsiStream_Vtbl {
pub base__: ::windows_core::IUnknown_Vtbl,
pub GetAttribute: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, attribute: AMSI_ATTRIBUTE, datasize: u32, data: *mut u8, retdata: *mut u32) -> ::windows_core::HRESULT,
pub Read: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, position: u64, size: u32, buffer: *mut u8, readsize: *mut u32) -> ::windows_core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Antimalware\"`*"]
#[repr(transparent)]
pub struct IAntimalware(::windows_core::IUnknown);
impl IAntimalware {
pub unsafe fn Scan<P0>(&self, stream: P0, result: *mut AMSI_RESULT, provider: *mut ::core::option::Option<IAntimalwareProvider>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IAmsiStream>,
{
(::windows_core::Interface::vtable(self).Scan)(::windows_core::Interface::as_raw(self), stream.into_param().abi(), result, ::core::mem::transmute(provider)).ok()
}
pub unsafe fn CloseSession(&self, session: u64) {
(::windows_core::Interface::vtable(self).CloseSession)(::windows_core::Interface::as_raw(self), session)
}
}
::windows_core::imp::interface_hierarchy!(IAntimalware, ::windows_core::IUnknown);
impl ::core::cmp::PartialEq for IAntimalware {
fn eq(&self, other: &Self) -> bool {
self.0 == other.0
}
}
impl ::core::cmp::Eq for IAntimalware {}
impl ::core::fmt::Debug for IAntimalware {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_tuple("IAntimalware").field(&self.0).finish()
}
}
unsafe impl ::windows_core::Interface for IAntimalware {
type Vtable = IAntimalware_Vtbl;
}
impl ::core::clone::Clone for IAntimalware {
fn clone(&self) -> Self {
Self(self.0.clone())
}
}
unsafe impl ::windows_core::ComInterface for IAntimalware {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0x82d29c2e_f062_44e6_b5c9_3d9a2f24a2df);
}
#[repr(C)]
#[doc(hidden)]
pub struct IAntimalware_Vtbl {
pub base__: ::windows_core::IUnknown_Vtbl,
pub Scan: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, stream: *mut ::core::ffi::c_void, result: *mut AMSI_RESULT, provider: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
pub CloseSession: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, session: u64),
}
#[doc = "*Required features: `\"Win32_System_Antimalware\"`*"]
#[repr(transparent)]
pub struct IAntimalware2(::windows_core::IUnknown);
impl IAntimalware2 {
pub unsafe fn Scan<P0>(&self, stream: P0, result: *mut AMSI_RESULT, provider: *mut ::core::option::Option<IAntimalwareProvider>) -> ::windows_core::Result<()>
where
P0: ::windows_core::IntoParam<IAmsiStream>,
{
(::windows_core::Interface::vtable(self).base__.Scan)(::windows_core::Interface::as_raw(self), stream.into_param().abi(), result, ::core::mem::transmute(provider)).ok()
}
pub unsafe fn CloseSession(&self, session: u64) {
(::windows_core::Interface::vtable(self).base__.CloseSession)(::windows_core::Interface::as_raw(self), session)
}
pub unsafe fn Notify<P0, P1>(&self, buffer: *const ::core::ffi::c_void, length: u32, contentname: P0, appname: P1) -> ::windows_core::Result<AMSI_RESULT>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
P1: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).Notify)(::windows_core::Interface::as_raw(self), buffer, length, contentname.into_param().abi(), appname.into_param().abi(), &mut result__).from_abi(result__)
}
}
::windows_core::imp::interface_hierarchy!(IAntimalware2, ::windows_core::IUnknown, IAntimalware);
impl ::core::cmp::PartialEq for IAntimalware2 {
fn eq(&self, other: &Self) -> bool {
self.0 == other.0
}
}
impl ::core::cmp::Eq for IAntimalware2 {}
impl ::core::fmt::Debug for IAntimalware2 {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_tuple("IAntimalware2").field(&self.0).finish()
}
}
unsafe impl ::windows_core::Interface for IAntimalware2 {
type Vtable = IAntimalware2_Vtbl;
}
impl ::core::clone::Clone for IAntimalware2 {
fn clone(&self) -> Self {
Self(self.0.clone())
}
}
unsafe impl ::windows_core::ComInterface for IAntimalware2 {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0x301035b5_2d42_4f56_8c65_2dcaa7fb3cdc);
}
#[repr(C)]
#[doc(hidden)]
pub struct IAntimalware2_Vtbl {
pub base__: IAntimalware_Vtbl,
pub Notify: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: *const ::core::ffi::c_void, length: u32, contentname: ::windows_core::PCWSTR, appname: ::windows_core::PCWSTR, presult: *mut AMSI_RESULT) -> ::windows_core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Antimalware\"`*"]
#[repr(transparent)]
pub struct IAntimalwareProvider(::windows_core::IUnknown);
impl IAntimalwareProvider {
pub unsafe fn Scan<P0>(&self, stream: P0) -> ::windows_core::Result<AMSI_RESULT>
where
P0: ::windows_core::IntoParam<IAmsiStream>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).Scan)(::windows_core::Interface::as_raw(self), stream.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn CloseSession(&self, session: u64) {
(::windows_core::Interface::vtable(self).CloseSession)(::windows_core::Interface::as_raw(self), session)
}
pub unsafe fn DisplayName(&self) -> ::windows_core::Result<::windows_core::PWSTR> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).DisplayName)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
}
::windows_core::imp::interface_hierarchy!(IAntimalwareProvider, ::windows_core::IUnknown);
impl ::core::cmp::PartialEq for IAntimalwareProvider {
fn eq(&self, other: &Self) -> bool {
self.0 == other.0
}
}
impl ::core::cmp::Eq for IAntimalwareProvider {}
impl ::core::fmt::Debug for IAntimalwareProvider {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_tuple("IAntimalwareProvider").field(&self.0).finish()
}
}
unsafe impl ::windows_core::Interface for IAntimalwareProvider {
type Vtable = IAntimalwareProvider_Vtbl;
}
impl ::core::clone::Clone for IAntimalwareProvider {
fn clone(&self) -> Self {
Self(self.0.clone())
}
}
unsafe impl ::windows_core::ComInterface for IAntimalwareProvider {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0xb2cabfe3_fe04_42b1_a5df_08d483d4d125);
}
#[repr(C)]
#[doc(hidden)]
pub struct IAntimalwareProvider_Vtbl {
pub base__: ::windows_core::IUnknown_Vtbl,
pub Scan: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, stream: *mut ::core::ffi::c_void, result: *mut AMSI_RESULT) -> ::windows_core::HRESULT,
pub CloseSession: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, session: u64),
pub DisplayName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, displayname: *mut ::windows_core::PWSTR) -> ::windows_core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Antimalware\"`*"]
#[repr(transparent)]
pub struct IAntimalwareProvider2(::windows_core::IUnknown);
impl IAntimalwareProvider2 {
pub unsafe fn Scan<P0>(&self, stream: P0) -> ::windows_core::Result<AMSI_RESULT>
where
P0: ::windows_core::IntoParam<IAmsiStream>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.Scan)(::windows_core::Interface::as_raw(self), stream.into_param().abi(), &mut result__).from_abi(result__)
}
pub unsafe fn CloseSession(&self, session: u64) {
(::windows_core::Interface::vtable(self).base__.CloseSession)(::windows_core::Interface::as_raw(self), session)
}
pub unsafe fn DisplayName(&self) -> ::windows_core::Result<::windows_core::PWSTR> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).base__.DisplayName)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
pub unsafe fn Notify<P0, P1>(&self, buffer: *const ::core::ffi::c_void, length: u32, contentname: P0, appname: P1) -> ::windows_core::Result<AMSI_RESULT>
where
P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
P1: ::windows_core::IntoParam<::windows_core::PCWSTR>,
{
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).Notify)(::windows_core::Interface::as_raw(self), buffer, length, contentname.into_param().abi(), appname.into_param().abi(), &mut result__).from_abi(result__)
}
}
::windows_core::imp::interface_hierarchy!(IAntimalwareProvider2, ::windows_core::IUnknown, IAntimalwareProvider);
impl ::core::cmp::PartialEq for IAntimalwareProvider2 {
fn eq(&self, other: &Self) -> bool {
self.0 == other.0
}
}
impl ::core::cmp::Eq for IAntimalwareProvider2 {}
impl ::core::fmt::Debug for IAntimalwareProvider2 {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_tuple("IAntimalwareProvider2").field(&self.0).finish()
}
}
unsafe impl ::windows_core::Interface for IAntimalwareProvider2 {
type Vtable = IAntimalwareProvider2_Vtbl;
}
impl ::core::clone::Clone for IAntimalwareProvider2 {
fn clone(&self) -> Self {
Self(self.0.clone())
}
}
unsafe impl ::windows_core::ComInterface for IAntimalwareProvider2 {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0x7c1e6570_3f73_4e0f_8ad4_98b94cd3290f);
}
#[repr(C)]
#[doc(hidden)]
pub struct IAntimalwareProvider2_Vtbl {
pub base__: IAntimalwareProvider_Vtbl,
pub Notify: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: *const ::core::ffi::c_void, length: u32, contentname: ::windows_core::PCWSTR, appname: ::windows_core::PCWSTR, presult: *mut AMSI_RESULT) -> ::windows_core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Antimalware\"`*"]
#[repr(transparent)]
pub struct IAntimalwareUacProvider(::windows_core::IUnknown);
impl IAntimalwareUacProvider {
#[doc = "*Required features: `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub unsafe fn UacScan(&self, context: *const AMSI_UAC_REQUEST_CONTEXT) -> ::windows_core::Result<AMSI_RESULT> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).UacScan)(::windows_core::Interface::as_raw(self), context, &mut result__).from_abi(result__)
}
pub unsafe fn DisplayName(&self) -> ::windows_core::Result<::windows_core::PWSTR> {
let mut result__ = ::std::mem::zeroed();
(::windows_core::Interface::vtable(self).DisplayName)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
}
}
::windows_core::imp::interface_hierarchy!(IAntimalwareUacProvider, ::windows_core::IUnknown);
impl ::core::cmp::PartialEq for IAntimalwareUacProvider {
fn eq(&self, other: &Self) -> bool {
self.0 == other.0
}
}
impl ::core::cmp::Eq for IAntimalwareUacProvider {}
impl ::core::fmt::Debug for IAntimalwareUacProvider {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_tuple("IAntimalwareUacProvider").field(&self.0).finish()
}
}
unsafe impl ::windows_core::Interface for IAntimalwareUacProvider {
type Vtable = IAntimalwareUacProvider_Vtbl;
}
impl ::core::clone::Clone for IAntimalwareUacProvider {
fn clone(&self) -> Self {
Self(self.0.clone())
}
}
unsafe impl ::windows_core::ComInterface for IAntimalwareUacProvider {
const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(0xb2cabfe4_fe04_42b1_a5df_08d483d4d125);
}
#[repr(C)]
#[doc(hidden)]
pub struct IAntimalwareUacProvider_Vtbl {
pub base__: ::windows_core::IUnknown_Vtbl,
#[cfg(feature = "Win32_Foundation")]
pub UacScan: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, context: *const AMSI_UAC_REQUEST_CONTEXT, result: *mut AMSI_RESULT) -> ::windows_core::HRESULT,
#[cfg(not(feature = "Win32_Foundation"))]
UacScan: usize,
pub DisplayName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, displayname: *mut ::windows_core::PWSTR) -> ::windows_core::HRESULT,
}
#[doc = "*Required features: `\"Win32_System_Antimalware\"`*"]
pub const AMSI_ATTRIBUTE_ALL_ADDRESS: AMSI_ATTRIBUTE = AMSI_ATTRIBUTE(8i32);
#[doc = "*Required features: `\"Win32_System_Antimalware\"`*"]
pub const AMSI_ATTRIBUTE_ALL_SIZE: AMSI_ATTRIBUTE = AMSI_ATTRIBUTE(7i32);
#[doc = "*Required features: `\"Win32_System_Antimalware\"`*"]
pub const AMSI_ATTRIBUTE_APP_NAME: AMSI_ATTRIBUTE = AMSI_ATTRIBUTE(0i32);
#[doc = "*Required features: `\"Win32_System_Antimalware\"`*"]
pub const AMSI_ATTRIBUTE_CONTENT_ADDRESS: AMSI_ATTRIBUTE = AMSI_ATTRIBUTE(3i32);
#[doc = "*Required features: `\"Win32_System_Antimalware\"`*"]
pub const AMSI_ATTRIBUTE_CONTENT_NAME: AMSI_ATTRIBUTE = AMSI_ATTRIBUTE(1i32);
#[doc = "*Required features: `\"Win32_System_Antimalware\"`*"]
pub const AMSI_ATTRIBUTE_CONTENT_SIZE: AMSI_ATTRIBUTE = AMSI_ATTRIBUTE(2i32);
#[doc = "*Required features: `\"Win32_System_Antimalware\"`*"]
pub const AMSI_ATTRIBUTE_QUIET: AMSI_ATTRIBUTE = AMSI_ATTRIBUTE(9i32);
#[doc = "*Required features: `\"Win32_System_Antimalware\"`*"]
pub const AMSI_ATTRIBUTE_REDIRECT_CHAIN_ADDRESS: AMSI_ATTRIBUTE = AMSI_ATTRIBUTE(6i32);
#[doc = "*Required features: `\"Win32_System_Antimalware\"`*"]
pub const AMSI_ATTRIBUTE_REDIRECT_CHAIN_SIZE: AMSI_ATTRIBUTE = AMSI_ATTRIBUTE(5i32);
#[doc = "*Required features: `\"Win32_System_Antimalware\"`*"]
pub const AMSI_ATTRIBUTE_SESSION: AMSI_ATTRIBUTE = AMSI_ATTRIBUTE(4i32);
#[doc = "*Required features: `\"Win32_System_Antimalware\"`*"]
pub const AMSI_RESULT_BLOCKED_BY_ADMIN_END: AMSI_RESULT = AMSI_RESULT(20479i32);
#[doc = "*Required features: `\"Win32_System_Antimalware\"`*"]
pub const AMSI_RESULT_BLOCKED_BY_ADMIN_START: AMSI_RESULT = AMSI_RESULT(16384i32);
#[doc = "*Required features: `\"Win32_System_Antimalware\"`*"]
pub const AMSI_RESULT_CLEAN: AMSI_RESULT = AMSI_RESULT(0i32);
#[doc = "*Required features: `\"Win32_System_Antimalware\"`*"]
pub const AMSI_RESULT_DETECTED: AMSI_RESULT = AMSI_RESULT(32768i32);
#[doc = "*Required features: `\"Win32_System_Antimalware\"`*"]
pub const AMSI_RESULT_NOT_DETECTED: AMSI_RESULT = AMSI_RESULT(1i32);
#[doc = "*Required features: `\"Win32_System_Antimalware\"`*"]
pub const AMSI_UAC_MSI_ACTION_INSTALL: AMSI_UAC_MSI_ACTION = AMSI_UAC_MSI_ACTION(0i32);
#[doc = "*Required features: `\"Win32_System_Antimalware\"`*"]
pub const AMSI_UAC_MSI_ACTION_MAINTENANCE: AMSI_UAC_MSI_ACTION = AMSI_UAC_MSI_ACTION(3i32);
#[doc = "*Required features: `\"Win32_System_Antimalware\"`*"]
pub const AMSI_UAC_MSI_ACTION_MAX: AMSI_UAC_MSI_ACTION = AMSI_UAC_MSI_ACTION(4i32);
#[doc = "*Required features: `\"Win32_System_Antimalware\"`*"]
pub const AMSI_UAC_MSI_ACTION_UNINSTALL: AMSI_UAC_MSI_ACTION = AMSI_UAC_MSI_ACTION(1i32);
#[doc = "*Required features: `\"Win32_System_Antimalware\"`*"]
pub const AMSI_UAC_MSI_ACTION_UPDATE: AMSI_UAC_MSI_ACTION = AMSI_UAC_MSI_ACTION(2i32);
#[doc = "*Required features: `\"Win32_System_Antimalware\"`*"]
pub const AMSI_UAC_REQUEST_TYPE_AX: AMSI_UAC_REQUEST_TYPE = AMSI_UAC_REQUEST_TYPE(3i32);
#[doc = "*Required features: `\"Win32_System_Antimalware\"`*"]
pub const AMSI_UAC_REQUEST_TYPE_COM: AMSI_UAC_REQUEST_TYPE = AMSI_UAC_REQUEST_TYPE(1i32);
#[doc = "*Required features: `\"Win32_System_Antimalware\"`*"]
pub const AMSI_UAC_REQUEST_TYPE_EXE: AMSI_UAC_REQUEST_TYPE = AMSI_UAC_REQUEST_TYPE(0i32);
#[doc = "*Required features: `\"Win32_System_Antimalware\"`*"]
pub const AMSI_UAC_REQUEST_TYPE_MAX: AMSI_UAC_REQUEST_TYPE = AMSI_UAC_REQUEST_TYPE(5i32);
#[doc = "*Required features: `\"Win32_System_Antimalware\"`*"]
pub const AMSI_UAC_REQUEST_TYPE_MSI: AMSI_UAC_REQUEST_TYPE = AMSI_UAC_REQUEST_TYPE(2i32);
#[doc = "*Required features: `\"Win32_System_Antimalware\"`*"]
pub const AMSI_UAC_REQUEST_TYPE_PACKAGED_APP: AMSI_UAC_REQUEST_TYPE = AMSI_UAC_REQUEST_TYPE(4i32);
#[doc = "*Required features: `\"Win32_System_Antimalware\"`*"]
pub const AMSI_UAC_TRUST_STATE_BLOCKED: AMSI_UAC_TRUST_STATE = AMSI_UAC_TRUST_STATE(2i32);
#[doc = "*Required features: `\"Win32_System_Antimalware\"`*"]
pub const AMSI_UAC_TRUST_STATE_MAX: AMSI_UAC_TRUST_STATE = AMSI_UAC_TRUST_STATE(3i32);
#[doc = "*Required features: `\"Win32_System_Antimalware\"`*"]
pub const AMSI_UAC_TRUST_STATE_TRUSTED: AMSI_UAC_TRUST_STATE = AMSI_UAC_TRUST_STATE(0i32);
#[doc = "*Required features: `\"Win32_System_Antimalware\"`*"]
pub const AMSI_UAC_TRUST_STATE_UNTRUSTED: AMSI_UAC_TRUST_STATE = AMSI_UAC_TRUST_STATE(1i32);
#[doc = "*Required features: `\"Win32_System_Antimalware\"`*"]
pub const CAntimalware: ::windows_core::GUID = ::windows_core::GUID::from_u128(0xfdb00e52_a214_4aa1_8fba_4357bb0072ec);
#[doc = "*Required features: `\"Win32_System_Antimalware\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct AMSI_ATTRIBUTE(pub i32);
impl ::core::marker::Copy for AMSI_ATTRIBUTE {}
impl ::core::clone::Clone for AMSI_ATTRIBUTE {
fn clone(&self) -> Self {
*self
}
}
impl ::core::default::Default for AMSI_ATTRIBUTE {
fn default() -> Self {
Self(0)
}
}
impl ::windows_core::TypeKind for AMSI_ATTRIBUTE {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::fmt::Debug for AMSI_ATTRIBUTE {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_tuple("AMSI_ATTRIBUTE").field(&self.0).finish()
}
}
#[doc = "*Required features: `\"Win32_System_Antimalware\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct AMSI_RESULT(pub i32);
impl ::core::marker::Copy for AMSI_RESULT {}
impl ::core::clone::Clone for AMSI_RESULT {
fn clone(&self) -> Self {
*self
}
}
impl ::core::default::Default for AMSI_RESULT {
fn default() -> Self {
Self(0)
}
}
impl ::windows_core::TypeKind for AMSI_RESULT {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::fmt::Debug for AMSI_RESULT {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_tuple("AMSI_RESULT").field(&self.0).finish()
}
}
#[doc = "*Required features: `\"Win32_System_Antimalware\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct AMSI_UAC_MSI_ACTION(pub i32);
impl ::core::marker::Copy for AMSI_UAC_MSI_ACTION {}
impl ::core::clone::Clone for AMSI_UAC_MSI_ACTION {
fn clone(&self) -> Self {
*self
}
}
impl ::core::default::Default for AMSI_UAC_MSI_ACTION {
fn default() -> Self {
Self(0)
}
}
impl ::windows_core::TypeKind for AMSI_UAC_MSI_ACTION {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::fmt::Debug for AMSI_UAC_MSI_ACTION {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_tuple("AMSI_UAC_MSI_ACTION").field(&self.0).finish()
}
}
#[doc = "*Required features: `\"Win32_System_Antimalware\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct AMSI_UAC_REQUEST_TYPE(pub i32);
impl ::core::marker::Copy for AMSI_UAC_REQUEST_TYPE {}
impl ::core::clone::Clone for AMSI_UAC_REQUEST_TYPE {
fn clone(&self) -> Self {
*self
}
}
impl ::core::default::Default for AMSI_UAC_REQUEST_TYPE {
fn default() -> Self {
Self(0)
}
}
impl ::windows_core::TypeKind for AMSI_UAC_REQUEST_TYPE {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::fmt::Debug for AMSI_UAC_REQUEST_TYPE {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_tuple("AMSI_UAC_REQUEST_TYPE").field(&self.0).finish()
}
}
#[doc = "*Required features: `\"Win32_System_Antimalware\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct AMSI_UAC_TRUST_STATE(pub i32);
impl ::core::marker::Copy for AMSI_UAC_TRUST_STATE {}
impl ::core::clone::Clone for AMSI_UAC_TRUST_STATE {
fn clone(&self) -> Self {
*self
}
}
impl ::core::default::Default for AMSI_UAC_TRUST_STATE {
fn default() -> Self {
Self(0)
}
}
impl ::windows_core::TypeKind for AMSI_UAC_TRUST_STATE {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::fmt::Debug for AMSI_UAC_TRUST_STATE {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_tuple("AMSI_UAC_TRUST_STATE").field(&self.0).finish()
}
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Antimalware\"`*"]
pub struct AMSI_UAC_REQUEST_AX_INFO {
pub ulLength: u32,
pub lpwszLocalInstallPath: ::windows_core::PWSTR,
pub lpwszSourceURL: ::windows_core::PWSTR,
}
impl ::core::marker::Copy for AMSI_UAC_REQUEST_AX_INFO {}
impl ::core::clone::Clone for AMSI_UAC_REQUEST_AX_INFO {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for AMSI_UAC_REQUEST_AX_INFO {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("AMSI_UAC_REQUEST_AX_INFO").field("ulLength", &self.ulLength).field("lpwszLocalInstallPath", &self.lpwszLocalInstallPath).field("lpwszSourceURL", &self.lpwszSourceURL).finish()
}
}
impl ::windows_core::TypeKind for AMSI_UAC_REQUEST_AX_INFO {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for AMSI_UAC_REQUEST_AX_INFO {
fn eq(&self, other: &Self) -> bool {
self.ulLength == other.ulLength && self.lpwszLocalInstallPath == other.lpwszLocalInstallPath && self.lpwszSourceURL == other.lpwszSourceURL
}
}
impl ::core::cmp::Eq for AMSI_UAC_REQUEST_AX_INFO {}
impl ::core::default::Default for AMSI_UAC_REQUEST_AX_INFO {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Antimalware\"`*"]
pub struct AMSI_UAC_REQUEST_COM_INFO {
pub ulLength: u32,
pub lpwszServerBinary: ::windows_core::PWSTR,
pub lpwszRequestor: ::windows_core::PWSTR,
pub Clsid: ::windows_core::GUID,
}
impl ::core::marker::Copy for AMSI_UAC_REQUEST_COM_INFO {}
impl ::core::clone::Clone for AMSI_UAC_REQUEST_COM_INFO {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for AMSI_UAC_REQUEST_COM_INFO {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("AMSI_UAC_REQUEST_COM_INFO").field("ulLength", &self.ulLength).field("lpwszServerBinary", &self.lpwszServerBinary).field("lpwszRequestor", &self.lpwszRequestor).field("Clsid", &self.Clsid).finish()
}
}
impl ::windows_core::TypeKind for AMSI_UAC_REQUEST_COM_INFO {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for AMSI_UAC_REQUEST_COM_INFO {
fn eq(&self, other: &Self) -> bool {
self.ulLength == other.ulLength && self.lpwszServerBinary == other.lpwszServerBinary && self.lpwszRequestor == other.lpwszRequestor && self.Clsid == other.Clsid
}
}
impl ::core::cmp::Eq for AMSI_UAC_REQUEST_COM_INFO {}
impl ::core::default::Default for AMSI_UAC_REQUEST_COM_INFO {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Antimalware\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub struct AMSI_UAC_REQUEST_CONTEXT {
pub ulLength: u32,
pub ulRequestorProcessId: u32,
pub UACTrustState: AMSI_UAC_TRUST_STATE,
pub Type: AMSI_UAC_REQUEST_TYPE,
pub RequestType: AMSI_UAC_REQUEST_CONTEXT_0,
pub bAutoElevateRequest: super::super::Foundation::BOOL,
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::marker::Copy for AMSI_UAC_REQUEST_CONTEXT {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::clone::Clone for AMSI_UAC_REQUEST_CONTEXT {
fn clone(&self) -> Self {
*self
}
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::TypeKind for AMSI_UAC_REQUEST_CONTEXT {
type TypeKind = ::windows_core::CopyType;
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::default::Default for AMSI_UAC_REQUEST_CONTEXT {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Antimalware\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub union AMSI_UAC_REQUEST_CONTEXT_0 {
pub ExeInfo: AMSI_UAC_REQUEST_EXE_INFO,
pub ComInfo: AMSI_UAC_REQUEST_COM_INFO,
pub MsiInfo: AMSI_UAC_REQUEST_MSI_INFO,
pub ActiveXInfo: AMSI_UAC_REQUEST_AX_INFO,
pub PackagedAppInfo: AMSI_UAC_REQUEST_PACKAGED_APP_INFO,
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::marker::Copy for AMSI_UAC_REQUEST_CONTEXT_0 {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::clone::Clone for AMSI_UAC_REQUEST_CONTEXT_0 {
fn clone(&self) -> Self {
*self
}
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::TypeKind for AMSI_UAC_REQUEST_CONTEXT_0 {
type TypeKind = ::windows_core::CopyType;
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::default::Default for AMSI_UAC_REQUEST_CONTEXT_0 {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Antimalware\"`*"]
pub struct AMSI_UAC_REQUEST_EXE_INFO {
pub ulLength: u32,
pub lpwszApplicationName: ::windows_core::PWSTR,
pub lpwszCommandLine: ::windows_core::PWSTR,
pub lpwszDLLParameter: ::windows_core::PWSTR,
}
impl ::core::marker::Copy for AMSI_UAC_REQUEST_EXE_INFO {}
impl ::core::clone::Clone for AMSI_UAC_REQUEST_EXE_INFO {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for AMSI_UAC_REQUEST_EXE_INFO {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("AMSI_UAC_REQUEST_EXE_INFO").field("ulLength", &self.ulLength).field("lpwszApplicationName", &self.lpwszApplicationName).field("lpwszCommandLine", &self.lpwszCommandLine).field("lpwszDLLParameter", &self.lpwszDLLParameter).finish()
}
}
impl ::windows_core::TypeKind for AMSI_UAC_REQUEST_EXE_INFO {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for AMSI_UAC_REQUEST_EXE_INFO {
fn eq(&self, other: &Self) -> bool {
self.ulLength == other.ulLength && self.lpwszApplicationName == other.lpwszApplicationName && self.lpwszCommandLine == other.lpwszCommandLine && self.lpwszDLLParameter == other.lpwszDLLParameter
}
}
impl ::core::cmp::Eq for AMSI_UAC_REQUEST_EXE_INFO {}
impl ::core::default::Default for AMSI_UAC_REQUEST_EXE_INFO {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Antimalware\"`*"]
pub struct AMSI_UAC_REQUEST_MSI_INFO {
pub ulLength: u32,
pub MsiAction: AMSI_UAC_MSI_ACTION,
pub lpwszProductName: ::windows_core::PWSTR,
pub lpwszVersion: ::windows_core::PWSTR,
pub lpwszLanguage: ::windows_core::PWSTR,
pub lpwszManufacturer: ::windows_core::PWSTR,
pub lpwszPackagePath: ::windows_core::PWSTR,
pub lpwszPackageSource: ::windows_core::PWSTR,
pub ulUpdates: u32,
pub ppwszUpdates: *mut ::windows_core::PWSTR,
pub ppwszUpdateSources: *mut ::windows_core::PWSTR,
}
impl ::core::marker::Copy for AMSI_UAC_REQUEST_MSI_INFO {}
impl ::core::clone::Clone for AMSI_UAC_REQUEST_MSI_INFO {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for AMSI_UAC_REQUEST_MSI_INFO {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("AMSI_UAC_REQUEST_MSI_INFO")
.field("ulLength", &self.ulLength)
.field("MsiAction", &self.MsiAction)
.field("lpwszProductName", &self.lpwszProductName)
.field("lpwszVersion", &self.lpwszVersion)
.field("lpwszLanguage", &self.lpwszLanguage)
.field("lpwszManufacturer", &self.lpwszManufacturer)
.field("lpwszPackagePath", &self.lpwszPackagePath)
.field("lpwszPackageSource", &self.lpwszPackageSource)
.field("ulUpdates", &self.ulUpdates)
.field("ppwszUpdates", &self.ppwszUpdates)
.field("ppwszUpdateSources", &self.ppwszUpdateSources)
.finish()
}
}
impl ::windows_core::TypeKind for AMSI_UAC_REQUEST_MSI_INFO {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for AMSI_UAC_REQUEST_MSI_INFO {
fn eq(&self, other: &Self) -> bool {
self.ulLength == other.ulLength && self.MsiAction == other.MsiAction && self.lpwszProductName == other.lpwszProductName && self.lpwszVersion == other.lpwszVersion && self.lpwszLanguage == other.lpwszLanguage && self.lpwszManufacturer == other.lpwszManufacturer && self.lpwszPackagePath == other.lpwszPackagePath && self.lpwszPackageSource == other.lpwszPackageSource && self.ulUpdates == other.ulUpdates && self.ppwszUpdates == other.ppwszUpdates && self.ppwszUpdateSources == other.ppwszUpdateSources
}
}
impl ::core::cmp::Eq for AMSI_UAC_REQUEST_MSI_INFO {}
impl ::core::default::Default for AMSI_UAC_REQUEST_MSI_INFO {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_Antimalware\"`*"]
pub struct AMSI_UAC_REQUEST_PACKAGED_APP_INFO {
pub ulLength: u32,
pub lpwszApplicationName: ::windows_core::PWSTR,
pub lpwszCommandLine: ::windows_core::PWSTR,
pub lpPackageFamilyName: ::windows_core::PWSTR,
pub lpApplicationId: ::windows_core::PWSTR,
}
impl ::core::marker::Copy for AMSI_UAC_REQUEST_PACKAGED_APP_INFO {}
impl ::core::clone::Clone for AMSI_UAC_REQUEST_PACKAGED_APP_INFO {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for AMSI_UAC_REQUEST_PACKAGED_APP_INFO {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("AMSI_UAC_REQUEST_PACKAGED_APP_INFO").field("ulLength", &self.ulLength).field("lpwszApplicationName", &self.lpwszApplicationName).field("lpwszCommandLine", &self.lpwszCommandLine).field("lpPackageFamilyName", &self.lpPackageFamilyName).field("lpApplicationId", &self.lpApplicationId).finish()
}
}
impl ::windows_core::TypeKind for AMSI_UAC_REQUEST_PACKAGED_APP_INFO {
type TypeKind = ::windows_core::CopyType;
}
impl ::core::cmp::PartialEq for AMSI_UAC_REQUEST_PACKAGED_APP_INFO {
fn eq(&self, other: &Self) -> bool {
self.ulLength == other.ulLength && self.lpwszApplicationName == other.lpwszApplicationName && self.lpwszCommandLine == other.lpwszCommandLine && self.lpPackageFamilyName == other.lpPackageFamilyName && self.lpApplicationId == other.lpApplicationId
}
}
impl ::core::cmp::Eq for AMSI_UAC_REQUEST_PACKAGED_APP_INFO {}
impl ::core::default::Default for AMSI_UAC_REQUEST_PACKAGED_APP_INFO {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct HAMSICONTEXT(pub isize);
impl HAMSICONTEXT {
pub fn is_invalid(&self) -> bool {
self.0 == -1 || self.0 == 0
}
}
impl ::core::default::Default for HAMSICONTEXT {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
impl ::core::clone::Clone for HAMSICONTEXT {
fn clone(&self) -> Self {
*self
}
}
impl ::core::marker::Copy for HAMSICONTEXT {}
impl ::core::fmt::Debug for HAMSICONTEXT {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_tuple("HAMSICONTEXT").field(&self.0).finish()
}
}
impl ::windows_core::TypeKind for HAMSICONTEXT {
type TypeKind = ::windows_core::CopyType;
}
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct HAMSISESSION(pub isize);
impl HAMSISESSION {
pub fn is_invalid(&self) -> bool {
self.0 == -1 || self.0 == 0
}
}
impl ::core::default::Default for HAMSISESSION {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
impl ::core::clone::Clone for HAMSISESSION {
fn clone(&self) -> Self {
*self
}
}
impl ::core::marker::Copy for HAMSISESSION {}
impl ::core::fmt::Debug for HAMSISESSION {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_tuple("HAMSISESSION").field(&self.0).finish()
}
}
impl ::windows_core::TypeKind for HAMSISESSION {
type TypeKind = ::windows_core::CopyType;
}
#[cfg(feature = "implement")]
::core::include!("impl.rs");