#[cfg_attr(windows, link(name = "windows"))] extern "system" { #[doc = "*Required features: `\"Win32_System_Antimalware\"`*"] pub fn AmsiCloseSession(amsicontext: HAMSICONTEXT, amsisession: HAMSISESSION); #[doc = "*Required features: `\"Win32_System_Antimalware\"`*"] pub fn AmsiInitialize(appname: ::windows_sys::core::PCWSTR, amsicontext: *mut HAMSICONTEXT) -> ::windows_sys::core::HRESULT; #[doc = "*Required features: `\"Win32_System_Antimalware\"`*"] pub fn AmsiNotifyOperation(amsicontext: HAMSICONTEXT, buffer: *const ::core::ffi::c_void, length: u32, contentname: ::windows_sys::core::PCWSTR, result: *mut AMSI_RESULT) -> ::windows_sys::core::HRESULT; #[doc = "*Required features: `\"Win32_System_Antimalware\"`*"] pub fn AmsiOpenSession(amsicontext: HAMSICONTEXT, amsisession: *mut HAMSISESSION) -> ::windows_sys::core::HRESULT; #[doc = "*Required features: `\"Win32_System_Antimalware\"`*"] pub fn AmsiScanBuffer(amsicontext: HAMSICONTEXT, buffer: *const ::core::ffi::c_void, length: u32, contentname: ::windows_sys::core::PCWSTR, amsisession: HAMSISESSION, result: *mut AMSI_RESULT) -> ::windows_sys::core::HRESULT; #[doc = "*Required features: `\"Win32_System_Antimalware\"`*"] pub fn AmsiScanString(amsicontext: HAMSICONTEXT, string: ::windows_sys::core::PCWSTR, contentname: ::windows_sys::core::PCWSTR, amsisession: HAMSISESSION, result: *mut AMSI_RESULT) -> ::windows_sys::core::HRESULT; #[doc = "*Required features: `\"Win32_System_Antimalware\"`*"] pub fn AmsiUninitialize(amsicontext: HAMSICONTEXT); #[doc = "*Required features: `\"Win32_System_Antimalware\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub fn InstallELAMCertificateInfo(elamfile: super::super::Foundation::HANDLE) -> super::super::Foundation::BOOL; } pub type IAmsiStream = *mut ::core::ffi::c_void; pub type IAntimalware = *mut ::core::ffi::c_void; pub type IAntimalware2 = *mut ::core::ffi::c_void; pub type IAntimalwareProvider = *mut ::core::ffi::c_void; pub type IAntimalwareProvider2 = *mut ::core::ffi::c_void; pub type IAntimalwareUacProvider = *mut ::core::ffi::c_void; pub const CAntimalware: ::windows_sys::core::GUID = ::windows_sys::core::GUID { data1: 4256173650, data2: 41492, data3: 19105, data4: [143, 186, 67, 87, 187, 0, 114, 236] }; #[doc = "*Required features: `\"Win32_System_Antimalware\"`*"] pub type AMSI_ATTRIBUTE = i32; #[doc = "*Required features: `\"Win32_System_Antimalware\"`*"] pub const AMSI_ATTRIBUTE_APP_NAME: AMSI_ATTRIBUTE = 0i32; #[doc = "*Required features: `\"Win32_System_Antimalware\"`*"] pub const AMSI_ATTRIBUTE_CONTENT_NAME: AMSI_ATTRIBUTE = 1i32; #[doc = "*Required features: `\"Win32_System_Antimalware\"`*"] pub const AMSI_ATTRIBUTE_CONTENT_SIZE: AMSI_ATTRIBUTE = 2i32; #[doc = "*Required features: `\"Win32_System_Antimalware\"`*"] pub const AMSI_ATTRIBUTE_CONTENT_ADDRESS: AMSI_ATTRIBUTE = 3i32; #[doc = "*Required features: `\"Win32_System_Antimalware\"`*"] pub const AMSI_ATTRIBUTE_SESSION: AMSI_ATTRIBUTE = 4i32; #[doc = "*Required features: `\"Win32_System_Antimalware\"`*"] pub const AMSI_ATTRIBUTE_REDIRECT_CHAIN_SIZE: AMSI_ATTRIBUTE = 5i32; #[doc = "*Required features: `\"Win32_System_Antimalware\"`*"] pub const AMSI_ATTRIBUTE_REDIRECT_CHAIN_ADDRESS: AMSI_ATTRIBUTE = 6i32; #[doc = "*Required features: `\"Win32_System_Antimalware\"`*"] pub const AMSI_ATTRIBUTE_ALL_SIZE: AMSI_ATTRIBUTE = 7i32; #[doc = "*Required features: `\"Win32_System_Antimalware\"`*"] pub const AMSI_ATTRIBUTE_ALL_ADDRESS: AMSI_ATTRIBUTE = 8i32; #[doc = "*Required features: `\"Win32_System_Antimalware\"`*"] pub const AMSI_ATTRIBUTE_QUIET: AMSI_ATTRIBUTE = 9i32; #[doc = "*Required features: `\"Win32_System_Antimalware\"`*"] pub type AMSI_RESULT = i32; #[doc = "*Required features: `\"Win32_System_Antimalware\"`*"] pub const AMSI_RESULT_CLEAN: AMSI_RESULT = 0i32; #[doc = "*Required features: `\"Win32_System_Antimalware\"`*"] pub const AMSI_RESULT_NOT_DETECTED: AMSI_RESULT = 1i32; #[doc = "*Required features: `\"Win32_System_Antimalware\"`*"] pub const AMSI_RESULT_BLOCKED_BY_ADMIN_START: AMSI_RESULT = 16384i32; #[doc = "*Required features: `\"Win32_System_Antimalware\"`*"] pub const AMSI_RESULT_BLOCKED_BY_ADMIN_END: AMSI_RESULT = 20479i32; #[doc = "*Required features: `\"Win32_System_Antimalware\"`*"] pub const AMSI_RESULT_DETECTED: AMSI_RESULT = 32768i32; #[doc = "*Required features: `\"Win32_System_Antimalware\"`*"] pub type AMSI_UAC_MSI_ACTION = i32; #[doc = "*Required features: `\"Win32_System_Antimalware\"`*"] pub const AMSI_UAC_MSI_ACTION_INSTALL: AMSI_UAC_MSI_ACTION = 0i32; #[doc = "*Required features: `\"Win32_System_Antimalware\"`*"] pub const AMSI_UAC_MSI_ACTION_UNINSTALL: AMSI_UAC_MSI_ACTION = 1i32; #[doc = "*Required features: `\"Win32_System_Antimalware\"`*"] pub const AMSI_UAC_MSI_ACTION_UPDATE: AMSI_UAC_MSI_ACTION = 2i32; #[doc = "*Required features: `\"Win32_System_Antimalware\"`*"] pub const AMSI_UAC_MSI_ACTION_MAINTENANCE: AMSI_UAC_MSI_ACTION = 3i32; #[doc = "*Required features: `\"Win32_System_Antimalware\"`*"] pub const AMSI_UAC_MSI_ACTION_MAX: AMSI_UAC_MSI_ACTION = 4i32; #[doc = "*Required features: `\"Win32_System_Antimalware\"`*"] pub type AMSI_UAC_REQUEST_TYPE = i32; #[doc = "*Required features: `\"Win32_System_Antimalware\"`*"] pub const AMSI_UAC_REQUEST_TYPE_EXE: AMSI_UAC_REQUEST_TYPE = 0i32; #[doc = "*Required features: `\"Win32_System_Antimalware\"`*"] pub const AMSI_UAC_REQUEST_TYPE_COM: AMSI_UAC_REQUEST_TYPE = 1i32; #[doc = "*Required features: `\"Win32_System_Antimalware\"`*"] pub const AMSI_UAC_REQUEST_TYPE_MSI: AMSI_UAC_REQUEST_TYPE = 2i32; #[doc = "*Required features: `\"Win32_System_Antimalware\"`*"] pub const AMSI_UAC_REQUEST_TYPE_AX: AMSI_UAC_REQUEST_TYPE = 3i32; #[doc = "*Required features: `\"Win32_System_Antimalware\"`*"] pub const AMSI_UAC_REQUEST_TYPE_PACKAGED_APP: AMSI_UAC_REQUEST_TYPE = 4i32; #[doc = "*Required features: `\"Win32_System_Antimalware\"`*"] pub const AMSI_UAC_REQUEST_TYPE_MAX: AMSI_UAC_REQUEST_TYPE = 5i32; #[doc = "*Required features: `\"Win32_System_Antimalware\"`*"] pub type AMSI_UAC_TRUST_STATE = i32; #[doc = "*Required features: `\"Win32_System_Antimalware\"`*"] pub const AMSI_UAC_TRUST_STATE_TRUSTED: AMSI_UAC_TRUST_STATE = 0i32; #[doc = "*Required features: `\"Win32_System_Antimalware\"`*"] pub const AMSI_UAC_TRUST_STATE_UNTRUSTED: AMSI_UAC_TRUST_STATE = 1i32; #[doc = "*Required features: `\"Win32_System_Antimalware\"`*"] pub const AMSI_UAC_TRUST_STATE_BLOCKED: AMSI_UAC_TRUST_STATE = 2i32; #[doc = "*Required features: `\"Win32_System_Antimalware\"`*"] pub const AMSI_UAC_TRUST_STATE_MAX: AMSI_UAC_TRUST_STATE = 3i32; #[repr(C)] #[doc = "*Required features: `\"Win32_System_Antimalware\"`*"] pub struct AMSI_UAC_REQUEST_AX_INFO { pub ulLength: u32, pub lpwszLocalInstallPath: ::windows_sys::core::PWSTR, pub lpwszSourceURL: ::windows_sys::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 } } #[repr(C)] #[doc = "*Required features: `\"Win32_System_Antimalware\"`*"] pub struct AMSI_UAC_REQUEST_COM_INFO { pub ulLength: u32, pub lpwszServerBinary: ::windows_sys::core::PWSTR, pub lpwszRequestor: ::windows_sys::core::PWSTR, pub Clsid: ::windows_sys::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 } } #[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 } } #[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 } } #[repr(C)] #[doc = "*Required features: `\"Win32_System_Antimalware\"`*"] pub struct AMSI_UAC_REQUEST_EXE_INFO { pub ulLength: u32, pub lpwszApplicationName: ::windows_sys::core::PWSTR, pub lpwszCommandLine: ::windows_sys::core::PWSTR, pub lpwszDLLParameter: ::windows_sys::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 } } #[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_sys::core::PWSTR, pub lpwszVersion: ::windows_sys::core::PWSTR, pub lpwszLanguage: ::windows_sys::core::PWSTR, pub lpwszManufacturer: ::windows_sys::core::PWSTR, pub lpwszPackagePath: ::windows_sys::core::PWSTR, pub lpwszPackageSource: ::windows_sys::core::PWSTR, pub ulUpdates: u32, pub ppwszUpdates: *mut ::windows_sys::core::PWSTR, pub ppwszUpdateSources: *mut ::windows_sys::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 } } #[repr(C)] #[doc = "*Required features: `\"Win32_System_Antimalware\"`*"] pub struct AMSI_UAC_REQUEST_PACKAGED_APP_INFO { pub ulLength: u32, pub lpwszApplicationName: ::windows_sys::core::PWSTR, pub lpwszCommandLine: ::windows_sys::core::PWSTR, pub lpPackageFamilyName: ::windows_sys::core::PWSTR, pub lpApplicationId: ::windows_sys::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 } } pub type HAMSICONTEXT = isize; pub type HAMSISESSION = isize;