diff --git a/docs/build/html/.buildinfo b/docs/build/html/.buildinfo index dec49d73..ebb29966 100644 --- a/docs/build/html/.buildinfo +++ b/docs/build/html/.buildinfo @@ -1,4 +1,4 @@ # Sphinx build info version 1 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: bb938eea015b2c5861daa2467f1a95bd +config: fb4e1f3623837487174af5c6fcf17f8a tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/docs/build/html/_modules/index.html b/docs/build/html/_modules/index.html index dc360d0f..26d88b1f 100644 --- a/docs/build/html/_modules/index.html +++ b/docs/build/html/_modules/index.html @@ -6,7 +6,7 @@ - Overview: module code — PythonForWindows 0.2 documentation + Overview: module code — PythonForWindows 0.3 documentation @@ -14,7 +14,7 @@ + + + + + + + + + +
+
+
+
+ +

Source code for windows.alpc

+import sys
+import ctypes
+from collections import namedtuple
+
+import windows
+from windows import winproxy
+from windows import generated_def as gdef
+
+
+## For 64b python
+# 0x1f: 0x80000000: ALPC_MESSAGE_SECURITY_ATTRIBUTE(0x80000000) : size=0x18?
+# 0x1e: 0x40000000: ALPC_MESSAGE_VIEW_ATTRIBUTE(0x40000000): size=0x20
+# 0x1d: 0x20000000: ALPC_MESSAGE_CONTEXT_ATTRIBUTE(0x20000000): size=0x20
+# 0x1c: 0x10000000: ALPC_MESSAGE_HANDLE_ATTRIBUTE(0x10000000): size=0x18
+# 0x1b: 0x8000000: ALPC_MESSAGE_TOKEN_ATTRIBUTE(0x8000000): size=0x18
+# 0x1a: 0x4000000: ALPC_MESSAGE_DIRECT_ATTRIBUTE(0x4000000) size=0x8
+# 0x19: 0x2000000: ALPC_MESSAGE_WORK_ON_BEHALF_ATTRIBUTE(0x2000000) size=0x8
+
+
[docs]class AlpcMessage(object): + """Represent a full ALPC Message: a :class:`AlpcMessagePort` and a :class:`MessageAttribute`""" + # PORT_MESSAGE + MessageAttribute + def __init__(self, msg_or_size=0x1000, attributes=None): + # Init the PORT_MESSAGE + if isinstance(msg_or_size, (long, int)): + self.port_message_buffer_size = msg_or_size + self.port_message_raw_buffer = ctypes.c_buffer(msg_or_size) + self.port_message = AlpcMessagePort.from_buffer(self.port_message_raw_buffer) + self.port_message.set_datalen(0) + elif isinstance(msg_or_size, AlpcMessagePort): + self.port_message = msg_or_size + self.port_message_raw_buffer = self.port_message.raw_buffer + self.port_message_buffer_size = len(self.port_message_raw_buffer) + else: + raise NotImplementedError("Uneexpected type for <msg_or_size>: {0}".format(msg_or_size)) + + # Init the MessageAttributes + if attributes is None: + # self.attributes = MessageAttribute.with_all_attributes() + self.attributes = MessageAttribute.with_all_attributes() ## Testing + else: + self.attributes = attributes + + # PORT_MESSAGE wrappers + @property + def type(self): + """The type of the message (``PORT_MESSAGE.u2.s2.Type``)""" + return self.port_message.u2.s2.Type + + def get_port_message_data(self): + return self.port_message.data + + def set_port_message_data(self, data): + self.port_message.data = data + + data = property(get_port_message_data, set_port_message_data) + "The data of the message (located after the PORT_MESSAGE header)" + + # MessageAttributes wrappers + + ## Low level attributes access + @property + def security_attribute(self): + """The :data:`~windows.generated_def.ALPC_MESSAGE_SECURITY_ATTRIBUTE` of the message + + :type: :class:`ALPC_SECURITY_ATTR` + """ + return self.attributes.get_attribute(gdef.ALPC_MESSAGE_SECURITY_ATTRIBUTE) + + @property + def view_attribute(self): + """The :data:`~windows.generated_def.ALPC_MESSAGE_VIEW_ATTRIBUTE` of the message: + + :type: :class:`ALPC_DATA_VIEW_ATTR` + """ + return self.attributes.get_attribute(gdef.ALPC_MESSAGE_VIEW_ATTRIBUTE) + + @property + def context_attribute(self): + """The :data:`~windows.generated_def.ALPC_MESSAGE_CONTEXT_ATTRIBUTE` of the message: + + :type: :class:`ALPC_CONTEXT_ATTR` + """ + return self.attributes.get_attribute(gdef.ALPC_MESSAGE_CONTEXT_ATTRIBUTE) + + @property + def handle_attribute(self): + """The :data:`~windows.generated_def.ALPC_MESSAGE_HANDLE_ATTRIBUTE` of the message: + + :type: :class:`ALPC_HANDLE_ATTR` + """ + return self.attributes.get_attribute(gdef.ALPC_MESSAGE_HANDLE_ATTRIBUTE) + + ## Low level validity check (Test) + @property + def view_is_valid(self): # Change the name ? + """True if :data:`~windows.generated_def.ALPC_MESSAGE_VIEW_ATTRIBUTE` is a ValidAttributes""" + return self.attributes.is_valid(gdef.ALPC_MESSAGE_VIEW_ATTRIBUTE) + + @property + def security_is_valid(self): # Change the name ? + """True if :data:`~windows.generated_def.ALPC_MESSAGE_SECURITY_ATTRIBUTE` is a ValidAttributes""" + return self.attributes.is_valid(gdef.ALPC_MESSAGE_SECURITY_ATTRIBUTE) + + @property + def handle_is_valid(self): # Change the name ? + """True if :data:`~windows.generated_def.ALPC_MESSAGE_HANDLE_ATTRIBUTE` is a ValidAttributes""" + return self.attributes.is_valid(gdef.ALPC_MESSAGE_HANDLE_ATTRIBUTE) + + @property + def context_is_valid(self): # Change the name ? + """True if :data:`~windows.generated_def.ALPC_MESSAGE_CONTEXT_ATTRIBUTE` is a ValidAttributes""" + return self.attributes.is_valid(gdef.ALPC_MESSAGE_CONTEXT_ATTRIBUTE) + + + @property + def valid_attributes(self): + """The list of valid attributes + + :type: [:class:`~windows.generated_def.Flag`] + """ + return self.attributes.valid_list + + @property + def allocated_attributes(self): + """The list of allocated attributes + + :type: [:class:`~windows.generated_def.Flag`] + """ + return self.attributes.allocated_list + + ## High level setup (Test) + def setup_view(self, size, section_handle=0, flags=None): + raise NotImplementedError(self.setup_view)
+ + + +
[docs]class AlpcMessagePort(gdef.PORT_MESSAGE): + """The effective ALPC Message composed of a ``PORT_MESSAGE`` structure followed by the data""" + # Constructeur + @classmethod + def from_buffer(self, buffer): + # A sort of super(AlpcMessagePort).from_buffer + # But from_buffer is from the Metaclass of AlpcMessagePort so we use 'type(AlpcMessagePort)' + # To access the standard version of from_buffer. + self = type(AlpcMessagePort).from_buffer(AlpcMessagePort, buffer) + self.buffer_size = len(buffer) + self.raw_buffer = buffer + self.header_size = ctypes.sizeof(self) + self.max_datasize = self.buffer_size - self.header_size + return self + + @classmethod + def from_buffer_size(cls, buffer_size): + buffer = ctypes.c_buffer(buffer_size) + return cls.from_buffer(buffer) + + def read_data(self): + return self.raw_buffer[ctypes.sizeof(self):ctypes.sizeof(self) + self.u1.s1.DataLength] + + def write_data(self, data): + if len(data) > self.max_datasize: + raise ValueError("Cannot write data of len <{0}> (raw_buffer size == <{1}>)".format(len(data), self.buffer_size)) + self.raw_buffer[self.header_size: self.header_size + len(data)] = data + self.set_datalen(len(data)) + + data = property(read_data, write_data) + "The data of the message (located after the header)" + + def set_datalen(self, datalen): + self.u1.s1.TotalLength = self.header_size + datalen + self.u1.s1.DataLength = datalen + + def get_datalen(self): + return self.u1.s1.DataLength + + datalen = property(get_datalen, set_datalen) + """The length of the data"""
+ +KNOWN_ALPC_ATTRIBUTES = (gdef.ALPC_MESSAGE_SECURITY_ATTRIBUTE, + gdef.ALPC_MESSAGE_VIEW_ATTRIBUTE, + gdef.ALPC_MESSAGE_CONTEXT_ATTRIBUTE, + gdef.ALPC_MESSAGE_HANDLE_ATTRIBUTE, + gdef.ALPC_MESSAGE_TOKEN_ATTRIBUTE, + gdef.ALPC_MESSAGE_DIRECT_ATTRIBUTE, + gdef.ALPC_MESSAGE_WORK_ON_BEHALF_ATTRIBUTE) + +KNOWN_ALPC_ATTRIBUTES_MAPPING = {x:x for x in KNOWN_ALPC_ATTRIBUTES} + + +
[docs]class MessageAttribute(gdef.ALPC_MESSAGE_ATTRIBUTES): + """The attributes of an ALPC message""" + ATTRIBUTE_BY_FLAG = [(gdef.ALPC_MESSAGE_SECURITY_ATTRIBUTE, gdef.ALPC_SECURITY_ATTR), + (gdef.ALPC_MESSAGE_VIEW_ATTRIBUTE, gdef.ALPC_DATA_VIEW_ATTR), + (gdef.ALPC_MESSAGE_CONTEXT_ATTRIBUTE, gdef.ALPC_CONTEXT_ATTR), + (gdef.ALPC_MESSAGE_HANDLE_ATTRIBUTE, gdef.ALPC_HANDLE_ATTR), + (gdef.ALPC_MESSAGE_TOKEN_ATTRIBUTE, gdef.ALPC_TOKEN_ATTR), + (gdef.ALPC_MESSAGE_DIRECT_ATTRIBUTE, gdef.ALPC_DIRECT_ATTR), + (gdef.ALPC_MESSAGE_WORK_ON_BEHALF_ATTRIBUTE, gdef.ALPC_WORK_ON_BEHALF_ATTR), + ] + + @classmethod +
[docs] def with_attributes(cls, attributes): + """Create a new :class:`MessageAttribute` with ``attributes`` allocated + + :returns: :class:`MessageAttribute` + """ + size = cls._get_required_buffer_size(attributes) + buffer = ctypes.c_buffer(size) + self = cls.from_buffer(buffer) + self.raw_buffer = buffer + res = gdef.DWORD() + winproxy.AlpcInitializeMessageAttribute(attributes, self, len(self.raw_buffer), res) + return self
+ + @classmethod +
[docs] def with_all_attributes(cls): + """Create a new :class:`MessageAttribute` with the following attributes allocated: + + - :class:`ALPC_MESSAGE_SECURITY_ATTRIBUTE` + - :class:`ALPC_MESSAGE_VIEW_ATTRIBUTE` + - :class:`ALPC_MESSAGE_CONTEXT_ATTRIBUTE` + - :class:`ALPC_MESSAGE_HANDLE_ATTRIBUTE` + - :class:`ALPC_MESSAGE_TOKEN_ATTRIBUTE` + - :class:`ALPC_MESSAGE_DIRECT_ATTRIBUTE` + - :class:`ALPC_MESSAGE_WORK_ON_BEHALF_ATTRIBUTE` + + :returns: :class:`MessageAttribute` + """ + return cls.with_attributes(gdef.ALPC_MESSAGE_SECURITY_ATTRIBUTE | + gdef.ALPC_MESSAGE_VIEW_ATTRIBUTE | + gdef.ALPC_MESSAGE_CONTEXT_ATTRIBUTE | + gdef.ALPC_MESSAGE_HANDLE_ATTRIBUTE | + gdef.ALPC_MESSAGE_TOKEN_ATTRIBUTE | + gdef.ALPC_MESSAGE_DIRECT_ATTRIBUTE | + gdef.ALPC_MESSAGE_WORK_ON_BEHALF_ATTRIBUTE)
+ + + @staticmethod + def _get_required_buffer_size(flags): + res = gdef.DWORD() + try: + windows.winproxy.AlpcInitializeMessageAttribute(flags, None, 0, res) + except windows.generated_def.ntstatus.NtStatusException as e: + # Buffer too small: osef + return res.value + return res.value + +
[docs] def is_allocated(self, attribute): + """Return ``True`` if ``attribute`` is allocated""" + return bool(self.AllocatedAttributes & attribute)
+ +
[docs] def is_valid(self, attribute): + """Return ``True`` if ``attribute`` is valid""" + return bool(self.ValidAttributes & attribute)
+ + def get_attribute(self, attribute): + if not self.is_allocated(attribute): + raise ValueError("Cannot get non-allocated attribute <{0}>".format(attribute)) + offset = ctypes.sizeof(self) + for sflag, struct in self.ATTRIBUTE_BY_FLAG: + if sflag == attribute: + # print("Attr {0:#x} was at offet {1:#x}".format(attribute, offset)) + return struct.from_address(ctypes.addressof(self) + offset) + elif self.is_allocated(sflag): + offset += ctypes.sizeof(struct) + raise ValueError("ALPC Attribute <{0}> not found :(".format(attribute)) + + def _extract_alpc_attributes_values(self, value): + attrs = [] + for mask in (1 << i for i in range(64)): + if value & mask: + attrs.append(mask) + return [KNOWN_ALPC_ATTRIBUTES_MAPPING.get(x, x) for x in attrs] + + @property + def valid_list(self): + """The list of valid attributes + + :type: [:class:`~windows.generated_def.Flag`] + """ + return self._extract_alpc_attributes_values(self.ValidAttributes) + + @property + def allocated_list(self): + """The list of allocated attributes + + :type: [:class:`~windows.generated_def.Flag`] + """ + return self._extract_alpc_attributes_values(self.AllocatedAttributes)
+ + +AlpcSection = namedtuple("AlpcSection", ["handle", "size"]) + +class AlpcTransportBase(object): + def send_receive(self, alpc_message, receive_msg=None, flags=gdef.ALPC_MSGFLG_SYNC_REQUEST): + """Send and receive a message with ``flags``. + + :param alpc_message: The message to send. If ``alpc_message`` is a :class:`str` it build an AlpcMessage with the message as data. + :type alpc_message: AlpcMessage or str + :param receive_msg: The message to send. If ``receive_msg`` is a ``None`` it create and return a simple :class:`AlpcMessage` + :type receive_msg: AlpcMessage or None + :param int flags: The flags for :func:`NtAlpcSendWaitReceivePort` + """ + if isinstance(alpc_message, basestring): + raw_alpc_message = alpc_message + alpc_message = AlpcMessage(max(0x1000, len(alpc_message))) + alpc_message.port_message.data = raw_alpc_message + + if receive_msg is None: + receive_msg = AlpcMessage(0x1000) + receive_size = gdef.SIZE_T(receive_msg.port_message_buffer_size) + winproxy.NtAlpcSendWaitReceivePort(self.handle, flags, alpc_message.port_message, alpc_message.attributes, receive_msg.port_message, receive_size, receive_msg.attributes, None) + return receive_msg + + def send(self, alpc_message, flags=0): + """Send the ``alpc_message`` with ``flags`` + + :param alpc_message: The message to send. If ``alpc_message`` is a :class:`str` it build an AlpcMessage with the message as data. + :type alpc_message: AlpcMessage or str + :param int flags: The flags for :func:`NtAlpcSendWaitReceivePort` + """ + if isinstance(alpc_message, basestring): + raw_alpc_message = alpc_message + alpc_message = AlpcMessage(max(0x1000, len(alpc_message))) + alpc_message.port_message.data = raw_alpc_message + winproxy.NtAlpcSendWaitReceivePort(self.handle, flags, alpc_message.port_message, alpc_message.attributes, None, None, None, None) + + def recv(self, receive_msg=None, flags=0): + """Receive a message into ``alpc_message`` with ``flags``. + + :param receive_msg: The message to send. If ``receive_msg`` is a ``None`` it create and return a simple :class:`AlpcMessage` + :type receive_msg: AlpcMessage or None + :param int flags: The flags for :func:`NtAlpcSendWaitReceivePort` + """ + if receive_msg is None: + receive_msg = AlpcMessage(0x1000) + receive_size = gdef.SIZE_T(receive_msg.port_message_buffer_size) + winproxy.NtAlpcSendWaitReceivePort(self.handle, flags, None, None, receive_msg.port_message, receive_size, receive_msg.attributes, None) + return receive_msg + + def _close_port(self, port_handle): + windows.winproxy.NtAlpcDisconnectPort(port_handle, 0) + windows.winproxy.CloseHandle(port_handle) + + + +
[docs]class AlpcClient(AlpcTransportBase): + "An ALPC client able to connect to a port and send/receive messages" + DEFAULT_MAX_MESSAGE_LENGTH = 0x1000 + + def __init__(self, port_name=None): + """Init the :class:`AlpcClient` automatically connect to ``port_name`` using default values if given""" + self.handle = None + self.port_name = None + if port_name is not None: + x = self.connect_to_port(port_name, "") + + def _alpc_port_to_unicode_string(self, name): + utf16_len = len(name) * 2 + return gdef.UNICODE_STRING(utf16_len, utf16_len, name) + +
[docs] def connect_to_port(self, port_name, connect_message=None, + port_attr=None, port_attr_flags=0x10000, obj_attr=None, + flags=gdef.ALPC_MSGFLG_SYNC_REQUEST, timeout=None): + """Connect to the ALPC port ``port_name``. Most of the parameters have defauls value is ``None`` is passed. + + :param AlpcMessage connect_message: The message send with the connection request, if not ``None`` the function will return an :class:`AlpcMessage` + :param ALPC_PORT_ATTRIBUTES port_attr: The port attributes, one with default value will be used if this parameter is ``None`` + :param int port_attr_flags: ``ALPC_PORT_ATTRIBUTES.Flags`` used if ``port_attr`` is ``None`` (MUTUALY EXCLUSINVE WITH ``port_attr``) + :param OBJECT_ATTRIBUTES obj_attr: The attributes of the port (can be None) + :param int flags: The flags for :func:`NtAlpcConnectPort` + :param int timeout: The timeout of the request + """ + # TODO raise on mutual exclusive parameter + if self.handle is not None: + raise ValueError("Client already connected") + handle = gdef.HANDLE() + port_name_unicode = self._alpc_port_to_unicode_string(port_name) + + if port_attr is None: + port_attr = gdef.ALPC_PORT_ATTRIBUTES() + port_attr.Flags = port_attr_flags # Flag qui fonctionne pour l'UAC + port_attr.MaxMessageLength = self.DEFAULT_MAX_MESSAGE_LENGTH + port_attr.MemoryBandwidth = 0 + port_attr.MaxPoolUsage = 0xffffffff + port_attr.MaxSectionSize = 0xffffffff + port_attr.MaxViewSize = 0xffffffff + port_attr.MaxTotalSectionSize = 0xffffffff + port_attr.DupObjectTypes = 0xffffffff + + port_attr.SecurityQos.Length = ctypes.sizeof(port_attr.SecurityQos) + port_attr.SecurityQos.ImpersonationLevel = gdef.SecurityImpersonation + port_attr.SecurityQos.ContextTrackingMode = 0 + port_attr.SecurityQos.EffectiveOnly = 0 + + if connect_message is None: + send_msg = None + send_msg_attr = None + buffersize = None + elif isinstance(connect_message, basestring): + buffersize = gdef.DWORD(len(connect_message) + 0x1000) + send_msg = AlpcMessagePort.from_buffer_size(buffersize.value) + send_msg.data = connect_message + send_msg_attr = MessageAttribute.with_all_attributes() + elif isinstance(connect_message, AlpcMessage): + send_msg = connect_message.port_message + send_msg_attr = connect_message.attributes + buffersize = gdef.DWORD(connect_message.port_message_buffer_size) + else: + raise ValueError("Don't know how to send <{0!r}> as connect message".format(connect_message)) + + # windows.utils.print_ctypes_struct(port_attr, "port_attr_connect", hexa=True) + receive_attr = MessageAttribute.with_all_attributes() + winproxy.NtAlpcConnectPort(handle, port_name_unicode, obj_attr, port_attr, flags, None, send_msg, buffersize, send_msg_attr, receive_attr, timeout) + # If send_msg is not None, it contains the ClientId.UniqueProcess : PID of the server :) + self.handle = handle.value + self.port_name = port_name + return AlpcMessage(send_msg, receive_attr) if send_msg is not None else None
+ + def create_port_section(self, Flags, SectionHandle, SectionSize): + AlpcSectionHandle = gdef.HANDLE() + ActualSectionSize = gdef.SIZE_T() + # RPCRT4 USE FLAGS 0x40000 ALPC_VIEWFLG_NOT_SECURE ? + winproxy.NtAlpcCreatePortSection(self.handle, Flags, SectionHandle, SectionSize, AlpcSectionHandle, ActualSectionSize) + return AlpcSection(AlpcSectionHandle.value, ActualSectionSize.value) + + def map_section(self, section_handle, size, flags=0): + view_attributes = gdef.ALPC_DATA_VIEW_ATTR() + view_attributes.Flags = 0 + view_attributes.SectionHandle = section_handle + view_attributes.ViewBase = 0 + view_attributes.ViewSize = size + r = winproxy.NtAlpcCreateSectionView(self.handle, flags, view_attributes) + return view_attributes + + def disconnect(self): + self._close_port(self.handle) + + def __del__(self): + if sys.path is not None: + self.disconnect()
+ + +
[docs]class AlpcServer(AlpcTransportBase): + """An ALPC server able to create a port, accept connections and send/receive messages""" + DEFAULT_MAX_MESSAGE_LENGTH = 0x1000 + + def __init__(self, port_name=None): + self.port_name = None + self.communication_port_list = [] + if port_name is not None: + self.create_port(port_name) + + def _alpc_port_to_unicode_string(self, name): + utf16_len = len(name) * 2 + return gdef.UNICODE_STRING(utf16_len, utf16_len, name) + +
[docs] def create_port(self, port_name, msglen=None, port_attr_flags=0, obj_attr=None, port_attr=None): + """Create the ALPC port ``port_name``. Most of the parameters have defauls value is ``None`` is passed. + + :param str port_name: The port's name to create. + :param int msglen: ``ALPC_PORT_ATTRIBUTES.MaxMessageLength`` used if ``port_attr`` is ``None`` (MUTUALY EXCLUSINVE WITH ``port_attr``) + :param int port_attr_flags: ``ALPC_PORT_ATTRIBUTES.Flags`` used if ``port_attr`` is ``None`` (MUTUALY EXCLUSINVE WITH ``port_attr``) + :param OBJECT_ATTRIBUTES obj_attr: The attributes of the port, one with default value will be used if this parameter is ``None`` + :param ALPC_PORT_ATTRIBUTES port_attr: The port attributes, one with default value will be used if this parameter is ``None`` + """ + # TODO raise on mutual exclusive parameter (port_attr + port_attr_flags | obj_attr + msglen) + handle = gdef.HANDLE() + raw_name = port_name + if not raw_name.startswith("\\"): + raw_name = "\\" + port_name + port_name = self._alpc_port_to_unicode_string(raw_name) + + if msglen is None: + msglen = self.DEFAULT_MAX_MESSAGE_LENGTH + if obj_attr is None: + obj_attr = gdef.OBJECT_ATTRIBUTES() + obj_attr.Length = ctypes.sizeof(obj_attr) + obj_attr.RootDirectory = None + obj_attr.ObjectName = ctypes.pointer(port_name) + obj_attr.Attributes = 0 + obj_attr.SecurityDescriptor = None + obj_attr.SecurityQualityOfService = None + if port_attr is None: + port_attr = gdef.ALPC_PORT_ATTRIBUTES() + port_attr.Flags = port_attr_flags + # port_attr.Flags = 0x2080000 + # port_attr.Flags = 0x90000 + port_attr.MaxMessageLength = msglen + port_attr.MemoryBandwidth = 0 + port_attr.MaxPoolUsage = 0xffffffff + port_attr.MaxSectionSize = 0xffffffff + port_attr.MaxViewSize = 0xffffffff + port_attr.MaxTotalSectionSize = 0xffffffff + port_attr.DupObjectTypes = 0xffffffff + # windows.utils.print_ctypes_struct(port_attr, " - PORT_ATTR", hexa=True) + + winproxy.NtAlpcCreatePort(handle, obj_attr, port_attr) + self.port_name = raw_name + self.handle = handle.value
+ +
[docs] def accept_connection(self, msg, port_attr=None, port_context=None): + """Accept the connection for a ``LPC_CONNECTION_REQUEST`` message. + ``msg.MessageId`` must be the same as the connection requesting message. + + :param AlpcMessage msg: The response message. + :param ALPC_PORT_ATTRIBUTES port_attr: The attributes of the port, one with default value will be used if this parameter is ``None`` + :param PVOID port_context: A value that will be copied in ``ALPC_CONTEXT_ATTR.PortContext`` of every message on this connection. + + """ + rhandle = gdef.HANDLE() + + if port_attr is None: + port_attr = gdef.ALPC_PORT_ATTRIBUTES() + port_attr.Flags = 0x80000 + # port_attr.Flags = 0x80000 + 0x2000000 + # port_attr.Flags = 0x2000000 + port_attr.MaxMessageLength = self.DEFAULT_MAX_MESSAGE_LENGTH + port_attr.MemoryBandwidth = 0 + port_attr.MaxPoolUsage = 0xffffffff + port_attr.MaxSectionSize = 0xffffffff + port_attr.MaxViewSize = 0xffffffff + port_attr.MaxTotalSectionSize = 0xffffffff + port_attr.DupObjectTypes = 0xffffffff + # windows.utils.print_ctypes_struct(port_attr, " - CONN_PORT_ATTR", hexa=True) + winproxy.NtAlpcAcceptConnectPort(rhandle, self.handle, 0, None, port_attr, port_context, msg.port_message, None, True) + self.communication_port_list.append(rhandle.value) + return msg
+ + def disconnect(self): + self._close_port(self.handle) + for com_port_handle in self.communication_port_list: + self._close_port(com_port_handle) + + # TODO: add an API to close a communication port ? + + def __del__(self): + if sys.path is not None: + self.disconnect()
+
+ +
+
+
+ +
+
+ + + + \ No newline at end of file diff --git a/docs/build/html/_modules/windows/crypto/certificate.html b/docs/build/html/_modules/windows/crypto/certificate.html index 9a334464..d66b0410 100644 --- a/docs/build/html/_modules/windows/crypto/certificate.html +++ b/docs/build/html/_modules/windows/crypto/certificate.html @@ -6,7 +6,7 @@ - windows.crypto.certificate — PythonForWindows 0.2 documentation + windows.crypto.certificate — PythonForWindows 0.3 documentation @@ -14,7 +14,7 @@ + + + + + + + + + +
+
+
+
+ +

Source code for windows.generated_def.windef

+#Generated file
+
+
+import sys
+import platform
+if sys.version_info.major == 3:
+    long = int
+
+bits = platform.architecture()[0]
+bitness =  int(bits[:2])
+
+NATIVE_WORD_MAX_VALUE = 0xffffffff if bitness == 32 else 0xffffffffffffffff
+
+
[docs]class Flag(long): + def __new__(cls, name, value): + return super(Flag, cls).__new__(cls, value) + + def __init__(self, name, value): + self.name = name + + def __repr__(self): + return "{0}({1})".format(self.name, hex(self)) + + __str__ = __repr__ + + # Fix pickling with protocol 2 + def __getnewargs__(self, *args): + return self.name, long(self)
+ +
[docs]class StrFlag(str): + def __new__(cls, name, value): + if isinstance(value, cls): + return value + return super(StrFlag, cls).__new__(cls, value) + + def __init__(self, name, value): + self.name = name + + def __repr__(self): + return "{0}({1})".format(self.name, str.__repr__(self)) + + # __str__ = __repr__ + + # Fix pickling with protocol 2 + def __getnewargs__(self, *args): + return self.name, str.__str__(self)
+ +def make_flag(name, value): + if isinstance(value, (int, long)): + return Flag(name, value) + return StrFlag(name, value) + + +from ntstatus import * +INVALID_HANDLE_VALUE = make_flag("INVALID_HANDLE_VALUE", ( ( -1 ) & NATIVE_WORD_MAX_VALUE )) +NULL = make_flag("NULL", 0) +MAX_PATH = make_flag("MAX_PATH", 260) +ANYSIZE_ARRAY = make_flag("ANYSIZE_ARRAY", 1) +ANY_SIZE = make_flag("ANY_SIZE", 1) +IMAGE_SIZEOF_SHORT_NAME = make_flag("IMAGE_SIZEOF_SHORT_NAME", 8) +IMAGE_NUMBEROF_DIRECTORY_ENTRIES = make_flag("IMAGE_NUMBEROF_DIRECTORY_ENTRIES", 16) +INFINITE = make_flag("INFINITE", 0xFFFFFFFF) +STD_INPUT_HANDLE = make_flag("STD_INPUT_HANDLE", -10) +STD_OUTPUT_HANDLE = make_flag("STD_OUTPUT_HANDLE", -11) +STD_ERROR_HANDLE = make_flag("STD_ERROR_HANDLE", -12) +WARMING_NOT_SAME_FLAG_FOR_WINXP = make_flag("WARMING_NOT_SAME_FLAG_FOR_WINXP", 0) +PROCESS_TERMINATE = make_flag("PROCESS_TERMINATE", ( 0x0001 )) +PROCESS_CREATE_THREAD = make_flag("PROCESS_CREATE_THREAD", ( 0x0002 )) +PROCESS_SET_SESSIONID = make_flag("PROCESS_SET_SESSIONID", ( 0x0004 )) +PROCESS_VM_OPERATION = make_flag("PROCESS_VM_OPERATION", ( 0x0008 )) +PROCESS_VM_READ = make_flag("PROCESS_VM_READ", ( 0x0010 )) +PROCESS_VM_WRITE = make_flag("PROCESS_VM_WRITE", ( 0x0020 )) +PROCESS_DUP_HANDLE = make_flag("PROCESS_DUP_HANDLE", ( 0x0040 )) +PROCESS_CREATE_PROCESS = make_flag("PROCESS_CREATE_PROCESS", ( 0x0080 )) +PROCESS_SET_QUOTA = make_flag("PROCESS_SET_QUOTA", ( 0x0100 )) +PROCESS_SET_INFORMATION = make_flag("PROCESS_SET_INFORMATION", ( 0x0200 )) +PROCESS_QUERY_INFORMATION = make_flag("PROCESS_QUERY_INFORMATION", ( 0x0400 )) +PROCESS_SUSPEND_RESUME = make_flag("PROCESS_SUSPEND_RESUME", ( 0x0800 )) +PROCESS_QUERY_LIMITED_INFORMATION = make_flag("PROCESS_QUERY_LIMITED_INFORMATION", ( 0x1000 )) +THREAD_TERMINATE = make_flag("THREAD_TERMINATE", ( 0x0001 )) +THREAD_SUSPEND_RESUME = make_flag("THREAD_SUSPEND_RESUME", ( 0x0002 )) +THREAD_GET_CONTEXT = make_flag("THREAD_GET_CONTEXT", ( 0x0008 )) +THREAD_SET_CONTEXT = make_flag("THREAD_SET_CONTEXT", ( 0x0010 )) +THREAD_QUERY_INFORMATION = make_flag("THREAD_QUERY_INFORMATION", ( 0x0040 )) +THREAD_SET_INFORMATION = make_flag("THREAD_SET_INFORMATION", ( 0x0020 )) +THREAD_SET_THREAD_TOKEN = make_flag("THREAD_SET_THREAD_TOKEN", ( 0x0080 )) +THREAD_IMPERSONATE = make_flag("THREAD_IMPERSONATE", ( 0x0100 )) +THREAD_DIRECT_IMPERSONATION = make_flag("THREAD_DIRECT_IMPERSONATION", ( 0x0200 )) +PROCESS_ALL_ACCESS = make_flag("PROCESS_ALL_ACCESS", 0x001F0FFF) +THREAD_ALL_ACCESS = make_flag("THREAD_ALL_ACCESS", 0x001F03FF) +STARTF_USESHOWWINDOW = make_flag("STARTF_USESHOWWINDOW", 0x00000001) +STARTF_USESIZE = make_flag("STARTF_USESIZE", 0x00000002) +STARTF_USEPOSITION = make_flag("STARTF_USEPOSITION", 0x00000004) +STARTF_USECOUNTCHARS = make_flag("STARTF_USECOUNTCHARS", 0x00000008) +STARTF_USEFILLATTRIBUTE = make_flag("STARTF_USEFILLATTRIBUTE", 0x00000010) +STARTF_RUNFULLSCREEN = make_flag("STARTF_RUNFULLSCREEN", 0x00000020) +STARTF_FORCEONFEEDBACK = make_flag("STARTF_FORCEONFEEDBACK", 0x00000040) +STARTF_FORCEOFFFEEDBACK = make_flag("STARTF_FORCEOFFFEEDBACK", 0x00000080) +STARTF_USESTDHANDLES = make_flag("STARTF_USESTDHANDLES", 0x00000100) +SW_HIDE = make_flag("SW_HIDE", 0) +SW_SHOWNORMAL = make_flag("SW_SHOWNORMAL", 1) +SW_NORMAL = make_flag("SW_NORMAL", 1) +SW_SHOWMINIMIZED = make_flag("SW_SHOWMINIMIZED", 2) +SW_SHOWMAXIMIZED = make_flag("SW_SHOWMAXIMIZED", 3) +SW_MAXIMIZE = make_flag("SW_MAXIMIZE", 3) +SW_SHOWNOACTIVATE = make_flag("SW_SHOWNOACTIVATE", 4) +SW_SHOW = make_flag("SW_SHOW", 5) +SW_MINIMIZE = make_flag("SW_MINIMIZE", 6) +SW_SHOWMINNOACTIVE = make_flag("SW_SHOWMINNOACTIVE", 7) +SW_SHOWNA = make_flag("SW_SHOWNA", 8) +SW_RESTORE = make_flag("SW_RESTORE", 9) +SW_SHOWDEFAULT = make_flag("SW_SHOWDEFAULT", 10) +SW_FORCEMINIMIZE = make_flag("SW_FORCEMINIMIZE", 11) +SW_MAX = make_flag("SW_MAX", 11) +DEBUG_PROCESS = make_flag("DEBUG_PROCESS", 0x00000001) +DEBUG_ONLY_THIS_PROCESS = make_flag("DEBUG_ONLY_THIS_PROCESS", 0x00000002) +CREATE_SUSPENDED = make_flag("CREATE_SUSPENDED", 0x00000004) +DETACHED_PROCESS = make_flag("DETACHED_PROCESS", 0x00000008) +CREATE_NEW_CONSOLE = make_flag("CREATE_NEW_CONSOLE", 0x00000010) +NORMAL_PRIORITY_CLASS = make_flag("NORMAL_PRIORITY_CLASS", 0x00000020) +IDLE_PRIORITY_CLASS = make_flag("IDLE_PRIORITY_CLASS", 0x00000040) +HIGH_PRIORITY_CLASS = make_flag("HIGH_PRIORITY_CLASS", 0x00000080) +REALTIME_PRIORITY_CLASS = make_flag("REALTIME_PRIORITY_CLASS", 0x00000100) +CREATE_NEW_PROCESS_GROUP = make_flag("CREATE_NEW_PROCESS_GROUP", 0x00000200) +CREATE_UNICODE_ENVIRONMENT = make_flag("CREATE_UNICODE_ENVIRONMENT", 0x00000400) +CREATE_SEPARATE_WOW_VDM = make_flag("CREATE_SEPARATE_WOW_VDM", 0x00000800) +CREATE_SHARED_WOW_VDM = make_flag("CREATE_SHARED_WOW_VDM", 0x00001000) +CREATE_FORCEDOS = make_flag("CREATE_FORCEDOS", 0x00002000) +BELOW_NORMAL_PRIORITY_CLASS = make_flag("BELOW_NORMAL_PRIORITY_CLASS", 0x00004000) +ABOVE_NORMAL_PRIORITY_CLASS = make_flag("ABOVE_NORMAL_PRIORITY_CLASS", 0x00008000) +INHERIT_PARENT_AFFINITY = make_flag("INHERIT_PARENT_AFFINITY", 0x00010000) +INHERIT_CALLER_PRIORITY = make_flag("INHERIT_CALLER_PRIORITY", 0x00020000) +CREATE_PROTECTED_PROCESS = make_flag("CREATE_PROTECTED_PROCESS", 0x00040000) +EXTENDED_STARTUPINFO_PRESENT = make_flag("EXTENDED_STARTUPINFO_PRESENT", 0x00080000) +PROCESS_MODE_BACKGROUND_BEGIN = make_flag("PROCESS_MODE_BACKGROUND_BEGIN", 0x00100000) +PROCESS_MODE_BACKGROUND_END = make_flag("PROCESS_MODE_BACKGROUND_END", 0x00200000) +CREATE_BREAKAWAY_FROM_JOB = make_flag("CREATE_BREAKAWAY_FROM_JOB", 0x01000000) +CREATE_PRESERVE_CODE_AUTHZ_LEVEL = make_flag("CREATE_PRESERVE_CODE_AUTHZ_LEVEL", 0x02000000) +CREATE_DEFAULT_ERROR_MODE = make_flag("CREATE_DEFAULT_ERROR_MODE", 0x04000000) +CREATE_NO_WINDOW = make_flag("CREATE_NO_WINDOW", 0x08000000) +PROFILE_USER = make_flag("PROFILE_USER", 0x10000000) +PROFILE_KERNEL = make_flag("PROFILE_KERNEL", 0x20000000) +PROFILE_SERVER = make_flag("PROFILE_SERVER", 0x40000000) +CREATE_IGNORE_SYSTEM_DEFAULT = make_flag("CREATE_IGNORE_SYSTEM_DEFAULT", 0x80000000) +WAIT_IO_COMPLETION = make_flag("WAIT_IO_COMPLETION", STATUS_USER_APC) +STILL_ACTIVE = make_flag("STILL_ACTIVE", STATUS_PENDING) +EXCEPTION_ACCESS_VIOLATION = make_flag("EXCEPTION_ACCESS_VIOLATION", STATUS_ACCESS_VIOLATION) +EXCEPTION_DATATYPE_MISALIGNMENT = make_flag("EXCEPTION_DATATYPE_MISALIGNMENT", STATUS_DATATYPE_MISALIGNMENT) +EXCEPTION_BREAKPOINT = make_flag("EXCEPTION_BREAKPOINT", STATUS_BREAKPOINT) +EXCEPTION_SINGLE_STEP = make_flag("EXCEPTION_SINGLE_STEP", STATUS_SINGLE_STEP) +EXCEPTION_ARRAY_BOUNDS_EXCEEDED = make_flag("EXCEPTION_ARRAY_BOUNDS_EXCEEDED", STATUS_ARRAY_BOUNDS_EXCEEDED) +EXCEPTION_FLT_DENORMAL_OPERAND = make_flag("EXCEPTION_FLT_DENORMAL_OPERAND", STATUS_FLOAT_DENORMAL_OPERAND) +EXCEPTION_FLT_DIVIDE_BY_ZERO = make_flag("EXCEPTION_FLT_DIVIDE_BY_ZERO", STATUS_FLOAT_DIVIDE_BY_ZERO) +EXCEPTION_FLT_INEXACT_RESULT = make_flag("EXCEPTION_FLT_INEXACT_RESULT", STATUS_FLOAT_INEXACT_RESULT) +EXCEPTION_FLT_INVALID_OPERATION = make_flag("EXCEPTION_FLT_INVALID_OPERATION", STATUS_FLOAT_INVALID_OPERATION) +EXCEPTION_FLT_OVERFLOW = make_flag("EXCEPTION_FLT_OVERFLOW", STATUS_FLOAT_OVERFLOW) +EXCEPTION_FLT_STACK_CHECK = make_flag("EXCEPTION_FLT_STACK_CHECK", STATUS_FLOAT_STACK_CHECK) +EXCEPTION_FLT_UNDERFLOW = make_flag("EXCEPTION_FLT_UNDERFLOW", STATUS_FLOAT_UNDERFLOW) +EXCEPTION_INT_DIVIDE_BY_ZERO = make_flag("EXCEPTION_INT_DIVIDE_BY_ZERO", STATUS_INTEGER_DIVIDE_BY_ZERO) +EXCEPTION_INT_OVERFLOW = make_flag("EXCEPTION_INT_OVERFLOW", STATUS_INTEGER_OVERFLOW) +EXCEPTION_PRIV_INSTRUCTION = make_flag("EXCEPTION_PRIV_INSTRUCTION", STATUS_PRIVILEGED_INSTRUCTION) +EXCEPTION_IN_PAGE_ERROR = make_flag("EXCEPTION_IN_PAGE_ERROR", STATUS_IN_PAGE_ERROR) +EXCEPTION_ILLEGAL_INSTRUCTION = make_flag("EXCEPTION_ILLEGAL_INSTRUCTION", STATUS_ILLEGAL_INSTRUCTION) +EXCEPTION_NONCONTINUABLE_EXCEPTION = make_flag("EXCEPTION_NONCONTINUABLE_EXCEPTION", STATUS_NONCONTINUABLE_EXCEPTION) +EXCEPTION_STACK_OVERFLOW = make_flag("EXCEPTION_STACK_OVERFLOW", STATUS_STACK_OVERFLOW) +EXCEPTION_INVALID_DISPOSITION = make_flag("EXCEPTION_INVALID_DISPOSITION", STATUS_INVALID_DISPOSITION) +EXCEPTION_GUARD_PAGE = make_flag("EXCEPTION_GUARD_PAGE", STATUS_GUARD_PAGE_VIOLATION) +EXCEPTION_INVALID_HANDLE = make_flag("EXCEPTION_INVALID_HANDLE", STATUS_INVALID_HANDLE) +EXCEPTION_POSSIBLE_DEADLOCK = make_flag("EXCEPTION_POSSIBLE_DEADLOCK", STATUS_POSSIBLE_DEADLOCK) +CONTROL_C_EXIT = make_flag("CONTROL_C_EXIT", STATUS_CONTROL_C_EXIT) +EXCEPTION_DEBUG_EVENT = make_flag("EXCEPTION_DEBUG_EVENT", 1) +CREATE_THREAD_DEBUG_EVENT = make_flag("CREATE_THREAD_DEBUG_EVENT", 2) +CREATE_PROCESS_DEBUG_EVENT = make_flag("CREATE_PROCESS_DEBUG_EVENT", 3) +EXIT_THREAD_DEBUG_EVENT = make_flag("EXIT_THREAD_DEBUG_EVENT", 4) +EXIT_PROCESS_DEBUG_EVENT = make_flag("EXIT_PROCESS_DEBUG_EVENT", 5) +LOAD_DLL_DEBUG_EVENT = make_flag("LOAD_DLL_DEBUG_EVENT", 6) +UNLOAD_DLL_DEBUG_EVENT = make_flag("UNLOAD_DLL_DEBUG_EVENT", 7) +OUTPUT_DEBUG_STRING_EVENT = make_flag("OUTPUT_DEBUG_STRING_EVENT", 8) +RIP_EVENT = make_flag("RIP_EVENT", 9) +TH32CS_SNAPHEAPLIST = make_flag("TH32CS_SNAPHEAPLIST", 0x00000001) +TH32CS_SNAPPROCESS = make_flag("TH32CS_SNAPPROCESS", 0x00000002) +TH32CS_SNAPTHREAD = make_flag("TH32CS_SNAPTHREAD", 0x00000004) +TH32CS_SNAPMODULE = make_flag("TH32CS_SNAPMODULE", 0x00000008) +TH32CS_SNAPMODULE32 = make_flag("TH32CS_SNAPMODULE32", 0x00000010) +TH32CS_SNAPALL = make_flag("TH32CS_SNAPALL", ( TH32CS_SNAPHEAPLIST | TH32CS_SNAPPROCESS | TH32CS_SNAPTHREAD | TH32CS_SNAPMODULE )) +TH32CS_INHERIT = make_flag("TH32CS_INHERIT", 0x80000000) +CONTEXT_I386 = make_flag("CONTEXT_I386", 0x00010000) +CONTEXT_CONTROL = make_flag("CONTEXT_CONTROL", 0x00000001) +CONTEXT_INTEGER = make_flag("CONTEXT_INTEGER", 0x00000002) +CONTEXT_SEGMENTS = make_flag("CONTEXT_SEGMENTS", 0x00000004) +CONTEXT_FLOATING_POINT = make_flag("CONTEXT_FLOATING_POINT", 0x00000008) +CONTEXT_DEBUG_REGISTERS = make_flag("CONTEXT_DEBUG_REGISTERS", 0x00000010) +CONTEXT_EXTENDED_REGISTERS = make_flag("CONTEXT_EXTENDED_REGISTERS", 0x00000020) +CONTEXT_FULL = make_flag("CONTEXT_FULL", ( CONTEXT_CONTROL | CONTEXT_INTEGER | CONTEXT_SEGMENTS )) +CONTEXT_ALL = make_flag("CONTEXT_ALL", ( CONTEXT_FULL | CONTEXT_FLOATING_POINT | CONTEXT_DEBUG_REGISTERS | CONTEXT_EXTENDED_REGISTERS )) +CONTEXT_FULL = make_flag("CONTEXT_FULL", CONTEXT_I386 | CONTEXT_FULL) +CONTEXT_ALL = make_flag("CONTEXT_ALL", CONTEXT_I386 | CONTEXT_ALL) +CONTEXT_XSTATE = make_flag("CONTEXT_XSTATE", ( CONTEXT_I386 | 0x00000040 )) +PAGE_NOACCESS = make_flag("PAGE_NOACCESS", 0x01) +PAGE_READONLY = make_flag("PAGE_READONLY", 0x02) +PAGE_READWRITE = make_flag("PAGE_READWRITE", 0x04) +PAGE_WRITECOPY = make_flag("PAGE_WRITECOPY", 0x08) +PAGE_EXECUTE = make_flag("PAGE_EXECUTE", 0x10) +PAGE_EXECUTE_READ = make_flag("PAGE_EXECUTE_READ", 0x20) +PAGE_EXECUTE_READWRITE = make_flag("PAGE_EXECUTE_READWRITE", 0x40) +PAGE_EXECUTE_WRITECOPY = make_flag("PAGE_EXECUTE_WRITECOPY", 0x80) +PAGE_GUARD = make_flag("PAGE_GUARD", 0x100) +PAGE_NOCACHE = make_flag("PAGE_NOCACHE", 0x200) +PAGE_WRITECOMBINE = make_flag("PAGE_WRITECOMBINE", 0x400) +MEM_COMMIT = make_flag("MEM_COMMIT", 0x1000) +MEM_RESERVE = make_flag("MEM_RESERVE", 0x2000) +MEM_DECOMMIT = make_flag("MEM_DECOMMIT", 0x4000) +MEM_RELEASE = make_flag("MEM_RELEASE", 0x8000) +MEM_FREE = make_flag("MEM_FREE", 0x10000) +MEM_PRIVATE = make_flag("MEM_PRIVATE", 0x20000) +MEM_MAPPED = make_flag("MEM_MAPPED", 0x40000) +MEM_RESET = make_flag("MEM_RESET", 0x80000) +MEM_TOP_DOWN = make_flag("MEM_TOP_DOWN", 0x100000) +MEM_WRITE_WATCH = make_flag("MEM_WRITE_WATCH", 0x200000) +MEM_PHYSICAL = make_flag("MEM_PHYSICAL", 0x400000) +MEM_ROTATE = make_flag("MEM_ROTATE", 0x800000) +MEM_LARGE_PAGES = make_flag("MEM_LARGE_PAGES", 0x20000000) +MEM_4MB_PAGES = make_flag("MEM_4MB_PAGES", 0x80000000) +SEC_FILE = make_flag("SEC_FILE", 0x800000) +SEC_IMAGE = make_flag("SEC_IMAGE", 0x1000000) +SEC_PROTECTED_IMAGE = make_flag("SEC_PROTECTED_IMAGE", 0x2000000) +SEC_RESERVE = make_flag("SEC_RESERVE", 0x4000000) +SEC_COMMIT = make_flag("SEC_COMMIT", 0x8000000) +SEC_NOCACHE = make_flag("SEC_NOCACHE", 0x10000000) +SEC_WRITECOMBINE = make_flag("SEC_WRITECOMBINE", 0x40000000) +SEC_LARGE_PAGES = make_flag("SEC_LARGE_PAGES", 0x80000000) +MEM_IMAGE = make_flag("MEM_IMAGE", SEC_IMAGE) +WRITE_WATCH_FLAG_RESET = make_flag("WRITE_WATCH_FLAG_RESET", 0x01) +DELETE = make_flag("DELETE", ( 0x00010000 )) +READ_CONTROL = make_flag("READ_CONTROL", ( 0x00020000 )) +WRITE_DAC = make_flag("WRITE_DAC", ( 0x00040000 )) +WRITE_OWNER = make_flag("WRITE_OWNER", ( 0x00080000 )) +SYNCHRONIZE = make_flag("SYNCHRONIZE", ( 0x00100000 )) +STANDARD_RIGHTS_REQUIRED = make_flag("STANDARD_RIGHTS_REQUIRED", ( 0x000F0000 )) +STANDARD_RIGHTS_READ = make_flag("STANDARD_RIGHTS_READ", ( READ_CONTROL )) +STANDARD_RIGHTS_WRITE = make_flag("STANDARD_RIGHTS_WRITE", ( READ_CONTROL )) +STANDARD_RIGHTS_EXECUTE = make_flag("STANDARD_RIGHTS_EXECUTE", ( READ_CONTROL )) +STANDARD_RIGHTS_ALL = make_flag("STANDARD_RIGHTS_ALL", ( 0x001F0000 )) +SPECIFIC_RIGHTS_ALL = make_flag("SPECIFIC_RIGHTS_ALL", ( 0x0000FFFF )) +TOKEN_ASSIGN_PRIMARY = make_flag("TOKEN_ASSIGN_PRIMARY", ( 0x0001 )) +TOKEN_DUPLICATE = make_flag("TOKEN_DUPLICATE", ( 0x0002 )) +TOKEN_IMPERSONATE = make_flag("TOKEN_IMPERSONATE", ( 0x0004 )) +TOKEN_QUERY = make_flag("TOKEN_QUERY", ( 0x0008 )) +TOKEN_QUERY_SOURCE = make_flag("TOKEN_QUERY_SOURCE", ( 0x0010 )) +TOKEN_ADJUST_PRIVILEGES = make_flag("TOKEN_ADJUST_PRIVILEGES", ( 0x0020 )) +TOKEN_ADJUST_GROUPS = make_flag("TOKEN_ADJUST_GROUPS", ( 0x0040 )) +TOKEN_ADJUST_DEFAULT = make_flag("TOKEN_ADJUST_DEFAULT", ( 0x0080 )) +TOKEN_ADJUST_SESSIONID = make_flag("TOKEN_ADJUST_SESSIONID", ( 0x0100 )) +TOKEN_ALL_ACCESS_P = make_flag("TOKEN_ALL_ACCESS_P", ( STANDARD_RIGHTS_REQUIRED | TOKEN_ASSIGN_PRIMARY | TOKEN_DUPLICATE | TOKEN_IMPERSONATE | TOKEN_QUERY | TOKEN_QUERY_SOURCE | TOKEN_ADJUST_PRIVILEGES | TOKEN_ADJUST_GROUPS | TOKEN_ADJUST_DEFAULT )) +TOKEN_ALL_ACCESS = make_flag("TOKEN_ALL_ACCESS", ( TOKEN_ALL_ACCESS_P | TOKEN_ADJUST_SESSIONID )) +SE_PRIVILEGE_ENABLED_BY_DEFAULT = make_flag("SE_PRIVILEGE_ENABLED_BY_DEFAULT", ( 0x00000001 )) +SE_PRIVILEGE_ENABLED = make_flag("SE_PRIVILEGE_ENABLED", ( 0x00000002 )) +SE_PRIVILEGE_REMOVED = make_flag("SE_PRIVILEGE_REMOVED", ( 0X00000004 )) +SE_PRIVILEGE_USED_FOR_ACCESS = make_flag("SE_PRIVILEGE_USED_FOR_ACCESS", ( 0x80000000 )) +AF_UNSPEC = make_flag("AF_UNSPEC", 0) +AF_UNIX = make_flag("AF_UNIX", 1) +AF_INET = make_flag("AF_INET", 2) +AF_IMPLINK = make_flag("AF_IMPLINK", 3) +AF_PUP = make_flag("AF_PUP", 4) +AF_CHAOS = make_flag("AF_CHAOS", 5) +AF_NS = make_flag("AF_NS", 6) +AF_IPX = make_flag("AF_IPX", AF_NS) +AF_ISO = make_flag("AF_ISO", 7) +AF_OSI = make_flag("AF_OSI", AF_ISO) +AF_ECMA = make_flag("AF_ECMA", 8) +AF_DATAKIT = make_flag("AF_DATAKIT", 9) +AF_CCITT = make_flag("AF_CCITT", 10) +AF_SNA = make_flag("AF_SNA", 11) +AF_DECnet = make_flag("AF_DECnet", 12) +AF_DLI = make_flag("AF_DLI", 13) +AF_LAT = make_flag("AF_LAT", 14) +AF_HYLINK = make_flag("AF_HYLINK", 15) +AF_APPLETALK = make_flag("AF_APPLETALK", 16) +AF_NETBIOS = make_flag("AF_NETBIOS", 17) +AF_VOICEVIEW = make_flag("AF_VOICEVIEW", 18) +AF_FIREFOX = make_flag("AF_FIREFOX", 19) +AF_UNKNOWN1 = make_flag("AF_UNKNOWN1", 20) +AF_BAN = make_flag("AF_BAN", 21) +AF_ATM = make_flag("AF_ATM", 22) +AF_INET6 = make_flag("AF_INET6", 23) +AF_CLUSTER = make_flag("AF_CLUSTER", 24) +AF_12844 = make_flag("AF_12844", 25) +AF_IRDA = make_flag("AF_IRDA", 26) +AF_NETDES = make_flag("AF_NETDES", 28) +EXCEPTION_NONCONTINUABLE = make_flag("EXCEPTION_NONCONTINUABLE", 0x1) +EXCEPTION_MAXIMUM_PARAMETERS = make_flag("EXCEPTION_MAXIMUM_PARAMETERS", 15) +EXCEPTION_EXECUTE_HANDLER = make_flag("EXCEPTION_EXECUTE_HANDLER", 1) +EXCEPTION_CONTINUE_SEARCH = make_flag("EXCEPTION_CONTINUE_SEARCH", 0) +EXCEPTION_CONTINUE_EXECUTION = make_flag("EXCEPTION_CONTINUE_EXECUTION", -1) +GENERIC_READ = make_flag("GENERIC_READ", ( 0x80000000 )) +GENERIC_WRITE = make_flag("GENERIC_WRITE", ( 0x40000000 )) +GENERIC_EXECUTE = make_flag("GENERIC_EXECUTE", ( 0x20000000 )) +GENERIC_ALL = make_flag("GENERIC_ALL", ( 0x10000000 )) +FILE_FLAG_WRITE_THROUGH = make_flag("FILE_FLAG_WRITE_THROUGH", 0x80000000) +FILE_FLAG_OVERLAPPED = make_flag("FILE_FLAG_OVERLAPPED", 0x40000000) +FILE_FLAG_NO_BUFFERING = make_flag("FILE_FLAG_NO_BUFFERING", 0x20000000) +FILE_FLAG_RANDOM_ACCESS = make_flag("FILE_FLAG_RANDOM_ACCESS", 0x10000000) +FILE_FLAG_SEQUENTIAL_SCAN = make_flag("FILE_FLAG_SEQUENTIAL_SCAN", 0x08000000) +FILE_FLAG_DELETE_ON_CLOSE = make_flag("FILE_FLAG_DELETE_ON_CLOSE", 0x04000000) +FILE_FLAG_BACKUP_SEMANTICS = make_flag("FILE_FLAG_BACKUP_SEMANTICS", 0x02000000) +FILE_FLAG_POSIX_SEMANTICS = make_flag("FILE_FLAG_POSIX_SEMANTICS", 0x01000000) +FILE_FLAG_OPEN_REPARSE_POINT = make_flag("FILE_FLAG_OPEN_REPARSE_POINT", 0x00200000) +FILE_FLAG_OPEN_NO_RECALL = make_flag("FILE_FLAG_OPEN_NO_RECALL", 0x00100000) +FILE_FLAG_FIRST_PIPE_INSTANCE = make_flag("FILE_FLAG_FIRST_PIPE_INSTANCE", 0x00080000) +CREATE_NEW = make_flag("CREATE_NEW", 1) +CREATE_ALWAYS = make_flag("CREATE_ALWAYS", 2) +OPEN_EXISTING = make_flag("OPEN_EXISTING", 3) +OPEN_ALWAYS = make_flag("OPEN_ALWAYS", 4) +TRUNCATE_EXISTING = make_flag("TRUNCATE_EXISTING", 5) +FILE_SHARE_READ = make_flag("FILE_SHARE_READ", 0x00000001) +FILE_SHARE_WRITE = make_flag("FILE_SHARE_WRITE", 0x00000002) +FILE_SHARE_DELETE = make_flag("FILE_SHARE_DELETE", 0x00000004) +FILE_ATTRIBUTE_READONLY = make_flag("FILE_ATTRIBUTE_READONLY", 0x00000001) +FILE_ATTRIBUTE_HIDDEN = make_flag("FILE_ATTRIBUTE_HIDDEN", 0x00000002) +FILE_ATTRIBUTE_SYSTEM = make_flag("FILE_ATTRIBUTE_SYSTEM", 0x00000004) +FILE_ATTRIBUTE_DIRECTORY = make_flag("FILE_ATTRIBUTE_DIRECTORY", 0x00000010) +FILE_ATTRIBUTE_ARCHIVE = make_flag("FILE_ATTRIBUTE_ARCHIVE", 0x00000020) +FILE_ATTRIBUTE_DEVICE = make_flag("FILE_ATTRIBUTE_DEVICE", 0x00000040) +FILE_ATTRIBUTE_NORMAL = make_flag("FILE_ATTRIBUTE_NORMAL", 0x00000080) +FILE_ATTRIBUTE_TEMPORARY = make_flag("FILE_ATTRIBUTE_TEMPORARY", 0x00000100) +FILE_ATTRIBUTE_SPARSE_FILE = make_flag("FILE_ATTRIBUTE_SPARSE_FILE", 0x00000200) +FILE_ATTRIBUTE_REPARSE_POINT = make_flag("FILE_ATTRIBUTE_REPARSE_POINT", 0x00000400) +FILE_ATTRIBUTE_COMPRESSED = make_flag("FILE_ATTRIBUTE_COMPRESSED", 0x00000800) +FILE_ATTRIBUTE_OFFLINE = make_flag("FILE_ATTRIBUTE_OFFLINE", 0x00001000) +FILE_ATTRIBUTE_NOT_CONTENT_INDEXED = make_flag("FILE_ATTRIBUTE_NOT_CONTENT_INDEXED", 0x00002000) +FILE_ATTRIBUTE_ENCRYPTED = make_flag("FILE_ATTRIBUTE_ENCRYPTED", 0x00004000) +FILE_ATTRIBUTE_VIRTUAL = make_flag("FILE_ATTRIBUTE_VIRTUAL", 0x00010000) +FILE_NOTIFY_CHANGE_FILE_NAME = make_flag("FILE_NOTIFY_CHANGE_FILE_NAME", 0x00000001) +FILE_NOTIFY_CHANGE_DIR_NAME = make_flag("FILE_NOTIFY_CHANGE_DIR_NAME", 0x00000002) +FILE_NOTIFY_CHANGE_ATTRIBUTES = make_flag("FILE_NOTIFY_CHANGE_ATTRIBUTES", 0x00000004) +FILE_NOTIFY_CHANGE_SIZE = make_flag("FILE_NOTIFY_CHANGE_SIZE", 0x00000008) +FILE_NOTIFY_CHANGE_LAST_WRITE = make_flag("FILE_NOTIFY_CHANGE_LAST_WRITE", 0x00000010) +FILE_NOTIFY_CHANGE_LAST_ACCESS = make_flag("FILE_NOTIFY_CHANGE_LAST_ACCESS", 0x00000020) +FILE_NOTIFY_CHANGE_CREATION = make_flag("FILE_NOTIFY_CHANGE_CREATION", 0x00000040) +FILE_NOTIFY_CHANGE_SECURITY = make_flag("FILE_NOTIFY_CHANGE_SECURITY", 0x00000100) +FILE_ACTION_ADDED = make_flag("FILE_ACTION_ADDED", 0x00000001) +FILE_ACTION_REMOVED = make_flag("FILE_ACTION_REMOVED", 0x00000002) +FILE_ACTION_MODIFIED = make_flag("FILE_ACTION_MODIFIED", 0x00000003) +FILE_ACTION_RENAMED_OLD_NAME = make_flag("FILE_ACTION_RENAMED_OLD_NAME", 0x00000004) +FILE_ACTION_RENAMED_NEW_NAME = make_flag("FILE_ACTION_RENAMED_NEW_NAME", 0x00000005) +MAILSLOT_NO_MESSAGE = make_flag("MAILSLOT_NO_MESSAGE", ( -1 )) +MAILSLOT_WAIT_FOREVER = make_flag("MAILSLOT_WAIT_FOREVER", ( -1 )) +FILE_CASE_SENSITIVE_SEARCH = make_flag("FILE_CASE_SENSITIVE_SEARCH", 0x00000001) +FILE_CASE_PRESERVED_NAMES = make_flag("FILE_CASE_PRESERVED_NAMES", 0x00000002) +FILE_UNICODE_ON_DISK = make_flag("FILE_UNICODE_ON_DISK", 0x00000004) +FILE_PERSISTENT_ACLS = make_flag("FILE_PERSISTENT_ACLS", 0x00000008) +FILE_FILE_COMPRESSION = make_flag("FILE_FILE_COMPRESSION", 0x00000010) +FILE_VOLUME_QUOTAS = make_flag("FILE_VOLUME_QUOTAS", 0x00000020) +FILE_SUPPORTS_SPARSE_FILES = make_flag("FILE_SUPPORTS_SPARSE_FILES", 0x00000040) +FILE_SUPPORTS_REPARSE_POINTS = make_flag("FILE_SUPPORTS_REPARSE_POINTS", 0x00000080) +FILE_SUPPORTS_REMOTE_STORAGE = make_flag("FILE_SUPPORTS_REMOTE_STORAGE", 0x00000100) +FILE_VOLUME_IS_COMPRESSED = make_flag("FILE_VOLUME_IS_COMPRESSED", 0x00008000) +FILE_SUPPORTS_OBJECT_IDS = make_flag("FILE_SUPPORTS_OBJECT_IDS", 0x00010000) +FILE_SUPPORTS_ENCRYPTION = make_flag("FILE_SUPPORTS_ENCRYPTION", 0x00020000) +FILE_NAMED_STREAMS = make_flag("FILE_NAMED_STREAMS", 0x00040000) +FILE_READ_ONLY_VOLUME = make_flag("FILE_READ_ONLY_VOLUME", 0x00080000) +FILE_SEQUENTIAL_WRITE_ONCE = make_flag("FILE_SEQUENTIAL_WRITE_ONCE", 0x00100000) +FILE_SUPPORTS_TRANSACTIONS = make_flag("FILE_SUPPORTS_TRANSACTIONS", 0x00200000) +FILE_SUPPORTS_HARD_LINKS = make_flag("FILE_SUPPORTS_HARD_LINKS", 0x00400000) +FILE_SUPPORTS_EXTENDED_ATTRIBUTES = make_flag("FILE_SUPPORTS_EXTENDED_ATTRIBUTES", 0x00800000) +FILE_SUPPORTS_OPEN_BY_FILE_ID = make_flag("FILE_SUPPORTS_OPEN_BY_FILE_ID", 0x01000000) +FILE_SUPPORTS_USN_JOURNAL = make_flag("FILE_SUPPORTS_USN_JOURNAL", 0x02000000) +HKEY_CLASSES_ROOT = make_flag("HKEY_CLASSES_ROOT", ( 0x80000000 )) +HKEY_CURRENT_USER = make_flag("HKEY_CURRENT_USER", ( 0x80000001 )) +HKEY_LOCAL_MACHINE = make_flag("HKEY_LOCAL_MACHINE", ( 0x80000002 )) +HKEY_USERS = make_flag("HKEY_USERS", ( 0x80000003 )) +HKEY_PERFORMANCE_DATA = make_flag("HKEY_PERFORMANCE_DATA", ( 0x80000004 )) +HKEY_PERFORMANCE_TEXT = make_flag("HKEY_PERFORMANCE_TEXT", ( 0x80000050 )) +HKEY_PERFORMANCE_NLSTEXT = make_flag("HKEY_PERFORMANCE_NLSTEXT", ( 0x80000060 )) +RRF_RT_REG_NONE = make_flag("RRF_RT_REG_NONE", 0x00000001) +RRF_RT_REG_SZ = make_flag("RRF_RT_REG_SZ", 0x00000002) +RRF_RT_REG_EXPAND_SZ = make_flag("RRF_RT_REG_EXPAND_SZ", 0x00000004) +RRF_RT_REG_BINARY = make_flag("RRF_RT_REG_BINARY", 0x00000008) +RRF_RT_REG_DWORD = make_flag("RRF_RT_REG_DWORD", 0x00000010) +RRF_RT_REG_MULTI_SZ = make_flag("RRF_RT_REG_MULTI_SZ", 0x00000020) +RRF_RT_REG_QWORD = make_flag("RRF_RT_REG_QWORD", 0x00000040) +RRF_RT_DWORD = make_flag("RRF_RT_DWORD", ( RRF_RT_REG_BINARY | RRF_RT_REG_DWORD )) +RRF_RT_QWORD = make_flag("RRF_RT_QWORD", ( RRF_RT_REG_BINARY | RRF_RT_REG_QWORD )) +RRF_RT_ANY = make_flag("RRF_RT_ANY", 0x0000ffff) +RRF_NOEXPAND = make_flag("RRF_NOEXPAND", 0x10000000) +RRF_ZEROONFAILURE = make_flag("RRF_ZEROONFAILURE", 0x20000000) +KEY_QUERY_VALUE = make_flag("KEY_QUERY_VALUE", ( 0x0001 )) +KEY_SET_VALUE = make_flag("KEY_SET_VALUE", ( 0x0002 )) +KEY_CREATE_SUB_KEY = make_flag("KEY_CREATE_SUB_KEY", ( 0x0004 )) +KEY_ENUMERATE_SUB_KEYS = make_flag("KEY_ENUMERATE_SUB_KEYS", ( 0x0008 )) +KEY_NOTIFY = make_flag("KEY_NOTIFY", ( 0x0010 )) +KEY_CREATE_LINK = make_flag("KEY_CREATE_LINK", ( 0x0020 )) +KEY_WOW64_32KEY = make_flag("KEY_WOW64_32KEY", ( 0x0200 )) +KEY_WOW64_64KEY = make_flag("KEY_WOW64_64KEY", ( 0x0100 )) +KEY_WOW64_RES = make_flag("KEY_WOW64_RES", ( 0x0300 )) +KEY_READ = make_flag("KEY_READ", ( ( STANDARD_RIGHTS_READ|KEY_QUERY_VALUE|KEY_ENUMERATE_SUB_KEYS|KEY_NOTIFY ) & ( ~SYNCHRONIZE ) )) +KEY_WRITE = make_flag("KEY_WRITE", ( ( STANDARD_RIGHTS_WRITE|KEY_SET_VALUE|KEY_CREATE_SUB_KEY ) & ( ~SYNCHRONIZE ) )) +KEY_EXECUTE = make_flag("KEY_EXECUTE", ( ( KEY_READ ) & ( ~SYNCHRONIZE ) )) +KEY_ALL_ACCESS = make_flag("KEY_ALL_ACCESS", ( ( STANDARD_RIGHTS_ALL|KEY_QUERY_VALUE|KEY_SET_VALUE|KEY_CREATE_SUB_KEY|KEY_ENUMERATE_SUB_KEYS|KEY_NOTIFY|KEY_CREATE_LINK ) & ( ~SYNCHRONIZE ) )) +ERROR_NOT_ALL_ASSIGNED = make_flag("ERROR_NOT_ALL_ASSIGNED", 1300) +S_OK = make_flag("S_OK", 0) +S_FALSE = make_flag("S_FALSE", 1) +E_NOINTERFACE = make_flag("E_NOINTERFACE", 0x80004002) +E_FAIL = make_flag("E_FAIL", 0x80004005) +DEBUG_EVENT_BREAKPOINT = make_flag("DEBUG_EVENT_BREAKPOINT", 0x00000001) +DEBUG_EVENT_EXCEPTION = make_flag("DEBUG_EVENT_EXCEPTION", 0x00000002) +DEBUG_EVENT_CREATE_THREAD = make_flag("DEBUG_EVENT_CREATE_THREAD", 0x00000004) +DEBUG_EVENT_EXIT_THREAD = make_flag("DEBUG_EVENT_EXIT_THREAD", 0x00000008) +DEBUG_EVENT_CREATE_PROCESS = make_flag("DEBUG_EVENT_CREATE_PROCESS", 0x00000010) +DEBUG_EVENT_EXIT_PROCESS = make_flag("DEBUG_EVENT_EXIT_PROCESS", 0x00000020) +DEBUG_EVENT_LOAD_MODULE = make_flag("DEBUG_EVENT_LOAD_MODULE", 0x00000040) +DEBUG_EVENT_UNLOAD_MODULE = make_flag("DEBUG_EVENT_UNLOAD_MODULE", 0x00000080) +DEBUG_EVENT_SYSTEM_ERROR = make_flag("DEBUG_EVENT_SYSTEM_ERROR", 0x00000100) +DEBUG_EVENT_SESSION_STATUS = make_flag("DEBUG_EVENT_SESSION_STATUS", 0x00000200) +DEBUG_EVENT_CHANGE_DEBUGGEE_STATE = make_flag("DEBUG_EVENT_CHANGE_DEBUGGEE_STATE", 0x00000400) +DEBUG_EVENT_CHANGE_ENGINE_STATE = make_flag("DEBUG_EVENT_CHANGE_ENGINE_STATE", 0x00000800) +DEBUG_EVENT_CHANGE_SYMBOL_STATE = make_flag("DEBUG_EVENT_CHANGE_SYMBOL_STATE", 0x00001000) +WOW64_MAXIMUM_SUPPORTED_EXTENSION = make_flag("WOW64_MAXIMUM_SUPPORTED_EXTENSION", 512) +WOW64_SIZE_OF_80387_REGISTERS = make_flag("WOW64_SIZE_OF_80387_REGISTERS", 80) +REG_NONE = make_flag("REG_NONE", ( 0 )) +REG_SZ = make_flag("REG_SZ", ( 1 )) +REG_EXPAND_SZ = make_flag("REG_EXPAND_SZ", ( 2 )) +REG_BINARY = make_flag("REG_BINARY", ( 3 )) +REG_DWORD = make_flag("REG_DWORD", ( 4 )) +REG_DWORD_LITTLE_ENDIAN = make_flag("REG_DWORD_LITTLE_ENDIAN", ( 4 )) +REG_DWORD_BIG_ENDIAN = make_flag("REG_DWORD_BIG_ENDIAN", ( 5 )) +REG_LINK = make_flag("REG_LINK", ( 6 )) +REG_MULTI_SZ = make_flag("REG_MULTI_SZ", ( 7 )) +REG_RESOURCE_LIST = make_flag("REG_RESOURCE_LIST", ( 8 )) +REG_FULL_RESOURCE_DESCRIPTOR = make_flag("REG_FULL_RESOURCE_DESCRIPTOR", ( 9 )) +REG_RESOURCE_REQUIREMENTS_LIST = make_flag("REG_RESOURCE_REQUIREMENTS_LIST", ( 10 )) +REG_QWORD = make_flag("REG_QWORD", ( 11 )) +REG_QWORD_LITTLE_ENDIAN = make_flag("REG_QWORD_LITTLE_ENDIAN", ( 11 )) +IMAGE_FILE_RELOCS_STRIPPED = make_flag("IMAGE_FILE_RELOCS_STRIPPED", 0x0001) +IMAGE_FILE_EXECUTABLE_IMAGE = make_flag("IMAGE_FILE_EXECUTABLE_IMAGE", 0x0002) +IMAGE_FILE_LINE_NUMS_STRIPPED = make_flag("IMAGE_FILE_LINE_NUMS_STRIPPED", 0x0004) +IMAGE_FILE_LOCAL_SYMS_STRIPPED = make_flag("IMAGE_FILE_LOCAL_SYMS_STRIPPED", 0x0008) +IMAGE_FILE_AGGRESIVE_WS_TRIM = make_flag("IMAGE_FILE_AGGRESIVE_WS_TRIM", 0x0010) +IMAGE_FILE_LARGE_ADDRESS_AWARE = make_flag("IMAGE_FILE_LARGE_ADDRESS_AWARE", 0x0020) +IMAGE_FILE_BYTES_REVERSED_LO = make_flag("IMAGE_FILE_BYTES_REVERSED_LO", 0x0080) +IMAGE_FILE_32BIT_MACHINE = make_flag("IMAGE_FILE_32BIT_MACHINE", 0x0100) +IMAGE_FILE_DEBUG_STRIPPED = make_flag("IMAGE_FILE_DEBUG_STRIPPED", 0x0200) +IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP = make_flag("IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP", 0x0400) +IMAGE_FILE_NET_RUN_FROM_SWAP = make_flag("IMAGE_FILE_NET_RUN_FROM_SWAP", 0x0800) +IMAGE_FILE_SYSTEM = make_flag("IMAGE_FILE_SYSTEM", 0x1000) +IMAGE_FILE_DLL = make_flag("IMAGE_FILE_DLL", 0x2000) +IMAGE_FILE_UP_SYSTEM_ONLY = make_flag("IMAGE_FILE_UP_SYSTEM_ONLY", 0x4000) +IMAGE_FILE_BYTES_REVERSED_HI = make_flag("IMAGE_FILE_BYTES_REVERSED_HI", 0x8000) +IMAGE_FILE_MACHINE_UNKNOWN = make_flag("IMAGE_FILE_MACHINE_UNKNOWN", 0) +IMAGE_FILE_MACHINE_I386 = make_flag("IMAGE_FILE_MACHINE_I386", 0x014c) +IMAGE_FILE_MACHINE_R3000 = make_flag("IMAGE_FILE_MACHINE_R3000", 0x0162) +IMAGE_FILE_MACHINE_R4000 = make_flag("IMAGE_FILE_MACHINE_R4000", 0x0166) +IMAGE_FILE_MACHINE_R10000 = make_flag("IMAGE_FILE_MACHINE_R10000", 0x0168) +IMAGE_FILE_MACHINE_WCEMIPSV2 = make_flag("IMAGE_FILE_MACHINE_WCEMIPSV2", 0x0169) +IMAGE_FILE_MACHINE_ALPHA = make_flag("IMAGE_FILE_MACHINE_ALPHA", 0x0184) +IMAGE_FILE_MACHINE_SH3 = make_flag("IMAGE_FILE_MACHINE_SH3", 0x01a2) +IMAGE_FILE_MACHINE_SH3DSP = make_flag("IMAGE_FILE_MACHINE_SH3DSP", 0x01a3) +IMAGE_FILE_MACHINE_SH3E = make_flag("IMAGE_FILE_MACHINE_SH3E", 0x01a4) +IMAGE_FILE_MACHINE_SH4 = make_flag("IMAGE_FILE_MACHINE_SH4", 0x01a6) +IMAGE_FILE_MACHINE_SH5 = make_flag("IMAGE_FILE_MACHINE_SH5", 0x01a8) +IMAGE_FILE_MACHINE_ARM = make_flag("IMAGE_FILE_MACHINE_ARM", 0x01c0) +IMAGE_FILE_MACHINE_THUMB = make_flag("IMAGE_FILE_MACHINE_THUMB", 0x01c2) +IMAGE_FILE_MACHINE_ARMNT = make_flag("IMAGE_FILE_MACHINE_ARMNT", 0x01c4) +IMAGE_FILE_MACHINE_AM33 = make_flag("IMAGE_FILE_MACHINE_AM33", 0x01d3) +IMAGE_FILE_MACHINE_POWERPC = make_flag("IMAGE_FILE_MACHINE_POWERPC", 0x01F0) +IMAGE_FILE_MACHINE_POWERPCFP = make_flag("IMAGE_FILE_MACHINE_POWERPCFP", 0x01f1) +IMAGE_FILE_MACHINE_IA64 = make_flag("IMAGE_FILE_MACHINE_IA64", 0x0200) +IMAGE_FILE_MACHINE_MIPS16 = make_flag("IMAGE_FILE_MACHINE_MIPS16", 0x0266) +IMAGE_FILE_MACHINE_ALPHA64 = make_flag("IMAGE_FILE_MACHINE_ALPHA64", 0x0284) +IMAGE_FILE_MACHINE_MIPSFPU = make_flag("IMAGE_FILE_MACHINE_MIPSFPU", 0x0366) +IMAGE_FILE_MACHINE_MIPSFPU16 = make_flag("IMAGE_FILE_MACHINE_MIPSFPU16", 0x0466) +IMAGE_FILE_MACHINE_AXP64 = make_flag("IMAGE_FILE_MACHINE_AXP64", IMAGE_FILE_MACHINE_ALPHA64) +IMAGE_FILE_MACHINE_TRICORE = make_flag("IMAGE_FILE_MACHINE_TRICORE", 0x0520) +IMAGE_FILE_MACHINE_CEF = make_flag("IMAGE_FILE_MACHINE_CEF", 0x0CEF) +IMAGE_FILE_MACHINE_EBC = make_flag("IMAGE_FILE_MACHINE_EBC", 0x0EBC) +IMAGE_FILE_MACHINE_AMD64 = make_flag("IMAGE_FILE_MACHINE_AMD64", 0x8664) +IMAGE_FILE_MACHINE_M32R = make_flag("IMAGE_FILE_MACHINE_M32R", 0x9041) +IMAGE_FILE_MACHINE_CEE = make_flag("IMAGE_FILE_MACHINE_CEE", 0xC0EE) +SECURITY_MANDATORY_UNTRUSTED_RID = make_flag("SECURITY_MANDATORY_UNTRUSTED_RID", ( 0x00000000 )) +SECURITY_MANDATORY_LOW_RID = make_flag("SECURITY_MANDATORY_LOW_RID", ( 0x00001000 )) +SECURITY_MANDATORY_MEDIUM_RID = make_flag("SECURITY_MANDATORY_MEDIUM_RID", ( 0x00002000 )) +SECURITY_MANDATORY_MEDIUM_PLUS_RID = make_flag("SECURITY_MANDATORY_MEDIUM_PLUS_RID", ( SECURITY_MANDATORY_MEDIUM_RID + 0x100 )) +SECURITY_MANDATORY_HIGH_RID = make_flag("SECURITY_MANDATORY_HIGH_RID", ( 0x00003000 )) +SECURITY_MANDATORY_SYSTEM_RID = make_flag("SECURITY_MANDATORY_SYSTEM_RID", ( 0x00004000 )) +SECURITY_MANDATORY_PROTECTED_PROCESS_RID = make_flag("SECURITY_MANDATORY_PROTECTED_PROCESS_RID", ( 0x00005000 )) +SECTION_QUERY = make_flag("SECTION_QUERY", 0x0001) +SECTION_MAP_WRITE = make_flag("SECTION_MAP_WRITE", 0x0002) +SECTION_MAP_READ = make_flag("SECTION_MAP_READ", 0x0004) +SECTION_MAP_EXECUTE = make_flag("SECTION_MAP_EXECUTE", 0x0008) +SECTION_EXTEND_SIZE = make_flag("SECTION_EXTEND_SIZE", 0x0010) +SECTION_MAP_EXECUTE_EXPLICIT = make_flag("SECTION_MAP_EXECUTE_EXPLICIT", 0x0020) +SECTION_ALL_ACCESS = make_flag("SECTION_ALL_ACCESS", ( STANDARD_RIGHTS_REQUIRED|SECTION_QUERY| SECTION_MAP_WRITE | SECTION_MAP_READ | SECTION_MAP_EXECUTE | SECTION_EXTEND_SIZE )) +FILE_MAP_COPY = make_flag("FILE_MAP_COPY", SECTION_QUERY) +FILE_MAP_WRITE = make_flag("FILE_MAP_WRITE", SECTION_MAP_WRITE) +FILE_MAP_READ = make_flag("FILE_MAP_READ", SECTION_MAP_READ) +FILE_MAP_ALL_ACCESS = make_flag("FILE_MAP_ALL_ACCESS", SECTION_ALL_ACCESS) +FILE_MAP_EXECUTE = make_flag("FILE_MAP_EXECUTE", SECTION_MAP_EXECUTE_EXPLICIT) +SC_MANAGER_CONNECT = make_flag("SC_MANAGER_CONNECT", 0x0001) +SC_MANAGER_CREATE_SERVICE = make_flag("SC_MANAGER_CREATE_SERVICE", 0x0002) +SC_MANAGER_ENUMERATE_SERVICE = make_flag("SC_MANAGER_ENUMERATE_SERVICE", 0x0004) +SC_MANAGER_LOCK = make_flag("SC_MANAGER_LOCK", 0x0008) +SC_MANAGER_QUERY_LOCK_STATUS = make_flag("SC_MANAGER_QUERY_LOCK_STATUS", 0x0010) +SC_MANAGER_MODIFY_BOOT_CONFIG = make_flag("SC_MANAGER_MODIFY_BOOT_CONFIG", 0x0020) +SC_MANAGER_ALL_ACCESS = make_flag("SC_MANAGER_ALL_ACCESS", ( STANDARD_RIGHTS_REQUIRED | SC_MANAGER_CONNECT | SC_MANAGER_CREATE_SERVICE | SC_MANAGER_ENUMERATE_SERVICE | SC_MANAGER_LOCK | SC_MANAGER_QUERY_LOCK_STATUS | SC_MANAGER_MODIFY_BOOT_CONFIG )) +SERVICE_QUERY_CONFIG = make_flag("SERVICE_QUERY_CONFIG", 0x0001) +SERVICE_CHANGE_CONFIG = make_flag("SERVICE_CHANGE_CONFIG", 0x0002) +SERVICE_QUERY_STATUS = make_flag("SERVICE_QUERY_STATUS", 0x0004) +SERVICE_ENUMERATE_DEPENDENTS = make_flag("SERVICE_ENUMERATE_DEPENDENTS", 0x0008) +SERVICE_START = make_flag("SERVICE_START", 0x0010) +SERVICE_STOP = make_flag("SERVICE_STOP", 0x0020) +SERVICE_PAUSE_CONTINUE = make_flag("SERVICE_PAUSE_CONTINUE", 0x0040) +SERVICE_INTERROGATE = make_flag("SERVICE_INTERROGATE", 0x0080) +SERVICE_USER_DEFINED_CONTROL = make_flag("SERVICE_USER_DEFINED_CONTROL", 0x0100) +SERVICE_ALL_ACCESS = make_flag("SERVICE_ALL_ACCESS", ( STANDARD_RIGHTS_REQUIRED | SERVICE_QUERY_CONFIG | SERVICE_CHANGE_CONFIG | SERVICE_QUERY_STATUS | SERVICE_ENUMERATE_DEPENDENTS | SERVICE_START | SERVICE_STOP | SERVICE_PAUSE_CONTINUE | SERVICE_INTERROGATE | SERVICE_USER_DEFINED_CONTROL )) +SERVICE_RUNS_IN_SYSTEM_PROCESS = make_flag("SERVICE_RUNS_IN_SYSTEM_PROCESS", 0x00000001) +SERVICE_KERNEL_DRIVER = make_flag("SERVICE_KERNEL_DRIVER", 0x00000001) +SERVICE_FILE_SYSTEM_DRIVER = make_flag("SERVICE_FILE_SYSTEM_DRIVER", 0x00000002) +SERVICE_ADAPTER = make_flag("SERVICE_ADAPTER", 0x00000004) +SERVICE_RECOGNIZER_DRIVER = make_flag("SERVICE_RECOGNIZER_DRIVER", 0x00000008) +SERVICE_DRIVER = make_flag("SERVICE_DRIVER", ( SERVICE_KERNEL_DRIVER | SERVICE_FILE_SYSTEM_DRIVER | SERVICE_RECOGNIZER_DRIVER )) +SERVICE_WIN32_OWN_PROCESS = make_flag("SERVICE_WIN32_OWN_PROCESS", 0x00000010) +SERVICE_WIN32_SHARE_PROCESS = make_flag("SERVICE_WIN32_SHARE_PROCESS", 0x00000020) +SERVICE_WIN32 = make_flag("SERVICE_WIN32", ( SERVICE_WIN32_OWN_PROCESS | SERVICE_WIN32_SHARE_PROCESS )) +SERVICE_INTERACTIVE_PROCESS = make_flag("SERVICE_INTERACTIVE_PROCESS", 0x00000100) +SERVICE_TYPE_ALL = make_flag("SERVICE_TYPE_ALL", ( SERVICE_WIN32 | SERVICE_ADAPTER | SERVICE_DRIVER | SERVICE_INTERACTIVE_PROCESS )) +SERVICE_BOOT_START = make_flag("SERVICE_BOOT_START", 0x00000000) +SERVICE_SYSTEM_START = make_flag("SERVICE_SYSTEM_START", 0x00000001) +SERVICE_AUTO_START = make_flag("SERVICE_AUTO_START", 0x00000002) +SERVICE_DEMAND_START = make_flag("SERVICE_DEMAND_START", 0x00000003) +SERVICE_DISABLED = make_flag("SERVICE_DISABLED", 0x00000004) +SERVICE_ERROR_IGNORE = make_flag("SERVICE_ERROR_IGNORE", 0x00000000) +SERVICE_ERROR_NORMAL = make_flag("SERVICE_ERROR_NORMAL", 0x00000001) +SERVICE_ERROR_SEVERE = make_flag("SERVICE_ERROR_SEVERE", 0x00000002) +SERVICE_ERROR_CRITICAL = make_flag("SERVICE_ERROR_CRITICAL", 0x00000003) +SERVICE_ACTIVE = make_flag("SERVICE_ACTIVE", 0x00000001) +SERVICE_INACTIVE = make_flag("SERVICE_INACTIVE", 0x00000002) +SERVICE_STATE_ALL = make_flag("SERVICE_STATE_ALL", ( SERVICE_ACTIVE | SERVICE_INACTIVE )) +SERVICE_CONTROL_STOP = make_flag("SERVICE_CONTROL_STOP", 0x00000001) +SERVICE_CONTROL_PAUSE = make_flag("SERVICE_CONTROL_PAUSE", 0x00000002) +SERVICE_CONTROL_CONTINUE = make_flag("SERVICE_CONTROL_CONTINUE", 0x00000003) +SERVICE_CONTROL_INTERROGATE = make_flag("SERVICE_CONTROL_INTERROGATE", 0x00000004) +SERVICE_CONTROL_SHUTDOWN = make_flag("SERVICE_CONTROL_SHUTDOWN", 0x00000005) +SERVICE_CONTROL_PARAMCHANGE = make_flag("SERVICE_CONTROL_PARAMCHANGE", 0x00000006) +SERVICE_CONTROL_NETBINDADD = make_flag("SERVICE_CONTROL_NETBINDADD", 0x00000007) +SERVICE_CONTROL_NETBINDREMOVE = make_flag("SERVICE_CONTROL_NETBINDREMOVE", 0x00000008) +SERVICE_CONTROL_NETBINDENABLE = make_flag("SERVICE_CONTROL_NETBINDENABLE", 0x00000009) +SERVICE_CONTROL_NETBINDDISABLE = make_flag("SERVICE_CONTROL_NETBINDDISABLE", 0x0000000A) +SERVICE_CONTROL_DEVICEEVENT = make_flag("SERVICE_CONTROL_DEVICEEVENT", 0x0000000B) +SERVICE_CONTROL_HARDWAREPROFILECHANGE = make_flag("SERVICE_CONTROL_HARDWAREPROFILECHANGE", 0x0000000C) +SERVICE_CONTROL_POWEREVENT = make_flag("SERVICE_CONTROL_POWEREVENT", 0x0000000D) +SERVICE_CONTROL_SESSIONCHANGE = make_flag("SERVICE_CONTROL_SESSIONCHANGE", 0x0000000E) +SERVICE_CONTROL_PRESHUTDOWN = make_flag("SERVICE_CONTROL_PRESHUTDOWN", 0x0000000F) +SERVICE_CONTROL_TIMECHANGE = make_flag("SERVICE_CONTROL_TIMECHANGE", 0x00000010) +SERVICE_CONTROL_TRIGGEREVENT = make_flag("SERVICE_CONTROL_TRIGGEREVENT", 0x00000020) +SERVICE_STOPPED = make_flag("SERVICE_STOPPED", 0x00000001) +SERVICE_START_PENDING = make_flag("SERVICE_START_PENDING", 0x00000002) +SERVICE_STOP_PENDING = make_flag("SERVICE_STOP_PENDING", 0x00000003) +SERVICE_RUNNING = make_flag("SERVICE_RUNNING", 0x00000004) +SERVICE_CONTINUE_PENDING = make_flag("SERVICE_CONTINUE_PENDING", 0x00000005) +SERVICE_PAUSE_PENDING = make_flag("SERVICE_PAUSE_PENDING", 0x00000006) +SERVICE_PAUSED = make_flag("SERVICE_PAUSED", 0x00000007) +SERVICE_ACCEPT_STOP = make_flag("SERVICE_ACCEPT_STOP", 0x00000001) +SERVICE_ACCEPT_PAUSE_CONTINUE = make_flag("SERVICE_ACCEPT_PAUSE_CONTINUE", 0x00000002) +SERVICE_ACCEPT_SHUTDOWN = make_flag("SERVICE_ACCEPT_SHUTDOWN", 0x00000004) +SERVICE_ACCEPT_PARAMCHANGE = make_flag("SERVICE_ACCEPT_PARAMCHANGE", 0x00000008) +SERVICE_ACCEPT_NETBINDCHANGE = make_flag("SERVICE_ACCEPT_NETBINDCHANGE", 0x00000010) +SERVICE_ACCEPT_HARDWAREPROFILECHANGE = make_flag("SERVICE_ACCEPT_HARDWAREPROFILECHANGE", 0x00000020) +SERVICE_ACCEPT_POWEREVENT = make_flag("SERVICE_ACCEPT_POWEREVENT", 0x00000040) +SERVICE_ACCEPT_SESSIONCHANGE = make_flag("SERVICE_ACCEPT_SESSIONCHANGE", 0x00000080) +SERVICE_ACCEPT_PRESHUTDOWN = make_flag("SERVICE_ACCEPT_PRESHUTDOWN", 0x00000100) +SERVICE_ACCEPT_TIMECHANGE = make_flag("SERVICE_ACCEPT_TIMECHANGE", 0x00000200) +SERVICE_ACCEPT_TRIGGEREVENT = make_flag("SERVICE_ACCEPT_TRIGGEREVENT", 0x00000400) +DRIVE_UNKNOWN = make_flag("DRIVE_UNKNOWN", 0) +DRIVE_NO_ROOT_DIR = make_flag("DRIVE_NO_ROOT_DIR", 1) +DRIVE_REMOVABLE = make_flag("DRIVE_REMOVABLE", 2) +DRIVE_FIXED = make_flag("DRIVE_FIXED", 3) +DRIVE_REMOTE = make_flag("DRIVE_REMOTE", 4) +DRIVE_CDROM = make_flag("DRIVE_CDROM", 5) +DRIVE_RAMDISK = make_flag("DRIVE_RAMDISK", 6) +DUPLICATE_CLOSE_SOURCE = make_flag("DUPLICATE_CLOSE_SOURCE", 0x00000001) +DUPLICATE_SAME_ACCESS = make_flag("DUPLICATE_SAME_ACCESS", 0x00000002) +VER_NT_WORKSTATION = make_flag("VER_NT_WORKSTATION", 0x0000001) +VER_NT_DOMAIN_CONTROLLER = make_flag("VER_NT_DOMAIN_CONTROLLER", 0x0000002) +VER_NT_SERVER = make_flag("VER_NT_SERVER", 0x0000003) +SM_CXSCREEN = make_flag("SM_CXSCREEN", 0) +SM_CYSCREEN = make_flag("SM_CYSCREEN", 1) +SM_CXVSCROLL = make_flag("SM_CXVSCROLL", 2) +SM_CYHSCROLL = make_flag("SM_CYHSCROLL", 3) +SM_CYCAPTION = make_flag("SM_CYCAPTION", 4) +SM_CXBORDER = make_flag("SM_CXBORDER", 5) +SM_CYBORDER = make_flag("SM_CYBORDER", 6) +SM_CXDLGFRAME = make_flag("SM_CXDLGFRAME", 7) +SM_CYDLGFRAME = make_flag("SM_CYDLGFRAME", 8) +SM_CYVTHUMB = make_flag("SM_CYVTHUMB", 9) +SM_CXHTHUMB = make_flag("SM_CXHTHUMB", 10) +SM_CXICON = make_flag("SM_CXICON", 11) +SM_CYICON = make_flag("SM_CYICON", 12) +SM_CXCURSOR = make_flag("SM_CXCURSOR", 13) +SM_CYCURSOR = make_flag("SM_CYCURSOR", 14) +SM_CYMENU = make_flag("SM_CYMENU", 15) +SM_CXFULLSCREEN = make_flag("SM_CXFULLSCREEN", 16) +SM_CYFULLSCREEN = make_flag("SM_CYFULLSCREEN", 17) +SM_CYKANJIWINDOW = make_flag("SM_CYKANJIWINDOW", 18) +SM_MOUSEPRESENT = make_flag("SM_MOUSEPRESENT", 19) +SM_CYVSCROLL = make_flag("SM_CYVSCROLL", 20) +SM_CXHSCROLL = make_flag("SM_CXHSCROLL", 21) +SM_DEBUG = make_flag("SM_DEBUG", 22) +SM_SWAPBUTTON = make_flag("SM_SWAPBUTTON", 23) +SM_RESERVED1 = make_flag("SM_RESERVED1", 24) +SM_RESERVED2 = make_flag("SM_RESERVED2", 25) +SM_RESERVED3 = make_flag("SM_RESERVED3", 26) +SM_RESERVED4 = make_flag("SM_RESERVED4", 27) +SM_CXMIN = make_flag("SM_CXMIN", 28) +SM_CYMIN = make_flag("SM_CYMIN", 29) +SM_CXSIZE = make_flag("SM_CXSIZE", 30) +SM_CYSIZE = make_flag("SM_CYSIZE", 31) +SM_CXFRAME = make_flag("SM_CXFRAME", 32) +SM_CYFRAME = make_flag("SM_CYFRAME", 33) +SM_CXMINTRACK = make_flag("SM_CXMINTRACK", 34) +SM_CYMINTRACK = make_flag("SM_CYMINTRACK", 35) +SM_CXDOUBLECLK = make_flag("SM_CXDOUBLECLK", 36) +SM_CYDOUBLECLK = make_flag("SM_CYDOUBLECLK", 37) +SM_CXICONSPACING = make_flag("SM_CXICONSPACING", 38) +SM_CYICONSPACING = make_flag("SM_CYICONSPACING", 39) +SM_MENUDROPALIGNMENT = make_flag("SM_MENUDROPALIGNMENT", 40) +SM_PENWINDOWS = make_flag("SM_PENWINDOWS", 41) +SM_DBCSENABLED = make_flag("SM_DBCSENABLED", 42) +SM_CMOUSEBUTTONS = make_flag("SM_CMOUSEBUTTONS", 43) +SM_CXFIXEDFRAME = make_flag("SM_CXFIXEDFRAME", SM_CXDLGFRAME) +SM_CYFIXEDFRAME = make_flag("SM_CYFIXEDFRAME", SM_CYDLGFRAME) +SM_CXSIZEFRAME = make_flag("SM_CXSIZEFRAME", SM_CXFRAME) +SM_CYSIZEFRAME = make_flag("SM_CYSIZEFRAME", SM_CYFRAME) +SM_SECURE = make_flag("SM_SECURE", 44) +SM_CXEDGE = make_flag("SM_CXEDGE", 45) +SM_CYEDGE = make_flag("SM_CYEDGE", 46) +SM_CXMINSPACING = make_flag("SM_CXMINSPACING", 47) +SM_CYMINSPACING = make_flag("SM_CYMINSPACING", 48) +SM_CXSMICON = make_flag("SM_CXSMICON", 49) +SM_CYSMICON = make_flag("SM_CYSMICON", 50) +SM_CYSMCAPTION = make_flag("SM_CYSMCAPTION", 51) +SM_CXSMSIZE = make_flag("SM_CXSMSIZE", 52) +SM_CYSMSIZE = make_flag("SM_CYSMSIZE", 53) +SM_CXMENUSIZE = make_flag("SM_CXMENUSIZE", 54) +SM_CYMENUSIZE = make_flag("SM_CYMENUSIZE", 55) +SM_ARRANGE = make_flag("SM_ARRANGE", 56) +SM_CXMINIMIZED = make_flag("SM_CXMINIMIZED", 57) +SM_CYMINIMIZED = make_flag("SM_CYMINIMIZED", 58) +SM_CXMAXTRACK = make_flag("SM_CXMAXTRACK", 59) +SM_CYMAXTRACK = make_flag("SM_CYMAXTRACK", 60) +SM_CXMAXIMIZED = make_flag("SM_CXMAXIMIZED", 61) +SM_CYMAXIMIZED = make_flag("SM_CYMAXIMIZED", 62) +SM_NETWORK = make_flag("SM_NETWORK", 63) +SM_CLEANBOOT = make_flag("SM_CLEANBOOT", 67) +SM_CXDRAG = make_flag("SM_CXDRAG", 68) +SM_CYDRAG = make_flag("SM_CYDRAG", 69) +SM_SHOWSOUNDS = make_flag("SM_SHOWSOUNDS", 70) +SM_CXMENUCHECK = make_flag("SM_CXMENUCHECK", 71) +SM_CYMENUCHECK = make_flag("SM_CYMENUCHECK", 72) +SM_SLOWMACHINE = make_flag("SM_SLOWMACHINE", 73) +SM_MIDEASTENABLED = make_flag("SM_MIDEASTENABLED", 74) +SM_MOUSEWHEELPRESENT = make_flag("SM_MOUSEWHEELPRESENT", 75) +SM_XVIRTUALSCREEN = make_flag("SM_XVIRTUALSCREEN", 76) +SM_YVIRTUALSCREEN = make_flag("SM_YVIRTUALSCREEN", 77) +SM_CXVIRTUALSCREEN = make_flag("SM_CXVIRTUALSCREEN", 78) +SM_CYVIRTUALSCREEN = make_flag("SM_CYVIRTUALSCREEN", 79) +SM_CMONITORS = make_flag("SM_CMONITORS", 80) +SM_SAMEDISPLAYFORMAT = make_flag("SM_SAMEDISPLAYFORMAT", 81) +SM_IMMENABLED = make_flag("SM_IMMENABLED", 82) +SM_CXFOCUSBORDER = make_flag("SM_CXFOCUSBORDER", 83) +SM_CYFOCUSBORDER = make_flag("SM_CYFOCUSBORDER", 84) +SM_TABLETPC = make_flag("SM_TABLETPC", 86) +SM_MEDIACENTER = make_flag("SM_MEDIACENTER", 87) +SM_STARTER = make_flag("SM_STARTER", 88) +SM_SERVERR2 = make_flag("SM_SERVERR2", 89) +SM_MOUSEHORIZONTALWHEELPRESENT = make_flag("SM_MOUSEHORIZONTALWHEELPRESENT", 91) +SM_CXPADDEDBORDER = make_flag("SM_CXPADDEDBORDER", 92) +SM_DIGITIZER = make_flag("SM_DIGITIZER", 94) +SM_MAXIMUMTOUCHES = make_flag("SM_MAXIMUMTOUCHES", 95) +SM_REMOTESESSION = make_flag("SM_REMOTESESSION", 0x1000) +SM_SHUTTINGDOWN = make_flag("SM_SHUTTINGDOWN", 0x2000) +SM_REMOTECONTROL = make_flag("SM_REMOTECONTROL", 0x2001) +SM_CARETBLINKINGENABLED = make_flag("SM_CARETBLINKINGENABLED", 0x2002) +RPC_C_AUTHN_LEVEL_DEFAULT = make_flag("RPC_C_AUTHN_LEVEL_DEFAULT", 0) +RPC_C_AUTHN_LEVEL_NONE = make_flag("RPC_C_AUTHN_LEVEL_NONE", 1) +RPC_C_AUTHN_LEVEL_CONNECT = make_flag("RPC_C_AUTHN_LEVEL_CONNECT", 2) +RPC_C_AUTHN_LEVEL_CALL = make_flag("RPC_C_AUTHN_LEVEL_CALL", 3) +RPC_C_AUTHN_LEVEL_PKT = make_flag("RPC_C_AUTHN_LEVEL_PKT", 4) +RPC_C_AUTHN_LEVEL_PKT_INTEGRITY = make_flag("RPC_C_AUTHN_LEVEL_PKT_INTEGRITY", 5) +RPC_C_AUTHN_LEVEL_PKT_PRIVACY = make_flag("RPC_C_AUTHN_LEVEL_PKT_PRIVACY", 6) +RPC_C_IMP_LEVEL_DEFAULT = make_flag("RPC_C_IMP_LEVEL_DEFAULT", 0) +RPC_C_IMP_LEVEL_ANONYMOUS = make_flag("RPC_C_IMP_LEVEL_ANONYMOUS", 1) +RPC_C_IMP_LEVEL_IDENTIFY = make_flag("RPC_C_IMP_LEVEL_IDENTIFY", 2) +RPC_C_IMP_LEVEL_IMPERSONATE = make_flag("RPC_C_IMP_LEVEL_IMPERSONATE", 3) +RPC_C_IMP_LEVEL_DELEGATE = make_flag("RPC_C_IMP_LEVEL_DELEGATE", 4) +RPC_C_QOS_IDENTITY_STATIC = make_flag("RPC_C_QOS_IDENTITY_STATIC", 0) +RPC_C_QOS_IDENTITY_DYNAMIC = make_flag("RPC_C_QOS_IDENTITY_DYNAMIC", 1) +RPC_C_QOS_CAPABILITIES_DEFAULT = make_flag("RPC_C_QOS_CAPABILITIES_DEFAULT", 0x0) +RPC_C_QOS_CAPABILITIES_MUTUAL_AUTH = make_flag("RPC_C_QOS_CAPABILITIES_MUTUAL_AUTH", 0x1) +RPC_C_QOS_CAPABILITIES_MAKE_FULLSIC = make_flag("RPC_C_QOS_CAPABILITIES_MAKE_FULLSIC", 0x2) +RPC_C_QOS_CAPABILITIES_ANY_AUTHORITY = make_flag("RPC_C_QOS_CAPABILITIES_ANY_AUTHORITY", 0x4) +MAX_ADAPTER_NAME = make_flag("MAX_ADAPTER_NAME", 128) +MAXLEN_PHYSADDR = make_flag("MAXLEN_PHYSADDR", 8) +MAXLEN_IFDESCR = make_flag("MAXLEN_IFDESCR", 256) +MAX_INTERFACE_NAME_LEN = make_flag("MAX_INTERFACE_NAME_LEN", 256) +DIRECTORY_QUERY = make_flag("DIRECTORY_QUERY", ( 0x0001 )) +DIRECTORY_TRAVERSE = make_flag("DIRECTORY_TRAVERSE", ( 0x0002 )) +DIRECTORY_CREATE_OBJECT = make_flag("DIRECTORY_CREATE_OBJECT", ( 0x0004 )) +DIRECTORY_CREATE_SUBDIRECTORY = make_flag("DIRECTORY_CREATE_SUBDIRECTORY", ( 0x0008 )) +DIRECTORY_ALL_ACCESS = make_flag("DIRECTORY_ALL_ACCESS", ( STANDARD_RIGHTS_REQUIRED | 0xF )) +OBJ_INHERIT = make_flag("OBJ_INHERIT", 0x00000002) +OBJ_PERMANENT = make_flag("OBJ_PERMANENT", 0x00000010) +OBJ_EXCLUSIVE = make_flag("OBJ_EXCLUSIVE", 0x00000020) +OBJ_CASE_INSENSITIVE = make_flag("OBJ_CASE_INSENSITIVE", 0x00000040) +OBJ_OPENIF = make_flag("OBJ_OPENIF", 0x00000080) +OBJ_OPENLINK = make_flag("OBJ_OPENLINK", 0x00000100) +OBJ_KERNEL_HANDLE = make_flag("OBJ_KERNEL_HANDLE", 0x00000200) +OBJ_FORCE_ACCESS_CHECK = make_flag("OBJ_FORCE_ACCESS_CHECK", 0x00000400) +OBJ_VALID_ATTRIBUTES = make_flag("OBJ_VALID_ATTRIBUTES", 0x000007F2) +FILE_SUPERSEDE = make_flag("FILE_SUPERSEDE", 0x00000000) +FILE_OPEN = make_flag("FILE_OPEN", 0x00000001) +FILE_CREATE = make_flag("FILE_CREATE", 0x00000002) +FILE_OPEN_IF = make_flag("FILE_OPEN_IF", 0x00000003) +FILE_OVERWRITE = make_flag("FILE_OVERWRITE", 0x00000004) +FILE_OVERWRITE_IF = make_flag("FILE_OVERWRITE_IF", 0x00000005) +FILE_MAXIMUM_DISPOSITION = make_flag("FILE_MAXIMUM_DISPOSITION", 0x00000005) +TRUST_E_PROVIDER_UNKNOWN = make_flag("TRUST_E_PROVIDER_UNKNOWN", ( 0x800B0001 )) +TRUST_E_ACTION_UNKNOWN = make_flag("TRUST_E_ACTION_UNKNOWN", ( 0x800B0002 )) +TRUST_E_SUBJECT_FORM_UNKNOWN = make_flag("TRUST_E_SUBJECT_FORM_UNKNOWN", ( 0x800B0003 )) +DIGSIG_E_ENCODE = make_flag("DIGSIG_E_ENCODE", ( 0x800B0005 )) +TRUST_E_SUBJECT_NOT_TRUSTED = make_flag("TRUST_E_SUBJECT_NOT_TRUSTED", ( 0x800B0004 )) +DIGSIG_E_DECODE = make_flag("DIGSIG_E_DECODE", ( 0x800B0006 )) +DIGSIG_E_EXTENSIBILITY = make_flag("DIGSIG_E_EXTENSIBILITY", ( 0x800B0007 )) +PERSIST_E_SIZEDEFINITE = make_flag("PERSIST_E_SIZEDEFINITE", ( 0x800B0009 )) +DIGSIG_E_CRYPTO = make_flag("DIGSIG_E_CRYPTO", ( 0x800B0008 )) +PERSIST_E_SIZEINDEFINITE = make_flag("PERSIST_E_SIZEINDEFINITE", ( 0x800B000A )) +PERSIST_E_NOTSELFSIZING = make_flag("PERSIST_E_NOTSELFSIZING", ( 0x800B000B )) +TRUST_E_NOSIGNATURE = make_flag("TRUST_E_NOSIGNATURE", ( 0x800B0100 )) +CERT_E_EXPIRED = make_flag("CERT_E_EXPIRED", ( 0x800B0101 )) +CERT_E_VALIDITYPERIODNESTING = make_flag("CERT_E_VALIDITYPERIODNESTING", ( 0x800B0102 )) +CERT_E_PURPOSE = make_flag("CERT_E_PURPOSE", ( 0x800B0106 )) +CERT_E_ISSUERCHAINING = make_flag("CERT_E_ISSUERCHAINING", ( 0x800B0107 )) +CERT_E_MALFORMED = make_flag("CERT_E_MALFORMED", ( 0x800B0108 )) +CERT_E_UNTRUSTEDROOT = make_flag("CERT_E_UNTRUSTEDROOT", ( 0x800B0109 )) +CERT_E_CHAINING = make_flag("CERT_E_CHAINING", ( 0x800B010A )) +TRUST_E_FAIL = make_flag("TRUST_E_FAIL", ( 0x800B010B )) +CERT_E_REVOKED = make_flag("CERT_E_REVOKED", ( 0x800B010C )) +CERT_E_UNTRUSTEDTESTROOT = make_flag("CERT_E_UNTRUSTEDTESTROOT", ( 0x800B010D )) +CERT_E_REVOCATION_FAILURE = make_flag("CERT_E_REVOCATION_FAILURE", ( 0x800B010E )) +CERT_E_CN_NO_MATCH = make_flag("CERT_E_CN_NO_MATCH", ( 0x800B010F )) +CERT_E_WRONG_USAGE = make_flag("CERT_E_WRONG_USAGE", ( 0x800B0110 )) +TRUST_E_EXPLICIT_DISTRUST = make_flag("TRUST_E_EXPLICIT_DISTRUST", ( 0x800B0111 )) +CERT_E_UNTRUSTEDCA = make_flag("CERT_E_UNTRUSTEDCA", ( 0x800B0112 )) +CERT_E_INVALID_POLICY = make_flag("CERT_E_INVALID_POLICY", ( 0x800B0113 )) +CERT_E_INVALID_NAME = make_flag("CERT_E_INVALID_NAME", ( 0x800B0114 )) +CRYPT_E_FILE_ERROR = make_flag("CRYPT_E_FILE_ERROR", ( 0x80092003 )) +IMAGE_SCN_TYPE_REG = make_flag("IMAGE_SCN_TYPE_REG", 0x00000000) +IMAGE_SCN_TYPE_DSECT = make_flag("IMAGE_SCN_TYPE_DSECT", 0x00000001) +IMAGE_SCN_TYPE_NOLOAD = make_flag("IMAGE_SCN_TYPE_NOLOAD", 0x00000002) +IMAGE_SCN_TYPE_GROUP = make_flag("IMAGE_SCN_TYPE_GROUP", 0x00000004) +IMAGE_SCN_TYPE_NO_PAD = make_flag("IMAGE_SCN_TYPE_NO_PAD", 0x00000008) +IMAGE_SCN_TYPE_COPY = make_flag("IMAGE_SCN_TYPE_COPY", 0x00000010) +IMAGE_SCN_CNT_CODE = make_flag("IMAGE_SCN_CNT_CODE", 0x00000020) +IMAGE_SCN_CNT_INITIALIZED_DATA = make_flag("IMAGE_SCN_CNT_INITIALIZED_DATA", 0x00000040) +IMAGE_SCN_CNT_UNINITIALIZED_DATA = make_flag("IMAGE_SCN_CNT_UNINITIALIZED_DATA", 0x00000080) +IMAGE_SCN_LNK_OTHER = make_flag("IMAGE_SCN_LNK_OTHER", 0x00000100) +IMAGE_SCN_LNK_INFO = make_flag("IMAGE_SCN_LNK_INFO", 0x00000200) +IMAGE_SCN_TYPE_OVER = make_flag("IMAGE_SCN_TYPE_OVER", 0x00000400) +IMAGE_SCN_LNK_REMOVE = make_flag("IMAGE_SCN_LNK_REMOVE", 0x00000800) +IMAGE_SCN_LNK_COMDAT = make_flag("IMAGE_SCN_LNK_COMDAT", 0x00001000) +IMAGE_SCN_NO_DEFER_SPEC_EXC = make_flag("IMAGE_SCN_NO_DEFER_SPEC_EXC", 0x00004000) +IMAGE_SCN_GPREL = make_flag("IMAGE_SCN_GPREL", 0x00008000) +IMAGE_SCN_MEM_FARDATA = make_flag("IMAGE_SCN_MEM_FARDATA", 0x00008000) +IMAGE_SCN_MEM_PURGEABLE = make_flag("IMAGE_SCN_MEM_PURGEABLE", 0x00020000) +IMAGE_SCN_MEM_16BIT = make_flag("IMAGE_SCN_MEM_16BIT", 0x00020000) +IMAGE_SCN_MEM_LOCKED = make_flag("IMAGE_SCN_MEM_LOCKED", 0x00040000) +IMAGE_SCN_MEM_PRELOAD = make_flag("IMAGE_SCN_MEM_PRELOAD", 0x00080000) +IMAGE_SCN_ALIGN_1BYTES = make_flag("IMAGE_SCN_ALIGN_1BYTES", 0x00100000) +IMAGE_SCN_ALIGN_2BYTES = make_flag("IMAGE_SCN_ALIGN_2BYTES", 0x00200000) +IMAGE_SCN_ALIGN_4BYTES = make_flag("IMAGE_SCN_ALIGN_4BYTES", 0x00300000) +IMAGE_SCN_ALIGN_8BYTES = make_flag("IMAGE_SCN_ALIGN_8BYTES", 0x00400000) +IMAGE_SCN_ALIGN_16BYTES = make_flag("IMAGE_SCN_ALIGN_16BYTES", 0x00500000) +IMAGE_SCN_ALIGN_32BYTES = make_flag("IMAGE_SCN_ALIGN_32BYTES", 0x00600000) +IMAGE_SCN_ALIGN_64BYTES = make_flag("IMAGE_SCN_ALIGN_64BYTES", 0x00700000) +IMAGE_SCN_ALIGN_128BYTES = make_flag("IMAGE_SCN_ALIGN_128BYTES", 0x00800000) +IMAGE_SCN_ALIGN_256BYTES = make_flag("IMAGE_SCN_ALIGN_256BYTES", 0x00900000) +IMAGE_SCN_ALIGN_512BYTES = make_flag("IMAGE_SCN_ALIGN_512BYTES", 0x00A00000) +IMAGE_SCN_ALIGN_1024BYTES = make_flag("IMAGE_SCN_ALIGN_1024BYTES", 0x00B00000) +IMAGE_SCN_ALIGN_2048BYTES = make_flag("IMAGE_SCN_ALIGN_2048BYTES", 0x00C00000) +IMAGE_SCN_ALIGN_4096BYTES = make_flag("IMAGE_SCN_ALIGN_4096BYTES", 0x00D00000) +IMAGE_SCN_ALIGN_8192BYTES = make_flag("IMAGE_SCN_ALIGN_8192BYTES", 0x00E00000) +IMAGE_SCN_ALIGN_MASK = make_flag("IMAGE_SCN_ALIGN_MASK", 0x00F00000) +IMAGE_SCN_LNK_NRELOC_OVFL = make_flag("IMAGE_SCN_LNK_NRELOC_OVFL", 0x01000000) +IMAGE_SCN_MEM_DISCARDABLE = make_flag("IMAGE_SCN_MEM_DISCARDABLE", 0x02000000) +IMAGE_SCN_MEM_NOT_CACHED = make_flag("IMAGE_SCN_MEM_NOT_CACHED", 0x04000000) +IMAGE_SCN_MEM_NOT_PAGED = make_flag("IMAGE_SCN_MEM_NOT_PAGED", 0x08000000) +IMAGE_SCN_MEM_SHARED = make_flag("IMAGE_SCN_MEM_SHARED", 0x10000000) +IMAGE_SCN_MEM_EXECUTE = make_flag("IMAGE_SCN_MEM_EXECUTE", 0x20000000) +IMAGE_SCN_MEM_READ = make_flag("IMAGE_SCN_MEM_READ", 0x40000000) +IMAGE_SCN_MEM_WRITE = make_flag("IMAGE_SCN_MEM_WRITE", 0x80000000) +ACCESS_MIN_MS_ACE_TYPE = make_flag("ACCESS_MIN_MS_ACE_TYPE", ( 0x0 )) +ACCESS_ALLOWED_ACE_TYPE = make_flag("ACCESS_ALLOWED_ACE_TYPE", ( 0x0 )) +ACCESS_DENIED_ACE_TYPE = make_flag("ACCESS_DENIED_ACE_TYPE", ( 0x1 )) +SYSTEM_AUDIT_ACE_TYPE = make_flag("SYSTEM_AUDIT_ACE_TYPE", ( 0x2 )) +SYSTEM_ALARM_ACE_TYPE = make_flag("SYSTEM_ALARM_ACE_TYPE", ( 0x3 )) +ACCESS_MAX_MS_V2_ACE_TYPE = make_flag("ACCESS_MAX_MS_V2_ACE_TYPE", ( 0x3 )) +ACCESS_ALLOWED_COMPOUND_ACE_TYPE = make_flag("ACCESS_ALLOWED_COMPOUND_ACE_TYPE", ( 0x4 )) +ACCESS_MAX_MS_V3_ACE_TYPE = make_flag("ACCESS_MAX_MS_V3_ACE_TYPE", ( 0x4 )) +ACCESS_MIN_MS_OBJECT_ACE_TYPE = make_flag("ACCESS_MIN_MS_OBJECT_ACE_TYPE", ( 0x5 )) +ACCESS_ALLOWED_OBJECT_ACE_TYPE = make_flag("ACCESS_ALLOWED_OBJECT_ACE_TYPE", ( 0x5 )) +ACCESS_DENIED_OBJECT_ACE_TYPE = make_flag("ACCESS_DENIED_OBJECT_ACE_TYPE", ( 0x6 )) +SYSTEM_AUDIT_OBJECT_ACE_TYPE = make_flag("SYSTEM_AUDIT_OBJECT_ACE_TYPE", ( 0x7 )) +SYSTEM_ALARM_OBJECT_ACE_TYPE = make_flag("SYSTEM_ALARM_OBJECT_ACE_TYPE", ( 0x8 )) +ACCESS_MAX_MS_OBJECT_ACE_TYPE = make_flag("ACCESS_MAX_MS_OBJECT_ACE_TYPE", ( 0x8 )) +ACCESS_MAX_MS_V4_ACE_TYPE = make_flag("ACCESS_MAX_MS_V4_ACE_TYPE", ( 0x8 )) +ACCESS_MAX_MS_ACE_TYPE = make_flag("ACCESS_MAX_MS_ACE_TYPE", ( 0x8 )) +ACCESS_ALLOWED_CALLBACK_ACE_TYPE = make_flag("ACCESS_ALLOWED_CALLBACK_ACE_TYPE", ( 0x9 )) +ACCESS_DENIED_CALLBACK_ACE_TYPE = make_flag("ACCESS_DENIED_CALLBACK_ACE_TYPE", ( 0xA )) +ACCESS_ALLOWED_CALLBACK_OBJECT_ACE_TYPE = make_flag("ACCESS_ALLOWED_CALLBACK_OBJECT_ACE_TYPE", ( 0xB )) +ACCESS_DENIED_CALLBACK_OBJECT_ACE_TYPE = make_flag("ACCESS_DENIED_CALLBACK_OBJECT_ACE_TYPE", ( 0xC )) +SYSTEM_AUDIT_CALLBACK_ACE_TYPE = make_flag("SYSTEM_AUDIT_CALLBACK_ACE_TYPE", ( 0xD )) +SYSTEM_ALARM_CALLBACK_ACE_TYPE = make_flag("SYSTEM_ALARM_CALLBACK_ACE_TYPE", ( 0xE )) +SYSTEM_AUDIT_CALLBACK_OBJECT_ACE_TYPE = make_flag("SYSTEM_AUDIT_CALLBACK_OBJECT_ACE_TYPE", ( 0xF )) +SYSTEM_ALARM_CALLBACK_OBJECT_ACE_TYPE = make_flag("SYSTEM_ALARM_CALLBACK_OBJECT_ACE_TYPE", ( 0x10 )) +SYSTEM_MANDATORY_LABEL_ACE_TYPE = make_flag("SYSTEM_MANDATORY_LABEL_ACE_TYPE", ( 0x11 )) +ACCESS_MAX_MS_V5_ACE_TYPE = make_flag("ACCESS_MAX_MS_V5_ACE_TYPE", ( 0x11 )) +LPC_REQUEST = make_flag("LPC_REQUEST", 1) +LPC_REPLY = make_flag("LPC_REPLY", 2) +LPC_DATAGRAM = make_flag("LPC_DATAGRAM", 3) +LPC_LOST_REPLY = make_flag("LPC_LOST_REPLY", 4) +LPC_PORT_CLOSED = make_flag("LPC_PORT_CLOSED", 5) +LPC_CLIENT_DIED = make_flag("LPC_CLIENT_DIED", 6) +LPC_EXCEPTION = make_flag("LPC_EXCEPTION", 7) +LPC_DEBUG_EVENT = make_flag("LPC_DEBUG_EVENT", 8) +LPC_ERROR_EVENT = make_flag("LPC_ERROR_EVENT", 9) +LPC_CONNECTION_REQUEST = make_flag("LPC_CONNECTION_REQUEST", 10) +ALPC_MESSAGE_SECURITY_ATTRIBUTE = make_flag("ALPC_MESSAGE_SECURITY_ATTRIBUTE", 0x80000000) +ALPC_MESSAGE_VIEW_ATTRIBUTE = make_flag("ALPC_MESSAGE_VIEW_ATTRIBUTE", 0x40000000) +ALPC_MESSAGE_CONTEXT_ATTRIBUTE = make_flag("ALPC_MESSAGE_CONTEXT_ATTRIBUTE", 0x20000000) +ALPC_MESSAGE_HANDLE_ATTRIBUTE = make_flag("ALPC_MESSAGE_HANDLE_ATTRIBUTE", 0x10000000) +ALPC_MESSAGE_TOKEN_ATTRIBUTE = make_flag("ALPC_MESSAGE_TOKEN_ATTRIBUTE", 0x8000000) +ALPC_MESSAGE_DIRECT_ATTRIBUTE = make_flag("ALPC_MESSAGE_DIRECT_ATTRIBUTE", 0x4000000) +ALPC_MESSAGE_WORK_ON_BEHALF_ATTRIBUTE = make_flag("ALPC_MESSAGE_WORK_ON_BEHALF_ATTRIBUTE", 0x2000000) +ALPC_MSGFLG_REPLY_MESSAGE = make_flag("ALPC_MSGFLG_REPLY_MESSAGE", 0x1) +ALPC_MSGFLG_LPC_MODE = make_flag("ALPC_MSGFLG_LPC_MODE", 0x2) +ALPC_MSGFLG_RELEASE_MESSAGE = make_flag("ALPC_MSGFLG_RELEASE_MESSAGE", 0x10000) +ALPC_MSGFLG_SYNC_REQUEST = make_flag("ALPC_MSGFLG_SYNC_REQUEST", 0x20000) +ALPC_MSGFLG_WAIT_USER_MODE = make_flag("ALPC_MSGFLG_WAIT_USER_MODE", 0x100000) +ALPC_MSGFLG_WAIT_ALERTABLE = make_flag("ALPC_MSGFLG_WAIT_ALERTABLE", 0x200000) +ALPC_MSGFLG_WOW64_CALL = make_flag("ALPC_MSGFLG_WOW64_CALL", 0x80000000) +ALPC_PORFLG_ALLOW_LPC_REQUESTS = make_flag("ALPC_PORFLG_ALLOW_LPC_REQUESTS", 0x20000) +ALPC_PORFLG_WAITABLE_PORT = make_flag("ALPC_PORFLG_WAITABLE_PORT", 0x40000) +ALPC_PORFLG_SYSTEM_PROCESS = make_flag("ALPC_PORFLG_SYSTEM_PROCESS", 0x100000) +ALPC_CANCELFLG_TRY_CANCEL = make_flag("ALPC_CANCELFLG_TRY_CANCEL", 0x1) +ALPC_CANCELFLG_NO_CONTEXT_CHECK = make_flag("ALPC_CANCELFLG_NO_CONTEXT_CHECK", 0x8) +ALPC_CANCELFLGP_FLUSH = make_flag("ALPC_CANCELFLGP_FLUSH", 0x10000) +ALPC_HANDLEFLG_DUPLICATE_SAME_ACCESS = make_flag("ALPC_HANDLEFLG_DUPLICATE_SAME_ACCESS", 0x10000) +ALPC_HANDLEFLG_DUPLICATE_SAME_ATTRIBUTES = make_flag("ALPC_HANDLEFLG_DUPLICATE_SAME_ATTRIBUTES", 0x20000) +ALPC_HANDLEFLG_DUPLICATE_INHERIT = make_flag("ALPC_HANDLEFLG_DUPLICATE_INHERIT", 0x80000) +ALPC_SECFLG_CREATE_HANDLE = make_flag("ALPC_SECFLG_CREATE_HANDLE", 0x20000) +ALPC_VIEWFLG_NOT_SECURE = make_flag("ALPC_VIEWFLG_NOT_SECURE", 0x40000) +OWNER_SECURITY_INFORMATION = make_flag("OWNER_SECURITY_INFORMATION", ( 0x00000001 )) +GROUP_SECURITY_INFORMATION = make_flag("GROUP_SECURITY_INFORMATION", ( 0x00000002 )) +DACL_SECURITY_INFORMATION = make_flag("DACL_SECURITY_INFORMATION", ( 0x00000004 )) +SACL_SECURITY_INFORMATION = make_flag("SACL_SECURITY_INFORMATION", ( 0x00000008 )) +LABEL_SECURITY_INFORMATION = make_flag("LABEL_SECURITY_INFORMATION", ( 0x00000010 )) +MAXIMUM_ALLOWED = make_flag("MAXIMUM_ALLOWED", ( 0x02000000 )) +CERT_STORE_CERTIFICATE_CONTEXT = make_flag("CERT_STORE_CERTIFICATE_CONTEXT", 1) +CERT_STORE_CRL_CONTEXT = make_flag("CERT_STORE_CRL_CONTEXT", 2) +CERT_STORE_CTL_CONTEXT = make_flag("CERT_STORE_CTL_CONTEXT", 3) +CERT_QUERY_OBJECT_FILE = make_flag("CERT_QUERY_OBJECT_FILE", 0x00000001) +CERT_QUERY_OBJECT_BLOB = make_flag("CERT_QUERY_OBJECT_BLOB", 0x00000002) +CERT_QUERY_CONTENT_CERT = make_flag("CERT_QUERY_CONTENT_CERT", 1) +CERT_QUERY_CONTENT_CTL = make_flag("CERT_QUERY_CONTENT_CTL", 2) +CERT_QUERY_CONTENT_CRL = make_flag("CERT_QUERY_CONTENT_CRL", 3) +CERT_QUERY_CONTENT_SERIALIZED_STORE = make_flag("CERT_QUERY_CONTENT_SERIALIZED_STORE", 4) +CERT_QUERY_CONTENT_SERIALIZED_CERT = make_flag("CERT_QUERY_CONTENT_SERIALIZED_CERT", 5) +CERT_QUERY_CONTENT_SERIALIZED_CTL = make_flag("CERT_QUERY_CONTENT_SERIALIZED_CTL", 6) +CERT_QUERY_CONTENT_SERIALIZED_CRL = make_flag("CERT_QUERY_CONTENT_SERIALIZED_CRL", 7) +CERT_QUERY_CONTENT_PKCS7_SIGNED = make_flag("CERT_QUERY_CONTENT_PKCS7_SIGNED", 8) +CERT_QUERY_CONTENT_PKCS7_UNSIGNED = make_flag("CERT_QUERY_CONTENT_PKCS7_UNSIGNED", 9) +CERT_QUERY_CONTENT_PKCS7_SIGNED_EMBED = make_flag("CERT_QUERY_CONTENT_PKCS7_SIGNED_EMBED", 10) +CERT_QUERY_CONTENT_PKCS10 = make_flag("CERT_QUERY_CONTENT_PKCS10", 11) +CERT_QUERY_CONTENT_PFX = make_flag("CERT_QUERY_CONTENT_PFX", 12) +CERT_QUERY_CONTENT_CERT_PAIR = make_flag("CERT_QUERY_CONTENT_CERT_PAIR", 13) +CERT_QUERY_CONTENT_PFX_AND_LOAD = make_flag("CERT_QUERY_CONTENT_PFX_AND_LOAD", 14) +CERT_QUERY_FORMAT_BINARY = make_flag("CERT_QUERY_FORMAT_BINARY", 1) +CERT_QUERY_FORMAT_BASE64_ENCODED = make_flag("CERT_QUERY_FORMAT_BASE64_ENCODED", 2) +CERT_QUERY_FORMAT_ASN_ASCII_HEX_ENCODED = make_flag("CERT_QUERY_FORMAT_ASN_ASCII_HEX_ENCODED", 3) +CERT_QUERY_FORMAT_FLAG_BINARY = make_flag("CERT_QUERY_FORMAT_FLAG_BINARY", ( 1 << CERT_QUERY_FORMAT_BINARY )) +CERT_QUERY_FORMAT_FLAG_BASE64_ENCODED = make_flag("CERT_QUERY_FORMAT_FLAG_BASE64_ENCODED", ( 1 << CERT_QUERY_FORMAT_BASE64_ENCODED )) +CERT_QUERY_FORMAT_FLAG_ASN_ASCII_HEX_ENCODED = make_flag("CERT_QUERY_FORMAT_FLAG_ASN_ASCII_HEX_ENCODED", ( 1 << CERT_QUERY_FORMAT_ASN_ASCII_HEX_ENCODED )) +CERT_QUERY_FORMAT_FLAG_ALL = make_flag("CERT_QUERY_FORMAT_FLAG_ALL", ( CERT_QUERY_FORMAT_FLAG_BINARY | CERT_QUERY_FORMAT_FLAG_BASE64_ENCODED | CERT_QUERY_FORMAT_FLAG_ASN_ASCII_HEX_ENCODED )) +CERT_QUERY_CONTENT_FLAG_CERT = make_flag("CERT_QUERY_CONTENT_FLAG_CERT", ( 1 << CERT_QUERY_CONTENT_CERT )) +CERT_QUERY_CONTENT_FLAG_CTL = make_flag("CERT_QUERY_CONTENT_FLAG_CTL", ( 1 << CERT_QUERY_CONTENT_CTL )) +CERT_QUERY_CONTENT_FLAG_CRL = make_flag("CERT_QUERY_CONTENT_FLAG_CRL", ( 1 << CERT_QUERY_CONTENT_CRL )) +CERT_QUERY_CONTENT_FLAG_SERIALIZED_STORE = make_flag("CERT_QUERY_CONTENT_FLAG_SERIALIZED_STORE", ( 1 << CERT_QUERY_CONTENT_SERIALIZED_STORE )) +CERT_QUERY_CONTENT_FLAG_SERIALIZED_CERT = make_flag("CERT_QUERY_CONTENT_FLAG_SERIALIZED_CERT", ( 1 << CERT_QUERY_CONTENT_SERIALIZED_CERT )) +CERT_QUERY_CONTENT_FLAG_SERIALIZED_CTL = make_flag("CERT_QUERY_CONTENT_FLAG_SERIALIZED_CTL", ( 1 << CERT_QUERY_CONTENT_SERIALIZED_CTL )) +CERT_QUERY_CONTENT_FLAG_SERIALIZED_CRL = make_flag("CERT_QUERY_CONTENT_FLAG_SERIALIZED_CRL", ( 1 << CERT_QUERY_CONTENT_SERIALIZED_CRL )) +CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED = make_flag("CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED", ( 1 << CERT_QUERY_CONTENT_PKCS7_SIGNED )) +CERT_QUERY_CONTENT_FLAG_PKCS7_UNSIGNED = make_flag("CERT_QUERY_CONTENT_FLAG_PKCS7_UNSIGNED", ( 1 << CERT_QUERY_CONTENT_PKCS7_UNSIGNED )) +CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED_EMBED = make_flag("CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED_EMBED", ( 1 << CERT_QUERY_CONTENT_PKCS7_SIGNED_EMBED )) +CERT_QUERY_CONTENT_FLAG_PKCS10 = make_flag("CERT_QUERY_CONTENT_FLAG_PKCS10", ( 1 << CERT_QUERY_CONTENT_PKCS10 )) +CERT_QUERY_CONTENT_FLAG_PFX = make_flag("CERT_QUERY_CONTENT_FLAG_PFX", ( 1 << CERT_QUERY_CONTENT_PFX )) +CERT_QUERY_CONTENT_FLAG_CERT_PAIR = make_flag("CERT_QUERY_CONTENT_FLAG_CERT_PAIR", ( 1 << CERT_QUERY_CONTENT_CERT_PAIR )) +CERT_QUERY_CONTENT_FLAG_PFX_AND_LOAD = make_flag("CERT_QUERY_CONTENT_FLAG_PFX_AND_LOAD", ( 1 << CERT_QUERY_CONTENT_PFX_AND_LOAD )) +CERT_QUERY_CONTENT_FLAG_ALL = make_flag("CERT_QUERY_CONTENT_FLAG_ALL", ( CERT_QUERY_CONTENT_FLAG_CERT | CERT_QUERY_CONTENT_FLAG_CTL | CERT_QUERY_CONTENT_FLAG_CRL | CERT_QUERY_CONTENT_FLAG_SERIALIZED_STORE | CERT_QUERY_CONTENT_FLAG_SERIALIZED_CERT | CERT_QUERY_CONTENT_FLAG_SERIALIZED_CTL | CERT_QUERY_CONTENT_FLAG_SERIALIZED_CRL | CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED | CERT_QUERY_CONTENT_FLAG_PKCS7_UNSIGNED | CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED_EMBED | CERT_QUERY_CONTENT_FLAG_PKCS10 | CERT_QUERY_CONTENT_FLAG_PFX | CERT_QUERY_CONTENT_FLAG_CERT_PAIR )) +CRYPT_ASN_ENCODING = make_flag("CRYPT_ASN_ENCODING", 0x00000001) +CRYPT_NDR_ENCODING = make_flag("CRYPT_NDR_ENCODING", 0x00000002) +X509_ASN_ENCODING = make_flag("X509_ASN_ENCODING", 0x00000001) +X509_NDR_ENCODING = make_flag("X509_NDR_ENCODING", 0x00000002) +PKCS_7_ASN_ENCODING = make_flag("PKCS_7_ASN_ENCODING", 0x00010000) +PKCS_7_NDR_ENCODING = make_flag("PKCS_7_NDR_ENCODING", 0x00020000) +CERT_ENCODING_TYPE_MASK = make_flag("CERT_ENCODING_TYPE_MASK", 0x0000FFFF) +CMSG_ENCODING_TYPE_MASK = make_flag("CMSG_ENCODING_TYPE_MASK", 0xFFFF0000) +CERT_COMPARE_MASK = make_flag("CERT_COMPARE_MASK", 0xFFFF) +CERT_COMPARE_SHIFT = make_flag("CERT_COMPARE_SHIFT", 16) +CERT_COMPARE_ANY = make_flag("CERT_COMPARE_ANY", 0) +CERT_COMPARE_SHA1_HASH = make_flag("CERT_COMPARE_SHA1_HASH", 1) +CERT_COMPARE_NAME = make_flag("CERT_COMPARE_NAME", 2) +CERT_COMPARE_ATTR = make_flag("CERT_COMPARE_ATTR", 3) +CERT_COMPARE_MD5_HASH = make_flag("CERT_COMPARE_MD5_HASH", 4) +CERT_COMPARE_PROPERTY = make_flag("CERT_COMPARE_PROPERTY", 5) +CERT_COMPARE_PUBLIC_KEY = make_flag("CERT_COMPARE_PUBLIC_KEY", 6) +CERT_COMPARE_HASH = make_flag("CERT_COMPARE_HASH", CERT_COMPARE_SHA1_HASH) +CERT_COMPARE_NAME_STR_A = make_flag("CERT_COMPARE_NAME_STR_A", 7) +CERT_COMPARE_NAME_STR_W = make_flag("CERT_COMPARE_NAME_STR_W", 8) +CERT_COMPARE_KEY_SPEC = make_flag("CERT_COMPARE_KEY_SPEC", 9) +CERT_COMPARE_ENHKEY_USAGE = make_flag("CERT_COMPARE_ENHKEY_USAGE", 10) +CERT_COMPARE_CTL_USAGE = make_flag("CERT_COMPARE_CTL_USAGE", CERT_COMPARE_ENHKEY_USAGE) +CERT_COMPARE_SUBJECT_CERT = make_flag("CERT_COMPARE_SUBJECT_CERT", 11) +CERT_COMPARE_ISSUER_OF = make_flag("CERT_COMPARE_ISSUER_OF", 12) +CERT_COMPARE_EXISTING = make_flag("CERT_COMPARE_EXISTING", 13) +CERT_COMPARE_SIGNATURE_HASH = make_flag("CERT_COMPARE_SIGNATURE_HASH", 14) +CERT_COMPARE_KEY_IDENTIFIER = make_flag("CERT_COMPARE_KEY_IDENTIFIER", 15) +CERT_COMPARE_CERT_ID = make_flag("CERT_COMPARE_CERT_ID", 16) +CERT_COMPARE_CROSS_CERT_DIST_POINTS = make_flag("CERT_COMPARE_CROSS_CERT_DIST_POINTS", 17) +CERT_COMPARE_PUBKEY_MD5_HASH = make_flag("CERT_COMPARE_PUBKEY_MD5_HASH", 18) +CERT_COMPARE_SUBJECT_INFO_ACCESS = make_flag("CERT_COMPARE_SUBJECT_INFO_ACCESS", 19) +CERT_NAME_ISSUER_FLAG = make_flag("CERT_NAME_ISSUER_FLAG", 0x1) +CERT_NAME_DISABLE_IE4_UTF8_FLAG = make_flag("CERT_NAME_DISABLE_IE4_UTF8_FLAG", 0x00010000) +USAGE_MATCH_TYPE_AND = make_flag("USAGE_MATCH_TYPE_AND", 0x00000000) +USAGE_MATCH_TYPE_OR = make_flag("USAGE_MATCH_TYPE_OR", 0x00000001) +CERT_CHAIN_REVOCATION_CHECK_END_CERT = make_flag("CERT_CHAIN_REVOCATION_CHECK_END_CERT", 0x10000000) +CERT_CHAIN_REVOCATION_CHECK_CHAIN = make_flag("CERT_CHAIN_REVOCATION_CHECK_CHAIN", 0x20000000) +CERT_CHAIN_REVOCATION_CHECK_CHAIN_EXCLUDE_ROOT = make_flag("CERT_CHAIN_REVOCATION_CHECK_CHAIN_EXCLUDE_ROOT", 0x40000000) +CERT_CHAIN_REVOCATION_CHECK_CACHE_ONLY = make_flag("CERT_CHAIN_REVOCATION_CHECK_CACHE_ONLY", 0x80000000) +CERT_TRUST_NO_ERROR = make_flag("CERT_TRUST_NO_ERROR", 0x00000000) +CERT_TRUST_IS_NOT_TIME_VALID = make_flag("CERT_TRUST_IS_NOT_TIME_VALID", 0x00000001) +CERT_TRUST_IS_NOT_TIME_NESTED = make_flag("CERT_TRUST_IS_NOT_TIME_NESTED", 0x00000002) +CERT_TRUST_IS_REVOKED = make_flag("CERT_TRUST_IS_REVOKED", 0x00000004) +CERT_TRUST_IS_NOT_SIGNATURE_VALID = make_flag("CERT_TRUST_IS_NOT_SIGNATURE_VALID", 0x00000008) +CERT_TRUST_IS_NOT_VALID_FOR_USAGE = make_flag("CERT_TRUST_IS_NOT_VALID_FOR_USAGE", 0x00000010) +CERT_TRUST_IS_UNTRUSTED_ROOT = make_flag("CERT_TRUST_IS_UNTRUSTED_ROOT", 0x00000020) +CERT_TRUST_REVOCATION_STATUS_UNKNOWN = make_flag("CERT_TRUST_REVOCATION_STATUS_UNKNOWN", 0x00000040) +CERT_TRUST_IS_CYCLIC = make_flag("CERT_TRUST_IS_CYCLIC", 0x00000080) +CERT_TRUST_INVALID_EXTENSION = make_flag("CERT_TRUST_INVALID_EXTENSION", 0x00000100) +CERT_TRUST_INVALID_POLICY_CONSTRAINTS = make_flag("CERT_TRUST_INVALID_POLICY_CONSTRAINTS", 0x00000200) +CERT_TRUST_INVALID_BASIC_CONSTRAINTS = make_flag("CERT_TRUST_INVALID_BASIC_CONSTRAINTS", 0x00000400) +CERT_TRUST_INVALID_NAME_CONSTRAINTS = make_flag("CERT_TRUST_INVALID_NAME_CONSTRAINTS", 0x00000800) +CERT_TRUST_HAS_NOT_SUPPORTED_NAME_CONSTRAINT = make_flag("CERT_TRUST_HAS_NOT_SUPPORTED_NAME_CONSTRAINT", 0x00001000) +CERT_TRUST_HAS_NOT_DEFINED_NAME_CONSTRAINT = make_flag("CERT_TRUST_HAS_NOT_DEFINED_NAME_CONSTRAINT", 0x00002000) +CERT_TRUST_HAS_NOT_PERMITTED_NAME_CONSTRAINT = make_flag("CERT_TRUST_HAS_NOT_PERMITTED_NAME_CONSTRAINT", 0x00004000) +CERT_TRUST_HAS_EXCLUDED_NAME_CONSTRAINT = make_flag("CERT_TRUST_HAS_EXCLUDED_NAME_CONSTRAINT", 0x00008000) +CERT_TRUST_IS_OFFLINE_REVOCATION = make_flag("CERT_TRUST_IS_OFFLINE_REVOCATION", 0x01000000) +CERT_TRUST_NO_ISSUANCE_CHAIN_POLICY = make_flag("CERT_TRUST_NO_ISSUANCE_CHAIN_POLICY", 0x02000000) +CERT_TRUST_IS_EXPLICIT_DISTRUST = make_flag("CERT_TRUST_IS_EXPLICIT_DISTRUST", 0x04000000) +CERT_TRUST_HAS_NOT_SUPPORTED_CRITICAL_EXT = make_flag("CERT_TRUST_HAS_NOT_SUPPORTED_CRITICAL_EXT", 0x08000000) +CERT_TRUST_IS_PARTIAL_CHAIN = make_flag("CERT_TRUST_IS_PARTIAL_CHAIN", 0x00010000) +CERT_TRUST_CTL_IS_NOT_TIME_VALID = make_flag("CERT_TRUST_CTL_IS_NOT_TIME_VALID", 0x00020000) +CERT_TRUST_CTL_IS_NOT_SIGNATURE_VALID = make_flag("CERT_TRUST_CTL_IS_NOT_SIGNATURE_VALID", 0x00040000) +CERT_TRUST_CTL_IS_NOT_VALID_FOR_USAGE = make_flag("CERT_TRUST_CTL_IS_NOT_VALID_FOR_USAGE", 0x00080000) +CERT_TRUST_HAS_EXACT_MATCH_ISSUER = make_flag("CERT_TRUST_HAS_EXACT_MATCH_ISSUER", 0x00000001) +CERT_TRUST_HAS_KEY_MATCH_ISSUER = make_flag("CERT_TRUST_HAS_KEY_MATCH_ISSUER", 0x00000002) +CERT_TRUST_HAS_NAME_MATCH_ISSUER = make_flag("CERT_TRUST_HAS_NAME_MATCH_ISSUER", 0x00000004) +CERT_TRUST_IS_SELF_SIGNED = make_flag("CERT_TRUST_IS_SELF_SIGNED", 0x00000008) +CERT_TRUST_HAS_PREFERRED_ISSUER = make_flag("CERT_TRUST_HAS_PREFERRED_ISSUER", 0x00000100) +CERT_TRUST_HAS_ISSUANCE_CHAIN_POLICY = make_flag("CERT_TRUST_HAS_ISSUANCE_CHAIN_POLICY", 0x00000200) +CERT_TRUST_HAS_VALID_NAME_CONSTRAINTS = make_flag("CERT_TRUST_HAS_VALID_NAME_CONSTRAINTS", 0x00000400) +CERT_TRUST_IS_PEER_TRUSTED = make_flag("CERT_TRUST_IS_PEER_TRUSTED", 0x00000800) +CERT_TRUST_HAS_CRL_VALIDITY_EXTENDED = make_flag("CERT_TRUST_HAS_CRL_VALIDITY_EXTENDED", 0x00001000) +CERT_TRUST_IS_FROM_EXCLUSIVE_TRUST_STORE = make_flag("CERT_TRUST_IS_FROM_EXCLUSIVE_TRUST_STORE", 0x00002000) +CERT_TRUST_IS_COMPLEX_CHAIN = make_flag("CERT_TRUST_IS_COMPLEX_CHAIN", 0x00010000) +CMSG_TYPE_PARAM = make_flag("CMSG_TYPE_PARAM", 1) +CMSG_CONTENT_PARAM = make_flag("CMSG_CONTENT_PARAM", 2) +CMSG_BARE_CONTENT_PARAM = make_flag("CMSG_BARE_CONTENT_PARAM", 3) +CMSG_INNER_CONTENT_TYPE_PARAM = make_flag("CMSG_INNER_CONTENT_TYPE_PARAM", 4) +CMSG_SIGNER_COUNT_PARAM = make_flag("CMSG_SIGNER_COUNT_PARAM", 5) +CMSG_SIGNER_INFO_PARAM = make_flag("CMSG_SIGNER_INFO_PARAM", 6) +CMSG_SIGNER_CERT_INFO_PARAM = make_flag("CMSG_SIGNER_CERT_INFO_PARAM", 7) +CMSG_SIGNER_HASH_ALGORITHM_PARAM = make_flag("CMSG_SIGNER_HASH_ALGORITHM_PARAM", 8) +CMSG_SIGNER_AUTH_ATTR_PARAM = make_flag("CMSG_SIGNER_AUTH_ATTR_PARAM", 9) +CMSG_SIGNER_UNAUTH_ATTR_PARAM = make_flag("CMSG_SIGNER_UNAUTH_ATTR_PARAM", 10) +CMSG_CERT_COUNT_PARAM = make_flag("CMSG_CERT_COUNT_PARAM", 11) +CMSG_CERT_PARAM = make_flag("CMSG_CERT_PARAM", 12) +CMSG_CRL_COUNT_PARAM = make_flag("CMSG_CRL_COUNT_PARAM", 13) +CMSG_CRL_PARAM = make_flag("CMSG_CRL_PARAM", 14) +CMSG_ENVELOPE_ALGORITHM_PARAM = make_flag("CMSG_ENVELOPE_ALGORITHM_PARAM", 15) +CMSG_RECIPIENT_COUNT_PARAM = make_flag("CMSG_RECIPIENT_COUNT_PARAM", 17) +CMSG_RECIPIENT_INDEX_PARAM = make_flag("CMSG_RECIPIENT_INDEX_PARAM", 18) +CMSG_RECIPIENT_INFO_PARAM = make_flag("CMSG_RECIPIENT_INFO_PARAM", 19) +CMSG_HASH_ALGORITHM_PARAM = make_flag("CMSG_HASH_ALGORITHM_PARAM", 20) +CMSG_HASH_DATA_PARAM = make_flag("CMSG_HASH_DATA_PARAM", 21) +CMSG_COMPUTED_HASH_PARAM = make_flag("CMSG_COMPUTED_HASH_PARAM", 22) +CMSG_ENCRYPT_PARAM = make_flag("CMSG_ENCRYPT_PARAM", 26) +CMSG_ENCRYPTED_DIGEST = make_flag("CMSG_ENCRYPTED_DIGEST", 27) +CMSG_ENCODED_SIGNER = make_flag("CMSG_ENCODED_SIGNER", 28) +CMSG_ENCODED_MESSAGE = make_flag("CMSG_ENCODED_MESSAGE", 29) +CMSG_VERSION_PARAM = make_flag("CMSG_VERSION_PARAM", 30) +CMSG_ATTR_CERT_COUNT_PARAM = make_flag("CMSG_ATTR_CERT_COUNT_PARAM", 31) +CMSG_ATTR_CERT_PARAM = make_flag("CMSG_ATTR_CERT_PARAM", 32) +CMSG_CMS_RECIPIENT_COUNT_PARAM = make_flag("CMSG_CMS_RECIPIENT_COUNT_PARAM", 33) +CMSG_CMS_RECIPIENT_INDEX_PARAM = make_flag("CMSG_CMS_RECIPIENT_INDEX_PARAM", 34) +CMSG_CMS_RECIPIENT_ENCRYPTED_KEY_INDEX_PARAM = make_flag("CMSG_CMS_RECIPIENT_ENCRYPTED_KEY_INDEX_PARAM", 35) +CMSG_CMS_RECIPIENT_INFO_PARAM = make_flag("CMSG_CMS_RECIPIENT_INFO_PARAM", 36) +CMSG_UNPROTECTED_ATTR_PARAM = make_flag("CMSG_UNPROTECTED_ATTR_PARAM", 37) +CMSG_SIGNER_CERT_ID_PARAM = make_flag("CMSG_SIGNER_CERT_ID_PARAM", 38) +CMSG_CMS_SIGNER_INFO_PARAM = make_flag("CMSG_CMS_SIGNER_INFO_PARAM", 39) +CERT_INFO_VERSION_FLAG = make_flag("CERT_INFO_VERSION_FLAG", 1) +CERT_INFO_SERIAL_NUMBER_FLAG = make_flag("CERT_INFO_SERIAL_NUMBER_FLAG", 2) +CERT_INFO_SIGNATURE_ALGORITHM_FLAG = make_flag("CERT_INFO_SIGNATURE_ALGORITHM_FLAG", 3) +CERT_INFO_ISSUER_FLAG = make_flag("CERT_INFO_ISSUER_FLAG", 4) +CERT_INFO_NOT_BEFORE_FLAG = make_flag("CERT_INFO_NOT_BEFORE_FLAG", 5) +CERT_INFO_NOT_AFTER_FLAG = make_flag("CERT_INFO_NOT_AFTER_FLAG", 6) +CERT_INFO_SUBJECT_FLAG = make_flag("CERT_INFO_SUBJECT_FLAG", 7) +CERT_INFO_SUBJECT_PUBLIC_KEY_INFO_FLAG = make_flag("CERT_INFO_SUBJECT_PUBLIC_KEY_INFO_FLAG", 8) +CERT_INFO_ISSUER_UNIQUE_ID_FLAG = make_flag("CERT_INFO_ISSUER_UNIQUE_ID_FLAG", 9) +CERT_INFO_SUBJECT_UNIQUE_ID_FLAG = make_flag("CERT_INFO_SUBJECT_UNIQUE_ID_FLAG", 10) +CERT_INFO_EXTENSION_FLAG = make_flag("CERT_INFO_EXTENSION_FLAG", 11) +CERT_FIND_ANY = make_flag("CERT_FIND_ANY", ( CERT_COMPARE_ANY << CERT_COMPARE_SHIFT )) +CERT_FIND_SHA1_HASH = make_flag("CERT_FIND_SHA1_HASH", ( CERT_COMPARE_SHA1_HASH << CERT_COMPARE_SHIFT )) +CERT_FIND_MD5_HASH = make_flag("CERT_FIND_MD5_HASH", ( CERT_COMPARE_MD5_HASH << CERT_COMPARE_SHIFT )) +CERT_FIND_SIGNATURE_HASH = make_flag("CERT_FIND_SIGNATURE_HASH", ( CERT_COMPARE_SIGNATURE_HASH << CERT_COMPARE_SHIFT )) +CERT_FIND_KEY_IDENTIFIER = make_flag("CERT_FIND_KEY_IDENTIFIER", ( CERT_COMPARE_KEY_IDENTIFIER << CERT_COMPARE_SHIFT )) +CERT_FIND_HASH = make_flag("CERT_FIND_HASH", CERT_FIND_SHA1_HASH) +CERT_FIND_PROPERTY = make_flag("CERT_FIND_PROPERTY", ( CERT_COMPARE_PROPERTY << CERT_COMPARE_SHIFT )) +CERT_FIND_PUBLIC_KEY = make_flag("CERT_FIND_PUBLIC_KEY", ( CERT_COMPARE_PUBLIC_KEY << CERT_COMPARE_SHIFT )) +CERT_FIND_SUBJECT_NAME = make_flag("CERT_FIND_SUBJECT_NAME", ( CERT_COMPARE_NAME << CERT_COMPARE_SHIFT | CERT_INFO_SUBJECT_FLAG )) +CERT_FIND_SUBJECT_ATTR = make_flag("CERT_FIND_SUBJECT_ATTR", ( CERT_COMPARE_ATTR << CERT_COMPARE_SHIFT | CERT_INFO_SUBJECT_FLAG )) +CERT_FIND_ISSUER_NAME = make_flag("CERT_FIND_ISSUER_NAME", ( CERT_COMPARE_NAME << CERT_COMPARE_SHIFT | CERT_INFO_ISSUER_FLAG )) +CERT_FIND_ISSUER_ATTR = make_flag("CERT_FIND_ISSUER_ATTR", ( CERT_COMPARE_ATTR << CERT_COMPARE_SHIFT | CERT_INFO_ISSUER_FLAG )) +CERT_FIND_SUBJECT_STR_A = make_flag("CERT_FIND_SUBJECT_STR_A", ( CERT_COMPARE_NAME_STR_A << CERT_COMPARE_SHIFT | CERT_INFO_SUBJECT_FLAG )) +CERT_FIND_SUBJECT_STR_W = make_flag("CERT_FIND_SUBJECT_STR_W", ( CERT_COMPARE_NAME_STR_W << CERT_COMPARE_SHIFT | CERT_INFO_SUBJECT_FLAG )) +CERT_FIND_SUBJECT_STR = make_flag("CERT_FIND_SUBJECT_STR", CERT_FIND_SUBJECT_STR_W) +CERT_FIND_ISSUER_STR_A = make_flag("CERT_FIND_ISSUER_STR_A", ( CERT_COMPARE_NAME_STR_A << CERT_COMPARE_SHIFT | CERT_INFO_ISSUER_FLAG )) +CERT_FIND_ISSUER_STR_W = make_flag("CERT_FIND_ISSUER_STR_W", ( CERT_COMPARE_NAME_STR_W << CERT_COMPARE_SHIFT | CERT_INFO_ISSUER_FLAG )) +CERT_FIND_ISSUER_STR = make_flag("CERT_FIND_ISSUER_STR", CERT_FIND_ISSUER_STR_W) +CERT_FIND_KEY_SPEC = make_flag("CERT_FIND_KEY_SPEC", ( CERT_COMPARE_KEY_SPEC << CERT_COMPARE_SHIFT )) +CERT_FIND_ENHKEY_USAGE = make_flag("CERT_FIND_ENHKEY_USAGE", ( CERT_COMPARE_ENHKEY_USAGE << CERT_COMPARE_SHIFT )) +CERT_FIND_CTL_USAGE = make_flag("CERT_FIND_CTL_USAGE", CERT_FIND_ENHKEY_USAGE) +CERT_FIND_SUBJECT_CERT = make_flag("CERT_FIND_SUBJECT_CERT", ( CERT_COMPARE_SUBJECT_CERT << CERT_COMPARE_SHIFT )) +CERT_FIND_ISSUER_OF = make_flag("CERT_FIND_ISSUER_OF", ( CERT_COMPARE_ISSUER_OF << CERT_COMPARE_SHIFT )) +CERT_FIND_EXISTING = make_flag("CERT_FIND_EXISTING", ( CERT_COMPARE_EXISTING << CERT_COMPARE_SHIFT )) +CERT_FIND_CERT_ID = make_flag("CERT_FIND_CERT_ID", ( CERT_COMPARE_CERT_ID << CERT_COMPARE_SHIFT )) +CERT_FIND_CROSS_CERT_DIST_POINTS = make_flag("CERT_FIND_CROSS_CERT_DIST_POINTS", ( CERT_COMPARE_CROSS_CERT_DIST_POINTS << CERT_COMPARE_SHIFT )) +CERT_FIND_PUBKEY_MD5_HASH = make_flag("CERT_FIND_PUBKEY_MD5_HASH", ( CERT_COMPARE_PUBKEY_MD5_HASH << CERT_COMPARE_SHIFT )) +CERT_FIND_SUBJECT_INFO_ACCESS = make_flag("CERT_FIND_SUBJECT_INFO_ACCESS", ( CERT_COMPARE_SUBJECT_INFO_ACCESS << CERT_COMPARE_SHIFT )) +CERT_NAME_EMAIL_TYPE = make_flag("CERT_NAME_EMAIL_TYPE", 1) +CERT_NAME_RDN_TYPE = make_flag("CERT_NAME_RDN_TYPE", 2) +CERT_NAME_ATTR_TYPE = make_flag("CERT_NAME_ATTR_TYPE", 3) +CERT_NAME_SIMPLE_DISPLAY_TYPE = make_flag("CERT_NAME_SIMPLE_DISPLAY_TYPE", 4) +CERT_NAME_FRIENDLY_DISPLAY_TYPE = make_flag("CERT_NAME_FRIENDLY_DISPLAY_TYPE", 5) +CERT_NAME_DNS_TYPE = make_flag("CERT_NAME_DNS_TYPE", 6) +CERT_NAME_URL_TYPE = make_flag("CERT_NAME_URL_TYPE", 7) +CERT_NAME_UPN_TYPE = make_flag("CERT_NAME_UPN_TYPE", 8) +CERT_KEY_PROV_HANDLE_PROP_ID = make_flag("CERT_KEY_PROV_HANDLE_PROP_ID", 1) +CERT_KEY_PROV_INFO_PROP_ID = make_flag("CERT_KEY_PROV_INFO_PROP_ID", 2) +CERT_SHA1_HASH_PROP_ID = make_flag("CERT_SHA1_HASH_PROP_ID", 3) +CERT_MD5_HASH_PROP_ID = make_flag("CERT_MD5_HASH_PROP_ID", 4) +CERT_HASH_PROP_ID = make_flag("CERT_HASH_PROP_ID", CERT_SHA1_HASH_PROP_ID) +CERT_KEY_CONTEXT_PROP_ID = make_flag("CERT_KEY_CONTEXT_PROP_ID", 5) +CERT_KEY_SPEC_PROP_ID = make_flag("CERT_KEY_SPEC_PROP_ID", 6) +CERT_IE30_RESERVED_PROP_ID = make_flag("CERT_IE30_RESERVED_PROP_ID", 7) +CERT_PUBKEY_HASH_RESERVED_PROP_ID = make_flag("CERT_PUBKEY_HASH_RESERVED_PROP_ID", 8) +CERT_ENHKEY_USAGE_PROP_ID = make_flag("CERT_ENHKEY_USAGE_PROP_ID", 9) +CERT_CTL_USAGE_PROP_ID = make_flag("CERT_CTL_USAGE_PROP_ID", CERT_ENHKEY_USAGE_PROP_ID) +CERT_NEXT_UPDATE_LOCATION_PROP_ID = make_flag("CERT_NEXT_UPDATE_LOCATION_PROP_ID", 10) +CERT_FRIENDLY_NAME_PROP_ID = make_flag("CERT_FRIENDLY_NAME_PROP_ID", 11) +CERT_PVK_FILE_PROP_ID = make_flag("CERT_PVK_FILE_PROP_ID", 12) +CERT_DESCRIPTION_PROP_ID = make_flag("CERT_DESCRIPTION_PROP_ID", 13) +CERT_ACCESS_STATE_PROP_ID = make_flag("CERT_ACCESS_STATE_PROP_ID", 14) +CERT_SIGNATURE_HASH_PROP_ID = make_flag("CERT_SIGNATURE_HASH_PROP_ID", 15) +CERT_SMART_CARD_DATA_PROP_ID = make_flag("CERT_SMART_CARD_DATA_PROP_ID", 16) +CERT_EFS_PROP_ID = make_flag("CERT_EFS_PROP_ID", 17) +CERT_FORTEZZA_DATA_PROP_ID = make_flag("CERT_FORTEZZA_DATA_PROP_ID", 18) +CERT_ARCHIVED_PROP_ID = make_flag("CERT_ARCHIVED_PROP_ID", 19) +CERT_KEY_IDENTIFIER_PROP_ID = make_flag("CERT_KEY_IDENTIFIER_PROP_ID", 20) +CERT_AUTO_ENROLL_PROP_ID = make_flag("CERT_AUTO_ENROLL_PROP_ID", 21) +CERT_PUBKEY_ALG_PARA_PROP_ID = make_flag("CERT_PUBKEY_ALG_PARA_PROP_ID", 22) +CERT_CROSS_CERT_DIST_POINTS_PROP_ID = make_flag("CERT_CROSS_CERT_DIST_POINTS_PROP_ID", 23) +CERT_ISSUER_PUBLIC_KEY_MD5_HASH_PROP_ID = make_flag("CERT_ISSUER_PUBLIC_KEY_MD5_HASH_PROP_ID", 24) +CERT_SUBJECT_PUBLIC_KEY_MD5_HASH_PROP_ID = make_flag("CERT_SUBJECT_PUBLIC_KEY_MD5_HASH_PROP_ID", 25) +CERT_ENROLLMENT_PROP_ID = make_flag("CERT_ENROLLMENT_PROP_ID", 26) +CERT_DATE_STAMP_PROP_ID = make_flag("CERT_DATE_STAMP_PROP_ID", 27) +CERT_ISSUER_SERIAL_NUMBER_MD5_HASH_PROP_ID = make_flag("CERT_ISSUER_SERIAL_NUMBER_MD5_HASH_PROP_ID", 28) +CERT_SUBJECT_NAME_MD5_HASH_PROP_ID = make_flag("CERT_SUBJECT_NAME_MD5_HASH_PROP_ID", 29) +CERT_EXTENDED_ERROR_INFO_PROP_ID = make_flag("CERT_EXTENDED_ERROR_INFO_PROP_ID", 30) +CERT_RENEWAL_PROP_ID = make_flag("CERT_RENEWAL_PROP_ID", 64) +CERT_ARCHIVED_KEY_HASH_PROP_ID = make_flag("CERT_ARCHIVED_KEY_HASH_PROP_ID", 65) +CERT_AUTO_ENROLL_RETRY_PROP_ID = make_flag("CERT_AUTO_ENROLL_RETRY_PROP_ID", 66) +CERT_AIA_URL_RETRIEVED_PROP_ID = make_flag("CERT_AIA_URL_RETRIEVED_PROP_ID", 67) +CERT_AUTHORITY_INFO_ACCESS_PROP_ID = make_flag("CERT_AUTHORITY_INFO_ACCESS_PROP_ID", 68) +CERT_BACKED_UP_PROP_ID = make_flag("CERT_BACKED_UP_PROP_ID", 69) +CERT_OCSP_RESPONSE_PROP_ID = make_flag("CERT_OCSP_RESPONSE_PROP_ID", 70) +CERT_REQUEST_ORIGINATOR_PROP_ID = make_flag("CERT_REQUEST_ORIGINATOR_PROP_ID", 71) +CERT_SOURCE_LOCATION_PROP_ID = make_flag("CERT_SOURCE_LOCATION_PROP_ID", 72) +CRYPT_ACQUIRE_CACHE_FLAG = make_flag("CRYPT_ACQUIRE_CACHE_FLAG", 0x00000001) +CRYPT_ACQUIRE_USE_PROV_INFO_FLAG = make_flag("CRYPT_ACQUIRE_USE_PROV_INFO_FLAG", 0x00000002) +CRYPT_ACQUIRE_COMPARE_KEY_FLAG = make_flag("CRYPT_ACQUIRE_COMPARE_KEY_FLAG", 0x00000004) +CRYPT_ACQUIRE_NO_HEALING = make_flag("CRYPT_ACQUIRE_NO_HEALING", 0x00000008) +CRYPT_ACQUIRE_SILENT_FLAG = make_flag("CRYPT_ACQUIRE_SILENT_FLAG", 0x00000040) +CRYPT_ACQUIRE_NCRYPT_KEY_FLAGS_MASK = make_flag("CRYPT_ACQUIRE_NCRYPT_KEY_FLAGS_MASK", 0x00070000) +CRYPT_ACQUIRE_ALLOW_NCRYPT_KEY_FLAG = make_flag("CRYPT_ACQUIRE_ALLOW_NCRYPT_KEY_FLAG", 0x00010000) +CRYPT_ACQUIRE_PREFER_NCRYPT_KEY_FLAG = make_flag("CRYPT_ACQUIRE_PREFER_NCRYPT_KEY_FLAG", 0x00020000) +CRYPT_ACQUIRE_ONLY_NCRYPT_KEY_FLAG = make_flag("CRYPT_ACQUIRE_ONLY_NCRYPT_KEY_FLAG", 0x00040000) +CERT_STORE_PROV_MSG = make_flag("CERT_STORE_PROV_MSG", ( 1 )) +CERT_STORE_PROV_MEMORY = make_flag("CERT_STORE_PROV_MEMORY", ( 2 )) +CERT_STORE_PROV_FILE = make_flag("CERT_STORE_PROV_FILE", ( 3 )) +CERT_STORE_PROV_REG = make_flag("CERT_STORE_PROV_REG", ( 4 )) +CERT_STORE_PROV_PKCS7 = make_flag("CERT_STORE_PROV_PKCS7", ( 5 )) +CERT_STORE_PROV_SERIALIZED = make_flag("CERT_STORE_PROV_SERIALIZED", ( 6 )) +CERT_STORE_PROV_FILENAME_A = make_flag("CERT_STORE_PROV_FILENAME_A", ( 7 )) +CERT_STORE_PROV_FILENAME_W = make_flag("CERT_STORE_PROV_FILENAME_W", ( 8 )) +CERT_STORE_PROV_FILENAME = make_flag("CERT_STORE_PROV_FILENAME", CERT_STORE_PROV_FILENAME_W) +CERT_STORE_PROV_SYSTEM_A = make_flag("CERT_STORE_PROV_SYSTEM_A", ( 9 )) +CERT_STORE_PROV_SYSTEM_W = make_flag("CERT_STORE_PROV_SYSTEM_W", ( 10 )) +CERT_STORE_PROV_SYSTEM = make_flag("CERT_STORE_PROV_SYSTEM", CERT_STORE_PROV_SYSTEM_W) +CERT_STORE_PROV_COLLECTION = make_flag("CERT_STORE_PROV_COLLECTION", ( 11 )) +CERT_STORE_PROV_SYSTEM_REGISTRY_A = make_flag("CERT_STORE_PROV_SYSTEM_REGISTRY_A", ( 12 )) +CERT_STORE_PROV_SYSTEM_REGISTRY_W = make_flag("CERT_STORE_PROV_SYSTEM_REGISTRY_W", ( 13 )) +CERT_STORE_PROV_SYSTEM_REGISTRY = make_flag("CERT_STORE_PROV_SYSTEM_REGISTRY", CERT_STORE_PROV_SYSTEM_REGISTRY_W) +CERT_STORE_PROV_PHYSICAL_W = make_flag("CERT_STORE_PROV_PHYSICAL_W", ( 14 )) +CERT_STORE_PROV_PHYSICAL = make_flag("CERT_STORE_PROV_PHYSICAL", CERT_STORE_PROV_PHYSICAL_W) +CERT_STORE_PROV_SMART_CARD_W = make_flag("CERT_STORE_PROV_SMART_CARD_W", ( 15 )) +CERT_STORE_PROV_SMART_CARD = make_flag("CERT_STORE_PROV_SMART_CARD", CERT_STORE_PROV_SMART_CARD_W) +CERT_STORE_PROV_LDAP_W = make_flag("CERT_STORE_PROV_LDAP_W", ( 16 )) +CERT_STORE_PROV_LDAP = make_flag("CERT_STORE_PROV_LDAP", CERT_STORE_PROV_LDAP_W) +CERT_STORE_PROV_PKCS12 = make_flag("CERT_STORE_PROV_PKCS12", ( 17 )) +szOID_RSA = make_flag("szOID_RSA", "1.2.840.113549") +szOID_PKCS = make_flag("szOID_PKCS", "1.2.840.113549.1") +szOID_RSA_HASH = make_flag("szOID_RSA_HASH", "1.2.840.113549.2") +szOID_RSA_ENCRYPT = make_flag("szOID_RSA_ENCRYPT", "1.2.840.113549.3") +szOID_PKCS_1 = make_flag("szOID_PKCS_1", "1.2.840.113549.1.1") +szOID_PKCS_2 = make_flag("szOID_PKCS_2", "1.2.840.113549.1.2") +szOID_PKCS_3 = make_flag("szOID_PKCS_3", "1.2.840.113549.1.3") +szOID_PKCS_4 = make_flag("szOID_PKCS_4", "1.2.840.113549.1.4") +szOID_PKCS_5 = make_flag("szOID_PKCS_5", "1.2.840.113549.1.5") +szOID_PKCS_6 = make_flag("szOID_PKCS_6", "1.2.840.113549.1.6") +szOID_PKCS_7 = make_flag("szOID_PKCS_7", "1.2.840.113549.1.7") +szOID_PKCS_8 = make_flag("szOID_PKCS_8", "1.2.840.113549.1.8") +szOID_PKCS_9 = make_flag("szOID_PKCS_9", "1.2.840.113549.1.9") +szOID_PKCS_10 = make_flag("szOID_PKCS_10", "1.2.840.113549.1.10") +szOID_PKCS_12 = make_flag("szOID_PKCS_12", "1.2.840.113549.1.12") +szOID_RSA_RSA = make_flag("szOID_RSA_RSA", "1.2.840.113549.1.1.1") +szOID_RSA_MD2RSA = make_flag("szOID_RSA_MD2RSA", "1.2.840.113549.1.1.2") +szOID_RSA_MD4RSA = make_flag("szOID_RSA_MD4RSA", "1.2.840.113549.1.1.3") +szOID_RSA_MD5RSA = make_flag("szOID_RSA_MD5RSA", "1.2.840.113549.1.1.4") +szOID_RSA_SHA1RSA = make_flag("szOID_RSA_SHA1RSA", "1.2.840.113549.1.1.5") +szOID_RSA_SETOAEP_RSA = make_flag("szOID_RSA_SETOAEP_RSA", "1.2.840.113549.1.1.6") +szOID_RSAES_OAEP = make_flag("szOID_RSAES_OAEP", "1.2.840.113549.1.1.7") +szOID_RSA_MGF1 = make_flag("szOID_RSA_MGF1", "1.2.840.113549.1.1.8") +szOID_RSA_PSPECIFIED = make_flag("szOID_RSA_PSPECIFIED", "1.2.840.113549.1.1.9") +szOID_RSA_SSA_PSS = make_flag("szOID_RSA_SSA_PSS", "1.2.840.113549.1.1.10") +szOID_RSA_SHA256RSA = make_flag("szOID_RSA_SHA256RSA", "1.2.840.113549.1.1.11") +szOID_RSA_SHA384RSA = make_flag("szOID_RSA_SHA384RSA", "1.2.840.113549.1.1.12") +szOID_RSA_SHA512RSA = make_flag("szOID_RSA_SHA512RSA", "1.2.840.113549.1.1.13") +szOID_RSA_DH = make_flag("szOID_RSA_DH", "1.2.840.113549.1.3.1") +szOID_RSA_data = make_flag("szOID_RSA_data", "1.2.840.113549.1.7.1") +szOID_RSA_signedData = make_flag("szOID_RSA_signedData", "1.2.840.113549.1.7.2") +szOID_RSA_envelopedData = make_flag("szOID_RSA_envelopedData", "1.2.840.113549.1.7.3") +szOID_RSA_signEnvData = make_flag("szOID_RSA_signEnvData", "1.2.840.113549.1.7.4") +szOID_RSA_digestedData = make_flag("szOID_RSA_digestedData", "1.2.840.113549.1.7.5") +szOID_RSA_hashedData = make_flag("szOID_RSA_hashedData", "1.2.840.113549.1.7.5") +szOID_RSA_encryptedData = make_flag("szOID_RSA_encryptedData", "1.2.840.113549.1.7.6") +szOID_RSA_emailAddr = make_flag("szOID_RSA_emailAddr", "1.2.840.113549.1.9.1") +szOID_RSA_unstructName = make_flag("szOID_RSA_unstructName", "1.2.840.113549.1.9.2") +szOID_RSA_contentType = make_flag("szOID_RSA_contentType", "1.2.840.113549.1.9.3") +szOID_RSA_messageDigest = make_flag("szOID_RSA_messageDigest", "1.2.840.113549.1.9.4") +szOID_RSA_signingTime = make_flag("szOID_RSA_signingTime", "1.2.840.113549.1.9.5") +szOID_RSA_counterSign = make_flag("szOID_RSA_counterSign", "1.2.840.113549.1.9.6") +szOID_RSA_challengePwd = make_flag("szOID_RSA_challengePwd", "1.2.840.113549.1.9.7") +szOID_RSA_unstructAddr = make_flag("szOID_RSA_unstructAddr", "1.2.840.113549.1.9.8") +szOID_RSA_extCertAttrs = make_flag("szOID_RSA_extCertAttrs", "1.2.840.113549.1.9.9") +szOID_RSA_certExtensions = make_flag("szOID_RSA_certExtensions", "1.2.840.113549.1.9.14") +szOID_RSA_SMIMECapabilities = make_flag("szOID_RSA_SMIMECapabilities", "1.2.840.113549.1.9.15") +szOID_RSA_preferSignedData = make_flag("szOID_RSA_preferSignedData", "1.2.840.113549.1.9.15.1") +szOID_TIMESTAMP_TOKEN = make_flag("szOID_TIMESTAMP_TOKEN", "1.2.840.113549.1.9.16.1.4") +szOID_RFC3161_counterSign = make_flag("szOID_RFC3161_counterSign", "1.3.6.1.4.1.311.3.3.1") +szOID_RSA_SMIMEalg = make_flag("szOID_RSA_SMIMEalg", "1.2.840.113549.1.9.16.3") +szOID_RSA_SMIMEalgESDH = make_flag("szOID_RSA_SMIMEalgESDH", "1.2.840.113549.1.9.16.3.5") +szOID_RSA_SMIMEalgCMS3DESwrap = make_flag("szOID_RSA_SMIMEalgCMS3DESwrap", "1.2.840.113549.1.9.16.3.6") +szOID_RSA_SMIMEalgCMSRC2wrap = make_flag("szOID_RSA_SMIMEalgCMSRC2wrap", "1.2.840.113549.1.9.16.3.7") +szOID_RSA_MD2 = make_flag("szOID_RSA_MD2", "1.2.840.113549.2.2") +szOID_RSA_MD4 = make_flag("szOID_RSA_MD4", "1.2.840.113549.2.4") +szOID_RSA_MD5 = make_flag("szOID_RSA_MD5", "1.2.840.113549.2.5") +szOID_RSA_RC2CBC = make_flag("szOID_RSA_RC2CBC", "1.2.840.113549.3.2") +szOID_RSA_RC4 = make_flag("szOID_RSA_RC4", "1.2.840.113549.3.4") +szOID_RSA_DES_EDE3_CBC = make_flag("szOID_RSA_DES_EDE3_CBC", "1.2.840.113549.3.7") +szOID_RSA_RC5_CBCPad = make_flag("szOID_RSA_RC5_CBCPad", "1.2.840.113549.3.9") +szOID_ANSI_X942 = make_flag("szOID_ANSI_X942", "1.2.840.10046") +szOID_ANSI_X942_DH = make_flag("szOID_ANSI_X942_DH", "1.2.840.10046.2.1") +szOID_X957 = make_flag("szOID_X957", "1.2.840.10040") +szOID_X957_DSA = make_flag("szOID_X957_DSA", "1.2.840.10040.4.1") +szOID_X957_SHA1DSA = make_flag("szOID_X957_SHA1DSA", "1.2.840.10040.4.3") +szOID_ECC_PUBLIC_KEY = make_flag("szOID_ECC_PUBLIC_KEY", "1.2.840.10045.2.1") +szOID_ECC_CURVE_P256 = make_flag("szOID_ECC_CURVE_P256", "1.2.840.10045.3.1.7") +szOID_ECC_CURVE_P384 = make_flag("szOID_ECC_CURVE_P384", "1.3.132.0.34") +szOID_ECC_CURVE_P521 = make_flag("szOID_ECC_CURVE_P521", "1.3.132.0.35") +szOID_ECDSA_SHA1 = make_flag("szOID_ECDSA_SHA1", "1.2.840.10045.4.1") +szOID_ECDSA_SPECIFIED = make_flag("szOID_ECDSA_SPECIFIED", "1.2.840.10045.4.3") +szOID_ECDSA_SHA256 = make_flag("szOID_ECDSA_SHA256", "1.2.840.10045.4.3.2") +szOID_ECDSA_SHA384 = make_flag("szOID_ECDSA_SHA384", "1.2.840.10045.4.3.3") +szOID_ECDSA_SHA512 = make_flag("szOID_ECDSA_SHA512", "1.2.840.10045.4.3.4") +szOID_NIST_AES128_CBC = make_flag("szOID_NIST_AES128_CBC", "2.16.840.1.101.3.4.1.2") +szOID_NIST_AES192_CBC = make_flag("szOID_NIST_AES192_CBC", "2.16.840.1.101.3.4.1.22") +szOID_NIST_AES256_CBC = make_flag("szOID_NIST_AES256_CBC", "2.16.840.1.101.3.4.1.42") +szOID_NIST_AES128_WRAP = make_flag("szOID_NIST_AES128_WRAP", "2.16.840.1.101.3.4.1.5") +szOID_NIST_AES192_WRAP = make_flag("szOID_NIST_AES192_WRAP", "2.16.840.1.101.3.4.1.25") +szOID_NIST_AES256_WRAP = make_flag("szOID_NIST_AES256_WRAP", "2.16.840.1.101.3.4.1.45") +szOID_DH_SINGLE_PASS_STDDH_SHA1_KDF = make_flag("szOID_DH_SINGLE_PASS_STDDH_SHA1_KDF", "1.3.133.16.840.63.0.2") +szOID_DH_SINGLE_PASS_STDDH_SHA256_KDF = make_flag("szOID_DH_SINGLE_PASS_STDDH_SHA256_KDF", "1.3.132.1.11.1") +szOID_DH_SINGLE_PASS_STDDH_SHA384_KDF = make_flag("szOID_DH_SINGLE_PASS_STDDH_SHA384_KDF", "1.3.132.1.11.2") +szOID_DS = make_flag("szOID_DS", "2.5") +szOID_DSALG = make_flag("szOID_DSALG", "2.5.8") +szOID_DSALG_CRPT = make_flag("szOID_DSALG_CRPT", "2.5.8.1") +szOID_DSALG_HASH = make_flag("szOID_DSALG_HASH", "2.5.8.2") +szOID_DSALG_SIGN = make_flag("szOID_DSALG_SIGN", "2.5.8.3") +szOID_DSALG_RSA = make_flag("szOID_DSALG_RSA", "2.5.8.1.1") +szOID_OIW = make_flag("szOID_OIW", "1.3.14") +szOID_OIWSEC = make_flag("szOID_OIWSEC", "1.3.14.3.2") +szOID_OIWSEC_md4RSA = make_flag("szOID_OIWSEC_md4RSA", "1.3.14.3.2.2") +szOID_OIWSEC_md5RSA = make_flag("szOID_OIWSEC_md5RSA", "1.3.14.3.2.3") +szOID_OIWSEC_md4RSA2 = make_flag("szOID_OIWSEC_md4RSA2", "1.3.14.3.2.4") +szOID_OIWSEC_desECB = make_flag("szOID_OIWSEC_desECB", "1.3.14.3.2.6") +szOID_OIWSEC_desCBC = make_flag("szOID_OIWSEC_desCBC", "1.3.14.3.2.7") +szOID_OIWSEC_desOFB = make_flag("szOID_OIWSEC_desOFB", "1.3.14.3.2.8") +szOID_OIWSEC_desCFB = make_flag("szOID_OIWSEC_desCFB", "1.3.14.3.2.9") +szOID_OIWSEC_desMAC = make_flag("szOID_OIWSEC_desMAC", "1.3.14.3.2.10") +szOID_OIWSEC_rsaSign = make_flag("szOID_OIWSEC_rsaSign", "1.3.14.3.2.11") +szOID_OIWSEC_dsa = make_flag("szOID_OIWSEC_dsa", "1.3.14.3.2.12") +szOID_OIWSEC_shaDSA = make_flag("szOID_OIWSEC_shaDSA", "1.3.14.3.2.13") +szOID_OIWSEC_mdc2RSA = make_flag("szOID_OIWSEC_mdc2RSA", "1.3.14.3.2.14") +szOID_OIWSEC_shaRSA = make_flag("szOID_OIWSEC_shaRSA", "1.3.14.3.2.15") +szOID_OIWSEC_dhCommMod = make_flag("szOID_OIWSEC_dhCommMod", "1.3.14.3.2.16") +szOID_OIWSEC_desEDE = make_flag("szOID_OIWSEC_desEDE", "1.3.14.3.2.17") +szOID_OIWSEC_sha = make_flag("szOID_OIWSEC_sha", "1.3.14.3.2.18") +szOID_OIWSEC_mdc2 = make_flag("szOID_OIWSEC_mdc2", "1.3.14.3.2.19") +szOID_OIWSEC_dsaComm = make_flag("szOID_OIWSEC_dsaComm", "1.3.14.3.2.20") +szOID_OIWSEC_dsaCommSHA = make_flag("szOID_OIWSEC_dsaCommSHA", "1.3.14.3.2.21") +szOID_OIWSEC_rsaXchg = make_flag("szOID_OIWSEC_rsaXchg", "1.3.14.3.2.22") +szOID_OIWSEC_keyHashSeal = make_flag("szOID_OIWSEC_keyHashSeal", "1.3.14.3.2.23") +szOID_OIWSEC_md2RSASign = make_flag("szOID_OIWSEC_md2RSASign", "1.3.14.3.2.24") +szOID_OIWSEC_md5RSASign = make_flag("szOID_OIWSEC_md5RSASign", "1.3.14.3.2.25") +szOID_OIWSEC_sha1 = make_flag("szOID_OIWSEC_sha1", "1.3.14.3.2.26") +szOID_OIWSEC_dsaSHA1 = make_flag("szOID_OIWSEC_dsaSHA1", "1.3.14.3.2.27") +szOID_OIWSEC_dsaCommSHA1 = make_flag("szOID_OIWSEC_dsaCommSHA1", "1.3.14.3.2.28") +szOID_OIWSEC_sha1RSASign = make_flag("szOID_OIWSEC_sha1RSASign", "1.3.14.3.2.29") +szOID_OIWDIR = make_flag("szOID_OIWDIR", "1.3.14.7.2") +szOID_OIWDIR_CRPT = make_flag("szOID_OIWDIR_CRPT", "1.3.14.7.2.1") +szOID_OIWDIR_HASH = make_flag("szOID_OIWDIR_HASH", "1.3.14.7.2.2") +szOID_OIWDIR_SIGN = make_flag("szOID_OIWDIR_SIGN", "1.3.14.7.2.3") +szOID_OIWDIR_md2 = make_flag("szOID_OIWDIR_md2", "1.3.14.7.2.2.1") +szOID_OIWDIR_md2RSA = make_flag("szOID_OIWDIR_md2RSA", "1.3.14.7.2.3.1") +szOID_INFOSEC = make_flag("szOID_INFOSEC", "2.16.840.1.101.2.1") +szOID_INFOSEC_sdnsSignature = make_flag("szOID_INFOSEC_sdnsSignature", "2.16.840.1.101.2.1.1.1") +szOID_INFOSEC_mosaicSignature = make_flag("szOID_INFOSEC_mosaicSignature", "2.16.840.1.101.2.1.1.2") +szOID_INFOSEC_sdnsConfidentiality = make_flag("szOID_INFOSEC_sdnsConfidentiality", "2.16.840.1.101.2.1.1.3") +szOID_INFOSEC_mosaicConfidentiality = make_flag("szOID_INFOSEC_mosaicConfidentiality", "2.16.840.1.101.2.1.1.4") +szOID_INFOSEC_sdnsIntegrity = make_flag("szOID_INFOSEC_sdnsIntegrity", "2.16.840.1.101.2.1.1.5") +szOID_INFOSEC_mosaicIntegrity = make_flag("szOID_INFOSEC_mosaicIntegrity", "2.16.840.1.101.2.1.1.6") +szOID_INFOSEC_sdnsTokenProtection = make_flag("szOID_INFOSEC_sdnsTokenProtection", "2.16.840.1.101.2.1.1.7") +szOID_INFOSEC_mosaicTokenProtection = make_flag("szOID_INFOSEC_mosaicTokenProtection", "2.16.840.1.101.2.1.1.8") +szOID_INFOSEC_sdnsKeyManagement = make_flag("szOID_INFOSEC_sdnsKeyManagement", "2.16.840.1.101.2.1.1.9") +szOID_INFOSEC_mosaicKeyManagement = make_flag("szOID_INFOSEC_mosaicKeyManagement", "2.16.840.1.101.2.1.1.10") +szOID_INFOSEC_sdnsKMandSig = make_flag("szOID_INFOSEC_sdnsKMandSig", "2.16.840.1.101.2.1.1.11") +szOID_INFOSEC_mosaicKMandSig = make_flag("szOID_INFOSEC_mosaicKMandSig", "2.16.840.1.101.2.1.1.12") +szOID_INFOSEC_SuiteASignature = make_flag("szOID_INFOSEC_SuiteASignature", "2.16.840.1.101.2.1.1.13") +szOID_INFOSEC_SuiteAConfidentiality = make_flag("szOID_INFOSEC_SuiteAConfidentiality", "2.16.840.1.101.2.1.1.14") +szOID_INFOSEC_SuiteAIntegrity = make_flag("szOID_INFOSEC_SuiteAIntegrity", "2.16.840.1.101.2.1.1.15") +szOID_INFOSEC_SuiteATokenProtection = make_flag("szOID_INFOSEC_SuiteATokenProtection", "2.16.840.1.101.2.1.1.16") +szOID_INFOSEC_SuiteAKeyManagement = make_flag("szOID_INFOSEC_SuiteAKeyManagement", "2.16.840.1.101.2.1.1.17") +szOID_INFOSEC_SuiteAKMandSig = make_flag("szOID_INFOSEC_SuiteAKMandSig", "2.16.840.1.101.2.1.1.18") +szOID_INFOSEC_mosaicUpdatedSig = make_flag("szOID_INFOSEC_mosaicUpdatedSig", "2.16.840.1.101.2.1.1.19") +szOID_INFOSEC_mosaicKMandUpdSig = make_flag("szOID_INFOSEC_mosaicKMandUpdSig", "2.16.840.1.101.2.1.1.20") +szOID_INFOSEC_mosaicUpdatedInteg = make_flag("szOID_INFOSEC_mosaicUpdatedInteg", "2.16.840.1.101.2.1.1.21") +szOID_NIST_sha256 = make_flag("szOID_NIST_sha256", "2.16.840.1.101.3.4.2.1") +szOID_NIST_sha384 = make_flag("szOID_NIST_sha384", "2.16.840.1.101.3.4.2.2") +szOID_NIST_sha512 = make_flag("szOID_NIST_sha512", "2.16.840.1.101.3.4.2.3") +CRYPT_E_NOT_FOUND = make_flag("CRYPT_E_NOT_FOUND", ( 0x80092004 )) +CERT_STORE_NO_CRYPT_RELEASE_FLAG = make_flag("CERT_STORE_NO_CRYPT_RELEASE_FLAG", 0x00000001) +CERT_STORE_SET_LOCALIZED_NAME_FLAG = make_flag("CERT_STORE_SET_LOCALIZED_NAME_FLAG", 0x00000002) +CERT_STORE_DEFER_CLOSE_UNTIL_LAST_FREE_FLAG = make_flag("CERT_STORE_DEFER_CLOSE_UNTIL_LAST_FREE_FLAG", 0x00000004) +CERT_STORE_DELETE_FLAG = make_flag("CERT_STORE_DELETE_FLAG", 0x00000010) +CERT_STORE_UNSAFE_PHYSICAL_FLAG = make_flag("CERT_STORE_UNSAFE_PHYSICAL_FLAG", 0x00000020) +CERT_STORE_SHARE_STORE_FLAG = make_flag("CERT_STORE_SHARE_STORE_FLAG", 0x00000040) +CERT_STORE_SHARE_CONTEXT_FLAG = make_flag("CERT_STORE_SHARE_CONTEXT_FLAG", 0x00000080) +CERT_STORE_MANIFOLD_FLAG = make_flag("CERT_STORE_MANIFOLD_FLAG", 0x00000100) +CERT_STORE_ENUM_ARCHIVED_FLAG = make_flag("CERT_STORE_ENUM_ARCHIVED_FLAG", 0x00000200) +CERT_STORE_UPDATE_KEYID_FLAG = make_flag("CERT_STORE_UPDATE_KEYID_FLAG", 0x00000400) +CERT_STORE_BACKUP_RESTORE_FLAG = make_flag("CERT_STORE_BACKUP_RESTORE_FLAG", 0x00000800) +CERT_STORE_READONLY_FLAG = make_flag("CERT_STORE_READONLY_FLAG", 0x00008000) +CERT_STORE_OPEN_EXISTING_FLAG = make_flag("CERT_STORE_OPEN_EXISTING_FLAG", 0x00004000) +CERT_STORE_CREATE_NEW_FLAG = make_flag("CERT_STORE_CREATE_NEW_FLAG", 0x00002000) +CERT_STORE_MAXIMUM_ALLOWED_FLAG = make_flag("CERT_STORE_MAXIMUM_ALLOWED_FLAG", 0x00001000) +CRYPT_USER_KEYSET = make_flag("CRYPT_USER_KEYSET", 0x00001000) +PKCS12_PREFER_CNG_KSP = make_flag("PKCS12_PREFER_CNG_KSP", 0x00000100) +PKCS12_ALWAYS_CNG_KSP = make_flag("PKCS12_ALWAYS_CNG_KSP", 0x00000200) +PKCS12_ALLOW_OVERWRITE_KEY = make_flag("PKCS12_ALLOW_OVERWRITE_KEY", 0x00004000) +PKCS12_NO_PERSIST_KEY = make_flag("PKCS12_NO_PERSIST_KEY", 0x00008000) +CRYPT_VERIFYCONTEXT = make_flag("CRYPT_VERIFYCONTEXT", 0xF0000000) +CRYPT_NEWKEYSET = make_flag("CRYPT_NEWKEYSET", 0x00000008) +CRYPT_DELETEKEYSET = make_flag("CRYPT_DELETEKEYSET", 0x00000010) +CRYPT_MACHINE_KEYSET = make_flag("CRYPT_MACHINE_KEYSET", 0x00000020) +CRYPT_SILENT = make_flag("CRYPT_SILENT", 0x00000040) +CRYPT_DEFAULT_CONTAINER_OPTIONAL = make_flag("CRYPT_DEFAULT_CONTAINER_OPTIONAL", 0x00000080) +CRYPT_EXPORTABLE = make_flag("CRYPT_EXPORTABLE", 0x00000001) +CRYPT_USER_PROTECTED = make_flag("CRYPT_USER_PROTECTED", 0x00000002) +CRYPT_CREATE_SALT = make_flag("CRYPT_CREATE_SALT", 0x00000004) +CRYPT_UPDATE_KEY = make_flag("CRYPT_UPDATE_KEY", 0x00000008) +CRYPT_NO_SALT = make_flag("CRYPT_NO_SALT", 0x00000010) +CRYPT_PREGEN = make_flag("CRYPT_PREGEN", 0x00000040) +CRYPT_RECIPIENT = make_flag("CRYPT_RECIPIENT", 0x00000010) +CRYPT_INITIATOR = make_flag("CRYPT_INITIATOR", 0x00000040) +CRYPT_ONLINE = make_flag("CRYPT_ONLINE", 0x00000080) +CRYPT_SF = make_flag("CRYPT_SF", 0x00000100) +CRYPT_CREATE_IV = make_flag("CRYPT_CREATE_IV", 0x00000200) +CRYPT_KEK = make_flag("CRYPT_KEK", 0x00000400) +CRYPT_DATA_KEY = make_flag("CRYPT_DATA_KEY", 0x00000800) +CRYPT_VOLATILE = make_flag("CRYPT_VOLATILE", 0x00001000) +CRYPT_SGCKEY = make_flag("CRYPT_SGCKEY", 0x00002000) +CRYPT_ARCHIVABLE = make_flag("CRYPT_ARCHIVABLE", 0x00004000) +CRYPT_FORCE_KEY_PROTECTION_HIGH = make_flag("CRYPT_FORCE_KEY_PROTECTION_HIGH", 0x00008000) +CRYPT_ENCODE_DECODE_NONE = make_flag("CRYPT_ENCODE_DECODE_NONE", 0) +X509_CERT = make_flag("X509_CERT", ( 1 )) +X509_CERT_TO_BE_SIGNED = make_flag("X509_CERT_TO_BE_SIGNED", ( 2 )) +X509_CERT_CRL_TO_BE_SIGNED = make_flag("X509_CERT_CRL_TO_BE_SIGNED", ( 3 )) +X509_CERT_REQUEST_TO_BE_SIGNED = make_flag("X509_CERT_REQUEST_TO_BE_SIGNED", ( 4 )) +X509_EXTENSIONS = make_flag("X509_EXTENSIONS", ( 5 )) +X509_NAME_VALUE = make_flag("X509_NAME_VALUE", ( 6 )) +X509_NAME = make_flag("X509_NAME", ( 7 )) +X509_PUBLIC_KEY_INFO = make_flag("X509_PUBLIC_KEY_INFO", ( 8 )) +X509_AUTHORITY_KEY_ID = make_flag("X509_AUTHORITY_KEY_ID", ( 9 )) +X509_KEY_ATTRIBUTES = make_flag("X509_KEY_ATTRIBUTES", ( 10 )) +X509_KEY_USAGE_RESTRICTION = make_flag("X509_KEY_USAGE_RESTRICTION", ( 11 )) +X509_ALTERNATE_NAME = make_flag("X509_ALTERNATE_NAME", ( 12 )) +X509_BASIC_CONSTRAINTS = make_flag("X509_BASIC_CONSTRAINTS", ( 13 )) +X509_KEY_USAGE = make_flag("X509_KEY_USAGE", ( 14 )) +X509_BASIC_CONSTRAINTS2 = make_flag("X509_BASIC_CONSTRAINTS2", ( 15 )) +X509_CERT_POLICIES = make_flag("X509_CERT_POLICIES", ( 16 )) +PKCS_UTC_TIME = make_flag("PKCS_UTC_TIME", ( 17 )) +PKCS_TIME_REQUEST = make_flag("PKCS_TIME_REQUEST", ( 18 )) +RSA_CSP_PUBLICKEYBLOB = make_flag("RSA_CSP_PUBLICKEYBLOB", ( 19 )) +X509_UNICODE_NAME = make_flag("X509_UNICODE_NAME", ( 20 )) +X509_KEYGEN_REQUEST_TO_BE_SIGNED = make_flag("X509_KEYGEN_REQUEST_TO_BE_SIGNED", ( 21 )) +PKCS_ATTRIBUTE = make_flag("PKCS_ATTRIBUTE", ( 22 )) +PKCS_CONTENT_INFO_SEQUENCE_OF_ANY = make_flag("PKCS_CONTENT_INFO_SEQUENCE_OF_ANY", ( 23 )) +X509_UNICODE_NAME_VALUE = make_flag("X509_UNICODE_NAME_VALUE", ( 24 )) +X509_ANY_STRING = make_flag("X509_ANY_STRING", X509_NAME_VALUE) +X509_UNICODE_ANY_STRING = make_flag("X509_UNICODE_ANY_STRING", X509_UNICODE_NAME_VALUE) +X509_OCTET_STRING = make_flag("X509_OCTET_STRING", ( 25 )) +X509_BITS = make_flag("X509_BITS", ( 26 )) +X509_INTEGER = make_flag("X509_INTEGER", ( 27 )) +X509_MULTI_BYTE_INTEGER = make_flag("X509_MULTI_BYTE_INTEGER", ( 28 )) +X509_ENUMERATED = make_flag("X509_ENUMERATED", ( 29 )) +X509_CHOICE_OF_TIME = make_flag("X509_CHOICE_OF_TIME", ( 30 )) +CERT_SIMPLE_NAME_STR = make_flag("CERT_SIMPLE_NAME_STR", 1) +CERT_OID_NAME_STR = make_flag("CERT_OID_NAME_STR", 2) +CERT_X500_NAME_STR = make_flag("CERT_X500_NAME_STR", 3) +CERT_XML_NAME_STR = make_flag("CERT_XML_NAME_STR", 4) +AT_KEYEXCHANGE = make_flag("AT_KEYEXCHANGE", 1) +AT_SIGNATURE = make_flag("AT_SIGNATURE", 2) +MS_DEF_PROV_A = make_flag("MS_DEF_PROV_A", "Microsoft Base Cryptographic Provider v1.0") +MS_DEF_PROV_W = make_flag("MS_DEF_PROV_W", u"Microsoft Base Cryptographic Provider v1.0") +MS_DEF_PROV = make_flag("MS_DEF_PROV", MS_DEF_PROV_A) +MS_ENHANCED_PROV_A = make_flag("MS_ENHANCED_PROV_A", "Microsoft Enhanced Cryptographic Provider v1.0") +MS_ENHANCED_PROV_W = make_flag("MS_ENHANCED_PROV_W", u"Microsoft Enhanced Cryptographic Provider v1.0") +MS_ENHANCED_PROV = make_flag("MS_ENHANCED_PROV", MS_ENHANCED_PROV_A) +MS_STRONG_PROV_A = make_flag("MS_STRONG_PROV_A", "Microsoft Strong Cryptographic Provider") +MS_STRONG_PROV_W = make_flag("MS_STRONG_PROV_W", u"Microsoft Strong Cryptographic Provider") +MS_STRONG_PROV = make_flag("MS_STRONG_PROV", MS_STRONG_PROV_A) +MS_DEF_RSA_SIG_PROV_A = make_flag("MS_DEF_RSA_SIG_PROV_A", "Microsoft RSA Signature Cryptographic Provider") +MS_DEF_RSA_SIG_PROV_W = make_flag("MS_DEF_RSA_SIG_PROV_W", u"Microsoft RSA Signature Cryptographic Provider") +MS_DEF_RSA_SIG_PROV = make_flag("MS_DEF_RSA_SIG_PROV", MS_DEF_RSA_SIG_PROV_W) +CERT_STORE_ADD_NEW = make_flag("CERT_STORE_ADD_NEW", 1) +CERT_STORE_ADD_USE_EXISTING = make_flag("CERT_STORE_ADD_USE_EXISTING", 2) +CERT_STORE_ADD_REPLACE_EXISTING = make_flag("CERT_STORE_ADD_REPLACE_EXISTING", 3) +CERT_STORE_ADD_ALWAYS = make_flag("CERT_STORE_ADD_ALWAYS", 4) +CERT_STORE_ADD_REPLACE_EXISTING_INHERIT_PROPERTIES = make_flag("CERT_STORE_ADD_REPLACE_EXISTING_INHERIT_PROPERTIES", 5) +CERT_STORE_ADD_NEWER = make_flag("CERT_STORE_ADD_NEWER", 6) +CERT_STORE_ADD_NEWER_INHERIT_PROPERTIES = make_flag("CERT_STORE_ADD_NEWER_INHERIT_PROPERTIES", 7) +PROV_RSA_FULL = make_flag("PROV_RSA_FULL", 1) +PROV_RSA_SIG = make_flag("PROV_RSA_SIG", 2) +PROV_DSS = make_flag("PROV_DSS", 3) +PROV_FORTEZZA = make_flag("PROV_FORTEZZA", 4) +PROV_MS_EXCHANGE = make_flag("PROV_MS_EXCHANGE", 5) +PROV_SSL = make_flag("PROV_SSL", 6) +PROV_RSA_SCHANNEL = make_flag("PROV_RSA_SCHANNEL", 12) +PROV_DSS_DH = make_flag("PROV_DSS_DH", 13) +PROV_EC_ECDSA_SIG = make_flag("PROV_EC_ECDSA_SIG", 14) +PROV_EC_ECNRA_SIG = make_flag("PROV_EC_ECNRA_SIG", 15) +PROV_EC_ECDSA_FULL = make_flag("PROV_EC_ECDSA_FULL", 16) +PROV_EC_ECNRA_FULL = make_flag("PROV_EC_ECNRA_FULL", 17) +PROV_DH_SCHANNEL = make_flag("PROV_DH_SCHANNEL", 18) +PROV_SPYRUS_LYNKS = make_flag("PROV_SPYRUS_LYNKS", 20) +PROV_RNG = make_flag("PROV_RNG", 21) +PROV_INTEL_SEC = make_flag("PROV_INTEL_SEC", 22) +PROV_REPLACE_OWF = make_flag("PROV_REPLACE_OWF", 23) +PROV_RSA_AES = make_flag("PROV_RSA_AES", 24) +REPORT_NO_PRIVATE_KEY = make_flag("REPORT_NO_PRIVATE_KEY", 0x0001) +REPORT_NOT_ABLE_TO_EXPORT_PRIVATE_KEY = make_flag("REPORT_NOT_ABLE_TO_EXPORT_PRIVATE_KEY", 0x0002) +EXPORT_PRIVATE_KEYS = make_flag("EXPORT_PRIVATE_KEYS", 0x0004) +PKCS12_INCLUDE_EXTENDED_PROPERTIES = make_flag("PKCS12_INCLUDE_EXTENDED_PROPERTIES", 0x0010) +PKCS12_EXPORT_RESERVED_MASK = make_flag("PKCS12_EXPORT_RESERVED_MASK", 0xffff0000) +CERT_SYSTEM_STORE_UNPROTECTED_FLAG = make_flag("CERT_SYSTEM_STORE_UNPROTECTED_FLAG", 0x40000000) +CERT_SYSTEM_STORE_LOCATION_MASK = make_flag("CERT_SYSTEM_STORE_LOCATION_MASK", 0x00FF0000) +CERT_SYSTEM_STORE_LOCATION_SHIFT = make_flag("CERT_SYSTEM_STORE_LOCATION_SHIFT", 16) +CERT_SYSTEM_STORE_CURRENT_USER_ID = make_flag("CERT_SYSTEM_STORE_CURRENT_USER_ID", 1) +CERT_SYSTEM_STORE_LOCAL_MACHINE_ID = make_flag("CERT_SYSTEM_STORE_LOCAL_MACHINE_ID", 2) +CERT_SYSTEM_STORE_CURRENT_SERVICE_ID = make_flag("CERT_SYSTEM_STORE_CURRENT_SERVICE_ID", 4) +CERT_SYSTEM_STORE_SERVICES_ID = make_flag("CERT_SYSTEM_STORE_SERVICES_ID", 5) +CERT_SYSTEM_STORE_USERS_ID = make_flag("CERT_SYSTEM_STORE_USERS_ID", 6) +CERT_SYSTEM_STORE_CURRENT_USER_GROUP_POLICY_ID = make_flag("CERT_SYSTEM_STORE_CURRENT_USER_GROUP_POLICY_ID", 7) +CERT_SYSTEM_STORE_LOCAL_MACHINE_GROUP_POLICY_ID = make_flag("CERT_SYSTEM_STORE_LOCAL_MACHINE_GROUP_POLICY_ID", 8) +CERT_SYSTEM_STORE_LOCAL_MACHINE_ENTERPRISE_ID = make_flag("CERT_SYSTEM_STORE_LOCAL_MACHINE_ENTERPRISE_ID", 9) +CERT_SYSTEM_STORE_CURRENT_USER = make_flag("CERT_SYSTEM_STORE_CURRENT_USER", ( CERT_SYSTEM_STORE_CURRENT_USER_ID << CERT_SYSTEM_STORE_LOCATION_SHIFT )) +CERT_SYSTEM_STORE_LOCAL_MACHINE = make_flag("CERT_SYSTEM_STORE_LOCAL_MACHINE", ( CERT_SYSTEM_STORE_LOCAL_MACHINE_ID << CERT_SYSTEM_STORE_LOCATION_SHIFT )) +CERT_SYSTEM_STORE_CURRENT_SERVICE = make_flag("CERT_SYSTEM_STORE_CURRENT_SERVICE", ( CERT_SYSTEM_STORE_CURRENT_SERVICE_ID << CERT_SYSTEM_STORE_LOCATION_SHIFT )) +CERT_SYSTEM_STORE_SERVICES = make_flag("CERT_SYSTEM_STORE_SERVICES", ( CERT_SYSTEM_STORE_SERVICES_ID << CERT_SYSTEM_STORE_LOCATION_SHIFT )) +CERT_SYSTEM_STORE_USERS = make_flag("CERT_SYSTEM_STORE_USERS", ( CERT_SYSTEM_STORE_USERS_ID << CERT_SYSTEM_STORE_LOCATION_SHIFT )) +CERT_SYSTEM_STORE_CURRENT_USER_GROUP_POLICY = make_flag("CERT_SYSTEM_STORE_CURRENT_USER_GROUP_POLICY", ( CERT_SYSTEM_STORE_CURRENT_USER_GROUP_POLICY_ID << CERT_SYSTEM_STORE_LOCATION_SHIFT )) +CERT_SYSTEM_STORE_LOCAL_MACHINE_GROUP_POLICY = make_flag("CERT_SYSTEM_STORE_LOCAL_MACHINE_GROUP_POLICY", ( CERT_SYSTEM_STORE_LOCAL_MACHINE_GROUP_POLICY_ID << CERT_SYSTEM_STORE_LOCATION_SHIFT )) +CERT_SYSTEM_STORE_LOCAL_MACHINE_ENTERPRISE = make_flag("CERT_SYSTEM_STORE_LOCAL_MACHINE_ENTERPRISE", ( CERT_SYSTEM_STORE_LOCAL_MACHINE_ENTERPRISE_ID << CERT_SYSTEM_STORE_LOCATION_SHIFT )) +ERROR_SUCCESS = make_flag("ERROR_SUCCESS", 0) +ERROR_INVALID_FUNCTION = make_flag("ERROR_INVALID_FUNCTION", 1) +ERROR_FILE_NOT_FOUND = make_flag("ERROR_FILE_NOT_FOUND", 2) +ERROR_PATH_NOT_FOUND = make_flag("ERROR_PATH_NOT_FOUND", 3) +ERROR_TOO_MANY_OPEN_FILES = make_flag("ERROR_TOO_MANY_OPEN_FILES", 4) +ERROR_ACCESS_DENIED = make_flag("ERROR_ACCESS_DENIED", 5) +ERROR_INVALID_HANDLE = make_flag("ERROR_INVALID_HANDLE", 6) +ERROR_ARENA_TRASHED = make_flag("ERROR_ARENA_TRASHED", 7) +ERROR_NOT_ENOUGH_MEMORY = make_flag("ERROR_NOT_ENOUGH_MEMORY", 8) +ERROR_INVALID_BLOCK = make_flag("ERROR_INVALID_BLOCK", 9) +ERROR_BAD_ENVIRONMENT = make_flag("ERROR_BAD_ENVIRONMENT", 10) +ERROR_BAD_FORMAT = make_flag("ERROR_BAD_FORMAT", 11) +ERROR_INVALID_ACCESS = make_flag("ERROR_INVALID_ACCESS", 12) +ERROR_INVALID_DATA = make_flag("ERROR_INVALID_DATA", 13) +ERROR_OUTOFMEMORY = make_flag("ERROR_OUTOFMEMORY", 14) +ERROR_INVALID_DRIVE = make_flag("ERROR_INVALID_DRIVE", 15) +ERROR_CURRENT_DIRECTORY = make_flag("ERROR_CURRENT_DIRECTORY", 16) +ERROR_NOT_SAME_DEVICE = make_flag("ERROR_NOT_SAME_DEVICE", 17) +ERROR_NO_MORE_FILES = make_flag("ERROR_NO_MORE_FILES", 18) +ERROR_WRITE_PROTECT = make_flag("ERROR_WRITE_PROTECT", 19) +ERROR_BAD_UNIT = make_flag("ERROR_BAD_UNIT", 20) +ERROR_NOT_READY = make_flag("ERROR_NOT_READY", 21) +ERROR_BAD_COMMAND = make_flag("ERROR_BAD_COMMAND", 22) +ERROR_CRC = make_flag("ERROR_CRC", 23) +ERROR_BAD_LENGTH = make_flag("ERROR_BAD_LENGTH", 24) +ERROR_SEEK = make_flag("ERROR_SEEK", 25) +ERROR_NOT_DOS_DISK = make_flag("ERROR_NOT_DOS_DISK", 26) +ERROR_SECTOR_NOT_FOUND = make_flag("ERROR_SECTOR_NOT_FOUND", 27) +ERROR_OUT_OF_PAPER = make_flag("ERROR_OUT_OF_PAPER", 28) +ERROR_WRITE_FAULT = make_flag("ERROR_WRITE_FAULT", 29) +ERROR_READ_FAULT = make_flag("ERROR_READ_FAULT", 30) +ERROR_GEN_FAILURE = make_flag("ERROR_GEN_FAILURE", 31) +ERROR_SHARING_VIOLATION = make_flag("ERROR_SHARING_VIOLATION", 32) +ERROR_LOCK_VIOLATION = make_flag("ERROR_LOCK_VIOLATION", 33) +ERROR_WRONG_DISK = make_flag("ERROR_WRONG_DISK", 34) +ERROR_SHARING_BUFFER_EXCEEDED = make_flag("ERROR_SHARING_BUFFER_EXCEEDED", 36) +ERROR_HANDLE_EOF = make_flag("ERROR_HANDLE_EOF", 38) +ERROR_HANDLE_DISK_FULL = make_flag("ERROR_HANDLE_DISK_FULL", 39) +ERROR_NOT_SUPPORTED = make_flag("ERROR_NOT_SUPPORTED", 50) +ERROR_REM_NOT_LIST = make_flag("ERROR_REM_NOT_LIST", 51) +ERROR_DUP_NAME = make_flag("ERROR_DUP_NAME", 52) +ERROR_BAD_NETPATH = make_flag("ERROR_BAD_NETPATH", 53) +ERROR_NETWORK_BUSY = make_flag("ERROR_NETWORK_BUSY", 54) +ERROR_DEV_NOT_EXIST = make_flag("ERROR_DEV_NOT_EXIST", 55) +ERROR_TOO_MANY_CMDS = make_flag("ERROR_TOO_MANY_CMDS", 56) +ERROR_ADAP_HDW_ERR = make_flag("ERROR_ADAP_HDW_ERR", 57) +ERROR_BAD_NET_RESP = make_flag("ERROR_BAD_NET_RESP", 58) +ERROR_UNEXP_NET_ERR = make_flag("ERROR_UNEXP_NET_ERR", 59) +ERROR_BAD_REM_ADAP = make_flag("ERROR_BAD_REM_ADAP", 60) +ERROR_PRINTQ_FULL = make_flag("ERROR_PRINTQ_FULL", 61) +ERROR_NO_SPOOL_SPACE = make_flag("ERROR_NO_SPOOL_SPACE", 62) +ERROR_PRINT_CANCELLED = make_flag("ERROR_PRINT_CANCELLED", 63) +ERROR_NETNAME_DELETED = make_flag("ERROR_NETNAME_DELETED", 64) +ERROR_NETWORK_ACCESS_DENIED = make_flag("ERROR_NETWORK_ACCESS_DENIED", 65) +ERROR_BAD_DEV_TYPE = make_flag("ERROR_BAD_DEV_TYPE", 66) +ERROR_BAD_NET_NAME = make_flag("ERROR_BAD_NET_NAME", 67) +ERROR_TOO_MANY_NAMES = make_flag("ERROR_TOO_MANY_NAMES", 68) +ERROR_TOO_MANY_SESS = make_flag("ERROR_TOO_MANY_SESS", 69) +ERROR_SHARING_PAUSED = make_flag("ERROR_SHARING_PAUSED", 70) +ERROR_REQ_NOT_ACCEP = make_flag("ERROR_REQ_NOT_ACCEP", 71) +ERROR_REDIR_PAUSED = make_flag("ERROR_REDIR_PAUSED", 72) +ERROR_FILE_EXISTS = make_flag("ERROR_FILE_EXISTS", 80) +ERROR_CANNOT_MAKE = make_flag("ERROR_CANNOT_MAKE", 82) +ERROR_FAIL_I24 = make_flag("ERROR_FAIL_I24", 83) +ERROR_OUT_OF_STRUCTURES = make_flag("ERROR_OUT_OF_STRUCTURES", 84) +ERROR_ALREADY_ASSIGNED = make_flag("ERROR_ALREADY_ASSIGNED", 85) +ERROR_INVALID_PASSWORD = make_flag("ERROR_INVALID_PASSWORD", 86) +ERROR_INVALID_PARAMETER = make_flag("ERROR_INVALID_PARAMETER", 87) +ERROR_NET_WRITE_FAULT = make_flag("ERROR_NET_WRITE_FAULT", 88) +ERROR_NO_PROC_SLOTS = make_flag("ERROR_NO_PROC_SLOTS", 89) +ERROR_TOO_MANY_SEMAPHORES = make_flag("ERROR_TOO_MANY_SEMAPHORES", 100) +ERROR_EXCL_SEM_ALREADY_OWNED = make_flag("ERROR_EXCL_SEM_ALREADY_OWNED", 101) +ERROR_SEM_IS_SET = make_flag("ERROR_SEM_IS_SET", 102) +ERROR_TOO_MANY_SEM_REQUESTS = make_flag("ERROR_TOO_MANY_SEM_REQUESTS", 103) +ERROR_INVALID_AT_INTERRUPT_TIME = make_flag("ERROR_INVALID_AT_INTERRUPT_TIME", 104) +ERROR_SEM_OWNER_DIED = make_flag("ERROR_SEM_OWNER_DIED", 105) +ERROR_SEM_USER_LIMIT = make_flag("ERROR_SEM_USER_LIMIT", 106) +ERROR_DISK_CHANGE = make_flag("ERROR_DISK_CHANGE", 107) +ERROR_DRIVE_LOCKED = make_flag("ERROR_DRIVE_LOCKED", 108) +ERROR_BROKEN_PIPE = make_flag("ERROR_BROKEN_PIPE", 109) +ERROR_OPEN_FAILED = make_flag("ERROR_OPEN_FAILED", 110) +ERROR_BUFFER_OVERFLOW = make_flag("ERROR_BUFFER_OVERFLOW", 111) +ERROR_DISK_FULL = make_flag("ERROR_DISK_FULL", 112) +ERROR_NO_MORE_SEARCH_HANDLES = make_flag("ERROR_NO_MORE_SEARCH_HANDLES", 113) +ERROR_INVALID_TARGET_HANDLE = make_flag("ERROR_INVALID_TARGET_HANDLE", 114) +ERROR_INVALID_CATEGORY = make_flag("ERROR_INVALID_CATEGORY", 117) +ERROR_INVALID_VERIFY_SWITCH = make_flag("ERROR_INVALID_VERIFY_SWITCH", 118) +ERROR_BAD_DRIVER_LEVEL = make_flag("ERROR_BAD_DRIVER_LEVEL", 119) +ERROR_CALL_NOT_IMPLEMENTED = make_flag("ERROR_CALL_NOT_IMPLEMENTED", 120) +ERROR_SEM_TIMEOUT = make_flag("ERROR_SEM_TIMEOUT", 121) +ERROR_INSUFFICIENT_BUFFER = make_flag("ERROR_INSUFFICIENT_BUFFER", 122) +ERROR_INVALID_NAME = make_flag("ERROR_INVALID_NAME", 123) +ERROR_INVALID_LEVEL = make_flag("ERROR_INVALID_LEVEL", 124) +ERROR_NO_VOLUME_LABEL = make_flag("ERROR_NO_VOLUME_LABEL", 125) +ERROR_MOD_NOT_FOUND = make_flag("ERROR_MOD_NOT_FOUND", 126) +ERROR_PROC_NOT_FOUND = make_flag("ERROR_PROC_NOT_FOUND", 127) +ERROR_WAIT_NO_CHILDREN = make_flag("ERROR_WAIT_NO_CHILDREN", 128) +ERROR_CHILD_NOT_COMPLETE = make_flag("ERROR_CHILD_NOT_COMPLETE", 129) +ERROR_DIRECT_ACCESS_HANDLE = make_flag("ERROR_DIRECT_ACCESS_HANDLE", 130) +ERROR_NEGATIVE_SEEK = make_flag("ERROR_NEGATIVE_SEEK", 131) +ERROR_SEEK_ON_DEVICE = make_flag("ERROR_SEEK_ON_DEVICE", 132) +ERROR_IS_JOIN_TARGET = make_flag("ERROR_IS_JOIN_TARGET", 133) +ERROR_IS_JOINED = make_flag("ERROR_IS_JOINED", 134) +ERROR_IS_SUBSTED = make_flag("ERROR_IS_SUBSTED", 135) +ERROR_NOT_JOINED = make_flag("ERROR_NOT_JOINED", 136) +ERROR_NOT_SUBSTED = make_flag("ERROR_NOT_SUBSTED", 137) +ERROR_JOIN_TO_JOIN = make_flag("ERROR_JOIN_TO_JOIN", 138) +ERROR_SUBST_TO_SUBST = make_flag("ERROR_SUBST_TO_SUBST", 139) +ERROR_JOIN_TO_SUBST = make_flag("ERROR_JOIN_TO_SUBST", 140) +ERROR_SUBST_TO_JOIN = make_flag("ERROR_SUBST_TO_JOIN", 141) +ERROR_BUSY_DRIVE = make_flag("ERROR_BUSY_DRIVE", 142) +ERROR_SAME_DRIVE = make_flag("ERROR_SAME_DRIVE", 143) +ERROR_DIR_NOT_ROOT = make_flag("ERROR_DIR_NOT_ROOT", 144) +ERROR_DIR_NOT_EMPTY = make_flag("ERROR_DIR_NOT_EMPTY", 145) +ERROR_IS_SUBST_PATH = make_flag("ERROR_IS_SUBST_PATH", 146) +ERROR_IS_JOIN_PATH = make_flag("ERROR_IS_JOIN_PATH", 147) +ERROR_PATH_BUSY = make_flag("ERROR_PATH_BUSY", 148) +ERROR_IS_SUBST_TARGET = make_flag("ERROR_IS_SUBST_TARGET", 149) +ERROR_SYSTEM_TRACE = make_flag("ERROR_SYSTEM_TRACE", 150) +ERROR_INVALID_EVENT_COUNT = make_flag("ERROR_INVALID_EVENT_COUNT", 151) +ERROR_TOO_MANY_MUXWAITERS = make_flag("ERROR_TOO_MANY_MUXWAITERS", 152) +ERROR_INVALID_LIST_FORMAT = make_flag("ERROR_INVALID_LIST_FORMAT", 153) +ERROR_LABEL_TOO_LONG = make_flag("ERROR_LABEL_TOO_LONG", 154) +ERROR_TOO_MANY_TCBS = make_flag("ERROR_TOO_MANY_TCBS", 155) +ERROR_SIGNAL_REFUSED = make_flag("ERROR_SIGNAL_REFUSED", 156) +ERROR_DISCARDED = make_flag("ERROR_DISCARDED", 157) +ERROR_NOT_LOCKED = make_flag("ERROR_NOT_LOCKED", 158) +ERROR_BAD_THREADID_ADDR = make_flag("ERROR_BAD_THREADID_ADDR", 159) +ERROR_BAD_ARGUMENTS = make_flag("ERROR_BAD_ARGUMENTS", 160) +ERROR_BAD_PATHNAME = make_flag("ERROR_BAD_PATHNAME", 161) +ERROR_SIGNAL_PENDING = make_flag("ERROR_SIGNAL_PENDING", 162) +ERROR_MAX_THRDS_REACHED = make_flag("ERROR_MAX_THRDS_REACHED", 164) +ERROR_LOCK_FAILED = make_flag("ERROR_LOCK_FAILED", 167) +ERROR_BUSY = make_flag("ERROR_BUSY", 170) +ERROR_CANCEL_VIOLATION = make_flag("ERROR_CANCEL_VIOLATION", 173) +ERROR_ATOMIC_LOCKS_NOT_SUPPORTED = make_flag("ERROR_ATOMIC_LOCKS_NOT_SUPPORTED", 174) +ERROR_INVALID_SEGMENT_NUMBER = make_flag("ERROR_INVALID_SEGMENT_NUMBER", 180) +ERROR_INVALID_ORDINAL = make_flag("ERROR_INVALID_ORDINAL", 182) +ERROR_ALREADY_EXISTS = make_flag("ERROR_ALREADY_EXISTS", 183) +ERROR_INVALID_FLAG_NUMBER = make_flag("ERROR_INVALID_FLAG_NUMBER", 186) +ERROR_SEM_NOT_FOUND = make_flag("ERROR_SEM_NOT_FOUND", 187) +ERROR_INVALID_STARTING_CODESEG = make_flag("ERROR_INVALID_STARTING_CODESEG", 188) +ERROR_INVALID_STACKSEG = make_flag("ERROR_INVALID_STACKSEG", 189) +ERROR_INVALID_MODULETYPE = make_flag("ERROR_INVALID_MODULETYPE", 190) +ERROR_INVALID_EXE_SIGNATURE = make_flag("ERROR_INVALID_EXE_SIGNATURE", 191) +ERROR_EXE_MARKED_INVALID = make_flag("ERROR_EXE_MARKED_INVALID", 192) +ERROR_BAD_EXE_FORMAT = make_flag("ERROR_BAD_EXE_FORMAT", 193) +ERROR_ITERATED_DATA_EXCEEDS_64k = make_flag("ERROR_ITERATED_DATA_EXCEEDS_64k", 194) +ERROR_INVALID_MINALLOCSIZE = make_flag("ERROR_INVALID_MINALLOCSIZE", 195) +ERROR_DYNLINK_FROM_INVALID_RING = make_flag("ERROR_DYNLINK_FROM_INVALID_RING", 196) +ERROR_IOPL_NOT_ENABLED = make_flag("ERROR_IOPL_NOT_ENABLED", 197) +ERROR_INVALID_SEGDPL = make_flag("ERROR_INVALID_SEGDPL", 198) +ERROR_AUTODATASEG_EXCEEDS_64k = make_flag("ERROR_AUTODATASEG_EXCEEDS_64k", 199) +ERROR_RING2SEG_MUST_BE_MOVABLE = make_flag("ERROR_RING2SEG_MUST_BE_MOVABLE", 200) +ERROR_RELOC_CHAIN_XEEDS_SEGLIM = make_flag("ERROR_RELOC_CHAIN_XEEDS_SEGLIM", 201) +ERROR_INFLOOP_IN_RELOC_CHAIN = make_flag("ERROR_INFLOOP_IN_RELOC_CHAIN", 202) +ERROR_ENVVAR_NOT_FOUND = make_flag("ERROR_ENVVAR_NOT_FOUND", 203) +ERROR_NO_SIGNAL_SENT = make_flag("ERROR_NO_SIGNAL_SENT", 205) +ERROR_FILENAME_EXCED_RANGE = make_flag("ERROR_FILENAME_EXCED_RANGE", 206) +ERROR_RING2_STACK_IN_USE = make_flag("ERROR_RING2_STACK_IN_USE", 207) +ERROR_META_EXPANSION_TOO_LONG = make_flag("ERROR_META_EXPANSION_TOO_LONG", 208) +ERROR_INVALID_SIGNAL_NUMBER = make_flag("ERROR_INVALID_SIGNAL_NUMBER", 209) +ERROR_THREAD_1_INACTIVE = make_flag("ERROR_THREAD_1_INACTIVE", 210) +ERROR_LOCKED = make_flag("ERROR_LOCKED", 212) +ERROR_TOO_MANY_MODULES = make_flag("ERROR_TOO_MANY_MODULES", 214) +ERROR_NESTING_NOT_ALLOWED = make_flag("ERROR_NESTING_NOT_ALLOWED", 215) +ERROR_EXE_MACHINE_TYPE_MISMATCH = make_flag("ERROR_EXE_MACHINE_TYPE_MISMATCH", 216) +ERROR_EXE_CANNOT_MODIFY_SIGNED_BINARY = make_flag("ERROR_EXE_CANNOT_MODIFY_SIGNED_BINARY", 217) +ERROR_EXE_CANNOT_MODIFY_STRONG_SIGNED_BINARY = make_flag("ERROR_EXE_CANNOT_MODIFY_STRONG_SIGNED_BINARY", 218) +ERROR_FILE_CHECKED_OUT = make_flag("ERROR_FILE_CHECKED_OUT", 220) +ERROR_CHECKOUT_REQUIRED = make_flag("ERROR_CHECKOUT_REQUIRED", 221) +ERROR_BAD_FILE_TYPE = make_flag("ERROR_BAD_FILE_TYPE", 222) +ERROR_FILE_TOO_LARGE = make_flag("ERROR_FILE_TOO_LARGE", 223) +ERROR_FORMS_AUTH_REQUIRED = make_flag("ERROR_FORMS_AUTH_REQUIRED", 224) +ERROR_VIRUS_INFECTED = make_flag("ERROR_VIRUS_INFECTED", 225) +ERROR_VIRUS_DELETED = make_flag("ERROR_VIRUS_DELETED", 226) +ERROR_PIPE_LOCAL = make_flag("ERROR_PIPE_LOCAL", 229) +ERROR_BAD_PIPE = make_flag("ERROR_BAD_PIPE", 230) +ERROR_PIPE_BUSY = make_flag("ERROR_PIPE_BUSY", 231) +ERROR_NO_DATA = make_flag("ERROR_NO_DATA", 232) +ERROR_PIPE_NOT_CONNECTED = make_flag("ERROR_PIPE_NOT_CONNECTED", 233) +ERROR_MORE_DATA = make_flag("ERROR_MORE_DATA", 234) +ERROR_VC_DISCONNECTED = make_flag("ERROR_VC_DISCONNECTED", 240) +ERROR_INVALID_EA_NAME = make_flag("ERROR_INVALID_EA_NAME", 254) +ERROR_EA_LIST_INCONSISTENT = make_flag("ERROR_EA_LIST_INCONSISTENT", 255) +ERROR_NO_MORE_ITEMS = make_flag("ERROR_NO_MORE_ITEMS", 259) +ERROR_CANNOT_COPY = make_flag("ERROR_CANNOT_COPY", 266) +ERROR_DIRECTORY = make_flag("ERROR_DIRECTORY", 267) +ERROR_EAS_DIDNT_FIT = make_flag("ERROR_EAS_DIDNT_FIT", 275) +ERROR_EA_FILE_CORRUPT = make_flag("ERROR_EA_FILE_CORRUPT", 276) +ERROR_EA_TABLE_FULL = make_flag("ERROR_EA_TABLE_FULL", 277) +ERROR_INVALID_EA_HANDLE = make_flag("ERROR_INVALID_EA_HANDLE", 278) +ERROR_EAS_NOT_SUPPORTED = make_flag("ERROR_EAS_NOT_SUPPORTED", 282) +ERROR_NOT_OWNER = make_flag("ERROR_NOT_OWNER", 288) +ERROR_TOO_MANY_POSTS = make_flag("ERROR_TOO_MANY_POSTS", 298) +ERROR_PARTIAL_COPY = make_flag("ERROR_PARTIAL_COPY", 299) +ERROR_OPLOCK_NOT_GRANTED = make_flag("ERROR_OPLOCK_NOT_GRANTED", 300) +ERROR_INVALID_OPLOCK_PROTOCOL = make_flag("ERROR_INVALID_OPLOCK_PROTOCOL", 301) +ERROR_DISK_TOO_FRAGMENTED = make_flag("ERROR_DISK_TOO_FRAGMENTED", 302) +ERROR_DELETE_PENDING = make_flag("ERROR_DELETE_PENDING", 303) +ERROR_INCOMPATIBLE_WITH_GLOBAL_SHORT_NAME_REGISTRY_SETTING = make_flag("ERROR_INCOMPATIBLE_WITH_GLOBAL_SHORT_NAME_REGISTRY_SETTING", 304) +ERROR_SHORT_NAMES_NOT_ENABLED_ON_VOLUME = make_flag("ERROR_SHORT_NAMES_NOT_ENABLED_ON_VOLUME", 305) +ERROR_SECURITY_STREAM_IS_INCONSISTENT = make_flag("ERROR_SECURITY_STREAM_IS_INCONSISTENT", 306) +ERROR_INVALID_LOCK_RANGE = make_flag("ERROR_INVALID_LOCK_RANGE", 307) +ERROR_IMAGE_SUBSYSTEM_NOT_PRESENT = make_flag("ERROR_IMAGE_SUBSYSTEM_NOT_PRESENT", 308) +ERROR_NOTIFICATION_GUID_ALREADY_DEFINED = make_flag("ERROR_NOTIFICATION_GUID_ALREADY_DEFINED", 309) +ERROR_MR_MID_NOT_FOUND = make_flag("ERROR_MR_MID_NOT_FOUND", 317) +ERROR_SCOPE_NOT_FOUND = make_flag("ERROR_SCOPE_NOT_FOUND", 318) +ERROR_FAIL_NOACTION_REBOOT = make_flag("ERROR_FAIL_NOACTION_REBOOT", 350) +ERROR_FAIL_SHUTDOWN = make_flag("ERROR_FAIL_SHUTDOWN", 351) +ERROR_FAIL_RESTART = make_flag("ERROR_FAIL_RESTART", 352) +ERROR_MAX_SESSIONS_REACHED = make_flag("ERROR_MAX_SESSIONS_REACHED", 353) +ERROR_THREAD_MODE_ALREADY_BACKGROUND = make_flag("ERROR_THREAD_MODE_ALREADY_BACKGROUND", 400) +ERROR_THREAD_MODE_NOT_BACKGROUND = make_flag("ERROR_THREAD_MODE_NOT_BACKGROUND", 401) +ERROR_PROCESS_MODE_ALREADY_BACKGROUND = make_flag("ERROR_PROCESS_MODE_ALREADY_BACKGROUND", 402) +ERROR_PROCESS_MODE_NOT_BACKGROUND = make_flag("ERROR_PROCESS_MODE_NOT_BACKGROUND", 403) +ERROR_INVALID_ADDRESS = make_flag("ERROR_INVALID_ADDRESS", 487) +ERROR_USER_PROFILE_LOAD = make_flag("ERROR_USER_PROFILE_LOAD", 500) +ERROR_ARITHMETIC_OVERFLOW = make_flag("ERROR_ARITHMETIC_OVERFLOW", 534) +ERROR_PIPE_CONNECTED = make_flag("ERROR_PIPE_CONNECTED", 535) +ERROR_PIPE_LISTENING = make_flag("ERROR_PIPE_LISTENING", 536) +ERROR_VERIFIER_STOP = make_flag("ERROR_VERIFIER_STOP", 537) +ERROR_ABIOS_ERROR = make_flag("ERROR_ABIOS_ERROR", 538) +ERROR_WX86_WARNING = make_flag("ERROR_WX86_WARNING", 539) +ERROR_WX86_ERROR = make_flag("ERROR_WX86_ERROR", 540) +ERROR_TIMER_NOT_CANCELED = make_flag("ERROR_TIMER_NOT_CANCELED", 541) +ERROR_UNWIND = make_flag("ERROR_UNWIND", 542) +ERROR_BAD_STACK = make_flag("ERROR_BAD_STACK", 543) +ERROR_INVALID_UNWIND_TARGET = make_flag("ERROR_INVALID_UNWIND_TARGET", 544) +ERROR_INVALID_PORT_ATTRIBUTES = make_flag("ERROR_INVALID_PORT_ATTRIBUTES", 545) +ERROR_PORT_MESSAGE_TOO_LONG = make_flag("ERROR_PORT_MESSAGE_TOO_LONG", 546) +ERROR_INVALID_QUOTA_LOWER = make_flag("ERROR_INVALID_QUOTA_LOWER", 547) +ERROR_DEVICE_ALREADY_ATTACHED = make_flag("ERROR_DEVICE_ALREADY_ATTACHED", 548) +ERROR_INSTRUCTION_MISALIGNMENT = make_flag("ERROR_INSTRUCTION_MISALIGNMENT", 549) +ERROR_PROFILING_NOT_STARTED = make_flag("ERROR_PROFILING_NOT_STARTED", 550) +ERROR_PROFILING_NOT_STOPPED = make_flag("ERROR_PROFILING_NOT_STOPPED", 551) +ERROR_COULD_NOT_INTERPRET = make_flag("ERROR_COULD_NOT_INTERPRET", 552) +ERROR_PROFILING_AT_LIMIT = make_flag("ERROR_PROFILING_AT_LIMIT", 553) +ERROR_CANT_WAIT = make_flag("ERROR_CANT_WAIT", 554) +ERROR_CANT_TERMINATE_SELF = make_flag("ERROR_CANT_TERMINATE_SELF", 555) +ERROR_UNEXPECTED_MM_CREATE_ERR = make_flag("ERROR_UNEXPECTED_MM_CREATE_ERR", 556) +ERROR_UNEXPECTED_MM_MAP_ERROR = make_flag("ERROR_UNEXPECTED_MM_MAP_ERROR", 557) +ERROR_UNEXPECTED_MM_EXTEND_ERR = make_flag("ERROR_UNEXPECTED_MM_EXTEND_ERR", 558) +ERROR_BAD_FUNCTION_TABLE = make_flag("ERROR_BAD_FUNCTION_TABLE", 559) +ERROR_NO_GUID_TRANSLATION = make_flag("ERROR_NO_GUID_TRANSLATION", 560) +ERROR_INVALID_LDT_SIZE = make_flag("ERROR_INVALID_LDT_SIZE", 561) +ERROR_INVALID_LDT_OFFSET = make_flag("ERROR_INVALID_LDT_OFFSET", 563) +ERROR_INVALID_LDT_DESCRIPTOR = make_flag("ERROR_INVALID_LDT_DESCRIPTOR", 564) +ERROR_TOO_MANY_THREADS = make_flag("ERROR_TOO_MANY_THREADS", 565) +ERROR_THREAD_NOT_IN_PROCESS = make_flag("ERROR_THREAD_NOT_IN_PROCESS", 566) +ERROR_PAGEFILE_QUOTA_EXCEEDED = make_flag("ERROR_PAGEFILE_QUOTA_EXCEEDED", 567) +ERROR_LOGON_SERVER_CONFLICT = make_flag("ERROR_LOGON_SERVER_CONFLICT", 568) +ERROR_SYNCHRONIZATION_REQUIRED = make_flag("ERROR_SYNCHRONIZATION_REQUIRED", 569) +ERROR_NET_OPEN_FAILED = make_flag("ERROR_NET_OPEN_FAILED", 570) +ERROR_IO_PRIVILEGE_FAILED = make_flag("ERROR_IO_PRIVILEGE_FAILED", 571) +ERROR_CONTROL_C_EXIT = make_flag("ERROR_CONTROL_C_EXIT", 572) +ERROR_MISSING_SYSTEMFILE = make_flag("ERROR_MISSING_SYSTEMFILE", 573) +ERROR_UNHANDLED_EXCEPTION = make_flag("ERROR_UNHANDLED_EXCEPTION", 574) +ERROR_APP_INIT_FAILURE = make_flag("ERROR_APP_INIT_FAILURE", 575) +ERROR_PAGEFILE_CREATE_FAILED = make_flag("ERROR_PAGEFILE_CREATE_FAILED", 576) +ERROR_INVALID_IMAGE_HASH = make_flag("ERROR_INVALID_IMAGE_HASH", 577) +ERROR_NO_PAGEFILE = make_flag("ERROR_NO_PAGEFILE", 578) +ERROR_ILLEGAL_FLOAT_CONTEXT = make_flag("ERROR_ILLEGAL_FLOAT_CONTEXT", 579) +ERROR_NO_EVENT_PAIR = make_flag("ERROR_NO_EVENT_PAIR", 580) +ERROR_DOMAIN_CTRLR_CONFIG_ERROR = make_flag("ERROR_DOMAIN_CTRLR_CONFIG_ERROR", 581) +ERROR_ILLEGAL_CHARACTER = make_flag("ERROR_ILLEGAL_CHARACTER", 582) +ERROR_UNDEFINED_CHARACTER = make_flag("ERROR_UNDEFINED_CHARACTER", 583) +ERROR_FLOPPY_VOLUME = make_flag("ERROR_FLOPPY_VOLUME", 584) +ERROR_BIOS_FAILED_TO_CONNECT_INTERRUPT = make_flag("ERROR_BIOS_FAILED_TO_CONNECT_INTERRUPT", 585) +ERROR_BACKUP_CONTROLLER = make_flag("ERROR_BACKUP_CONTROLLER", 586) +ERROR_MUTANT_LIMIT_EXCEEDED = make_flag("ERROR_MUTANT_LIMIT_EXCEEDED", 587) +ERROR_FS_DRIVER_REQUIRED = make_flag("ERROR_FS_DRIVER_REQUIRED", 588) +ERROR_CANNOT_LOAD_REGISTRY_FILE = make_flag("ERROR_CANNOT_LOAD_REGISTRY_FILE", 589) +ERROR_DEBUG_ATTACH_FAILED = make_flag("ERROR_DEBUG_ATTACH_FAILED", 590) +ERROR_SYSTEM_PROCESS_TERMINATED = make_flag("ERROR_SYSTEM_PROCESS_TERMINATED", 591) +ERROR_DATA_NOT_ACCEPTED = make_flag("ERROR_DATA_NOT_ACCEPTED", 592) +ERROR_VDM_HARD_ERROR = make_flag("ERROR_VDM_HARD_ERROR", 593) +ERROR_DRIVER_CANCEL_TIMEOUT = make_flag("ERROR_DRIVER_CANCEL_TIMEOUT", 594) +ERROR_REPLY_MESSAGE_MISMATCH = make_flag("ERROR_REPLY_MESSAGE_MISMATCH", 595) +ERROR_LOST_WRITEBEHIND_DATA = make_flag("ERROR_LOST_WRITEBEHIND_DATA", 596) +ERROR_CLIENT_SERVER_PARAMETERS_INVALID = make_flag("ERROR_CLIENT_SERVER_PARAMETERS_INVALID", 597) +ERROR_NOT_TINY_STREAM = make_flag("ERROR_NOT_TINY_STREAM", 598) +ERROR_STACK_OVERFLOW_READ = make_flag("ERROR_STACK_OVERFLOW_READ", 599) +ERROR_CONVERT_TO_LARGE = make_flag("ERROR_CONVERT_TO_LARGE", 600) +ERROR_FOUND_OUT_OF_SCOPE = make_flag("ERROR_FOUND_OUT_OF_SCOPE", 601) +ERROR_ALLOCATE_BUCKET = make_flag("ERROR_ALLOCATE_BUCKET", 602) +ERROR_MARSHALL_OVERFLOW = make_flag("ERROR_MARSHALL_OVERFLOW", 603) +ERROR_INVALID_VARIANT = make_flag("ERROR_INVALID_VARIANT", 604) +ERROR_BAD_COMPRESSION_BUFFER = make_flag("ERROR_BAD_COMPRESSION_BUFFER", 605) +ERROR_AUDIT_FAILED = make_flag("ERROR_AUDIT_FAILED", 606) +ERROR_TIMER_RESOLUTION_NOT_SET = make_flag("ERROR_TIMER_RESOLUTION_NOT_SET", 607) +ERROR_INSUFFICIENT_LOGON_INFO = make_flag("ERROR_INSUFFICIENT_LOGON_INFO", 608) +ERROR_BAD_DLL_ENTRYPOINT = make_flag("ERROR_BAD_DLL_ENTRYPOINT", 609) +ERROR_BAD_SERVICE_ENTRYPOINT = make_flag("ERROR_BAD_SERVICE_ENTRYPOINT", 610) +ERROR_IP_ADDRESS_CONFLICT1 = make_flag("ERROR_IP_ADDRESS_CONFLICT1", 611) +ERROR_IP_ADDRESS_CONFLICT2 = make_flag("ERROR_IP_ADDRESS_CONFLICT2", 612) +ERROR_REGISTRY_QUOTA_LIMIT = make_flag("ERROR_REGISTRY_QUOTA_LIMIT", 613) +ERROR_NO_CALLBACK_ACTIVE = make_flag("ERROR_NO_CALLBACK_ACTIVE", 614) +ERROR_PWD_TOO_SHORT = make_flag("ERROR_PWD_TOO_SHORT", 615) +ERROR_PWD_TOO_RECENT = make_flag("ERROR_PWD_TOO_RECENT", 616) +ERROR_PWD_HISTORY_CONFLICT = make_flag("ERROR_PWD_HISTORY_CONFLICT", 617) +ERROR_UNSUPPORTED_COMPRESSION = make_flag("ERROR_UNSUPPORTED_COMPRESSION", 618) +ERROR_INVALID_HW_PROFILE = make_flag("ERROR_INVALID_HW_PROFILE", 619) +ERROR_INVALID_PLUGPLAY_DEVICE_PATH = make_flag("ERROR_INVALID_PLUGPLAY_DEVICE_PATH", 620) +ERROR_QUOTA_LIST_INCONSISTENT = make_flag("ERROR_QUOTA_LIST_INCONSISTENT", 621) +ERROR_EVALUATION_EXPIRATION = make_flag("ERROR_EVALUATION_EXPIRATION", 622) +ERROR_ILLEGAL_DLL_RELOCATION = make_flag("ERROR_ILLEGAL_DLL_RELOCATION", 623) +ERROR_DLL_INIT_FAILED_LOGOFF = make_flag("ERROR_DLL_INIT_FAILED_LOGOFF", 624) +ERROR_VALIDATE_CONTINUE = make_flag("ERROR_VALIDATE_CONTINUE", 625) +ERROR_NO_MORE_MATCHES = make_flag("ERROR_NO_MORE_MATCHES", 626) +ERROR_RANGE_LIST_CONFLICT = make_flag("ERROR_RANGE_LIST_CONFLICT", 627) +ERROR_SERVER_SID_MISMATCH = make_flag("ERROR_SERVER_SID_MISMATCH", 628) +ERROR_CANT_ENABLE_DENY_ONLY = make_flag("ERROR_CANT_ENABLE_DENY_ONLY", 629) +ERROR_FLOAT_MULTIPLE_FAULTS = make_flag("ERROR_FLOAT_MULTIPLE_FAULTS", 630) +ERROR_FLOAT_MULTIPLE_TRAPS = make_flag("ERROR_FLOAT_MULTIPLE_TRAPS", 631) +ERROR_NOINTERFACE = make_flag("ERROR_NOINTERFACE", 632) +ERROR_DRIVER_FAILED_SLEEP = make_flag("ERROR_DRIVER_FAILED_SLEEP", 633) +ERROR_CORRUPT_SYSTEM_FILE = make_flag("ERROR_CORRUPT_SYSTEM_FILE", 634) +ERROR_COMMITMENT_MINIMUM = make_flag("ERROR_COMMITMENT_MINIMUM", 635) +ERROR_PNP_RESTART_ENUMERATION = make_flag("ERROR_PNP_RESTART_ENUMERATION", 636) +ERROR_SYSTEM_IMAGE_BAD_SIGNATURE = make_flag("ERROR_SYSTEM_IMAGE_BAD_SIGNATURE", 637) +ERROR_PNP_REBOOT_REQUIRED = make_flag("ERROR_PNP_REBOOT_REQUIRED", 638) +ERROR_INSUFFICIENT_POWER = make_flag("ERROR_INSUFFICIENT_POWER", 639) +ERROR_MULTIPLE_FAULT_VIOLATION = make_flag("ERROR_MULTIPLE_FAULT_VIOLATION", 640) +ERROR_SYSTEM_SHUTDOWN = make_flag("ERROR_SYSTEM_SHUTDOWN", 641) +ERROR_PORT_NOT_SET = make_flag("ERROR_PORT_NOT_SET", 642) +ERROR_DS_VERSION_CHECK_FAILURE = make_flag("ERROR_DS_VERSION_CHECK_FAILURE", 643) +ERROR_RANGE_NOT_FOUND = make_flag("ERROR_RANGE_NOT_FOUND", 644) +ERROR_NOT_SAFE_MODE_DRIVER = make_flag("ERROR_NOT_SAFE_MODE_DRIVER", 646) +ERROR_FAILED_DRIVER_ENTRY = make_flag("ERROR_FAILED_DRIVER_ENTRY", 647) +ERROR_DEVICE_ENUMERATION_ERROR = make_flag("ERROR_DEVICE_ENUMERATION_ERROR", 648) +ERROR_MOUNT_POINT_NOT_RESOLVED = make_flag("ERROR_MOUNT_POINT_NOT_RESOLVED", 649) +ERROR_INVALID_DEVICE_OBJECT_PARAMETER = make_flag("ERROR_INVALID_DEVICE_OBJECT_PARAMETER", 650) +ERROR_MCA_OCCURED = make_flag("ERROR_MCA_OCCURED", 651) +ERROR_DRIVER_DATABASE_ERROR = make_flag("ERROR_DRIVER_DATABASE_ERROR", 652) +ERROR_SYSTEM_HIVE_TOO_LARGE = make_flag("ERROR_SYSTEM_HIVE_TOO_LARGE", 653) +ERROR_DRIVER_FAILED_PRIOR_UNLOAD = make_flag("ERROR_DRIVER_FAILED_PRIOR_UNLOAD", 654) +ERROR_VOLSNAP_PREPARE_HIBERNATE = make_flag("ERROR_VOLSNAP_PREPARE_HIBERNATE", 655) +ERROR_HIBERNATION_FAILURE = make_flag("ERROR_HIBERNATION_FAILURE", 656) +ERROR_FILE_SYSTEM_LIMITATION = make_flag("ERROR_FILE_SYSTEM_LIMITATION", 665) +ERROR_ASSERTION_FAILURE = make_flag("ERROR_ASSERTION_FAILURE", 668) +ERROR_ACPI_ERROR = make_flag("ERROR_ACPI_ERROR", 669) +ERROR_WOW_ASSERTION = make_flag("ERROR_WOW_ASSERTION", 670) +ERROR_PNP_BAD_MPS_TABLE = make_flag("ERROR_PNP_BAD_MPS_TABLE", 671) +ERROR_PNP_TRANSLATION_FAILED = make_flag("ERROR_PNP_TRANSLATION_FAILED", 672) +ERROR_PNP_IRQ_TRANSLATION_FAILED = make_flag("ERROR_PNP_IRQ_TRANSLATION_FAILED", 673) +ERROR_PNP_INVALID_ID = make_flag("ERROR_PNP_INVALID_ID", 674) +ERROR_WAKE_SYSTEM_DEBUGGER = make_flag("ERROR_WAKE_SYSTEM_DEBUGGER", 675) +ERROR_HANDLES_CLOSED = make_flag("ERROR_HANDLES_CLOSED", 676) +ERROR_EXTRANEOUS_INFORMATION = make_flag("ERROR_EXTRANEOUS_INFORMATION", 677) +ERROR_RXACT_COMMIT_NECESSARY = make_flag("ERROR_RXACT_COMMIT_NECESSARY", 678) +ERROR_MEDIA_CHECK = make_flag("ERROR_MEDIA_CHECK", 679) +ERROR_GUID_SUBSTITUTION_MADE = make_flag("ERROR_GUID_SUBSTITUTION_MADE", 680) +ERROR_STOPPED_ON_SYMLINK = make_flag("ERROR_STOPPED_ON_SYMLINK", 681) +ERROR_LONGJUMP = make_flag("ERROR_LONGJUMP", 682) +ERROR_PLUGPLAY_QUERY_VETOED = make_flag("ERROR_PLUGPLAY_QUERY_VETOED", 683) +ERROR_UNWIND_CONSOLIDATE = make_flag("ERROR_UNWIND_CONSOLIDATE", 684) +ERROR_REGISTRY_HIVE_RECOVERED = make_flag("ERROR_REGISTRY_HIVE_RECOVERED", 685) +ERROR_DLL_MIGHT_BE_INSECURE = make_flag("ERROR_DLL_MIGHT_BE_INSECURE", 686) +ERROR_DLL_MIGHT_BE_INCOMPATIBLE = make_flag("ERROR_DLL_MIGHT_BE_INCOMPATIBLE", 687) +ERROR_DBG_EXCEPTION_NOT_HANDLED = make_flag("ERROR_DBG_EXCEPTION_NOT_HANDLED", 688) +ERROR_DBG_REPLY_LATER = make_flag("ERROR_DBG_REPLY_LATER", 689) +ERROR_DBG_UNABLE_TO_PROVIDE_HANDLE = make_flag("ERROR_DBG_UNABLE_TO_PROVIDE_HANDLE", 690) +ERROR_DBG_TERMINATE_THREAD = make_flag("ERROR_DBG_TERMINATE_THREAD", 691) +ERROR_DBG_TERMINATE_PROCESS = make_flag("ERROR_DBG_TERMINATE_PROCESS", 692) +ERROR_DBG_CONTROL_C = make_flag("ERROR_DBG_CONTROL_C", 693) +ERROR_DBG_PRINTEXCEPTION_C = make_flag("ERROR_DBG_PRINTEXCEPTION_C", 694) +ERROR_DBG_RIPEXCEPTION = make_flag("ERROR_DBG_RIPEXCEPTION", 695) +ERROR_DBG_CONTROL_BREAK = make_flag("ERROR_DBG_CONTROL_BREAK", 696) +ERROR_DBG_COMMAND_EXCEPTION = make_flag("ERROR_DBG_COMMAND_EXCEPTION", 697) +ERROR_OBJECT_NAME_EXISTS = make_flag("ERROR_OBJECT_NAME_EXISTS", 698) +ERROR_THREAD_WAS_SUSPENDED = make_flag("ERROR_THREAD_WAS_SUSPENDED", 699) +ERROR_IMAGE_NOT_AT_BASE = make_flag("ERROR_IMAGE_NOT_AT_BASE", 700) +ERROR_RXACT_STATE_CREATED = make_flag("ERROR_RXACT_STATE_CREATED", 701) +ERROR_SEGMENT_NOTIFICATION = make_flag("ERROR_SEGMENT_NOTIFICATION", 702) +ERROR_BAD_CURRENT_DIRECTORY = make_flag("ERROR_BAD_CURRENT_DIRECTORY", 703) +ERROR_FT_READ_RECOVERY_FROM_BACKUP = make_flag("ERROR_FT_READ_RECOVERY_FROM_BACKUP", 704) +ERROR_FT_WRITE_RECOVERY = make_flag("ERROR_FT_WRITE_RECOVERY", 705) +ERROR_IMAGE_MACHINE_TYPE_MISMATCH = make_flag("ERROR_IMAGE_MACHINE_TYPE_MISMATCH", 706) +ERROR_RECEIVE_PARTIAL = make_flag("ERROR_RECEIVE_PARTIAL", 707) +ERROR_RECEIVE_EXPEDITED = make_flag("ERROR_RECEIVE_EXPEDITED", 708) +ERROR_RECEIVE_PARTIAL_EXPEDITED = make_flag("ERROR_RECEIVE_PARTIAL_EXPEDITED", 709) +ERROR_EVENT_DONE = make_flag("ERROR_EVENT_DONE", 710) +ERROR_EVENT_PENDING = make_flag("ERROR_EVENT_PENDING", 711) +ERROR_CHECKING_FILE_SYSTEM = make_flag("ERROR_CHECKING_FILE_SYSTEM", 712) +ERROR_FATAL_APP_EXIT = make_flag("ERROR_FATAL_APP_EXIT", 713) +ERROR_PREDEFINED_HANDLE = make_flag("ERROR_PREDEFINED_HANDLE", 714) +ERROR_WAS_UNLOCKED = make_flag("ERROR_WAS_UNLOCKED", 715) +ERROR_SERVICE_NOTIFICATION = make_flag("ERROR_SERVICE_NOTIFICATION", 716) +ERROR_WAS_LOCKED = make_flag("ERROR_WAS_LOCKED", 717) +ERROR_LOG_HARD_ERROR = make_flag("ERROR_LOG_HARD_ERROR", 718) +ERROR_ALREADY_WIN32 = make_flag("ERROR_ALREADY_WIN32", 719) +ERROR_IMAGE_MACHINE_TYPE_MISMATCH_EXE = make_flag("ERROR_IMAGE_MACHINE_TYPE_MISMATCH_EXE", 720) +ERROR_NO_YIELD_PERFORMED = make_flag("ERROR_NO_YIELD_PERFORMED", 721) +ERROR_TIMER_RESUME_IGNORED = make_flag("ERROR_TIMER_RESUME_IGNORED", 722) +ERROR_ARBITRATION_UNHANDLED = make_flag("ERROR_ARBITRATION_UNHANDLED", 723) +ERROR_CARDBUS_NOT_SUPPORTED = make_flag("ERROR_CARDBUS_NOT_SUPPORTED", 724) +ERROR_MP_PROCESSOR_MISMATCH = make_flag("ERROR_MP_PROCESSOR_MISMATCH", 725) +ERROR_HIBERNATED = make_flag("ERROR_HIBERNATED", 726) +ERROR_RESUME_HIBERNATION = make_flag("ERROR_RESUME_HIBERNATION", 727) +ERROR_FIRMWARE_UPDATED = make_flag("ERROR_FIRMWARE_UPDATED", 728) +ERROR_DRIVERS_LEAKING_LOCKED_PAGES = make_flag("ERROR_DRIVERS_LEAKING_LOCKED_PAGES", 729) +ERROR_WAKE_SYSTEM = make_flag("ERROR_WAKE_SYSTEM", 730) +ERROR_WAIT_1 = make_flag("ERROR_WAIT_1", 731) +ERROR_WAIT_2 = make_flag("ERROR_WAIT_2", 732) +ERROR_WAIT_3 = make_flag("ERROR_WAIT_3", 733) +ERROR_WAIT_63 = make_flag("ERROR_WAIT_63", 734) +ERROR_ABANDONED_WAIT_0 = make_flag("ERROR_ABANDONED_WAIT_0", 735) +ERROR_ABANDONED_WAIT_63 = make_flag("ERROR_ABANDONED_WAIT_63", 736) +ERROR_USER_APC = make_flag("ERROR_USER_APC", 737) +ERROR_KERNEL_APC = make_flag("ERROR_KERNEL_APC", 738) +ERROR_ALERTED = make_flag("ERROR_ALERTED", 739) +ERROR_ELEVATION_REQUIRED = make_flag("ERROR_ELEVATION_REQUIRED", 740) +ERROR_REPARSE = make_flag("ERROR_REPARSE", 741) +ERROR_OPLOCK_BREAK_IN_PROGRESS = make_flag("ERROR_OPLOCK_BREAK_IN_PROGRESS", 742) +ERROR_VOLUME_MOUNTED = make_flag("ERROR_VOLUME_MOUNTED", 743) +ERROR_RXACT_COMMITTED = make_flag("ERROR_RXACT_COMMITTED", 744) +ERROR_NOTIFY_CLEANUP = make_flag("ERROR_NOTIFY_CLEANUP", 745) +ERROR_PRIMARY_TRANSPORT_CONNECT_FAILED = make_flag("ERROR_PRIMARY_TRANSPORT_CONNECT_FAILED", 746) +ERROR_PAGE_FAULT_TRANSITION = make_flag("ERROR_PAGE_FAULT_TRANSITION", 747) +ERROR_PAGE_FAULT_DEMAND_ZERO = make_flag("ERROR_PAGE_FAULT_DEMAND_ZERO", 748) +ERROR_PAGE_FAULT_COPY_ON_WRITE = make_flag("ERROR_PAGE_FAULT_COPY_ON_WRITE", 749) +ERROR_PAGE_FAULT_GUARD_PAGE = make_flag("ERROR_PAGE_FAULT_GUARD_PAGE", 750) +ERROR_PAGE_FAULT_PAGING_FILE = make_flag("ERROR_PAGE_FAULT_PAGING_FILE", 751) +ERROR_CACHE_PAGE_LOCKED = make_flag("ERROR_CACHE_PAGE_LOCKED", 752) +ERROR_CRASH_DUMP = make_flag("ERROR_CRASH_DUMP", 753) +ERROR_BUFFER_ALL_ZEROS = make_flag("ERROR_BUFFER_ALL_ZEROS", 754) +ERROR_REPARSE_OBJECT = make_flag("ERROR_REPARSE_OBJECT", 755) +ERROR_RESOURCE_REQUIREMENTS_CHANGED = make_flag("ERROR_RESOURCE_REQUIREMENTS_CHANGED", 756) +ERROR_TRANSLATION_COMPLETE = make_flag("ERROR_TRANSLATION_COMPLETE", 757) +ERROR_NOTHING_TO_TERMINATE = make_flag("ERROR_NOTHING_TO_TERMINATE", 758) +ERROR_PROCESS_NOT_IN_JOB = make_flag("ERROR_PROCESS_NOT_IN_JOB", 759) +ERROR_PROCESS_IN_JOB = make_flag("ERROR_PROCESS_IN_JOB", 760) +ERROR_VOLSNAP_HIBERNATE_READY = make_flag("ERROR_VOLSNAP_HIBERNATE_READY", 761) +ERROR_FSFILTER_OP_COMPLETED_SUCCESSFULLY = make_flag("ERROR_FSFILTER_OP_COMPLETED_SUCCESSFULLY", 762) +ERROR_INTERRUPT_VECTOR_ALREADY_CONNECTED = make_flag("ERROR_INTERRUPT_VECTOR_ALREADY_CONNECTED", 763) +ERROR_INTERRUPT_STILL_CONNECTED = make_flag("ERROR_INTERRUPT_STILL_CONNECTED", 764) +ERROR_WAIT_FOR_OPLOCK = make_flag("ERROR_WAIT_FOR_OPLOCK", 765) +ERROR_DBG_EXCEPTION_HANDLED = make_flag("ERROR_DBG_EXCEPTION_HANDLED", 766) +ERROR_DBG_CONTINUE = make_flag("ERROR_DBG_CONTINUE", 767) +ERROR_CALLBACK_POP_STACK = make_flag("ERROR_CALLBACK_POP_STACK", 768) +ERROR_COMPRESSION_DISABLED = make_flag("ERROR_COMPRESSION_DISABLED", 769) +ERROR_CANTFETCHBACKWARDS = make_flag("ERROR_CANTFETCHBACKWARDS", 770) +ERROR_CANTSCROLLBACKWARDS = make_flag("ERROR_CANTSCROLLBACKWARDS", 771) +ERROR_ROWSNOTRELEASED = make_flag("ERROR_ROWSNOTRELEASED", 772) +ERROR_BAD_ACCESSOR_FLAGS = make_flag("ERROR_BAD_ACCESSOR_FLAGS", 773) +ERROR_ERRORS_ENCOUNTERED = make_flag("ERROR_ERRORS_ENCOUNTERED", 774) +ERROR_NOT_CAPABLE = make_flag("ERROR_NOT_CAPABLE", 775) +ERROR_REQUEST_OUT_OF_SEQUENCE = make_flag("ERROR_REQUEST_OUT_OF_SEQUENCE", 776) +ERROR_VERSION_PARSE_ERROR = make_flag("ERROR_VERSION_PARSE_ERROR", 777) +ERROR_BADSTARTPOSITION = make_flag("ERROR_BADSTARTPOSITION", 778) +ERROR_MEMORY_HARDWARE = make_flag("ERROR_MEMORY_HARDWARE", 779) +ERROR_DISK_REPAIR_DISABLED = make_flag("ERROR_DISK_REPAIR_DISABLED", 780) +ERROR_INSUFFICIENT_RESOURCE_FOR_SPECIFIED_SHARED_SECTION_SIZE = make_flag("ERROR_INSUFFICIENT_RESOURCE_FOR_SPECIFIED_SHARED_SECTION_SIZE", 781) +ERROR_SYSTEM_POWERSTATE_TRANSITION = make_flag("ERROR_SYSTEM_POWERSTATE_TRANSITION", 782) +ERROR_SYSTEM_POWERSTATE_COMPLEX_TRANSITION = make_flag("ERROR_SYSTEM_POWERSTATE_COMPLEX_TRANSITION", 783) +ERROR_MCA_EXCEPTION = make_flag("ERROR_MCA_EXCEPTION", 784) +ERROR_ACCESS_AUDIT_BY_POLICY = make_flag("ERROR_ACCESS_AUDIT_BY_POLICY", 785) +ERROR_ACCESS_DISABLED_NO_SAFER_UI_BY_POLICY = make_flag("ERROR_ACCESS_DISABLED_NO_SAFER_UI_BY_POLICY", 786) +ERROR_ABANDON_HIBERFILE = make_flag("ERROR_ABANDON_HIBERFILE", 787) +ERROR_LOST_WRITEBEHIND_DATA_NETWORK_DISCONNECTED = make_flag("ERROR_LOST_WRITEBEHIND_DATA_NETWORK_DISCONNECTED", 788) +ERROR_LOST_WRITEBEHIND_DATA_NETWORK_SERVER_ERROR = make_flag("ERROR_LOST_WRITEBEHIND_DATA_NETWORK_SERVER_ERROR", 789) +ERROR_LOST_WRITEBEHIND_DATA_LOCAL_DISK_ERROR = make_flag("ERROR_LOST_WRITEBEHIND_DATA_LOCAL_DISK_ERROR", 790) +ERROR_BAD_MCFG_TABLE = make_flag("ERROR_BAD_MCFG_TABLE", 791) +ERROR_OPLOCK_SWITCHED_TO_NEW_HANDLE = make_flag("ERROR_OPLOCK_SWITCHED_TO_NEW_HANDLE", 800) +ERROR_CANNOT_GRANT_REQUESTED_OPLOCK = make_flag("ERROR_CANNOT_GRANT_REQUESTED_OPLOCK", 801) +ERROR_CANNOT_BREAK_OPLOCK = make_flag("ERROR_CANNOT_BREAK_OPLOCK", 802) +ERROR_OPLOCK_HANDLE_CLOSED = make_flag("ERROR_OPLOCK_HANDLE_CLOSED", 803) +ERROR_NO_ACE_CONDITION = make_flag("ERROR_NO_ACE_CONDITION", 804) +ERROR_INVALID_ACE_CONDITION = make_flag("ERROR_INVALID_ACE_CONDITION", 805) +ERROR_EA_ACCESS_DENIED = make_flag("ERROR_EA_ACCESS_DENIED", 994) +ERROR_OPERATION_ABORTED = make_flag("ERROR_OPERATION_ABORTED", 995) +ERROR_IO_INCOMPLETE = make_flag("ERROR_IO_INCOMPLETE", 996) +ERROR_IO_PENDING = make_flag("ERROR_IO_PENDING", 997) +ERROR_NOACCESS = make_flag("ERROR_NOACCESS", 998) +ERROR_SWAPERROR = make_flag("ERROR_SWAPERROR", 999) +ERROR_STACK_OVERFLOW = make_flag("ERROR_STACK_OVERFLOW", 1001) +ERROR_INVALID_MESSAGE = make_flag("ERROR_INVALID_MESSAGE", 1002) +ERROR_CAN_NOT_COMPLETE = make_flag("ERROR_CAN_NOT_COMPLETE", 1003) +ERROR_INVALID_FLAGS = make_flag("ERROR_INVALID_FLAGS", 1004) +ERROR_UNRECOGNIZED_VOLUME = make_flag("ERROR_UNRECOGNIZED_VOLUME", 1005) +ERROR_FILE_INVALID = make_flag("ERROR_FILE_INVALID", 1006) +ERROR_FULLSCREEN_MODE = make_flag("ERROR_FULLSCREEN_MODE", 1007) +ERROR_NO_TOKEN = make_flag("ERROR_NO_TOKEN", 1008) +ERROR_BADDB = make_flag("ERROR_BADDB", 1009) +ERROR_BADKEY = make_flag("ERROR_BADKEY", 1010) +ERROR_CANTOPEN = make_flag("ERROR_CANTOPEN", 1011) +ERROR_CANTREAD = make_flag("ERROR_CANTREAD", 1012) +ERROR_CANTWRITE = make_flag("ERROR_CANTWRITE", 1013) +ERROR_REGISTRY_RECOVERED = make_flag("ERROR_REGISTRY_RECOVERED", 1014) +ERROR_REGISTRY_CORRUPT = make_flag("ERROR_REGISTRY_CORRUPT", 1015) +ERROR_REGISTRY_IO_FAILED = make_flag("ERROR_REGISTRY_IO_FAILED", 1016) +ERROR_NOT_REGISTRY_FILE = make_flag("ERROR_NOT_REGISTRY_FILE", 1017) +ERROR_KEY_DELETED = make_flag("ERROR_KEY_DELETED", 1018) +ERROR_NO_LOG_SPACE = make_flag("ERROR_NO_LOG_SPACE", 1019) +ERROR_KEY_HAS_CHILDREN = make_flag("ERROR_KEY_HAS_CHILDREN", 1020) +ERROR_CHILD_MUST_BE_VOLATILE = make_flag("ERROR_CHILD_MUST_BE_VOLATILE", 1021) +ERROR_NOTIFY_ENUM_DIR = make_flag("ERROR_NOTIFY_ENUM_DIR", 1022) +RPC_X_BAD_STUB_DATA = make_flag("RPC_X_BAD_STUB_DATA", 1783) +RPC_S_UNKNOWN_IF = make_flag("RPC_S_UNKNOWN_IF", 1717) +RPC_S_PROTOCOL_ERROR = make_flag("RPC_S_PROTOCOL_ERROR", 1728) +RPC_S_UNSUPPORTED_TRANS_SYN = make_flag("RPC_S_UNSUPPORTED_TRANS_SYN", 1730) +RPC_S_PROCNUM_OUT_OF_RANGE = make_flag("RPC_S_PROCNUM_OUT_OF_RANGE", 1745) +RPC_REQUEST_TYPE_CALL = make_flag("RPC_REQUEST_TYPE_CALL", 0) +RPC_REQUEST_TYPE_BIND = make_flag("RPC_REQUEST_TYPE_BIND", 1) +RPC_RESPONSE_TYPE_BIND_OK = make_flag("RPC_RESPONSE_TYPE_BIND_OK", 1) +RPC_RESPONSE_TYPE_FAIL = make_flag("RPC_RESPONSE_TYPE_FAIL", 2) +RPC_RESPONSE_TYPE_SUCESS = make_flag("RPC_RESPONSE_TYPE_SUCESS", 3) +BIND_IF_SYNTAX_NDR32 = make_flag("BIND_IF_SYNTAX_NDR32", 1) +BIND_IF_SYNTAX_NDR64 = make_flag("BIND_IF_SYNTAX_NDR64", 2) +BIND_IF_SYNTAX_UNKNOWN = make_flag("BIND_IF_SYNTAX_UNKNOWN", 4) +
+ +
+
+
+ +
+
+ + + + \ No newline at end of file diff --git a/docs/build/html/_modules/windows/generated_def/winstructs.html b/docs/build/html/_modules/windows/generated_def/winstructs.html new file mode 100644 index 00000000..cc2793f1 --- /dev/null +++ b/docs/build/html/_modules/windows/generated_def/winstructs.html @@ -0,0 +1,4434 @@ + + + + + + + + windows.generated_def.winstructs — PythonForWindows 0.3 documentation + + + + + + + + + + + + + + +
+
+
+
+ +

Source code for windows.generated_def.winstructs

+#Generated file
+
+
+from ctypes import *
+from ctypes.wintypes import *
+from windef import *
+BYTE = c_ubyte
+PWSTR = LPWSTR
+PCWSTR = LPWSTR
+SIZE_T = c_size_t
+PSIZE_T = POINTER(SIZE_T)
+PVOID = c_void_p
+PPS_POST_PROCESS_INIT_ROUTINE = PVOID
+NTSTATUS = DWORD
+SECURITY_INFORMATION = DWORD
+PSECURITY_INFORMATION = POINTER(SECURITY_INFORMATION)
+PULONG = POINTER(ULONG)
+PDWORD = POINTER(DWORD)
+LPDWORD = POINTER(DWORD)
+LPTHREAD_START_ROUTINE = PVOID
+WNDENUMPROC = PVOID
+PHANDLER_ROUTINE = PVOID
+LPBYTE = POINTER(BYTE)
+ULONG_PTR = PVOID
+DWORD_PTR = ULONG_PTR
+KAFFINITY = ULONG_PTR
+KPRIORITY = LONG
+CHAR = c_char
+INT = c_int
+UCHAR = c_char
+CSHORT = c_short
+VARTYPE = c_ushort
+PBOOL = POINTER(BOOL)
+PSTR = LPSTR
+PCSTR = LPSTR
+va_list = c_char_p
+BSTR = c_wchar_p
+OLECHAR = c_wchar
+POLECHAR = c_wchar_p
+PUCHAR = POINTER(UCHAR)
+double = c_double
+FARPROC = PVOID
+HGLOBAL = PVOID
+PSID = PVOID
+PVECTORED_EXCEPTION_HANDLER = PVOID
+ULONGLONG = c_ulonglong
+LONGLONG = c_longlong
+ULONG64 = c_ulonglong
+UINT64 = ULONG64
+LONG64 = c_longlong
+LARGE_INTEGER = LONGLONG
+PLARGE_INTEGER = POINTER(LARGE_INTEGER)
+DWORD64 = ULONG64
+SCODE = LONG
+CIMTYPE = LONG
+NET_IFINDEX = ULONG
+IF_INDEX = NET_IFINDEX
+IFTYPE = ULONG
+PULONG64 = POINTER(ULONG64)
+PUINT = POINTER(UINT)
+PHANDLE = POINTER(HANDLE)
+HKEY = HANDLE
+HCATADMIN = HANDLE
+HCATINFO = HANDLE
+HDC = HANDLE
+HBITMAP = HANDLE
+SC_HANDLE = HANDLE
+HCERTCHAINENGINE = HANDLE
+LPHANDLE = POINTER(HANDLE)
+ALPC_HANDLE = HANDLE
+PALPC_HANDLE = POINTER(ALPC_HANDLE)
+PHKEY = POINTER(HKEY)
+ACCESS_MASK = DWORD
+REGSAM = ACCESS_MASK
+SECURITY_CONTEXT_TRACKING_MODE = BOOLEAN
+HCRYPTPROV_OR_NCRYPT_KEY_HANDLE = PULONG
+HCRYPTPROV_LEGACY = PULONG
+HCRYPTKEY = PULONG
+HCRYPTPROV = PULONG
+HCRYPTHASH = PULONG
+ALG_ID = UINT
+DISPID = LONG
+MEMBERID = DISPID
+PSECURITY_DESCRIPTOR = PVOID
+LPPROC_THREAD_ATTRIBUTE_LIST = PVOID
+LPUNKNOWN = POINTER(PVOID)
+SPC_UUID = BYTE * 16
+PWINDBG_EXTENSION_APIS32 = PVOID
+PWINDBG_EXTENSION_APIS64 = PVOID
+LPCONTEXT = PVOID
+HCERTSTORE = PVOID
+HCRYPTMSG = PVOID
+PALPC_PORT_ATTRIBUTES = PVOID
+VOID = DWORD
+class EnumValue(Flag):
+    def __new__(cls, enum_name, name, value):
+        return super(EnumValue, cls).__new__(cls, name, value)
+
+    def __init__(self, enum_name, name, value):
+        self.enum_name = enum_name
+        self.name = name
+
+    def __repr__(self):
+        return "{0}.{1}({2})".format(self.enum_name, self.name, hex(self))
+
+    # Fix pickling with protocol 2
+    def __getnewargs__(self, *args):
+        return self.enum_name, self.name, int(self)
+
+
+class EnumType(DWORD):
+    values = ()
+    mapper = {}
+
+    @property
+    def value(self):
+        raw_value = super(EnumType, self).value
+        return self.mapper.get(raw_value, raw_value)
+
+    def __repr__(self):
+        raw_value = super(EnumType, self).value
+        if raw_value in self.values:
+            value = self.value
+            return "<{0} {1}({2})>".format(type(self).__name__, value.name, hex(raw_value))
+        return "<{0}({1})>".format(type(self).__name__, hex(self.value))
+
+
+SystemBasicInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemBasicInformation", 0x0)
+SystemProcessorInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemProcessorInformation", 0x1)
+SystemPerformanceInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemPerformanceInformation", 0x2)
+SystemTimeOfDayInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemTimeOfDayInformation", 0x3)
+SystemPathInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemPathInformation", 0x4)
+SystemProcessInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemProcessInformation", 0x5)
+SystemCallCountInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemCallCountInformation", 0x6)
+SystemDeviceInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemDeviceInformation", 0x7)
+SystemProcessorPerformanceInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemProcessorPerformanceInformation", 0x8)
+SystemFlagsInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemFlagsInformation", 0x9)
+SystemCallTimeInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemCallTimeInformation", 0xa)
+SystemModuleInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemModuleInformation", 0xb)
+SystemLocksInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemLocksInformation", 0xc)
+SystemStackTraceInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemStackTraceInformation", 0xd)
+SystemPagedPoolInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemPagedPoolInformation", 0xe)
+SystemNonPagedPoolInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemNonPagedPoolInformation", 0xf)
+SystemHandleInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemHandleInformation", 0x10)
+SystemObjectInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemObjectInformation", 0x11)
+SystemPageFileInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemPageFileInformation", 0x12)
+SystemVdmInstemulInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemVdmInstemulInformation", 0x13)
+SystemVdmBopInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemVdmBopInformation", 0x14)
+SystemFileCacheInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemFileCacheInformation", 0x15)
+SystemPoolTagInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemPoolTagInformation", 0x16)
+SystemInterruptInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemInterruptInformation", 0x17)
+SystemDpcBehaviorInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemDpcBehaviorInformation", 0x18)
+SystemFullMemoryInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemFullMemoryInformation", 0x19)
+SystemLoadGdiDriverInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemLoadGdiDriverInformation", 0x1a)
+SystemUnloadGdiDriverInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemUnloadGdiDriverInformation", 0x1b)
+SystemTimeAdjustmentInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemTimeAdjustmentInformation", 0x1c)
+SystemSummaryMemoryInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemSummaryMemoryInformation", 0x1d)
+SystemMirrorMemoryInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemMirrorMemoryInformation", 0x1e)
+SystemPerformanceTraceInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemPerformanceTraceInformation", 0x1f)
+SystemObsolete0 = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemObsolete0", 0x20)
+SystemExceptionInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemExceptionInformation", 0x21)
+SystemCrashDumpStateInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemCrashDumpStateInformation", 0x22)
+SystemKernelDebuggerInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemKernelDebuggerInformation", 0x23)
+SystemContextSwitchInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemContextSwitchInformation", 0x24)
+SystemRegistryQuotaInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemRegistryQuotaInformation", 0x25)
+SystemExtendServiceTableInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemExtendServiceTableInformation", 0x26)
+SystemPrioritySeperation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemPrioritySeperation", 0x27)
+SystemVerifierAddDriverInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemVerifierAddDriverInformation", 0x28)
+SystemVerifierRemoveDriverInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemVerifierRemoveDriverInformation", 0x29)
+SystemProcessorIdleInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemProcessorIdleInformation", 0x2a)
+SystemLegacyDriverInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemLegacyDriverInformation", 0x2b)
+SystemCurrentTimeZoneInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemCurrentTimeZoneInformation", 0x2c)
+SystemLookasideInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemLookasideInformation", 0x2d)
+SystemTimeSlipNotification = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemTimeSlipNotification", 0x2e)
+SystemSessionCreate = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemSessionCreate", 0x2f)
+SystemSessionDetach = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemSessionDetach", 0x30)
+SystemSessionInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemSessionInformation", 0x31)
+SystemRangeStartInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemRangeStartInformation", 0x32)
+SystemVerifierInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemVerifierInformation", 0x33)
+SystemVerifierThunkExtend = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemVerifierThunkExtend", 0x34)
+SystemSessionProcessInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemSessionProcessInformation", 0x35)
+SystemLoadGdiDriverInSystemSpace = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemLoadGdiDriverInSystemSpace", 0x36)
+SystemNumaProcessorMap = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemNumaProcessorMap", 0x37)
+SystemPrefetcherInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemPrefetcherInformation", 0x38)
+SystemExtendedProcessInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemExtendedProcessInformation", 0x39)
+SystemRecommendedSharedDataAlignment = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemRecommendedSharedDataAlignment", 0x3a)
+SystemComPlusPackage = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemComPlusPackage", 0x3b)
+SystemNumaAvailableMemory = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemNumaAvailableMemory", 0x3c)
+SystemProcessorPowerInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemProcessorPowerInformation", 0x3d)
+SystemEmulationBasicInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemEmulationBasicInformation", 0x3e)
+SystemEmulationProcessorInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemEmulationProcessorInformation", 0x3f)
+SystemExtendedHandleInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemExtendedHandleInformation", 0x40)
+SystemLostDelayedWriteInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemLostDelayedWriteInformation", 0x41)
+SystemBigPoolInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemBigPoolInformation", 0x42)
+SystemSessionPoolTagInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemSessionPoolTagInformation", 0x43)
+SystemSessionMappedViewInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemSessionMappedViewInformation", 0x44)
+SystemHotpatchInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemHotpatchInformation", 0x45)
+SystemObjectSecurityMode = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemObjectSecurityMode", 0x46)
+SystemWatchdogTimerHandler = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemWatchdogTimerHandler", 0x47)
+SystemWatchdogTimerInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemWatchdogTimerInformation", 0x48)
+SystemLogicalProcessorInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemLogicalProcessorInformation", 0x49)
+SystemWow64SharedInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemWow64SharedInformation", 0x4a)
+SystemRegisterFirmwareTableInformationHandler = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemRegisterFirmwareTableInformationHandler", 0x4b)
+SystemFirmwareTableInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemFirmwareTableInformation", 0x4c)
+SystemModuleInformationEx = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemModuleInformationEx", 0x4d)
+SystemVerifierTriageInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemVerifierTriageInformation", 0x4e)
+SystemSuperfetchInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemSuperfetchInformation", 0x4f)
+SystemMemoryListInformation = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemMemoryListInformation", 0x50)
+SystemFileCacheInformationEx = EnumValue("_SYSTEM_INFORMATION_CLASS", "SystemFileCacheInformationEx", 0x51)
+MaxSystemInfoClass = EnumValue("_SYSTEM_INFORMATION_CLASS", "MaxSystemInfoClass", 0x52)
+class _SYSTEM_INFORMATION_CLASS(EnumType):
+    values = [SystemBasicInformation, SystemProcessorInformation, SystemPerformanceInformation, SystemTimeOfDayInformation, SystemPathInformation, SystemProcessInformation, SystemCallCountInformation, SystemDeviceInformation, SystemProcessorPerformanceInformation, SystemFlagsInformation, SystemCallTimeInformation, SystemModuleInformation, SystemLocksInformation, SystemStackTraceInformation, SystemPagedPoolInformation, SystemNonPagedPoolInformation, SystemHandleInformation, SystemObjectInformation, SystemPageFileInformation, SystemVdmInstemulInformation, SystemVdmBopInformation, SystemFileCacheInformation, SystemPoolTagInformation, SystemInterruptInformation, SystemDpcBehaviorInformation, SystemFullMemoryInformation, SystemLoadGdiDriverInformation, SystemUnloadGdiDriverInformation, SystemTimeAdjustmentInformation, SystemSummaryMemoryInformation, SystemMirrorMemoryInformation, SystemPerformanceTraceInformation, SystemObsolete0, SystemExceptionInformation, SystemCrashDumpStateInformation, SystemKernelDebuggerInformation, SystemContextSwitchInformation, SystemRegistryQuotaInformation, SystemExtendServiceTableInformation, SystemPrioritySeperation, SystemVerifierAddDriverInformation, SystemVerifierRemoveDriverInformation, SystemProcessorIdleInformation, SystemLegacyDriverInformation, SystemCurrentTimeZoneInformation, SystemLookasideInformation, SystemTimeSlipNotification, SystemSessionCreate, SystemSessionDetach, SystemSessionInformation, SystemRangeStartInformation, SystemVerifierInformation, SystemVerifierThunkExtend, SystemSessionProcessInformation, SystemLoadGdiDriverInSystemSpace, SystemNumaProcessorMap, SystemPrefetcherInformation, SystemExtendedProcessInformation, SystemRecommendedSharedDataAlignment, SystemComPlusPackage, SystemNumaAvailableMemory, SystemProcessorPowerInformation, SystemEmulationBasicInformation, SystemEmulationProcessorInformation, SystemExtendedHandleInformation, SystemLostDelayedWriteInformation, SystemBigPoolInformation, SystemSessionPoolTagInformation, SystemSessionMappedViewInformation, SystemHotpatchInformation, SystemObjectSecurityMode, SystemWatchdogTimerHandler, SystemWatchdogTimerInformation, SystemLogicalProcessorInformation, SystemWow64SharedInformation, SystemRegisterFirmwareTableInformationHandler, SystemFirmwareTableInformation, SystemModuleInformationEx, SystemVerifierTriageInformation, SystemSuperfetchInformation, SystemMemoryListInformation, SystemFileCacheInformationEx, MaxSystemInfoClass]
+    mapper = {x:x for x in values}
+SYSTEM_INFORMATION_CLASS = _SYSTEM_INFORMATION_CLASS
+
+
+WinNullSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinNullSid", 0x0)
+WinWorldSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinWorldSid", 0x1)
+WinLocalSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinLocalSid", 0x2)
+WinCreatorOwnerSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinCreatorOwnerSid", 0x3)
+WinCreatorGroupSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinCreatorGroupSid", 0x4)
+WinCreatorOwnerServerSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinCreatorOwnerServerSid", 0x5)
+WinCreatorGroupServerSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinCreatorGroupServerSid", 0x6)
+WinNtAuthoritySid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinNtAuthoritySid", 0x7)
+WinDialupSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinDialupSid", 0x8)
+WinNetworkSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinNetworkSid", 0x9)
+WinBatchSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinBatchSid", 0xa)
+WinInteractiveSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinInteractiveSid", 0xb)
+WinServiceSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinServiceSid", 0xc)
+WinAnonymousSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinAnonymousSid", 0xd)
+WinProxySid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinProxySid", 0xe)
+WinEnterpriseControllersSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinEnterpriseControllersSid", 0xf)
+WinSelfSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinSelfSid", 0x10)
+WinAuthenticatedUserSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinAuthenticatedUserSid", 0x11)
+WinRestrictedCodeSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinRestrictedCodeSid", 0x12)
+WinTerminalServerSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinTerminalServerSid", 0x13)
+WinRemoteLogonIdSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinRemoteLogonIdSid", 0x14)
+WinLogonIdsSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinLogonIdsSid", 0x15)
+WinLocalSystemSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinLocalSystemSid", 0x16)
+WinLocalServiceSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinLocalServiceSid", 0x17)
+WinNetworkServiceSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinNetworkServiceSid", 0x18)
+WinBuiltinDomainSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinBuiltinDomainSid", 0x19)
+WinBuiltinAdministratorsSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinBuiltinAdministratorsSid", 0x1a)
+WinBuiltinUsersSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinBuiltinUsersSid", 0x1b)
+WinBuiltinGuestsSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinBuiltinGuestsSid", 0x1c)
+WinBuiltinPowerUsersSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinBuiltinPowerUsersSid", 0x1d)
+WinBuiltinAccountOperatorsSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinBuiltinAccountOperatorsSid", 0x1e)
+WinBuiltinSystemOperatorsSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinBuiltinSystemOperatorsSid", 0x1f)
+WinBuiltinPrintOperatorsSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinBuiltinPrintOperatorsSid", 0x20)
+WinBuiltinBackupOperatorsSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinBuiltinBackupOperatorsSid", 0x21)
+WinBuiltinReplicatorSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinBuiltinReplicatorSid", 0x22)
+WinBuiltinPreWindows2000CompatibleAccessSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinBuiltinPreWindows2000CompatibleAccessSid", 0x23)
+WinBuiltinRemoteDesktopUsersSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinBuiltinRemoteDesktopUsersSid", 0x24)
+WinBuiltinNetworkConfigurationOperatorsSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinBuiltinNetworkConfigurationOperatorsSid", 0x25)
+WinAccountAdministratorSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinAccountAdministratorSid", 0x26)
+WinAccountGuestSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinAccountGuestSid", 0x27)
+WinAccountKrbtgtSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinAccountKrbtgtSid", 0x28)
+WinAccountDomainAdminsSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinAccountDomainAdminsSid", 0x29)
+WinAccountDomainUsersSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinAccountDomainUsersSid", 0x2a)
+WinAccountDomainGuestsSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinAccountDomainGuestsSid", 0x2b)
+WinAccountComputersSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinAccountComputersSid", 0x2c)
+WinAccountControllersSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinAccountControllersSid", 0x2d)
+WinAccountCertAdminsSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinAccountCertAdminsSid", 0x2e)
+WinAccountSchemaAdminsSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinAccountSchemaAdminsSid", 0x2f)
+WinAccountEnterpriseAdminsSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinAccountEnterpriseAdminsSid", 0x30)
+WinAccountPolicyAdminsSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinAccountPolicyAdminsSid", 0x31)
+WinAccountRasAndIasServersSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinAccountRasAndIasServersSid", 0x32)
+WinNTLMAuthenticationSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinNTLMAuthenticationSid", 0x33)
+WinDigestAuthenticationSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinDigestAuthenticationSid", 0x34)
+WinSChannelAuthenticationSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinSChannelAuthenticationSid", 0x35)
+WinThisOrganizationSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinThisOrganizationSid", 0x36)
+WinOtherOrganizationSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinOtherOrganizationSid", 0x37)
+WinBuiltinIncomingForestTrustBuildersSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinBuiltinIncomingForestTrustBuildersSid", 0x38)
+WinBuiltinPerfMonitoringUsersSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinBuiltinPerfMonitoringUsersSid", 0x39)
+WinBuiltinPerfLoggingUsersSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinBuiltinPerfLoggingUsersSid", 0x3a)
+WinBuiltinAuthorizationAccessSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinBuiltinAuthorizationAccessSid", 0x3b)
+WinBuiltinTerminalServerLicenseServersSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinBuiltinTerminalServerLicenseServersSid", 0x3c)
+WinBuiltinDCOMUsersSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinBuiltinDCOMUsersSid", 0x3d)
+WinBuiltinIUsersSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinBuiltinIUsersSid", 0x3e)
+WinIUserSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinIUserSid", 0x3f)
+WinBuiltinCryptoOperatorsSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinBuiltinCryptoOperatorsSid", 0x40)
+WinUntrustedLabelSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinUntrustedLabelSid", 0x41)
+WinLowLabelSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinLowLabelSid", 0x42)
+WinMediumLabelSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinMediumLabelSid", 0x43)
+WinHighLabelSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinHighLabelSid", 0x44)
+WinSystemLabelSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinSystemLabelSid", 0x45)
+WinWriteRestrictedCodeSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinWriteRestrictedCodeSid", 0x46)
+WinCreatorOwnerRightsSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinCreatorOwnerRightsSid", 0x47)
+WinCacheablePrincipalsGroupSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinCacheablePrincipalsGroupSid", 0x48)
+WinNonCacheablePrincipalsGroupSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinNonCacheablePrincipalsGroupSid", 0x49)
+WinEnterpriseReadonlyControllersSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinEnterpriseReadonlyControllersSid", 0x4a)
+WinAccountReadonlyControllersSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinAccountReadonlyControllersSid", 0x4b)
+WinBuiltinEventLogReadersGroup = EnumValue("_WELL_KNOWN_SID_TYPE", "WinBuiltinEventLogReadersGroup", 0x4c)
+WinNewEnterpriseReadonlyControllersSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinNewEnterpriseReadonlyControllersSid", 0x4d)
+WinBuiltinCertSvcDComAccessGroup = EnumValue("_WELL_KNOWN_SID_TYPE", "WinBuiltinCertSvcDComAccessGroup", 0x4e)
+WinMediumPlusLabelSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinMediumPlusLabelSid", 0x4f)
+WinLocalLogonSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinLocalLogonSid", 0x50)
+WinConsoleLogonSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinConsoleLogonSid", 0x51)
+WinThisOrganizationCertificateSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinThisOrganizationCertificateSid", 0x52)
+WinApplicationPackageAuthoritySid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinApplicationPackageAuthoritySid", 0x53)
+WinBuiltinAnyPackageSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinBuiltinAnyPackageSid", 0x54)
+WinCapabilityInternetClientSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinCapabilityInternetClientSid", 0x55)
+WinCapabilityInternetClientServerSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinCapabilityInternetClientServerSid", 0x56)
+WinCapabilityPrivateNetworkClientServerSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinCapabilityPrivateNetworkClientServerSid", 0x57)
+WinCapabilityPicturesLibrarySid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinCapabilityPicturesLibrarySid", 0x58)
+WinCapabilityVideosLibrarySid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinCapabilityVideosLibrarySid", 0x59)
+WinCapabilityMusicLibrarySid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinCapabilityMusicLibrarySid", 0x5a)
+WinCapabilityDocumentsLibrarySid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinCapabilityDocumentsLibrarySid", 0x5b)
+WinCapabilitySharedUserCertificatesSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinCapabilitySharedUserCertificatesSid", 0x5c)
+WinCapabilityEnterpriseAuthenticationSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinCapabilityEnterpriseAuthenticationSid", 0x5d)
+WinCapabilityRemovableStorageSid = EnumValue("_WELL_KNOWN_SID_TYPE", "WinCapabilityRemovableStorageSid", 0x5e)
+class _WELL_KNOWN_SID_TYPE(EnumType):
+    values = [WinNullSid, WinWorldSid, WinLocalSid, WinCreatorOwnerSid, WinCreatorGroupSid, WinCreatorOwnerServerSid, WinCreatorGroupServerSid, WinNtAuthoritySid, WinDialupSid, WinNetworkSid, WinBatchSid, WinInteractiveSid, WinServiceSid, WinAnonymousSid, WinProxySid, WinEnterpriseControllersSid, WinSelfSid, WinAuthenticatedUserSid, WinRestrictedCodeSid, WinTerminalServerSid, WinRemoteLogonIdSid, WinLogonIdsSid, WinLocalSystemSid, WinLocalServiceSid, WinNetworkServiceSid, WinBuiltinDomainSid, WinBuiltinAdministratorsSid, WinBuiltinUsersSid, WinBuiltinGuestsSid, WinBuiltinPowerUsersSid, WinBuiltinAccountOperatorsSid, WinBuiltinSystemOperatorsSid, WinBuiltinPrintOperatorsSid, WinBuiltinBackupOperatorsSid, WinBuiltinReplicatorSid, WinBuiltinPreWindows2000CompatibleAccessSid, WinBuiltinRemoteDesktopUsersSid, WinBuiltinNetworkConfigurationOperatorsSid, WinAccountAdministratorSid, WinAccountGuestSid, WinAccountKrbtgtSid, WinAccountDomainAdminsSid, WinAccountDomainUsersSid, WinAccountDomainGuestsSid, WinAccountComputersSid, WinAccountControllersSid, WinAccountCertAdminsSid, WinAccountSchemaAdminsSid, WinAccountEnterpriseAdminsSid, WinAccountPolicyAdminsSid, WinAccountRasAndIasServersSid, WinNTLMAuthenticationSid, WinDigestAuthenticationSid, WinSChannelAuthenticationSid, WinThisOrganizationSid, WinOtherOrganizationSid, WinBuiltinIncomingForestTrustBuildersSid, WinBuiltinPerfMonitoringUsersSid, WinBuiltinPerfLoggingUsersSid, WinBuiltinAuthorizationAccessSid, WinBuiltinTerminalServerLicenseServersSid, WinBuiltinDCOMUsersSid, WinBuiltinIUsersSid, WinIUserSid, WinBuiltinCryptoOperatorsSid, WinUntrustedLabelSid, WinLowLabelSid, WinMediumLabelSid, WinHighLabelSid, WinSystemLabelSid, WinWriteRestrictedCodeSid, WinCreatorOwnerRightsSid, WinCacheablePrincipalsGroupSid, WinNonCacheablePrincipalsGroupSid, WinEnterpriseReadonlyControllersSid, WinAccountReadonlyControllersSid, WinBuiltinEventLogReadersGroup, WinNewEnterpriseReadonlyControllersSid, WinBuiltinCertSvcDComAccessGroup, WinMediumPlusLabelSid, WinLocalLogonSid, WinConsoleLogonSid, WinThisOrganizationCertificateSid, WinApplicationPackageAuthoritySid, WinBuiltinAnyPackageSid, WinCapabilityInternetClientSid, WinCapabilityInternetClientServerSid, WinCapabilityPrivateNetworkClientServerSid, WinCapabilityPicturesLibrarySid, WinCapabilityVideosLibrarySid, WinCapabilityMusicLibrarySid, WinCapabilityDocumentsLibrarySid, WinCapabilitySharedUserCertificatesSid, WinCapabilityEnterpriseAuthenticationSid, WinCapabilityRemovableStorageSid]
+    mapper = {x:x for x in values}
+WELL_KNOWN_SID_TYPE = _WELL_KNOWN_SID_TYPE
+
+
+ViewShare = EnumValue("_SECTION_INHERIT", "ViewShare", 0x1)
+ViewUnmap = EnumValue("_SECTION_INHERIT", "ViewUnmap", 0x2)
+class _SECTION_INHERIT(EnumType):
+    values = [ViewShare, ViewUnmap]
+    mapper = {x:x for x in values}
+SECTION_INHERIT = _SECTION_INHERIT
+
+
+MemoryBasicInformation = EnumValue("_MEMORY_INFORMATION_CLASS", "MemoryBasicInformation", 0x0)
+MemoryWorkingSetList = EnumValue("_MEMORY_INFORMATION_CLASS", "MemoryWorkingSetList", 0x1)
+MemorySectionName = EnumValue("_MEMORY_INFORMATION_CLASS", "MemorySectionName", 0x2)
+MemoryBasicVlmInformation = EnumValue("_MEMORY_INFORMATION_CLASS", "MemoryBasicVlmInformation", 0x3)
+MemoryWorkingSetListEx = EnumValue("_MEMORY_INFORMATION_CLASS", "MemoryWorkingSetListEx", 0x4)
+class _MEMORY_INFORMATION_CLASS(EnumType):
+    values = [MemoryBasicInformation, MemoryWorkingSetList, MemorySectionName, MemoryBasicVlmInformation, MemoryWorkingSetListEx]
+    mapper = {x:x for x in values}
+MEMORY_INFORMATION_CLASS = _MEMORY_INFORMATION_CLASS
+
+
+ThreadBasicInformation = EnumValue("_THREAD_INFORMATION_CLASS", "ThreadBasicInformation", 0x0)
+ThreadTimes = EnumValue("_THREAD_INFORMATION_CLASS", "ThreadTimes", 0x1)
+ThreadPriority = EnumValue("_THREAD_INFORMATION_CLASS", "ThreadPriority", 0x2)
+ThreadBasePriority = EnumValue("_THREAD_INFORMATION_CLASS", "ThreadBasePriority", 0x3)
+ThreadAffinityMask = EnumValue("_THREAD_INFORMATION_CLASS", "ThreadAffinityMask", 0x4)
+ThreadImpersonationToken = EnumValue("_THREAD_INFORMATION_CLASS", "ThreadImpersonationToken", 0x5)
+ThreadDescriptorTableEntry = EnumValue("_THREAD_INFORMATION_CLASS", "ThreadDescriptorTableEntry", 0x6)
+ThreadEnableAlignmentFaultFixup = EnumValue("_THREAD_INFORMATION_CLASS", "ThreadEnableAlignmentFaultFixup", 0x7)
+ThreadEventPair = EnumValue("_THREAD_INFORMATION_CLASS", "ThreadEventPair", 0x8)
+ThreadQuerySetWin32StartAddress = EnumValue("_THREAD_INFORMATION_CLASS", "ThreadQuerySetWin32StartAddress", 0x9)
+ThreadZeroTlsCell = EnumValue("_THREAD_INFORMATION_CLASS", "ThreadZeroTlsCell", 0xa)
+ThreadPerformanceCount = EnumValue("_THREAD_INFORMATION_CLASS", "ThreadPerformanceCount", 0xb)
+ThreadAmILastThread = EnumValue("_THREAD_INFORMATION_CLASS", "ThreadAmILastThread", 0xc)
+ThreadIdealProcessor = EnumValue("_THREAD_INFORMATION_CLASS", "ThreadIdealProcessor", 0xd)
+ThreadPriorityBoost = EnumValue("_THREAD_INFORMATION_CLASS", "ThreadPriorityBoost", 0xe)
+ThreadSetTlsArrayAddress = EnumValue("_THREAD_INFORMATION_CLASS", "ThreadSetTlsArrayAddress", 0xf)
+ThreadIsIoPending = EnumValue("_THREAD_INFORMATION_CLASS", "ThreadIsIoPending", 0x10)
+ThreadHideFromDebugger = EnumValue("_THREAD_INFORMATION_CLASS", "ThreadHideFromDebugger", 0x11)
+class _THREAD_INFORMATION_CLASS(EnumType):
+    values = [ThreadBasicInformation, ThreadTimes, ThreadPriority, ThreadBasePriority, ThreadAffinityMask, ThreadImpersonationToken, ThreadDescriptorTableEntry, ThreadEnableAlignmentFaultFixup, ThreadEventPair, ThreadQuerySetWin32StartAddress, ThreadZeroTlsCell, ThreadPerformanceCount, ThreadAmILastThread, ThreadIdealProcessor, ThreadPriorityBoost, ThreadSetTlsArrayAddress, ThreadIsIoPending, ThreadHideFromDebugger]
+    mapper = {x:x for x in values}
+THREAD_INFORMATION_CLASS = _THREAD_INFORMATION_CLASS
+PTHREAD_INFORMATION_CLASS = POINTER(_THREAD_INFORMATION_CLASS)
+
+
+TCP_TABLE_BASIC_LISTENER = EnumValue("_TCP_TABLE_CLASS", "TCP_TABLE_BASIC_LISTENER", 0x0)
+TCP_TABLE_BASIC_CONNECTIONS = EnumValue("_TCP_TABLE_CLASS", "TCP_TABLE_BASIC_CONNECTIONS", 0x1)
+TCP_TABLE_BASIC_ALL = EnumValue("_TCP_TABLE_CLASS", "TCP_TABLE_BASIC_ALL", 0x2)
+TCP_TABLE_OWNER_PID_LISTENER = EnumValue("_TCP_TABLE_CLASS", "TCP_TABLE_OWNER_PID_LISTENER", 0x3)
+TCP_TABLE_OWNER_PID_CONNECTIONS = EnumValue("_TCP_TABLE_CLASS", "TCP_TABLE_OWNER_PID_CONNECTIONS", 0x4)
+TCP_TABLE_OWNER_PID_ALL = EnumValue("_TCP_TABLE_CLASS", "TCP_TABLE_OWNER_PID_ALL", 0x5)
+TCP_TABLE_OWNER_MODULE_LISTENER = EnumValue("_TCP_TABLE_CLASS", "TCP_TABLE_OWNER_MODULE_LISTENER", 0x6)
+TCP_TABLE_OWNER_MODULE_CONNECTIONS = EnumValue("_TCP_TABLE_CLASS", "TCP_TABLE_OWNER_MODULE_CONNECTIONS", 0x7)
+TCP_TABLE_OWNER_MODULE_ALL = EnumValue("_TCP_TABLE_CLASS", "TCP_TABLE_OWNER_MODULE_ALL", 0x8)
+class _TCP_TABLE_CLASS(EnumType):
+    values = [TCP_TABLE_BASIC_LISTENER, TCP_TABLE_BASIC_CONNECTIONS, TCP_TABLE_BASIC_ALL, TCP_TABLE_OWNER_PID_LISTENER, TCP_TABLE_OWNER_PID_CONNECTIONS, TCP_TABLE_OWNER_PID_ALL, TCP_TABLE_OWNER_MODULE_LISTENER, TCP_TABLE_OWNER_MODULE_CONNECTIONS, TCP_TABLE_OWNER_MODULE_ALL]
+    mapper = {x:x for x in values}
+TCP_TABLE_CLASS = _TCP_TABLE_CLASS
+
+
+VT_EMPTY = EnumValue("_VARENUM", "VT_EMPTY", 0x0)
+VT_NULL = EnumValue("_VARENUM", "VT_NULL", 0x1)
+VT_I2 = EnumValue("_VARENUM", "VT_I2", 0x2)
+VT_I4 = EnumValue("_VARENUM", "VT_I4", 0x3)
+VT_R4 = EnumValue("_VARENUM", "VT_R4", 0x4)
+VT_R8 = EnumValue("_VARENUM", "VT_R8", 0x5)
+VT_CY = EnumValue("_VARENUM", "VT_CY", 0x6)
+VT_DATE = EnumValue("_VARENUM", "VT_DATE", 0x7)
+VT_BSTR = EnumValue("_VARENUM", "VT_BSTR", 0x8)
+VT_DISPATCH = EnumValue("_VARENUM", "VT_DISPATCH", 0x9)
+VT_ERROR = EnumValue("_VARENUM", "VT_ERROR", 0xa)
+VT_BOOL = EnumValue("_VARENUM", "VT_BOOL", 0xb)
+VT_VARIANT = EnumValue("_VARENUM", "VT_VARIANT", 0xc)
+VT_UNKNOWN = EnumValue("_VARENUM", "VT_UNKNOWN", 0xd)
+VT_DECIMAL = EnumValue("_VARENUM", "VT_DECIMAL", 0xe)
+VT_I1 = EnumValue("_VARENUM", "VT_I1", 0x10)
+VT_UI1 = EnumValue("_VARENUM", "VT_UI1", 0x11)
+VT_UI2 = EnumValue("_VARENUM", "VT_UI2", 0x12)
+VT_UI4 = EnumValue("_VARENUM", "VT_UI4", 0x13)
+VT_I8 = EnumValue("_VARENUM", "VT_I8", 0x14)
+VT_UI8 = EnumValue("_VARENUM", "VT_UI8", 0x15)
+VT_INT = EnumValue("_VARENUM", "VT_INT", 0x16)
+VT_UINT = EnumValue("_VARENUM", "VT_UINT", 0x17)
+VT_VOID = EnumValue("_VARENUM", "VT_VOID", 0x18)
+VT_HRESULT = EnumValue("_VARENUM", "VT_HRESULT", 0x19)
+VT_PTR = EnumValue("_VARENUM", "VT_PTR", 0x1a)
+VT_SAFEARRAY = EnumValue("_VARENUM", "VT_SAFEARRAY", 0x1b)
+VT_CARRAY = EnumValue("_VARENUM", "VT_CARRAY", 0x1c)
+VT_USERDEFINED = EnumValue("_VARENUM", "VT_USERDEFINED", 0x1d)
+VT_LPSTR = EnumValue("_VARENUM", "VT_LPSTR", 0x1e)
+VT_LPWSTR = EnumValue("_VARENUM", "VT_LPWSTR", 0x1f)
+VT_RECORD = EnumValue("_VARENUM", "VT_RECORD", 0x24)
+VT_INT_PTR = EnumValue("_VARENUM", "VT_INT_PTR", 0x25)
+VT_UINT_PTR = EnumValue("_VARENUM", "VT_UINT_PTR", 0x26)
+VT_FILETIME = EnumValue("_VARENUM", "VT_FILETIME", 0x40)
+VT_BLOB = EnumValue("_VARENUM", "VT_BLOB", 0x41)
+VT_STREAM = EnumValue("_VARENUM", "VT_STREAM", 0x42)
+VT_STORAGE = EnumValue("_VARENUM", "VT_STORAGE", 0x43)
+VT_STREAMED_OBJECT = EnumValue("_VARENUM", "VT_STREAMED_OBJECT", 0x44)
+VT_STORED_OBJECT = EnumValue("_VARENUM", "VT_STORED_OBJECT", 0x45)
+VT_BLOB_OBJECT = EnumValue("_VARENUM", "VT_BLOB_OBJECT", 0x46)
+VT_CF = EnumValue("_VARENUM", "VT_CF", 0x47)
+VT_CLSID = EnumValue("_VARENUM", "VT_CLSID", 0x48)
+VT_VERSIONED_STREAM = EnumValue("_VARENUM", "VT_VERSIONED_STREAM", 0x49)
+VT_BSTR_BLOB = EnumValue("_VARENUM", "VT_BSTR_BLOB", 0xfff)
+VT_VECTOR = EnumValue("_VARENUM", "VT_VECTOR", 0x1000)
+VT_ARRAY = EnumValue("_VARENUM", "VT_ARRAY", 0x2000)
+VT_BYREF = EnumValue("_VARENUM", "VT_BYREF", 0x4000)
+VT_RESERVED = EnumValue("_VARENUM", "VT_RESERVED", 0x8000)
+VT_ILLEGAL = EnumValue("_VARENUM", "VT_ILLEGAL", 0xffff)
+VT_ILLEGALMASKED = EnumValue("_VARENUM", "VT_ILLEGALMASKED", 0xfff)
+VT_TYPEMASK = EnumValue("_VARENUM", "VT_TYPEMASK", 0xfff)
+class _VARENUM(EnumType):
+    values = [VT_EMPTY, VT_NULL, VT_I2, VT_I4, VT_R4, VT_R8, VT_CY, VT_DATE, VT_BSTR, VT_DISPATCH, VT_ERROR, VT_BOOL, VT_VARIANT, VT_UNKNOWN, VT_DECIMAL, VT_I1, VT_UI1, VT_UI2, VT_UI4, VT_I8, VT_UI8, VT_INT, VT_UINT, VT_VOID, VT_HRESULT, VT_PTR, VT_SAFEARRAY, VT_CARRAY, VT_USERDEFINED, VT_LPSTR, VT_LPWSTR, VT_RECORD, VT_INT_PTR, VT_UINT_PTR, VT_FILETIME, VT_BLOB, VT_STREAM, VT_STORAGE, VT_STREAMED_OBJECT, VT_STORED_OBJECT, VT_BLOB_OBJECT, VT_CF, VT_CLSID, VT_VERSIONED_STREAM, VT_BSTR_BLOB, VT_VECTOR, VT_ARRAY, VT_BYREF, VT_RESERVED, VT_ILLEGAL, VT_ILLEGALMASKED, VT_TYPEMASK]
+    mapper = {x:x for x in values}
+VARENUM = _VARENUM
+
+
+UDP_TABLE_BASIC = EnumValue("_UDP_TABLE_CLASS", "UDP_TABLE_BASIC", 0x0)
+UDP_TABLE_OWNER_PID = EnumValue("_UDP_TABLE_CLASS", "UDP_TABLE_OWNER_PID", 0x1)
+UDP_TABLE_OWNER_MODULE = EnumValue("_UDP_TABLE_CLASS", "UDP_TABLE_OWNER_MODULE", 0x2)
+class _UDP_TABLE_CLASS(EnumType):
+    values = [UDP_TABLE_BASIC, UDP_TABLE_OWNER_PID, UDP_TABLE_OWNER_MODULE]
+    mapper = {x:x for x in values}
+UDP_TABLE_CLASS = _UDP_TABLE_CLASS
+
+
+NET_FW_RULE_DIR_IN = EnumValue("NET_FW_RULE_DIRECTION_", "NET_FW_RULE_DIR_IN", 0x1)
+NET_FW_RULE_DIR_OUT = EnumValue("NET_FW_RULE_DIRECTION_", "NET_FW_RULE_DIR_OUT", 0x2)
+NET_FW_RULE_DIR_MAX = EnumValue("NET_FW_RULE_DIRECTION_", "NET_FW_RULE_DIR_MAX", 0x3)
+
[docs]class NET_FW_RULE_DIRECTION_(EnumType): + values = [NET_FW_RULE_DIR_IN, NET_FW_RULE_DIR_OUT, NET_FW_RULE_DIR_MAX] + mapper = {x:x for x in values}
+NET_FW_RULE_DIRECTION = NET_FW_RULE_DIRECTION_ + + +NET_FW_PROFILE2_DOMAIN = EnumValue("NET_FW_PROFILE_TYPE2_", "NET_FW_PROFILE2_DOMAIN", 0x1) +NET_FW_PROFILE2_PRIVATE = EnumValue("NET_FW_PROFILE_TYPE2_", "NET_FW_PROFILE2_PRIVATE", 0x2) +NET_FW_PROFILE2_PUBLIC = EnumValue("NET_FW_PROFILE_TYPE2_", "NET_FW_PROFILE2_PUBLIC", 0x4) +NET_FW_PROFILE2_ALL = EnumValue("NET_FW_PROFILE_TYPE2_", "NET_FW_PROFILE2_ALL", 0x7fffffff) +
[docs]class NET_FW_PROFILE_TYPE2_(EnumType): + values = [NET_FW_PROFILE2_DOMAIN, NET_FW_PROFILE2_PRIVATE, NET_FW_PROFILE2_PUBLIC, NET_FW_PROFILE2_ALL] + mapper = {x:x for x in values}
+NET_FW_PROFILE_TYPE2 = NET_FW_PROFILE_TYPE2_ + + +MIB_TCP_STATE_CLOSED = EnumValue("_MIB_TCP_STATE", "MIB_TCP_STATE_CLOSED", 0x1) +MIB_TCP_STATE_LISTEN = EnumValue("_MIB_TCP_STATE", "MIB_TCP_STATE_LISTEN", 0x2) +MIB_TCP_STATE_SYN_SENT = EnumValue("_MIB_TCP_STATE", "MIB_TCP_STATE_SYN_SENT", 0x3) +MIB_TCP_STATE_SYN_RCVD = EnumValue("_MIB_TCP_STATE", "MIB_TCP_STATE_SYN_RCVD", 0x4) +MIB_TCP_STATE_ESTAB = EnumValue("_MIB_TCP_STATE", "MIB_TCP_STATE_ESTAB", 0x5) +MIB_TCP_STATE_FIN_WAIT1 = EnumValue("_MIB_TCP_STATE", "MIB_TCP_STATE_FIN_WAIT1", 0x6) +MIB_TCP_STATE_FIN_WAIT2 = EnumValue("_MIB_TCP_STATE", "MIB_TCP_STATE_FIN_WAIT2", 0x7) +MIB_TCP_STATE_CLOSE_WAIT = EnumValue("_MIB_TCP_STATE", "MIB_TCP_STATE_CLOSE_WAIT", 0x8) +MIB_TCP_STATE_CLOSING = EnumValue("_MIB_TCP_STATE", "MIB_TCP_STATE_CLOSING", 0x9) +MIB_TCP_STATE_LAST_ACK = EnumValue("_MIB_TCP_STATE", "MIB_TCP_STATE_LAST_ACK", 0xa) +MIB_TCP_STATE_TIME_WAIT = EnumValue("_MIB_TCP_STATE", "MIB_TCP_STATE_TIME_WAIT", 0xb) +MIB_TCP_STATE_DELETE_TCB = EnumValue("_MIB_TCP_STATE", "MIB_TCP_STATE_DELETE_TCB", 0xc) +class _MIB_TCP_STATE(EnumType): + values = [MIB_TCP_STATE_CLOSED, MIB_TCP_STATE_LISTEN, MIB_TCP_STATE_SYN_SENT, MIB_TCP_STATE_SYN_RCVD, MIB_TCP_STATE_ESTAB, MIB_TCP_STATE_FIN_WAIT1, MIB_TCP_STATE_FIN_WAIT2, MIB_TCP_STATE_CLOSE_WAIT, MIB_TCP_STATE_CLOSING, MIB_TCP_STATE_LAST_ACK, MIB_TCP_STATE_TIME_WAIT, MIB_TCP_STATE_DELETE_TCB] + mapper = {x:x for x in values} +MIB_TCP_STATE = _MIB_TCP_STATE + + +NET_FW_IP_PROTOCOL_TCP = EnumValue("NET_FW_IP_PROTOCOL_", "NET_FW_IP_PROTOCOL_TCP", 0x6) +NET_FW_IP_PROTOCOL_UDP = EnumValue("NET_FW_IP_PROTOCOL_", "NET_FW_IP_PROTOCOL_UDP", 0x11) +NET_FW_IP_PROTOCOL_ANY = EnumValue("NET_FW_IP_PROTOCOL_", "NET_FW_IP_PROTOCOL_ANY", 0x100) +
[docs]class NET_FW_IP_PROTOCOL_(EnumType): + values = [NET_FW_IP_PROTOCOL_TCP, NET_FW_IP_PROTOCOL_UDP, NET_FW_IP_PROTOCOL_ANY] + mapper = {x:x for x in values}
+NET_FW_IP_PROTOCOL = NET_FW_IP_PROTOCOL_ + + +TokenInvalid = EnumValue("_TOKEN_INFORMATION_CLASS", "TokenInvalid", 0x0) +TokenUser = EnumValue("_TOKEN_INFORMATION_CLASS", "TokenUser", 0x1) +TokenGroups = EnumValue("_TOKEN_INFORMATION_CLASS", "TokenGroups", 0x2) +TokenPrivileges = EnumValue("_TOKEN_INFORMATION_CLASS", "TokenPrivileges", 0x3) +TokenOwner = EnumValue("_TOKEN_INFORMATION_CLASS", "TokenOwner", 0x4) +TokenPrimaryGroup = EnumValue("_TOKEN_INFORMATION_CLASS", "TokenPrimaryGroup", 0x5) +TokenDefaultDacl = EnumValue("_TOKEN_INFORMATION_CLASS", "TokenDefaultDacl", 0x6) +TokenSource = EnumValue("_TOKEN_INFORMATION_CLASS", "TokenSource", 0x7) +TokenType = EnumValue("_TOKEN_INFORMATION_CLASS", "TokenType", 0x8) +TokenImpersonationLevel = EnumValue("_TOKEN_INFORMATION_CLASS", "TokenImpersonationLevel", 0x9) +TokenStatistics = EnumValue("_TOKEN_INFORMATION_CLASS", "TokenStatistics", 0xa) +TokenRestrictedSids = EnumValue("_TOKEN_INFORMATION_CLASS", "TokenRestrictedSids", 0xb) +TokenSessionId = EnumValue("_TOKEN_INFORMATION_CLASS", "TokenSessionId", 0xc) +TokenGroupsAndPrivileges = EnumValue("_TOKEN_INFORMATION_CLASS", "TokenGroupsAndPrivileges", 0xd) +TokenSessionReference = EnumValue("_TOKEN_INFORMATION_CLASS", "TokenSessionReference", 0xe) +TokenSandBoxInert = EnumValue("_TOKEN_INFORMATION_CLASS", "TokenSandBoxInert", 0xf) +TokenAuditPolicy = EnumValue("_TOKEN_INFORMATION_CLASS", "TokenAuditPolicy", 0x10) +TokenOrigin = EnumValue("_TOKEN_INFORMATION_CLASS", "TokenOrigin", 0x11) +TokenElevationType = EnumValue("_TOKEN_INFORMATION_CLASS", "TokenElevationType", 0x12) +TokenLinkedToken = EnumValue("_TOKEN_INFORMATION_CLASS", "TokenLinkedToken", 0x13) +TokenElevation = EnumValue("_TOKEN_INFORMATION_CLASS", "TokenElevation", 0x14) +TokenHasRestrictions = EnumValue("_TOKEN_INFORMATION_CLASS", "TokenHasRestrictions", 0x15) +TokenAccessInformation = EnumValue("_TOKEN_INFORMATION_CLASS", "TokenAccessInformation", 0x16) +TokenVirtualizationAllowed = EnumValue("_TOKEN_INFORMATION_CLASS", "TokenVirtualizationAllowed", 0x17) +TokenVirtualizationEnabled = EnumValue("_TOKEN_INFORMATION_CLASS", "TokenVirtualizationEnabled", 0x18) +TokenIntegrityLevel = EnumValue("_TOKEN_INFORMATION_CLASS", "TokenIntegrityLevel", 0x19) +TokenUIAccess = EnumValue("_TOKEN_INFORMATION_CLASS", "TokenUIAccess", 0x1a) +TokenMandatoryPolicy = EnumValue("_TOKEN_INFORMATION_CLASS", "TokenMandatoryPolicy", 0x1b) +TokenLogonSid = EnumValue("_TOKEN_INFORMATION_CLASS", "TokenLogonSid", 0x1c) +TokenIsAppContainer = EnumValue("_TOKEN_INFORMATION_CLASS", "TokenIsAppContainer", 0x1d) +TokenCapabilities = EnumValue("_TOKEN_INFORMATION_CLASS", "TokenCapabilities", 0x1e) +TokenAppContainerSid = EnumValue("_TOKEN_INFORMATION_CLASS", "TokenAppContainerSid", 0x1f) +TokenAppContainerNumber = EnumValue("_TOKEN_INFORMATION_CLASS", "TokenAppContainerNumber", 0x20) +TokenUserClaimAttributes = EnumValue("_TOKEN_INFORMATION_CLASS", "TokenUserClaimAttributes", 0x21) +TokenDeviceClaimAttributes = EnumValue("_TOKEN_INFORMATION_CLASS", "TokenDeviceClaimAttributes", 0x22) +TokenRestrictedUserClaimAttributes = EnumValue("_TOKEN_INFORMATION_CLASS", "TokenRestrictedUserClaimAttributes", 0x23) +TokenRestrictedDeviceClaimAttributes = EnumValue("_TOKEN_INFORMATION_CLASS", "TokenRestrictedDeviceClaimAttributes", 0x24) +TokenDeviceGroups = EnumValue("_TOKEN_INFORMATION_CLASS", "TokenDeviceGroups", 0x25) +TokenRestrictedDeviceGroups = EnumValue("_TOKEN_INFORMATION_CLASS", "TokenRestrictedDeviceGroups", 0x26) +TokenSecurityAttributes = EnumValue("_TOKEN_INFORMATION_CLASS", "TokenSecurityAttributes", 0x27) +TokenIsRestricted = EnumValue("_TOKEN_INFORMATION_CLASS", "TokenIsRestricted", 0x28) +MaxTokenInfoClass = EnumValue("_TOKEN_INFORMATION_CLASS", "MaxTokenInfoClass", 0x29) +class _TOKEN_INFORMATION_CLASS(EnumType): + values = [TokenInvalid, TokenUser, TokenGroups, TokenPrivileges, TokenOwner, TokenPrimaryGroup, TokenDefaultDacl, TokenSource, TokenType, TokenImpersonationLevel, TokenStatistics, TokenRestrictedSids, TokenSessionId, TokenGroupsAndPrivileges, TokenSessionReference, TokenSandBoxInert, TokenAuditPolicy, TokenOrigin, TokenElevationType, TokenLinkedToken, TokenElevation, TokenHasRestrictions, TokenAccessInformation, TokenVirtualizationAllowed, TokenVirtualizationEnabled, TokenIntegrityLevel, TokenUIAccess, TokenMandatoryPolicy, TokenLogonSid, TokenIsAppContainer, TokenCapabilities, TokenAppContainerSid, TokenAppContainerNumber, TokenUserClaimAttributes, TokenDeviceClaimAttributes, TokenRestrictedUserClaimAttributes, TokenRestrictedDeviceClaimAttributes, TokenDeviceGroups, TokenRestrictedDeviceGroups, TokenSecurityAttributes, TokenIsRestricted, MaxTokenInfoClass] + mapper = {x:x for x in values} +TOKEN_INFORMATION_CLASS = _TOKEN_INFORMATION_CLASS +PTOKEN_INFORMATION_CLASS = POINTER(_TOKEN_INFORMATION_CLASS) + + +SecurityAnonymous = EnumValue("_SECURITY_IMPERSONATION_LEVEL", "SecurityAnonymous", 0x0) +SecurityIdentification = EnumValue("_SECURITY_IMPERSONATION_LEVEL", "SecurityIdentification", 0x1) +SecurityImpersonation = EnumValue("_SECURITY_IMPERSONATION_LEVEL", "SecurityImpersonation", 0x2) +SecurityDelegation = EnumValue("_SECURITY_IMPERSONATION_LEVEL", "SecurityDelegation", 0x3) +class _SECURITY_IMPERSONATION_LEVEL(EnumType): + values = [SecurityAnonymous, SecurityIdentification, SecurityImpersonation, SecurityDelegation] + mapper = {x:x for x in values} +SECURITY_IMPERSONATION_LEVEL = _SECURITY_IMPERSONATION_LEVEL +PSECURITY_IMPERSONATION_LEVEL = POINTER(_SECURITY_IMPERSONATION_LEVEL) + + +SC_ENUM_PROCESS_INFO = EnumValue("_SC_ENUM_TYPE", "SC_ENUM_PROCESS_INFO", 0x0) +class _SC_ENUM_TYPE(EnumType): + values = [SC_ENUM_PROCESS_INFO] + mapper = {x:x for x in values} +SC_ENUM_TYPE = _SC_ENUM_TYPE + + +SC_STATUS_PROCESS_INFO = EnumValue("_SC_STATUS_TYPE", "SC_STATUS_PROCESS_INFO", 0x0) +class _SC_STATUS_TYPE(EnumType): + values = [SC_STATUS_PROCESS_INFO] + mapper = {x:x for x in values} +SC_STATUS_TYPE = _SC_STATUS_TYPE + + +ObjectBasicInformation = EnumValue("_OBJECT_INFORMATION_CLASS", "ObjectBasicInformation", 0x0) +ObjectNameInformation = EnumValue("_OBJECT_INFORMATION_CLASS", "ObjectNameInformation", 0x1) +ObjectTypeInformation = EnumValue("_OBJECT_INFORMATION_CLASS", "ObjectTypeInformation", 0x2) +class _OBJECT_INFORMATION_CLASS(EnumType): + values = [ObjectBasicInformation, ObjectNameInformation, ObjectTypeInformation] + mapper = {x:x for x in values} +OBJECT_INFORMATION_CLASS = _OBJECT_INFORMATION_CLASS + + +SidTypeUser = EnumValue("_SID_NAME_USE", "SidTypeUser", 0x1) +SidTypeGroup = EnumValue("_SID_NAME_USE", "SidTypeGroup", 0x2) +SidTypeDomain = EnumValue("_SID_NAME_USE", "SidTypeDomain", 0x3) +SidTypeAlias = EnumValue("_SID_NAME_USE", "SidTypeAlias", 0x4) +SidTypeWellKnownGroup = EnumValue("_SID_NAME_USE", "SidTypeWellKnownGroup", 0x5) +SidTypeDeletedAccount = EnumValue("_SID_NAME_USE", "SidTypeDeletedAccount", 0x6) +SidTypeInvalid = EnumValue("_SID_NAME_USE", "SidTypeInvalid", 0x7) +SidTypeUnknown = EnumValue("_SID_NAME_USE", "SidTypeUnknown", 0x8) +SidTypeComputer = EnumValue("_SID_NAME_USE", "SidTypeComputer", 0x9) +SidTypeLabel = EnumValue("_SID_NAME_USE", "SidTypeLabel", 0xa) +class _SID_NAME_USE(EnumType): + values = [SidTypeUser, SidTypeGroup, SidTypeDomain, SidTypeAlias, SidTypeWellKnownGroup, SidTypeDeletedAccount, SidTypeInvalid, SidTypeUnknown, SidTypeComputer, SidTypeLabel] + mapper = {x:x for x in values} +SID_NAME_USE = _SID_NAME_USE +PSID_NAME_USE = POINTER(_SID_NAME_USE) + + +NET_FW_ACTION_BLOCK = EnumValue("NET_FW_ACTION_", "NET_FW_ACTION_BLOCK", 0x0) +NET_FW_ACTION_ALLOW = EnumValue("NET_FW_ACTION_", "NET_FW_ACTION_ALLOW", 0x1) +NET_FW_ACTION_MAX = EnumValue("NET_FW_ACTION_", "NET_FW_ACTION_MAX", 0x2) +
[docs]class NET_FW_ACTION_(EnumType): + values = [NET_FW_ACTION_BLOCK, NET_FW_ACTION_ALLOW, NET_FW_ACTION_MAX] + mapper = {x:x for x in values}
+NET_FW_ACTION = NET_FW_ACTION_ + + +NET_FW_MODIFY_STATE_OK = EnumValue("NET_FW_MODIFY_STATE_", "NET_FW_MODIFY_STATE_OK", 0x0) +NET_FW_MODIFY_STATE_GP_OVERRIDE = EnumValue("NET_FW_MODIFY_STATE_", "NET_FW_MODIFY_STATE_GP_OVERRIDE", 0x1) +NET_FW_MODIFY_STATE_INBOUND_BLOCKED = EnumValue("NET_FW_MODIFY_STATE_", "NET_FW_MODIFY_STATE_INBOUND_BLOCKED", 0x2) +
[docs]class NET_FW_MODIFY_STATE_(EnumType): + values = [NET_FW_MODIFY_STATE_OK, NET_FW_MODIFY_STATE_GP_OVERRIDE, NET_FW_MODIFY_STATE_INBOUND_BLOCKED] + mapper = {x:x for x in values}
+NET_FW_MODIFY_STATE = NET_FW_MODIFY_STATE_ + + +WBEM_NO_ERROR = EnumValue("tag_WBEMSTATUS", "WBEM_NO_ERROR", 0x0) +WBEM_S_NO_ERROR = EnumValue("tag_WBEMSTATUS", "WBEM_S_NO_ERROR", 0x0) +WBEM_S_SAME = EnumValue("tag_WBEMSTATUS", "WBEM_S_SAME", 0x0) +WBEM_S_FALSE = EnumValue("tag_WBEMSTATUS", "WBEM_S_FALSE", 0x1) +WBEM_S_ALREADY_EXISTS = EnumValue("tag_WBEMSTATUS", "WBEM_S_ALREADY_EXISTS", 0x40001) +WBEM_S_RESET_TO_DEFAULT = EnumValue("tag_WBEMSTATUS", "WBEM_S_RESET_TO_DEFAULT", 0x40002) +WBEM_S_DIFFERENT = EnumValue("tag_WBEMSTATUS", "WBEM_S_DIFFERENT", 0x40003) +WBEM_S_TIMEDOUT = EnumValue("tag_WBEMSTATUS", "WBEM_S_TIMEDOUT", 0x40004) +WBEM_S_NO_MORE_DATA = EnumValue("tag_WBEMSTATUS", "WBEM_S_NO_MORE_DATA", 0x40005) +WBEM_S_OPERATION_CANCELLED = EnumValue("tag_WBEMSTATUS", "WBEM_S_OPERATION_CANCELLED", 0x40006) +WBEM_S_PENDING = EnumValue("tag_WBEMSTATUS", "WBEM_S_PENDING", 0x40007) +WBEM_S_DUPLICATE_OBJECTS = EnumValue("tag_WBEMSTATUS", "WBEM_S_DUPLICATE_OBJECTS", 0x40008) +WBEM_S_ACCESS_DENIED = EnumValue("tag_WBEMSTATUS", "WBEM_S_ACCESS_DENIED", 0x40009) +WBEM_S_PARTIAL_RESULTS = EnumValue("tag_WBEMSTATUS", "WBEM_S_PARTIAL_RESULTS", 0x40010) +WBEM_S_SOURCE_NOT_AVAILABLE = EnumValue("tag_WBEMSTATUS", "WBEM_S_SOURCE_NOT_AVAILABLE", 0x40017) +WBEM_E_FAILED = EnumValue("tag_WBEMSTATUS", "WBEM_E_FAILED", 0x80041001) +WBEM_E_NOT_FOUND = EnumValue("tag_WBEMSTATUS", "WBEM_E_NOT_FOUND", 0x80041002) +WBEM_E_ACCESS_DENIED = EnumValue("tag_WBEMSTATUS", "WBEM_E_ACCESS_DENIED", 0x80041003) +WBEM_E_PROVIDER_FAILURE = EnumValue("tag_WBEMSTATUS", "WBEM_E_PROVIDER_FAILURE", 0x80041004) +WBEM_E_TYPE_MISMATCH = EnumValue("tag_WBEMSTATUS", "WBEM_E_TYPE_MISMATCH", 0x80041005) +WBEM_E_OUT_OF_MEMORY = EnumValue("tag_WBEMSTATUS", "WBEM_E_OUT_OF_MEMORY", 0x80041006) +WBEM_E_INVALID_CONTEXT = EnumValue("tag_WBEMSTATUS", "WBEM_E_INVALID_CONTEXT", 0x80041007) +WBEM_E_INVALID_PARAMETER = EnumValue("tag_WBEMSTATUS", "WBEM_E_INVALID_PARAMETER", 0x80041008) +WBEM_E_NOT_AVAILABLE = EnumValue("tag_WBEMSTATUS", "WBEM_E_NOT_AVAILABLE", 0x80041009) +WBEM_E_CRITICAL_ERROR = EnumValue("tag_WBEMSTATUS", "WBEM_E_CRITICAL_ERROR", 0x8004100a) +WBEM_E_INVALID_STREAM = EnumValue("tag_WBEMSTATUS", "WBEM_E_INVALID_STREAM", 0x8004100b) +WBEM_E_NOT_SUPPORTED = EnumValue("tag_WBEMSTATUS", "WBEM_E_NOT_SUPPORTED", 0x8004100c) +WBEM_E_INVALID_SUPERCLASS = EnumValue("tag_WBEMSTATUS", "WBEM_E_INVALID_SUPERCLASS", 0x8004100d) +WBEM_E_INVALID_NAMESPACE = EnumValue("tag_WBEMSTATUS", "WBEM_E_INVALID_NAMESPACE", 0x8004100e) +WBEM_E_INVALID_OBJECT = EnumValue("tag_WBEMSTATUS", "WBEM_E_INVALID_OBJECT", 0x8004100f) +WBEM_E_INVALID_CLASS = EnumValue("tag_WBEMSTATUS", "WBEM_E_INVALID_CLASS", 0x80041010) +WBEM_E_PROVIDER_NOT_FOUND = EnumValue("tag_WBEMSTATUS", "WBEM_E_PROVIDER_NOT_FOUND", 0x80041011) +WBEM_E_INVALID_PROVIDER_REGISTRATION = EnumValue("tag_WBEMSTATUS", "WBEM_E_INVALID_PROVIDER_REGISTRATION", 0x80041012) +WBEM_E_PROVIDER_LOAD_FAILURE = EnumValue("tag_WBEMSTATUS", "WBEM_E_PROVIDER_LOAD_FAILURE", 0x80041013) +WBEM_E_INITIALIZATION_FAILURE = EnumValue("tag_WBEMSTATUS", "WBEM_E_INITIALIZATION_FAILURE", 0x80041014) +WBEM_E_TRANSPORT_FAILURE = EnumValue("tag_WBEMSTATUS", "WBEM_E_TRANSPORT_FAILURE", 0x80041015) +WBEM_E_INVALID_OPERATION = EnumValue("tag_WBEMSTATUS", "WBEM_E_INVALID_OPERATION", 0x80041016) +WBEM_E_INVALID_QUERY = EnumValue("tag_WBEMSTATUS", "WBEM_E_INVALID_QUERY", 0x80041017) +WBEM_E_INVALID_QUERY_TYPE = EnumValue("tag_WBEMSTATUS", "WBEM_E_INVALID_QUERY_TYPE", 0x80041018) +WBEM_E_ALREADY_EXISTS = EnumValue("tag_WBEMSTATUS", "WBEM_E_ALREADY_EXISTS", 0x80041019) +WBEM_E_OVERRIDE_NOT_ALLOWED = EnumValue("tag_WBEMSTATUS", "WBEM_E_OVERRIDE_NOT_ALLOWED", 0x8004101a) +WBEM_E_PROPAGATED_QUALIFIER = EnumValue("tag_WBEMSTATUS", "WBEM_E_PROPAGATED_QUALIFIER", 0x8004101b) +WBEM_E_PROPAGATED_PROPERTY = EnumValue("tag_WBEMSTATUS", "WBEM_E_PROPAGATED_PROPERTY", 0x8004101c) +WBEM_E_UNEXPECTED = EnumValue("tag_WBEMSTATUS", "WBEM_E_UNEXPECTED", 0x8004101d) +WBEM_E_ILLEGAL_OPERATION = EnumValue("tag_WBEMSTATUS", "WBEM_E_ILLEGAL_OPERATION", 0x8004101e) +WBEM_E_CANNOT_BE_KEY = EnumValue("tag_WBEMSTATUS", "WBEM_E_CANNOT_BE_KEY", 0x8004101f) +WBEM_E_INCOMPLETE_CLASS = EnumValue("tag_WBEMSTATUS", "WBEM_E_INCOMPLETE_CLASS", 0x80041020) +WBEM_E_INVALID_SYNTAX = EnumValue("tag_WBEMSTATUS", "WBEM_E_INVALID_SYNTAX", 0x80041021) +WBEM_E_NONDECORATED_OBJECT = EnumValue("tag_WBEMSTATUS", "WBEM_E_NONDECORATED_OBJECT", 0x80041022) +WBEM_E_READ_ONLY = EnumValue("tag_WBEMSTATUS", "WBEM_E_READ_ONLY", 0x80041023) +WBEM_E_PROVIDER_NOT_CAPABLE = EnumValue("tag_WBEMSTATUS", "WBEM_E_PROVIDER_NOT_CAPABLE", 0x80041024) +WBEM_E_CLASS_HAS_CHILDREN = EnumValue("tag_WBEMSTATUS", "WBEM_E_CLASS_HAS_CHILDREN", 0x80041025) +WBEM_E_CLASS_HAS_INSTANCES = EnumValue("tag_WBEMSTATUS", "WBEM_E_CLASS_HAS_INSTANCES", 0x80041026) +WBEM_E_QUERY_NOT_IMPLEMENTED = EnumValue("tag_WBEMSTATUS", "WBEM_E_QUERY_NOT_IMPLEMENTED", 0x80041027) +WBEM_E_ILLEGAL_NULL = EnumValue("tag_WBEMSTATUS", "WBEM_E_ILLEGAL_NULL", 0x80041028) +WBEM_E_INVALID_QUALIFIER_TYPE = EnumValue("tag_WBEMSTATUS", "WBEM_E_INVALID_QUALIFIER_TYPE", 0x80041029) +WBEM_E_INVALID_PROPERTY_TYPE = EnumValue("tag_WBEMSTATUS", "WBEM_E_INVALID_PROPERTY_TYPE", 0x8004102a) +WBEM_E_VALUE_OUT_OF_RANGE = EnumValue("tag_WBEMSTATUS", "WBEM_E_VALUE_OUT_OF_RANGE", 0x8004102b) +WBEM_E_CANNOT_BE_SINGLETON = EnumValue("tag_WBEMSTATUS", "WBEM_E_CANNOT_BE_SINGLETON", 0x8004102c) +WBEM_E_INVALID_CIM_TYPE = EnumValue("tag_WBEMSTATUS", "WBEM_E_INVALID_CIM_TYPE", 0x8004102d) +WBEM_E_INVALID_METHOD = EnumValue("tag_WBEMSTATUS", "WBEM_E_INVALID_METHOD", 0x8004102e) +WBEM_E_INVALID_METHOD_PARAMETERS = EnumValue("tag_WBEMSTATUS", "WBEM_E_INVALID_METHOD_PARAMETERS", 0x8004102f) +WBEM_E_SYSTEM_PROPERTY = EnumValue("tag_WBEMSTATUS", "WBEM_E_SYSTEM_PROPERTY", 0x80041030) +WBEM_E_INVALID_PROPERTY = EnumValue("tag_WBEMSTATUS", "WBEM_E_INVALID_PROPERTY", 0x80041031) +WBEM_E_CALL_CANCELLED = EnumValue("tag_WBEMSTATUS", "WBEM_E_CALL_CANCELLED", 0x80041032) +WBEM_E_SHUTTING_DOWN = EnumValue("tag_WBEMSTATUS", "WBEM_E_SHUTTING_DOWN", 0x80041033) +WBEM_E_PROPAGATED_METHOD = EnumValue("tag_WBEMSTATUS", "WBEM_E_PROPAGATED_METHOD", 0x80041034) +WBEM_E_UNSUPPORTED_PARAMETER = EnumValue("tag_WBEMSTATUS", "WBEM_E_UNSUPPORTED_PARAMETER", 0x80041035) +WBEM_E_MISSING_PARAMETER_ID = EnumValue("tag_WBEMSTATUS", "WBEM_E_MISSING_PARAMETER_ID", 0x80041036) +WBEM_E_INVALID_PARAMETER_ID = EnumValue("tag_WBEMSTATUS", "WBEM_E_INVALID_PARAMETER_ID", 0x80041037) +WBEM_E_NONCONSECUTIVE_PARAMETER_IDS = EnumValue("tag_WBEMSTATUS", "WBEM_E_NONCONSECUTIVE_PARAMETER_IDS", 0x80041038) +WBEM_E_PARAMETER_ID_ON_RETVAL = EnumValue("tag_WBEMSTATUS", "WBEM_E_PARAMETER_ID_ON_RETVAL", 0x80041039) +WBEM_E_INVALID_OBJECT_PATH = EnumValue("tag_WBEMSTATUS", "WBEM_E_INVALID_OBJECT_PATH", 0x8004103a) +WBEM_E_OUT_OF_DISK_SPACE = EnumValue("tag_WBEMSTATUS", "WBEM_E_OUT_OF_DISK_SPACE", 0x8004103b) +WBEM_E_BUFFER_TOO_SMALL = EnumValue("tag_WBEMSTATUS", "WBEM_E_BUFFER_TOO_SMALL", 0x8004103c) +WBEM_E_UNSUPPORTED_PUT_EXTENSION = EnumValue("tag_WBEMSTATUS", "WBEM_E_UNSUPPORTED_PUT_EXTENSION", 0x8004103d) +WBEM_E_UNKNOWN_OBJECT_TYPE = EnumValue("tag_WBEMSTATUS", "WBEM_E_UNKNOWN_OBJECT_TYPE", 0x8004103e) +WBEM_E_UNKNOWN_PACKET_TYPE = EnumValue("tag_WBEMSTATUS", "WBEM_E_UNKNOWN_PACKET_TYPE", 0x8004103f) +WBEM_E_MARSHAL_VERSION_MISMATCH = EnumValue("tag_WBEMSTATUS", "WBEM_E_MARSHAL_VERSION_MISMATCH", 0x80041040) +WBEM_E_MARSHAL_INVALID_SIGNATURE = EnumValue("tag_WBEMSTATUS", "WBEM_E_MARSHAL_INVALID_SIGNATURE", 0x80041041) +WBEM_E_INVALID_QUALIFIER = EnumValue("tag_WBEMSTATUS", "WBEM_E_INVALID_QUALIFIER", 0x80041042) +WBEM_E_INVALID_DUPLICATE_PARAMETER = EnumValue("tag_WBEMSTATUS", "WBEM_E_INVALID_DUPLICATE_PARAMETER", 0x80041043) +WBEM_E_TOO_MUCH_DATA = EnumValue("tag_WBEMSTATUS", "WBEM_E_TOO_MUCH_DATA", 0x80041044) +WBEM_E_SERVER_TOO_BUSY = EnumValue("tag_WBEMSTATUS", "WBEM_E_SERVER_TOO_BUSY", 0x80041045) +WBEM_E_INVALID_FLAVOR = EnumValue("tag_WBEMSTATUS", "WBEM_E_INVALID_FLAVOR", 0x80041046) +WBEM_E_CIRCULAR_REFERENCE = EnumValue("tag_WBEMSTATUS", "WBEM_E_CIRCULAR_REFERENCE", 0x80041047) +WBEM_E_UNSUPPORTED_CLASS_UPDATE = EnumValue("tag_WBEMSTATUS", "WBEM_E_UNSUPPORTED_CLASS_UPDATE", 0x80041048) +WBEM_E_CANNOT_CHANGE_KEY_INHERITANCE = EnumValue("tag_WBEMSTATUS", "WBEM_E_CANNOT_CHANGE_KEY_INHERITANCE", 0x80041049) +WBEM_E_CANNOT_CHANGE_INDEX_INHERITANCE = EnumValue("tag_WBEMSTATUS", "WBEM_E_CANNOT_CHANGE_INDEX_INHERITANCE", 0x80041050) +WBEM_E_TOO_MANY_PROPERTIES = EnumValue("tag_WBEMSTATUS", "WBEM_E_TOO_MANY_PROPERTIES", 0x80041051) +WBEM_E_UPDATE_TYPE_MISMATCH = EnumValue("tag_WBEMSTATUS", "WBEM_E_UPDATE_TYPE_MISMATCH", 0x80041052) +WBEM_E_UPDATE_OVERRIDE_NOT_ALLOWED = EnumValue("tag_WBEMSTATUS", "WBEM_E_UPDATE_OVERRIDE_NOT_ALLOWED", 0x80041053) +WBEM_E_UPDATE_PROPAGATED_METHOD = EnumValue("tag_WBEMSTATUS", "WBEM_E_UPDATE_PROPAGATED_METHOD", 0x80041054) +WBEM_E_METHOD_NOT_IMPLEMENTED = EnumValue("tag_WBEMSTATUS", "WBEM_E_METHOD_NOT_IMPLEMENTED", 0x80041055) +WBEM_E_METHOD_DISABLED = EnumValue("tag_WBEMSTATUS", "WBEM_E_METHOD_DISABLED", 0x80041056) +WBEM_E_REFRESHER_BUSY = EnumValue("tag_WBEMSTATUS", "WBEM_E_REFRESHER_BUSY", 0x80041057) +WBEM_E_UNPARSABLE_QUERY = EnumValue("tag_WBEMSTATUS", "WBEM_E_UNPARSABLE_QUERY", 0x80041058) +WBEM_E_NOT_EVENT_CLASS = EnumValue("tag_WBEMSTATUS", "WBEM_E_NOT_EVENT_CLASS", 0x80041059) +WBEM_E_MISSING_GROUP_WITHIN = EnumValue("tag_WBEMSTATUS", "WBEM_E_MISSING_GROUP_WITHIN", 0x8004105a) +WBEM_E_MISSING_AGGREGATION_LIST = EnumValue("tag_WBEMSTATUS", "WBEM_E_MISSING_AGGREGATION_LIST", 0x8004105b) +WBEM_E_PROPERTY_NOT_AN_OBJECT = EnumValue("tag_WBEMSTATUS", "WBEM_E_PROPERTY_NOT_AN_OBJECT", 0x8004105c) +WBEM_E_AGGREGATING_BY_OBJECT = EnumValue("tag_WBEMSTATUS", "WBEM_E_AGGREGATING_BY_OBJECT", 0x8004105d) +WBEM_E_UNINTERPRETABLE_PROVIDER_QUERY = EnumValue("tag_WBEMSTATUS", "WBEM_E_UNINTERPRETABLE_PROVIDER_QUERY", 0x8004105f) +WBEM_E_BACKUP_RESTORE_WINMGMT_RUNNING = EnumValue("tag_WBEMSTATUS", "WBEM_E_BACKUP_RESTORE_WINMGMT_RUNNING", 0x80041060) +WBEM_E_QUEUE_OVERFLOW = EnumValue("tag_WBEMSTATUS", "WBEM_E_QUEUE_OVERFLOW", 0x80041061) +WBEM_E_PRIVILEGE_NOT_HELD = EnumValue("tag_WBEMSTATUS", "WBEM_E_PRIVILEGE_NOT_HELD", 0x80041062) +WBEM_E_INVALID_OPERATOR = EnumValue("tag_WBEMSTATUS", "WBEM_E_INVALID_OPERATOR", 0x80041063) +WBEM_E_LOCAL_CREDENTIALS = EnumValue("tag_WBEMSTATUS", "WBEM_E_LOCAL_CREDENTIALS", 0x80041064) +WBEM_E_CANNOT_BE_ABSTRACT = EnumValue("tag_WBEMSTATUS", "WBEM_E_CANNOT_BE_ABSTRACT", 0x80041065) +WBEM_E_AMENDED_OBJECT = EnumValue("tag_WBEMSTATUS", "WBEM_E_AMENDED_OBJECT", 0x80041066) +WBEM_E_CLIENT_TOO_SLOW = EnumValue("tag_WBEMSTATUS", "WBEM_E_CLIENT_TOO_SLOW", 0x80041067) +WBEM_E_NULL_SECURITY_DESCRIPTOR = EnumValue("tag_WBEMSTATUS", "WBEM_E_NULL_SECURITY_DESCRIPTOR", 0x80041068) +WBEM_E_TIMED_OUT = EnumValue("tag_WBEMSTATUS", "WBEM_E_TIMED_OUT", 0x80041069) +WBEM_E_INVALID_ASSOCIATION = EnumValue("tag_WBEMSTATUS", "WBEM_E_INVALID_ASSOCIATION", 0x8004106a) +WBEM_E_AMBIGUOUS_OPERATION = EnumValue("tag_WBEMSTATUS", "WBEM_E_AMBIGUOUS_OPERATION", 0x8004106b) +WBEM_E_QUOTA_VIOLATION = EnumValue("tag_WBEMSTATUS", "WBEM_E_QUOTA_VIOLATION", 0x8004106c) +WBEM_E_RESERVED_001 = EnumValue("tag_WBEMSTATUS", "WBEM_E_RESERVED_001", 0x8004106d) +WBEM_E_RESERVED_002 = EnumValue("tag_WBEMSTATUS", "WBEM_E_RESERVED_002", 0x8004106e) +WBEM_E_UNSUPPORTED_LOCALE = EnumValue("tag_WBEMSTATUS", "WBEM_E_UNSUPPORTED_LOCALE", 0x8004106f) +WBEM_E_HANDLE_OUT_OF_DATE = EnumValue("tag_WBEMSTATUS", "WBEM_E_HANDLE_OUT_OF_DATE", 0x80041070) +WBEM_E_CONNECTION_FAILED = EnumValue("tag_WBEMSTATUS", "WBEM_E_CONNECTION_FAILED", 0x80041071) +WBEM_E_INVALID_HANDLE_REQUEST = EnumValue("tag_WBEMSTATUS", "WBEM_E_INVALID_HANDLE_REQUEST", 0x80041072) +WBEM_E_PROPERTY_NAME_TOO_WIDE = EnumValue("tag_WBEMSTATUS", "WBEM_E_PROPERTY_NAME_TOO_WIDE", 0x80041073) +WBEM_E_CLASS_NAME_TOO_WIDE = EnumValue("tag_WBEMSTATUS", "WBEM_E_CLASS_NAME_TOO_WIDE", 0x80041074) +WBEM_E_METHOD_NAME_TOO_WIDE = EnumValue("tag_WBEMSTATUS", "WBEM_E_METHOD_NAME_TOO_WIDE", 0x80041075) +WBEM_E_QUALIFIER_NAME_TOO_WIDE = EnumValue("tag_WBEMSTATUS", "WBEM_E_QUALIFIER_NAME_TOO_WIDE", 0x80041076) +WBEM_E_RERUN_COMMAND = EnumValue("tag_WBEMSTATUS", "WBEM_E_RERUN_COMMAND", 0x80041077) +WBEM_E_DATABASE_VER_MISMATCH = EnumValue("tag_WBEMSTATUS", "WBEM_E_DATABASE_VER_MISMATCH", 0x80041078) +WBEM_E_VETO_DELETE = EnumValue("tag_WBEMSTATUS", "WBEM_E_VETO_DELETE", 0x80041079) +WBEM_E_VETO_PUT = EnumValue("tag_WBEMSTATUS", "WBEM_E_VETO_PUT", 0x8004107a) +WBEM_E_INVALID_LOCALE = EnumValue("tag_WBEMSTATUS", "WBEM_E_INVALID_LOCALE", 0x80041080) +WBEM_E_PROVIDER_SUSPENDED = EnumValue("tag_WBEMSTATUS", "WBEM_E_PROVIDER_SUSPENDED", 0x80041081) +WBEM_E_SYNCHRONIZATION_REQUIRED = EnumValue("tag_WBEMSTATUS", "WBEM_E_SYNCHRONIZATION_REQUIRED", 0x80041082) +WBEM_E_NO_SCHEMA = EnumValue("tag_WBEMSTATUS", "WBEM_E_NO_SCHEMA", 0x80041083) +WBEM_E_PROVIDER_ALREADY_REGISTERED = EnumValue("tag_WBEMSTATUS", "WBEM_E_PROVIDER_ALREADY_REGISTERED", 0x80041084) +WBEM_E_PROVIDER_NOT_REGISTERED = EnumValue("tag_WBEMSTATUS", "WBEM_E_PROVIDER_NOT_REGISTERED", 0x80041085) +WBEM_E_FATAL_TRANSPORT_ERROR = EnumValue("tag_WBEMSTATUS", "WBEM_E_FATAL_TRANSPORT_ERROR", 0x80041086) +WBEM_E_ENCRYPTED_CONNECTION_REQUIRED = EnumValue("tag_WBEMSTATUS", "WBEM_E_ENCRYPTED_CONNECTION_REQUIRED", 0x80041087) +WBEM_E_PROVIDER_TIMED_OUT = EnumValue("tag_WBEMSTATUS", "WBEM_E_PROVIDER_TIMED_OUT", 0x80041088) +WBEM_E_NO_KEY = EnumValue("tag_WBEMSTATUS", "WBEM_E_NO_KEY", 0x80041089) +WBEM_E_PROVIDER_DISABLED = EnumValue("tag_WBEMSTATUS", "WBEM_E_PROVIDER_DISABLED", 0x8004108a) +WBEMESS_E_REGISTRATION_TOO_BROAD = EnumValue("tag_WBEMSTATUS", "WBEMESS_E_REGISTRATION_TOO_BROAD", 0x80042001) +WBEMESS_E_REGISTRATION_TOO_PRECISE = EnumValue("tag_WBEMSTATUS", "WBEMESS_E_REGISTRATION_TOO_PRECISE", 0x80042002) +WBEMESS_E_AUTHZ_NOT_PRIVILEGED = EnumValue("tag_WBEMSTATUS", "WBEMESS_E_AUTHZ_NOT_PRIVILEGED", 0x80042003) +WBEMMOF_E_EXPECTED_QUALIFIER_NAME = EnumValue("tag_WBEMSTATUS", "WBEMMOF_E_EXPECTED_QUALIFIER_NAME", 0x80044001) +WBEMMOF_E_EXPECTED_SEMI = EnumValue("tag_WBEMSTATUS", "WBEMMOF_E_EXPECTED_SEMI", 0x80044002) +WBEMMOF_E_EXPECTED_OPEN_BRACE = EnumValue("tag_WBEMSTATUS", "WBEMMOF_E_EXPECTED_OPEN_BRACE", 0x80044003) +WBEMMOF_E_EXPECTED_CLOSE_BRACE = EnumValue("tag_WBEMSTATUS", "WBEMMOF_E_EXPECTED_CLOSE_BRACE", 0x80044004) +WBEMMOF_E_EXPECTED_CLOSE_BRACKET = EnumValue("tag_WBEMSTATUS", "WBEMMOF_E_EXPECTED_CLOSE_BRACKET", 0x80044005) +WBEMMOF_E_EXPECTED_CLOSE_PAREN = EnumValue("tag_WBEMSTATUS", "WBEMMOF_E_EXPECTED_CLOSE_PAREN", 0x80044006) +WBEMMOF_E_ILLEGAL_CONSTANT_VALUE = EnumValue("tag_WBEMSTATUS", "WBEMMOF_E_ILLEGAL_CONSTANT_VALUE", 0x80044007) +WBEMMOF_E_EXPECTED_TYPE_IDENTIFIER = EnumValue("tag_WBEMSTATUS", "WBEMMOF_E_EXPECTED_TYPE_IDENTIFIER", 0x80044008) +WBEMMOF_E_EXPECTED_OPEN_PAREN = EnumValue("tag_WBEMSTATUS", "WBEMMOF_E_EXPECTED_OPEN_PAREN", 0x80044009) +WBEMMOF_E_UNRECOGNIZED_TOKEN = EnumValue("tag_WBEMSTATUS", "WBEMMOF_E_UNRECOGNIZED_TOKEN", 0x8004400a) +WBEMMOF_E_UNRECOGNIZED_TYPE = EnumValue("tag_WBEMSTATUS", "WBEMMOF_E_UNRECOGNIZED_TYPE", 0x8004400b) +WBEMMOF_E_EXPECTED_PROPERTY_NAME = EnumValue("tag_WBEMSTATUS", "WBEMMOF_E_EXPECTED_PROPERTY_NAME", 0x8004400c) +WBEMMOF_E_TYPEDEF_NOT_SUPPORTED = EnumValue("tag_WBEMSTATUS", "WBEMMOF_E_TYPEDEF_NOT_SUPPORTED", 0x8004400d) +WBEMMOF_E_UNEXPECTED_ALIAS = EnumValue("tag_WBEMSTATUS", "WBEMMOF_E_UNEXPECTED_ALIAS", 0x8004400e) +WBEMMOF_E_UNEXPECTED_ARRAY_INIT = EnumValue("tag_WBEMSTATUS", "WBEMMOF_E_UNEXPECTED_ARRAY_INIT", 0x8004400f) +WBEMMOF_E_INVALID_AMENDMENT_SYNTAX = EnumValue("tag_WBEMSTATUS", "WBEMMOF_E_INVALID_AMENDMENT_SYNTAX", 0x80044010) +WBEMMOF_E_INVALID_DUPLICATE_AMENDMENT = EnumValue("tag_WBEMSTATUS", "WBEMMOF_E_INVALID_DUPLICATE_AMENDMENT", 0x80044011) +WBEMMOF_E_INVALID_PRAGMA = EnumValue("tag_WBEMSTATUS", "WBEMMOF_E_INVALID_PRAGMA", 0x80044012) +WBEMMOF_E_INVALID_NAMESPACE_SYNTAX = EnumValue("tag_WBEMSTATUS", "WBEMMOF_E_INVALID_NAMESPACE_SYNTAX", 0x80044013) +WBEMMOF_E_EXPECTED_CLASS_NAME = EnumValue("tag_WBEMSTATUS", "WBEMMOF_E_EXPECTED_CLASS_NAME", 0x80044014) +WBEMMOF_E_TYPE_MISMATCH = EnumValue("tag_WBEMSTATUS", "WBEMMOF_E_TYPE_MISMATCH", 0x80044015) +WBEMMOF_E_EXPECTED_ALIAS_NAME = EnumValue("tag_WBEMSTATUS", "WBEMMOF_E_EXPECTED_ALIAS_NAME", 0x80044016) +WBEMMOF_E_INVALID_CLASS_DECLARATION = EnumValue("tag_WBEMSTATUS", "WBEMMOF_E_INVALID_CLASS_DECLARATION", 0x80044017) +WBEMMOF_E_INVALID_INSTANCE_DECLARATION = EnumValue("tag_WBEMSTATUS", "WBEMMOF_E_INVALID_INSTANCE_DECLARATION", 0x80044018) +WBEMMOF_E_EXPECTED_DOLLAR = EnumValue("tag_WBEMSTATUS", "WBEMMOF_E_EXPECTED_DOLLAR", 0x80044019) +WBEMMOF_E_CIMTYPE_QUALIFIER = EnumValue("tag_WBEMSTATUS", "WBEMMOF_E_CIMTYPE_QUALIFIER", 0x8004401a) +WBEMMOF_E_DUPLICATE_PROPERTY = EnumValue("tag_WBEMSTATUS", "WBEMMOF_E_DUPLICATE_PROPERTY", 0x8004401b) +WBEMMOF_E_INVALID_NAMESPACE_SPECIFICATION = EnumValue("tag_WBEMSTATUS", "WBEMMOF_E_INVALID_NAMESPACE_SPECIFICATION", 0x8004401c) +WBEMMOF_E_OUT_OF_RANGE = EnumValue("tag_WBEMSTATUS", "WBEMMOF_E_OUT_OF_RANGE", 0x8004401d) +WBEMMOF_E_INVALID_FILE = EnumValue("tag_WBEMSTATUS", "WBEMMOF_E_INVALID_FILE", 0x8004401e) +WBEMMOF_E_ALIASES_IN_EMBEDDED = EnumValue("tag_WBEMSTATUS", "WBEMMOF_E_ALIASES_IN_EMBEDDED", 0x8004401f) +WBEMMOF_E_NULL_ARRAY_ELEM = EnumValue("tag_WBEMSTATUS", "WBEMMOF_E_NULL_ARRAY_ELEM", 0x80044020) +WBEMMOF_E_DUPLICATE_QUALIFIER = EnumValue("tag_WBEMSTATUS", "WBEMMOF_E_DUPLICATE_QUALIFIER", 0x80044021) +WBEMMOF_E_EXPECTED_FLAVOR_TYPE = EnumValue("tag_WBEMSTATUS", "WBEMMOF_E_EXPECTED_FLAVOR_TYPE", 0x80044022) +WBEMMOF_E_INCOMPATIBLE_FLAVOR_TYPES = EnumValue("tag_WBEMSTATUS", "WBEMMOF_E_INCOMPATIBLE_FLAVOR_TYPES", 0x80044023) +WBEMMOF_E_MULTIPLE_ALIASES = EnumValue("tag_WBEMSTATUS", "WBEMMOF_E_MULTIPLE_ALIASES", 0x80044024) +WBEMMOF_E_INCOMPATIBLE_FLAVOR_TYPES2 = EnumValue("tag_WBEMSTATUS", "WBEMMOF_E_INCOMPATIBLE_FLAVOR_TYPES2", 0x80044025) +WBEMMOF_E_NO_ARRAYS_RETURNED = EnumValue("tag_WBEMSTATUS", "WBEMMOF_E_NO_ARRAYS_RETURNED", 0x80044026) +WBEMMOF_E_MUST_BE_IN_OR_OUT = EnumValue("tag_WBEMSTATUS", "WBEMMOF_E_MUST_BE_IN_OR_OUT", 0x80044027) +WBEMMOF_E_INVALID_FLAGS_SYNTAX = EnumValue("tag_WBEMSTATUS", "WBEMMOF_E_INVALID_FLAGS_SYNTAX", 0x80044028) +WBEMMOF_E_EXPECTED_BRACE_OR_BAD_TYPE = EnumValue("tag_WBEMSTATUS", "WBEMMOF_E_EXPECTED_BRACE_OR_BAD_TYPE", 0x80044029) +WBEMMOF_E_UNSUPPORTED_CIMV22_QUAL_VALUE = EnumValue("tag_WBEMSTATUS", "WBEMMOF_E_UNSUPPORTED_CIMV22_QUAL_VALUE", 0x8004402a) +WBEMMOF_E_UNSUPPORTED_CIMV22_DATA_TYPE = EnumValue("tag_WBEMSTATUS", "WBEMMOF_E_UNSUPPORTED_CIMV22_DATA_TYPE", 0x8004402b) +WBEMMOF_E_INVALID_DELETEINSTANCE_SYNTAX = EnumValue("tag_WBEMSTATUS", "WBEMMOF_E_INVALID_DELETEINSTANCE_SYNTAX", 0x8004402c) +WBEMMOF_E_INVALID_QUALIFIER_SYNTAX = EnumValue("tag_WBEMSTATUS", "WBEMMOF_E_INVALID_QUALIFIER_SYNTAX", 0x8004402d) +WBEMMOF_E_QUALIFIER_USED_OUTSIDE_SCOPE = EnumValue("tag_WBEMSTATUS", "WBEMMOF_E_QUALIFIER_USED_OUTSIDE_SCOPE", 0x8004402e) +WBEMMOF_E_ERROR_CREATING_TEMP_FILE = EnumValue("tag_WBEMSTATUS", "WBEMMOF_E_ERROR_CREATING_TEMP_FILE", 0x8004402f) +WBEMMOF_E_ERROR_INVALID_INCLUDE_FILE = EnumValue("tag_WBEMSTATUS", "WBEMMOF_E_ERROR_INVALID_INCLUDE_FILE", 0x80044030) +WBEMMOF_E_INVALID_DELETECLASS_SYNTAX = EnumValue("tag_WBEMSTATUS", "WBEMMOF_E_INVALID_DELETECLASS_SYNTAX", 0x80044031) +
[docs]class tag_WBEMSTATUS(EnumType): + values = [WBEM_NO_ERROR, WBEM_S_NO_ERROR, WBEM_S_SAME, WBEM_S_FALSE, WBEM_S_ALREADY_EXISTS, WBEM_S_RESET_TO_DEFAULT, WBEM_S_DIFFERENT, WBEM_S_TIMEDOUT, WBEM_S_NO_MORE_DATA, WBEM_S_OPERATION_CANCELLED, WBEM_S_PENDING, WBEM_S_DUPLICATE_OBJECTS, WBEM_S_ACCESS_DENIED, WBEM_S_PARTIAL_RESULTS, WBEM_S_SOURCE_NOT_AVAILABLE, WBEM_E_FAILED, WBEM_E_NOT_FOUND, WBEM_E_ACCESS_DENIED, WBEM_E_PROVIDER_FAILURE, WBEM_E_TYPE_MISMATCH, WBEM_E_OUT_OF_MEMORY, WBEM_E_INVALID_CONTEXT, WBEM_E_INVALID_PARAMETER, WBEM_E_NOT_AVAILABLE, WBEM_E_CRITICAL_ERROR, WBEM_E_INVALID_STREAM, WBEM_E_NOT_SUPPORTED, WBEM_E_INVALID_SUPERCLASS, WBEM_E_INVALID_NAMESPACE, WBEM_E_INVALID_OBJECT, WBEM_E_INVALID_CLASS, WBEM_E_PROVIDER_NOT_FOUND, WBEM_E_INVALID_PROVIDER_REGISTRATION, WBEM_E_PROVIDER_LOAD_FAILURE, WBEM_E_INITIALIZATION_FAILURE, WBEM_E_TRANSPORT_FAILURE, WBEM_E_INVALID_OPERATION, WBEM_E_INVALID_QUERY, WBEM_E_INVALID_QUERY_TYPE, WBEM_E_ALREADY_EXISTS, WBEM_E_OVERRIDE_NOT_ALLOWED, WBEM_E_PROPAGATED_QUALIFIER, WBEM_E_PROPAGATED_PROPERTY, WBEM_E_UNEXPECTED, WBEM_E_ILLEGAL_OPERATION, WBEM_E_CANNOT_BE_KEY, WBEM_E_INCOMPLETE_CLASS, WBEM_E_INVALID_SYNTAX, WBEM_E_NONDECORATED_OBJECT, WBEM_E_READ_ONLY, WBEM_E_PROVIDER_NOT_CAPABLE, WBEM_E_CLASS_HAS_CHILDREN, WBEM_E_CLASS_HAS_INSTANCES, WBEM_E_QUERY_NOT_IMPLEMENTED, WBEM_E_ILLEGAL_NULL, WBEM_E_INVALID_QUALIFIER_TYPE, WBEM_E_INVALID_PROPERTY_TYPE, WBEM_E_VALUE_OUT_OF_RANGE, WBEM_E_CANNOT_BE_SINGLETON, WBEM_E_INVALID_CIM_TYPE, WBEM_E_INVALID_METHOD, WBEM_E_INVALID_METHOD_PARAMETERS, WBEM_E_SYSTEM_PROPERTY, WBEM_E_INVALID_PROPERTY, WBEM_E_CALL_CANCELLED, WBEM_E_SHUTTING_DOWN, WBEM_E_PROPAGATED_METHOD, WBEM_E_UNSUPPORTED_PARAMETER, WBEM_E_MISSING_PARAMETER_ID, WBEM_E_INVALID_PARAMETER_ID, WBEM_E_NONCONSECUTIVE_PARAMETER_IDS, WBEM_E_PARAMETER_ID_ON_RETVAL, WBEM_E_INVALID_OBJECT_PATH, WBEM_E_OUT_OF_DISK_SPACE, WBEM_E_BUFFER_TOO_SMALL, WBEM_E_UNSUPPORTED_PUT_EXTENSION, WBEM_E_UNKNOWN_OBJECT_TYPE, WBEM_E_UNKNOWN_PACKET_TYPE, WBEM_E_MARSHAL_VERSION_MISMATCH, WBEM_E_MARSHAL_INVALID_SIGNATURE, WBEM_E_INVALID_QUALIFIER, WBEM_E_INVALID_DUPLICATE_PARAMETER, WBEM_E_TOO_MUCH_DATA, WBEM_E_SERVER_TOO_BUSY, WBEM_E_INVALID_FLAVOR, WBEM_E_CIRCULAR_REFERENCE, WBEM_E_UNSUPPORTED_CLASS_UPDATE, WBEM_E_CANNOT_CHANGE_KEY_INHERITANCE, WBEM_E_CANNOT_CHANGE_INDEX_INHERITANCE, WBEM_E_TOO_MANY_PROPERTIES, WBEM_E_UPDATE_TYPE_MISMATCH, WBEM_E_UPDATE_OVERRIDE_NOT_ALLOWED, WBEM_E_UPDATE_PROPAGATED_METHOD, WBEM_E_METHOD_NOT_IMPLEMENTED, WBEM_E_METHOD_DISABLED, WBEM_E_REFRESHER_BUSY, WBEM_E_UNPARSABLE_QUERY, WBEM_E_NOT_EVENT_CLASS, WBEM_E_MISSING_GROUP_WITHIN, WBEM_E_MISSING_AGGREGATION_LIST, WBEM_E_PROPERTY_NOT_AN_OBJECT, WBEM_E_AGGREGATING_BY_OBJECT, WBEM_E_UNINTERPRETABLE_PROVIDER_QUERY, WBEM_E_BACKUP_RESTORE_WINMGMT_RUNNING, WBEM_E_QUEUE_OVERFLOW, WBEM_E_PRIVILEGE_NOT_HELD, WBEM_E_INVALID_OPERATOR, WBEM_E_LOCAL_CREDENTIALS, WBEM_E_CANNOT_BE_ABSTRACT, WBEM_E_AMENDED_OBJECT, WBEM_E_CLIENT_TOO_SLOW, WBEM_E_NULL_SECURITY_DESCRIPTOR, WBEM_E_TIMED_OUT, WBEM_E_INVALID_ASSOCIATION, WBEM_E_AMBIGUOUS_OPERATION, WBEM_E_QUOTA_VIOLATION, WBEM_E_RESERVED_001, WBEM_E_RESERVED_002, WBEM_E_UNSUPPORTED_LOCALE, WBEM_E_HANDLE_OUT_OF_DATE, WBEM_E_CONNECTION_FAILED, WBEM_E_INVALID_HANDLE_REQUEST, WBEM_E_PROPERTY_NAME_TOO_WIDE, WBEM_E_CLASS_NAME_TOO_WIDE, WBEM_E_METHOD_NAME_TOO_WIDE, WBEM_E_QUALIFIER_NAME_TOO_WIDE, WBEM_E_RERUN_COMMAND, WBEM_E_DATABASE_VER_MISMATCH, WBEM_E_VETO_DELETE, WBEM_E_VETO_PUT, WBEM_E_INVALID_LOCALE, WBEM_E_PROVIDER_SUSPENDED, WBEM_E_SYNCHRONIZATION_REQUIRED, WBEM_E_NO_SCHEMA, WBEM_E_PROVIDER_ALREADY_REGISTERED, WBEM_E_PROVIDER_NOT_REGISTERED, WBEM_E_FATAL_TRANSPORT_ERROR, WBEM_E_ENCRYPTED_CONNECTION_REQUIRED, WBEM_E_PROVIDER_TIMED_OUT, WBEM_E_NO_KEY, WBEM_E_PROVIDER_DISABLED, WBEMESS_E_REGISTRATION_TOO_BROAD, WBEMESS_E_REGISTRATION_TOO_PRECISE, WBEMESS_E_AUTHZ_NOT_PRIVILEGED, WBEMMOF_E_EXPECTED_QUALIFIER_NAME, WBEMMOF_E_EXPECTED_SEMI, WBEMMOF_E_EXPECTED_OPEN_BRACE, WBEMMOF_E_EXPECTED_CLOSE_BRACE, WBEMMOF_E_EXPECTED_CLOSE_BRACKET, WBEMMOF_E_EXPECTED_CLOSE_PAREN, WBEMMOF_E_ILLEGAL_CONSTANT_VALUE, WBEMMOF_E_EXPECTED_TYPE_IDENTIFIER, WBEMMOF_E_EXPECTED_OPEN_PAREN, WBEMMOF_E_UNRECOGNIZED_TOKEN, WBEMMOF_E_UNRECOGNIZED_TYPE, WBEMMOF_E_EXPECTED_PROPERTY_NAME, WBEMMOF_E_TYPEDEF_NOT_SUPPORTED, WBEMMOF_E_UNEXPECTED_ALIAS, WBEMMOF_E_UNEXPECTED_ARRAY_INIT, WBEMMOF_E_INVALID_AMENDMENT_SYNTAX, WBEMMOF_E_INVALID_DUPLICATE_AMENDMENT, WBEMMOF_E_INVALID_PRAGMA, WBEMMOF_E_INVALID_NAMESPACE_SYNTAX, WBEMMOF_E_EXPECTED_CLASS_NAME, WBEMMOF_E_TYPE_MISMATCH, WBEMMOF_E_EXPECTED_ALIAS_NAME, WBEMMOF_E_INVALID_CLASS_DECLARATION, WBEMMOF_E_INVALID_INSTANCE_DECLARATION, WBEMMOF_E_EXPECTED_DOLLAR, WBEMMOF_E_CIMTYPE_QUALIFIER, WBEMMOF_E_DUPLICATE_PROPERTY, WBEMMOF_E_INVALID_NAMESPACE_SPECIFICATION, WBEMMOF_E_OUT_OF_RANGE, WBEMMOF_E_INVALID_FILE, WBEMMOF_E_ALIASES_IN_EMBEDDED, WBEMMOF_E_NULL_ARRAY_ELEM, WBEMMOF_E_DUPLICATE_QUALIFIER, WBEMMOF_E_EXPECTED_FLAVOR_TYPE, WBEMMOF_E_INCOMPATIBLE_FLAVOR_TYPES, WBEMMOF_E_MULTIPLE_ALIASES, WBEMMOF_E_INCOMPATIBLE_FLAVOR_TYPES2, WBEMMOF_E_NO_ARRAYS_RETURNED, WBEMMOF_E_MUST_BE_IN_OR_OUT, WBEMMOF_E_INVALID_FLAGS_SYNTAX, WBEMMOF_E_EXPECTED_BRACE_OR_BAD_TYPE, WBEMMOF_E_UNSUPPORTED_CIMV22_QUAL_VALUE, WBEMMOF_E_UNSUPPORTED_CIMV22_DATA_TYPE, WBEMMOF_E_INVALID_DELETEINSTANCE_SYNTAX, WBEMMOF_E_INVALID_QUALIFIER_SYNTAX, WBEMMOF_E_QUALIFIER_USED_OUTSIDE_SCOPE, WBEMMOF_E_ERROR_CREATING_TEMP_FILE, WBEMMOF_E_ERROR_INVALID_INCLUDE_FILE, WBEMMOF_E_INVALID_DELETECLASS_SYNTAX] + mapper = {x:x for x in values}
+WBEMSTATUS = tag_WBEMSTATUS + + +CLSCTX_INPROC_SERVER = EnumValue("tagCLSCTX", "CLSCTX_INPROC_SERVER", 0x1) +CLSCTX_INPROC_HANDLER = EnumValue("tagCLSCTX", "CLSCTX_INPROC_HANDLER", 0x2) +CLSCTX_LOCAL_SERVER = EnumValue("tagCLSCTX", "CLSCTX_LOCAL_SERVER", 0x4) +CLSCTX_INPROC_SERVER16 = EnumValue("tagCLSCTX", "CLSCTX_INPROC_SERVER16", 0x8) +CLSCTX_REMOTE_SERVER = EnumValue("tagCLSCTX", "CLSCTX_REMOTE_SERVER", 0x10) +CLSCTX_INPROC_HANDLER16 = EnumValue("tagCLSCTX", "CLSCTX_INPROC_HANDLER16", 0x20) +CLSCTX_RESERVED1 = EnumValue("tagCLSCTX", "CLSCTX_RESERVED1", 0x40) +CLSCTX_RESERVED2 = EnumValue("tagCLSCTX", "CLSCTX_RESERVED2", 0x80) +CLSCTX_RESERVED3 = EnumValue("tagCLSCTX", "CLSCTX_RESERVED3", 0x100) +CLSCTX_RESERVED4 = EnumValue("tagCLSCTX", "CLSCTX_RESERVED4", 0x200) +CLSCTX_NO_CODE_DOWNLOAD = EnumValue("tagCLSCTX", "CLSCTX_NO_CODE_DOWNLOAD", 0x400) +CLSCTX_RESERVED5 = EnumValue("tagCLSCTX", "CLSCTX_RESERVED5", 0x800) +CLSCTX_NO_CUSTOM_MARSHAL = EnumValue("tagCLSCTX", "CLSCTX_NO_CUSTOM_MARSHAL", 0x1000) +CLSCTX_ENABLE_CODE_DOWNLOAD = EnumValue("tagCLSCTX", "CLSCTX_ENABLE_CODE_DOWNLOAD", 0x2000) +CLSCTX_NO_FAILURE_LOG = EnumValue("tagCLSCTX", "CLSCTX_NO_FAILURE_LOG", 0x4000) +CLSCTX_DISABLE_AAA = EnumValue("tagCLSCTX", "CLSCTX_DISABLE_AAA", 0x8000) +CLSCTX_ENABLE_AAA = EnumValue("tagCLSCTX", "CLSCTX_ENABLE_AAA", 0x10000) +CLSCTX_FROM_DEFAULT_CONTEXT = EnumValue("tagCLSCTX", "CLSCTX_FROM_DEFAULT_CONTEXT", 0x20000) +CLSCTX_ACTIVATE_32_BIT_SERVER = EnumValue("tagCLSCTX", "CLSCTX_ACTIVATE_32_BIT_SERVER", 0x40000) +CLSCTX_ACTIVATE_64_BIT_SERVER = EnumValue("tagCLSCTX", "CLSCTX_ACTIVATE_64_BIT_SERVER", 0x80000) +CLSCTX_ENABLE_CLOAKING = EnumValue("tagCLSCTX", "CLSCTX_ENABLE_CLOAKING", 0x100000) +CLSCTX_APPCONTAINER = EnumValue("tagCLSCTX", "CLSCTX_APPCONTAINER", 0x400000) +CLSCTX_ACTIVATE_AAA_AS_IU = EnumValue("tagCLSCTX", "CLSCTX_ACTIVATE_AAA_AS_IU", 0x800000) +CLSCTX_PS_DLL = EnumValue("tagCLSCTX", "CLSCTX_PS_DLL", 0x80000000) +
[docs]class tagCLSCTX(EnumType): + values = [CLSCTX_INPROC_SERVER, CLSCTX_INPROC_HANDLER, CLSCTX_LOCAL_SERVER, CLSCTX_INPROC_SERVER16, CLSCTX_REMOTE_SERVER, CLSCTX_INPROC_HANDLER16, CLSCTX_RESERVED1, CLSCTX_RESERVED2, CLSCTX_RESERVED3, CLSCTX_RESERVED4, CLSCTX_NO_CODE_DOWNLOAD, CLSCTX_RESERVED5, CLSCTX_NO_CUSTOM_MARSHAL, CLSCTX_ENABLE_CODE_DOWNLOAD, CLSCTX_NO_FAILURE_LOG, CLSCTX_DISABLE_AAA, CLSCTX_ENABLE_AAA, CLSCTX_FROM_DEFAULT_CONTEXT, CLSCTX_ACTIVATE_32_BIT_SERVER, CLSCTX_ACTIVATE_64_BIT_SERVER, CLSCTX_ENABLE_CLOAKING, CLSCTX_APPCONTAINER, CLSCTX_ACTIVATE_AAA_AS_IU, CLSCTX_PS_DLL] + mapper = {x:x for x in values}
+CLSCTX = tagCLSCTX + + +SE_UNKNOWN_OBJECT_TYPE = EnumValue("_SE_OBJECT_TYPE", "SE_UNKNOWN_OBJECT_TYPE", 0x0) +SE_FILE_OBJECT = EnumValue("_SE_OBJECT_TYPE", "SE_FILE_OBJECT", 0x1) +SE_SERVICE = EnumValue("_SE_OBJECT_TYPE", "SE_SERVICE", 0x2) +SE_PRINTER = EnumValue("_SE_OBJECT_TYPE", "SE_PRINTER", 0x3) +SE_REGISTRY_KEY = EnumValue("_SE_OBJECT_TYPE", "SE_REGISTRY_KEY", 0x4) +SE_LMSHARE = EnumValue("_SE_OBJECT_TYPE", "SE_LMSHARE", 0x5) +SE_KERNEL_OBJECT = EnumValue("_SE_OBJECT_TYPE", "SE_KERNEL_OBJECT", 0x6) +SE_WINDOW_OBJECT = EnumValue("_SE_OBJECT_TYPE", "SE_WINDOW_OBJECT", 0x7) +SE_DS_OBJECT = EnumValue("_SE_OBJECT_TYPE", "SE_DS_OBJECT", 0x8) +SE_DS_OBJECT_ALL = EnumValue("_SE_OBJECT_TYPE", "SE_DS_OBJECT_ALL", 0x9) +SE_PROVIDER_DEFINED_OBJECT = EnumValue("_SE_OBJECT_TYPE", "SE_PROVIDER_DEFINED_OBJECT", 0xa) +SE_WMIGUID_OBJECT = EnumValue("_SE_OBJECT_TYPE", "SE_WMIGUID_OBJECT", 0xb) +SE_REGISTRY_WOW64_32KEY = EnumValue("_SE_OBJECT_TYPE", "SE_REGISTRY_WOW64_32KEY", 0xc) +class _SE_OBJECT_TYPE(EnumType): + values = [SE_UNKNOWN_OBJECT_TYPE, SE_FILE_OBJECT, SE_SERVICE, SE_PRINTER, SE_REGISTRY_KEY, SE_LMSHARE, SE_KERNEL_OBJECT, SE_WINDOW_OBJECT, SE_DS_OBJECT, SE_DS_OBJECT_ALL, SE_PROVIDER_DEFINED_OBJECT, SE_WMIGUID_OBJECT, SE_REGISTRY_WOW64_32KEY] + mapper = {x:x for x in values} +SE_OBJECT_TYPE = _SE_OBJECT_TYPE + + +IF_OPER_STATUS_NON_OPERATIONAL = EnumValue("_INTERNAL_IF_OPER_STATUS", "IF_OPER_STATUS_NON_OPERATIONAL", 0x0) +IF_OPER_STATUS_UNREACHABLE = EnumValue("_INTERNAL_IF_OPER_STATUS", "IF_OPER_STATUS_UNREACHABLE", 0x1) +IF_OPER_STATUS_DISCONNECTED = EnumValue("_INTERNAL_IF_OPER_STATUS", "IF_OPER_STATUS_DISCONNECTED", 0x2) +IF_OPER_STATUS_CONNECTING = EnumValue("_INTERNAL_IF_OPER_STATUS", "IF_OPER_STATUS_CONNECTING", 0x3) +IF_OPER_STATUS_CONNECTED = EnumValue("_INTERNAL_IF_OPER_STATUS", "IF_OPER_STATUS_CONNECTED", 0x4) +IF_OPER_STATUS_OPERATIONAL = EnumValue("_INTERNAL_IF_OPER_STATUS", "IF_OPER_STATUS_OPERATIONAL", 0x5) +class _INTERNAL_IF_OPER_STATUS(EnumType): + values = [IF_OPER_STATUS_NON_OPERATIONAL, IF_OPER_STATUS_UNREACHABLE, IF_OPER_STATUS_DISCONNECTED, IF_OPER_STATUS_CONNECTING, IF_OPER_STATUS_CONNECTED, IF_OPER_STATUS_OPERATIONAL] + mapper = {x:x for x in values} +INTERNAL_IF_OPER_STATUS = _INTERNAL_IF_OPER_STATUS + + +TI_GET_SYMTAG = EnumValue("_IMAGEHLP_SYMBOL_TYPE_INFO", "TI_GET_SYMTAG", 0x0) +TI_GET_SYMNAME = EnumValue("_IMAGEHLP_SYMBOL_TYPE_INFO", "TI_GET_SYMNAME", 0x1) +TI_GET_LENGTH = EnumValue("_IMAGEHLP_SYMBOL_TYPE_INFO", "TI_GET_LENGTH", 0x2) +TI_GET_TYPE = EnumValue("_IMAGEHLP_SYMBOL_TYPE_INFO", "TI_GET_TYPE", 0x3) +TI_GET_TYPEID = EnumValue("_IMAGEHLP_SYMBOL_TYPE_INFO", "TI_GET_TYPEID", 0x4) +TI_GET_BASETYPE = EnumValue("_IMAGEHLP_SYMBOL_TYPE_INFO", "TI_GET_BASETYPE", 0x5) +TI_GET_ARRAYINDEXTYPEID = EnumValue("_IMAGEHLP_SYMBOL_TYPE_INFO", "TI_GET_ARRAYINDEXTYPEID", 0x6) +TI_FINDCHILDREN = EnumValue("_IMAGEHLP_SYMBOL_TYPE_INFO", "TI_FINDCHILDREN", 0x7) +TI_GET_DATAKIND = EnumValue("_IMAGEHLP_SYMBOL_TYPE_INFO", "TI_GET_DATAKIND", 0x8) +TI_GET_ADDRESSOFFSET = EnumValue("_IMAGEHLP_SYMBOL_TYPE_INFO", "TI_GET_ADDRESSOFFSET", 0x9) +TI_GET_OFFSET = EnumValue("_IMAGEHLP_SYMBOL_TYPE_INFO", "TI_GET_OFFSET", 0xa) +TI_GET_VALUE = EnumValue("_IMAGEHLP_SYMBOL_TYPE_INFO", "TI_GET_VALUE", 0xb) +TI_GET_COUNT = EnumValue("_IMAGEHLP_SYMBOL_TYPE_INFO", "TI_GET_COUNT", 0xc) +TI_GET_CHILDRENCOUNT = EnumValue("_IMAGEHLP_SYMBOL_TYPE_INFO", "TI_GET_CHILDRENCOUNT", 0xd) +TI_GET_BITPOSITION = EnumValue("_IMAGEHLP_SYMBOL_TYPE_INFO", "TI_GET_BITPOSITION", 0xe) +TI_GET_VIRTUALBASECLASS = EnumValue("_IMAGEHLP_SYMBOL_TYPE_INFO", "TI_GET_VIRTUALBASECLASS", 0xf) +TI_GET_VIRTUALTABLESHAPEID = EnumValue("_IMAGEHLP_SYMBOL_TYPE_INFO", "TI_GET_VIRTUALTABLESHAPEID", 0x10) +TI_GET_VIRTUALBASEPOINTEROFFSET = EnumValue("_IMAGEHLP_SYMBOL_TYPE_INFO", "TI_GET_VIRTUALBASEPOINTEROFFSET", 0x11) +TI_GET_CLASSPARENTID = EnumValue("_IMAGEHLP_SYMBOL_TYPE_INFO", "TI_GET_CLASSPARENTID", 0x12) +TI_GET_NESTED = EnumValue("_IMAGEHLP_SYMBOL_TYPE_INFO", "TI_GET_NESTED", 0x13) +TI_GET_SYMINDEX = EnumValue("_IMAGEHLP_SYMBOL_TYPE_INFO", "TI_GET_SYMINDEX", 0x14) +TI_GET_LEXICALPARENT = EnumValue("_IMAGEHLP_SYMBOL_TYPE_INFO", "TI_GET_LEXICALPARENT", 0x15) +TI_GET_ADDRESS = EnumValue("_IMAGEHLP_SYMBOL_TYPE_INFO", "TI_GET_ADDRESS", 0x16) +TI_GET_THISADJUST = EnumValue("_IMAGEHLP_SYMBOL_TYPE_INFO", "TI_GET_THISADJUST", 0x17) +TI_GET_UDTKIND = EnumValue("_IMAGEHLP_SYMBOL_TYPE_INFO", "TI_GET_UDTKIND", 0x18) +TI_IS_EQUIV_TO = EnumValue("_IMAGEHLP_SYMBOL_TYPE_INFO", "TI_IS_EQUIV_TO", 0x19) +TI_GET_CALLING_CONVENTION = EnumValue("_IMAGEHLP_SYMBOL_TYPE_INFO", "TI_GET_CALLING_CONVENTION", 0x1a) +TI_IS_CLOSE_EQUIV_TO = EnumValue("_IMAGEHLP_SYMBOL_TYPE_INFO", "TI_IS_CLOSE_EQUIV_TO", 0x1b) +TI_GTIEX_REQS_VALID = EnumValue("_IMAGEHLP_SYMBOL_TYPE_INFO", "TI_GTIEX_REQS_VALID", 0x1c) +TI_GET_VIRTUALBASEOFFSET = EnumValue("_IMAGEHLP_SYMBOL_TYPE_INFO", "TI_GET_VIRTUALBASEOFFSET", 0x1d) +TI_GET_VIRTUALBASEDISPINDEX = EnumValue("_IMAGEHLP_SYMBOL_TYPE_INFO", "TI_GET_VIRTUALBASEDISPINDEX", 0x1e) +TI_GET_IS_REFERENCE = EnumValue("_IMAGEHLP_SYMBOL_TYPE_INFO", "TI_GET_IS_REFERENCE", 0x1f) +TI_GET_INDIRECTVIRTUALBASECLASS = EnumValue("_IMAGEHLP_SYMBOL_TYPE_INFO", "TI_GET_INDIRECTVIRTUALBASECLASS", 0x20) +IMAGEHLP_SYMBOL_TYPE_INFO_MAX = EnumValue("_IMAGEHLP_SYMBOL_TYPE_INFO", "IMAGEHLP_SYMBOL_TYPE_INFO_MAX", 0x21) +class _IMAGEHLP_SYMBOL_TYPE_INFO(EnumType): + values = [TI_GET_SYMTAG, TI_GET_SYMNAME, TI_GET_LENGTH, TI_GET_TYPE, TI_GET_TYPEID, TI_GET_BASETYPE, TI_GET_ARRAYINDEXTYPEID, TI_FINDCHILDREN, TI_GET_DATAKIND, TI_GET_ADDRESSOFFSET, TI_GET_OFFSET, TI_GET_VALUE, TI_GET_COUNT, TI_GET_CHILDRENCOUNT, TI_GET_BITPOSITION, TI_GET_VIRTUALBASECLASS, TI_GET_VIRTUALTABLESHAPEID, TI_GET_VIRTUALBASEPOINTEROFFSET, TI_GET_CLASSPARENTID, TI_GET_NESTED, TI_GET_SYMINDEX, TI_GET_LEXICALPARENT, TI_GET_ADDRESS, TI_GET_THISADJUST, TI_GET_UDTKIND, TI_IS_EQUIV_TO, TI_GET_CALLING_CONVENTION, TI_IS_CLOSE_EQUIV_TO, TI_GTIEX_REQS_VALID, TI_GET_VIRTUALBASEOFFSET, TI_GET_VIRTUALBASEDISPINDEX, TI_GET_IS_REFERENCE, TI_GET_INDIRECTVIRTUALBASECLASS, IMAGEHLP_SYMBOL_TYPE_INFO_MAX] + mapper = {x:x for x in values} +IMAGEHLP_SYMBOL_TYPE_INFO = _IMAGEHLP_SYMBOL_TYPE_INFO + + +ProcessBasicInformation = EnumValue("_PROCESSINFOCLASS", "ProcessBasicInformation", 0x0) +ProcessWow64Information = EnumValue("_PROCESSINFOCLASS", "ProcessWow64Information", 0x1a) +class _PROCESSINFOCLASS(EnumType): + values = [ProcessBasicInformation, ProcessWow64Information] + mapper = {x:x for x in values} +PROCESSINFOCLASS = _PROCESSINFOCLASS + + +COINIT_APARTMENTTHREADED = EnumValue("tagCOINIT", "COINIT_APARTMENTTHREADED", 0x2) +COINIT_MULTITHREADED = EnumValue("tagCOINIT", "COINIT_MULTITHREADED", 0x0) +COINIT_DISABLE_OLE1DDE = EnumValue("tagCOINIT", "COINIT_DISABLE_OLE1DDE", 0x4) +COINIT_SPEED_OVER_MEMORY = EnumValue("tagCOINIT", "COINIT_SPEED_OVER_MEMORY", 0x8) +
[docs]class tagCOINIT(EnumType): + values = [COINIT_APARTMENTTHREADED, COINIT_MULTITHREADED, COINIT_DISABLE_OLE1DDE, COINIT_SPEED_OVER_MEMORY] + mapper = {x:x for x in values}
+COINIT = tagCOINIT + + +TKIND_ENUM = EnumValue("tagTYPEKIND", "TKIND_ENUM", 0x0) +TKIND_RECORD = EnumValue("tagTYPEKIND", "TKIND_RECORD", 0x1) +TKIND_MODULE = EnumValue("tagTYPEKIND", "TKIND_MODULE", 0x2) +TKIND_INTERFACE = EnumValue("tagTYPEKIND", "TKIND_INTERFACE", 0x3) +TKIND_DISPATCH = EnumValue("tagTYPEKIND", "TKIND_DISPATCH", 0x4) +TKIND_COCLASS = EnumValue("tagTYPEKIND", "TKIND_COCLASS", 0x5) +TKIND_ALIAS = EnumValue("tagTYPEKIND", "TKIND_ALIAS", 0x6) +TKIND_UNION = EnumValue("tagTYPEKIND", "TKIND_UNION", 0x7) +TKIND_MAX = EnumValue("tagTYPEKIND", "TKIND_MAX", 0x8) +
[docs]class tagTYPEKIND(EnumType): + values = [TKIND_ENUM, TKIND_RECORD, TKIND_MODULE, TKIND_INTERFACE, TKIND_DISPATCH, TKIND_COCLASS, TKIND_ALIAS, TKIND_UNION, TKIND_MAX] + mapper = {x:x for x in values}
+TYPEKIND = tagTYPEKIND + + +BG_JOB_STATE_QUEUED = EnumValue("_BG_JOB_STATE", "BG_JOB_STATE_QUEUED", 0x0) +BG_JOB_STATE_CONNECTING = EnumValue("_BG_JOB_STATE", "BG_JOB_STATE_CONNECTING", 0x1) +BG_JOB_STATE_TRANSFERRING = EnumValue("_BG_JOB_STATE", "BG_JOB_STATE_TRANSFERRING", 0x2) +BG_JOB_STATE_SUSPENDED = EnumValue("_BG_JOB_STATE", "BG_JOB_STATE_SUSPENDED", 0x3) +BG_JOB_STATE_ERROR = EnumValue("_BG_JOB_STATE", "BG_JOB_STATE_ERROR", 0x4) +BG_JOB_STATE_TRANSIENT_ERROR = EnumValue("_BG_JOB_STATE", "BG_JOB_STATE_TRANSIENT_ERROR", 0x5) +BG_JOB_STATE_TRANSFERRED = EnumValue("_BG_JOB_STATE", "BG_JOB_STATE_TRANSFERRED", 0x6) +BG_JOB_STATE_ACKNOWLEDGED = EnumValue("_BG_JOB_STATE", "BG_JOB_STATE_ACKNOWLEDGED", 0x7) +BG_JOB_STATE_CANCELLED = EnumValue("_BG_JOB_STATE", "BG_JOB_STATE_CANCELLED", 0x8) +class _BG_JOB_STATE(EnumType): + values = [BG_JOB_STATE_QUEUED, BG_JOB_STATE_CONNECTING, BG_JOB_STATE_TRANSFERRING, BG_JOB_STATE_SUSPENDED, BG_JOB_STATE_ERROR, BG_JOB_STATE_TRANSIENT_ERROR, BG_JOB_STATE_TRANSFERRED, BG_JOB_STATE_ACKNOWLEDGED, BG_JOB_STATE_CANCELLED] + mapper = {x:x for x in values} +BG_JOB_STATE = _BG_JOB_STATE + + +BG_JOB_PROXY_USAGE_PRECONFIG = EnumValue("_BG_JOB_PROXY_USAGE", "BG_JOB_PROXY_USAGE_PRECONFIG", 0x0) +BG_JOB_PROXY_USAGE_NO_PROXY = EnumValue("_BG_JOB_PROXY_USAGE", "BG_JOB_PROXY_USAGE_NO_PROXY", 0x1) +BG_JOB_PROXY_USAGE_OVERRIDE = EnumValue("_BG_JOB_PROXY_USAGE", "BG_JOB_PROXY_USAGE_OVERRIDE", 0x2) +BG_JOB_PROXY_USAGE_AUTODETECT = EnumValue("_BG_JOB_PROXY_USAGE", "BG_JOB_PROXY_USAGE_AUTODETECT", 0x3) +class _BG_JOB_PROXY_USAGE(EnumType): + values = [BG_JOB_PROXY_USAGE_PRECONFIG, BG_JOB_PROXY_USAGE_NO_PROXY, BG_JOB_PROXY_USAGE_OVERRIDE, BG_JOB_PROXY_USAGE_AUTODETECT] + mapper = {x:x for x in values} +BG_JOB_PROXY_USAGE = _BG_JOB_PROXY_USAGE + + +BG_JOB_PRIORITY_FOREGROUND = EnumValue("_BG_JOB_PRIORITY", "BG_JOB_PRIORITY_FOREGROUND", 0x0) +BG_JOB_PRIORITY_HIGH = EnumValue("_BG_JOB_PRIORITY", "BG_JOB_PRIORITY_HIGH", 0x1) +BG_JOB_PRIORITY_NORMAL = EnumValue("_BG_JOB_PRIORITY", "BG_JOB_PRIORITY_NORMAL", 0x2) +BG_JOB_PRIORITY_LOW = EnumValue("_BG_JOB_PRIORITY", "BG_JOB_PRIORITY_LOW", 0x3) +class _BG_JOB_PRIORITY(EnumType): + values = [BG_JOB_PRIORITY_FOREGROUND, BG_JOB_PRIORITY_HIGH, BG_JOB_PRIORITY_NORMAL, BG_JOB_PRIORITY_LOW] + mapper = {x:x for x in values} +BG_JOB_PRIORITY = _BG_JOB_PRIORITY + + +BG_ERROR_CONTEXT_NONE = EnumValue("_BG_ERROR_CONTEXT", "BG_ERROR_CONTEXT_NONE", 0x0) +BG_ERROR_CONTEXT_UNKNOWN = EnumValue("_BG_ERROR_CONTEXT", "BG_ERROR_CONTEXT_UNKNOWN", 0x1) +BG_ERROR_CONTEXT_GENERAL_QUEUE_MANAGER = EnumValue("_BG_ERROR_CONTEXT", "BG_ERROR_CONTEXT_GENERAL_QUEUE_MANAGER", 0x2) +BG_ERROR_CONTEXT_QUEUE_MANAGER_NOTIFICATION = EnumValue("_BG_ERROR_CONTEXT", "BG_ERROR_CONTEXT_QUEUE_MANAGER_NOTIFICATION", 0x3) +BG_ERROR_CONTEXT_LOCAL_FILE = EnumValue("_BG_ERROR_CONTEXT", "BG_ERROR_CONTEXT_LOCAL_FILE", 0x4) +BG_ERROR_CONTEXT_REMOTE_FILE = EnumValue("_BG_ERROR_CONTEXT", "BG_ERROR_CONTEXT_REMOTE_FILE", 0x5) +BG_ERROR_CONTEXT_GENERAL_TRANSPORT = EnumValue("_BG_ERROR_CONTEXT", "BG_ERROR_CONTEXT_GENERAL_TRANSPORT", 0x6) +BG_ERROR_CONTEXT_REMOTE_APPLICATION = EnumValue("_BG_ERROR_CONTEXT", "BG_ERROR_CONTEXT_REMOTE_APPLICATION", 0x7) +class _BG_ERROR_CONTEXT(EnumType): + values = [BG_ERROR_CONTEXT_NONE, BG_ERROR_CONTEXT_UNKNOWN, BG_ERROR_CONTEXT_GENERAL_QUEUE_MANAGER, BG_ERROR_CONTEXT_QUEUE_MANAGER_NOTIFICATION, BG_ERROR_CONTEXT_LOCAL_FILE, BG_ERROR_CONTEXT_REMOTE_FILE, BG_ERROR_CONTEXT_GENERAL_TRANSPORT, BG_ERROR_CONTEXT_REMOTE_APPLICATION] + mapper = {x:x for x in values} +BG_ERROR_CONTEXT = _BG_ERROR_CONTEXT + + +BG_JOB_TYPE_DOWNLOAD = EnumValue("_BG_JOB_TYPE", "BG_JOB_TYPE_DOWNLOAD", 0x0) +BG_JOB_TYPE_UPLOAD = EnumValue("_BG_JOB_TYPE", "BG_JOB_TYPE_UPLOAD", 0x1) +BG_JOB_TYPE_UPLOAD_REPLY = EnumValue("_BG_JOB_TYPE", "BG_JOB_TYPE_UPLOAD_REPLY", 0x2) +class _BG_JOB_TYPE(EnumType): + values = [BG_JOB_TYPE_DOWNLOAD, BG_JOB_TYPE_UPLOAD, BG_JOB_TYPE_UPLOAD_REPLY] + mapper = {x:x for x in values} +BG_JOB_TYPE = _BG_JOB_TYPE + + +AlpcBasicInformation = EnumValue("_ALPC_PORT_INFORMATION_CLASS", "AlpcBasicInformation", 0x0) +AlpcPortInformation = EnumValue("_ALPC_PORT_INFORMATION_CLASS", "AlpcPortInformation", 0x1) +AlpcAssociateCompletionPortInformation = EnumValue("_ALPC_PORT_INFORMATION_CLASS", "AlpcAssociateCompletionPortInformation", 0x2) +AlpcConnectedSIDInformation = EnumValue("_ALPC_PORT_INFORMATION_CLASS", "AlpcConnectedSIDInformation", 0x3) +AlpcServerInformation = EnumValue("_ALPC_PORT_INFORMATION_CLASS", "AlpcServerInformation", 0x4) +AlpcMessageZoneInformation = EnumValue("_ALPC_PORT_INFORMATION_CLASS", "AlpcMessageZoneInformation", 0x5) +AlpcRegisterCompletionListInformation = EnumValue("_ALPC_PORT_INFORMATION_CLASS", "AlpcRegisterCompletionListInformation", 0x6) +AlpcUnregisterCompletionListInformation = EnumValue("_ALPC_PORT_INFORMATION_CLASS", "AlpcUnregisterCompletionListInformation", 0x7) +AlpcAdjustCompletionListConcurrencyCountInformation = EnumValue("_ALPC_PORT_INFORMATION_CLASS", "AlpcAdjustCompletionListConcurrencyCountInformation", 0x8) +AlpcRegisterCallbackInformation = EnumValue("_ALPC_PORT_INFORMATION_CLASS", "AlpcRegisterCallbackInformation", 0x9) +AlpcCompletionListRundownInformation = EnumValue("_ALPC_PORT_INFORMATION_CLASS", "AlpcCompletionListRundownInformation", 0xa) +AlpcWaitForPortReferences = EnumValue("_ALPC_PORT_INFORMATION_CLASS", "AlpcWaitForPortReferences", 0xb) +MaxAlpcPortInfoClass = EnumValue("_ALPC_PORT_INFORMATION_CLASS", "MaxAlpcPortInfoClass", 0xc) +class _ALPC_PORT_INFORMATION_CLASS(EnumType): + values = [AlpcBasicInformation, AlpcPortInformation, AlpcAssociateCompletionPortInformation, AlpcConnectedSIDInformation, AlpcServerInformation, AlpcMessageZoneInformation, AlpcRegisterCompletionListInformation, AlpcUnregisterCompletionListInformation, AlpcAdjustCompletionListConcurrencyCountInformation, AlpcRegisterCallbackInformation, AlpcCompletionListRundownInformation, AlpcWaitForPortReferences, MaxAlpcPortInfoClass] + mapper = {x:x for x in values} +ALPC_PORT_INFORMATION_CLASS = _ALPC_PORT_INFORMATION_CLASS + + +# Self referencing struct tricks +class _LIST_ENTRY(Structure): pass +PLIST_ENTRY = POINTER(_LIST_ENTRY) +LIST_ENTRY = _LIST_ENTRY +PRLIST_ENTRY = POINTER(_LIST_ENTRY) +_LIST_ENTRY._fields_ = [ + ("Flink", POINTER(_LIST_ENTRY)), + ("Blink", POINTER(_LIST_ENTRY)), +] + +class _PEB_LDR_DATA(Structure): + _fields_ = [ + ("Reserved1", BYTE * 8), + ("Reserved2", PVOID * 3), + ("InMemoryOrderModuleList", LIST_ENTRY), + ] +PPEB_LDR_DATA = POINTER(_PEB_LDR_DATA) +PEB_LDR_DATA = _PEB_LDR_DATA + +class _LSA_UNICODE_STRING(Structure): + _fields_ = [ + ("Length", USHORT), + ("MaximumLength", USHORT), + ("Buffer", PWSTR), + ] +PUNICODE_STRING = POINTER(_LSA_UNICODE_STRING) +UNICODE_STRING = _LSA_UNICODE_STRING +LSA_UNICODE_STRING = _LSA_UNICODE_STRING +PLSA_UNICODE_STRING = POINTER(_LSA_UNICODE_STRING) + +class _RTL_USER_PROCESS_PARAMETERS(Structure): + _fields_ = [ + ("Reserved1", BYTE * 16), + ("Reserved2", PVOID * 10), + ("ImagePathName", UNICODE_STRING), + ("CommandLine", UNICODE_STRING), + ] +PRTL_USER_PROCESS_PARAMETERS = POINTER(_RTL_USER_PROCESS_PARAMETERS) +RTL_USER_PROCESS_PARAMETERS = _RTL_USER_PROCESS_PARAMETERS + +class _PEB(Structure): + _fields_ = [ + ("Reserved1", BYTE * 2), + ("BeingDebugged", BYTE), + ("Reserved2", BYTE * 1), + ("Mutant", PVOID), + ("ImageBaseAddress", PVOID), + ("Ldr", PPEB_LDR_DATA), + ("ProcessParameters", PRTL_USER_PROCESS_PARAMETERS), + ("Reserved4", BYTE * 104), + ("Reserved5", PVOID * 52), + ("PostProcessInitRoutine", PPS_POST_PROCESS_INIT_ROUTINE), + ("Reserved6", BYTE * 128), + ("Reserved7", PVOID * 1), + ("SessionId", ULONG), + ] +PPEB = POINTER(_PEB) +PEB = _PEB + +class _SECURITY_ATTRIBUTES(Structure): + _fields_ = [ + ("nLength", DWORD), + ("lpSecurityDescriptor", LPVOID), + ("bInheritHandle", BOOL), + ] +SECURITY_ATTRIBUTES = _SECURITY_ATTRIBUTES +LPSECURITY_ATTRIBUTES = POINTER(_SECURITY_ATTRIBUTES) +PSECURITY_ATTRIBUTES = POINTER(_SECURITY_ATTRIBUTES) + +class _SYSTEM_VERIFIER_INFORMATION(Structure): + _fields_ = [ + ("NextEntryOffset", ULONG), + ("Level", ULONG), + ("DriverName", UNICODE_STRING), + ("RaiseIrqls", ULONG), + ("AcquireSpinLocks", ULONG), + ("SynchronizeExecutions", ULONG), + ("AllocationsAttempted", ULONG), + ("AllocationsSucceeded", ULONG), + ("AllocationsSucceededSpecialPool", ULONG), + ("AllocationsWithNoTag", ULONG), + ("TrimRequests", ULONG), + ("Trims", ULONG), + ("AllocationsFailed", ULONG), + ("AllocationsFailedDeliberately", ULONG), + ("Loads", ULONG), + ("Unloads", ULONG), + ("UnTrackedPool", ULONG), + ("CurrentPagedPoolAllocations", ULONG), + ("CurrentNonPagedPoolAllocations", ULONG), + ("PeakPagedPoolAllocations", ULONG), + ("PeakNonPagedPoolAllocations", ULONG), + ("PagedPoolUsageInBytes", SIZE_T), + ("NonPagedPoolUsageInBytes", SIZE_T), + ("PeakPagedPoolUsageInBytes", SIZE_T), + ("PeakNonPagedPoolUsageInBytes", SIZE_T), + ] +PSYSTEM_VERIFIER_INFORMATION = POINTER(_SYSTEM_VERIFIER_INFORMATION) +SYSTEM_VERIFIER_INFORMATION = _SYSTEM_VERIFIER_INFORMATION + +class _CLIENT_ID(Structure): + _fields_ = [ + ("UniqueProcess", HANDLE), + ("UniqueThread", HANDLE), + ] +CLIENT_ID = _CLIENT_ID + +class _CLIENT_ID64(Structure): + _fields_ = [ + ("UniqueProcess", ULONG64), + ("UniqueThread", ULONG64), + ] +CLIENT_ID64 = _CLIENT_ID64 + +class _CLIENT_ID32(Structure): + _fields_ = [ + ("UniqueProcess", ULONG), + ("UniqueThread", ULONG), + ] +CLIENT_ID32 = _CLIENT_ID32 + +class _LDR_DATA_TABLE_ENTRY(Structure): + _fields_ = [ + ("Reserved1", PVOID * 2), + ("InMemoryOrderLinks", LIST_ENTRY), + ("Reserved2", PVOID * 2), + ("DllBase", PVOID), + ("EntryPoint", PVOID), + ("SizeOfImage", PVOID), + ("FullDllName", UNICODE_STRING), + ("BaseDllName", UNICODE_STRING), + ("Reserved5", PVOID * 3), + ("CheckSum", ULONG), + ("TimeDateStamp", ULONG), + ] +PLDR_DATA_TABLE_ENTRY = POINTER(_LDR_DATA_TABLE_ENTRY) +LDR_DATA_TABLE_ENTRY = _LDR_DATA_TABLE_ENTRY + +class _IMAGE_FILE_HEADER(Structure): + _fields_ = [ + ("Machine", WORD), + ("NumberOfSections", WORD), + ("TimeDateStamp", DWORD), + ("PointerToSymbolTable", DWORD), + ("NumberOfSymbols", DWORD), + ("SizeOfOptionalHeader", WORD), + ("Characteristics", WORD), + ] +IMAGE_FILE_HEADER = _IMAGE_FILE_HEADER +PIMAGE_FILE_HEADER = POINTER(_IMAGE_FILE_HEADER) + +class _IMAGE_DATA_DIRECTORY(Structure): + _fields_ = [ + ("VirtualAddress", DWORD), + ("Size", DWORD), + ] +IMAGE_DATA_DIRECTORY = _IMAGE_DATA_DIRECTORY +PIMAGE_DATA_DIRECTORY = POINTER(_IMAGE_DATA_DIRECTORY) + +class _IMAGE_SECTION_HEADER(Structure): + _fields_ = [ + ("Name", BYTE * IMAGE_SIZEOF_SHORT_NAME), + ("VirtualSize", DWORD), + ("VirtualAddress", DWORD), + ("SizeOfRawData", DWORD), + ("PointerToRawData", DWORD), + ("PointerToRelocations", DWORD), + ("PointerToLinenumbers", DWORD), + ("NumberOfRelocations", WORD), + ("NumberOfLinenumbers", WORD), + ("Characteristics", DWORD), + ] +PIMAGE_SECTION_HEADER = POINTER(_IMAGE_SECTION_HEADER) +IMAGE_SECTION_HEADER = _IMAGE_SECTION_HEADER + +class _IMAGE_OPTIONAL_HEADER64(Structure): + _fields_ = [ + ("Magic", WORD), + ("MajorLinkerVersion", BYTE), + ("MinorLinkerVersion", BYTE), + ("SizeOfCode", DWORD), + ("SizeOfInitializedData", DWORD), + ("SizeOfUninitializedData", DWORD), + ("AddressOfEntryPoint", DWORD), + ("BaseOfCode", DWORD), + ("ImageBase", ULONGLONG), + ("SectionAlignment", DWORD), + ("FileAlignment", DWORD), + ("MajorOperatingSystemVersion", WORD), + ("MinorOperatingSystemVersion", WORD), + ("MajorImageVersion", WORD), + ("MinorImageVersion", WORD), + ("MajorSubsystemVersion", WORD), + ("MinorSubsystemVersion", WORD), + ("Win32VersionValue", DWORD), + ("SizeOfImage", DWORD), + ("SizeOfHeaders", DWORD), + ("CheckSum", DWORD), + ("Subsystem", WORD), + ("DllCharacteristics", WORD), + ("SizeOfStackReserve", ULONGLONG), + ("SizeOfStackCommit", ULONGLONG), + ("SizeOfHeapReserve", ULONGLONG), + ("SizeOfHeapCommit", ULONGLONG), + ("LoaderFlags", DWORD), + ("NumberOfRvaAndSizes", DWORD), + ("DataDirectory", IMAGE_DATA_DIRECTORY * IMAGE_NUMBEROF_DIRECTORY_ENTRIES), + ] +PIMAGE_OPTIONAL_HEADER64 = POINTER(_IMAGE_OPTIONAL_HEADER64) +IMAGE_OPTIONAL_HEADER64 = _IMAGE_OPTIONAL_HEADER64 + +class _IMAGE_OPTIONAL_HEADER(Structure): + _fields_ = [ + ("Magic", WORD), + ("MajorLinkerVersion", BYTE), + ("MinorLinkerVersion", BYTE), + ("SizeOfCode", DWORD), + ("SizeOfInitializedData", DWORD), + ("SizeOfUninitializedData", DWORD), + ("AddressOfEntryPoint", DWORD), + ("BaseOfCode", DWORD), + ("BaseOfData", DWORD), + ("ImageBase", DWORD), + ("SectionAlignment", DWORD), + ("FileAlignment", DWORD), + ("MajorOperatingSystemVersion", WORD), + ("MinorOperatingSystemVersion", WORD), + ("MajorImageVersion", WORD), + ("MinorImageVersion", WORD), + ("MajorSubsystemVersion", WORD), + ("MinorSubsystemVersion", WORD), + ("Win32VersionValue", DWORD), + ("SizeOfImage", DWORD), + ("SizeOfHeaders", DWORD), + ("CheckSum", DWORD), + ("Subsystem", WORD), + ("DllCharacteristics", WORD), + ("SizeOfStackReserve", DWORD), + ("SizeOfStackCommit", DWORD), + ("SizeOfHeapReserve", DWORD), + ("SizeOfHeapCommit", DWORD), + ("LoaderFlags", DWORD), + ("NumberOfRvaAndSizes", DWORD), + ("DataDirectory", IMAGE_DATA_DIRECTORY * IMAGE_NUMBEROF_DIRECTORY_ENTRIES), + ] +PIMAGE_OPTIONAL_HEADER32 = POINTER(_IMAGE_OPTIONAL_HEADER) +IMAGE_OPTIONAL_HEADER32 = _IMAGE_OPTIONAL_HEADER + +class _IMAGE_NT_HEADERS64(Structure): + _fields_ = [ + ("Signature", DWORD), + ("FileHeader", IMAGE_FILE_HEADER), + ("OptionalHeader", IMAGE_OPTIONAL_HEADER64), + ] +PIMAGE_NT_HEADERS64 = POINTER(_IMAGE_NT_HEADERS64) +IMAGE_NT_HEADERS64 = _IMAGE_NT_HEADERS64 + +class _IMAGE_NT_HEADERS(Structure): + _fields_ = [ + ("Signature", DWORD), + ("FileHeader", IMAGE_FILE_HEADER), + ("OptionalHeader", IMAGE_OPTIONAL_HEADER32), + ] +IMAGE_NT_HEADERS32 = _IMAGE_NT_HEADERS +PIMAGE_NT_HEADERS32 = POINTER(_IMAGE_NT_HEADERS) + +class _IMAGE_IMPORT_DESCRIPTOR(Structure): + _fields_ = [ + ("OriginalFirstThunk", DWORD), + ("TimeDateStamp", DWORD), + ("ForwarderChain", DWORD), + ("Name", DWORD), + ("FirstThunk", DWORD), + ] +IMAGE_IMPORT_DESCRIPTOR = _IMAGE_IMPORT_DESCRIPTOR +PIMAGE_IMPORT_DESCRIPTOR = POINTER(_IMAGE_IMPORT_DESCRIPTOR) + +class _IMAGE_IMPORT_BY_NAME(Structure): + _fields_ = [ + ("Hint", WORD), + ("Name", BYTE * 1), + ] +PIMAGE_IMPORT_BY_NAME = POINTER(_IMAGE_IMPORT_BY_NAME) +IMAGE_IMPORT_BY_NAME = _IMAGE_IMPORT_BY_NAME + +class _IMAGE_EXPORT_DIRECTORY(Structure): + _fields_ = [ + ("Characteristics", DWORD), + ("TimeDateStamp", DWORD), + ("MajorVersion", WORD), + ("MinorVersion", WORD), + ("Name", DWORD), + ("Base", DWORD), + ("NumberOfFunctions", DWORD), + ("NumberOfNames", DWORD), + ("AddressOfFunctions", DWORD), + ("AddressOfNames", DWORD), + ("AddressOfNameOrdinals", DWORD), + ] +IMAGE_EXPORT_DIRECTORY = _IMAGE_EXPORT_DIRECTORY +PIMAGE_EXPORT_DIRECTORY = POINTER(_IMAGE_EXPORT_DIRECTORY) + +class _MEMORY_BASIC_INFORMATION(Structure): + _fields_ = [ + ("BaseAddress", PVOID), + ("AllocationBase", PVOID), + ("AllocationProtect", DWORD), + ("RegionSize", SIZE_T), + ("State", DWORD), + ("Protect", DWORD), + ("Type", DWORD), + ] +PMEMORY_BASIC_INFORMATION = POINTER(_MEMORY_BASIC_INFORMATION) +MEMORY_BASIC_INFORMATION = _MEMORY_BASIC_INFORMATION + +class _THREAD_BASIC_INFORMATION(Structure): + _fields_ = [ + ("ExitStatus", NTSTATUS), + ("TebBaseAddress", PVOID), + ("ClientId", CLIENT_ID), + ("AffinityMask", KAFFINITY), + ("Priority", KPRIORITY), + ("BasePriority", KPRIORITY), + ] +THREAD_BASIC_INFORMATION = _THREAD_BASIC_INFORMATION +PTHREAD_BASIC_INFORMATION = POINTER(_THREAD_BASIC_INFORMATION) + +class _MEMORY_BASIC_INFORMATION32(Structure): + _fields_ = [ + ("BaseAddress", DWORD), + ("AllocationBase", DWORD), + ("AllocationProtect", DWORD), + ("RegionSize", DWORD), + ("State", DWORD), + ("Protect", DWORD), + ("Type", DWORD), + ] +MEMORY_BASIC_INFORMATION32 = _MEMORY_BASIC_INFORMATION32 +PMEMORY_BASIC_INFORMATION32 = POINTER(_MEMORY_BASIC_INFORMATION32) + +class _MEMORY_BASIC_INFORMATION64(Structure): + _fields_ = [ + ("BaseAddress", ULONGLONG), + ("AllocationBase", ULONGLONG), + ("AllocationProtect", DWORD), + ("__alignment1", DWORD), + ("RegionSize", ULONGLONG), + ("State", DWORD), + ("Protect", DWORD), + ("Type", DWORD), + ("__alignment2", DWORD), + ] +PMEMORY_BASIC_INFORMATION64 = POINTER(_MEMORY_BASIC_INFORMATION64) +MEMORY_BASIC_INFORMATION64 = _MEMORY_BASIC_INFORMATION64 + +class _PSAPI_WORKING_SET_BLOCK(Union): + _fields_ = [ + ("Flags", PVOID), + ] +PSAPI_WORKING_SET_BLOCK = _PSAPI_WORKING_SET_BLOCK +PPSAPI_WORKING_SET_BLOCK = POINTER(_PSAPI_WORKING_SET_BLOCK) + +class _PSAPI_WORKING_SET_BLOCK32(Union): + _fields_ = [ + ("Flags", DWORD), + ] +PSAPI_WORKING_SET_BLOCK32 = _PSAPI_WORKING_SET_BLOCK32 +PPSAPI_WORKING_SET_BLOCK32 = POINTER(_PSAPI_WORKING_SET_BLOCK32) + +class _PSAPI_WORKING_SET_BLOCK64(Union): + _fields_ = [ + ("Flags", ULONG64), + ] +PSAPI_WORKING_SET_BLOCK64 = _PSAPI_WORKING_SET_BLOCK64 +PPSAPI_WORKING_SET_BLOCK64 = POINTER(_PSAPI_WORKING_SET_BLOCK64) + +class _PSAPI_WORKING_SET_INFORMATION(Structure): + _fields_ = [ + ("NumberOfEntries", PVOID), + ("WorkingSetInfo", PSAPI_WORKING_SET_BLOCK * 1), + ] +PPSAPI_WORKING_SET_INFORMATION = POINTER(_PSAPI_WORKING_SET_INFORMATION) +PSAPI_WORKING_SET_INFORMATION = _PSAPI_WORKING_SET_INFORMATION + +class _PSAPI_WORKING_SET_INFORMATION32(Structure): + _fields_ = [ + ("NumberOfEntries", DWORD), + ("WorkingSetInfo", PSAPI_WORKING_SET_BLOCK32 * 1), + ] +PPSAPI_WORKING_SET_INFORMATION32 = POINTER(_PSAPI_WORKING_SET_INFORMATION32) +PSAPI_WORKING_SET_INFORMATION32 = _PSAPI_WORKING_SET_INFORMATION32 + +class _PSAPI_WORKING_SET_INFORMATION64(Structure): + _fields_ = [ + ("NumberOfEntries", ULONG64), + ("WorkingSetInfo", PSAPI_WORKING_SET_BLOCK64 * 1), + ] +PSAPI_WORKING_SET_INFORMATION64 = _PSAPI_WORKING_SET_INFORMATION64 +PPSAPI_WORKING_SET_INFORMATION64 = POINTER(_PSAPI_WORKING_SET_INFORMATION64) + +class _PSAPI_WORKING_SET_EX_BLOCK(Union): + _fields_ = [ + ("Flags", PVOID), + ] +PSAPI_WORKING_SET_EX_BLOCK = _PSAPI_WORKING_SET_EX_BLOCK +PPSAPI_WORKING_SET_EX_BLOCK = POINTER(_PSAPI_WORKING_SET_EX_BLOCK) + +class _PSAPI_WORKING_SET_EX_BLOCK32(Union): + _fields_ = [ + ("Flags", DWORD), + ] +PPSAPI_WORKING_SET_EX_BLOCK32 = POINTER(_PSAPI_WORKING_SET_EX_BLOCK32) +PSAPI_WORKING_SET_EX_BLOCK32 = _PSAPI_WORKING_SET_EX_BLOCK32 + +class _PSAPI_WORKING_SET_EX_BLOCK64(Union): + _fields_ = [ + ("Flags", ULONG64), + ] +PSAPI_WORKING_SET_EX_BLOCK64 = _PSAPI_WORKING_SET_EX_BLOCK64 +PPSAPI_WORKING_SET_EX_BLOCK64 = POINTER(_PSAPI_WORKING_SET_EX_BLOCK64) + +class _PSAPI_WORKING_SET_EX_INFORMATION(Structure): + _fields_ = [ + ("VirtualAddress", PVOID), + ("VirtualAttributes", PSAPI_WORKING_SET_EX_BLOCK), + ] +PPSAPI_WORKING_SET_EX_INFORMATION = POINTER(_PSAPI_WORKING_SET_EX_INFORMATION) +PSAPI_WORKING_SET_EX_INFORMATION = _PSAPI_WORKING_SET_EX_INFORMATION + +class _PSAPI_WORKING_SET_EX_INFORMATION32(Structure): + _fields_ = [ + ("VirtualAddress", DWORD), + ("VirtualAttributes", PSAPI_WORKING_SET_EX_BLOCK32), + ] +PSAPI_WORKING_SET_EX_INFORMATION32 = _PSAPI_WORKING_SET_EX_INFORMATION32 +PPSAPI_WORKING_SET_EX_INFORMATION32 = POINTER(_PSAPI_WORKING_SET_EX_INFORMATION32) + +class _PSAPI_WORKING_SET_EX_INFORMATION64(Structure): + _fields_ = [ + ("VirtualAddress", ULONG64), + ("VirtualAttributes", PSAPI_WORKING_SET_EX_BLOCK64), + ] +PPSAPI_WORKING_SET_EX_INFORMATION64 = POINTER(_PSAPI_WORKING_SET_EX_INFORMATION64) +PSAPI_WORKING_SET_EX_INFORMATION64 = _PSAPI_WORKING_SET_EX_INFORMATION64 + +class _STARTUPINFOA(Structure): + _fields_ = [ + ("cb", DWORD), + ("lpReserved", LPSTR), + ("lpDesktop", LPSTR), + ("lpTitle", LPSTR), + ("dwX", DWORD), + ("dwY", DWORD), + ("dwXSize", DWORD), + ("dwYSize", DWORD), + ("dwXCountChars", DWORD), + ("dwYCountChars", DWORD), + ("dwFillAttribute", DWORD), + ("dwFlags", DWORD), + ("wShowWindow", WORD), + ("cbReserved2", WORD), + ("lpReserved2", LPBYTE), + ("hStdInput", HANDLE), + ("hStdOutput", HANDLE), + ("hStdError", HANDLE), + ] +LPSTARTUPINFOA = POINTER(_STARTUPINFOA) +STARTUPINFOA = _STARTUPINFOA + +class _STARTUPINFOW(Structure): + _fields_ = [ + ("cb", DWORD), + ("lpReserved", LPWSTR), + ("lpDesktop", LPWSTR), + ("lpTitle", LPWSTR), + ("dwX", DWORD), + ("dwY", DWORD), + ("dwXSize", DWORD), + ("dwYSize", DWORD), + ("dwXCountChars", DWORD), + ("dwYCountChars", DWORD), + ("dwFillAttribute", DWORD), + ("dwFlags", DWORD), + ("wShowWindow", WORD), + ("cbReserved2", WORD), + ("lpReserved2", LPBYTE), + ("hStdInput", HANDLE), + ("hStdOutput", HANDLE), + ("hStdError", HANDLE), + ] +STARTUPINFOW = _STARTUPINFOW +LPSTARTUPINFOW = POINTER(_STARTUPINFOW) + +class _STARTUPINFOEXA(Structure): + _fields_ = [ + ("StartupInfo", STARTUPINFOA), + ("lpAttributeList", LPPROC_THREAD_ATTRIBUTE_LIST), + ] +LPSTARTUPINFOEXA = POINTER(_STARTUPINFOEXA) +STARTUPINFOEXA = _STARTUPINFOEXA + +class _STARTUPINFOEXW(Structure): + _fields_ = [ + ("StartupInfo", STARTUPINFOW), + ("lpAttributeList", LPPROC_THREAD_ATTRIBUTE_LIST), + ] +STARTUPINFOEXW = _STARTUPINFOEXW +LPSTARTUPINFOEXW = POINTER(_STARTUPINFOEXW) + +class _PROCESS_INFORMATION(Structure): + _fields_ = [ + ("hProcess", HANDLE), + ("hThread", HANDLE), + ("dwProcessId", DWORD), + ("dwThreadId", DWORD), + ] +LPPROCESS_INFORMATION = POINTER(_PROCESS_INFORMATION) +PROCESS_INFORMATION = _PROCESS_INFORMATION +PPROCESS_INFORMATION = POINTER(_PROCESS_INFORMATION) + +class _FLOATING_SAVE_AREA(Structure): + _fields_ = [ + ("ControlWord", DWORD), + ("StatusWord", DWORD), + ("TagWord", DWORD), + ("ErrorOffset", DWORD), + ("ErrorSelector", DWORD), + ("DataOffset", DWORD), + ("DataSelector", DWORD), + ("RegisterArea", BYTE * 80), + ("Cr0NpxState", DWORD), + ] +FLOATING_SAVE_AREA = _FLOATING_SAVE_AREA + +class _CONTEXT32(Structure): + _fields_ = [ + ("ContextFlags", DWORD), + ("Dr0", DWORD), + ("Dr1", DWORD), + ("Dr2", DWORD), + ("Dr3", DWORD), + ("Dr6", DWORD), + ("Dr7", DWORD), + ("FloatSave", FLOATING_SAVE_AREA), + ("SegGs", DWORD), + ("SegFs", DWORD), + ("SegEs", DWORD), + ("SegDs", DWORD), + ("Edi", DWORD), + ("Esi", DWORD), + ("Ebx", DWORD), + ("Edx", DWORD), + ("Ecx", DWORD), + ("Eax", DWORD), + ("Ebp", DWORD), + ("Eip", DWORD), + ("SegCs", DWORD), + ("EFlags", DWORD), + ("Esp", DWORD), + ("SegSs", DWORD), + ("ExtendedRegisters", BYTE * 512), + ] +PCONTEXT32 = POINTER(_CONTEXT32) +CONTEXT32 = _CONTEXT32 +LPCONTEXT32 = POINTER(_CONTEXT32) + +class _WOW64_FLOATING_SAVE_AREA(Structure): + _fields_ = [ + ("ControlWord", DWORD), + ("StatusWord", DWORD), + ("TagWord", DWORD), + ("ErrorOffset", DWORD), + ("ErrorSelector", DWORD), + ("DataOffset", DWORD), + ("DataSelector", DWORD), + ("RegisterArea", BYTE * WOW64_SIZE_OF_80387_REGISTERS), + ("Cr0NpxState", DWORD), + ] +WOW64_FLOATING_SAVE_AREA = _WOW64_FLOATING_SAVE_AREA + +class _WOW64_CONTEXT(Structure): + _fields_ = [ + ("ContextFlags", DWORD), + ("Dr0", DWORD), + ("Dr1", DWORD), + ("Dr2", DWORD), + ("Dr3", DWORD), + ("Dr6", DWORD), + ("Dr7", DWORD), + ("FloatSave", WOW64_FLOATING_SAVE_AREA), + ("SegGs", DWORD), + ("SegFs", DWORD), + ("SegEs", DWORD), + ("SegDs", DWORD), + ("Edi", DWORD), + ("Esi", DWORD), + ("Ebx", DWORD), + ("Edx", DWORD), + ("Ecx", DWORD), + ("Eax", DWORD), + ("Ebp", DWORD), + ("Eip", DWORD), + ("SegCs", DWORD), + ("EFlags", DWORD), + ("Esp", DWORD), + ("SegSs", DWORD), + ("ExtendedRegisters", BYTE * WOW64_MAXIMUM_SUPPORTED_EXTENSION), + ] +PWOW64_CONTEXT = POINTER(_WOW64_CONTEXT) +WOW64_CONTEXT = _WOW64_CONTEXT + +class _M128A(Structure): + _fields_ = [ + ("Low", ULONGLONG), + ("High", LONGLONG), + ] +M128A = _M128A +PM128A = POINTER(_M128A) + +class _XSAVE_FORMAT_64(Structure): + _fields_ = [ + ("ControlWord", WORD), + ("StatusWord", WORD), + ("TagWord", BYTE), + ("Reserved1", BYTE), + ("ErrorOpcode", WORD), + ("ErrorOffset", DWORD), + ("ErrorSelector", WORD), + ("Reserved2", WORD), + ("DataOffset", DWORD), + ("DataSelector", WORD), + ("Reserved3", WORD), + ("MxCsr", DWORD), + ("MxCsr_Mask", DWORD), + ("FloatRegisters", M128A * 8), + ("XmmRegisters", M128A * 16), + ("Reserved4", BYTE * 96), + ] +XSAVE_FORMAT_64 = _XSAVE_FORMAT_64 +PXSAVE_FORMAT_64 = POINTER(_XSAVE_FORMAT_64) + +class _XSAVE_FORMAT_32(Structure): + _fields_ = [ + ("ControlWord", WORD), + ("StatusWord", WORD), + ("TagWord", BYTE), + ("Reserved1", BYTE), + ("ErrorOpcode", WORD), + ("ErrorOffset", DWORD), + ("ErrorSelector", WORD), + ("Reserved2", WORD), + ("DataOffset", DWORD), + ("DataSelector", WORD), + ("Reserved3", WORD), + ("MxCsr", DWORD), + ("MxCsr_Mask", DWORD), + ("FloatRegisters", M128A * 8), + ("XmmRegisters", M128A * 8), + ("Reserved4", BYTE * 192), + ("StackControl", DWORD * 7), + ("Cr0NpxState", DWORD), + ] +XSAVE_FORMAT_32 = _XSAVE_FORMAT_32 +PXSAVE_FORMAT_32 = POINTER(_XSAVE_FORMAT_32) + +class _TMP_DUMMYSTRUCTNAME(Structure): + _fields_ = [ + ("Header", M128A * 2), + ("Legacy", M128A * 8), + ("Xmm0", M128A), + ("Xmm1", M128A), + ("Xmm2", M128A), + ("Xmm3", M128A), + ("Xmm4", M128A), + ("Xmm5", M128A), + ("Xmm6", M128A), + ("Xmm7", M128A), + ("Xmm8", M128A), + ("Xmm9", M128A), + ("Xmm10", M128A), + ("Xmm11", M128A), + ("Xmm12", M128A), + ("Xmm13", M128A), + ("Xmm14", M128A), + ("Xmm15", M128A), + ] +TMP_DUMMYSTRUCTNAME = _TMP_DUMMYSTRUCTNAME + +class _TMP_CONTEXT64_SUBUNION(Union): + _fields_ = [ + ("FltSave", XSAVE_FORMAT_64), + ("DUMMYSTRUCTNAME", TMP_DUMMYSTRUCTNAME), + ] +TMP_CONTEXT64_SUBUNION = _TMP_CONTEXT64_SUBUNION + +class _CONTEXT64(Structure): + _fields_ = [ + ("P1Home", DWORD64), + ("P2Home", DWORD64), + ("P3Home", DWORD64), + ("P4Home", DWORD64), + ("P5Home", DWORD64), + ("P6Home", DWORD64), + ("ContextFlags", DWORD), + ("MxCsr", DWORD), + ("SegCs", WORD), + ("SegDs", WORD), + ("SegEs", WORD), + ("SegFs", WORD), + ("SegGs", WORD), + ("SegSs", WORD), + ("EFlags", DWORD), + ("Dr0", DWORD64), + ("Dr1", DWORD64), + ("Dr2", DWORD64), + ("Dr3", DWORD64), + ("Dr6", DWORD64), + ("Dr7", DWORD64), + ("Rax", DWORD64), + ("Rcx", DWORD64), + ("Rdx", DWORD64), + ("Rbx", DWORD64), + ("Rsp", DWORD64), + ("Rbp", DWORD64), + ("Rsi", DWORD64), + ("Rdi", DWORD64), + ("R8", DWORD64), + ("R9", DWORD64), + ("R10", DWORD64), + ("R11", DWORD64), + ("R12", DWORD64), + ("R13", DWORD64), + ("R14", DWORD64), + ("R15", DWORD64), + ("Rip", DWORD64), + ("DUMMYUNIONNAME", TMP_CONTEXT64_SUBUNION), + ("VectorRegister", M128A * 26), + ("VectorControl", DWORD64), + ("DebugControl", DWORD64), + ("LastBranchToRip", DWORD64), + ("LastBranchFromRip", DWORD64), + ("LastExceptionToRip", DWORD64), + ("LastExceptionFromRip", DWORD64), + ] +PCONTEXT64 = POINTER(_CONTEXT64) +CONTEXT64 = _CONTEXT64 +LPCONTEXT64 = POINTER(_CONTEXT64) + +
[docs]class tagPROCESSENTRY32W(Structure): + _fields_ = [ + ("dwSize", DWORD), + ("cntUsage", DWORD), + ("th32ProcessID", DWORD), + ("th32DefaultHeapID", ULONG_PTR), + ("th32ModuleID", DWORD), + ("cntThreads", DWORD), + ("th32ParentProcessID", DWORD), + ("pcPriClassBase", LONG), + ("dwFlags", DWORD), + ("szExeFile", WCHAR * MAX_PATH), + ]
+PPROCESSENTRY32W = POINTER(tagPROCESSENTRY32W) +LPPROCESSENTRY32W = POINTER(tagPROCESSENTRY32W) +PROCESSENTRY32W = tagPROCESSENTRY32W + +
[docs]class tagPROCESSENTRY32(Structure): + _fields_ = [ + ("dwSize", DWORD), + ("cntUsage", DWORD), + ("th32ProcessID", DWORD), + ("th32DefaultHeapID", ULONG_PTR), + ("th32ModuleID", DWORD), + ("cntThreads", DWORD), + ("th32ParentProcessID", DWORD), + ("pcPriClassBase", LONG), + ("dwFlags", DWORD), + ("szExeFile", CHAR * MAX_PATH), + ]
+PROCESSENTRY32 = tagPROCESSENTRY32 +PPROCESSENTRY32 = POINTER(tagPROCESSENTRY32) +LPPROCESSENTRY32 = POINTER(tagPROCESSENTRY32) + +
[docs]class tagTHREADENTRY32(Structure): + _fields_ = [ + ("dwSize", DWORD), + ("cntUsage", DWORD), + ("th32ThreadID", DWORD), + ("th32OwnerProcessID", DWORD), + ("tpBasePri", LONG), + ("tpDeltaPri", LONG), + ("dwFlags", DWORD), + ]
+PTHREADENTRY32 = POINTER(tagTHREADENTRY32) +THREADENTRY32 = tagTHREADENTRY32 +LPTHREADENTRY32 = POINTER(tagTHREADENTRY32) + +class _LUID(Structure): + _fields_ = [ + ("LowPart", DWORD), + ("HighPart", LONG), + ] +LUID = _LUID +PLUID = POINTER(_LUID) + +class _LUID_AND_ATTRIBUTES(Structure): + _fields_ = [ + ("Luid", LUID), + ("Attributes", DWORD), + ] +LUID_AND_ATTRIBUTES = _LUID_AND_ATTRIBUTES +PLUID_AND_ATTRIBUTES = POINTER(_LUID_AND_ATTRIBUTES) + +class _TOKEN_PRIVILEGES(Structure): + _fields_ = [ + ("PrivilegeCount", DWORD), + ("Privileges", LUID_AND_ATTRIBUTES * ANYSIZE_ARRAY), + ] +TOKEN_PRIVILEGES = _TOKEN_PRIVILEGES +PTOKEN_PRIVILEGES = POINTER(_TOKEN_PRIVILEGES) + +class _TOKEN_ELEVATION(Structure): + _fields_ = [ + ("TokenIsElevated", DWORD), + ] +TOKEN_ELEVATION = _TOKEN_ELEVATION +PTOKEN_ELEVATION = POINTER(_TOKEN_ELEVATION) + +class _SID_AND_ATTRIBUTES(Structure): + _fields_ = [ + ("Sid", PSID), + ("Attributes", DWORD), + ] +SID_AND_ATTRIBUTES = _SID_AND_ATTRIBUTES +PSID_AND_ATTRIBUTES = POINTER(_SID_AND_ATTRIBUTES) + +class _TOKEN_MANDATORY_LABEL(Structure): + _fields_ = [ + ("Label", SID_AND_ATTRIBUTES), + ] +TOKEN_MANDATORY_LABEL = _TOKEN_MANDATORY_LABEL +PTOKEN_MANDATORY_LABEL = POINTER(_TOKEN_MANDATORY_LABEL) + +class _TOKEN_USER(Structure): + _fields_ = [ + ("User", SID_AND_ATTRIBUTES), + ] +PTOKEN_USER = POINTER(_TOKEN_USER) +TOKEN_USER = _TOKEN_USER + +class _OSVERSIONINFOA(Structure): + _fields_ = [ + ("dwOSVersionInfoSize", DWORD), + ("dwMajorVersion", DWORD), + ("dwMinorVersion", DWORD), + ("dwBuildNumber", DWORD), + ("dwPlatformId", DWORD), + ("szCSDVersion", CHAR * 128), + ] +POSVERSIONINFOA = POINTER(_OSVERSIONINFOA) +OSVERSIONINFOA = _OSVERSIONINFOA +LPOSVERSIONINFOA = POINTER(_OSVERSIONINFOA) + +class _OSVERSIONINFOW(Structure): + _fields_ = [ + ("dwOSVersionInfoSize", DWORD), + ("dwMajorVersion", DWORD), + ("dwMinorVersion", DWORD), + ("dwBuildNumber", DWORD), + ("dwPlatformId", DWORD), + ("szCSDVersion", WCHAR * 128), + ] +RTL_OSVERSIONINFOW = _OSVERSIONINFOW +PRTL_OSVERSIONINFOW = POINTER(_OSVERSIONINFOW) +LPOSVERSIONINFOW = POINTER(_OSVERSIONINFOW) +POSVERSIONINFOW = POINTER(_OSVERSIONINFOW) +OSVERSIONINFOW = _OSVERSIONINFOW + +class _OSVERSIONINFOEXA(Structure): + _fields_ = [ + ("dwOSVersionInfoSize", DWORD), + ("dwMajorVersion", DWORD), + ("dwMinorVersion", DWORD), + ("dwBuildNumber", DWORD), + ("dwPlatformId", DWORD), + ("szCSDVersion", CHAR * 128), + ("wServicePackMajor", WORD), + ("wServicePackMinor", WORD), + ("wSuiteMask", WORD), + ("wProductType", BYTE), + ("wReserved", BYTE), + ] +OSVERSIONINFOEXA = _OSVERSIONINFOEXA +POSVERSIONINFOEXA = POINTER(_OSVERSIONINFOEXA) +LPOSVERSIONINFOEXA = POINTER(_OSVERSIONINFOEXA) + +class _OSVERSIONINFOEXW(Structure): + _fields_ = [ + ("dwOSVersionInfoSize", DWORD), + ("dwMajorVersion", DWORD), + ("dwMinorVersion", DWORD), + ("dwBuildNumber", DWORD), + ("dwPlatformId", DWORD), + ("szCSDVersion", WCHAR * 128), + ("wServicePackMajor", WORD), + ("wServicePackMinor", WORD), + ("wSuiteMask", WORD), + ("wProductType", BYTE), + ("wReserved", BYTE), + ] +PRTL_OSVERSIONINFOEXW = POINTER(_OSVERSIONINFOEXW) +LPOSVERSIONINFOEXW = POINTER(_OSVERSIONINFOEXW) +OSVERSIONINFOEXW = _OSVERSIONINFOEXW +POSVERSIONINFOEXW = POINTER(_OSVERSIONINFOEXW) +RTL_OSVERSIONINFOEXW = _OSVERSIONINFOEXW + +class _OVERLAPPED(Structure): + _fields_ = [ + ("Internal", ULONG_PTR), + ("InternalHigh", ULONG_PTR), + ("Pointer", PVOID), + ("hEvent", HANDLE), + ] +LPOVERLAPPED = POINTER(_OVERLAPPED) +OVERLAPPED = _OVERLAPPED + +class _MIB_IPADDRROW_XP(Structure): + _fields_ = [ + ("dwAddr", DWORD), + ("dwIndex", IF_INDEX), + ("dwMask", DWORD), + ("dwBCastAddr", DWORD), + ("dwReasmSize", DWORD), + ("unused1", USHORT), + ("wType", USHORT), + ] +MIB_IPADDRROW = _MIB_IPADDRROW_XP +PMIB_IPADDRROW_XP = POINTER(_MIB_IPADDRROW_XP) +MIB_IPADDRROW_XP = _MIB_IPADDRROW_XP + +class _MIB_IPADDRTABLE(Structure): + _fields_ = [ + ("dwNumEntries", DWORD), + ("table", MIB_IPADDRROW * ANY_SIZE), + ] +PMIB_IPADDRTABLE = POINTER(_MIB_IPADDRTABLE) +MIB_IPADDRTABLE = _MIB_IPADDRTABLE + +class _MIB_IFROW(Structure): + _fields_ = [ + ("wszName", WCHAR * MAX_INTERFACE_NAME_LEN), + ("dwIndex", IF_INDEX), + ("dwType", IFTYPE), + ("dwMtu", DWORD), + ("dwSpeed", DWORD), + ("dwPhysAddrLen", DWORD), + ("bPhysAddr", BYTE * MAXLEN_PHYSADDR), + ("dwAdminStatus", DWORD), + ("dwOperStatus", INTERNAL_IF_OPER_STATUS), + ("dwLastChange", DWORD), + ("dwInOctets", DWORD), + ("dwInUcastPkts", DWORD), + ("dwInNUcastPkts", DWORD), + ("dwInDiscards", DWORD), + ("dwInErrors", DWORD), + ("dwInUnknownProtos", DWORD), + ("dwOutOctets", DWORD), + ("dwOutUcastPkts", DWORD), + ("dwOutNUcastPkts", DWORD), + ("dwOutDiscards", DWORD), + ("dwOutErrors", DWORD), + ("dwOutQLen", DWORD), + ("dwDescrLen", DWORD), + ("bDescr", UCHAR * MAXLEN_IFDESCR), + ] +PMIB_IFROW = POINTER(_MIB_IFROW) +MIB_IFROW = _MIB_IFROW + +class _MIB_IFTABLE(Structure): + _fields_ = [ + ("dwNumEntries", DWORD), + ("table", MIB_IFROW * ANY_SIZE), + ] +PMIB_IFTABLE = POINTER(_MIB_IFTABLE) +MIB_IFTABLE = _MIB_IFTABLE + +class _MIB_TCPROW_OWNER_PID(Structure): + _fields_ = [ + ("dwState", DWORD), + ("dwLocalAddr", DWORD), + ("dwLocalPort", DWORD), + ("dwRemoteAddr", DWORD), + ("dwRemotePort", DWORD), + ("dwOwningPid", DWORD), + ] +MIB_TCPROW_OWNER_PID = _MIB_TCPROW_OWNER_PID +PMIB_TCPROW_OWNER_PID = POINTER(_MIB_TCPROW_OWNER_PID) + +class _MIB_TCPTABLE_OWNER_PID(Structure): + _fields_ = [ + ("dwNumEntries", DWORD), + ("table", MIB_TCPROW_OWNER_PID * ANY_SIZE), + ] +MIB_TCPTABLE_OWNER_PID = _MIB_TCPTABLE_OWNER_PID +PMIB_TCPTABLE_OWNER_PID = POINTER(_MIB_TCPTABLE_OWNER_PID) + +class _MIB_UDPROW_OWNER_PID(Structure): + _fields_ = [ + ("dwLocalAddr", DWORD), + ("dwLocalPort", DWORD), + ("dwOwningPid", DWORD), + ] +MIB_UDPROW_OWNER_PID = _MIB_UDPROW_OWNER_PID +PMIB_UDPROW_OWNER_PID = POINTER(_MIB_UDPROW_OWNER_PID) + +class _MIB_UDPTABLE_OWNER_PID(Structure): + _fields_ = [ + ("dwNumEntries", DWORD), + ("table", MIB_UDPROW_OWNER_PID * ANY_SIZE), + ] +MIB_UDPTABLE_OWNER_PID = _MIB_UDPTABLE_OWNER_PID +PMIB_UDPTABLE_OWNER_PID = POINTER(_MIB_UDPTABLE_OWNER_PID) + +class _MIB_UDP6ROW_OWNER_PID(Structure): + _fields_ = [ + ("ucLocalAddr", UCHAR * 16), + ("dwLocalScopeId", DWORD), + ("dwLocalPort", DWORD), + ("dwOwningPid", DWORD), + ] +MIB_UDP6ROW_OWNER_PID = _MIB_UDP6ROW_OWNER_PID +PMIB_UDP6ROW_OWNER_PID = POINTER(_MIB_UDP6ROW_OWNER_PID) + +class _MIB_UDP6TABLE_OWNER_PID(Structure): + _fields_ = [ + ("dwNumEntries", DWORD), + ("table", MIB_UDP6ROW_OWNER_PID * ANY_SIZE), + ] +PMIB_UDP6TABLE_OWNER_PID = POINTER(_MIB_UDP6TABLE_OWNER_PID) +MIB_UDP6TABLE_OWNER_PID = _MIB_UDP6TABLE_OWNER_PID + +class _MIB_TCP6ROW_OWNER_PID(Structure): + _fields_ = [ + ("ucLocalAddr", UCHAR * 16), + ("dwLocalScopeId", DWORD), + ("dwLocalPort", DWORD), + ("ucRemoteAddr", UCHAR * 16), + ("dwRemoteScopeId", DWORD), + ("dwRemotePort", DWORD), + ("dwState", DWORD), + ("dwOwningPid", DWORD), + ] +MIB_TCP6ROW_OWNER_PID = _MIB_TCP6ROW_OWNER_PID +PMIB_TCP6ROW_OWNER_PID = POINTER(_MIB_TCP6ROW_OWNER_PID) + +class _MIB_TCP6TABLE_OWNER_PID(Structure): + _fields_ = [ + ("dwNumEntries", DWORD), + ("table", MIB_TCP6ROW_OWNER_PID * ANY_SIZE), + ] +MIB_TCP6TABLE_OWNER_PID = _MIB_TCP6TABLE_OWNER_PID +PMIB_TCP6TABLE_OWNER_PID = POINTER(_MIB_TCP6TABLE_OWNER_PID) + +class _MIB_TCPROW(Structure): + _fields_ = [ + ("dwState", DWORD), + ("dwLocalAddr", DWORD), + ("dwLocalPort", DWORD), + ("dwRemoteAddr", DWORD), + ("dwRemotePort", DWORD), + ] +MIB_TCPROW = _MIB_TCPROW +PMIB_TCPROW = POINTER(_MIB_TCPROW) + +class _IP_ADAPTER_INDEX_MAP(Structure): + _fields_ = [ + ("Index", ULONG), + ("Name", WCHAR * MAX_ADAPTER_NAME), + ] +PIP_ADAPTER_INDEX_MAP = POINTER(_IP_ADAPTER_INDEX_MAP) +IP_ADAPTER_INDEX_MAP = _IP_ADAPTER_INDEX_MAP + +class _IP_INTERFACE_INFO(Structure): + _fields_ = [ + ("NumAdapters", LONG), + ("Adapter", IP_ADAPTER_INDEX_MAP * 1), + ] +PIP_INTERFACE_INFO = POINTER(_IP_INTERFACE_INFO) +IP_INTERFACE_INFO = _IP_INTERFACE_INFO + +# Self referencing struct tricks +class _EXCEPTION_RECORD(Structure): pass +PEXCEPTION_RECORD = POINTER(_EXCEPTION_RECORD) +EXCEPTION_RECORD = _EXCEPTION_RECORD +_EXCEPTION_RECORD._fields_ = [ + ("ExceptionCode", DWORD), + ("ExceptionFlags", DWORD), + ("ExceptionRecord", POINTER(_EXCEPTION_RECORD)), + ("ExceptionAddress", PVOID), + ("NumberParameters", DWORD), + ("ExceptionInformation", ULONG_PTR * EXCEPTION_MAXIMUM_PARAMETERS), +] + +class _EXCEPTION_RECORD32(Structure): + _fields_ = [ + ("ExceptionCode", DWORD), + ("ExceptionFlags", DWORD), + ("ExceptionRecord", DWORD), + ("ExceptionAddress", DWORD), + ("NumberParameters", DWORD), + ("ExceptionInformation", DWORD * EXCEPTION_MAXIMUM_PARAMETERS), + ] +EXCEPTION_RECORD32 = _EXCEPTION_RECORD32 +PEXCEPTION_RECORD32 = POINTER(_EXCEPTION_RECORD32) + +class _EXCEPTION_RECORD64(Structure): + _fields_ = [ + ("ExceptionCode", DWORD), + ("ExceptionFlags", DWORD), + ("ExceptionRecord", DWORD64), + ("ExceptionAddress", DWORD64), + ("NumberParameters", DWORD), + ("__unusedAlignment", DWORD), + ("ExceptionInformation", DWORD64 * EXCEPTION_MAXIMUM_PARAMETERS), + ] +PEXCEPTION_RECORD64 = POINTER(_EXCEPTION_RECORD64) +EXCEPTION_RECORD64 = _EXCEPTION_RECORD64 + +class _EXCEPTION_POINTERS64(Structure): + _fields_ = [ + ("ExceptionRecord", PEXCEPTION_RECORD), + ("ContextRecord", PCONTEXT64), + ] +EXCEPTION_POINTERS64 = _EXCEPTION_POINTERS64 +PEXCEPTION_POINTERS64 = POINTER(_EXCEPTION_POINTERS64) + +class _EXCEPTION_POINTERS32(Structure): + _fields_ = [ + ("ExceptionRecord", PEXCEPTION_RECORD), + ("ContextRecord", PCONTEXT32), + ] +PEXCEPTION_POINTERS32 = POINTER(_EXCEPTION_POINTERS32) +EXCEPTION_POINTERS32 = _EXCEPTION_POINTERS32 + +class _DEBUG_PROCESSOR_IDENTIFICATION_ALPHA(Structure): + _fields_ = [ + ("Type", ULONG), + ("Revision", ULONG), + ] +DEBUG_PROCESSOR_IDENTIFICATION_ALPHA = _DEBUG_PROCESSOR_IDENTIFICATION_ALPHA +PDEBUG_PROCESSOR_IDENTIFICATION_ALPHA = POINTER(_DEBUG_PROCESSOR_IDENTIFICATION_ALPHA) + +class _DEBUG_PROCESSOR_IDENTIFICATION_AMD64(Structure): + _fields_ = [ + ("Family", ULONG), + ("Model", ULONG), + ("Stepping", ULONG), + ("VendorString", CHAR * 16), + ] +DEBUG_PROCESSOR_IDENTIFICATION_AMD64 = _DEBUG_PROCESSOR_IDENTIFICATION_AMD64 +PDEBUG_PROCESSOR_IDENTIFICATION_AMD64 = POINTER(_DEBUG_PROCESSOR_IDENTIFICATION_AMD64) + +class _DEBUG_PROCESSOR_IDENTIFICATION_IA64(Structure): + _fields_ = [ + ("Model", ULONG), + ("Revision", ULONG), + ("Family", ULONG), + ("ArchRev", ULONG), + ("VendorString", CHAR * 16), + ] +PDEBUG_PROCESSOR_IDENTIFICATION_IA64 = POINTER(_DEBUG_PROCESSOR_IDENTIFICATION_IA64) +DEBUG_PROCESSOR_IDENTIFICATION_IA64 = _DEBUG_PROCESSOR_IDENTIFICATION_IA64 + +class _DEBUG_PROCESSOR_IDENTIFICATION_X86(Structure): + _fields_ = [ + ("Family", ULONG), + ("Model", ULONG), + ("Stepping", ULONG), + ("VendorString", CHAR * 16), + ] +DEBUG_PROCESSOR_IDENTIFICATION_X86 = _DEBUG_PROCESSOR_IDENTIFICATION_X86 +PDEBUG_PROCESSOR_IDENTIFICATION_X86 = POINTER(_DEBUG_PROCESSOR_IDENTIFICATION_X86) + +class _DEBUG_PROCESSOR_IDENTIFICATION_ARM(Structure): + _fields_ = [ + ("Type", ULONG), + ("Revision", ULONG), + ] +DEBUG_PROCESSOR_IDENTIFICATION_ARM = _DEBUG_PROCESSOR_IDENTIFICATION_ARM +PDEBUG_PROCESSOR_IDENTIFICATION_ARM = POINTER(_DEBUG_PROCESSOR_IDENTIFICATION_ARM) + +class _DEBUG_PROCESSOR_IDENTIFICATION_ALL(Union): + _fields_ = [ + ("Alpha", DEBUG_PROCESSOR_IDENTIFICATION_ALPHA), + ("Amd64", DEBUG_PROCESSOR_IDENTIFICATION_AMD64), + ("Ia64", DEBUG_PROCESSOR_IDENTIFICATION_IA64), + ("X86", DEBUG_PROCESSOR_IDENTIFICATION_X86), + ("Arm", DEBUG_PROCESSOR_IDENTIFICATION_ARM), + ] +PDEBUG_PROCESSOR_IDENTIFICATION_ALL = POINTER(_DEBUG_PROCESSOR_IDENTIFICATION_ALL) +DEBUG_PROCESSOR_IDENTIFICATION_ALL = _DEBUG_PROCESSOR_IDENTIFICATION_ALL + +class _SYMBOL_INFO(Structure): + _fields_ = [ + ("SizeOfStruct", ULONG), + ("TypeIndex", ULONG), + ("Reserved", ULONG64 * 2), + ("Index", ULONG), + ("Size", ULONG), + ("ModBase", ULONG64), + ("Flags", ULONG), + ("Value", ULONG64), + ("Address", ULONG64), + ("Register", ULONG), + ("Scope", ULONG), + ("Tag", ULONG), + ("NameLen", ULONG), + ("MaxNameLen", ULONG), + ("Name", CHAR * 1), + ] +SYMBOL_INFO = _SYMBOL_INFO +PSYMBOL_INFO = POINTER(_SYMBOL_INFO) + +class _MODLOAD_DATA(Structure): + _fields_ = [ + ("ssize", DWORD), + ("ssig", DWORD), + ("data", PVOID), + ("size", DWORD), + ("flags", DWORD), + ] +PMODLOAD_DATA = POINTER(_MODLOAD_DATA) +MODLOAD_DATA = _MODLOAD_DATA + +class _SYSTEM_MODULE32(Structure): + _fields_ = [ + ("Reserved", ULONG * 2), + ("Base", ULONG), + ("Size", ULONG), + ("Flags", ULONG), + ("Index", USHORT), + ("Unknown", USHORT), + ("LoadCount", USHORT), + ("ModuleNameOffset", USHORT), + ("ImageName", CHAR * 256), + ] +SYSTEM_MODULE32 = _SYSTEM_MODULE32 +PSYSTEM_MODULE32 = POINTER(_SYSTEM_MODULE32) + +class _SYSTEM_MODULE64(Structure): + _fields_ = [ + ("Reserved", ULONG * 4), + ("Base", ULONG64), + ("Size", ULONG), + ("Flags", ULONG), + ("Index", USHORT), + ("Unknown", USHORT), + ("LoadCount", USHORT), + ("ModuleNameOffset", USHORT), + ("ImageName", CHAR * 256), + ] +SYSTEM_MODULE64 = _SYSTEM_MODULE64 +PSYSTEM_MODULE64 = POINTER(_SYSTEM_MODULE64) + +class _SYSTEM_MODULE_INFORMATION32(Structure): + _fields_ = [ + ("ModulesCount", ULONG), + ("Modules", SYSTEM_MODULE32 * 0), + ] +PSYSTEM_MODULE_INFORMATION32 = POINTER(_SYSTEM_MODULE_INFORMATION32) +SYSTEM_MODULE_INFORMATION32 = _SYSTEM_MODULE_INFORMATION32 + +class _SYSTEM_MODULE_INFORMATION64(Structure): + _fields_ = [ + ("ModulesCount", ULONG), + ("Modules", SYSTEM_MODULE64 * 0), + ] +PSYSTEM_MODULE_INFORMATION64 = POINTER(_SYSTEM_MODULE_INFORMATION64) +SYSTEM_MODULE_INFORMATION64 = _SYSTEM_MODULE_INFORMATION64 + +
[docs]class tagSAFEARRAYBOUND(Structure): + _fields_ = [ + ("cElements", ULONG), + ("lLbound", LONG), + ]
+SAFEARRAYBOUND = tagSAFEARRAYBOUND +LPSAFEARRAYBOUND = POINTER(tagSAFEARRAYBOUND) + +
[docs]class tagSAFEARRAY(Structure): + _fields_ = [ + ("cDims", USHORT), + ("fFeatures", USHORT), + ("cbElements", ULONG), + ("cLocks", ULONG), + ("pvData", PVOID), + ("rgsabound", SAFEARRAYBOUND * 1), + ]
+SAFEARRAY = tagSAFEARRAY + +class _DEBUG_BREAKPOINT_PARAMETERS(Structure): + _fields_ = [ + ("Offset", ULONG64), + ("Id", ULONG), + ("BreakType", ULONG), + ("ProcType", ULONG), + ("Flags", ULONG), + ("DataSize", ULONG), + ("DataAccessType", ULONG), + ("PassCount", ULONG), + ("CurrentPassCount", ULONG), + ("MatchThread", ULONG), + ("CommandSize", ULONG), + ("OffsetExpressionSize", ULONG), + ] +PDEBUG_BREAKPOINT_PARAMETERS = POINTER(_DEBUG_BREAKPOINT_PARAMETERS) +DEBUG_BREAKPOINT_PARAMETERS = _DEBUG_BREAKPOINT_PARAMETERS + +class _DEBUG_REGISTER_DESCRIPTION(Structure): + _fields_ = [ + ("Type", ULONG), + ("Flags", ULONG), + ("SubregMaster", ULONG), + ("SubregLength", ULONG), + ("SubregMask", ULONG64), + ("SubregShift", ULONG), + ("Reserved0", ULONG), + ] +DEBUG_REGISTER_DESCRIPTION = _DEBUG_REGISTER_DESCRIPTION +PDEBUG_REGISTER_DESCRIPTION = POINTER(_DEBUG_REGISTER_DESCRIPTION) + +class _DEBUG_STACK_FRAME(Structure): + _fields_ = [ + ("InstructionOffset", ULONG64), + ("ReturnOffset", ULONG64), + ("FrameOffset", ULONG64), + ("StackOffset", ULONG64), + ("FuncTableEntry", ULONG64), + ("Params", ULONG64 * 4), + ("Reserved", ULONG64 * 6), + ("Virtual", BOOL), + ("FrameNumber", ULONG), + ] +PDEBUG_STACK_FRAME = POINTER(_DEBUG_STACK_FRAME) +DEBUG_STACK_FRAME = _DEBUG_STACK_FRAME + +class _DEBUG_LAST_EVENT_INFO_BREAKPOINT(Structure): + _fields_ = [ + ("Id", ULONG), + ] +DEBUG_LAST_EVENT_INFO_BREAKPOINT = _DEBUG_LAST_EVENT_INFO_BREAKPOINT +PDEBUG_LAST_EVENT_INFO_BREAKPOINT = POINTER(_DEBUG_LAST_EVENT_INFO_BREAKPOINT) + +class _DEBUG_LAST_EVENT_INFO_EXCEPTION(Structure): + _fields_ = [ + ("ExceptionRecord", EXCEPTION_RECORD64), + ("FirstChance", ULONG), + ] +DEBUG_LAST_EVENT_INFO_EXCEPTION = _DEBUG_LAST_EVENT_INFO_EXCEPTION +PDEBUG_LAST_EVENT_INFO_EXCEPTION = POINTER(_DEBUG_LAST_EVENT_INFO_EXCEPTION) + +class _DEBUG_LAST_EVENT_INFO_EXIT_THREAD(Structure): + _fields_ = [ + ("ExitCode", ULONG), + ] +PDEBUG_LAST_EVENT_INFO_EXIT_THREAD = POINTER(_DEBUG_LAST_EVENT_INFO_EXIT_THREAD) +DEBUG_LAST_EVENT_INFO_EXIT_THREAD = _DEBUG_LAST_EVENT_INFO_EXIT_THREAD + +class _DEBUG_LAST_EVENT_INFO_EXIT_PROCESS(Structure): + _fields_ = [ + ("ExitCode", ULONG), + ] +PDEBUG_LAST_EVENT_INFO_EXIT_PROCESS = POINTER(_DEBUG_LAST_EVENT_INFO_EXIT_PROCESS) +DEBUG_LAST_EVENT_INFO_EXIT_PROCESS = _DEBUG_LAST_EVENT_INFO_EXIT_PROCESS + +class _DEBUG_LAST_EVENT_INFO_LOAD_MODULE(Structure): + _fields_ = [ + ("Base", ULONG64), + ] +PDEBUG_LAST_EVENT_INFO_LOAD_MODULE = POINTER(_DEBUG_LAST_EVENT_INFO_LOAD_MODULE) +DEBUG_LAST_EVENT_INFO_LOAD_MODULE = _DEBUG_LAST_EVENT_INFO_LOAD_MODULE + +class _DEBUG_LAST_EVENT_INFO_UNLOAD_MODULE(Structure): + _fields_ = [ + ("Base", ULONG64), + ] +PDEBUG_LAST_EVENT_INFO_UNLOAD_MODULE = POINTER(_DEBUG_LAST_EVENT_INFO_UNLOAD_MODULE) +DEBUG_LAST_EVENT_INFO_UNLOAD_MODULE = _DEBUG_LAST_EVENT_INFO_UNLOAD_MODULE + +class _DEBUG_LAST_EVENT_INFO_SYSTEM_ERROR(Structure): + _fields_ = [ + ("Error", ULONG), + ("Level", ULONG), + ] +PDEBUG_LAST_EVENT_INFO_SYSTEM_ERROR = POINTER(_DEBUG_LAST_EVENT_INFO_SYSTEM_ERROR) +DEBUG_LAST_EVENT_INFO_SYSTEM_ERROR = _DEBUG_LAST_EVENT_INFO_SYSTEM_ERROR + +class _DEBUG_SPECIFIC_FILTER_PARAMETERS(Structure): + _fields_ = [ + ("ExecutionOption", ULONG), + ("ContinueOption", ULONG), + ("TextSize", ULONG), + ("CommandSize", ULONG), + ("ArgumentSize", ULONG), + ] +DEBUG_SPECIFIC_FILTER_PARAMETERS = _DEBUG_SPECIFIC_FILTER_PARAMETERS +PDEBUG_SPECIFIC_FILTER_PARAMETERS = POINTER(_DEBUG_SPECIFIC_FILTER_PARAMETERS) + +class _DEBUG_EXCEPTION_FILTER_PARAMETERS(Structure): + _fields_ = [ + ("ExecutionOption", ULONG), + ("ContinueOption", ULONG), + ("TextSize", ULONG), + ("CommandSize", ULONG), + ("SecondCommandSize", ULONG), + ("ExceptionCode", ULONG), + ] +PDEBUG_EXCEPTION_FILTER_PARAMETERS = POINTER(_DEBUG_EXCEPTION_FILTER_PARAMETERS) +DEBUG_EXCEPTION_FILTER_PARAMETERS = _DEBUG_EXCEPTION_FILTER_PARAMETERS + +class _GUID(Structure): + _fields_ = [ + ("Data1", ULONG), + ("Data2", USHORT), + ("Data3", USHORT), + ("Data4", BYTE * 8), + ] +IID = _GUID +REFCLSID = POINTER(_GUID) +GUID = _GUID +REFIID = POINTER(_GUID) + +INITIAL_GUID = _GUID +class _GUID(INITIAL_GUID): + def __init__(self, Data1=None, Data2=None, Data3=None, Data4=None, name=None, strid=None): + data_tuple = (Data1, Data2, Data3, Data4) + self.name = name + self.strid = strid + if all(data is None for data in data_tuple): + return super(_GUID, self).__init__() + if any(data is None for data in data_tuple): + raise ValueError("All or none of (Data1, Data2, Data3, Data4) should be None") + super(_GUID, self).__init__(Data1, Data2, Data3, Data4) + + def __repr__(self): + notpresent = object() + # Handle IID created without '__init__' (like ctypes-ptr deref) + if getattr(self, "strid", notpresent) is notpresent: + self.strid = self.to_string() + if self.strid is None: + return super(_GUID, self).__repr__() + + if getattr(self, "name", notpresent) is notpresent: + self.name = None + if self.name is None: + return '<IID "{0}">'.format(self.strid.upper()) + return '<IID "{0}({1})">'.format(self.strid.upper(), self.name) + + def to_string(self): + data4_format = "{0:02X}{1:02X}-" + "".join("{{{i}:02X}}".format(i=i + 2) for i in range(6)) + data4_str = data4_format.format(*self.Data4) + return "{0:08X}-{1:04X}-{2:04X}-".format(self.Data1, self.Data2, self.Data3) + data4_str + + def update_strid(self): + new_strid = self.to_string() + self.strid = new_strid + + @classmethod + def from_string(cls, iid): + part_iid = iid.split("-") + datas = [int(x, 16) for x in part_iid[:3]] + datas.append(int(part_iid[3][:2], 16)) + datas.append(int(part_iid[3][2:], 16)) + for i in range(6): + datas.append(int(part_iid[4][i * 2:(i + 1) * 2], 16)) + return cls.from_raw(*datas, strid=iid) + + @classmethod + def from_raw(cls, Data1, Data2, Data3, Data41, Data42, Data43, Data44, Data45, Data46, Data47, Data48, **kwargs): + return cls(Data1, Data2, Data3, (BYTE*8)(Data41, Data42, Data43, Data44, Data45, Data46, Data47, Data48), **kwargs) + + def __eq__(self, other): + if not isinstance(other, (_GUID, INITIAL_GUID)): + return NotImplemented + return (self.Data1, self.Data2, self.Data3, self.Data4[:]) == (other.Data1, other.Data2, other.Data3, other.Data4[:]) + +LPGUID = POINTER(_GUID) +REFGUID = POINTER(_GUID) +REFCLSID = POINTER(_GUID) +REFIID = POINTER(_GUID) +IID = _GUID +REFCLSID = POINTER(_GUID) +GUID = _GUID +REFIID = POINTER(_GUID) + +class _TMP_signscale(Structure): + _fields_ = [ + ("scale", BYTE), + ("sign", BYTE), + ] + + +class _TMP_lowmid(Structure): + _fields_ = [ + ("Lo32", ULONG), + ("Mid32", ULONG), + ] + + +
[docs]class TMP_signscale_union(Union): + _fields_ = [ + ("s", _TMP_signscale), + ("signscale", USHORT), + ]
+ + +
[docs]class TMP_lowmid_union(Union): + _fields_ = [ + ("s", _TMP_lowmid), + ("Lo64", ULONGLONG), + ]
+ + +
[docs]class tagDEC(Structure): + _fields_ = [ + ("wReserved", USHORT), + ("u1", TMP_signscale_union), + ("Hi32", ULONG), + ("u2", TMP_signscale_union), + ]
+DECIMAL = tagDEC + +class __tagBRECORD(Structure): + _fields_ = [ + ("pvRecord", PVOID), + ("pRecInfo", PVOID), + ] +_tagBRECORD = __tagBRECORD + +
[docs]class TMP_variant_sub_union(Union): + _fields_ = [ + ("llVal", LONGLONG), + ("lVal", LONG), + ("bVal", BYTE), + ("iVal", SHORT), + ("fltVal", FLOAT), + ("dblVal", DOUBLE), + ("boolVal", VARIANT_BOOL), + ("scode", SCODE), + ("bstrVal", BSTR), + ("punkVal", PVOID), + ("pdispVal", PVOID), + ("parray", POINTER(SAFEARRAY)), + ("pbVal", POINTER(BYTE)), + ("piVal", POINTER(SHORT)), + ("plVal", POINTER(LONG)), + ("pllVal", POINTER(LONGLONG)), + ("pfltVal", POINTER(FLOAT)), + ("pdblVal", POINTER(DOUBLE)), + ("pboolVal", POINTER(VARIANT_BOOL)), + ("pscode", POINTER(SCODE)), + ("pbstrVal", POINTER(BSTR)), + ("byref", PVOID), + ("cVal", CHAR), + ("uiVal", USHORT), + ("ulVal", ULONG), + ("ullVal", ULONGLONG), + ("intVal", INT), + ("uintVal", UINT), + ("pcVal", POINTER(CHAR)), + ("puiVal", POINTER(USHORT)), + ("pulVal", POINTER(ULONG)), + ("pullVal", POINTER(ULONGLONG)), + ("pintVal", POINTER(INT)), + ("puintVal", POINTER(UINT)), + ("_VARIANT_NAME_4", _tagBRECORD), + ]
+ + +class __tagVARIANT(Structure): + _fields_ = [ + ("vt", VARTYPE), + ("wReserved1", WORD), + ("wReserved2", WORD), + ("wReserved3", WORD), + ("_VARIANT_NAME_3", TMP_variant_sub_union), + ] +LPVARIANTARG = POINTER(__tagVARIANT) +VARIANTARG = __tagVARIANT +VARIANT = __tagVARIANT +LPVARIANT = POINTER(__tagVARIANT) +_tagVARIANT = __tagVARIANT + +
[docs]class tagDISPPARAMS(Structure): + _fields_ = [ + ("rgvarg", POINTER(VARIANTARG)), + ("rgdispidNamedArgs", POINTER(DISPID)), + ("cArgs", UINT), + ("cNamedArgs", UINT), + ]
+DISPPARAMS = tagDISPPARAMS + +
[docs]class tagEXCEPINFO(Structure): + _fields_ = [ + ("wCode", WORD), + ("wReserved", WORD), + ("bstrSource", BSTR), + ("bstrDescription", BSTR), + ("bstrHelpFile", BSTR), + ("dwHelpContext", DWORD), + ("pvReserved", ULONG_PTR), + ("pfnDeferredFillIn", ULONG_PTR), + ("scode", SCODE), + ]
+EXCEPINFO = tagEXCEPINFO + +class _CRYPTOAPI_BLOB(Structure): + _fields_ = [ + ("cbData", DWORD), + ("pbData", POINTER(BYTE)), + ] +CRYPT_INTEGER_BLOB = _CRYPTOAPI_BLOB +PCRYPT_DATA_BLOB = POINTER(_CRYPTOAPI_BLOB) +PCRYPT_OBJID_BLOB = POINTER(_CRYPTOAPI_BLOB) +PCRYPT_DER_BLOB = POINTER(_CRYPTOAPI_BLOB) +PCRL_BLOB = POINTER(_CRYPTOAPI_BLOB) +PCRYPT_UINT_BLOB = POINTER(_CRYPTOAPI_BLOB) +CERT_NAME_BLOB = _CRYPTOAPI_BLOB +PCRYPT_DIGEST_BLOB = POINTER(_CRYPTOAPI_BLOB) +PCRYPT_INTEGER_BLOB = POINTER(_CRYPTOAPI_BLOB) +CERT_RDN_VALUE_BLOB = _CRYPTOAPI_BLOB +PCERT_NAME_BLOB = POINTER(_CRYPTOAPI_BLOB) +PCRYPT_HASH_BLOB = POINTER(_CRYPTOAPI_BLOB) +CRYPT_DATA_BLOB = _CRYPTOAPI_BLOB +DATA_BLOB = _CRYPTOAPI_BLOB +CRYPT_UINT_BLOB = _CRYPTOAPI_BLOB +PCERT_RDN_VALUE_BLOB = POINTER(_CRYPTOAPI_BLOB) +CRYPT_HASH_BLOB = _CRYPTOAPI_BLOB +CRL_BLOB = _CRYPTOAPI_BLOB +PCERT_BLOB = POINTER(_CRYPTOAPI_BLOB) +CRYPT_DIGEST_BLOB = _CRYPTOAPI_BLOB +CRYPT_OBJID_BLOB = _CRYPTOAPI_BLOB +CERT_BLOB = _CRYPTOAPI_BLOB +CRYPT_DER_BLOB = _CRYPTOAPI_BLOB +PDATA_BLOB = POINTER(_CRYPTOAPI_BLOB) +PCRYPT_ATTR_BLOB = POINTER(_CRYPTOAPI_BLOB) +CRYPT_ATTR_BLOB = _CRYPTOAPI_BLOB + +class _CRYPTOAPI_BLOB(_CRYPTOAPI_BLOB): + @classmethod + def from_string(cls, buf): + self = cls() + self.cbData = len(buf) + self.pbData = (BYTE * self.cbData)(*bytearray(buf)) + return self + + @property + def data(self): + return bytearray(self.pbData[:self.cbData]) +CRYPT_INTEGER_BLOB = _CRYPTOAPI_BLOB +PCRYPT_DATA_BLOB = POINTER(_CRYPTOAPI_BLOB) +PCRYPT_OBJID_BLOB = POINTER(_CRYPTOAPI_BLOB) +PCRYPT_DER_BLOB = POINTER(_CRYPTOAPI_BLOB) +PCRL_BLOB = POINTER(_CRYPTOAPI_BLOB) +PCRYPT_UINT_BLOB = POINTER(_CRYPTOAPI_BLOB) +CERT_NAME_BLOB = _CRYPTOAPI_BLOB +PCRYPT_DIGEST_BLOB = POINTER(_CRYPTOAPI_BLOB) +PCRYPT_INTEGER_BLOB = POINTER(_CRYPTOAPI_BLOB) +CERT_RDN_VALUE_BLOB = _CRYPTOAPI_BLOB +PCERT_NAME_BLOB = POINTER(_CRYPTOAPI_BLOB) +PCRYPT_HASH_BLOB = POINTER(_CRYPTOAPI_BLOB) +CRYPT_DATA_BLOB = _CRYPTOAPI_BLOB +DATA_BLOB = _CRYPTOAPI_BLOB +CRYPT_UINT_BLOB = _CRYPTOAPI_BLOB +PCERT_RDN_VALUE_BLOB = POINTER(_CRYPTOAPI_BLOB) +CRYPT_HASH_BLOB = _CRYPTOAPI_BLOB +CRL_BLOB = _CRYPTOAPI_BLOB +PCERT_BLOB = POINTER(_CRYPTOAPI_BLOB) +CRYPT_DIGEST_BLOB = _CRYPTOAPI_BLOB +CRYPT_OBJID_BLOB = _CRYPTOAPI_BLOB +CERT_BLOB = _CRYPTOAPI_BLOB +CRYPT_DER_BLOB = _CRYPTOAPI_BLOB +PDATA_BLOB = POINTER(_CRYPTOAPI_BLOB) +PCRYPT_ATTR_BLOB = POINTER(_CRYPTOAPI_BLOB) +CRYPT_ATTR_BLOB = _CRYPTOAPI_BLOB + +
[docs]class CRYPTCATATTRIBUTE_(Structure): + _fields_ = [ + ("cbStruct", DWORD), + ("pwszReferenceTag", LPWSTR), + ("dwAttrTypeAndAction", DWORD), + ("cbValue", DWORD), + ("pbValue", POINTER(BYTE)), + ("dwReserved", DWORD), + ]
+CRYPTCATATTRIBUTE = CRYPTCATATTRIBUTE_ +PCRYPTCATATTRIBUTE = POINTER(CRYPTCATATTRIBUTE_) + +class _CRYPT_ATTRIBUTE_TYPE_VALUE(Structure): + _fields_ = [ + ("pszObjId", LPSTR), + ("Value", CRYPT_OBJID_BLOB), + ] +CRYPT_ATTRIBUTE_TYPE_VALUE = _CRYPT_ATTRIBUTE_TYPE_VALUE +PCRYPT_ATTRIBUTE_TYPE_VALUE = POINTER(_CRYPT_ATTRIBUTE_TYPE_VALUE) + +class _CRYPT_ALGORITHM_IDENTIFIER(Structure): + _fields_ = [ + ("pszObjId", LPSTR), + ("Parameters", CRYPT_OBJID_BLOB), + ] +CRYPT_ALGORITHM_IDENTIFIER = _CRYPT_ALGORITHM_IDENTIFIER +PCRYPT_ALGORITHM_IDENTIFIER = POINTER(_CRYPT_ALGORITHM_IDENTIFIER) + +
[docs]class SIP_INDIRECT_DATA_(Structure): + _fields_ = [ + ("Data", CRYPT_ATTRIBUTE_TYPE_VALUE), + ("DigestAlgorithm", CRYPT_ALGORITHM_IDENTIFIER), + ("Digest", CRYPT_HASH_BLOB), + ]
+SIP_INDIRECT_DATA = SIP_INDIRECT_DATA_ +PSIP_INDIRECT_DATA = POINTER(SIP_INDIRECT_DATA_) + +
[docs]class CRYPTCATMEMBER_(Structure): + _fields_ = [ + ("cbStruct", DWORD), + ("pwszReferenceTag", LPWSTR), + ("pwszFileName", LPWSTR), + ("gSubjectType", GUID), + ("fdwMemberFlags", DWORD), + ("pIndirectData", POINTER(SIP_INDIRECT_DATA)), + ("dwCertVersion", DWORD), + ("dwReserved", DWORD), + ("hReserved", HANDLE), + ("sEncodedIndirectData", CRYPT_ATTR_BLOB), + ("sEncodedMemberInfo", CRYPT_ATTR_BLOB), + ]
+CRYPTCATMEMBER = CRYPTCATMEMBER_ +PCRYPTCATMEMBER = POINTER(CRYPTCATMEMBER_) + +
[docs]class WINTRUST_FILE_INFO_(Structure): + _fields_ = [ + ("cbStruct", DWORD), + ("pcwszFilePath", LPCWSTR), + ("hFile", HANDLE), + ("pgKnownSubject", POINTER(GUID)), + ]
+WINTRUST_FILE_INFO = WINTRUST_FILE_INFO_ +PWINTRUST_FILE_INFO = POINTER(WINTRUST_FILE_INFO_) + +class _CRYPT_ATTRIBUTE(Structure): + _fields_ = [ + ("pszObjId", LPSTR), + ("cValue", DWORD), + ("rgValue", PCRYPT_ATTR_BLOB), + ] +PCRYPT_ATTRIBUTE = POINTER(_CRYPT_ATTRIBUTE) +CRYPT_ATTRIBUTE = _CRYPT_ATTRIBUTE + +class _CTL_ENTRY(Structure): + _fields_ = [ + ("SubjectIdentifier", CRYPT_DATA_BLOB), + ("cAttribute", DWORD), + ("rgAttribute", PCRYPT_ATTRIBUTE), + ] +PCTL_ENTRY = POINTER(_CTL_ENTRY) +CTL_ENTRY = _CTL_ENTRY + +class _CRYPT_ATTRIBUTE(Structure): + _fields_ = [ + ("pszObjId", LPSTR), + ("cValue", DWORD), + ("rgValue", PCRYPT_ATTR_BLOB), + ] +PCRYPT_ATTRIBUTE = POINTER(_CRYPT_ATTRIBUTE) +CRYPT_ATTRIBUTE = _CRYPT_ATTRIBUTE + +class _CRYPT_ATTRIBUTES(Structure): + _fields_ = [ + ("cAttr", DWORD), + ("rgAttr", PCRYPT_ATTRIBUTE), + ] +CRYPT_ATTRIBUTES = _CRYPT_ATTRIBUTES +PCRYPT_ATTRIBUTES = POINTER(_CRYPT_ATTRIBUTES) + +class _CMSG_SIGNER_INFO(Structure): + _fields_ = [ + ("dwVersion", DWORD), + ("Issuer", CERT_NAME_BLOB), + ("SerialNumber", CRYPT_INTEGER_BLOB), + ("HashAlgorithm", CRYPT_ALGORITHM_IDENTIFIER), + ("HashEncryptionAlgorithm", CRYPT_ALGORITHM_IDENTIFIER), + ("EncryptedHash", CRYPT_DATA_BLOB), + ("AuthAttrs", CRYPT_ATTRIBUTES), + ("UnauthAttrs", CRYPT_ATTRIBUTES), + ] +CMSG_SIGNER_INFO = _CMSG_SIGNER_INFO +PCMSG_SIGNER_INFO = POINTER(_CMSG_SIGNER_INFO) + +class _CERT_EXTENSION(Structure): + _fields_ = [ + ("pszObjId", LPSTR), + ("fCritical", BOOL), + ("Value", CRYPT_OBJID_BLOB), + ] +CERT_EXTENSION = _CERT_EXTENSION +PCERT_EXTENSION = POINTER(_CERT_EXTENSION) + +class _CTL_USAGE(Structure): + _fields_ = [ + ("cUsageIdentifier", DWORD), + ("rgpszUsageIdentifier", POINTER(LPSTR)), + ] +CERT_ENHKEY_USAGE = _CTL_USAGE +PCTL_USAGE = POINTER(_CTL_USAGE) +CTL_USAGE = _CTL_USAGE +PCERT_ENHKEY_USAGE = POINTER(_CTL_USAGE) + +class _CTL_INFO(Structure): + _fields_ = [ + ("dwVersion", DWORD), + ("SubjectUsage", CTL_USAGE), + ("ListIdentifier", CRYPT_DATA_BLOB), + ("SequenceNumber", CRYPT_INTEGER_BLOB), + ("ThisUpdate", FILETIME), + ("NextUpdate", FILETIME), + ("SubjectAlgorithm", CRYPT_ALGORITHM_IDENTIFIER), + ("cCTLEntry", DWORD), + ("rgCTLEntry", PCTL_ENTRY), + ("cExtension", DWORD), + ("rgExtension", PCERT_EXTENSION), + ] +CTL_INFO = _CTL_INFO +PCTL_INFO = POINTER(_CTL_INFO) + +class _CTL_CONTEXT(Structure): + _fields_ = [ + ("dwMsgAndCertEncodingType", DWORD), + ("pbCtlEncoded", POINTER(BYTE)), + ("cbCtlEncoded", DWORD), + ("pCtlInfo", PCTL_INFO), + ("hCertStore", HCERTSTORE), + ("hCryptMsg", HCRYPTMSG), + ("pbCtlContent", POINTER(BYTE)), + ("cbCtlContent", DWORD), + ] +PCTL_CONTEXT = POINTER(_CTL_CONTEXT) +CTL_CONTEXT = _CTL_CONTEXT +PCCTL_CONTEXT = POINTER(_CTL_CONTEXT) + +
[docs]class WINTRUST_CATALOG_INFO_(Structure): + _fields_ = [ + ("cbStruct", DWORD), + ("dwCatalogVersion", DWORD), + ("pcwszCatalogFilePath", LPCWSTR), + ("pcwszMemberTag", LPCWSTR), + ("pcwszMemberFilePath", LPCWSTR), + ("hMemberFile", HANDLE), + ("pbCalculatedFileHash", POINTER(BYTE)), + ("cbCalculatedFileHash", DWORD), + ("pcCatalogContext", PCCTL_CONTEXT), + ]
+PWINTRUST_CATALOG_INFO = POINTER(WINTRUST_CATALOG_INFO_) +WINTRUST_CATALOG_INFO = WINTRUST_CATALOG_INFO_ + +
[docs]class WINTRUST_BLOB_INFO_(Structure): + _fields_ = [ + ("cbStruct", DWORD), + ("gSubject", GUID), + ("pcwszDisplayName", LPCWSTR), + ("cbMemObject", DWORD), + ("pbMemObject", POINTER(BYTE)), + ("cbMemSignedMsg", DWORD), + ("pbMemSignedMsg", POINTER(BYTE)), + ]
+PWINTRUST_BLOB_INFO = POINTER(WINTRUST_BLOB_INFO_) +WINTRUST_BLOB_INFO = WINTRUST_BLOB_INFO_ + +class _CRYPT_BIT_BLOB(Structure): + _fields_ = [ + ("cbData", DWORD), + ("pbData", POINTER(BYTE)), + ("cUnusedBits", DWORD), + ] +CRYPT_BIT_BLOB = _CRYPT_BIT_BLOB +PCRYPT_BIT_BLOB = POINTER(_CRYPT_BIT_BLOB) + +class _CERT_PUBLIC_KEY_INFO(Structure): + _fields_ = [ + ("Algorithm", CRYPT_ALGORITHM_IDENTIFIER), + ("PublicKey", CRYPT_BIT_BLOB), + ] +PCERT_PUBLIC_KEY_INFO = POINTER(_CERT_PUBLIC_KEY_INFO) +CERT_PUBLIC_KEY_INFO = _CERT_PUBLIC_KEY_INFO + +class _CERT_INFO(Structure): + _fields_ = [ + ("dwVersion", DWORD), + ("SerialNumber", CRYPT_INTEGER_BLOB), + ("SignatureAlgorithm", CRYPT_ALGORITHM_IDENTIFIER), + ("Issuer", CERT_NAME_BLOB), + ("NotBefore", FILETIME), + ("NotAfter", FILETIME), + ("Subject", CERT_NAME_BLOB), + ("SubjectPublicKeyInfo", CERT_PUBLIC_KEY_INFO), + ("IssuerUniqueId", CRYPT_BIT_BLOB), + ("SubjectUniqueId", CRYPT_BIT_BLOB), + ("cExtension", DWORD), + ("rgExtension", PCERT_EXTENSION), + ] +CERT_INFO = _CERT_INFO +PCERT_INFO = POINTER(_CERT_INFO) + +class _CERT_CONTEXT(Structure): + _fields_ = [ + ("dwCertEncodingType", DWORD), + ("pbCertEncoded", POINTER(BYTE)), + ("cbCertEncoded", DWORD), + ("pCertInfo", PCERT_INFO), + ("hCertStore", HCERTSTORE), + ] +CERT_CONTEXT = _CERT_CONTEXT +PCERT_CONTEXT = POINTER(_CERT_CONTEXT) + +
[docs]class WINTRUST_SGNR_INFO_(Structure): + _fields_ = [ + ("cbStruct", DWORD), + ("pcwszDisplayName", LPCWSTR), + ("psSignerInfo", POINTER(CMSG_SIGNER_INFO)), + ("chStores", DWORD), + ("pahStores", POINTER(HCERTSTORE)), + ]
+WINTRUST_SGNR_INFO = WINTRUST_SGNR_INFO_ +PWINTRUST_SGNR_INFO = POINTER(WINTRUST_SGNR_INFO_) + +class _FILETIME(Structure): + _fields_ = [ + ("dwLowDateTime", DWORD), + ("dwHighDateTime", DWORD), + ] +LPFILETIME = POINTER(_FILETIME) +PFILETIME = POINTER(_FILETIME) +FILETIME = _FILETIME + +
[docs]class WINTRUST_CERT_INFO_(Structure): + _fields_ = [ + ("cbStruct", DWORD), + ("pcwszDisplayName", LPCWSTR), + ("psCertContext", POINTER(CERT_CONTEXT)), + ("chStores", DWORD), + ("pahStores", POINTER(HCERTSTORE)), + ("dwFlags", DWORD), + ("psftVerifyAsOf", POINTER(FILETIME)), + ]
+WINTRUST_CERT_INFO = WINTRUST_CERT_INFO_ +PWINTRUST_CERT_INFO = POINTER(WINTRUST_CERT_INFO_) + +class _TMP_WINTRUST_UNION_TYPE(Union): + _fields_ = [ + ("pFile", POINTER(WINTRUST_FILE_INFO_)), + ("pCatalog", POINTER(WINTRUST_CATALOG_INFO_)), + ("pBlob", POINTER(WINTRUST_BLOB_INFO_)), + ("pSgnr", POINTER(WINTRUST_SGNR_INFO_)), + ("pCert", POINTER(WINTRUST_CERT_INFO_)), + ] +TMP_WINTRUST_UNION_TYPE = _TMP_WINTRUST_UNION_TYPE + +class _WINTRUST_DATA(Structure): + _fields_ = [ + ("cbStruct", DWORD), + ("pPolicyCallbackData", LPVOID), + ("pSIPClientData", LPVOID), + ("dwUIChoice", DWORD), + ("fdwRevocationChecks", DWORD), + ("dwUnionChoice", DWORD), + ("tmp_union", TMP_WINTRUST_UNION_TYPE), + ("dwStateAction", DWORD), + ("hWVTStateData", HANDLE), + ("pwszURLReference", POINTER(WCHAR)), + ("dwProvFlags", DWORD), + ("dwUIContext", DWORD), + ] +PWINTRUST_DATA = POINTER(_WINTRUST_DATA) +WINTRUST_DATA = _WINTRUST_DATA + +class _PROCESS_BASIC_INFORMATION(Structure): + _fields_ = [ + ("ExitStatus", NTSTATUS), + ("PebBaseAddress", PPEB), + ("AffinityMask", ULONG_PTR), + ("BasePriority", KPRIORITY), + ("UniqueProcessId", HANDLE), + ("InheritedFromUniqueProcessId", HANDLE), + ] +PPROCESS_BASIC_INFORMATION = POINTER(_PROCESS_BASIC_INFORMATION) +PROCESS_BASIC_INFORMATION = _PROCESS_BASIC_INFORMATION + +class _JIT_DEBUG_INFO(Structure): + _fields_ = [ + ("dwSize", DWORD), + ("dwProcessorArchitecture", DWORD), + ("dwThreadID", DWORD), + ("dwReserved0", DWORD), + ("lpExceptionAddress", ULONG64), + ("lpExceptionRecord", ULONG64), + ("lpContextRecord", ULONG64), + ] +LPJIT_DEBUG_INFO = POINTER(_JIT_DEBUG_INFO) +JIT_DEBUG_INFO = _JIT_DEBUG_INFO + +class _SID_IDENTIFIER_AUTHORITY(Structure): + _fields_ = [ + ("Value", BYTE * 6), + ] +SID_IDENTIFIER_AUTHORITY = _SID_IDENTIFIER_AUTHORITY +PSID_IDENTIFIER_AUTHORITY = POINTER(_SID_IDENTIFIER_AUTHORITY) + +class _EXCEPTION_DEBUG_INFO(Structure): + _fields_ = [ + ("ExceptionRecord", EXCEPTION_RECORD), + ("dwFirstChance", DWORD), + ] +LPEXCEPTION_DEBUG_INFO = POINTER(_EXCEPTION_DEBUG_INFO) +EXCEPTION_DEBUG_INFO = _EXCEPTION_DEBUG_INFO + +class _CREATE_THREAD_DEBUG_INFO(Structure): + _fields_ = [ + ("hThread", HANDLE), + ("lpThreadLocalBase", LPVOID), + ("lpStartAddress", LPTHREAD_START_ROUTINE), + ] +LPCREATE_THREAD_DEBUG_INFO = POINTER(_CREATE_THREAD_DEBUG_INFO) +CREATE_THREAD_DEBUG_INFO = _CREATE_THREAD_DEBUG_INFO + +class _CREATE_PROCESS_DEBUG_INFO(Structure): + _fields_ = [ + ("hFile", HANDLE), + ("hProcess", HANDLE), + ("hThread", HANDLE), + ("lpBaseOfImage", LPVOID), + ("dwDebugInfoFileOffset", DWORD), + ("nDebugInfoSize", DWORD), + ("lpThreadLocalBase", LPVOID), + ("lpStartAddress", LPTHREAD_START_ROUTINE), + ("lpImageName", LPVOID), + ("fUnicode", WORD), + ] +CREATE_PROCESS_DEBUG_INFO = _CREATE_PROCESS_DEBUG_INFO +LPCREATE_PROCESS_DEBUG_INFO = POINTER(_CREATE_PROCESS_DEBUG_INFO) + +class _EXIT_THREAD_DEBUG_INFO(Structure): + _fields_ = [ + ("dwExitCode", DWORD), + ] +EXIT_THREAD_DEBUG_INFO = _EXIT_THREAD_DEBUG_INFO +LPEXIT_THREAD_DEBUG_INFO = POINTER(_EXIT_THREAD_DEBUG_INFO) + +class _EXIT_PROCESS_DEBUG_INFO(Structure): + _fields_ = [ + ("dwExitCode", DWORD), + ] +LPEXIT_PROCESS_DEBUG_INFO = POINTER(_EXIT_PROCESS_DEBUG_INFO) +EXIT_PROCESS_DEBUG_INFO = _EXIT_PROCESS_DEBUG_INFO + +class _LOAD_DLL_DEBUG_INFO(Structure): + _fields_ = [ + ("hFile", HANDLE), + ("lpBaseOfDll", LPVOID), + ("dwDebugInfoFileOffset", DWORD), + ("nDebugInfoSize", DWORD), + ("lpImageName", LPVOID), + ("fUnicode", WORD), + ] +LPLOAD_DLL_DEBUG_INFO = POINTER(_LOAD_DLL_DEBUG_INFO) +LOAD_DLL_DEBUG_INFO = _LOAD_DLL_DEBUG_INFO + +class _UNLOAD_DLL_DEBUG_INFO(Structure): + _fields_ = [ + ("lpBaseOfDll", LPVOID), + ] +UNLOAD_DLL_DEBUG_INFO = _UNLOAD_DLL_DEBUG_INFO +LPUNLOAD_DLL_DEBUG_INFO = POINTER(_UNLOAD_DLL_DEBUG_INFO) + +class _OUTPUT_DEBUG_STRING_INFO(Structure): + _fields_ = [ + ("lpDebugStringData", LPSTR), + ("fUnicode", WORD), + ("nDebugStringLength", WORD), + ] +OUTPUT_DEBUG_STRING_INFO = _OUTPUT_DEBUG_STRING_INFO +LPOUTPUT_DEBUG_STRING_INFO = POINTER(_OUTPUT_DEBUG_STRING_INFO) + +class _RIP_INFO(Structure): + _fields_ = [ + ("dwError", DWORD), + ("dwType", DWORD), + ] +LPRIP_INFO = POINTER(_RIP_INFO) +RIP_INFO = _RIP_INFO + +class _TMP_UNION_DEBUG_INFO(Union): + _fields_ = [ + ("Exception", EXCEPTION_DEBUG_INFO), + ("CreateThread", CREATE_THREAD_DEBUG_INFO), + ("CreateProcessInfo", CREATE_PROCESS_DEBUG_INFO), + ("ExitThread", EXIT_THREAD_DEBUG_INFO), + ("ExitProcess", EXIT_PROCESS_DEBUG_INFO), + ("LoadDll", LOAD_DLL_DEBUG_INFO), + ("UnloadDll", UNLOAD_DLL_DEBUG_INFO), + ("DebugString", OUTPUT_DEBUG_STRING_INFO), + ("RipInfo", RIP_INFO), + ] +TMP_UNION_DEBUG_INFO = _TMP_UNION_DEBUG_INFO + +class _DEBUG_EVENT(Structure): + _fields_ = [ + ("dwDebugEventCode", DWORD), + ("dwProcessId", DWORD), + ("dwThreadId", DWORD), + ("u", _TMP_UNION_DEBUG_INFO), + ] +LPDEBUG_EVENT = POINTER(_DEBUG_EVENT) +DEBUG_EVENT = _DEBUG_EVENT + +class _STRING(Structure): + _fields_ = [ + ("Length", USHORT), + ("MaximumLength", USHORT), + ("Buffer", LPCSTR), + ] +PCANSI_STRING = POINTER(_STRING) +PSTRING = POINTER(_STRING) +STRING = _STRING +PANSI_STRING = POINTER(_STRING) + +class _OBJECT_ATTRIBUTES(Structure): + _fields_ = [ + ("Length", ULONG), + ("RootDirectory", HANDLE), + ("ObjectName", PUNICODE_STRING), + ("Attributes", ULONG), + ("SecurityDescriptor", PVOID), + ("SecurityQualityOfService", PVOID), + ] +POBJECT_ATTRIBUTES = POINTER(_OBJECT_ATTRIBUTES) +OBJECT_ATTRIBUTES = _OBJECT_ATTRIBUTES + +class _TMP_UNION_IO_STATUS_BLOCK(Union): + _fields_ = [ + ("Status", NTSTATUS), + ("Pointer", PVOID), + ] +TMP_UNION_IO_STATUS_BLOCK = _TMP_UNION_IO_STATUS_BLOCK + +class _IO_STATUS_BLOCK(Structure): + _fields_ = [ + ("DUMMYUNIONNAME", TMP_UNION_IO_STATUS_BLOCK), + ("Information", ULONG_PTR), + ] +IO_STATUS_BLOCK = _IO_STATUS_BLOCK +PIO_STATUS_BLOCK = POINTER(_IO_STATUS_BLOCK) + +class _SECURITY_QUALITY_OF_SERVICE(Structure): + _fields_ = [ + ("Length", DWORD), + ("ImpersonationLevel", SECURITY_IMPERSONATION_LEVEL), + ("ContextTrackingMode", SECURITY_CONTEXT_TRACKING_MODE), + ("EffectiveOnly", BOOLEAN), + ] +PSECURITY_QUALITY_OF_SERVICE = POINTER(_SECURITY_QUALITY_OF_SERVICE) +SECURITY_QUALITY_OF_SERVICE = _SECURITY_QUALITY_OF_SERVICE + +class _SERVICE_STATUS(Structure): + _fields_ = [ + ("dwServiceType", DWORD), + ("dwCurrentState", DWORD), + ("dwControlsAccepted", DWORD), + ("dwWin32ExitCode", DWORD), + ("dwServiceSpecificExitCode", DWORD), + ("dwCheckPoint", DWORD), + ("dwWaitHint", DWORD), + ] +SERVICE_STATUS = _SERVICE_STATUS +LPSERVICE_STATUS = POINTER(_SERVICE_STATUS) + +class _SERVICE_STATUS_PROCESS(Structure): + _fields_ = [ + ("dwServiceType", DWORD), + ("dwCurrentState", DWORD), + ("dwControlsAccepted", DWORD), + ("dwWin32ExitCode", DWORD), + ("dwServiceSpecificExitCode", DWORD), + ("dwCheckPoint", DWORD), + ("dwWaitHint", DWORD), + ("dwProcessId", DWORD), + ("dwServiceFlags", DWORD), + ] +LPSERVICE_STATUS_PROCESS = POINTER(_SERVICE_STATUS_PROCESS) +SERVICE_STATUS_PROCESS = _SERVICE_STATUS_PROCESS + +class _ENUM_SERVICE_STATUS_PROCESSA(Structure): + _fields_ = [ + ("lpServiceName", LPSTR), + ("lpDisplayName", LPSTR), + ("ServiceStatusProcess", SERVICE_STATUS_PROCESS), + ] +LPENUM_SERVICE_STATUS_PROCESSA = POINTER(_ENUM_SERVICE_STATUS_PROCESSA) +ENUM_SERVICE_STATUS_PROCESSA = _ENUM_SERVICE_STATUS_PROCESSA + +class _ENUM_SERVICE_STATUS_PROCESSW(Structure): + _fields_ = [ + ("lpServiceName", LPWSTR), + ("lpDisplayName", LPWSTR), + ("ServiceStatusProcess", SERVICE_STATUS_PROCESS), + ] +ENUM_SERVICE_STATUS_PROCESSW = _ENUM_SERVICE_STATUS_PROCESSW +LPENUM_SERVICE_STATUS_PROCESSW = POINTER(_ENUM_SERVICE_STATUS_PROCESSW) + +
[docs]class CATALOG_INFO_(Structure): + _fields_ = [ + ("cbStruct", DWORD), + ("wszCatalogFile", WCHAR * MAX_PATH), + ]
+CATALOG_INFO = CATALOG_INFO_ + +class _SYSTEM_HANDLE(Structure): + _fields_ = [ + ("dwProcessId", DWORD), + ("bObjectType", BYTE), + ("bFlags", BYTE), + ("wValue", WORD), + ("pAddress", PVOID), + ("GrantedAccess", DWORD), + ] +SYSTEM_HANDLE = _SYSTEM_HANDLE + +class _SYSTEM_HANDLE_INFORMATION(Structure): + _fields_ = [ + ("HandleCount", ULONG), + ("Handles", SYSTEM_HANDLE * 1), + ] +PSYSTEM_HANDLE_INFORMATION = POINTER(_SYSTEM_HANDLE_INFORMATION) +SYSTEM_HANDLE_INFORMATION = _SYSTEM_HANDLE_INFORMATION + +class __PUBLIC_OBJECT_TYPE_INFORMATION(Structure): + _fields_ = [ + ("TypeName", UNICODE_STRING), + ("Reserved", ULONG * 22), + ] +PPUBLIC_OBJECT_TYPE_INFORMATION = POINTER(__PUBLIC_OBJECT_TYPE_INFORMATION) +PUBLIC_OBJECT_TYPE_INFORMATION = __PUBLIC_OBJECT_TYPE_INFORMATION + +class _PUBLIC_OBJECT_BASIC_INFORMATION(Structure): + _fields_ = [ + ("Attributes", ULONG), + ("GrantedAccess", ACCESS_MASK), + ("HandleCount", ULONG), + ("PointerCount", ULONG), + ("Reserved", ULONG * 10), + ] +PUBLIC_OBJECT_BASIC_INFORMATION = _PUBLIC_OBJECT_BASIC_INFORMATION +PPUBLIC_OBJECT_BASIC_INFORMATION = POINTER(_PUBLIC_OBJECT_BASIC_INFORMATION) + +class _EVENTLOGRECORD(Structure): + _fields_ = [ + ("Length", DWORD), + ("Reserved", DWORD), + ("RecordNumber", DWORD), + ("TimeGenerated", DWORD), + ("TimeWritten", DWORD), + ("EventID", DWORD), + ("EventType", WORD), + ("NumStrings", WORD), + ("EventCategory", WORD), + ("ReservedFlags", WORD), + ("ClosingRecordNumber", DWORD), + ("StringOffset", DWORD), + ("UserSidLength", DWORD), + ("UserSidOffset", DWORD), + ("DataLength", DWORD), + ("DataOffset", DWORD), + ] +PEVENTLOGRECORD = POINTER(_EVENTLOGRECORD) +EVENTLOGRECORD = _EVENTLOGRECORD + +
[docs]class tagSOLE_AUTHENTICATION_SERVICE(Structure): + _fields_ = [ + ("dwAuthnSvc", DWORD), + ("dwAuthzSvc", DWORD), + ("pPrincipalName", POINTER(OLECHAR)), + ("hr", HRESULT), + ]
+PSOLE_AUTHENTICATION_SERVICE = POINTER(tagSOLE_AUTHENTICATION_SERVICE) +SOLE_AUTHENTICATION_SERVICE = tagSOLE_AUTHENTICATION_SERVICE + +class _OBJECT_DIRECTORY_INFORMATION(Structure): + _fields_ = [ + ("Name", UNICODE_STRING), + ("TypeName", UNICODE_STRING), + ] +OBJECT_DIRECTORY_INFORMATION = _OBJECT_DIRECTORY_INFORMATION +POBJECT_DIRECTORY_INFORMATION = POINTER(_OBJECT_DIRECTORY_INFORMATION) + +class _DEBUG_VALUE_TMP_SUBSTRUCT1(Structure): + _fields_ = [ + ("I64", ULONG64), + ("Nat", BOOL), + ] +DEBUG_VALUE_TMP_SUBSTRUCT1 = _DEBUG_VALUE_TMP_SUBSTRUCT1 + +class _DEBUG_VALUE_TMP_SUBSTRUCT2(Structure): + _fields_ = [ + ("LowPart", ULONG), + ("HighPart", ULONG), + ] +DEBUG_VALUE_TMP_SUBSTRUCT2 = _DEBUG_VALUE_TMP_SUBSTRUCT2 + +class _DEBUG_VALUE_TMP_SUBSTRUCT3(Structure): + _fields_ = [ + ("LowPart", ULONG64), + ("HighPart", LONG64), + ] +DEBUG_VALUE_TMP_SUBSTRUCT3 = _DEBUG_VALUE_TMP_SUBSTRUCT3 + +class _DEBUG_VALUE_TMP_UNION(Union): + _fields_ = [ + ("I8", UCHAR), + ("I16", USHORT), + ("I32", ULONG), + ("tmp_sub_struct_1", _DEBUG_VALUE_TMP_SUBSTRUCT1), + ("F32", FLOAT), + ("F64", DOUBLE), + ("F80Bytes", UCHAR * 10), + ("F82Bytes", UCHAR * 11), + ("F128Bytes", UCHAR * 16), + ("VI8", UCHAR * 16), + ("VI16", USHORT * 8), + ("VI32", ULONG * 4), + ("VI64", ULONG64 * 2), + ("VF32", FLOAT * 4), + ("VF64", DOUBLE * 2), + ("I64Parts32", DEBUG_VALUE_TMP_SUBSTRUCT2), + ("F128Parts64", DEBUG_VALUE_TMP_SUBSTRUCT3), + ("RawBytes", UCHAR * 24), + ] +DEBUG_VALUE_TMP_UNION = _DEBUG_VALUE_TMP_UNION + +class _DEBUG_VALUE(Structure): + _fields_ = [ + ("u", _DEBUG_VALUE_TMP_UNION), + ("TailOfRawBytes", ULONG), + ("Type", ULONG), + ] +DEBUG_VALUE = _DEBUG_VALUE +PDEBUG_VALUE = POINTER(_DEBUG_VALUE) + +class _DEBUG_SYMBOL_PARAMETERS(Structure): + _fields_ = [ + ("Module", ULONG64), + ("TypeId", ULONG), + ("ParentSymbol", ULONG), + ("SubElements", ULONG), + ("Flags", ULONG), + ("Reserved", ULONG64), + ] +DEBUG_SYMBOL_PARAMETERS = _DEBUG_SYMBOL_PARAMETERS +PDEBUG_SYMBOL_PARAMETERS = POINTER(_DEBUG_SYMBOL_PARAMETERS) + +class _DEBUG_SYMBOL_ENTRY(Structure): + _fields_ = [ + ("ModuleBase", ULONG64), + ("Offset", ULONG64), + ("Id", ULONG64), + ("Arg64", ULONG64), + ("Size", ULONG), + ("Flags", ULONG), + ("TypeId", ULONG), + ("NameSize", ULONG), + ("Token", ULONG), + ("Tag", ULONG), + ("Arg32", ULONG), + ("Reserved", ULONG), + ] +PDEBUG_SYMBOL_ENTRY = POINTER(_DEBUG_SYMBOL_ENTRY) +DEBUG_SYMBOL_ENTRY = _DEBUG_SYMBOL_ENTRY + +class _DEBUG_MODULE_PARAMETERS(Structure): + _fields_ = [ + ("Base", ULONG64), + ("Size", ULONG), + ("TimeDateStamp", ULONG), + ("Checksum", ULONG), + ("Flags", ULONG), + ("SymbolType", ULONG), + ("ImageNameSize", ULONG), + ("ModuleNameSize", ULONG), + ("LoadedImageNameSize", ULONG), + ("SymbolFileNameSize", ULONG), + ("MappedImageNameSize", ULONG), + ("Reserved", ULONG64 * 2), + ] +PDEBUG_MODULE_PARAMETERS = POINTER(_DEBUG_MODULE_PARAMETERS) +DEBUG_MODULE_PARAMETERS = _DEBUG_MODULE_PARAMETERS + +class _DEBUG_MODULE_AND_ID(Structure): + _fields_ = [ + ("ModuleBase", ULONG64), + ("Id", ULONG64), + ] +DEBUG_MODULE_AND_ID = _DEBUG_MODULE_AND_ID +PDEBUG_MODULE_AND_ID = POINTER(_DEBUG_MODULE_AND_ID) + +class _DEBUG_OFFSET_REGION(Structure): + _fields_ = [ + ("Base", ULONG64), + ("Size", ULONG64), + ] +DEBUG_OFFSET_REGION = _DEBUG_OFFSET_REGION +PDEBUG_OFFSET_REGION = POINTER(_DEBUG_OFFSET_REGION) + +class _DEBUG_SYMBOL_SOURCE_ENTRY(Structure): + _fields_ = [ + ("ModuleBase", ULONG64), + ("Offset", ULONG64), + ("FileNameId", ULONG64), + ("EngineInternal", ULONG64), + ("Size", ULONG), + ("Flags", ULONG), + ("FileNameSize", ULONG), + ("StartLine", ULONG), + ("EndLine", ULONG), + ("StartColumn", ULONG), + ("EndColumn", ULONG), + ("Reserved", ULONG), + ] +DEBUG_SYMBOL_SOURCE_ENTRY = _DEBUG_SYMBOL_SOURCE_ENTRY +PDEBUG_SYMBOL_SOURCE_ENTRY = POINTER(_DEBUG_SYMBOL_SOURCE_ENTRY) + +class _CMSG_SIGNER_INFO(Structure): + _fields_ = [ + ("dwVersion", DWORD), + ("Issuer", CERT_NAME_BLOB), + ("SerialNumber", CRYPT_INTEGER_BLOB), + ("HashAlgorithm", CRYPT_ALGORITHM_IDENTIFIER), + ("HashEncryptionAlgorithm", CRYPT_ALGORITHM_IDENTIFIER), + ("EncryptedHash", CRYPT_DATA_BLOB), + ("AuthAttrs", CRYPT_ATTRIBUTES), + ("UnauthAttrs", CRYPT_ATTRIBUTES), + ] +CMSG_SIGNER_INFO = _CMSG_SIGNER_INFO +PCMSG_SIGNER_INFO = POINTER(_CMSG_SIGNER_INFO) + +class _SPC_SERIALIZED_OBJECT(Structure): + _fields_ = [ + ("ClassId", SPC_UUID), + ("SerializedData", CRYPT_DATA_BLOB), + ] +SPC_SERIALIZED_OBJECT = _SPC_SERIALIZED_OBJECT +PSPC_SERIALIZED_OBJECT = POINTER(_SPC_SERIALIZED_OBJECT) + +class _TMP_SPC_LINK_UNION(Union): + _fields_ = [ + ("pwszUrl", LPWSTR), + ("Moniker", SPC_SERIALIZED_OBJECT), + ("pwszFile", LPWSTR), + ] +TMP_SPC_LINK_UNION = _TMP_SPC_LINK_UNION + + +PSPC_LINK = POINTER(SPC_LINK_) +SPC_LINK = SPC_LINK_ + +class _SPC_SP_OPUS_INFO(Structure): + _fields_ = [ + ("pwszProgramName", LPCWSTR), + ("pMoreInfo", POINTER(SPC_LINK_)), + ("pPublisherInfo", POINTER(SPC_LINK_)), + ] +PSPC_SP_OPUS_INFO = POINTER(_SPC_SP_OPUS_INFO) +SPC_SP_OPUS_INFO = _SPC_SP_OPUS_INFO + +class _CERT_TRUST_STATUS(Structure): + _fields_ = [ + ("dwErrorStatus", DWORD), + ("dwInfoStatus", DWORD), + ] +PCERT_TRUST_STATUS = POINTER(_CERT_TRUST_STATUS) +CERT_TRUST_STATUS = _CERT_TRUST_STATUS + +class _CERT_TRUST_LIST_INFO(Structure): + _fields_ = [ + ("cbSize", DWORD), + ("pCtlEntry", PCTL_ENTRY), + ("pCtlContext", PCCTL_CONTEXT), + ] +PCERT_TRUST_LIST_INFO = POINTER(_CERT_TRUST_LIST_INFO) +CERT_TRUST_LIST_INFO = _CERT_TRUST_LIST_INFO + +class _CERT_CONTEXT(Structure): + _fields_ = [ + ("dwCertEncodingType", DWORD), + ("pbCertEncoded", POINTER(BYTE)), + ("cbCertEncoded", DWORD), + ("pCertInfo", PCERT_INFO), + ("hCertStore", HCERTSTORE), + ] +PCCERT_CONTEXT = POINTER(_CERT_CONTEXT) +CERT_CONTEXT = _CERT_CONTEXT +PCERT_CONTEXT = POINTER(_CERT_CONTEXT) + +class _CRL_ENTRY(Structure): + _fields_ = [ + ("SerialNumber", CRYPT_INTEGER_BLOB), + ("RevocationDate", FILETIME), + ("cExtension", DWORD), + ("rgExtension", PCERT_EXTENSION), + ] +CRL_ENTRY = _CRL_ENTRY +PCRL_ENTRY = POINTER(_CRL_ENTRY) + +class _CRL_INFO(Structure): + _fields_ = [ + ("dwVersion", DWORD), + ("SignatureAlgorithm", CRYPT_ALGORITHM_IDENTIFIER), + ("Issuer", CERT_NAME_BLOB), + ("ThisUpdate", FILETIME), + ("NextUpdate", FILETIME), + ("cCRLEntry", DWORD), + ("rgCRLEntry", PCRL_ENTRY), + ("cExtension", DWORD), + ("rgExtension", PCERT_EXTENSION), + ] +CRL_INFO = _CRL_INFO +PCRL_INFO = POINTER(_CRL_INFO) + +class _CRL_CONTEXT(Structure): + _fields_ = [ + ("dwCertEncodingType", DWORD), + ("pbCrlEncoded", POINTER(BYTE)), + ("cbCrlEncoded", DWORD), + ("pCrlInfo", PCRL_INFO), + ("hCertStore", HCERTSTORE), + ] +PCCRL_CONTEXT = POINTER(_CRL_CONTEXT) +CRL_CONTEXT = _CRL_CONTEXT +PCRL_CONTEXT = POINTER(_CRL_CONTEXT) + +class _CERT_REVOCATION_CRL_INFO(Structure): + _fields_ = [ + ("cbSize", DWORD), + ("pBaseCrlContext", PCCRL_CONTEXT), + ("pDeltaCrlContext", PCCRL_CONTEXT), + ("pCrlEntry", PCRL_ENTRY), + ("fDeltaCrlEntry", BOOL), + ] +CERT_REVOCATION_CRL_INFO = _CERT_REVOCATION_CRL_INFO +PCERT_REVOCATION_CRL_INFO = POINTER(_CERT_REVOCATION_CRL_INFO) + +class _CERT_REVOCATION_INFO(Structure): + _fields_ = [ + ("cbSize", DWORD), + ("dwRevocationResult", DWORD), + ("pszRevocationOid", LPCSTR), + ("pvOidSpecificInfo", LPVOID), + ("fHasFreshnessTime", BOOL), + ("dwFreshnessTime", DWORD), + ("pCrlInfo", PCERT_REVOCATION_CRL_INFO), + ] +CERT_REVOCATION_INFO = _CERT_REVOCATION_INFO +PCERT_REVOCATION_INFO = POINTER(_CERT_REVOCATION_INFO) + +class _CERT_CHAIN_ELEMENT(Structure): + _fields_ = [ + ("cbSize", DWORD), + ("pCertContext", PCCERT_CONTEXT), + ("TrustStatus", CERT_TRUST_STATUS), + ("pRevocationInfo", PCERT_REVOCATION_INFO), + ("pIssuanceUsage", PCERT_ENHKEY_USAGE), + ("pApplicationUsage", PCERT_ENHKEY_USAGE), + ("pwszExtendedErrorInfo", LPCWSTR), + ] +PCERT_CHAIN_ELEMENT = POINTER(_CERT_CHAIN_ELEMENT) +CERT_CHAIN_ELEMENT = _CERT_CHAIN_ELEMENT +PCCERT_CHAIN_ELEMENT = POINTER(_CERT_CHAIN_ELEMENT) + +class _CERT_SIMPLE_CHAIN(Structure): + _fields_ = [ + ("cbSize", DWORD), + ("TrustStatus", CERT_TRUST_STATUS), + ("cElement", DWORD), + ("rgpElement", POINTER(PCERT_CHAIN_ELEMENT)), + ("pTrustListInfo", PCERT_TRUST_LIST_INFO), + ("fHasRevocationFreshnessTime", BOOL), + ("dwRevocationFreshnessTime", DWORD), + ] +CERT_SIMPLE_CHAIN = _CERT_SIMPLE_CHAIN +PCERT_SIMPLE_CHAIN = POINTER(_CERT_SIMPLE_CHAIN) +PCCERT_SIMPLE_CHAIN = POINTER(_CERT_SIMPLE_CHAIN) + +# Self referencing struct tricks +class _CERT_CHAIN_CONTEXT(Structure): pass +CERT_CHAIN_CONTEXT = _CERT_CHAIN_CONTEXT +PCERT_CHAIN_CONTEXT = POINTER(_CERT_CHAIN_CONTEXT) +PCCERT_CHAIN_CONTEXT = POINTER(_CERT_CHAIN_CONTEXT) +_CERT_CHAIN_CONTEXT._fields_ = [ + ("cbSize", DWORD), + ("TrustStatus", CERT_TRUST_STATUS), + ("cChain", DWORD), + ("rgpChain", POINTER(PCERT_SIMPLE_CHAIN)), + ("cLowerQualityChainContext", DWORD), + ("rgpLowerQualityChainContext", POINTER(PCCERT_CHAIN_CONTEXT)), + ("fHasRevocationFreshnessTime", BOOL), + ("dwRevocationFreshnessTime", DWORD), + ("dwCreateFlags", DWORD), + ("ChainId", GUID), +] + +class _CERT_USAGE_MATCH(Structure): + _fields_ = [ + ("dwType", DWORD), + ("Usage", CERT_ENHKEY_USAGE), + ] +CERT_USAGE_MATCH = _CERT_USAGE_MATCH +PCERT_USAGE_MATCH = POINTER(_CERT_USAGE_MATCH) + +class _CERT_CHAIN_PARA(Structure): + _fields_ = [ + ("cbSize", DWORD), + ("RequestedUsage", CERT_USAGE_MATCH), + ("RequestedIssuancePolicy", CERT_USAGE_MATCH), + ("dwUrlRetrievalTimeout", DWORD), + ("fCheckRevocationFreshnessTime", BOOL), + ("dwRevocationFreshnessTime", DWORD), + ("pftCacheResync", LPFILETIME), + ] +CERT_CHAIN_PARA = _CERT_CHAIN_PARA +PCERT_CHAIN_PARA = POINTER(_CERT_CHAIN_PARA) + +class _CERT_CHAIN_ENGINE_CONFIG(Structure): + _fields_ = [ + ("cbSize", DWORD), + ("hRestrictedRoot", HCERTSTORE), + ("hRestrictedTrust", HCERTSTORE), + ("hRestrictedOther", HCERTSTORE), + ("cAdditionalStore", DWORD), + ("rghAdditionalStore", POINTER(HCERTSTORE)), + ("dwFlags", DWORD), + ("dwUrlRetrievalTimeout", DWORD), + ("MaximumCachedCertificates", DWORD), + ("CycleDetectionModulus", DWORD), + ] +CERT_CHAIN_ENGINE_CONFIG = _CERT_CHAIN_ENGINE_CONFIG +PCERT_CHAIN_ENGINE_CONFIG = POINTER(_CERT_CHAIN_ENGINE_CONFIG) + +class _SYSTEMTIME(Structure): + _fields_ = [ + ("wYear", WORD), + ("wMonth", WORD), + ("wDayOfWeek", WORD), + ("wDay", WORD), + ("wHour", WORD), + ("wMinute", WORD), + ("wSecond", WORD), + ("wMilliseconds", WORD), + ] +SYSTEMTIME = _SYSTEMTIME +PSYSTEMTIME = POINTER(_SYSTEMTIME) + +class _CERT_EXTENSIONS(Structure): + _fields_ = [ + ("cExtension", DWORD), + ("rgExtension", PCERT_EXTENSION), + ] +PCERT_EXTENSIONS = POINTER(_CERT_EXTENSIONS) +CERT_EXTENSIONS = _CERT_EXTENSIONS + +class _CRYPT_KEY_PROV_PARAM(Structure): + _fields_ = [ + ("dwParam", DWORD), + ("pbData", POINTER(BYTE)), + ("cbData", DWORD), + ("dwFlags", DWORD), + ] +CRYPT_KEY_PROV_PARAM = _CRYPT_KEY_PROV_PARAM +PCRYPT_KEY_PROV_PARAM = POINTER(_CRYPT_KEY_PROV_PARAM) + +class _CRYPT_KEY_PROV_INFO(Structure): + _fields_ = [ + ("pwszContainerName", LPWSTR), + ("pwszProvName", LPWSTR), + ("dwProvType", DWORD), + ("dwFlags", DWORD), + ("cProvParam", DWORD), + ("rgProvParam", PCRYPT_KEY_PROV_PARAM), + ("dwKeySpec", DWORD), + ] +CRYPT_KEY_PROV_INFO = _CRYPT_KEY_PROV_INFO +PCRYPT_KEY_PROV_INFO = POINTER(_CRYPT_KEY_PROV_INFO) + +class _CRYPT_ENCRYPT_MESSAGE_PARA(Structure): + _fields_ = [ + ("cbSize", DWORD), + ("dwMsgEncodingType", DWORD), + ("hCryptProv", HCRYPTPROV_LEGACY), + ("ContentEncryptionAlgorithm", CRYPT_ALGORITHM_IDENTIFIER), + ("pvEncryptionAuxInfo", POINTER(VOID)), + ("dwFlags", DWORD), + ("dwInnerContentType", DWORD), + ] +PCRYPT_ENCRYPT_MESSAGE_PARA = POINTER(_CRYPT_ENCRYPT_MESSAGE_PARA) +CRYPT_ENCRYPT_MESSAGE_PARA = _CRYPT_ENCRYPT_MESSAGE_PARA + +class _CRYPT_DECRYPT_MESSAGE_PARA(Structure): + _fields_ = [ + ("cbSize", DWORD), + ("dwMsgAndCertEncodingType", DWORD), + ("cCertStore", DWORD), + ("rghCertStore", POINTER(HCERTSTORE)), + ("dwFlags", DWORD), + ] +PCRYPT_DECRYPT_MESSAGE_PARA = POINTER(_CRYPT_DECRYPT_MESSAGE_PARA) +CRYPT_DECRYPT_MESSAGE_PARA = _CRYPT_DECRYPT_MESSAGE_PARA + +class _CERT_KEY_CONTEXT(Structure): + _fields_ = [ + ("cbSize", DWORD), + ("hCryptProv", HCRYPTPROV), + ("dwKeySpec", DWORD), + ] +CERT_KEY_CONTEXT = _CERT_KEY_CONTEXT +PCERT_KEY_CONTEXT = POINTER(_CERT_KEY_CONTEXT) + +class _CRYPT_ENCODE_PARA(Structure): + _fields_ = [ + ("cbSize", DWORD), + ("pfnAlloc", PVOID), + ("pfnFree", PVOID), + ] +PCRYPT_ENCODE_PARA = POINTER(_CRYPT_ENCODE_PARA) +CRYPT_ENCODE_PARA = _CRYPT_ENCODE_PARA + +
[docs]class tagPOINT(Structure): + _fields_ = [ + ("x", LONG), + ("y", LONG), + ]
+LPPOINT = POINTER(tagPOINT) +PPOINT = POINTER(tagPOINT) +POINT = tagPOINT + +class _ACL(Structure): + _fields_ = [ + ("AclRevision", BYTE), + ("Sbz1", BYTE), + ("AclSize", WORD), + ("AceCount", WORD), + ("Sbz2", WORD), + ] +PACL = POINTER(_ACL) +ACL = _ACL + +class _ACE_HEADER(Structure): + _fields_ = [ + ("AceType", BYTE), + ("AceFlags", BYTE), + ("AceSize", WORD), + ] +PACE_HEADER = POINTER(_ACE_HEADER) +ACE_HEADER = _ACE_HEADER + +class _ACCESS_ALLOWED_ACE(Structure): + _fields_ = [ + ("Header", ACE_HEADER), + ("Mask", ACCESS_MASK), + ("SidStart", DWORD), + ] +PACCESS_ALLOWED_ACE = POINTER(_ACCESS_ALLOWED_ACE) +ACCESS_ALLOWED_ACE = _ACCESS_ALLOWED_ACE + +class _ACCESS_ALLOWED_CALLBACK_ACE(Structure): + _fields_ = [ + ("Header", ACE_HEADER), + ("Mask", ACCESS_MASK), + ("SidStart", DWORD), + ] +PACCESS_ALLOWED_CALLBACK_ACE = POINTER(_ACCESS_ALLOWED_CALLBACK_ACE) +ACCESS_ALLOWED_CALLBACK_ACE = _ACCESS_ALLOWED_CALLBACK_ACE + +class _ACCESS_ALLOWED_CALLBACK_OBJECT_ACE(Structure): + _fields_ = [ + ("Header", ACE_HEADER), + ("Mask", ACCESS_MASK), + ("Flags", DWORD), + ("ObjectType", GUID), + ("InheritedObjectType", GUID), + ("SidStart", DWORD), + ] +PACCESS_ALLOWED_CALLBACK_OBJECT_ACE = POINTER(_ACCESS_ALLOWED_CALLBACK_OBJECT_ACE) +ACCESS_ALLOWED_CALLBACK_OBJECT_ACE = _ACCESS_ALLOWED_CALLBACK_OBJECT_ACE + +class _ACCESS_ALLOWED_OBJECT_ACE(Structure): + _fields_ = [ + ("Header", ACE_HEADER), + ("Mask", ACCESS_MASK), + ("Flags", DWORD), + ("ObjectType", GUID), + ("InheritedObjectType", GUID), + ("SidStart", DWORD), + ] +PACCESS_ALLOWED_OBJECT_ACE = POINTER(_ACCESS_ALLOWED_OBJECT_ACE) +ACCESS_ALLOWED_OBJECT_ACE = _ACCESS_ALLOWED_OBJECT_ACE + +class _ACCESS_DENIED_ACE(Structure): + _fields_ = [ + ("Header", ACE_HEADER), + ("Mask", ACCESS_MASK), + ("SidStart", DWORD), + ] +ACCESS_DENIED_ACE = _ACCESS_DENIED_ACE +PACCESS_DENIED_ACE = POINTER(_ACCESS_DENIED_ACE) + +class _ACCESS_DENIED_CALLBACK_ACE(Structure): + _fields_ = [ + ("Header", ACE_HEADER), + ("Mask", ACCESS_MASK), + ("SidStart", DWORD), + ] +ACCESS_DENIED_CALLBACK_ACE = _ACCESS_DENIED_CALLBACK_ACE +PACCESS_DENIED_CALLBACK_ACE = POINTER(_ACCESS_DENIED_CALLBACK_ACE) + +class _ACCESS_DENIED_OBJECT_ACE(Structure): + _fields_ = [ + ("Header", ACE_HEADER), + ("Mask", ACCESS_MASK), + ("Flags", DWORD), + ("ObjectType", GUID), + ("InheritedObjectType", GUID), + ("SidStart", DWORD), + ] +ACCESS_DENIED_OBJECT_ACE = _ACCESS_DENIED_OBJECT_ACE +PACCESS_DENIED_OBJECT_ACE = POINTER(_ACCESS_DENIED_OBJECT_ACE) + +class _SYSTEM_MANDATORY_LABEL_ACE(Structure): + _fields_ = [ + ("Header", ACE_HEADER), + ("Mask", ACCESS_MASK), + ("SidStart", DWORD), + ] +SYSTEM_MANDATORY_LABEL_ACE = _SYSTEM_MANDATORY_LABEL_ACE +PSYSTEM_MANDATORY_LABEL_ACE = POINTER(_SYSTEM_MANDATORY_LABEL_ACE) + +class _RTL_UNLOAD_EVENT_TRACE(Structure): + _fields_ = [ + ("BaseAddress", PVOID), + ("SizeOfImage", SIZE_T), + ("Sequence", ULONG), + ("TimeDateStamp", ULONG), + ("CheckSum", ULONG), + ("ImageName", WCHAR * 32), + ("Version", ULONG * 2), + ] +PRTL_UNLOAD_EVENT_TRACE = POINTER(_RTL_UNLOAD_EVENT_TRACE) +RTL_UNLOAD_EVENT_TRACE = _RTL_UNLOAD_EVENT_TRACE + +class _RTL_UNLOAD_EVENT_TRACE32(Structure): + _fields_ = [ + ("BaseAddress", DWORD), + ("SizeOfImage", DWORD), + ("Sequence", ULONG), + ("TimeDateStamp", ULONG), + ("CheckSum", ULONG), + ("ImageName", WCHAR * 32), + ("Version", ULONG * 2), + ] +RTL_UNLOAD_EVENT_TRACE32 = _RTL_UNLOAD_EVENT_TRACE32 +PRTL_UNLOAD_EVENT_TRACE32 = POINTER(_RTL_UNLOAD_EVENT_TRACE32) + +class _RTL_UNLOAD_EVENT_TRACE64(Structure): + _fields_ = [ + ("BaseAddress", ULONGLONG), + ("SizeOfImage", ULONGLONG), + ("Sequence", ULONG), + ("TimeDateStamp", ULONG), + ("CheckSum", ULONG), + ("ImageName", WCHAR * 32), + ("Version", ULONG * 2), + ] +PRTL_UNLOAD_EVENT_TRACE64 = POINTER(_RTL_UNLOAD_EVENT_TRACE64) +RTL_UNLOAD_EVENT_TRACE64 = _RTL_UNLOAD_EVENT_TRACE64 + +
[docs]class tagRECT(Structure): + _fields_ = [ + ("left", LONG), + ("top", LONG), + ("right", LONG), + ("bottom", LONG), + ]
+LPRECT = POINTER(tagRECT) +NPRECT = POINTER(tagRECT) +RECT = tagRECT +PRECT = POINTER(tagRECT) + +
[docs]class tagRGBTRIPLE(Structure): + _fields_ = [ + ("rgbtBlue", BYTE), + ("rgbtGreen", BYTE), + ("rgbtRed", BYTE), + ]
+NPRGBTRIPLE = POINTER(tagRGBTRIPLE) +LPRGBTRIPLE = POINTER(tagRGBTRIPLE) +RGBTRIPLE = tagRGBTRIPLE +PRGBTRIPLE = POINTER(tagRGBTRIPLE) + +
[docs]class tagBITMAPFILEHEADER(Structure): + _pack_ = 2 + _fields_ = [ + ("bfType", WORD), + ("bfSize", DWORD), + ("bfReserved1", WORD), + ("bfReserved2", WORD), + ("bfOffBits", DWORD), + ]
+BITMAPFILEHEADER = tagBITMAPFILEHEADER +PBITMAPFILEHEADER = POINTER(tagBITMAPFILEHEADER) +LPBITMAPFILEHEADER = POINTER(tagBITMAPFILEHEADER) + +
[docs]class tagBITMAPCOREHEADER(Structure): + _fields_ = [ + ("bcSize", DWORD), + ("bcWidth", WORD), + ("bcHeight", WORD), + ("bcPlanes", WORD), + ("bcBitCount", WORD), + ]
+LPBITMAPCOREHEADER = POINTER(tagBITMAPCOREHEADER) +PBITMAPCOREHEADER = POINTER(tagBITMAPCOREHEADER) +BITMAPCOREHEADER = tagBITMAPCOREHEADER + +
[docs]class tagBITMAP(Structure): + _fields_ = [ + ("bmType", LONG), + ("bmWidth", LONG), + ("bmHeight", LONG), + ("bmWidthBytes", LONG), + ("bmPlanes", WORD), + ("bmBitsPixel", WORD), + ("bmBits", LPVOID), + ]
+NPBITMAP = POINTER(tagBITMAP) +LPBITMAP = POINTER(tagBITMAP) +PBITMAP = POINTER(tagBITMAP) +BITMAP = tagBITMAP + +
[docs]class tagBITMAPINFOHEADER(Structure): + _fields_ = [ + ("biSize", DWORD), + ("biWidth", LONG), + ("biHeight", LONG), + ("biPlanes", WORD), + ("biBitCount", WORD), + ("biCompression", DWORD), + ("biSizeImage", DWORD), + ("biXPelsPerMeter", LONG), + ("biYPelsPerMeter", LONG), + ("biClrUsed", DWORD), + ("biClrImportant", DWORD), + ]
+BITMAPINFOHEADER = tagBITMAPINFOHEADER +PBITMAPINFOHEADER = POINTER(tagBITMAPINFOHEADER) +LPBITMAPINFOHEADER = POINTER(tagBITMAPINFOHEADER) + +
[docs]class tagRGBQUAD(Structure): + _fields_ = [ + ("rgbBlue", BYTE), + ("rgbGreen", BYTE), + ("rgbRed", BYTE), + ("rgbReserved", BYTE), + ]
+RGBQUAD = tagRGBQUAD + +
[docs]class tagBITMAPINFO(Structure): + _fields_ = [ + ("bmiHeader", BITMAPINFOHEADER), + ("bmiColors", RGBQUAD * 1), + ]
+LPBITMAPINFO = POINTER(tagBITMAPINFO) +PBITMAPINFO = POINTER(tagBITMAPINFO) +BITMAPINFO = tagBITMAPINFO + +
[docs]class tagBITMAPCOREINFO(Structure): + _fields_ = [ + ("bmciHeader", BITMAPCOREHEADER), + ("bmciColors", RGBTRIPLE * 1), + ]
+LPBITMAPCOREINFO = POINTER(tagBITMAPCOREINFO) +BITMAPCOREINFO = tagBITMAPCOREINFO +PBITMAPCOREINFO = POINTER(tagBITMAPCOREINFO) + +class _BG_FILE_PROGRESS(Structure): + _fields_ = [ + ("BytesTotal", UINT64), + ("BytesTransferred", UINT64), + ("Completed", BOOL), + ] +BG_FILE_PROGRESS = _BG_FILE_PROGRESS + +class _BG_JOB_PROGRESS(Structure): + _fields_ = [ + ("BytesTotal", UINT64), + ("BytesTransferred", UINT64), + ("FilesTotal", ULONG), + ("FilesTransferred", ULONG), + ] +BG_JOB_PROGRESS = _BG_JOB_PROGRESS + +class _BG_FILE_INFO(Structure): + _fields_ = [ + ("RemoteName", LPWSTR), + ("LocalName", LPWSTR), + ] +BG_FILE_INFO = _BG_FILE_INFO + +class _BG_JOB_TIMES(Structure): + _fields_ = [ + ("CreationTime", FILETIME), + ("ModificationTime", FILETIME), + ("TransferCompletionTime", FILETIME), + ] +BG_JOB_TIMES = _BG_JOB_TIMES + +class _ALPC_PORT_ATTRIBUTES32(Structure): + _fields_ = [ + ("Flags", ULONG), + ("SecurityQos", SECURITY_QUALITY_OF_SERVICE), + ("MaxMessageLength", SIZE_T), + ("MemoryBandwidth", SIZE_T), + ("MaxPoolUsage", SIZE_T), + ("MaxSectionSize", SIZE_T), + ("MaxViewSize", SIZE_T), + ("MaxTotalSectionSize", SIZE_T), + ("DupObjectTypes", ULONG), + ] +PALPC_PORT_ATTRIBUTES32 = POINTER(_ALPC_PORT_ATTRIBUTES32) +ALPC_PORT_ATTRIBUTES32 = _ALPC_PORT_ATTRIBUTES32 + +class _ALPC_PORT_ATTRIBUTES64(Structure): + _fields_ = [ + ("Flags", ULONG), + ("SecurityQos", SECURITY_QUALITY_OF_SERVICE), + ("MaxMessageLength", SIZE_T), + ("MemoryBandwidth", SIZE_T), + ("MaxPoolUsage", SIZE_T), + ("MaxSectionSize", SIZE_T), + ("MaxViewSize", SIZE_T), + ("MaxTotalSectionSize", SIZE_T), + ("DupObjectTypes", ULONG), + ("Reserved", ULONG), + ] +ALPC_PORT_ATTRIBUTES64 = _ALPC_PORT_ATTRIBUTES64 +PALPC_PORT_ATTRIBUTES64 = POINTER(_ALPC_PORT_ATTRIBUTES64) + +class _ALPC_MESSAGE_ATTRIBUTES(Structure): + _fields_ = [ + ("AllocatedAttributes", ULONG), + ("ValidAttributes", ULONG), + ] +ALPC_MESSAGE_ATTRIBUTES = _ALPC_MESSAGE_ATTRIBUTES +PALPC_MESSAGE_ATTRIBUTES = POINTER(_ALPC_MESSAGE_ATTRIBUTES) + +class _PORT_MESSAGE32_TMP_UNION(Union): + _fields_ = [ + ("ClientViewSize", ULONG), + ("CallbackId", ULONG), + ] +PORT_MESSAGE_TMP_UNION = _PORT_MESSAGE32_TMP_UNION + +class _PORT_MESSAGE64_TMP_UNION(Union): + _fields_ = [ + ("ClientViewSize", ULONGLONG), + ("CallbackId", ULONG), + ] +PORT_MESSAGE_TMP_UNION = _PORT_MESSAGE64_TMP_UNION + +class _PORT_MESSAGE_TMP_SUBSTRUCT_S1(Structure): + _fields_ = [ + ("DataLength", CSHORT), + ("TotalLength", CSHORT), + ] +_PORT_MESSAGE_TMP_SUBSTRUCT_S1 = _PORT_MESSAGE_TMP_SUBSTRUCT_S1 + +class _PORT_MESSAGE_TMP_UNION_U1(Union): + _fields_ = [ + ("Length", ULONG), + ("s1", _PORT_MESSAGE_TMP_SUBSTRUCT_S1), + ] +_PORT_MESSAGE_TMP_UNION_U1 = _PORT_MESSAGE_TMP_UNION_U1 + +class _PORT_MESSAGE_TMP_SUBSTRUCT_S2(Structure): + _fields_ = [ + ("Type", CSHORT), + ("DataInfoOffset", CSHORT), + ] +_PORT_MESSAGE_TMP_SUBSTRUCT_S2 = _PORT_MESSAGE_TMP_SUBSTRUCT_S2 + +class _PORT_MESSAGE_TMP_UNION_U2(Union): + _fields_ = [ + ("ZeroInit", ULONG), + ("s2", _PORT_MESSAGE_TMP_SUBSTRUCT_S2), + ] +_PORT_MESSAGE_TMP_UNION_U2 = _PORT_MESSAGE_TMP_UNION_U2 + +class _PORT_MESSAGE32(Structure): + _fields_ = [ + ("u1", _PORT_MESSAGE_TMP_UNION_U1), + ("u2", _PORT_MESSAGE_TMP_UNION_U2), + ("ClientId", CLIENT_ID32), + ("MessageId", ULONG), + ("tmp_union", _PORT_MESSAGE32_TMP_UNION), + ] +PORT_MESSAGE32 = _PORT_MESSAGE32 +PPORT_MESSAGE32 = POINTER(_PORT_MESSAGE32) + +class _PORT_MESSAGE64(Structure): + _fields_ = [ + ("u1", _PORT_MESSAGE_TMP_UNION_U1), + ("u2", _PORT_MESSAGE_TMP_UNION_U2), + ("ClientId", CLIENT_ID64), + ("MessageId", ULONG), + ("tmp_union", _PORT_MESSAGE64_TMP_UNION), + ] +PPORT_MESSAGE64 = POINTER(_PORT_MESSAGE64) +PORT_MESSAGE64 = _PORT_MESSAGE64 + +class _ALPC_SERVER_INFORMATION_TMP_IN(Structure): + _fields_ = [ + ("ThreadHandle", HANDLE), + ] +ALPC_SERVER_INFORMATION_TMP_IN = _ALPC_SERVER_INFORMATION_TMP_IN + +class _ALPC_SERVER_INFORMATION_TMP_OUT(Structure): + _fields_ = [ + ("ThreadBlocked", BOOLEAN), + ("ConnectedProcessId", HANDLE), + ("ConnectionPortName", UNICODE_STRING), + ] +ALPC_SERVER_INFORMATION_TMP_OUT = _ALPC_SERVER_INFORMATION_TMP_OUT + +
[docs]class ALPC_SERVER_INFORMATION(Union): + _fields_ = [ + ("In", ALPC_SERVER_INFORMATION_TMP_IN), + ("Out", ALPC_SERVER_INFORMATION_TMP_OUT), + ]
+ALPC_SERVER_INFORMATION = ALPC_SERVER_INFORMATION + +class _ALPC_CONTEXT_ATTR(Structure): + _fields_ = [ + ("PortContext", PVOID), + ("MessageContext", PVOID), + ("Sequence", ULONG), + ("MessageId", ULONG), + ("CallbackId", ULONG), + ] +PALPC_CONTEXT_ATTR = POINTER(_ALPC_CONTEXT_ATTR) +ALPC_CONTEXT_ATTR = _ALPC_CONTEXT_ATTR + +class _ALPC_CONTEXT_ATTR32(Structure): + _fields_ = [ + ("PortContext", ULONG), + ("MessageContext", ULONG), + ("Sequence", ULONG), + ("MessageId", ULONG), + ("CallbackId", ULONG), + ] +ALPC_CONTEXT_ATTR32 = _ALPC_CONTEXT_ATTR32 +PALPC_CONTEXT_ATTR32 = POINTER(_ALPC_CONTEXT_ATTR32) + +class _ALPC_CONTEXT_ATTR64(Structure): + _fields_ = [ + ("PortContext", ULONGLONG), + ("MessageContext", ULONGLONG), + ("Sequence", ULONG), + ("MessageId", ULONG), + ("CallbackId", ULONG), + ] +ALPC_CONTEXT_ATTR64 = _ALPC_CONTEXT_ATTR64 +PALPC_CONTEXT_ATTR64 = POINTER(_ALPC_CONTEXT_ATTR64) + +class _ALPC_HANDLE_ATTR(Structure): + _fields_ = [ + ("Flags", ULONG), + ("Handle", HANDLE), + ("ObjectType", ULONG), + ("DesiredAccess", ACCESS_MASK), + ] +PALPC_HANDLE_ATTR = POINTER(_ALPC_HANDLE_ATTR) +ALPC_HANDLE_ATTR = _ALPC_HANDLE_ATTR + +class _ALPC_HANDLE_ATTR32(Structure): + _fields_ = [ + ("Flags", ULONG), + ("Handle", ULONG), + ("ObjectType", ULONG), + ("DesiredAccess", ACCESS_MASK), + ] +ALPC_HANDLE_ATTR32 = _ALPC_HANDLE_ATTR32 +PALPC_HANDLE_ATTR32 = POINTER(_ALPC_HANDLE_ATTR32) + +class _ALPC_HANDLE_ATTR64(Structure): + _fields_ = [ + ("Flags", ULONG), + ("Handle", ULONGLONG), + ("ObjectType", ULONG), + ("DesiredAccess", ACCESS_MASK), + ] +PALPC_HANDLE_ATTR64 = POINTER(_ALPC_HANDLE_ATTR64) +ALPC_HANDLE_ATTR64 = _ALPC_HANDLE_ATTR64 + +class _ALPC_SECURITY_ATTR(Structure): + _fields_ = [ + ("Flags", ULONG), + ("QoS", PSECURITY_QUALITY_OF_SERVICE), + ("ContextHandle", ALPC_HANDLE), + ] +PALPC_SECURITY_ATTR = POINTER(_ALPC_SECURITY_ATTR) +ALPC_SECURITY_ATTR = _ALPC_SECURITY_ATTR + +class _ALPC_SECURITY_ATTR32(Structure): + _fields_ = [ + ("Flags", ULONG), + ("QoS", ULONG), + ("ContextHandle", ULONG), + ] +ALPC_SECURITY_ATTR32 = _ALPC_SECURITY_ATTR32 +PALPC_SECURITY_ATTR32 = POINTER(_ALPC_SECURITY_ATTR32) + +class _ALPC_SECURITY_ATTR64(Structure): + _fields_ = [ + ("Flags", ULONGLONG), + ("QoS", ULONGLONG), + ("ContextHandle", ULONGLONG), + ] +PALPC_SECURITY_ATTR64 = POINTER(_ALPC_SECURITY_ATTR64) +ALPC_SECURITY_ATTR64 = _ALPC_SECURITY_ATTR64 + +class _ALPC_DATA_VIEW_ATTR(Structure): + _fields_ = [ + ("Flags", ULONG), + ("SectionHandle", ALPC_HANDLE), + ("ViewBase", PVOID), + ("ViewSize", PVOID), + ] +PALPC_DATA_VIEW_ATTR = POINTER(_ALPC_DATA_VIEW_ATTR) +ALPC_DATA_VIEW_ATTR = _ALPC_DATA_VIEW_ATTR + +class _ALPC_DATA_VIEW_ATTR32(Structure): + _fields_ = [ + ("Flags", ULONG), + ("SectionHandle", ULONG), + ("ViewBase", ULONG), + ("ViewSize", ULONG), + ] +PALPC_DATA_VIEW_ATTR32 = POINTER(_ALPC_DATA_VIEW_ATTR32) +ALPC_DATA_VIEW_ATTR32 = _ALPC_DATA_VIEW_ATTR32 + +class _ALPC_DATA_VIEW_ATTR64(Structure): + _fields_ = [ + ("Flags", ULONG), + ("SectionHandle", ULONGLONG), + ("ViewBase", ULONGLONG), + ("ViewSize", ULONGLONG), + ] +PALPC_DATA_VIEW_ATTR64 = POINTER(_ALPC_DATA_VIEW_ATTR64) +ALPC_DATA_VIEW_ATTR64 = _ALPC_DATA_VIEW_ATTR64 + +class _ALPC_TOKEN_ATTR(Structure): + _fields_ = [ + ("TokenId", ULONGLONG), + ("AuthenticationId", ULONGLONG), + ("ModifiedId", ULONGLONG), + ] +ALPC_TOKEN_ATTR = _ALPC_TOKEN_ATTR +PALPC_TOKEN_ATTR = POINTER(_ALPC_TOKEN_ATTR) + +class _ALPC_DIRECT_ATTR(Structure): + _fields_ = [ + ("Event", HANDLE), + ] +ALPC_DIRECT_ATTR = _ALPC_DIRECT_ATTR +PALPC_DIRECT_ATTR = POINTER(_ALPC_DIRECT_ATTR) + +class _ALPC_DIRECT_ATTR32(Structure): + _fields_ = [ + ("Event", ULONG), + ] +PALPC_DIRECT_ATTR32 = POINTER(_ALPC_DIRECT_ATTR32) +ALPC_DIRECT_ATTR32 = _ALPC_DIRECT_ATTR32 + +class _ALPC_DIRECT_ATTR64(Structure): + _fields_ = [ + ("Event", ULONGLONG), + ] +ALPC_DIRECT_ATTR64 = _ALPC_DIRECT_ATTR64 +PALPC_DIRECT_ATTR64 = POINTER(_ALPC_DIRECT_ATTR64) + +class _ALPC_WORK_ON_BEHALF_ATTR(Structure): + _fields_ = [ + ("Ticket", ULONGLONG), + ] +PALPC_WORK_ON_BEHALF_ATTR = POINTER(_ALPC_WORK_ON_BEHALF_ATTR) +ALPC_WORK_ON_BEHALF_ATTR = _ALPC_WORK_ON_BEHALF_ATTR + +class _RPC_IF_ID(Structure): + _fields_ = [ + ("Uuid", IID), + ("VersMajor", USHORT), + ("VersMinor", USHORT), + ] +RPC_IF_ID = _RPC_IF_ID + +INITIAL_RPC_IF_ID = RPC_IF_ID + +class _RPC_IF_ID(INITIAL_RPC_IF_ID): + def __repr__(self): + return '<RPC_IF_ID "{0}" ({1}, {2})>'.format(self.Uuid.to_string(), self.VersMajor, self.VersMinor) +RPC_IF_ID = _RPC_IF_ID +
+ +
+
+
+ +
+
+ + + + \ No newline at end of file diff --git a/docs/build/html/_modules/windows/hooks.html b/docs/build/html/_modules/windows/hooks.html index 5d451c36..9dd3f67c 100644 --- a/docs/build/html/_modules/windows/hooks.html +++ b/docs/build/html/_modules/windows/hooks.html @@ -6,7 +6,7 @@ - windows.hooks — PythonForWindows 0.2 documentation + windows.hooks — PythonForWindows 0.3 documentation @@ -14,7 +14,7 @@ + + + + + + + + + +
+
+
+
+ +

Source code for windows.rpc.client

+import ctypes
+import struct
+
+import windows.alpc as alpc
+import windows.com
+import windows.generated_def as gdef
+
+
+KNOW_REQUEST_TYPE = {x:x for x in [gdef.RPC_REQUEST_TYPE_CALL, gdef.RPC_REQUEST_TYPE_BIND]}
+
+
+KNOW_RESPONSE_TYPE = {x:x for x in [gdef.RPC_RESPONSE_TYPE_FAIL, gdef.RPC_RESPONSE_TYPE_SUCESS, gdef.RPC_RESPONSE_TYPE_BIND_OK]}
+
+
+KNOWN_RPC_ERROR_CODE = {x:x for x in [
+        gdef.ERROR_INVALID_HANDLE,
+        gdef.RPC_X_BAD_STUB_DATA,
+        gdef.RPC_S_UNKNOWN_IF,
+        gdef.RPC_S_PROTOCOL_ERROR,
+        gdef.RPC_S_UNSUPPORTED_TRANS_SYN,
+        gdef.RPC_S_PROCNUM_OUT_OF_RANGE,
+        ]}
+
+NOT_USED = 0xBAADF00D
+
+class ALPC_RPC_BIND(ctypes.Structure):
+    _pack_ = 1
+    _fields_ = [
+        ("request_type", gdef.DWORD),
+        ("UNK1", gdef.DWORD),
+        ("UNK2", gdef.DWORD),
+        ("target", gdef.RPC_IF_ID),
+        ("flags", gdef.DWORD),
+        ("if_nb_ndr32", gdef.USHORT),
+        ("if_nb_ndr64", gdef.USHORT),
+        ("if_nb_unkn", gdef.USHORT),
+        ("PAD", gdef.USHORT),
+        ("register_multiple_syntax", gdef.DWORD),
+        ("use_flow", gdef.DWORD),
+        ("UNK5", gdef.DWORD),
+        ("maybe_flow_id", gdef.DWORD),
+        ("UNK7", gdef.DWORD),
+        ("some_context_id", gdef.DWORD),
+        ("UNK9", gdef.DWORD),
+    ]
+
+class ALPC_RPC_CALL(ctypes.Structure):
+    _pack_ = 1
+    _fields_ = [
+        ("request_type", gdef.DWORD),
+        ("UNK1", gdef.DWORD),
+        ("flags",gdef.DWORD),
+        ("request_id", gdef.DWORD),
+        ("if_nb", gdef.DWORD),
+        ("method_offset", gdef.DWORD),
+        ("UNK2", gdef.DWORD),
+        ("UNK3", gdef.DWORD),
+        ("UNK4", gdef.DWORD),
+        ("UNK5", gdef.DWORD),
+        ("UNK6", gdef.DWORD),
+        ("UNK7", gdef.DWORD),
+        ("UNK8", gdef.DWORD),
+        ("UNK9", gdef.DWORD),
+        ("UNK10", gdef.DWORD),
+        ("UNK11", gdef.DWORD),
+    ]
+
+
[docs]class RPCClient(object): + """A client for RPC-over-ALPC able to bind to interface and perform calls using NDR32 marshalling""" + REQUEST_IDENTIFIER = 0x11223344 + def __init__(self, port): + self.alpc_client = alpc.AlpcClient(port) + self.number_of_bind_if = 0 # if -> interface + self.if_bind_number = {} + +
[docs] def bind(self, IID_str, version=(1,0)): + """Bind to the ``IID_str`` with the given ``version`` + + :returns: :class:`windows.generated_def.IID` + """ + IID = windows.com.IID.from_string(IID_str) + request = self._forge_bind_request(IID, version, self.number_of_bind_if) + response = self._send_request(request) + # Parse reponse + request_type = self._get_request_type(response) + if request_type != gdef.RPC_RESPONSE_TYPE_BIND_OK: + raise ValueError("Unexpected reponse type. Expected RESPONSE_TYPE_BIND_OK got {0}".format(KNOW_RESPONSE_TYPE.get(request_type, request_type))) + iid_hash = hash(buffer(IID)[:]) # TODO: add __hash__ to IID + self.if_bind_number[iid_hash] = self.number_of_bind_if + self.number_of_bind_if += 1 + #TODO: attach version information to IID + return IID
+ +
[docs] def call(self, IID, method_offset, params): + """Call method number ``method_offset`` of interface ``IID`` with mashalled ``params`` + + :param IID IID: An IID previously returned by :func:`bind` + :param int method_offset: + :param str params: The mashalled parameters (NDR32) + :returns: :class:`str` + """ + iid_hash = hash(buffer(IID)[:]) + interface_nb = self.if_bind_number[iid_hash] # TODO: add __hash__ to IID + request = self._forge_call_request(interface_nb, method_offset, params) + response = self._send_request(request) + # Parse reponse + request_type = self._get_request_type(response) + if request_type != gdef.RPC_RESPONSE_TYPE_SUCESS: + raise ValueError("Unexpected reponse type. Expected RESPONSE_SUCESS got {0}".format(KNOW_RESPONSE_TYPE.get(request_type, request_type))) + + data = struct.unpack("<6I", response[:6 * 4]) + assert data[3] == self.REQUEST_IDENTIFIER + return response[4 * 6:] # Should be the return value (not completly verified)
+ + def _send_request(self, request): + response = self.alpc_client.send_receive(request) + return response.data + + def _forge_call_request(self, interface_nb, method_offset, params): + # TODO: differents REQUEST_IDENTIFIER for each req ? + # TODO: what is this '0' ? (1 is also accepted) (flags ?) + # request = struct.pack("<16I", gdef.RPC_REQUEST_TYPE_CALL, NOT_USED, 1, self.REQUEST_IDENTIFIER, interface_nb, method_offset, *[NOT_USED] * 10) + req = ALPC_RPC_CALL() + req.request_type = gdef.RPC_REQUEST_TYPE_CALL + req.flags = 0 + req.request_id = self.REQUEST_IDENTIFIER + req.if_nb = interface_nb + req.method_offset = method_offset + + return buffer(req)[:] + params + + def _forge_bind_request(self, uuid, syntaxversion, requested_if_nb): + version_major, version_minor = syntaxversion + req = ALPC_RPC_BIND() + req.request_type = gdef.RPC_REQUEST_TYPE_BIND + req.target = gdef.RPC_IF_ID(uuid, *syntaxversion) + req.flags = gdef.BIND_IF_SYNTAX_NDR32 + # req.flags = gdef.BIND_IF_SYNTAX_NDR64 + req.if_nb_ndr32 = requested_if_nb + req.if_nb_ndr64 = 0 + req.if_nb_ndr64 = requested_if_nb + req.if_nb_unkn = 0 + req.register_multiple_syntax = False + req.some_context_id = 0xB00B00B + return buffer(req)[:] + + def _get_request_type(self, response): + "raise if request_type == RESPONSE_TYPE_FAIL" + request_type = struct.unpack("<I", response[:4])[0] + if request_type == gdef.RPC_RESPONSE_TYPE_FAIL: + error_code = struct.unpack("<5I", response)[2] + raise ValueError("RPC Response error {0} ({1})".format(error_code, KNOWN_RPC_ERROR_CODE.get(error_code, error_code))) + return request_type
+
+ +
+
+
+ +
+
+ + + + \ No newline at end of file diff --git a/docs/build/html/_modules/windows/rpc/epmapper.html b/docs/build/html/_modules/windows/rpc/epmapper.html new file mode 100644 index 00000000..8fabd88b --- /dev/null +++ b/docs/build/html/_modules/windows/rpc/epmapper.html @@ -0,0 +1,287 @@ + + + + + + + + windows.rpc.epmapper — PythonForWindows 0.3 documentation + + + + + + + + + + + + + + +
+
+
+
+ +

Source code for windows.rpc.epmapper

+import struct
+from collections import namedtuple
+
+import windows
+import windows.generated_def as gdef
+from windows.rpc import ndr
+from windows.dbgprint import dbgprint
+
+
+
+class NdrTower(ndr.NdrStructure):
+    MEMBERS = [ndr.NdrLong, ndr.NdrByteConformantArray]
+
+    @classmethod
+    def post_unpack(cls, data):
+        size = data[0]
+        tower = data[1]
+        return bytearray(struct.pack("<I", size)) + bytearray(tower)
+
+
+class NdrContext(ndr.NdrStructure):
+    MEMBERS = [ndr.NdrLong, ndr.NdrLong, ndr.NdrLong, ndr.NdrLong, ndr.NdrLong]
+
+
+class NDRIID(ndr.NdrStructure):
+    MEMBERS = [ndr.NdrByte] * 16
+
+
+class EptMapAuthParameters(ndr.NdrParameters):
+    MEMBERS = [NDRIID,
+                NdrTower,
+                ndr.NdrUniquePTR(ndr.NdrSID),
+                NdrContext,
+                ndr.NdrLong]
+
+
+class Towers(ndr.NdrConformantVaryingArrays):
+    MEMBER_TYPE = ndr.NdrUniquePTR(NdrTower)
+
+
+class EptMapAuthResults(ndr.NdrParameters):
+    MEMBERS = [NdrContext,
+                ndr.NdrLong,
+                Towers]
+
+UnpackTower = namedtuple("UnpackTower", ["protseq", "endpoint", "address", "object", "syntax"])
+
+def parse_floor(stream):
+    lhs_size = stream.partial_unpack("<H")[0]
+    lhs = stream.read(lhs_size)
+    rhs_size = stream.partial_unpack("<H")[0]
+    rhs = stream.read(rhs_size)
+    return lhs, rhs
+
+def craft_floor(lhs, rhs):
+    return struct.pack("<H", len(lhs)) + lhs + struct.pack("<H", len(rhs))  + rhs
+
+def explode_alpc_tower(tower):
+    stream = ndr.NdrStream(bytearray(tower))
+    size = stream.partial_unpack("<I")[0]
+    if size != len(stream.data):
+        raise ValueError("Invalid tower size: indicate {0}, tower size {1}".format(size, len(stream.data)))
+    floor_count = stream.partial_unpack("<H")[0]
+    if floor_count != 4:
+        raise ValueError("ALPC Tower are expected to have 4 floors ({0} instead)".format(floor_count))
+
+    # Floor 0
+    lhs, rhs = parse_floor(stream)
+    if not (lhs[0] == 0xd):
+        raise ValueError("Floor 0: IID expected")
+    iid =  gdef.IID.from_buffer_copy(lhs[1:17])
+    object = gdef.RPC_IF_ID(iid, lhs[17], lhs[18])
+
+    # Floor 1
+    lhs, rhs = parse_floor(stream)
+    if not (lhs[0] == 0xd):
+        raise ValueError("Floor 0: IID expected")
+    iid =  gdef.IID.from_buffer_copy(lhs[1:17])
+    syntax = gdef.RPC_IF_ID(iid, lhs[17], lhs[18])
+
+    # Floor 2
+    lhs, rhs = parse_floor(stream)
+    if (len(lhs) != 1 or lhs[0] != 0x0c):
+        raise ValueError("Alpc Tower expects 0xc as Floor2 LHS (got {0:#x})".format(lhs[0]))
+
+    lhs, rhs = parse_floor(stream)
+    if not (rhs[-1] == 0):
+        raise ValueError("ALPC Port name doest not end by \\x00")
+    return UnpackTower("ncalrpc", rhs[:-1], None, object, syntax)
+
+# http://pubs.opengroup.org/onlinepubs/9629399/apdxi.htm#tagcjh_28
+# Octet 0 contains the hexadecimal value 0d. This is a reserved protocol identifier prefix that indicates that the protocol ID is UUID derived
+TOWER_PROTOCOL_IS_UUID = "\x0d"
+TOWER_EMPTY_RHS = "\x00\x00"
+TOWER_PROTOCOL_ID_ALPC = "\x0c" # From RE
+
+def construct_alpc_tower(object, syntax, protseq, endpoint, address):
+    if address is not None:
+        raise NotImplementedError("Construct ALPC Tower with address != None")
+    if protseq != "ncalrpc":
+        raise NotImplementedError("Construct ALPC Tower with protseq != 'ncalrpc'")
+    # Floor 0
+    floor_0_lsh = TOWER_PROTOCOL_IS_UUID + bytearray(object.Uuid) + struct.pack("<BB", object.VersMajor, object.VersMinor)
+    floor_0_rsh = TOWER_EMPTY_RHS
+    floor_0 = craft_floor(floor_0_lsh, floor_0_rsh)
+    # Floor 1
+    floor_1_lsh = TOWER_PROTOCOL_IS_UUID + bytearray(syntax.Uuid) + struct.pack("<BB", syntax.VersMajor, syntax.VersMinor)
+    floor_1_rsh = TOWER_EMPTY_RHS
+    floor_1 = craft_floor(floor_1_lsh, floor_1_rsh)
+    # Floor 2
+    floor_2_lsh = TOWER_PROTOCOL_ID_ALPC
+    floor_2_rsh = TOWER_EMPTY_RHS
+    floor_2 = craft_floor(floor_2_lsh, floor_2_rsh)
+    # Floor 3
+    if endpoint is None:
+        floor_3_lsh = "\xff"
+        floor_3_rsh = TOWER_EMPTY_RHS
+        floor_3 = craft_floor(floor_3_lsh, floor_3_rsh)
+    else:
+        floor_3_lsh = "\x10"
+        floor_3_rsh = endpoint
+        floor_3 = craft_floor(floor_3_lsh, floor_3_rsh)
+    towerarray = struct.pack("<H", 4) +  floor_0 + floor_1 + floor_2 + floor_3
+    return len(towerarray), bytearray(towerarray)
+
+
[docs]def find_alpc_endpoints(targetiid, version=(1,0), nb_response=1, sid=gdef.WinLocalSystemSid): + """Ask the EPMapper for ALPC endpoints of ``targetiid:version`` (maximum of ``nb_response``) + + :param str targetiid: The IID of the requested interface + :param (int,int) version: The version requested interface + :param int nb_response: The maximum number of response + :param WELL_KNOWN_SID_TYPE sid: The SID used to request the EPMapper + + :returns: [:class:`~windows.rpc.epmapper.UnpackTower`] -- A list of :class:`~windows.rpc.epmapper.UnpackTower` + """ + + if isinstance(targetiid, basestring): + targetiid = gdef.IID.from_string(targetiid) + # Connect to epmapper + client = windows.rpc.RPCClient(r"\RPC Control\epmapper") + epmapperiid = client.bind("e1af8308-5d1f-11c9-91a4-08002b14a0fa", version=(3,0)) + + # Compute request tower + ## object + rpc_object = gdef.RPC_IF_ID(targetiid, *version) + ## Syntax + syntax_iid = gdef.IID.from_string("8a885d04-1ceb-11c9-9fe8-08002b104860") + rpc_syntax = gdef.RPC_IF_ID(syntax_iid, 2, 0) + ## Forge tower + tower_array_size, towerarray = construct_alpc_tower(rpc_object, rpc_syntax, "ncalrpc", "", None) + + # parameters + local_system_psid = windows.utils.get_known_sid(sid) + context = (0, 0, 0, 0, 0) + + # Pack request + fullreq = EptMapAuthParameters.pack([bytearray(targetiid), + (tower_array_size, towerarray), + local_system_psid, + context, + nb_response]) + # RPC Call + response = client.call(epmapperiid, 7, fullreq) + # Unpack response + stream = ndr.NdrStream(response) + unpacked = EptMapAuthResults.unpack(stream) + # Looks like there is a memory leak here (in stream.data) if nb_response > len(unpacked[2]) + # Parse towers + return [explode_alpc_tower(obj) for obj in unpacked[2]]
+ + +
[docs]def find_alpc_endpoint_and_connect(targetiid, version=(1,0), sid=gdef.WinLocalSystemSid): + """Ask the EPMapper for ALPC endpoints of ``targetiid:version`` and connect to one of them. + + :param str targetiid: The IID of the requested interface + :param (int,int) version: The version requested interface + :param WELL_KNOWN_SID_TYPE sid: The SID used to request the EPMapper + + :returns: A connected :class:`~windows.rpc.RPCClient` + """ + dbgprint("Finding ALPC endpoints for <{0}>".format(targetiid), "RPC") + alpctowers = find_alpc_endpoints(targetiid, version, nb_response=50, sid=sid) + dbgprint("ALPC endpoints list: <{0}>".format(alpctowers), "RPC") + for tower in alpctowers: + dbgprint("Trying to connect to endpoint <{0}>".format(tower.endpoint), "RPC") + alpc_port = r"\RPC Control\{0}".format(tower.endpoint) + try: + client = windows.rpc.RPCClient(alpc_port) + except Exception as e: + dbgprint("Could not connect to endpoint <{0}>: {1}".format(tower.endpoint, e), "RPC") + continue + break + else: + raise ValueError("Could not find a valid endpoint for target <{0}> version <{1}>".format(targetiid, version)) + dbgprint('Connected to ALPC port "{0}"'.format(alpc_port), "RPC") + return client
+ +
+ +
+
+
+ +
+
+ + + + \ No newline at end of file diff --git a/docs/build/html/_modules/windows/rpc/ndr.html b/docs/build/html/_modules/windows/rpc/ndr.html new file mode 100644 index 00000000..133f7200 --- /dev/null +++ b/docs/build/html/_modules/windows/rpc/ndr.html @@ -0,0 +1,509 @@ + + + + + + + + windows.rpc.ndr — PythonForWindows 0.3 documentation + + + + + + + + + + + + + + +
+
+
+
+ +

Source code for windows.rpc.ndr

+import windows
+import windows.generated_def as gdef
+
+import struct
+
+# http://pubs.opengroup.org/onlinepubs/9629399/chap14.htm#tagcjh_19_03_07
+
+## Array
+# A conformant array is an array in which the maximum number of elements is not known beforehand and therefore is included in the representation of the array.
+# A varying array is an array in which the actual number of elements passed in a given call varies and therefore is included in the representation of the array.
+
+## Pointers
+
+# NDR defines two classes of pointers that differ both in semantics and in representation
+# - reference pointers, which cannot be null and cannot be aliases
+# - full pointers, which can be null and can be an aliases
+# - unique pointers, which can be null and cannot be aliases, and are transmitted as full pointers.
+
+
+def pack_dword(x):
+     return struct.pack("<I", x)
+
+
+def dword_pad(s):
+    if (len(s) % 4) == 0:
+        return s
+    return s + ("P" * (4 - len(s) % 4))
+
+
+
[docs]class NdrUniquePTR(object): + """Create a UNIQUE PTR around a given Ndr type""" + def __init__(self, subcls): + self.subcls = subcls + + def pack(self, data): + subpack = self.subcls.pack(data) + if subpack is None: + return pack_dword(0) + return pack_dword(0x02020202) + subpack + + def unpack(self, stream): + ptr = NdrLong.unpack(stream) + if not ptr: + return None + return self.subcls.unpack(stream) + + def pack_in_struct(self, data, id): + if data is None: + return pack_dword(0), None + subpack = self.subcls.pack(data) + if subpack is None: + return pack_dword(0), None + return pack_dword(0x01010101 * (id + 1)), subpack + + def unpack_in_struct(self, stream): + ptr = NdrLong.unpack(stream) + if not ptr: + return 0, None + return ptr, self.subcls + + def parse(self, stream): + data = stream.partial_unpack("<I") + if data[0] == 0: + return None + return self.subcls.parse(stream)
+ +class NdrFixedArray(object): + def __init__(self, subcls, size): + self.subcls = subcls + self.size = size + + def pack(self, data): + data = list(data) + assert len(data) == self.size + return dword_pad("".join([self.subcls.pack(elt) for elt in data])) + + + def unpack(self, stream): + return [self.subcls.unpack(stream) for i in range(self.size)] + + +
[docs]class NdrSID(object): + @classmethod +
[docs] def pack(cls, psid): + """Pack a PSID + + :param PSID psid: + """ + subcount = windows.winproxy.GetSidSubAuthorityCount(psid) + size = windows.winproxy.GetLengthSid(psid) + sid_data = windows.current_process.read_memory(psid.value, size) + return pack_dword(subcount[0]) + dword_pad(sid_data)
+ + @classmethod +
[docs] def unpack(cls, stream): + """Unpack a PSID, partial implementation that returns a :class:`str` and not a PSID""" + subcount = NdrLong.unpack(stream) + return stream.read(8 + (subcount * 4))
+ +class NdrVaryingCString(object): + @classmethod + def pack(cls, data): + if data is None: + return None + l = len(data) + result = struct.pack("<2I", 0, l) + result += data + return dword_pad(result) + +
[docs]class NdrWString(object): + @classmethod + def pack(cls, data): + if data is None: + return None + data = data.encode("utf-16-le") + l = (len(data) / 2) + result = struct.pack("<3I", l, 0, l) + result += data + return dword_pad(result) + + @classmethod + def unpack(cls, stream): + stream.align(4) + size1, zero, size2 = stream.partial_unpack("<3I") + assert size1 == size2 + assert zero == 0 + s = stream.read(size1 * 2) + return s.decode("utf-16-le")
+ +
[docs]class NdrCString(object): + @classmethod + def pack(cls, data): + if data is None: + return None + l = len(data) + result = struct.pack("<3I", l, 0, l) + result += data + return dword_pad(result)
+ + # @classmethod + # def unpack(self, stream): + # maxcount, offset, count = stream.partial_unpack("<3I") + # return maxcount, offset, count + +NdrUniqueCString = NdrUniquePTR(NdrCString) +NdrUniqueWString = NdrUniquePTR(NdrWString) + +
[docs]class NdrLong(object): + @classmethod + def pack(cls, data): + return struct.pack("<I", data) + + @classmethod + def unpack(self, stream): + stream.align(4) + return stream.partial_unpack("<I")[0]
+ +
[docs]class NdrHyper(object): + @classmethod + def pack(cls, data): + return struct.pack("<Q", data) + + @classmethod + def unpack(self, stream): + stream.align(4) + return stream.partial_unpack("<Q")[0]
+ +
[docs]class NdrShort(object): + @classmethod + def pack(cls, data): + return struct.pack("<H", data) + + @classmethod + def unpack(self, stream): + return stream.partial_unpack("<H")[0]
+ + +
[docs]class NdrByte(object): + @classmethod + def pack(self, data): + return struct.pack("<B", data) + + @classmethod + def unpack(self, stream): + return stream.partial_unpack("<B")[0]
+ + +class NdrContextHandle(object): + @classmethod + def pack(cls, data): + if not isinstance(data, gdef.IID): + data = gdef.IID.from_string(data) + return struct.pack("<I", 0) + str(bytearray(data)) + + @classmethod + def unpack(self, stream): + attributes, rawguid = stream.partial_unpack("<I16s") + return gdef.IID.from_buffer_copy(rawguid) + + +
[docs]class NdrStructure(object): + """a NDR structure that tries to respect the rules of pointer packing, this class should be subclassed with + an attribute ``MEMBERS`` describing the members of the class + """ + @classmethod +
[docs] def pack(cls, data): + """Pack data into the struct, ``data`` size must equals the number of members in the structure""" + if not (len(data) == len(cls.MEMBERS)): + print("Size mistach:") + print(" * data size = {0}".format(len(data))) + print(" * members size = {0}".format(len(cls.MEMBERS))) + print(" * data {0}".format(data)) + print(" * members = {0}".format(cls.MEMBERS)) + raise ValueError("SUCE") + conformant_size = [] + res = [] + pointed = [] + for i, (member, memberdata) in enumerate(zip(cls.MEMBERS, data)): + if hasattr(member, "pack_in_struct"): + x, y = member.pack_in_struct(memberdata, i) + res.append(x) + if y is not None: + pointed.append(y) + elif hasattr(member, "pack_conformant"): + size, data = member.pack_conformant(memberdata) + conformant_size.append(size) + res.append(data) + else: + packed_member = member.pack(memberdata) + res.append(packed_member) + return dword_pad("".join(conformant_size)) + dword_pad("".join(res)) + dword_pad("".join(pointed))
+ + @classmethod +
[docs] def unpack(cls, stream): + """Unpack the structure from the stream""" + conformant_members = [hasattr(m, "pack_conformant") for m in cls.MEMBERS] + is_conformant = any(conformant_members) + assert(conformant_members.count(True) <= 1), "Unpack conformant struct with more that one conformant MEMBER not implem" + + data = [] + if is_conformant: + conformant_size = NdrLong.unpack(stream) + post_subcls = [] + for i, member in enumerate(cls.MEMBERS): + if conformant_members[i]: + data.append(member.unpack_conformant(stream, conformant_size)) + else: + if hasattr(member, "unpack_in_struct"): + ptr, subcls = member.unpack_in_struct(stream) + if not ptr: + data.append(None) + else: + data.append(ptr) + post_subcls.append((i, subcls)) + print(post_subcls) + else: + data.append(member.unpack(stream)) + for i, entry in post_subcls: + data[i] = entry.unpack(stream) + return cls.post_unpack(data)
+ + @classmethod + def post_unpack(cls, data): + return data
+ + + +
[docs]class NdrParameters(object): + """a class to pack NDR parameters together to performs RPC call, this class should be subclassed with + an attribute ``MEMBERS`` describing the members of the class + """ + @classmethod + def pack(cls, data): + if not (len(data) == len(cls.MEMBERS)): + print("Size mistach:") + print(" * data size = {0}".format(len(data))) + print(" * members size = {0}".format(len(cls.MEMBERS))) + print(" * data {0}".format(data)) + print(" * members = {0}".format(cls.MEMBERS)) + raise ValueError("SUCE") + res = [] + for (member, memberdata) in zip(cls.MEMBERS, data): + packed_member = member.pack(memberdata) + res.append(packed_member) + return "".join(dword_pad(elt) for elt in res) + + @classmethod + def unpack(cls, stream): + res = [] + for member in cls.MEMBERS: + unpacked_member = member.unpack(stream) + res.append(unpacked_member) + return res
+ + +
[docs]class NdrConformantArray(object): + MEMBER_TYPE = None + @classmethod + def pack(cls, data): + ndrsize = NdrLong.pack(len(data)) + return dword_pad(ndrsize + "".join([cls.MEMBER_TYPE.pack(memberdata) for memberdata in data])) + + @classmethod + def pack_conformant(cls, data): + ndrsize = NdrLong.pack(len(data)) + ndrdata = dword_pad("".join([cls.MEMBER_TYPE.pack(memberdata) for memberdata in data])) + return ndrsize, ndrdata + + @classmethod + def unpack_conformant(cls, stream, size): + res = [cls.MEMBER_TYPE.unpack(stream) for i in range(size)] + stream.align(4) + return res
+ + +
[docs]class NdrConformantVaryingArrays(object): + MEMBER_TYPE = None + @classmethod + def pack(cls, data): + ndrsize = NdrLong.pack(len(data)) + offset = NdrLong.pack(0) + return dword_pad(ndrsize + offset + ndrsize + "".join([cls.MEMBER_TYPE.pack(memberdata) for memberdata in data])) + + @classmethod + def unpack(cls, stream): + maxcount = NdrLong.unpack(stream) + offset = NdrLong.unpack(stream) + count = NdrLong.unpack(stream) + assert(offset == 0) + # assert(maxcount == count) + + result = [] + post_subcls = [] + for i in range(count): + member = cls.MEMBER_TYPE + if hasattr(member, "unpack_in_struct"): + ptr, subcls = member.unpack_in_struct(stream) + if not ptr: + result.append(None) + else: + result.append(ptr) + post_subcls.append((i, subcls)) + else: + data = member.unpack(stream) + result.append(data) + # Unpack pointers + for i, entry in post_subcls: + data = entry.unpack(stream) + result[i] = data + + return cls._post_unpack(result) + + @classmethod + def _post_unpack(cls, result): + return result
+ + +class NdrWcharConformantVaryingArrays(NdrConformantVaryingArrays): + MEMBER_TYPE = NdrShort + + @classmethod + def _post_unpack(self, result): + return u"".join(unichr(c) for c in result) + + +
[docs]class NdrLongConformantArray(NdrConformantArray): + MEMBER_TYPE = NdrLong
+ + +
[docs]class NdrByteConformantArray(NdrConformantArray): + MEMBER_TYPE = NdrByte
+ + + +
[docs]class NdrStream(object): + """A stream of bytes used for NDR unpacking""" + def __init__(self, data): + self.fulldata = data + self.data = data + + def partial_unpack(self, format): + size = struct.calcsize(format) + toparse = self.data[:size] + self.data = self.data[size:] + return struct.unpack(format, toparse) + + def read_aligned_dword(self, size): + aligned_size = size + if size % 4: + aligned_size = size + (4 - (size % 4)) + retdata = self.data[:size] + self.data = self.data[aligned_size:] + return retdata + + def read(self, size): + data = self.data[:size] + self.data = self.data[size:] + if len(data) < size: + raise ValueError("Could not read {0} from stream".format(size)) + return data + +
[docs] def align(self, size): + """Discard some bytes to align the remaining stream on ``size``""" + already_read = len(self.fulldata) - len(self.data) + if already_read % size: + # Realign + size_to_align = (size - (already_read % size)) + self.data = self.data[size_to_align:]
+ + +def make_parameters(types, name=None): + class NdrCustomParameters(NdrParameters): + MEMBERS = types + return NdrCustomParameters + +def make_structure(types, name=None): + class NdrCustomStructure(NdrStructure): + MEMBERS = types + return NdrCustomStructure +
+ +
+
+
+ +
+
+ + + + \ No newline at end of file diff --git a/docs/build/html/_modules/windows/syswow64.html b/docs/build/html/_modules/windows/syswow64.html index 534d64c4..1d204c54 100644 --- a/docs/build/html/_modules/windows/syswow64.html +++ b/docs/build/html/_modules/windows/syswow64.html @@ -6,7 +6,7 @@ - windows.syswow64 — PythonForWindows 0.2 documentation + windows.syswow64 — PythonForWindows 0.3 documentation @@ -14,7 +14,7 @@ + + + + + + + + + + + +
+
+
+
+ +
+

10. windows.alpc – Advanced Local Procedure Call

+

The windows.alpc module regroups the classes that permits to send and receive +ALPC messages over an ALPC port and the classes representing these messages.

+ +
+

10.1. ALPC Message

+
+
+class windows.alpc.AlpcMessage(msg_or_size=4096, attributes=None)[source]
+

Represent a full ALPC Message: a AlpcMessagePort and a MessageAttribute

+
+
+allocated_attributes
+

The list of allocated attributes

+ +++ + + + +
Type:[Flag]
+
+ +
+
+context_attribute
+

The ALPC_MESSAGE_CONTEXT_ATTRIBUTE of the message:

+ +++ + + + +
Type:ALPC_CONTEXT_ATTR
+
+ +
+
+context_is_valid
+

True if ALPC_MESSAGE_CONTEXT_ATTRIBUTE is a ValidAttributes

+
+ +
+
+data
+

The data of the message (located after the PORT_MESSAGE header)

+
+ +
+
+handle_attribute
+

The ALPC_MESSAGE_HANDLE_ATTRIBUTE of the message:

+ +++ + + + +
Type:ALPC_HANDLE_ATTR
+
+ +
+
+handle_is_valid
+

True if ALPC_MESSAGE_HANDLE_ATTRIBUTE is a ValidAttributes

+
+ +
+
+security_attribute
+

The ALPC_MESSAGE_SECURITY_ATTRIBUTE of the message

+ +++ + + + +
Type:ALPC_SECURITY_ATTR
+
+ +
+
+security_is_valid
+

True if ALPC_MESSAGE_SECURITY_ATTRIBUTE is a ValidAttributes

+
+ +
+
+type
+

The type of the message (PORT_MESSAGE.u2.s2.Type)

+
+ +
+
+valid_attributes
+

The list of valid attributes

+ +++ + + + +
Type:[Flag]
+
+ +
+
+view_attribute
+

The ALPC_MESSAGE_VIEW_ATTRIBUTE of the message:

+ +++ + + + +
Type:ALPC_DATA_VIEW_ATTR
+
+ +
+
+view_is_valid
+

True if ALPC_MESSAGE_VIEW_ATTRIBUTE is a ValidAttributes

+
+ +
+ +
+
+class windows.alpc.AlpcMessagePort[source]
+

The effective ALPC Message composed of a PORT_MESSAGE structure followed by the data

+
+
+data
+

The data of the message (located after the header)

+
+ +
+
+datalen
+

The length of the data

+
+ +
+ +
+
+class windows.alpc.MessageAttribute[source]
+

The attributes of an ALPC message

+
+
+allocated_list
+

The list of allocated attributes

+ +++ + + + +
Type:[Flag]
+
+ +
+
+is_allocated(attribute)[source]
+

Return True if attribute is allocated

+
+ +
+
+is_valid(attribute)[source]
+

Return True if attribute is valid

+
+ +
+
+valid_list
+

The list of valid attributes

+ +++ + + + +
Type:[Flag]
+
+ +
+
+classmethod with_all_attributes()[source]
+

Create a new MessageAttribute with the following attributes allocated:

+
    +
  • ALPC_MESSAGE_SECURITY_ATTRIBUTE
  • +
  • ALPC_MESSAGE_VIEW_ATTRIBUTE
  • +
  • ALPC_MESSAGE_CONTEXT_ATTRIBUTE
  • +
  • ALPC_MESSAGE_HANDLE_ATTRIBUTE
  • +
  • ALPC_MESSAGE_TOKEN_ATTRIBUTE
  • +
  • ALPC_MESSAGE_DIRECT_ATTRIBUTE
  • +
  • ALPC_MESSAGE_WORK_ON_BEHALF_ATTRIBUTE
  • +
+ +++ + + + +
Returns:MessageAttribute
+
+ +
+
+classmethod with_attributes(attributes)[source]
+

Create a new MessageAttribute with attributes allocated

+ +++ + + + +
Returns:MessageAttribute
+
+ +
+ +
+
+

10.2. ALPC client

+
+
+class windows.alpc.AlpcClient(port_name=None)[source]
+

An ALPC client able to connect to a port and send/receive messages

+
+
+connect_to_port(port_name, connect_message=None, port_attr=None, port_attr_flags=65536, obj_attr=None, flags=ALPC_MSGFLG_SYNC_REQUEST(0x20000L), timeout=None)[source]
+

Connect to the ALPC port port_name. Most of the parameters have defauls value is None is passed.

+ +++ + + + +
Parameters:
    +
  • connect_message (AlpcMessage) – The message send with the connection request, if not None the function will return an AlpcMessage
  • +
  • port_attr (ALPC_PORT_ATTRIBUTES) – The port attributes, one with default value will be used if this parameter is None
  • +
  • port_attr_flags (int) – ALPC_PORT_ATTRIBUTES.Flags used if port_attr is None (MUTUALY EXCLUSINVE WITH port_attr)
  • +
  • obj_attr (OBJECT_ATTRIBUTES) – The attributes of the port (can be None)
  • +
  • flags (int) – The flags for NtAlpcConnectPort()
  • +
  • timeout (int) – The timeout of the request
  • +
+
+
+ +
+
+recv(receive_msg=None, flags=0)
+

Receive a message into alpc_message with flags.

+ +++ + + + +
Parameters:
    +
  • receive_msg (AlpcMessage or None) – The message to send. If receive_msg is a None it create and return a simple AlpcMessage
  • +
  • flags (int) – The flags for NtAlpcSendWaitReceivePort()
  • +
+
+
+ +
+
+send(alpc_message, flags=0)
+

Send the alpc_message with flags

+ +++ + + + +
Parameters:
    +
  • alpc_message (AlpcMessage or str) – The message to send. If alpc_message is a str it build an AlpcMessage with the message as data.
  • +
  • flags (int) – The flags for NtAlpcSendWaitReceivePort()
  • +
+
+
+ +
+
+send_receive(alpc_message, receive_msg=None, flags=ALPC_MSGFLG_SYNC_REQUEST(0x20000L))
+

Send and receive a message with flags.

+ +++ + + + +
Parameters:
    +
  • alpc_message (AlpcMessage or str) – The message to send. If alpc_message is a str it build an AlpcMessage with the message as data.
  • +
  • receive_msg (AlpcMessage or None) – The message to send. If receive_msg is a None it create and return a simple AlpcMessage
  • +
  • flags (int) – The flags for NtAlpcSendWaitReceivePort()
  • +
+
+
+ +
+ +
+
+

10.3. ALPC Server

+
+
+class windows.alpc.AlpcServer(port_name=None)[source]
+

An ALPC server able to create a port, accept connections and send/receive messages

+
+
+accept_connection(msg, port_attr=None, port_context=None)[source]
+

Accept the connection for a LPC_CONNECTION_REQUEST message. +msg.MessageId must be the same as the connection requesting message.

+ +++ + + + +
Parameters:
    +
  • msg (AlpcMessage) – The response message.
  • +
  • port_attr (ALPC_PORT_ATTRIBUTES) – The attributes of the port, one with default value will be used if this parameter is None
  • +
  • port_context (PVOID) – A value that will be copied in ALPC_CONTEXT_ATTR.PortContext of every message on this connection.
  • +
+
+
+ +
+
+create_port(port_name, msglen=None, port_attr_flags=0, obj_attr=None, port_attr=None)[source]
+

Create the ALPC port port_name. Most of the parameters have defauls value is None is passed.

+ +++ + + + +
Parameters:
    +
  • port_name (str) – The port’s name to create.
  • +
  • msglen (int) – ALPC_PORT_ATTRIBUTES.MaxMessageLength used if port_attr is None (MUTUALY EXCLUSINVE WITH port_attr)
  • +
  • port_attr_flags (int) – ALPC_PORT_ATTRIBUTES.Flags used if port_attr is None (MUTUALY EXCLUSINVE WITH port_attr)
  • +
  • obj_attr (OBJECT_ATTRIBUTES) – The attributes of the port, one with default value will be used if this parameter is None
  • +
  • port_attr (ALPC_PORT_ATTRIBUTES) – The port attributes, one with default value will be used if this parameter is None
  • +
+
+
+ +
+
+recv(receive_msg=None, flags=0)
+

Receive a message into alpc_message with flags.

+ +++ + + + +
Parameters:
    +
  • receive_msg (AlpcMessage or None) – The message to send. If receive_msg is a None it create and return a simple AlpcMessage
  • +
  • flags (int) – The flags for NtAlpcSendWaitReceivePort()
  • +
+
+
+ +
+
+send(alpc_message, flags=0)
+

Send the alpc_message with flags

+ +++ + + + +
Parameters:
    +
  • alpc_message (AlpcMessage or str) – The message to send. If alpc_message is a str it build an AlpcMessage with the message as data.
  • +
  • flags (int) – The flags for NtAlpcSendWaitReceivePort()
  • +
+
+
+ +
+
+send_receive(alpc_message, receive_msg=None, flags=ALPC_MSGFLG_SYNC_REQUEST(0x20000L))
+

Send and receive a message with flags.

+ +++ + + + +
Parameters:
    +
  • alpc_message (AlpcMessage or str) – The message to send. If alpc_message is a str it build an AlpcMessage with the message as data.
  • +
  • receive_msg (AlpcMessage or None) – The message to send. If receive_msg is a None it create and return a simple AlpcMessage
  • +
  • flags (int) – The flags for NtAlpcSendWaitReceivePort()
  • +
+
+
+ +
+ +
+
+ + +
+
+
+ +
+
+ + + + \ No newline at end of file diff --git a/docs/build/html/com.html b/docs/build/html/com.html index e561251a..819e01a6 100644 --- a/docs/build/html/com.html +++ b/docs/build/html/com.html @@ -6,7 +6,7 @@ - 8. windows.com - Component Object Model — PythonForWindows 0.2 documentation + 8. windows.com - Component Object Model — PythonForWindows 0.3 documentation @@ -14,7 +14,7 @@ - + @@ -40,12 +40,12 @@

Navigation

modules |
  • - next |
  • previous |
  • - + @@ -133,6 +133,12 @@

    9.1.3. import_pfx

    9.2. Certificate

    +
    +

    Warning

    +

    The classes described here are under heavy test and try.

    +

    The classes, methods and properties described here will problably change as I haven’t yet had the time +to try it out in real cases and figure out the final look of the API I want to do.

    +

    Note

    See sample Certificate demo

    @@ -306,6 +312,12 @@

    9.2.1. CertificateContext +
    +
    +version
    +

    TODO: doc

    +
    +

    @@ -335,6 +347,20 @@

    9.2.2. EHCERTSTORE +
    +find(issuer, serialnumber)[source]
    +

    Return the certificate that match issuer and serialnumber

    + +++ + + + +
    Returns:CertificateContext
    +
    +
    classmethod from_file(filename)[source]
    @@ -370,97 +396,6 @@

    9.2.3. CryptObjectclass windows.crypto.CryptObject(filename, content_type=CERT_QUERY_CONTENT_FLAG_ALL(0x3ffeL))[source]

    Extract information from an CryptoAPI object.

    Current main use is extracting the signers certificates from a PE file.

    -
    -

    Warning

    -

    The methods and property of this class will problably change as I haven’t yet had the time -to try it out in real cases.

    -
    -
    -
    -cert
    -

    Return embded certificate number index.

    -

    note: not all embded certificate are directly used to sign the CryptObject.

    - --- - - - -
    Returns:CertificateContext
    -
    - -
    -
    -get_cert(index=0)[source]
    -

    Return embded certificate number index.

    -

    note: not all embded certificate are directly used to sign the CryptObject.

    - --- - - - -
    Returns:CertificateContext
    -
    - -
    -
    -get_signer_certificate(index=0)[source]
    -

    Return the certificate used for signer nb index

    - --- - - - -
    Returns:CertificateContext
    -
    - -
    -
    -get_signer_data(index=0)[source]
    -

    Returns the signer informations for signer nb index

    - --- - - - -
    Returns:CMSG_SIGNER_INFO
    -
    - -
    -
    -nb_cert
    -

    The number of certificate embded in the CryptObject

    - --- - - - -
    Type:int
    -
    - -
    -
    -nb_signer
    -

    The number of signers for the CryptObject

    - --- - - - -
    Type:int
    -
    -

    @@ -578,8 +513,8 @@

    Previous topic

    8. windows.com - Component Object Model

    Next topic

    -

    10. IAT hooking

    +

    10. windows.alpc – Advanced Local Procedure Call

    This Page