blob: 3aa75099bcac7c522de8d4920fcc1672116c20e1 [file] [log] [blame]
#[doc = "*Required features: `\"Win32_System_JobObjects\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn AssignProcessToJobObject<P0, P1>(hjob: P0, hprocess: P1) -> super::super::Foundation::BOOL
where
P0: ::windows::core::IntoParam<super::super::Foundation::HANDLE>,
P1: ::windows::core::IntoParam<super::super::Foundation::HANDLE>,
{
::windows::imp::link ! ( "kernel32.dll""system" fn AssignProcessToJobObject ( hjob : super::super::Foundation:: HANDLE , hprocess : super::super::Foundation:: HANDLE ) -> super::super::Foundation:: BOOL );
AssignProcessToJobObject(hjob.into_param().abi(), hprocess.into_param().abi())
}
#[doc = "*Required features: `\"Win32_System_JobObjects\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))]
#[inline]
pub unsafe fn CreateJobObjectA<P0>(lpjobattributes: ::core::option::Option<*const super::super::Security::SECURITY_ATTRIBUTES>, lpname: P0) -> ::windows::core::Result<super::super::Foundation::HANDLE>
where
P0: ::windows::core::IntoParam<::windows::core::PCSTR>,
{
::windows::imp::link ! ( "kernel32.dll""system" fn CreateJobObjectA ( lpjobattributes : *const super::super::Security:: SECURITY_ATTRIBUTES , lpname : :: windows::core::PCSTR ) -> super::super::Foundation:: HANDLE );
let result__ = CreateJobObjectA(::core::mem::transmute(lpjobattributes.unwrap_or(::std::ptr::null())), lpname.into_param().abi());
::windows::imp::then(!result__.is_invalid(), || result__).ok_or_else(::windows::core::Error::from_win32)
}
#[doc = "*Required features: `\"Win32_System_JobObjects\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))]
#[inline]
pub unsafe fn CreateJobObjectW<P0>(lpjobattributes: ::core::option::Option<*const super::super::Security::SECURITY_ATTRIBUTES>, lpname: P0) -> ::windows::core::Result<super::super::Foundation::HANDLE>
where
P0: ::windows::core::IntoParam<::windows::core::PCWSTR>,
{
::windows::imp::link ! ( "kernel32.dll""system" fn CreateJobObjectW ( lpjobattributes : *const super::super::Security:: SECURITY_ATTRIBUTES , lpname : :: windows::core::PCWSTR ) -> super::super::Foundation:: HANDLE );
let result__ = CreateJobObjectW(::core::mem::transmute(lpjobattributes.unwrap_or(::std::ptr::null())), lpname.into_param().abi());
::windows::imp::then(!result__.is_invalid(), || result__).ok_or_else(::windows::core::Error::from_win32)
}
#[doc = "*Required features: `\"Win32_System_JobObjects\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn CreateJobSet(userjobset: &[JOB_SET_ARRAY], flags: u32) -> super::super::Foundation::BOOL {
::windows::imp::link ! ( "kernel32.dll""system" fn CreateJobSet ( numjob : u32 , userjobset : *const JOB_SET_ARRAY , flags : u32 ) -> super::super::Foundation:: BOOL );
CreateJobSet(userjobset.len() as _, ::core::mem::transmute(userjobset.as_ptr()), flags)
}
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
#[inline]
pub unsafe fn FreeMemoryJobObject(buffer: *const ::core::ffi::c_void) {
::windows::imp::link ! ( "kernel32.dll""system" fn FreeMemoryJobObject ( buffer : *const ::core::ffi::c_void ) -> ( ) );
FreeMemoryJobObject(buffer)
}
#[doc = "*Required features: `\"Win32_System_JobObjects\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn IsProcessInJob<P0, P1>(processhandle: P0, jobhandle: P1, result: *mut super::super::Foundation::BOOL) -> super::super::Foundation::BOOL
where
P0: ::windows::core::IntoParam<super::super::Foundation::HANDLE>,
P1: ::windows::core::IntoParam<super::super::Foundation::HANDLE>,
{
::windows::imp::link ! ( "kernel32.dll""system" fn IsProcessInJob ( processhandle : super::super::Foundation:: HANDLE , jobhandle : super::super::Foundation:: HANDLE , result : *mut super::super::Foundation:: BOOL ) -> super::super::Foundation:: BOOL );
IsProcessInJob(processhandle.into_param().abi(), jobhandle.into_param().abi(), result)
}
#[doc = "*Required features: `\"Win32_System_JobObjects\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn OpenJobObjectA<P0, P1>(dwdesiredaccess: u32, binherithandle: P0, lpname: P1) -> ::windows::core::Result<super::super::Foundation::HANDLE>
where
P0: ::windows::core::IntoParam<super::super::Foundation::BOOL>,
P1: ::windows::core::IntoParam<::windows::core::PCSTR>,
{
::windows::imp::link ! ( "kernel32.dll""system" fn OpenJobObjectA ( dwdesiredaccess : u32 , binherithandle : super::super::Foundation:: BOOL , lpname : :: windows::core::PCSTR ) -> super::super::Foundation:: HANDLE );
let result__ = OpenJobObjectA(dwdesiredaccess, binherithandle.into_param().abi(), lpname.into_param().abi());
::windows::imp::then(!result__.is_invalid(), || result__).ok_or_else(::windows::core::Error::from_win32)
}
#[doc = "*Required features: `\"Win32_System_JobObjects\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn OpenJobObjectW<P0, P1>(dwdesiredaccess: u32, binherithandle: P0, lpname: P1) -> ::windows::core::Result<super::super::Foundation::HANDLE>
where
P0: ::windows::core::IntoParam<super::super::Foundation::BOOL>,
P1: ::windows::core::IntoParam<::windows::core::PCWSTR>,
{
::windows::imp::link ! ( "kernel32.dll""system" fn OpenJobObjectW ( dwdesiredaccess : u32 , binherithandle : super::super::Foundation:: BOOL , lpname : :: windows::core::PCWSTR ) -> super::super::Foundation:: HANDLE );
let result__ = OpenJobObjectW(dwdesiredaccess, binherithandle.into_param().abi(), lpname.into_param().abi());
::windows::imp::then(!result__.is_invalid(), || result__).ok_or_else(::windows::core::Error::from_win32)
}
#[doc = "*Required features: `\"Win32_System_JobObjects\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn QueryInformationJobObject<P0>(hjob: P0, jobobjectinformationclass: JOBOBJECTINFOCLASS, lpjobobjectinformation: *mut ::core::ffi::c_void, cbjobobjectinformationlength: u32, lpreturnlength: ::core::option::Option<*mut u32>) -> super::super::Foundation::BOOL
where
P0: ::windows::core::IntoParam<super::super::Foundation::HANDLE>,
{
::windows::imp::link ! ( "kernel32.dll""system" fn QueryInformationJobObject ( hjob : super::super::Foundation:: HANDLE , jobobjectinformationclass : JOBOBJECTINFOCLASS , lpjobobjectinformation : *mut ::core::ffi::c_void , cbjobobjectinformationlength : u32 , lpreturnlength : *mut u32 ) -> super::super::Foundation:: BOOL );
QueryInformationJobObject(hjob.into_param().abi(), jobobjectinformationclass, lpjobobjectinformation, cbjobobjectinformationlength, ::core::mem::transmute(lpreturnlength.unwrap_or(::std::ptr::null_mut())))
}
#[doc = "*Required features: `\"Win32_System_JobObjects\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn QueryIoRateControlInformationJobObject<P0, P1>(hjob: P0, volumename: P1, infoblocks: *mut *mut JOBOBJECT_IO_RATE_CONTROL_INFORMATION, infoblockcount: *mut u32) -> u32
where
P0: ::windows::core::IntoParam<super::super::Foundation::HANDLE>,
P1: ::windows::core::IntoParam<::windows::core::PCWSTR>,
{
::windows::imp::link ! ( "kernel32.dll""system" fn QueryIoRateControlInformationJobObject ( hjob : super::super::Foundation:: HANDLE , volumename : :: windows::core::PCWSTR , infoblocks : *mut *mut JOBOBJECT_IO_RATE_CONTROL_INFORMATION , infoblockcount : *mut u32 ) -> u32 );
QueryIoRateControlInformationJobObject(hjob.into_param().abi(), volumename.into_param().abi(), infoblocks, infoblockcount)
}
#[doc = "*Required features: `\"Win32_System_JobObjects\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SetInformationJobObject<P0>(hjob: P0, jobobjectinformationclass: JOBOBJECTINFOCLASS, lpjobobjectinformation: *const ::core::ffi::c_void, cbjobobjectinformationlength: u32) -> super::super::Foundation::BOOL
where
P0: ::windows::core::IntoParam<super::super::Foundation::HANDLE>,
{
::windows::imp::link ! ( "kernel32.dll""system" fn SetInformationJobObject ( hjob : super::super::Foundation:: HANDLE , jobobjectinformationclass : JOBOBJECTINFOCLASS , lpjobobjectinformation : *const ::core::ffi::c_void , cbjobobjectinformationlength : u32 ) -> super::super::Foundation:: BOOL );
SetInformationJobObject(hjob.into_param().abi(), jobobjectinformationclass, lpjobobjectinformation, cbjobobjectinformationlength)
}
#[doc = "*Required features: `\"Win32_System_JobObjects\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn SetIoRateControlInformationJobObject<P0>(hjob: P0, ioratecontrolinfo: *const JOBOBJECT_IO_RATE_CONTROL_INFORMATION) -> u32
where
P0: ::windows::core::IntoParam<super::super::Foundation::HANDLE>,
{
::windows::imp::link ! ( "kernel32.dll""system" fn SetIoRateControlInformationJobObject ( hjob : super::super::Foundation:: HANDLE , ioratecontrolinfo : *const JOBOBJECT_IO_RATE_CONTROL_INFORMATION ) -> u32 );
SetIoRateControlInformationJobObject(hjob.into_param().abi(), ioratecontrolinfo)
}
#[doc = "*Required features: `\"Win32_System_JobObjects\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn TerminateJobObject<P0>(hjob: P0, uexitcode: u32) -> super::super::Foundation::BOOL
where
P0: ::windows::core::IntoParam<super::super::Foundation::HANDLE>,
{
::windows::imp::link ! ( "kernel32.dll""system" fn TerminateJobObject ( hjob : super::super::Foundation:: HANDLE , uexitcode : u32 ) -> super::super::Foundation:: BOOL );
TerminateJobObject(hjob.into_param().abi(), uexitcode)
}
#[doc = "*Required features: `\"Win32_System_JobObjects\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
#[inline]
pub unsafe fn UserHandleGrantAccess<P0, P1, P2>(huserhandle: P0, hjob: P1, bgrant: P2) -> super::super::Foundation::BOOL
where
P0: ::windows::core::IntoParam<super::super::Foundation::HANDLE>,
P1: ::windows::core::IntoParam<super::super::Foundation::HANDLE>,
P2: ::windows::core::IntoParam<super::super::Foundation::BOOL>,
{
::windows::imp::link ! ( "user32.dll""system" fn UserHandleGrantAccess ( huserhandle : super::super::Foundation:: HANDLE , hjob : super::super::Foundation:: HANDLE , bgrant : super::super::Foundation:: BOOL ) -> super::super::Foundation:: BOOL );
UserHandleGrantAccess(huserhandle.into_param().abi(), hjob.into_param().abi(), bgrant.into_param().abi())
}
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct JOBOBJECTINFOCLASS(pub i32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const JobObjectBasicAccountingInformation: JOBOBJECTINFOCLASS = JOBOBJECTINFOCLASS(1i32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const JobObjectBasicLimitInformation: JOBOBJECTINFOCLASS = JOBOBJECTINFOCLASS(2i32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const JobObjectBasicProcessIdList: JOBOBJECTINFOCLASS = JOBOBJECTINFOCLASS(3i32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const JobObjectBasicUIRestrictions: JOBOBJECTINFOCLASS = JOBOBJECTINFOCLASS(4i32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const JobObjectSecurityLimitInformation: JOBOBJECTINFOCLASS = JOBOBJECTINFOCLASS(5i32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const JobObjectEndOfJobTimeInformation: JOBOBJECTINFOCLASS = JOBOBJECTINFOCLASS(6i32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const JobObjectAssociateCompletionPortInformation: JOBOBJECTINFOCLASS = JOBOBJECTINFOCLASS(7i32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const JobObjectBasicAndIoAccountingInformation: JOBOBJECTINFOCLASS = JOBOBJECTINFOCLASS(8i32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const JobObjectExtendedLimitInformation: JOBOBJECTINFOCLASS = JOBOBJECTINFOCLASS(9i32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const JobObjectJobSetInformation: JOBOBJECTINFOCLASS = JOBOBJECTINFOCLASS(10i32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const JobObjectGroupInformation: JOBOBJECTINFOCLASS = JOBOBJECTINFOCLASS(11i32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const JobObjectNotificationLimitInformation: JOBOBJECTINFOCLASS = JOBOBJECTINFOCLASS(12i32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const JobObjectLimitViolationInformation: JOBOBJECTINFOCLASS = JOBOBJECTINFOCLASS(13i32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const JobObjectGroupInformationEx: JOBOBJECTINFOCLASS = JOBOBJECTINFOCLASS(14i32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const JobObjectCpuRateControlInformation: JOBOBJECTINFOCLASS = JOBOBJECTINFOCLASS(15i32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const JobObjectCompletionFilter: JOBOBJECTINFOCLASS = JOBOBJECTINFOCLASS(16i32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const JobObjectCompletionCounter: JOBOBJECTINFOCLASS = JOBOBJECTINFOCLASS(17i32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const JobObjectReserved1Information: JOBOBJECTINFOCLASS = JOBOBJECTINFOCLASS(18i32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const JobObjectReserved2Information: JOBOBJECTINFOCLASS = JOBOBJECTINFOCLASS(19i32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const JobObjectReserved3Information: JOBOBJECTINFOCLASS = JOBOBJECTINFOCLASS(20i32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const JobObjectReserved4Information: JOBOBJECTINFOCLASS = JOBOBJECTINFOCLASS(21i32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const JobObjectReserved5Information: JOBOBJECTINFOCLASS = JOBOBJECTINFOCLASS(22i32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const JobObjectReserved6Information: JOBOBJECTINFOCLASS = JOBOBJECTINFOCLASS(23i32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const JobObjectReserved7Information: JOBOBJECTINFOCLASS = JOBOBJECTINFOCLASS(24i32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const JobObjectReserved8Information: JOBOBJECTINFOCLASS = JOBOBJECTINFOCLASS(25i32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const JobObjectReserved9Information: JOBOBJECTINFOCLASS = JOBOBJECTINFOCLASS(26i32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const JobObjectReserved10Information: JOBOBJECTINFOCLASS = JOBOBJECTINFOCLASS(27i32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const JobObjectReserved11Information: JOBOBJECTINFOCLASS = JOBOBJECTINFOCLASS(28i32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const JobObjectReserved12Information: JOBOBJECTINFOCLASS = JOBOBJECTINFOCLASS(29i32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const JobObjectReserved13Information: JOBOBJECTINFOCLASS = JOBOBJECTINFOCLASS(30i32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const JobObjectReserved14Information: JOBOBJECTINFOCLASS = JOBOBJECTINFOCLASS(31i32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const JobObjectNetRateControlInformation: JOBOBJECTINFOCLASS = JOBOBJECTINFOCLASS(32i32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const JobObjectNotificationLimitInformation2: JOBOBJECTINFOCLASS = JOBOBJECTINFOCLASS(33i32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const JobObjectLimitViolationInformation2: JOBOBJECTINFOCLASS = JOBOBJECTINFOCLASS(34i32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const JobObjectCreateSilo: JOBOBJECTINFOCLASS = JOBOBJECTINFOCLASS(35i32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const JobObjectSiloBasicInformation: JOBOBJECTINFOCLASS = JOBOBJECTINFOCLASS(36i32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const JobObjectReserved15Information: JOBOBJECTINFOCLASS = JOBOBJECTINFOCLASS(37i32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const JobObjectReserved16Information: JOBOBJECTINFOCLASS = JOBOBJECTINFOCLASS(38i32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const JobObjectReserved17Information: JOBOBJECTINFOCLASS = JOBOBJECTINFOCLASS(39i32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const JobObjectReserved18Information: JOBOBJECTINFOCLASS = JOBOBJECTINFOCLASS(40i32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const JobObjectReserved19Information: JOBOBJECTINFOCLASS = JOBOBJECTINFOCLASS(41i32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const JobObjectReserved20Information: JOBOBJECTINFOCLASS = JOBOBJECTINFOCLASS(42i32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const JobObjectReserved21Information: JOBOBJECTINFOCLASS = JOBOBJECTINFOCLASS(43i32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const JobObjectReserved22Information: JOBOBJECTINFOCLASS = JOBOBJECTINFOCLASS(44i32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const JobObjectReserved23Information: JOBOBJECTINFOCLASS = JOBOBJECTINFOCLASS(45i32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const JobObjectReserved24Information: JOBOBJECTINFOCLASS = JOBOBJECTINFOCLASS(46i32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const JobObjectReserved25Information: JOBOBJECTINFOCLASS = JOBOBJECTINFOCLASS(47i32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const MaxJobObjectInfoClass: JOBOBJECTINFOCLASS = JOBOBJECTINFOCLASS(48i32);
impl ::core::marker::Copy for JOBOBJECTINFOCLASS {}
impl ::core::clone::Clone for JOBOBJECTINFOCLASS {
fn clone(&self) -> Self {
*self
}
}
impl ::core::default::Default for JOBOBJECTINFOCLASS {
fn default() -> Self {
Self(0)
}
}
impl ::windows::core::TypeKind for JOBOBJECTINFOCLASS {
type TypeKind = ::windows::core::CopyType;
}
impl ::core::fmt::Debug for JOBOBJECTINFOCLASS {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_tuple("JOBOBJECTINFOCLASS").field(&self.0).finish()
}
}
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct JOBOBJECT_IO_ATTRIBUTION_CONTROL_FLAGS(pub i32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const JOBOBJECT_IO_ATTRIBUTION_CONTROL_ENABLE: JOBOBJECT_IO_ATTRIBUTION_CONTROL_FLAGS = JOBOBJECT_IO_ATTRIBUTION_CONTROL_FLAGS(1i32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const JOBOBJECT_IO_ATTRIBUTION_CONTROL_DISABLE: JOBOBJECT_IO_ATTRIBUTION_CONTROL_FLAGS = JOBOBJECT_IO_ATTRIBUTION_CONTROL_FLAGS(2i32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const JOBOBJECT_IO_ATTRIBUTION_CONTROL_VALID_FLAGS: JOBOBJECT_IO_ATTRIBUTION_CONTROL_FLAGS = JOBOBJECT_IO_ATTRIBUTION_CONTROL_FLAGS(3i32);
impl ::core::marker::Copy for JOBOBJECT_IO_ATTRIBUTION_CONTROL_FLAGS {}
impl ::core::clone::Clone for JOBOBJECT_IO_ATTRIBUTION_CONTROL_FLAGS {
fn clone(&self) -> Self {
*self
}
}
impl ::core::default::Default for JOBOBJECT_IO_ATTRIBUTION_CONTROL_FLAGS {
fn default() -> Self {
Self(0)
}
}
impl ::windows::core::TypeKind for JOBOBJECT_IO_ATTRIBUTION_CONTROL_FLAGS {
type TypeKind = ::windows::core::CopyType;
}
impl ::core::fmt::Debug for JOBOBJECT_IO_ATTRIBUTION_CONTROL_FLAGS {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_tuple("JOBOBJECT_IO_ATTRIBUTION_CONTROL_FLAGS").field(&self.0).finish()
}
}
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct JOBOBJECT_RATE_CONTROL_TOLERANCE(pub i32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const ToleranceLow: JOBOBJECT_RATE_CONTROL_TOLERANCE = JOBOBJECT_RATE_CONTROL_TOLERANCE(1i32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const ToleranceMedium: JOBOBJECT_RATE_CONTROL_TOLERANCE = JOBOBJECT_RATE_CONTROL_TOLERANCE(2i32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const ToleranceHigh: JOBOBJECT_RATE_CONTROL_TOLERANCE = JOBOBJECT_RATE_CONTROL_TOLERANCE(3i32);
impl ::core::marker::Copy for JOBOBJECT_RATE_CONTROL_TOLERANCE {}
impl ::core::clone::Clone for JOBOBJECT_RATE_CONTROL_TOLERANCE {
fn clone(&self) -> Self {
*self
}
}
impl ::core::default::Default for JOBOBJECT_RATE_CONTROL_TOLERANCE {
fn default() -> Self {
Self(0)
}
}
impl ::windows::core::TypeKind for JOBOBJECT_RATE_CONTROL_TOLERANCE {
type TypeKind = ::windows::core::CopyType;
}
impl ::core::fmt::Debug for JOBOBJECT_RATE_CONTROL_TOLERANCE {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_tuple("JOBOBJECT_RATE_CONTROL_TOLERANCE").field(&self.0).finish()
}
}
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct JOBOBJECT_RATE_CONTROL_TOLERANCE_INTERVAL(pub i32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const ToleranceIntervalShort: JOBOBJECT_RATE_CONTROL_TOLERANCE_INTERVAL = JOBOBJECT_RATE_CONTROL_TOLERANCE_INTERVAL(1i32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const ToleranceIntervalMedium: JOBOBJECT_RATE_CONTROL_TOLERANCE_INTERVAL = JOBOBJECT_RATE_CONTROL_TOLERANCE_INTERVAL(2i32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const ToleranceIntervalLong: JOBOBJECT_RATE_CONTROL_TOLERANCE_INTERVAL = JOBOBJECT_RATE_CONTROL_TOLERANCE_INTERVAL(3i32);
impl ::core::marker::Copy for JOBOBJECT_RATE_CONTROL_TOLERANCE_INTERVAL {}
impl ::core::clone::Clone for JOBOBJECT_RATE_CONTROL_TOLERANCE_INTERVAL {
fn clone(&self) -> Self {
*self
}
}
impl ::core::default::Default for JOBOBJECT_RATE_CONTROL_TOLERANCE_INTERVAL {
fn default() -> Self {
Self(0)
}
}
impl ::windows::core::TypeKind for JOBOBJECT_RATE_CONTROL_TOLERANCE_INTERVAL {
type TypeKind = ::windows::core::CopyType;
}
impl ::core::fmt::Debug for JOBOBJECT_RATE_CONTROL_TOLERANCE_INTERVAL {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_tuple("JOBOBJECT_RATE_CONTROL_TOLERANCE_INTERVAL").field(&self.0).finish()
}
}
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct JOB_OBJECT_CPU_RATE_CONTROL(pub u32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const JOB_OBJECT_CPU_RATE_CONTROL_ENABLE: JOB_OBJECT_CPU_RATE_CONTROL = JOB_OBJECT_CPU_RATE_CONTROL(1u32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const JOB_OBJECT_CPU_RATE_CONTROL_WEIGHT_BASED: JOB_OBJECT_CPU_RATE_CONTROL = JOB_OBJECT_CPU_RATE_CONTROL(2u32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const JOB_OBJECT_CPU_RATE_CONTROL_HARD_CAP: JOB_OBJECT_CPU_RATE_CONTROL = JOB_OBJECT_CPU_RATE_CONTROL(4u32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const JOB_OBJECT_CPU_RATE_CONTROL_NOTIFY: JOB_OBJECT_CPU_RATE_CONTROL = JOB_OBJECT_CPU_RATE_CONTROL(8u32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const JOB_OBJECT_CPU_RATE_CONTROL_MIN_MAX_RATE: JOB_OBJECT_CPU_RATE_CONTROL = JOB_OBJECT_CPU_RATE_CONTROL(16u32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const JOB_OBJECT_CPU_RATE_CONTROL_VALID_FLAGS: JOB_OBJECT_CPU_RATE_CONTROL = JOB_OBJECT_CPU_RATE_CONTROL(31u32);
impl ::core::marker::Copy for JOB_OBJECT_CPU_RATE_CONTROL {}
impl ::core::clone::Clone for JOB_OBJECT_CPU_RATE_CONTROL {
fn clone(&self) -> Self {
*self
}
}
impl ::core::default::Default for JOB_OBJECT_CPU_RATE_CONTROL {
fn default() -> Self {
Self(0)
}
}
impl ::windows::core::TypeKind for JOB_OBJECT_CPU_RATE_CONTROL {
type TypeKind = ::windows::core::CopyType;
}
impl ::core::fmt::Debug for JOB_OBJECT_CPU_RATE_CONTROL {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_tuple("JOB_OBJECT_CPU_RATE_CONTROL").field(&self.0).finish()
}
}
impl JOB_OBJECT_CPU_RATE_CONTROL {
pub const fn contains(&self, other: Self) -> bool {
self.0 & other.0 == other.0
}
}
impl ::core::ops::BitOr for JOB_OBJECT_CPU_RATE_CONTROL {
type Output = Self;
fn bitor(self, other: Self) -> Self {
Self(self.0 | other.0)
}
}
impl ::core::ops::BitAnd for JOB_OBJECT_CPU_RATE_CONTROL {
type Output = Self;
fn bitand(self, other: Self) -> Self {
Self(self.0 & other.0)
}
}
impl ::core::ops::BitOrAssign for JOB_OBJECT_CPU_RATE_CONTROL {
fn bitor_assign(&mut self, other: Self) {
self.0.bitor_assign(other.0)
}
}
impl ::core::ops::BitAndAssign for JOB_OBJECT_CPU_RATE_CONTROL {
fn bitand_assign(&mut self, other: Self) {
self.0.bitand_assign(other.0)
}
}
impl ::core::ops::Not for JOB_OBJECT_CPU_RATE_CONTROL {
type Output = Self;
fn not(self) -> Self {
Self(self.0.not())
}
}
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct JOB_OBJECT_IO_RATE_CONTROL_FLAGS(pub i32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const JOB_OBJECT_IO_RATE_CONTROL_ENABLE: JOB_OBJECT_IO_RATE_CONTROL_FLAGS = JOB_OBJECT_IO_RATE_CONTROL_FLAGS(1i32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const JOB_OBJECT_IO_RATE_CONTROL_STANDALONE_VOLUME: JOB_OBJECT_IO_RATE_CONTROL_FLAGS = JOB_OBJECT_IO_RATE_CONTROL_FLAGS(2i32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const JOB_OBJECT_IO_RATE_CONTROL_FORCE_UNIT_ACCESS_ALL: JOB_OBJECT_IO_RATE_CONTROL_FLAGS = JOB_OBJECT_IO_RATE_CONTROL_FLAGS(4i32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const JOB_OBJECT_IO_RATE_CONTROL_FORCE_UNIT_ACCESS_ON_SOFT_CAP: JOB_OBJECT_IO_RATE_CONTROL_FLAGS = JOB_OBJECT_IO_RATE_CONTROL_FLAGS(8i32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const JOB_OBJECT_IO_RATE_CONTROL_VALID_FLAGS: JOB_OBJECT_IO_RATE_CONTROL_FLAGS = JOB_OBJECT_IO_RATE_CONTROL_FLAGS(15i32);
impl ::core::marker::Copy for JOB_OBJECT_IO_RATE_CONTROL_FLAGS {}
impl ::core::clone::Clone for JOB_OBJECT_IO_RATE_CONTROL_FLAGS {
fn clone(&self) -> Self {
*self
}
}
impl ::core::default::Default for JOB_OBJECT_IO_RATE_CONTROL_FLAGS {
fn default() -> Self {
Self(0)
}
}
impl ::windows::core::TypeKind for JOB_OBJECT_IO_RATE_CONTROL_FLAGS {
type TypeKind = ::windows::core::CopyType;
}
impl ::core::fmt::Debug for JOB_OBJECT_IO_RATE_CONTROL_FLAGS {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_tuple("JOB_OBJECT_IO_RATE_CONTROL_FLAGS").field(&self.0).finish()
}
}
impl JOB_OBJECT_IO_RATE_CONTROL_FLAGS {
pub const fn contains(&self, other: Self) -> bool {
self.0 & other.0 == other.0
}
}
impl ::core::ops::BitOr for JOB_OBJECT_IO_RATE_CONTROL_FLAGS {
type Output = Self;
fn bitor(self, other: Self) -> Self {
Self(self.0 | other.0)
}
}
impl ::core::ops::BitAnd for JOB_OBJECT_IO_RATE_CONTROL_FLAGS {
type Output = Self;
fn bitand(self, other: Self) -> Self {
Self(self.0 & other.0)
}
}
impl ::core::ops::BitOrAssign for JOB_OBJECT_IO_RATE_CONTROL_FLAGS {
fn bitor_assign(&mut self, other: Self) {
self.0.bitor_assign(other.0)
}
}
impl ::core::ops::BitAndAssign for JOB_OBJECT_IO_RATE_CONTROL_FLAGS {
fn bitand_assign(&mut self, other: Self) {
self.0.bitand_assign(other.0)
}
}
impl ::core::ops::Not for JOB_OBJECT_IO_RATE_CONTROL_FLAGS {
type Output = Self;
fn not(self) -> Self {
Self(self.0.not())
}
}
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct JOB_OBJECT_LIMIT(pub u32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const JOB_OBJECT_LIMIT_WORKINGSET: JOB_OBJECT_LIMIT = JOB_OBJECT_LIMIT(1u32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const JOB_OBJECT_LIMIT_PROCESS_TIME: JOB_OBJECT_LIMIT = JOB_OBJECT_LIMIT(2u32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const JOB_OBJECT_LIMIT_JOB_TIME: JOB_OBJECT_LIMIT = JOB_OBJECT_LIMIT(4u32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const JOB_OBJECT_LIMIT_ACTIVE_PROCESS: JOB_OBJECT_LIMIT = JOB_OBJECT_LIMIT(8u32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const JOB_OBJECT_LIMIT_AFFINITY: JOB_OBJECT_LIMIT = JOB_OBJECT_LIMIT(16u32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const JOB_OBJECT_LIMIT_PRIORITY_CLASS: JOB_OBJECT_LIMIT = JOB_OBJECT_LIMIT(32u32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const JOB_OBJECT_LIMIT_PRESERVE_JOB_TIME: JOB_OBJECT_LIMIT = JOB_OBJECT_LIMIT(64u32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const JOB_OBJECT_LIMIT_SCHEDULING_CLASS: JOB_OBJECT_LIMIT = JOB_OBJECT_LIMIT(128u32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const JOB_OBJECT_LIMIT_PROCESS_MEMORY: JOB_OBJECT_LIMIT = JOB_OBJECT_LIMIT(256u32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const JOB_OBJECT_LIMIT_JOB_MEMORY: JOB_OBJECT_LIMIT = JOB_OBJECT_LIMIT(512u32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const JOB_OBJECT_LIMIT_JOB_MEMORY_HIGH: JOB_OBJECT_LIMIT = JOB_OBJECT_LIMIT(512u32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const JOB_OBJECT_LIMIT_DIE_ON_UNHANDLED_EXCEPTION: JOB_OBJECT_LIMIT = JOB_OBJECT_LIMIT(1024u32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const JOB_OBJECT_LIMIT_BREAKAWAY_OK: JOB_OBJECT_LIMIT = JOB_OBJECT_LIMIT(2048u32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const JOB_OBJECT_LIMIT_SILENT_BREAKAWAY_OK: JOB_OBJECT_LIMIT = JOB_OBJECT_LIMIT(4096u32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE: JOB_OBJECT_LIMIT = JOB_OBJECT_LIMIT(8192u32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const JOB_OBJECT_LIMIT_SUBSET_AFFINITY: JOB_OBJECT_LIMIT = JOB_OBJECT_LIMIT(16384u32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const JOB_OBJECT_LIMIT_JOB_MEMORY_LOW: JOB_OBJECT_LIMIT = JOB_OBJECT_LIMIT(32768u32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const JOB_OBJECT_LIMIT_JOB_READ_BYTES: JOB_OBJECT_LIMIT = JOB_OBJECT_LIMIT(65536u32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const JOB_OBJECT_LIMIT_JOB_WRITE_BYTES: JOB_OBJECT_LIMIT = JOB_OBJECT_LIMIT(131072u32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const JOB_OBJECT_LIMIT_RATE_CONTROL: JOB_OBJECT_LIMIT = JOB_OBJECT_LIMIT(262144u32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const JOB_OBJECT_LIMIT_CPU_RATE_CONTROL: JOB_OBJECT_LIMIT = JOB_OBJECT_LIMIT(262144u32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const JOB_OBJECT_LIMIT_IO_RATE_CONTROL: JOB_OBJECT_LIMIT = JOB_OBJECT_LIMIT(524288u32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const JOB_OBJECT_LIMIT_NET_RATE_CONTROL: JOB_OBJECT_LIMIT = JOB_OBJECT_LIMIT(1048576u32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const JOB_OBJECT_LIMIT_VALID_FLAGS: JOB_OBJECT_LIMIT = JOB_OBJECT_LIMIT(524287u32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const JOB_OBJECT_BASIC_LIMIT_VALID_FLAGS: JOB_OBJECT_LIMIT = JOB_OBJECT_LIMIT(255u32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const JOB_OBJECT_EXTENDED_LIMIT_VALID_FLAGS: JOB_OBJECT_LIMIT = JOB_OBJECT_LIMIT(32767u32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const JOB_OBJECT_NOTIFICATION_LIMIT_VALID_FLAGS: JOB_OBJECT_LIMIT = JOB_OBJECT_LIMIT(2064900u32);
impl ::core::marker::Copy for JOB_OBJECT_LIMIT {}
impl ::core::clone::Clone for JOB_OBJECT_LIMIT {
fn clone(&self) -> Self {
*self
}
}
impl ::core::default::Default for JOB_OBJECT_LIMIT {
fn default() -> Self {
Self(0)
}
}
impl ::windows::core::TypeKind for JOB_OBJECT_LIMIT {
type TypeKind = ::windows::core::CopyType;
}
impl ::core::fmt::Debug for JOB_OBJECT_LIMIT {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_tuple("JOB_OBJECT_LIMIT").field(&self.0).finish()
}
}
impl JOB_OBJECT_LIMIT {
pub const fn contains(&self, other: Self) -> bool {
self.0 & other.0 == other.0
}
}
impl ::core::ops::BitOr for JOB_OBJECT_LIMIT {
type Output = Self;
fn bitor(self, other: Self) -> Self {
Self(self.0 | other.0)
}
}
impl ::core::ops::BitAnd for JOB_OBJECT_LIMIT {
type Output = Self;
fn bitand(self, other: Self) -> Self {
Self(self.0 & other.0)
}
}
impl ::core::ops::BitOrAssign for JOB_OBJECT_LIMIT {
fn bitor_assign(&mut self, other: Self) {
self.0.bitor_assign(other.0)
}
}
impl ::core::ops::BitAndAssign for JOB_OBJECT_LIMIT {
fn bitand_assign(&mut self, other: Self) {
self.0.bitand_assign(other.0)
}
}
impl ::core::ops::Not for JOB_OBJECT_LIMIT {
type Output = Self;
fn not(self) -> Self {
Self(self.0.not())
}
}
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct JOB_OBJECT_NET_RATE_CONTROL_FLAGS(pub i32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const JOB_OBJECT_NET_RATE_CONTROL_ENABLE: JOB_OBJECT_NET_RATE_CONTROL_FLAGS = JOB_OBJECT_NET_RATE_CONTROL_FLAGS(1i32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const JOB_OBJECT_NET_RATE_CONTROL_MAX_BANDWIDTH: JOB_OBJECT_NET_RATE_CONTROL_FLAGS = JOB_OBJECT_NET_RATE_CONTROL_FLAGS(2i32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const JOB_OBJECT_NET_RATE_CONTROL_DSCP_TAG: JOB_OBJECT_NET_RATE_CONTROL_FLAGS = JOB_OBJECT_NET_RATE_CONTROL_FLAGS(4i32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const JOB_OBJECT_NET_RATE_CONTROL_VALID_FLAGS: JOB_OBJECT_NET_RATE_CONTROL_FLAGS = JOB_OBJECT_NET_RATE_CONTROL_FLAGS(7i32);
impl ::core::marker::Copy for JOB_OBJECT_NET_RATE_CONTROL_FLAGS {}
impl ::core::clone::Clone for JOB_OBJECT_NET_RATE_CONTROL_FLAGS {
fn clone(&self) -> Self {
*self
}
}
impl ::core::default::Default for JOB_OBJECT_NET_RATE_CONTROL_FLAGS {
fn default() -> Self {
Self(0)
}
}
impl ::windows::core::TypeKind for JOB_OBJECT_NET_RATE_CONTROL_FLAGS {
type TypeKind = ::windows::core::CopyType;
}
impl ::core::fmt::Debug for JOB_OBJECT_NET_RATE_CONTROL_FLAGS {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_tuple("JOB_OBJECT_NET_RATE_CONTROL_FLAGS").field(&self.0).finish()
}
}
impl JOB_OBJECT_NET_RATE_CONTROL_FLAGS {
pub const fn contains(&self, other: Self) -> bool {
self.0 & other.0 == other.0
}
}
impl ::core::ops::BitOr for JOB_OBJECT_NET_RATE_CONTROL_FLAGS {
type Output = Self;
fn bitor(self, other: Self) -> Self {
Self(self.0 | other.0)
}
}
impl ::core::ops::BitAnd for JOB_OBJECT_NET_RATE_CONTROL_FLAGS {
type Output = Self;
fn bitand(self, other: Self) -> Self {
Self(self.0 & other.0)
}
}
impl ::core::ops::BitOrAssign for JOB_OBJECT_NET_RATE_CONTROL_FLAGS {
fn bitor_assign(&mut self, other: Self) {
self.0.bitor_assign(other.0)
}
}
impl ::core::ops::BitAndAssign for JOB_OBJECT_NET_RATE_CONTROL_FLAGS {
fn bitand_assign(&mut self, other: Self) {
self.0.bitand_assign(other.0)
}
}
impl ::core::ops::Not for JOB_OBJECT_NET_RATE_CONTROL_FLAGS {
type Output = Self;
fn not(self) -> Self {
Self(self.0.not())
}
}
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct JOB_OBJECT_SECURITY(pub u32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const JOB_OBJECT_SECURITY_NO_ADMIN: JOB_OBJECT_SECURITY = JOB_OBJECT_SECURITY(1u32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const JOB_OBJECT_SECURITY_RESTRICTED_TOKEN: JOB_OBJECT_SECURITY = JOB_OBJECT_SECURITY(2u32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const JOB_OBJECT_SECURITY_ONLY_TOKEN: JOB_OBJECT_SECURITY = JOB_OBJECT_SECURITY(4u32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const JOB_OBJECT_SECURITY_FILTER_TOKENS: JOB_OBJECT_SECURITY = JOB_OBJECT_SECURITY(8u32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const JOB_OBJECT_SECURITY_VALID_FLAGS: JOB_OBJECT_SECURITY = JOB_OBJECT_SECURITY(15u32);
impl ::core::marker::Copy for JOB_OBJECT_SECURITY {}
impl ::core::clone::Clone for JOB_OBJECT_SECURITY {
fn clone(&self) -> Self {
*self
}
}
impl ::core::default::Default for JOB_OBJECT_SECURITY {
fn default() -> Self {
Self(0)
}
}
impl ::windows::core::TypeKind for JOB_OBJECT_SECURITY {
type TypeKind = ::windows::core::CopyType;
}
impl ::core::fmt::Debug for JOB_OBJECT_SECURITY {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_tuple("JOB_OBJECT_SECURITY").field(&self.0).finish()
}
}
impl JOB_OBJECT_SECURITY {
pub const fn contains(&self, other: Self) -> bool {
self.0 & other.0 == other.0
}
}
impl ::core::ops::BitOr for JOB_OBJECT_SECURITY {
type Output = Self;
fn bitor(self, other: Self) -> Self {
Self(self.0 | other.0)
}
}
impl ::core::ops::BitAnd for JOB_OBJECT_SECURITY {
type Output = Self;
fn bitand(self, other: Self) -> Self {
Self(self.0 & other.0)
}
}
impl ::core::ops::BitOrAssign for JOB_OBJECT_SECURITY {
fn bitor_assign(&mut self, other: Self) {
self.0.bitor_assign(other.0)
}
}
impl ::core::ops::BitAndAssign for JOB_OBJECT_SECURITY {
fn bitand_assign(&mut self, other: Self) {
self.0.bitand_assign(other.0)
}
}
impl ::core::ops::Not for JOB_OBJECT_SECURITY {
type Output = Self;
fn not(self) -> Self {
Self(self.0.not())
}
}
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct JOB_OBJECT_TERMINATE_AT_END_ACTION(pub u32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const JOB_OBJECT_TERMINATE_AT_END_OF_JOB: JOB_OBJECT_TERMINATE_AT_END_ACTION = JOB_OBJECT_TERMINATE_AT_END_ACTION(0u32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const JOB_OBJECT_POST_AT_END_OF_JOB: JOB_OBJECT_TERMINATE_AT_END_ACTION = JOB_OBJECT_TERMINATE_AT_END_ACTION(1u32);
impl ::core::marker::Copy for JOB_OBJECT_TERMINATE_AT_END_ACTION {}
impl ::core::clone::Clone for JOB_OBJECT_TERMINATE_AT_END_ACTION {
fn clone(&self) -> Self {
*self
}
}
impl ::core::default::Default for JOB_OBJECT_TERMINATE_AT_END_ACTION {
fn default() -> Self {
Self(0)
}
}
impl ::windows::core::TypeKind for JOB_OBJECT_TERMINATE_AT_END_ACTION {
type TypeKind = ::windows::core::CopyType;
}
impl ::core::fmt::Debug for JOB_OBJECT_TERMINATE_AT_END_ACTION {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_tuple("JOB_OBJECT_TERMINATE_AT_END_ACTION").field(&self.0).finish()
}
}
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
#[repr(transparent)]
#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
pub struct JOB_OBJECT_UILIMIT(pub u32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const JOB_OBJECT_UILIMIT_NONE: JOB_OBJECT_UILIMIT = JOB_OBJECT_UILIMIT(0u32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const JOB_OBJECT_UILIMIT_HANDLES: JOB_OBJECT_UILIMIT = JOB_OBJECT_UILIMIT(1u32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const JOB_OBJECT_UILIMIT_READCLIPBOARD: JOB_OBJECT_UILIMIT = JOB_OBJECT_UILIMIT(2u32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const JOB_OBJECT_UILIMIT_WRITECLIPBOARD: JOB_OBJECT_UILIMIT = JOB_OBJECT_UILIMIT(4u32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const JOB_OBJECT_UILIMIT_SYSTEMPARAMETERS: JOB_OBJECT_UILIMIT = JOB_OBJECT_UILIMIT(8u32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const JOB_OBJECT_UILIMIT_DISPLAYSETTINGS: JOB_OBJECT_UILIMIT = JOB_OBJECT_UILIMIT(16u32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const JOB_OBJECT_UILIMIT_GLOBALATOMS: JOB_OBJECT_UILIMIT = JOB_OBJECT_UILIMIT(32u32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const JOB_OBJECT_UILIMIT_DESKTOP: JOB_OBJECT_UILIMIT = JOB_OBJECT_UILIMIT(64u32);
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub const JOB_OBJECT_UILIMIT_EXITWINDOWS: JOB_OBJECT_UILIMIT = JOB_OBJECT_UILIMIT(128u32);
impl ::core::marker::Copy for JOB_OBJECT_UILIMIT {}
impl ::core::clone::Clone for JOB_OBJECT_UILIMIT {
fn clone(&self) -> Self {
*self
}
}
impl ::core::default::Default for JOB_OBJECT_UILIMIT {
fn default() -> Self {
Self(0)
}
}
impl ::windows::core::TypeKind for JOB_OBJECT_UILIMIT {
type TypeKind = ::windows::core::CopyType;
}
impl ::core::fmt::Debug for JOB_OBJECT_UILIMIT {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_tuple("JOB_OBJECT_UILIMIT").field(&self.0).finish()
}
}
impl JOB_OBJECT_UILIMIT {
pub const fn contains(&self, other: Self) -> bool {
self.0 & other.0 == other.0
}
}
impl ::core::ops::BitOr for JOB_OBJECT_UILIMIT {
type Output = Self;
fn bitor(self, other: Self) -> Self {
Self(self.0 | other.0)
}
}
impl ::core::ops::BitAnd for JOB_OBJECT_UILIMIT {
type Output = Self;
fn bitand(self, other: Self) -> Self {
Self(self.0 & other.0)
}
}
impl ::core::ops::BitOrAssign for JOB_OBJECT_UILIMIT {
fn bitor_assign(&mut self, other: Self) {
self.0.bitor_assign(other.0)
}
}
impl ::core::ops::BitAndAssign for JOB_OBJECT_UILIMIT {
fn bitand_assign(&mut self, other: Self) {
self.0.bitand_assign(other.0)
}
}
impl ::core::ops::Not for JOB_OBJECT_UILIMIT {
type Output = Self;
fn not(self) -> Self {
Self(self.0.not())
}
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_JobObjects\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub struct JOBOBJECT_ASSOCIATE_COMPLETION_PORT {
pub CompletionKey: *mut ::core::ffi::c_void,
pub CompletionPort: super::super::Foundation::HANDLE,
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::marker::Copy for JOBOBJECT_ASSOCIATE_COMPLETION_PORT {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::clone::Clone for JOBOBJECT_ASSOCIATE_COMPLETION_PORT {
fn clone(&self) -> Self {
*self
}
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::fmt::Debug for JOBOBJECT_ASSOCIATE_COMPLETION_PORT {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("JOBOBJECT_ASSOCIATE_COMPLETION_PORT").field("CompletionKey", &self.CompletionKey).field("CompletionPort", &self.CompletionPort).finish()
}
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows::core::TypeKind for JOBOBJECT_ASSOCIATE_COMPLETION_PORT {
type TypeKind = ::windows::core::CopyType;
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::PartialEq for JOBOBJECT_ASSOCIATE_COMPLETION_PORT {
fn eq(&self, other: &Self) -> bool {
self.CompletionKey == other.CompletionKey && self.CompletionPort == other.CompletionPort
}
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::Eq for JOBOBJECT_ASSOCIATE_COMPLETION_PORT {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::default::Default for JOBOBJECT_ASSOCIATE_COMPLETION_PORT {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub struct JOBOBJECT_BASIC_ACCOUNTING_INFORMATION {
pub TotalUserTime: i64,
pub TotalKernelTime: i64,
pub ThisPeriodTotalUserTime: i64,
pub ThisPeriodTotalKernelTime: i64,
pub TotalPageFaultCount: u32,
pub TotalProcesses: u32,
pub ActiveProcesses: u32,
pub TotalTerminatedProcesses: u32,
}
impl ::core::marker::Copy for JOBOBJECT_BASIC_ACCOUNTING_INFORMATION {}
impl ::core::clone::Clone for JOBOBJECT_BASIC_ACCOUNTING_INFORMATION {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for JOBOBJECT_BASIC_ACCOUNTING_INFORMATION {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("JOBOBJECT_BASIC_ACCOUNTING_INFORMATION")
.field("TotalUserTime", &self.TotalUserTime)
.field("TotalKernelTime", &self.TotalKernelTime)
.field("ThisPeriodTotalUserTime", &self.ThisPeriodTotalUserTime)
.field("ThisPeriodTotalKernelTime", &self.ThisPeriodTotalKernelTime)
.field("TotalPageFaultCount", &self.TotalPageFaultCount)
.field("TotalProcesses", &self.TotalProcesses)
.field("ActiveProcesses", &self.ActiveProcesses)
.field("TotalTerminatedProcesses", &self.TotalTerminatedProcesses)
.finish()
}
}
impl ::windows::core::TypeKind for JOBOBJECT_BASIC_ACCOUNTING_INFORMATION {
type TypeKind = ::windows::core::CopyType;
}
impl ::core::cmp::PartialEq for JOBOBJECT_BASIC_ACCOUNTING_INFORMATION {
fn eq(&self, other: &Self) -> bool {
self.TotalUserTime == other.TotalUserTime && self.TotalKernelTime == other.TotalKernelTime && self.ThisPeriodTotalUserTime == other.ThisPeriodTotalUserTime && self.ThisPeriodTotalKernelTime == other.ThisPeriodTotalKernelTime && self.TotalPageFaultCount == other.TotalPageFaultCount && self.TotalProcesses == other.TotalProcesses && self.ActiveProcesses == other.ActiveProcesses && self.TotalTerminatedProcesses == other.TotalTerminatedProcesses
}
}
impl ::core::cmp::Eq for JOBOBJECT_BASIC_ACCOUNTING_INFORMATION {}
impl ::core::default::Default for JOBOBJECT_BASIC_ACCOUNTING_INFORMATION {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_JobObjects\"`, `\"Win32_System_Threading\"`*"]
#[cfg(feature = "Win32_System_Threading")]
pub struct JOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION {
pub BasicInfo: JOBOBJECT_BASIC_ACCOUNTING_INFORMATION,
pub IoInfo: super::Threading::IO_COUNTERS,
}
#[cfg(feature = "Win32_System_Threading")]
impl ::core::marker::Copy for JOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION {}
#[cfg(feature = "Win32_System_Threading")]
impl ::core::clone::Clone for JOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION {
fn clone(&self) -> Self {
*self
}
}
#[cfg(feature = "Win32_System_Threading")]
impl ::core::fmt::Debug for JOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("JOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION").field("BasicInfo", &self.BasicInfo).field("IoInfo", &self.IoInfo).finish()
}
}
#[cfg(feature = "Win32_System_Threading")]
impl ::windows::core::TypeKind for JOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION {
type TypeKind = ::windows::core::CopyType;
}
#[cfg(feature = "Win32_System_Threading")]
impl ::core::cmp::PartialEq for JOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION {
fn eq(&self, other: &Self) -> bool {
self.BasicInfo == other.BasicInfo && self.IoInfo == other.IoInfo
}
}
#[cfg(feature = "Win32_System_Threading")]
impl ::core::cmp::Eq for JOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION {}
#[cfg(feature = "Win32_System_Threading")]
impl ::core::default::Default for JOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub struct JOBOBJECT_BASIC_LIMIT_INFORMATION {
pub PerProcessUserTimeLimit: i64,
pub PerJobUserTimeLimit: i64,
pub LimitFlags: JOB_OBJECT_LIMIT,
pub MinimumWorkingSetSize: usize,
pub MaximumWorkingSetSize: usize,
pub ActiveProcessLimit: u32,
pub Affinity: usize,
pub PriorityClass: u32,
pub SchedulingClass: u32,
}
impl ::core::marker::Copy for JOBOBJECT_BASIC_LIMIT_INFORMATION {}
impl ::core::clone::Clone for JOBOBJECT_BASIC_LIMIT_INFORMATION {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for JOBOBJECT_BASIC_LIMIT_INFORMATION {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("JOBOBJECT_BASIC_LIMIT_INFORMATION")
.field("PerProcessUserTimeLimit", &self.PerProcessUserTimeLimit)
.field("PerJobUserTimeLimit", &self.PerJobUserTimeLimit)
.field("LimitFlags", &self.LimitFlags)
.field("MinimumWorkingSetSize", &self.MinimumWorkingSetSize)
.field("MaximumWorkingSetSize", &self.MaximumWorkingSetSize)
.field("ActiveProcessLimit", &self.ActiveProcessLimit)
.field("Affinity", &self.Affinity)
.field("PriorityClass", &self.PriorityClass)
.field("SchedulingClass", &self.SchedulingClass)
.finish()
}
}
impl ::windows::core::TypeKind for JOBOBJECT_BASIC_LIMIT_INFORMATION {
type TypeKind = ::windows::core::CopyType;
}
impl ::core::cmp::PartialEq for JOBOBJECT_BASIC_LIMIT_INFORMATION {
fn eq(&self, other: &Self) -> bool {
self.PerProcessUserTimeLimit == other.PerProcessUserTimeLimit && self.PerJobUserTimeLimit == other.PerJobUserTimeLimit && self.LimitFlags == other.LimitFlags && self.MinimumWorkingSetSize == other.MinimumWorkingSetSize && self.MaximumWorkingSetSize == other.MaximumWorkingSetSize && self.ActiveProcessLimit == other.ActiveProcessLimit && self.Affinity == other.Affinity && self.PriorityClass == other.PriorityClass && self.SchedulingClass == other.SchedulingClass
}
}
impl ::core::cmp::Eq for JOBOBJECT_BASIC_LIMIT_INFORMATION {}
impl ::core::default::Default for JOBOBJECT_BASIC_LIMIT_INFORMATION {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub struct JOBOBJECT_BASIC_PROCESS_ID_LIST {
pub NumberOfAssignedProcesses: u32,
pub NumberOfProcessIdsInList: u32,
pub ProcessIdList: [usize; 1],
}
impl ::core::marker::Copy for JOBOBJECT_BASIC_PROCESS_ID_LIST {}
impl ::core::clone::Clone for JOBOBJECT_BASIC_PROCESS_ID_LIST {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for JOBOBJECT_BASIC_PROCESS_ID_LIST {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("JOBOBJECT_BASIC_PROCESS_ID_LIST").field("NumberOfAssignedProcesses", &self.NumberOfAssignedProcesses).field("NumberOfProcessIdsInList", &self.NumberOfProcessIdsInList).field("ProcessIdList", &self.ProcessIdList).finish()
}
}
impl ::windows::core::TypeKind for JOBOBJECT_BASIC_PROCESS_ID_LIST {
type TypeKind = ::windows::core::CopyType;
}
impl ::core::cmp::PartialEq for JOBOBJECT_BASIC_PROCESS_ID_LIST {
fn eq(&self, other: &Self) -> bool {
self.NumberOfAssignedProcesses == other.NumberOfAssignedProcesses && self.NumberOfProcessIdsInList == other.NumberOfProcessIdsInList && self.ProcessIdList == other.ProcessIdList
}
}
impl ::core::cmp::Eq for JOBOBJECT_BASIC_PROCESS_ID_LIST {}
impl ::core::default::Default for JOBOBJECT_BASIC_PROCESS_ID_LIST {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub struct JOBOBJECT_BASIC_UI_RESTRICTIONS {
pub UIRestrictionsClass: JOB_OBJECT_UILIMIT,
}
impl ::core::marker::Copy for JOBOBJECT_BASIC_UI_RESTRICTIONS {}
impl ::core::clone::Clone for JOBOBJECT_BASIC_UI_RESTRICTIONS {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for JOBOBJECT_BASIC_UI_RESTRICTIONS {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("JOBOBJECT_BASIC_UI_RESTRICTIONS").field("UIRestrictionsClass", &self.UIRestrictionsClass).finish()
}
}
impl ::windows::core::TypeKind for JOBOBJECT_BASIC_UI_RESTRICTIONS {
type TypeKind = ::windows::core::CopyType;
}
impl ::core::cmp::PartialEq for JOBOBJECT_BASIC_UI_RESTRICTIONS {
fn eq(&self, other: &Self) -> bool {
self.UIRestrictionsClass == other.UIRestrictionsClass
}
}
impl ::core::cmp::Eq for JOBOBJECT_BASIC_UI_RESTRICTIONS {}
impl ::core::default::Default for JOBOBJECT_BASIC_UI_RESTRICTIONS {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub struct JOBOBJECT_CPU_RATE_CONTROL_INFORMATION {
pub ControlFlags: JOB_OBJECT_CPU_RATE_CONTROL,
pub Anonymous: JOBOBJECT_CPU_RATE_CONTROL_INFORMATION_0,
}
impl ::core::marker::Copy for JOBOBJECT_CPU_RATE_CONTROL_INFORMATION {}
impl ::core::clone::Clone for JOBOBJECT_CPU_RATE_CONTROL_INFORMATION {
fn clone(&self) -> Self {
*self
}
}
impl ::windows::core::TypeKind for JOBOBJECT_CPU_RATE_CONTROL_INFORMATION {
type TypeKind = ::windows::core::CopyType;
}
impl ::core::default::Default for JOBOBJECT_CPU_RATE_CONTROL_INFORMATION {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub union JOBOBJECT_CPU_RATE_CONTROL_INFORMATION_0 {
pub CpuRate: u32,
pub Weight: u32,
pub Anonymous: JOBOBJECT_CPU_RATE_CONTROL_INFORMATION_0_0,
}
impl ::core::marker::Copy for JOBOBJECT_CPU_RATE_CONTROL_INFORMATION_0 {}
impl ::core::clone::Clone for JOBOBJECT_CPU_RATE_CONTROL_INFORMATION_0 {
fn clone(&self) -> Self {
*self
}
}
impl ::windows::core::TypeKind for JOBOBJECT_CPU_RATE_CONTROL_INFORMATION_0 {
type TypeKind = ::windows::core::CopyType;
}
impl ::core::default::Default for JOBOBJECT_CPU_RATE_CONTROL_INFORMATION_0 {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub struct JOBOBJECT_CPU_RATE_CONTROL_INFORMATION_0_0 {
pub MinRate: u16,
pub MaxRate: u16,
}
impl ::core::marker::Copy for JOBOBJECT_CPU_RATE_CONTROL_INFORMATION_0_0 {}
impl ::core::clone::Clone for JOBOBJECT_CPU_RATE_CONTROL_INFORMATION_0_0 {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for JOBOBJECT_CPU_RATE_CONTROL_INFORMATION_0_0 {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("JOBOBJECT_CPU_RATE_CONTROL_INFORMATION_0_0").field("MinRate", &self.MinRate).field("MaxRate", &self.MaxRate).finish()
}
}
impl ::windows::core::TypeKind for JOBOBJECT_CPU_RATE_CONTROL_INFORMATION_0_0 {
type TypeKind = ::windows::core::CopyType;
}
impl ::core::cmp::PartialEq for JOBOBJECT_CPU_RATE_CONTROL_INFORMATION_0_0 {
fn eq(&self, other: &Self) -> bool {
self.MinRate == other.MinRate && self.MaxRate == other.MaxRate
}
}
impl ::core::cmp::Eq for JOBOBJECT_CPU_RATE_CONTROL_INFORMATION_0_0 {}
impl ::core::default::Default for JOBOBJECT_CPU_RATE_CONTROL_INFORMATION_0_0 {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub struct JOBOBJECT_END_OF_JOB_TIME_INFORMATION {
pub EndOfJobTimeAction: JOB_OBJECT_TERMINATE_AT_END_ACTION,
}
impl ::core::marker::Copy for JOBOBJECT_END_OF_JOB_TIME_INFORMATION {}
impl ::core::clone::Clone for JOBOBJECT_END_OF_JOB_TIME_INFORMATION {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for JOBOBJECT_END_OF_JOB_TIME_INFORMATION {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("JOBOBJECT_END_OF_JOB_TIME_INFORMATION").field("EndOfJobTimeAction", &self.EndOfJobTimeAction).finish()
}
}
impl ::windows::core::TypeKind for JOBOBJECT_END_OF_JOB_TIME_INFORMATION {
type TypeKind = ::windows::core::CopyType;
}
impl ::core::cmp::PartialEq for JOBOBJECT_END_OF_JOB_TIME_INFORMATION {
fn eq(&self, other: &Self) -> bool {
self.EndOfJobTimeAction == other.EndOfJobTimeAction
}
}
impl ::core::cmp::Eq for JOBOBJECT_END_OF_JOB_TIME_INFORMATION {}
impl ::core::default::Default for JOBOBJECT_END_OF_JOB_TIME_INFORMATION {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_JobObjects\"`, `\"Win32_System_Threading\"`*"]
#[cfg(feature = "Win32_System_Threading")]
pub struct JOBOBJECT_EXTENDED_LIMIT_INFORMATION {
pub BasicLimitInformation: JOBOBJECT_BASIC_LIMIT_INFORMATION,
pub IoInfo: super::Threading::IO_COUNTERS,
pub ProcessMemoryLimit: usize,
pub JobMemoryLimit: usize,
pub PeakProcessMemoryUsed: usize,
pub PeakJobMemoryUsed: usize,
}
#[cfg(feature = "Win32_System_Threading")]
impl ::core::marker::Copy for JOBOBJECT_EXTENDED_LIMIT_INFORMATION {}
#[cfg(feature = "Win32_System_Threading")]
impl ::core::clone::Clone for JOBOBJECT_EXTENDED_LIMIT_INFORMATION {
fn clone(&self) -> Self {
*self
}
}
#[cfg(feature = "Win32_System_Threading")]
impl ::core::fmt::Debug for JOBOBJECT_EXTENDED_LIMIT_INFORMATION {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("JOBOBJECT_EXTENDED_LIMIT_INFORMATION").field("BasicLimitInformation", &self.BasicLimitInformation).field("IoInfo", &self.IoInfo).field("ProcessMemoryLimit", &self.ProcessMemoryLimit).field("JobMemoryLimit", &self.JobMemoryLimit).field("PeakProcessMemoryUsed", &self.PeakProcessMemoryUsed).field("PeakJobMemoryUsed", &self.PeakJobMemoryUsed).finish()
}
}
#[cfg(feature = "Win32_System_Threading")]
impl ::windows::core::TypeKind for JOBOBJECT_EXTENDED_LIMIT_INFORMATION {
type TypeKind = ::windows::core::CopyType;
}
#[cfg(feature = "Win32_System_Threading")]
impl ::core::cmp::PartialEq for JOBOBJECT_EXTENDED_LIMIT_INFORMATION {
fn eq(&self, other: &Self) -> bool {
self.BasicLimitInformation == other.BasicLimitInformation && self.IoInfo == other.IoInfo && self.ProcessMemoryLimit == other.ProcessMemoryLimit && self.JobMemoryLimit == other.JobMemoryLimit && self.PeakProcessMemoryUsed == other.PeakProcessMemoryUsed && self.PeakJobMemoryUsed == other.PeakJobMemoryUsed
}
}
#[cfg(feature = "Win32_System_Threading")]
impl ::core::cmp::Eq for JOBOBJECT_EXTENDED_LIMIT_INFORMATION {}
#[cfg(feature = "Win32_System_Threading")]
impl ::core::default::Default for JOBOBJECT_EXTENDED_LIMIT_INFORMATION {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub struct JOBOBJECT_IO_ATTRIBUTION_INFORMATION {
pub ControlFlags: u32,
pub ReadStats: JOBOBJECT_IO_ATTRIBUTION_STATS,
pub WriteStats: JOBOBJECT_IO_ATTRIBUTION_STATS,
}
impl ::core::marker::Copy for JOBOBJECT_IO_ATTRIBUTION_INFORMATION {}
impl ::core::clone::Clone for JOBOBJECT_IO_ATTRIBUTION_INFORMATION {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for JOBOBJECT_IO_ATTRIBUTION_INFORMATION {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("JOBOBJECT_IO_ATTRIBUTION_INFORMATION").field("ControlFlags", &self.ControlFlags).field("ReadStats", &self.ReadStats).field("WriteStats", &self.WriteStats).finish()
}
}
impl ::windows::core::TypeKind for JOBOBJECT_IO_ATTRIBUTION_INFORMATION {
type TypeKind = ::windows::core::CopyType;
}
impl ::core::cmp::PartialEq for JOBOBJECT_IO_ATTRIBUTION_INFORMATION {
fn eq(&self, other: &Self) -> bool {
self.ControlFlags == other.ControlFlags && self.ReadStats == other.ReadStats && self.WriteStats == other.WriteStats
}
}
impl ::core::cmp::Eq for JOBOBJECT_IO_ATTRIBUTION_INFORMATION {}
impl ::core::default::Default for JOBOBJECT_IO_ATTRIBUTION_INFORMATION {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub struct JOBOBJECT_IO_ATTRIBUTION_STATS {
pub IoCount: usize,
pub TotalNonOverlappedQueueTime: u64,
pub TotalNonOverlappedServiceTime: u64,
pub TotalSize: u64,
}
impl ::core::marker::Copy for JOBOBJECT_IO_ATTRIBUTION_STATS {}
impl ::core::clone::Clone for JOBOBJECT_IO_ATTRIBUTION_STATS {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for JOBOBJECT_IO_ATTRIBUTION_STATS {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("JOBOBJECT_IO_ATTRIBUTION_STATS").field("IoCount", &self.IoCount).field("TotalNonOverlappedQueueTime", &self.TotalNonOverlappedQueueTime).field("TotalNonOverlappedServiceTime", &self.TotalNonOverlappedServiceTime).field("TotalSize", &self.TotalSize).finish()
}
}
impl ::windows::core::TypeKind for JOBOBJECT_IO_ATTRIBUTION_STATS {
type TypeKind = ::windows::core::CopyType;
}
impl ::core::cmp::PartialEq for JOBOBJECT_IO_ATTRIBUTION_STATS {
fn eq(&self, other: &Self) -> bool {
self.IoCount == other.IoCount && self.TotalNonOverlappedQueueTime == other.TotalNonOverlappedQueueTime && self.TotalNonOverlappedServiceTime == other.TotalNonOverlappedServiceTime && self.TotalSize == other.TotalSize
}
}
impl ::core::cmp::Eq for JOBOBJECT_IO_ATTRIBUTION_STATS {}
impl ::core::default::Default for JOBOBJECT_IO_ATTRIBUTION_STATS {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub struct JOBOBJECT_IO_RATE_CONTROL_INFORMATION {
pub MaxIops: i64,
pub MaxBandwidth: i64,
pub ReservationIops: i64,
pub VolumeName: ::windows::core::PCWSTR,
pub BaseIoSize: u32,
pub ControlFlags: JOB_OBJECT_IO_RATE_CONTROL_FLAGS,
}
impl ::core::marker::Copy for JOBOBJECT_IO_RATE_CONTROL_INFORMATION {}
impl ::core::clone::Clone for JOBOBJECT_IO_RATE_CONTROL_INFORMATION {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for JOBOBJECT_IO_RATE_CONTROL_INFORMATION {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("JOBOBJECT_IO_RATE_CONTROL_INFORMATION").field("MaxIops", &self.MaxIops).field("MaxBandwidth", &self.MaxBandwidth).field("ReservationIops", &self.ReservationIops).field("VolumeName", &self.VolumeName).field("BaseIoSize", &self.BaseIoSize).field("ControlFlags", &self.ControlFlags).finish()
}
}
impl ::windows::core::TypeKind for JOBOBJECT_IO_RATE_CONTROL_INFORMATION {
type TypeKind = ::windows::core::CopyType;
}
impl ::core::cmp::PartialEq for JOBOBJECT_IO_RATE_CONTROL_INFORMATION {
fn eq(&self, other: &Self) -> bool {
self.MaxIops == other.MaxIops && self.MaxBandwidth == other.MaxBandwidth && self.ReservationIops == other.ReservationIops && self.VolumeName == other.VolumeName && self.BaseIoSize == other.BaseIoSize && self.ControlFlags == other.ControlFlags
}
}
impl ::core::cmp::Eq for JOBOBJECT_IO_RATE_CONTROL_INFORMATION {}
impl ::core::default::Default for JOBOBJECT_IO_RATE_CONTROL_INFORMATION {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub struct JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V2 {
pub MaxIops: i64,
pub MaxBandwidth: i64,
pub ReservationIops: i64,
pub VolumeName: ::windows::core::PWSTR,
pub BaseIoSize: u32,
pub ControlFlags: JOB_OBJECT_IO_RATE_CONTROL_FLAGS,
pub VolumeNameLength: u16,
pub CriticalReservationIops: i64,
pub ReservationBandwidth: i64,
pub CriticalReservationBandwidth: i64,
pub MaxTimePercent: i64,
pub ReservationTimePercent: i64,
pub CriticalReservationTimePercent: i64,
}
impl ::core::marker::Copy for JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V2 {}
impl ::core::clone::Clone for JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V2 {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V2 {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V2")
.field("MaxIops", &self.MaxIops)
.field("MaxBandwidth", &self.MaxBandwidth)
.field("ReservationIops", &self.ReservationIops)
.field("VolumeName", &self.VolumeName)
.field("BaseIoSize", &self.BaseIoSize)
.field("ControlFlags", &self.ControlFlags)
.field("VolumeNameLength", &self.VolumeNameLength)
.field("CriticalReservationIops", &self.CriticalReservationIops)
.field("ReservationBandwidth", &self.ReservationBandwidth)
.field("CriticalReservationBandwidth", &self.CriticalReservationBandwidth)
.field("MaxTimePercent", &self.MaxTimePercent)
.field("ReservationTimePercent", &self.ReservationTimePercent)
.field("CriticalReservationTimePercent", &self.CriticalReservationTimePercent)
.finish()
}
}
impl ::windows::core::TypeKind for JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V2 {
type TypeKind = ::windows::core::CopyType;
}
impl ::core::cmp::PartialEq for JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V2 {
fn eq(&self, other: &Self) -> bool {
self.MaxIops == other.MaxIops && self.MaxBandwidth == other.MaxBandwidth && self.ReservationIops == other.ReservationIops && self.VolumeName == other.VolumeName && self.BaseIoSize == other.BaseIoSize && self.ControlFlags == other.ControlFlags && self.VolumeNameLength == other.VolumeNameLength && self.CriticalReservationIops == other.CriticalReservationIops && self.ReservationBandwidth == other.ReservationBandwidth && self.CriticalReservationBandwidth == other.CriticalReservationBandwidth && self.MaxTimePercent == other.MaxTimePercent && self.ReservationTimePercent == other.ReservationTimePercent && self.CriticalReservationTimePercent == other.CriticalReservationTimePercent
}
}
impl ::core::cmp::Eq for JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V2 {}
impl ::core::default::Default for JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V2 {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub struct JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V3 {
pub MaxIops: i64,
pub MaxBandwidth: i64,
pub ReservationIops: i64,
pub VolumeName: ::windows::core::PWSTR,
pub BaseIoSize: u32,
pub ControlFlags: JOB_OBJECT_IO_RATE_CONTROL_FLAGS,
pub VolumeNameLength: u16,
pub CriticalReservationIops: i64,
pub ReservationBandwidth: i64,
pub CriticalReservationBandwidth: i64,
pub MaxTimePercent: i64,
pub ReservationTimePercent: i64,
pub CriticalReservationTimePercent: i64,
pub SoftMaxIops: i64,
pub SoftMaxBandwidth: i64,
pub SoftMaxTimePercent: i64,
pub LimitExcessNotifyIops: i64,
pub LimitExcessNotifyBandwidth: i64,
pub LimitExcessNotifyTimePercent: i64,
}
impl ::core::marker::Copy for JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V3 {}
impl ::core::clone::Clone for JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V3 {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V3 {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V3")
.field("MaxIops", &self.MaxIops)
.field("MaxBandwidth", &self.MaxBandwidth)
.field("ReservationIops", &self.ReservationIops)
.field("VolumeName", &self.VolumeName)
.field("BaseIoSize", &self.BaseIoSize)
.field("ControlFlags", &self.ControlFlags)
.field("VolumeNameLength", &self.VolumeNameLength)
.field("CriticalReservationIops", &self.CriticalReservationIops)
.field("ReservationBandwidth", &self.ReservationBandwidth)
.field("CriticalReservationBandwidth", &self.CriticalReservationBandwidth)
.field("MaxTimePercent", &self.MaxTimePercent)
.field("ReservationTimePercent", &self.ReservationTimePercent)
.field("CriticalReservationTimePercent", &self.CriticalReservationTimePercent)
.field("SoftMaxIops", &self.SoftMaxIops)
.field("SoftMaxBandwidth", &self.SoftMaxBandwidth)
.field("SoftMaxTimePercent", &self.SoftMaxTimePercent)
.field("LimitExcessNotifyIops", &self.LimitExcessNotifyIops)
.field("LimitExcessNotifyBandwidth", &self.LimitExcessNotifyBandwidth)
.field("LimitExcessNotifyTimePercent", &self.LimitExcessNotifyTimePercent)
.finish()
}
}
impl ::windows::core::TypeKind for JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V3 {
type TypeKind = ::windows::core::CopyType;
}
impl ::core::cmp::PartialEq for JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V3 {
fn eq(&self, other: &Self) -> bool {
self.MaxIops == other.MaxIops
&& self.MaxBandwidth == other.MaxBandwidth
&& self.ReservationIops == other.ReservationIops
&& self.VolumeName == other.VolumeName
&& self.BaseIoSize == other.BaseIoSize
&& self.ControlFlags == other.ControlFlags
&& self.VolumeNameLength == other.VolumeNameLength
&& self.CriticalReservationIops == other.CriticalReservationIops
&& self.ReservationBandwidth == other.ReservationBandwidth
&& self.CriticalReservationBandwidth == other.CriticalReservationBandwidth
&& self.MaxTimePercent == other.MaxTimePercent
&& self.ReservationTimePercent == other.ReservationTimePercent
&& self.CriticalReservationTimePercent == other.CriticalReservationTimePercent
&& self.SoftMaxIops == other.SoftMaxIops
&& self.SoftMaxBandwidth == other.SoftMaxBandwidth
&& self.SoftMaxTimePercent == other.SoftMaxTimePercent
&& self.LimitExcessNotifyIops == other.LimitExcessNotifyIops
&& self.LimitExcessNotifyBandwidth == other.LimitExcessNotifyBandwidth
&& self.LimitExcessNotifyTimePercent == other.LimitExcessNotifyTimePercent
}
}
impl ::core::cmp::Eq for JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V3 {}
impl ::core::default::Default for JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V3 {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub struct JOBOBJECT_JOBSET_INFORMATION {
pub MemberLevel: u32,
}
impl ::core::marker::Copy for JOBOBJECT_JOBSET_INFORMATION {}
impl ::core::clone::Clone for JOBOBJECT_JOBSET_INFORMATION {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for JOBOBJECT_JOBSET_INFORMATION {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("JOBOBJECT_JOBSET_INFORMATION").field("MemberLevel", &self.MemberLevel).finish()
}
}
impl ::windows::core::TypeKind for JOBOBJECT_JOBSET_INFORMATION {
type TypeKind = ::windows::core::CopyType;
}
impl ::core::cmp::PartialEq for JOBOBJECT_JOBSET_INFORMATION {
fn eq(&self, other: &Self) -> bool {
self.MemberLevel == other.MemberLevel
}
}
impl ::core::cmp::Eq for JOBOBJECT_JOBSET_INFORMATION {}
impl ::core::default::Default for JOBOBJECT_JOBSET_INFORMATION {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub struct JOBOBJECT_LIMIT_VIOLATION_INFORMATION {
pub LimitFlags: JOB_OBJECT_LIMIT,
pub ViolationLimitFlags: JOB_OBJECT_LIMIT,
pub IoReadBytes: u64,
pub IoReadBytesLimit: u64,
pub IoWriteBytes: u64,
pub IoWriteBytesLimit: u64,
pub PerJobUserTime: i64,
pub PerJobUserTimeLimit: i64,
pub JobMemory: u64,
pub JobMemoryLimit: u64,
pub RateControlTolerance: JOBOBJECT_RATE_CONTROL_TOLERANCE,
pub RateControlToleranceLimit: JOBOBJECT_RATE_CONTROL_TOLERANCE,
}
impl ::core::marker::Copy for JOBOBJECT_LIMIT_VIOLATION_INFORMATION {}
impl ::core::clone::Clone for JOBOBJECT_LIMIT_VIOLATION_INFORMATION {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for JOBOBJECT_LIMIT_VIOLATION_INFORMATION {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("JOBOBJECT_LIMIT_VIOLATION_INFORMATION")
.field("LimitFlags", &self.LimitFlags)
.field("ViolationLimitFlags", &self.ViolationLimitFlags)
.field("IoReadBytes", &self.IoReadBytes)
.field("IoReadBytesLimit", &self.IoReadBytesLimit)
.field("IoWriteBytes", &self.IoWriteBytes)
.field("IoWriteBytesLimit", &self.IoWriteBytesLimit)
.field("PerJobUserTime", &self.PerJobUserTime)
.field("PerJobUserTimeLimit", &self.PerJobUserTimeLimit)
.field("JobMemory", &self.JobMemory)
.field("JobMemoryLimit", &self.JobMemoryLimit)
.field("RateControlTolerance", &self.RateControlTolerance)
.field("RateControlToleranceLimit", &self.RateControlToleranceLimit)
.finish()
}
}
impl ::windows::core::TypeKind for JOBOBJECT_LIMIT_VIOLATION_INFORMATION {
type TypeKind = ::windows::core::CopyType;
}
impl ::core::cmp::PartialEq for JOBOBJECT_LIMIT_VIOLATION_INFORMATION {
fn eq(&self, other: &Self) -> bool {
self.LimitFlags == other.LimitFlags && self.ViolationLimitFlags == other.ViolationLimitFlags && self.IoReadBytes == other.IoReadBytes && self.IoReadBytesLimit == other.IoReadBytesLimit && self.IoWriteBytes == other.IoWriteBytes && self.IoWriteBytesLimit == other.IoWriteBytesLimit && self.PerJobUserTime == other.PerJobUserTime && self.PerJobUserTimeLimit == other.PerJobUserTimeLimit && self.JobMemory == other.JobMemory && self.JobMemoryLimit == other.JobMemoryLimit && self.RateControlTolerance == other.RateControlTolerance && self.RateControlToleranceLimit == other.RateControlToleranceLimit
}
}
impl ::core::cmp::Eq for JOBOBJECT_LIMIT_VIOLATION_INFORMATION {}
impl ::core::default::Default for JOBOBJECT_LIMIT_VIOLATION_INFORMATION {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub struct JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2 {
pub LimitFlags: JOB_OBJECT_LIMIT,
pub ViolationLimitFlags: JOB_OBJECT_LIMIT,
pub IoReadBytes: u64,
pub IoReadBytesLimit: u64,
pub IoWriteBytes: u64,
pub IoWriteBytesLimit: u64,
pub PerJobUserTime: i64,
pub PerJobUserTimeLimit: i64,
pub JobMemory: u64,
pub Anonymous1: JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2_0,
pub Anonymous2: JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2_1,
pub Anonymous3: JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2_2,
pub JobLowMemoryLimit: u64,
pub IoRateControlTolerance: JOBOBJECT_RATE_CONTROL_TOLERANCE,
pub IoRateControlToleranceLimit: JOBOBJECT_RATE_CONTROL_TOLERANCE,
pub NetRateControlTolerance: JOBOBJECT_RATE_CONTROL_TOLERANCE,
pub NetRateControlToleranceLimit: JOBOBJECT_RATE_CONTROL_TOLERANCE,
}
impl ::core::marker::Copy for JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2 {}
impl ::core::clone::Clone for JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2 {
fn clone(&self) -> Self {
*self
}
}
impl ::windows::core::TypeKind for JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2 {
type TypeKind = ::windows::core::CopyType;
}
impl ::core::default::Default for JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2 {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub union JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2_0 {
pub JobHighMemoryLimit: u64,
pub JobMemoryLimit: u64,
}
impl ::core::marker::Copy for JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2_0 {}
impl ::core::clone::Clone for JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2_0 {
fn clone(&self) -> Self {
*self
}
}
impl ::windows::core::TypeKind for JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2_0 {
type TypeKind = ::windows::core::CopyType;
}
impl ::core::default::Default for JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2_0 {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub union JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2_1 {
pub RateControlTolerance: JOBOBJECT_RATE_CONTROL_TOLERANCE,
pub CpuRateControlTolerance: JOBOBJECT_RATE_CONTROL_TOLERANCE,
}
impl ::core::marker::Copy for JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2_1 {}
impl ::core::clone::Clone for JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2_1 {
fn clone(&self) -> Self {
*self
}
}
impl ::windows::core::TypeKind for JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2_1 {
type TypeKind = ::windows::core::CopyType;
}
impl ::core::default::Default for JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2_1 {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub union JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2_2 {
pub RateControlToleranceLimit: JOBOBJECT_RATE_CONTROL_TOLERANCE,
pub CpuRateControlToleranceLimit: JOBOBJECT_RATE_CONTROL_TOLERANCE,
}
impl ::core::marker::Copy for JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2_2 {}
impl ::core::clone::Clone for JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2_2 {
fn clone(&self) -> Self {
*self
}
}
impl ::windows::core::TypeKind for JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2_2 {
type TypeKind = ::windows::core::CopyType;
}
impl ::core::default::Default for JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2_2 {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub struct JOBOBJECT_NET_RATE_CONTROL_INFORMATION {
pub MaxBandwidth: u64,
pub ControlFlags: JOB_OBJECT_NET_RATE_CONTROL_FLAGS,
pub DscpTag: u8,
}
impl ::core::marker::Copy for JOBOBJECT_NET_RATE_CONTROL_INFORMATION {}
impl ::core::clone::Clone for JOBOBJECT_NET_RATE_CONTROL_INFORMATION {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for JOBOBJECT_NET_RATE_CONTROL_INFORMATION {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("JOBOBJECT_NET_RATE_CONTROL_INFORMATION").field("MaxBandwidth", &self.MaxBandwidth).field("ControlFlags", &self.ControlFlags).field("DscpTag", &self.DscpTag).finish()
}
}
impl ::windows::core::TypeKind for JOBOBJECT_NET_RATE_CONTROL_INFORMATION {
type TypeKind = ::windows::core::CopyType;
}
impl ::core::cmp::PartialEq for JOBOBJECT_NET_RATE_CONTROL_INFORMATION {
fn eq(&self, other: &Self) -> bool {
self.MaxBandwidth == other.MaxBandwidth && self.ControlFlags == other.ControlFlags && self.DscpTag == other.DscpTag
}
}
impl ::core::cmp::Eq for JOBOBJECT_NET_RATE_CONTROL_INFORMATION {}
impl ::core::default::Default for JOBOBJECT_NET_RATE_CONTROL_INFORMATION {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub struct JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION {
pub IoReadBytesLimit: u64,
pub IoWriteBytesLimit: u64,
pub PerJobUserTimeLimit: i64,
pub JobMemoryLimit: u64,
pub RateControlTolerance: JOBOBJECT_RATE_CONTROL_TOLERANCE,
pub RateControlToleranceInterval: JOBOBJECT_RATE_CONTROL_TOLERANCE_INTERVAL,
pub LimitFlags: JOB_OBJECT_LIMIT,
}
impl ::core::marker::Copy for JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION {}
impl ::core::clone::Clone for JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION {
fn clone(&self) -> Self {
*self
}
}
impl ::core::fmt::Debug for JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION").field("IoReadBytesLimit", &self.IoReadBytesLimit).field("IoWriteBytesLimit", &self.IoWriteBytesLimit).field("PerJobUserTimeLimit", &self.PerJobUserTimeLimit).field("JobMemoryLimit", &self.JobMemoryLimit).field("RateControlTolerance", &self.RateControlTolerance).field("RateControlToleranceInterval", &self.RateControlToleranceInterval).field("LimitFlags", &self.LimitFlags).finish()
}
}
impl ::windows::core::TypeKind for JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION {
type TypeKind = ::windows::core::CopyType;
}
impl ::core::cmp::PartialEq for JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION {
fn eq(&self, other: &Self) -> bool {
self.IoReadBytesLimit == other.IoReadBytesLimit && self.IoWriteBytesLimit == other.IoWriteBytesLimit && self.PerJobUserTimeLimit == other.PerJobUserTimeLimit && self.JobMemoryLimit == other.JobMemoryLimit && self.RateControlTolerance == other.RateControlTolerance && self.RateControlToleranceInterval == other.RateControlToleranceInterval && self.LimitFlags == other.LimitFlags
}
}
impl ::core::cmp::Eq for JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION {}
impl ::core::default::Default for JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub struct JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2 {
pub IoReadBytesLimit: u64,
pub IoWriteBytesLimit: u64,
pub PerJobUserTimeLimit: i64,
pub Anonymous1: JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2_0,
pub Anonymous2: JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2_1,
pub Anonymous3: JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2_2,
pub LimitFlags: JOB_OBJECT_LIMIT,
pub IoRateControlTolerance: JOBOBJECT_RATE_CONTROL_TOLERANCE,
pub JobLowMemoryLimit: u64,
pub IoRateControlToleranceInterval: JOBOBJECT_RATE_CONTROL_TOLERANCE_INTERVAL,
pub NetRateControlTolerance: JOBOBJECT_RATE_CONTROL_TOLERANCE,
pub NetRateControlToleranceInterval: JOBOBJECT_RATE_CONTROL_TOLERANCE_INTERVAL,
}
impl ::core::marker::Copy for JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2 {}
impl ::core::clone::Clone for JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2 {
fn clone(&self) -> Self {
*self
}
}
impl ::windows::core::TypeKind for JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2 {
type TypeKind = ::windows::core::CopyType;
}
impl ::core::default::Default for JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2 {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub union JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2_0 {
pub JobHighMemoryLimit: u64,
pub JobMemoryLimit: u64,
}
impl ::core::marker::Copy for JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2_0 {}
impl ::core::clone::Clone for JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2_0 {
fn clone(&self) -> Self {
*self
}
}
impl ::windows::core::TypeKind for JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2_0 {
type TypeKind = ::windows::core::CopyType;
}
impl ::core::default::Default for JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2_0 {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub union JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2_1 {
pub RateControlTolerance: JOBOBJECT_RATE_CONTROL_TOLERANCE,
pub CpuRateControlTolerance: JOBOBJECT_RATE_CONTROL_TOLERANCE,
}
impl ::core::marker::Copy for JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2_1 {}
impl ::core::clone::Clone for JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2_1 {
fn clone(&self) -> Self {
*self
}
}
impl ::windows::core::TypeKind for JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2_1 {
type TypeKind = ::windows::core::CopyType;
}
impl ::core::default::Default for JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2_1 {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_JobObjects\"`*"]
pub union JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2_2 {
pub RateControlToleranceInterval: JOBOBJECT_RATE_CONTROL_TOLERANCE_INTERVAL,
pub CpuRateControlToleranceInterval: JOBOBJECT_RATE_CONTROL_TOLERANCE_INTERVAL,
}
impl ::core::marker::Copy for JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2_2 {}
impl ::core::clone::Clone for JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2_2 {
fn clone(&self) -> Self {
*self
}
}
impl ::windows::core::TypeKind for JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2_2 {
type TypeKind = ::windows::core::CopyType;
}
impl ::core::default::Default for JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2_2 {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_JobObjects\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))]
pub struct JOBOBJECT_SECURITY_LIMIT_INFORMATION {
pub SecurityLimitFlags: JOB_OBJECT_SECURITY,
pub JobToken: super::super::Foundation::HANDLE,
pub SidsToDisable: *mut super::super::Security::TOKEN_GROUPS,
pub PrivilegesToDelete: *mut super::super::Security::TOKEN_PRIVILEGES,
pub RestrictedSids: *mut super::super::Security::TOKEN_GROUPS,
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))]
impl ::core::marker::Copy for JOBOBJECT_SECURITY_LIMIT_INFORMATION {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))]
impl ::core::clone::Clone for JOBOBJECT_SECURITY_LIMIT_INFORMATION {
fn clone(&self) -> Self {
*self
}
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))]
impl ::core::fmt::Debug for JOBOBJECT_SECURITY_LIMIT_INFORMATION {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("JOBOBJECT_SECURITY_LIMIT_INFORMATION").field("SecurityLimitFlags", &self.SecurityLimitFlags).field("JobToken", &self.JobToken).field("SidsToDisable", &self.SidsToDisable).field("PrivilegesToDelete", &self.PrivilegesToDelete).field("RestrictedSids", &self.RestrictedSids).finish()
}
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))]
impl ::windows::core::TypeKind for JOBOBJECT_SECURITY_LIMIT_INFORMATION {
type TypeKind = ::windows::core::CopyType;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))]
impl ::core::cmp::PartialEq for JOBOBJECT_SECURITY_LIMIT_INFORMATION {
fn eq(&self, other: &Self) -> bool {
self.SecurityLimitFlags == other.SecurityLimitFlags && self.JobToken == other.JobToken && self.SidsToDisable == other.SidsToDisable && self.PrivilegesToDelete == other.PrivilegesToDelete && self.RestrictedSids == other.RestrictedSids
}
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))]
impl ::core::cmp::Eq for JOBOBJECT_SECURITY_LIMIT_INFORMATION {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))]
impl ::core::default::Default for JOBOBJECT_SECURITY_LIMIT_INFORMATION {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[repr(C)]
#[doc = "*Required features: `\"Win32_System_JobObjects\"`, `\"Win32_Foundation\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub struct JOB_SET_ARRAY {
pub JobHandle: super::super::Foundation::HANDLE,
pub MemberLevel: u32,
pub Flags: u32,
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::marker::Copy for JOB_SET_ARRAY {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::clone::Clone for JOB_SET_ARRAY {
fn clone(&self) -> Self {
*self
}
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::fmt::Debug for JOB_SET_ARRAY {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct("JOB_SET_ARRAY").field("JobHandle", &self.JobHandle).field("MemberLevel", &self.MemberLevel).field("Flags", &self.Flags).finish()
}
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows::core::TypeKind for JOB_SET_ARRAY {
type TypeKind = ::windows::core::CopyType;
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::PartialEq for JOB_SET_ARRAY {
fn eq(&self, other: &Self) -> bool {
self.JobHandle == other.JobHandle && self.MemberLevel == other.MemberLevel && self.Flags == other.Flags
}
}
#[cfg(feature = "Win32_Foundation")]
impl ::core::cmp::Eq for JOB_SET_ARRAY {}
#[cfg(feature = "Win32_Foundation")]
impl ::core::default::Default for JOB_SET_ARRAY {
fn default() -> Self {
unsafe { ::core::mem::zeroed() }
}
}
#[cfg(feature = "implement")]
::core::include!("impl.rs");