Skip to content

File tree

3 files changed

+97
-0
lines changed

3 files changed

+97
-0
lines changed

windows/syscall_windows.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -260,6 +260,7 @@ func NewCallbackCDecl(fn interface{}) uintptr {
260260
//sys ResumeThread(thread Handle) (ret uint32, err error) [failretval==0xffffffff] = kernel32.ResumeThread
261261
//sys SetPriorityClass(process Handle, priorityClass uint32) (err error) = kernel32.SetPriorityClass
262262
//sys GetPriorityClass(process Handle) (ret uint32, err error) = kernel32.GetPriorityClass
263+
//sys SetInformationJobObject(job Handle, JobObjectInformationClass uint32, JobObjectInformation uintptr, JobObjectInformationLength uint32) (ret int, err error)
263264

264265
// Volume Management Functions
265266
//sys DefineDosDevice(flags uint32, deviceName *uint16, targetPath *uint16) (err error) = DefineDosDeviceW

windows/types_windows.go

Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1508,3 +1508,85 @@ type ConsoleScreenBufferInfo struct {
15081508
}
15091509

15101510
const UNIX_PATH_MAX = 108 // defined in afunix.h
1511+
1512+
const (
1513+
// flags for JOBOBJECT_BASIC_LIMIT_INFORMATION.LimitFlags
1514+
JOB_OBJECT_LIMIT_ACTIVE_PROCESS = 0x00000008
1515+
JOB_OBJECT_LIMIT_AFFINITY = 0x00000010
1516+
JOB_OBJECT_LIMIT_BREAKAWAY_OK = 0x00000800
1517+
JOB_OBJECT_LIMIT_DIE_ON_UNHANDLED_EXCEPTION = 0x00000400
1518+
JOB_OBJECT_LIMIT_JOB_MEMORY = 0x00000200
1519+
JOB_OBJECT_LIMIT_JOB_TIME = 0x00000004
1520+
JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE = 0x00002000
1521+
JOB_OBJECT_LIMIT_PRESERVE_JOB_TIME = 0x00000040
1522+
JOB_OBJECT_LIMIT_PRIORITY_CLASS = 0x00000020
1523+
JOB_OBJECT_LIMIT_PROCESS_MEMORY = 0x00000100
1524+
JOB_OBJECT_LIMIT_PROCESS_TIME = 0x00000002
1525+
JOB_OBJECT_LIMIT_SCHEDULING_CLASS = 0x00000080
1526+
JOB_OBJECT_LIMIT_SILENT_BREAKAWAY_OK = 0x00001000
1527+
JOB_OBJECT_LIMIT_SUBSET_AFFINITY = 0x00004000
1528+
JOB_OBJECT_LIMIT_WORKINGSET = 0x00000001
1529+
)
1530+
1531+
type JOBOBJECT_BASIC_LIMIT_INFORMATION struct {
1532+
PerProcessUserTimeLimit int64
1533+
PerJobUserTimeLimit int64
1534+
LimitFlags uint32
1535+
MinimumWorkingSetSize uintptr
1536+
MaximumWorkingSetSize uintptr
1537+
ActiveProcessLimit uint32
1538+
Affinity uintptr
1539+
PriorityClass uint32
1540+
SchedulingClass uint32
1541+
}
1542+
1543+
type IO_COUNTERS struct {
1544+
ReadOperationCount uint64
1545+
WriteOperationCount uint64
1546+
OtherOperationCount uint64
1547+
ReadTransferCount uint64
1548+
WriteTransferCount uint64
1549+
OtherTransferCount uint64
1550+
}
1551+
1552+
type JOBOBJECT_EXTENDED_LIMIT_INFORMATION struct {
1553+
BasicLimitInformation JOBOBJECT_BASIC_LIMIT_INFORMATION
1554+
IoInfo IO_COUNTERS
1555+
ProcessMemoryLimit uintptr
1556+
JobMemoryLimit uintptr
1557+
PeakProcessMemoryUsed uintptr
1558+
PeakJobMemoryUsed uintptr
1559+
}
1560+
1561+
const (
1562+
// UIRestrictionsClass
1563+
JOB_OBJECT_UILIMIT_DESKTOP = 0x00000040
1564+
JOB_OBJECT_UILIMIT_DISPLAYSETTINGS = 0x00000010
1565+
JOB_OBJECT_UILIMIT_EXITWINDOWS = 0x00000080
1566+
JOB_OBJECT_UILIMIT_GLOBALATOMS = 0x00000020
1567+
JOB_OBJECT_UILIMIT_HANDLES = 0x00000001
1568+
JOB_OBJECT_UILIMIT_READCLIPBOARD = 0x00000002
1569+
JOB_OBJECT_UILIMIT_SYSTEMPARAMETERS = 0x00000008
1570+
JOB_OBJECT_UILIMIT_WRITECLIPBOARD = 0x00000004
1571+
)
1572+
1573+
type JOBOBJECT_BASIC_UI_RESTRICTIONS struct {
1574+
UIRestrictionsClass uint32
1575+
}
1576+
1577+
const (
1578+
// JobObjectInformationClass
1579+
JobObjectAssociateCompletionPortInformation = 7
1580+
JobObjectBasicLimitInformation = 2
1581+
JobObjectBasicUIRestrictions = 4
1582+
JobObjectCpuRateControlInformation = 15
1583+
JobObjectEndOfJobTimeInformation = 6
1584+
JobObjectExtendedLimitInformation = 9
1585+
JobObjectGroupInformation = 11
1586+
JobObjectGroupInformationEx = 14
1587+
JobObjectLimitViolationInformation2 = 35
1588+
JobObjectNetRateControlInformation = 32
1589+
JobObjectNotificationLimitInformation = 12
1590+
JobObjectNotificationLimitInformation2 = 34
1591+
JobObjectSecurityLimitInformation = 5
1592+
)

windows/zsyscall_windows.go

Lines changed: 14 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)