1# Copyright (c) 2017, The MITRE Corporation. All rights reserved.
2# See LICENSE.txt for complete terms.
3
4from mixbox import fields
5
6import cybox.bindings.win_thread_object as win_thread_binding
7from cybox.common import (DateTime, HexBinary, NonNegativeInteger,
8        ObjectProperties, String, UnsignedInteger)
9from cybox.objects.win_handle_object import WinHandle
10
11
12class WinThread(ObjectProperties):
13    _binding = win_thread_binding
14    _binding_class = win_thread_binding.WindowsThreadObjectType
15    _namespace = 'http://cybox.mitre.org/objects#WinThreadObject-2'
16    _XSI_NS = "WinThreadObj"
17    _XSI_TYPE = "WindowsThreadObjectType"
18
19    thread_id = fields.TypedField("Thread_ID", NonNegativeInteger)
20    handle = fields.TypedField("Handle", WinHandle)
21    running_status = fields.TypedField("Running_Status", String)
22    context = fields.TypedField("Context", String)
23    priority = fields.TypedField("Priority", UnsignedInteger)
24    creation_flags = fields.TypedField("Creation_Flags", HexBinary)
25    creation_time = fields.TypedField("Creation_Time", DateTime)
26    start_address = fields.TypedField("Start_Address", HexBinary)
27    parameter_address = fields.TypedField("Parameter_Address", HexBinary)
28    security_attributes = fields.TypedField("Security_Attributes", String)
29    stack_size = fields.TypedField("Stack_Size", NonNegativeInteger)
30