diff --git a/docs/build/html/_modules/windows/generated_def/flag.html b/docs/build/html/_modules/windows/generated_def/flag.html
index 09a5bd1..946c09a 100644
--- a/docs/build/html/_modules/windows/generated_def/flag.html
+++ b/docs/build/html/_modules/windows/generated_def/flag.html
@@ -39,7 +39,7 @@
import sys
-if sys.version_info.major == 3:
+if sys.version_info.major >= 3:
long = int
@@ -53,7 +53,12 @@
def __repr__(self):
return "{0}({1:#x})".format(self.name, self)
- __str__ = __repr__
+ # Custom __str__ removed for multiple reason
+ # Main one -> it breaks the json encoding of structure with flags :)
+ # Moving to a new politic -> if people want the name in a string use {x!r}
+ # The __str__ of security descriptor & guid will change soon as well :)
+
+ # __str__ = __repr__
# Fix pickling with protocol 2
def __getnewargs__(self, *args):
diff --git a/docs/build/html/_modules/windows/generated_def/winstructs.html b/docs/build/html/_modules/windows/generated_def/winstructs.html
index 74cd278..df61025 100644
--- a/docs/build/html/_modules/windows/generated_def/winstructs.html
+++ b/docs/build/html/_modules/windows/generated_def/winstructs.html
@@ -37,12 +37,12 @@
Source code for windows.generated_def.winstructs
-from windef import *
+from .windef import *
import windows # Allow extended-struct to use windows/winproxy/...
from ctypes import *
from ctypes.wintypes import *
-from flag import Flag, FlagMapper, FlagExatractor
+from .flag import Flag, FlagMapper, FlagExatractor
class EnumValue(Flag):
def __new__(cls, enum_name, name, value):
@@ -59,6 +59,9 @@
def __getnewargs__(self, *args):
return self.enum_name, self.name, int(self)
+# Bypass bug https://bugs.python.org/issue29270
+
+super_noissue = super
class EnumType(DWORD):
values = ()
@@ -66,253 +69,133 @@
@property
def value(self):
- raw_value = super(EnumType, self).value
+ raw_value = super_noissue(EnumType, self).value
return self.mapper.get(raw_value, raw_value)
def __repr__(self):
- raw_value = super(EnumType, self).value
+ raw_value = super_noissue(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))
-ProcessDEPPolicy = EnumValue("_PROCESS_MITIGATION_POLICY", "ProcessDEPPolicy", 0x0)
-ProcessASLRPolicy = EnumValue("_PROCESS_MITIGATION_POLICY", "ProcessASLRPolicy", 0x1)
-ProcessDynamicCodePolicy = EnumValue("_PROCESS_MITIGATION_POLICY", "ProcessDynamicCodePolicy", 0x2)
-ProcessStrictHandleCheckPolicy = EnumValue("_PROCESS_MITIGATION_POLICY", "ProcessStrictHandleCheckPolicy", 0x3)
-ProcessSystemCallDisablePolicy = EnumValue("_PROCESS_MITIGATION_POLICY", "ProcessSystemCallDisablePolicy", 0x4)
-ProcessMitigationOptionsMask = EnumValue("_PROCESS_MITIGATION_POLICY", "ProcessMitigationOptionsMask", 0x5)
-ProcessExtensionPointDisablePolicy = EnumValue("_PROCESS_MITIGATION_POLICY", "ProcessExtensionPointDisablePolicy", 0x6)
-ProcessReserved1Policy = EnumValue("_PROCESS_MITIGATION_POLICY", "ProcessReserved1Policy", 0x7)
-ProcessSignaturePolicy = EnumValue("_PROCESS_MITIGATION_POLICY", "ProcessSignaturePolicy", 0x8)
-MaxProcessMitigationPolicy = EnumValue("_PROCESS_MITIGATION_POLICY", "MaxProcessMitigationPolicy", 0x9)
-[docs]class _PROCESS_MITIGATION_POLICY(EnumType):
-
values = [ProcessDEPPolicy, ProcessASLRPolicy, ProcessDynamicCodePolicy, ProcessStrictHandleCheckPolicy, ProcessSystemCallDisablePolicy, ProcessMitigationOptionsMask, ProcessExtensionPointDisablePolicy, ProcessReserved1Policy, ProcessSignaturePolicy, MaxProcessMitigationPolicy]
+
+
# Sale: windef is hardcoded
+
from . import windef
+
SZOID_MAPPER = FlagMapper(*(getattr(windef, x) for x in dir(windef) if x.startswith("szOID")))
+
FC_ZERO = EnumValue("NDR_FORMAT_CHARACTER", "FC_ZERO", 0x0)
+
FC_BYTE = EnumValue("NDR_FORMAT_CHARACTER", "FC_BYTE", 0x1)
+
FC_CHAR = EnumValue("NDR_FORMAT_CHARACTER", "FC_CHAR", 0x2)
+
FC_SMALL = EnumValue("NDR_FORMAT_CHARACTER", "FC_SMALL", 0x3)
+
FC_USMALL = EnumValue("NDR_FORMAT_CHARACTER", "FC_USMALL", 0x4)
+
FC_WCHAR = EnumValue("NDR_FORMAT_CHARACTER", "FC_WCHAR", 0x5)
+
FC_SHORT = EnumValue("NDR_FORMAT_CHARACTER", "FC_SHORT", 0x6)
+
FC_USHORT = EnumValue("NDR_FORMAT_CHARACTER", "FC_USHORT", 0x7)
+
FC_LONG = EnumValue("NDR_FORMAT_CHARACTER", "FC_LONG", 0x8)
+
FC_ULONG = EnumValue("NDR_FORMAT_CHARACTER", "FC_ULONG", 0x9)
+
FC_FLOAT = EnumValue("NDR_FORMAT_CHARACTER", "FC_FLOAT", 0xa)
+
FC_HYPER = EnumValue("NDR_FORMAT_CHARACTER", "FC_HYPER", 0xb)
+
FC_DOUBLE = EnumValue("NDR_FORMAT_CHARACTER", "FC_DOUBLE", 0xc)
+
FC_ENUM16 = EnumValue("NDR_FORMAT_CHARACTER", "FC_ENUM16", 0xd)
+
FC_ENUM32 = EnumValue("NDR_FORMAT_CHARACTER", "FC_ENUM32", 0xe)
+
FC_IGNORE = EnumValue("NDR_FORMAT_CHARACTER", "FC_IGNORE", 0xf)
+
FC_ERROR_STATUS_T = EnumValue("NDR_FORMAT_CHARACTER", "FC_ERROR_STATUS_T", 0x10)
+
FC_RP = EnumValue("NDR_FORMAT_CHARACTER", "FC_RP", 0x11)
+
FC_UP = EnumValue("NDR_FORMAT_CHARACTER", "FC_UP", 0x12)
+
FC_OP = EnumValue("NDR_FORMAT_CHARACTER", "FC_OP", 0x13)
+
FC_FP = EnumValue("NDR_FORMAT_CHARACTER", "FC_FP", 0x14)
+
FC_STRUCT = EnumValue("NDR_FORMAT_CHARACTER", "FC_STRUCT", 0x15)
+
FC_PSTRUCT = EnumValue("NDR_FORMAT_CHARACTER", "FC_PSTRUCT", 0x16)
+
FC_CSTRUCT = EnumValue("NDR_FORMAT_CHARACTER", "FC_CSTRUCT", 0x17)
+
FC_CPSTRUCT = EnumValue("NDR_FORMAT_CHARACTER", "FC_CPSTRUCT", 0x18)
+
FC_CVSTRUCT = EnumValue("NDR_FORMAT_CHARACTER", "FC_CVSTRUCT", 0x19)
+
FC_BOGUS_STRUCT = EnumValue("NDR_FORMAT_CHARACTER", "FC_BOGUS_STRUCT", 0x1a)
+
FC_CARRAY = EnumValue("NDR_FORMAT_CHARACTER", "FC_CARRAY", 0x1b)
+
FC_CVARRAY = EnumValue("NDR_FORMAT_CHARACTER", "FC_CVARRAY", 0x1c)
+
FC_SMFARRAY = EnumValue("NDR_FORMAT_CHARACTER", "FC_SMFARRAY", 0x1d)
+
FC_LGFARRAY = EnumValue("NDR_FORMAT_CHARACTER", "FC_LGFARRAY", 0x1e)
+
FC_SMVARRAY = EnumValue("NDR_FORMAT_CHARACTER", "FC_SMVARRAY", 0x1f)
+
FC_LGVARRAY = EnumValue("NDR_FORMAT_CHARACTER", "FC_LGVARRAY", 0x20)
+
FC_BOGUS_ARRAY = EnumValue("NDR_FORMAT_CHARACTER", "FC_BOGUS_ARRAY", 0x21)
+
FC_C_CSTRING = EnumValue("NDR_FORMAT_CHARACTER", "FC_C_CSTRING", 0x22)
+
FC_C_BSTRING = EnumValue("NDR_FORMAT_CHARACTER", "FC_C_BSTRING", 0x23)
+
FC_C_SSTRING = EnumValue("NDR_FORMAT_CHARACTER", "FC_C_SSTRING", 0x24)
+
FC_C_WSTRING = EnumValue("NDR_FORMAT_CHARACTER", "FC_C_WSTRING", 0x25)
+
FC_CSTRING = EnumValue("NDR_FORMAT_CHARACTER", "FC_CSTRING", 0x26)
+
FC_BSTRING = EnumValue("NDR_FORMAT_CHARACTER", "FC_BSTRING", 0x27)
+
FC_SSTRING = EnumValue("NDR_FORMAT_CHARACTER", "FC_SSTRING", 0x28)
+
FC_WSTRING = EnumValue("NDR_FORMAT_CHARACTER", "FC_WSTRING", 0x29)
+
FC_ENCAPSULATED_UNION = EnumValue("NDR_FORMAT_CHARACTER", "FC_ENCAPSULATED_UNION", 0x2a)
+
FC_NON_ENCAPSULATED_UNION = EnumValue("NDR_FORMAT_CHARACTER", "FC_NON_ENCAPSULATED_UNION", 0x2b)
+
FC_BYTE_COUNT_POINTER = EnumValue("NDR_FORMAT_CHARACTER", "FC_BYTE_COUNT_POINTER", 0x2c)
+
FC_TRANSMIT_AS = EnumValue("NDR_FORMAT_CHARACTER", "FC_TRANSMIT_AS", 0x2d)
+
FC_REPRESENT_AS = EnumValue("NDR_FORMAT_CHARACTER", "FC_REPRESENT_AS", 0x2e)
+
FC_IP = EnumValue("NDR_FORMAT_CHARACTER", "FC_IP", 0x2f)
+
FC_BIND_CONTEXT = EnumValue("NDR_FORMAT_CHARACTER", "FC_BIND_CONTEXT", 0x30)
+
FC_BIND_GENERIC = EnumValue("NDR_FORMAT_CHARACTER", "FC_BIND_GENERIC", 0x31)
+
FC_BIND_PRIMITIVE = EnumValue("NDR_FORMAT_CHARACTER", "FC_BIND_PRIMITIVE", 0x32)
+
FC_AUTO_HANDLE = EnumValue("NDR_FORMAT_CHARACTER", "FC_AUTO_HANDLE", 0x33)
+
FC_CALLBACK_HANDLE = EnumValue("NDR_FORMAT_CHARACTER", "FC_CALLBACK_HANDLE", 0x34)
+
FC_UNUSED1 = EnumValue("NDR_FORMAT_CHARACTER", "FC_UNUSED1", 0x35)
+
FC_POINTER = EnumValue("NDR_FORMAT_CHARACTER", "FC_POINTER", 0x36)
+
FC_ALIGNM2 = EnumValue("NDR_FORMAT_CHARACTER", "FC_ALIGNM2", 0x37)
+
FC_ALIGNM4 = EnumValue("NDR_FORMAT_CHARACTER", "FC_ALIGNM4", 0x38)
+
FC_ALIGNM8 = EnumValue("NDR_FORMAT_CHARACTER", "FC_ALIGNM8", 0x39)
+
FC_UNUSED2 = EnumValue("NDR_FORMAT_CHARACTER", "FC_UNUSED2", 0x3a)
+
FC_UNUSED3 = EnumValue("NDR_FORMAT_CHARACTER", "FC_UNUSED3", 0x3b)
+
FC_UNUSED4 = EnumValue("NDR_FORMAT_CHARACTER", "FC_UNUSED4", 0x3c)
+
FC_STRUCTPAD1 = EnumValue("NDR_FORMAT_CHARACTER", "FC_STRUCTPAD1", 0x3d)
+
FC_STRUCTPAD2 = EnumValue("NDR_FORMAT_CHARACTER", "FC_STRUCTPAD2", 0x3e)
+
FC_STRUCTPAD3 = EnumValue("NDR_FORMAT_CHARACTER", "FC_STRUCTPAD3", 0x3f)
+
FC_STRUCTPAD4 = EnumValue("NDR_FORMAT_CHARACTER", "FC_STRUCTPAD4", 0x40)
+
FC_STRUCTPAD5 = EnumValue("NDR_FORMAT_CHARACTER", "FC_STRUCTPAD5", 0x41)
+
FC_STRUCTPAD6 = EnumValue("NDR_FORMAT_CHARACTER", "FC_STRUCTPAD6", 0x42)
+
FC_STRUCTPAD7 = EnumValue("NDR_FORMAT_CHARACTER", "FC_STRUCTPAD7", 0x43)
+
FC_STRING_SIZED = EnumValue("NDR_FORMAT_CHARACTER", "FC_STRING_SIZED", 0x44)
+
FC_UNUSED5 = EnumValue("NDR_FORMAT_CHARACTER", "FC_UNUSED5", 0x45)
+
FC_NO_REPEAT = EnumValue("NDR_FORMAT_CHARACTER", "FC_NO_REPEAT", 0x46)
+
FC_FIXED_REPEAT = EnumValue("NDR_FORMAT_CHARACTER", "FC_FIXED_REPEAT", 0x47)
+
FC_VARIABLE_REPEAT = EnumValue("NDR_FORMAT_CHARACTER", "FC_VARIABLE_REPEAT", 0x48)
+
FC_FIXED_OFFSET = EnumValue("NDR_FORMAT_CHARACTER", "FC_FIXED_OFFSET", 0x49)
+
FC_VARIABLE_OFFSET = EnumValue("NDR_FORMAT_CHARACTER", "FC_VARIABLE_OFFSET", 0x4a)
+
FC_PP = EnumValue("NDR_FORMAT_CHARACTER", "FC_PP", 0x4b)
+
FC_EMBEDDED_COMPLEX = EnumValue("NDR_FORMAT_CHARACTER", "FC_EMBEDDED_COMPLEX", 0x4c)
+
FC_IN_PARAM = EnumValue("NDR_FORMAT_CHARACTER", "FC_IN_PARAM", 0x4d)
+
FC_IN_PARAM_BASETYPE = EnumValue("NDR_FORMAT_CHARACTER", "FC_IN_PARAM_BASETYPE", 0x4e)
+
FC_IN_PARAM_NO_FREE_INST = EnumValue("NDR_FORMAT_CHARACTER", "FC_IN_PARAM_NO_FREE_INST", 0x4f)
+
FC_IN_OUT_PARAM = EnumValue("NDR_FORMAT_CHARACTER", "FC_IN_OUT_PARAM", 0x50)
+
FC_OUT_PARAM = EnumValue("NDR_FORMAT_CHARACTER", "FC_OUT_PARAM", 0x51)
+
FC_RETURN_PARAM = EnumValue("NDR_FORMAT_CHARACTER", "FC_RETURN_PARAM", 0x52)
+
FC_RETURN_PARAM_BASETYPE = EnumValue("NDR_FORMAT_CHARACTER", "FC_RETURN_PARAM_BASETYPE", 0x53)
+
FC_DEREFERENCE = EnumValue("NDR_FORMAT_CHARACTER", "FC_DEREFERENCE", 0x54)
+
FC_DIV_2 = EnumValue("NDR_FORMAT_CHARACTER", "FC_DIV_2", 0x55)
+
FC_MULT_2 = EnumValue("NDR_FORMAT_CHARACTER", "FC_MULT_2", 0x56)
+
FC_ADD_1 = EnumValue("NDR_FORMAT_CHARACTER", "FC_ADD_1", 0x57)
+
FC_SUB_1 = EnumValue("NDR_FORMAT_CHARACTER", "FC_SUB_1", 0x58)
+
FC_CALLBACK = EnumValue("NDR_FORMAT_CHARACTER", "FC_CALLBACK", 0x59)
+
FC_CONSTANT_IID = EnumValue("NDR_FORMAT_CHARACTER", "FC_CONSTANT_IID", 0x5a)
+
FC_END = EnumValue("NDR_FORMAT_CHARACTER", "FC_END", 0x5b)
+
FC_PAD = EnumValue("NDR_FORMAT_CHARACTER", "FC_PAD", 0x5c)
+
FC_SPLIT_DEREFERENCE = EnumValue("NDR_FORMAT_CHARACTER", "FC_SPLIT_DEREFERENCE", 0x74)
+
FC_SPLIT_DIV_2 = EnumValue("NDR_FORMAT_CHARACTER", "FC_SPLIT_DIV_2", 0x75)
+
FC_SPLIT_MULT_2 = EnumValue("NDR_FORMAT_CHARACTER", "FC_SPLIT_MULT_2", 0x76)
+
FC_SPLIT_ADD_1 = EnumValue("NDR_FORMAT_CHARACTER", "FC_SPLIT_ADD_1", 0x77)
+
FC_SPLIT_SUB_1 = EnumValue("NDR_FORMAT_CHARACTER", "FC_SPLIT_SUB_1", 0x78)
+
FC_SPLIT_CALLBACK = EnumValue("NDR_FORMAT_CHARACTER", "FC_SPLIT_CALLBACK", 0x79)
+
FC_HARD_STRUCT = EnumValue("NDR_FORMAT_CHARACTER", "FC_HARD_STRUCT", 0xb1)
+
FC_TRANSMIT_AS_PTR = EnumValue("NDR_FORMAT_CHARACTER", "FC_TRANSMIT_AS_PTR", 0xb2)
+
FC_REPRESENT_AS_PTR = EnumValue("NDR_FORMAT_CHARACTER", "FC_REPRESENT_AS_PTR", 0xb3)
+
FC_USER_MARSHAL = EnumValue("NDR_FORMAT_CHARACTER", "FC_USER_MARSHAL", 0xb4)
+
FC_PIPE = EnumValue("NDR_FORMAT_CHARACTER", "FC_PIPE", 0xb5)
+
FC_BLKHOLE = EnumValue("NDR_FORMAT_CHARACTER", "FC_BLKHOLE", 0xb6)
+
FC_RANGE = EnumValue("NDR_FORMAT_CHARACTER", "FC_RANGE", 0xb7)
+
FC_INT3264 = EnumValue("NDR_FORMAT_CHARACTER", "FC_INT3264", 0xb8)
+
FC_UINT3264 = EnumValue("NDR_FORMAT_CHARACTER", "FC_UINT3264", 0xb9)
+
FC_END_OF_UNIVERSE = EnumValue("NDR_FORMAT_CHARACTER", "FC_END_OF_UNIVERSE", 0xba)
+
-
PROCESS_MITIGATION_POLICY = _PROCESS_MITIGATION_POLICY
-
PPROCESS_MITIGATION_POLICY = POINTER(_PROCESS_MITIGATION_POLICY)
-
[docs]class _ANON_PROCESS_MITIGATION_DEP_POLICY_BITFIELD(Structure):
-
_fields_ = [
-
("Enable", DWORD, 1),
-
("DisableAtlThunkEmulation", DWORD, 1),
-
("ReservedFlags", DWORD, 30),
-
]
-
-
-
[docs]class _ANON_PROCESS_MITIGATION_DEP_POLICY_UNION(Union):
-
_anonymous_ = ("anon",)
-
_fields_ = [
-
("Flags", DWORD),
-
("anon", _ANON_PROCESS_MITIGATION_DEP_POLICY_BITFIELD),
-
]
-
-
-
[docs]class _PROCESS_MITIGATION_DEP_POLICY(Structure):
-
_anonymous_ = ("anon",)
-
_fields_ = [
-
("anon", _ANON_PROCESS_MITIGATION_DEP_POLICY_UNION),
-
("Permanent", BOOLEAN),
-
]
-
PPROCESS_MITIGATION_DEP_POLICY = POINTER(_PROCESS_MITIGATION_DEP_POLICY)
-
PROCESS_MITIGATION_DEP_POLICY = _PROCESS_MITIGATION_DEP_POLICY
-
-
[docs]class _ANON_PROCESS_MITIGATION_ASLR_POLICY_BITFIELD(Structure):
-
_fields_ = [
-
("EnableBottomUpRandomization", DWORD, 1),
-
("EnableForceRelocateImages", DWORD, 1),
-
("EnableHighEntropy", DWORD, 1),
-
("DisallowStrippedImages", DWORD, 1),
-
("ReservedFlags", DWORD, 28),
-
]
-
-
-
[docs]class _ANON_PROCESS_MITIGATION_ASLR_POLICY_UNION(Union):
-
_anonymous_ = ("anon",)
-
_fields_ = [
-
("Flags", DWORD),
-
("anon", _ANON_PROCESS_MITIGATION_ASLR_POLICY_BITFIELD),
-
]
-
-
-
[docs]class _PROCESS_MITIGATION_ASLR_POLICY(Structure):
-
_anonymous_ = ("anon",)
-
_fields_ = [
-
("anon", _ANON_PROCESS_MITIGATION_ASLR_POLICY_UNION),
-
]
-
PPROCESS_MITIGATION_ASLR_POLICY = POINTER(_PROCESS_MITIGATION_ASLR_POLICY)
-
PROCESS_MITIGATION_ASLR_POLICY = _PROCESS_MITIGATION_ASLR_POLICY
-
-
[docs]class _ANON_PROCESS_MITIGATION_DYNAMIC_CODE_POLICY_BITFIELD(Structure):
-
_fields_ = [
-
("ProhibitDynamicCode", DWORD, 1),
-
("AllowThreadOptOut", DWORD, 1),
-
("AllowRemoteDowngrade", DWORD, 1),
-
("ReservedFlags", DWORD, 30),
-
]
-
-
-
[docs]class _ANON_PROCESS_MITIGATION_DYNAMIC_CODE_POLICY_UNION(Union):
-
_anonymous_ = ("anon",)
-
_fields_ = [
-
("Flags", DWORD),
-
("anon", _ANON_PROCESS_MITIGATION_DYNAMIC_CODE_POLICY_BITFIELD),
-
]
-
-
-
[docs]class _PROCESS_MITIGATION_DYNAMIC_CODE_POLICY(Structure):
-
_anonymous_ = ("anon",)
-
_fields_ = [
-
("anon", _ANON_PROCESS_MITIGATION_DYNAMIC_CODE_POLICY_UNION),
-
]
-
PROCESS_MITIGATION_DYNAMIC_CODE_POLICY = _PROCESS_MITIGATION_DYNAMIC_CODE_POLICY
-
PPROCESS_MITIGATION_DYNAMIC_CODE_POLICY = POINTER(_PROCESS_MITIGATION_DYNAMIC_CODE_POLICY)
-
-
[docs]class _ANON_PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY_BITFIELD(Structure):
-
_fields_ = [
-
("RaiseExceptionOnInvalidHandleReference", DWORD, 1),
-
("HandleExceptionsPermanentlyEnabled", DWORD, 1),
-
("ReservedFlags", DWORD, 30),
-
]
-
-
-
[docs]class _ANON_PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY_UNION(Union):
-
_anonymous_ = ("ANON_STRUCT",)
-
_fields_ = [
-
("Flags", DWORD),
-
("ANON_STRUCT", _ANON_PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY_BITFIELD),
-
]
-
-
-
[docs]class _PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY(Structure):
-
_anonymous_ = ("anon",)
-
_fields_ = [
-
("anon", _ANON_PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY_UNION),
-
]
-
PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY = _PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY
-
PPROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY = POINTER(_PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY)
-
-
[docs]class _ANON_PROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY_BITFIELD(Structure):
-
_fields_ = [
-
("DisallowWin32kSystemCalls", DWORD, 1),
-
("ReservedFlags", DWORD, 31),
-
]
-
-
-
[docs]class _ANON_PROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY_UNION(Union):
-
_anonymous_ = ("ANON_STRUCT",)
-
_fields_ = [
-
("Flags", DWORD),
-
("ANON_STRUCT", _ANON_PROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY_BITFIELD),
-
]
-
-
-
[docs]class _PROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY(Structure):
-
_anonymous_ = ("anon",)
-
_fields_ = [
-
("anon", _ANON_PROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY_UNION),
-
]
-
PPROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY = POINTER(_PROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY)
-
PROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY = _PROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY
-
-
[docs]class _ANON_PROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY_BITFIELD(Structure):
-
_fields_ = [
-
("DisableExtensionPoints", DWORD, 1),
-
("ReservedFlags", DWORD, 31),
-
]
-
-
-
[docs]class _ANON_PROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY_UNION(Union):
-
_anonymous_ = ("ANON_STRUCT",)
-
_fields_ = [
-
("Flags", DWORD),
-
("ANON_STRUCT", _ANON_PROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY_BITFIELD),
-
]
-
-
-
[docs]class _PROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY(Structure):
-
_anonymous_ = ("anon",)
-
_fields_ = [
-
("anon", _ANON_PROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY_UNION),
-
]
-
PROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY = _PROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY
-
PPROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY = POINTER(_PROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY)
-
-
[docs]class _ANON_PROCESS_MITIGATION_CONTROL_FLOW_GUARD_POLICY_BITFIELD(Structure):
-
_fields_ = [
-
("EnableControlFlowGuard", DWORD, 1),
-
("EnableExportSuppression", DWORD, 1),
-
("StrictMode", DWORD, 1),
-
("ReservedFlags", DWORD, 29),
-
]
-
-
-
[docs]class _ANON_PROCESS_MITIGATION_CONTROL_FLOW_GUARD_POLICY_UNION(Union):
-
_anonymous_ = ("ANON_STRUCT",)
-
_fields_ = [
-
("Flags", DWORD),
-
("ANON_STRUCT", _ANON_PROCESS_MITIGATION_CONTROL_FLOW_GUARD_POLICY_BITFIELD),
-
]
-
-
-
[docs]class _PROCESS_MITIGATION_CONTROL_FLOW_GUARD_POLICY(Structure):
-
_anonymous_ = ("anon",)
-
_fields_ = [
-
("anon", _ANON_PROCESS_MITIGATION_CONTROL_FLOW_GUARD_POLICY_UNION),
-
]
-
PPROCESS_MITIGATION_CONTROL_FLOW_GUARD_POLICY = POINTER(_PROCESS_MITIGATION_CONTROL_FLOW_GUARD_POLICY)
-
PROCESS_MITIGATION_CONTROL_FLOW_GUARD_POLICY = _PROCESS_MITIGATION_CONTROL_FLOW_GUARD_POLICY
-
-
[docs]class _ANON_PROCESS_MITIGATION_BINARY_SIGNATURE_POLICY_BITFIELD(Structure):
-
_fields_ = [
-
("MicrosoftSignedOnly", DWORD, 1),
-
("StoreSignedOnly", DWORD, 1),
-
("MitigationOptIn", DWORD, 1),
-
("ReservedFlags", DWORD, 29),
-
]
-
-
-
[docs]class _ANON_PROCESS_MITIGATION_BINARY_SIGNATURE_POLICY_UNION(Union):
-
_anonymous_ = ("ANON_STRUCT",)
-
_fields_ = [
-
("Flags", DWORD),
-
("ANON_STRUCT", _ANON_PROCESS_MITIGATION_BINARY_SIGNATURE_POLICY_BITFIELD),
-
]
-
-
-
[docs]class _PROCESS_MITIGATION_BINARY_SIGNATURE_POLICY(Structure):
-
_anonymous_ = ("anon",)
-
_fields_ = [
-
("anon", _ANON_PROCESS_MITIGATION_BINARY_SIGNATURE_POLICY_UNION),
-
]
-
PPROCESS_MITIGATION_BINARY_SIGNATURE_POLICY = POINTER(_PROCESS_MITIGATION_BINARY_SIGNATURE_POLICY)
-
PROCESS_MITIGATION_BINARY_SIGNATURE_POLICY = _PROCESS_MITIGATION_BINARY_SIGNATURE_POLICY
-
-
[docs]class _ANON_PROCESS_MITIGATION_IMAGE_LOAD_POLICY_BITFIELD(Structure):
-
_fields_ = [
-
("NoRemoteImages", DWORD, 1),
-
("NoLowMandatoryLabelImages", DWORD, 1),
-
("PreferSystem32Images", DWORD, 1),
-
("ReservedFlags", DWORD, 29),
-
]
-
-
-
[docs]class _ANON_PROCESS_MITIGATION_IMAGE_LOAD_POLICY_UNION(Union):
-
_anonymous_ = ("ANON_STRUCT",)
-
_fields_ = [
-
("Flags", DWORD),
-
("ANON_STRUCT", _ANON_PROCESS_MITIGATION_IMAGE_LOAD_POLICY_BITFIELD),
-
]
-
-
-
[docs]class _PROCESS_MITIGATION_IMAGE_LOAD_POLICY(Structure):
-
_anonymous_ = ("anon",)
-
_fields_ = [
-
("anon", _ANON_PROCESS_MITIGATION_IMAGE_LOAD_POLICY_UNION),
-
]
-
PPROCESS_MITIGATION_IMAGE_LOAD_POLICY = POINTER(_PROCESS_MITIGATION_IMAGE_LOAD_POLICY)
-
PROCESS_MITIGATION_IMAGE_LOAD_POLICY = _PROCESS_MITIGATION_IMAGE_LOAD_POLICY
-
VOID = DWORD
BYTE = c_ubyte
PWSTR = LPWSTR
@@ -321,6 +204,9 @@
PSIZE_T = POINTER(SIZE_T)
PVOID = c_void_p
NTSTATUS = DWORD
+
TDHSTATUS = ULONG
+
DNS_STATUS = ULONG
+
LSTATUS = LONG#Registryfunctionsreturnvalue|typedef_Return_type_success_(return==ERROR_SUCCESS)LONGLSTATUS;
SECURITY_INFORMATION = DWORD
PSECURITY_INFORMATION = POINTER(SECURITY_INFORMATION)
PULONG = POINTER(ULONG)
@@ -333,6 +219,7 @@
KAFFINITY = ULONG_PTR
KPRIORITY = LONG
CHAR = c_char
+
PCHAR = POINTER(CHAR)
UCHAR = c_char
CSHORT = c_short
VARTYPE = c_ushort
@@ -345,6 +232,7 @@
BSTR = c_wchar_p
OLECHAR = c_wchar
POLECHAR = c_wchar_p
+
PZZWSTR = c_wchar_p
PUCHAR = POINTER(UCHAR)
double = c_double
DATE = double
@@ -380,7 +268,6 @@
MEMBERID = DISPID
LRESULT = LONG_PTR
LPUNKNOWN = POINTER(PVOID)
-
LPFILETIME = POINTER(FILETIME)
LPPOINT = POINTER(POINT)
LPRECT = POINTER(RECT)
SPC_UUID = BYTE*16
@@ -392,6 +279,9 @@
NCRYPT_KEY_HANDLE = ULONG_PTR
NCRYPT_HASH_HANDLE = ULONG_PTR
NCRYPT_SECRET_HANDLE = ULONG_PTR
+
TRACEHANDLE = ULONG64
+
PTRACEHANDLE = POINTER(TRACEHANDLE)
+
PIMAGEHLP_CONTEXT = PVOID
INT8 = c_byte
INT16 = SHORT
INT32 = INT
@@ -412,6 +302,7 @@
HCRYPTPROV_OR_NCRYPT_KEY_HANDLE = PULONG
EVT_HANDLE = HANDLE
EVT_OBJECT_ARRAY_PROPERTY_HANDLE = HANDLE
+
IP4_ADDRESS = DWORD
PSECURITY_DESCRIPTOR = PVOID
SECURITY_DESCRIPTOR_CONTROL = WORD
PSECURITY_DESCRIPTOR_CONTROL = POINTER(SECURITY_DESCRIPTOR_CONTROL)
@@ -425,19 +316,12 @@
PSID = PVOID
_INITIAL_PSID = PSID
[docs]class PSID(_INITIAL_PSID): # _INITIAL_PSID -> PVOID
-
# def __init__(self, strsid=None):
-
# if strsid is not None:
-
# windows.winproxy.ConvertStringSidToSidA(strsid, self)
-
-
def __str__(self):
-
sid_str = LPCSTR()
-
windows.winproxy.ConvertSidToStringSidA(self, sid_str)
-
result = sid_str.value
-
windows.winproxy.LocalFree(sid_str)
-
return result
def __eq__(self, other):
-
return windows.winproxy.EqualSid(self, other)
+
return bool(windows.winproxy.EqualSid(self, other))
+
+
def __ne__(self, other):
+
return not windows.winproxy.EqualSid(self, other)
@property
def size(self):
@@ -452,16 +336,21 @@
@classmethod
def from_string(cls, strsid):
self = cls()
+
if not isinstance(strsid, bytes):
+
strsid = strsid.encode("ascii")
+
# Pass to ConvertStringSidToSidW ?
windows.winproxy.ConvertStringSidToSidA(strsid, self)
return self
def to_string(self):
sid_str = LPCSTR()
windows.winproxy.ConvertSidToStringSidA(self, sid_str)
-
result = sid_str.value
+
result = sid_str.value.decode("ascii") # ConvertSidToStringSidW ?
windows.winproxy.LocalFree(sid_str)
return result
+
__str__ = to_string
+
def __repr__(self):
try:
return """<{0} "{1}">""".format(type(self).__name__, self.to_string())
@@ -473,6 +362,8 @@
__sprint__ = __repr__
RPCOLEDATAREP = ULONG
+
HREFTYPE = DWORD
+
SFGAOF = ULONG
WNDPROC = PVOID
LPPROC_THREAD_ATTRIBUTE_LIST = PVOID
PPS_POST_PROCESS_INIT_ROUTINE = PVOID
@@ -483,11 +374,1326 @@
PIO_APC_ROUTINE = PVOID
PVECTORED_EXCEPTION_HANDLER = PVOID
PFN_CRYPT_GET_SIGNER_CERTIFICATE = PVOID
+
PSYM_ENUMERATESYMBOLS_CALLBACK = PVOID
+
PSYM_ENUMERATESYMBOLS_CALLBACKW = PVOID
+
PEVENT_CALLBACK = PVOID
+
PEVENT_TRACE_BUFFER_CALLBACKA = PVOID
+
PEVENT_TRACE_BUFFER_CALLBACKW = PVOID
+
PEVENT_RECORD_CALLBACK = PVOID
+
PFN_CRYPT_ENUM_OID_FUNC = PVOID
+
PGET_MODULE_BASE_ROUTINE64 = PVOID#StackWalk
+
PGET_MODULE_BASE_ROUTINE = PVOID#StackWalk
+
PREAD_PROCESS_MEMORY_ROUTINE = PVOID#StackWalk
+
PREAD_PROCESS_MEMORY_ROUTINE64 = PVOID#StackWalk
+
PFUNCTION_TABLE_ACCESS_ROUTINE = PVOID#StackWalk
+
PFUNCTION_TABLE_ACCESS_ROUTINE64 = PVOID#StackWalk
+
PTRANSLATE_ADDRESS_ROUTINE = PVOID#StackWalk
+
PTRANSLATE_ADDRESS_ROUTINE64 = PVOID#StackWalk
+
PSYMBOL_REGISTERED_CALLBACK64 = PVOID#Symbols
+
PSYMBOL_REGISTERED_CALLBACK = PVOID#Symbols
+
PSYM_ENUMPROCESSES_CALLBACK = PVOID#Symbols
LPCONTEXT = PVOID
HCERTSTORE = PVOID
HCRYPTMSG = PVOID
PALPC_PORT_ATTRIBUTES = PVOID
PPORT_MESSAGE = PVOID
+
BG_AUTH_SCHEME_BASIC = EnumValue("__MIDL_IBackgroundCopyJob2_0002", "BG_AUTH_SCHEME_BASIC", 0x0)
+
BG_AUTH_SCHEME_DIGEST = EnumValue("__MIDL_IBackgroundCopyJob2_0002", "BG_AUTH_SCHEME_DIGEST", 0x1)
+
BG_AUTH_SCHEME_NTLM = EnumValue("__MIDL_IBackgroundCopyJob2_0002", "BG_AUTH_SCHEME_NTLM", 0x2)
+
BG_AUTH_SCHEME_NEGOTIATE = EnumValue("__MIDL_IBackgroundCopyJob2_0002", "BG_AUTH_SCHEME_NEGOTIATE", 0x3)
+
BG_AUTH_SCHEME_PASSPORT = EnumValue("__MIDL_IBackgroundCopyJob2_0002", "BG_AUTH_SCHEME_PASSPORT", 0x4)
+
[docs]class __MIDL_IBackgroundCopyJob2_0002(EnumType):
+
values = [BG_AUTH_SCHEME_BASIC, BG_AUTH_SCHEME_DIGEST, BG_AUTH_SCHEME_NTLM, BG_AUTH_SCHEME_NEGOTIATE, BG_AUTH_SCHEME_PASSPORT]
+
mapper = FlagMapper(*values)
+
BG_AUTH_SCHEME = __MIDL_IBackgroundCopyJob2_0002
+
+
+
BG_AUTH_TARGET_SERVER = EnumValue("__MIDL_IBackgroundCopyJob2_0001", "BG_AUTH_TARGET_SERVER", 0x0)
+
BG_AUTH_TARGET_PROXY = EnumValue("__MIDL_IBackgroundCopyJob2_0001", "BG_AUTH_TARGET_PROXY", 0x1)
+
[docs]class __MIDL_IBackgroundCopyJob2_0001(EnumType):
+
values = [BG_AUTH_TARGET_SERVER, BG_AUTH_TARGET_PROXY]
+
mapper = FlagMapper(*values)
+
BG_AUTH_TARGET = __MIDL_IBackgroundCopyJob2_0001
+
+
+
[docs]class __MIDL_IBackgroundCopyJob2_0003(Structure):
+
_fields_ = [
+
("UserName", LPWSTR),
+
("Password", LPWSTR),
+
]
+
BG_BASIC_CREDENTIALS = __MIDL_IBackgroundCopyJob2_0003
+
+
[docs]class __MIDL_IBackgroundCopyJob2_0004(Union):
+
_fields_ = [
+
("Basic", BG_BASIC_CREDENTIALS),
+
]
+
BG_AUTH_CREDENTIALS_UNION = __MIDL_IBackgroundCopyJob2_0004
+
+
[docs]class BG_AUTH_CREDENTIALS(Structure):
+
_fields_ = [
+
("Target", BG_AUTH_TARGET),
+
("Scheme", BG_AUTH_SCHEME),
+
("Credentials", BG_AUTH_CREDENTIALS_UNION),
+
]
+
+
+
[docs]class _BG_JOB_REPLY_PROGRESS(Structure):
+
_fields_ = [
+
("BytesTotal", UINT64),
+
("BytesTransferred", UINT64),
+
]
+
BG_JOB_REPLY_PROGRESS = _BG_JOB_REPLY_PROGRESS
+
+
[docs]class _BG_FILE_RANGE(Structure):
+
_fields_ = [
+
("InitialOffset", UINT64),
+
("Length", UINT64),
+
]
+
BG_FILE_RANGE = _BG_FILE_RANGE
+
+
AO_NONE = EnumValue("ACTIVATEOPTIONS", "AO_NONE", 0x0)
+
AO_DESIGNMODE = EnumValue("ACTIVATEOPTIONS", "AO_DESIGNMODE", 0x1)
+
AO_NOERRORUI = EnumValue("ACTIVATEOPTIONS", "AO_NOERRORUI", 0x2)
+
AO_NOSPLASHSCREEN = EnumValue("ACTIVATEOPTIONS", "AO_NOSPLASHSCREEN", 0x4)
+
AO_PRELAUNCH = EnumValue("ACTIVATEOPTIONS", "AO_PRELAUNCH", 0x2000000)
+
[docs]class ACTIVATEOPTIONS(EnumType):
+
values = [AO_NONE, AO_DESIGNMODE, AO_NOERRORUI, AO_NOSPLASHSCREEN, AO_PRELAUNCH]
+
mapper = FlagMapper(*values)
+
+
+
PES_UNKNOWN = EnumValue("PACKAGE_EXECUTION_STATE", "PES_UNKNOWN", 0x0)
+
PES_RUNNING = EnumValue("PACKAGE_EXECUTION_STATE", "PES_RUNNING", 0x1)
+
PES_SUSPENDING = EnumValue("PACKAGE_EXECUTION_STATE", "PES_SUSPENDING", 0x2)
+
PES_SUSPENDED = EnumValue("PACKAGE_EXECUTION_STATE", "PES_SUSPENDED", 0x3)
+
PES_TERMINATED = EnumValue("PACKAGE_EXECUTION_STATE", "PES_TERMINATED", 0x4)
+
[docs]class PACKAGE_EXECUTION_STATE(EnumType):
+
values = [PES_UNKNOWN, PES_RUNNING, PES_SUSPENDING, PES_SUSPENDED, PES_TERMINATED]
+
mapper = FlagMapper(*values)
+
+
+
[docs]class _SHITEMID(Structure):
+
_fields_ = [
+
("cb", USHORT),
+
("abID", BYTE * (1)),
+
]
+
SHITEMID = _SHITEMID
+
+
[docs]class _ITEMIDLIST(Structure):
+
_fields_ = [
+
("mkid", SHITEMID),
+
]
+
ITEMIDLIST = _ITEMIDLIST
+
PCIDLIST_ABSOLUTE = POINTER(_ITEMIDLIST)
+
PIDLIST_ABSOLUTE = POINTER(_ITEMIDLIST)
+
+
KeyValueBasicInformation = EnumValue("_KEY_VALUE_INFORMATION_CLASS", "KeyValueBasicInformation", 0x0)
+
KeyValueFullInformation = EnumValue("_KEY_VALUE_INFORMATION_CLASS", "KeyValueFullInformation", 0x1)
+
KeyValuePartialInformation = EnumValue("_KEY_VALUE_INFORMATION_CLASS", "KeyValuePartialInformation", 0x2)
+
KeyValueFullInformationAlign64 = EnumValue("_KEY_VALUE_INFORMATION_CLASS", "KeyValueFullInformationAlign64", 0x3)
+
KeyValuePartialInformationAlign64 = EnumValue("_KEY_VALUE_INFORMATION_CLASS", "KeyValuePartialInformationAlign64", 0x4)
+
KeyValueLayerInformation = EnumValue("_KEY_VALUE_INFORMATION_CLASS", "KeyValueLayerInformation", 0x5)
+
MaxKeyValueInfoClass = EnumValue("_KEY_VALUE_INFORMATION_CLASS", "MaxKeyValueInfoClass", 0x6)
+
+
KEY_VALUE_INFORMATION_CLASS = _KEY_VALUE_INFORMATION_CLASS
+
+
+
KeyBasicInformation = EnumValue("_KEY_INFORMATION_CLASS", "KeyBasicInformation", 0x0)
+
KeyNodeInformation = EnumValue("_KEY_INFORMATION_CLASS", "KeyNodeInformation", 0x1)
+
KeyFullInformation = EnumValue("_KEY_INFORMATION_CLASS", "KeyFullInformation", 0x2)
+
KeyNameInformation = EnumValue("_KEY_INFORMATION_CLASS", "KeyNameInformation", 0x3)
+
KeyCachedInformation = EnumValue("_KEY_INFORMATION_CLASS", "KeyCachedInformation", 0x4)
+
KeyFlagsInformation = EnumValue("_KEY_INFORMATION_CLASS", "KeyFlagsInformation", 0x5)
+
KeyVirtualizationInformation = EnumValue("_KEY_INFORMATION_CLASS", "KeyVirtualizationInformation", 0x6)
+
KeyHandleTagsInformation = EnumValue("_KEY_INFORMATION_CLASS", "KeyHandleTagsInformation", 0x7)
+
KeyTrustInformation = EnumValue("_KEY_INFORMATION_CLASS", "KeyTrustInformation", 0x8)
+
KeyLayerInformation = EnumValue("_KEY_INFORMATION_CLASS", "KeyLayerInformation", 0x9)
+
MaxKeyInfoClass = EnumValue("_KEY_INFORMATION_CLASS", "MaxKeyInfoClass", 0xa)
+
+
KEY_INFORMATION_CLASS = _KEY_INFORMATION_CLASS
+
+
+
+
PKEY_VALUE_BASIC_INFORMATION = POINTER(_KEY_VALUE_BASIC_INFORMATION)
+
KEY_VALUE_BASIC_INFORMATION = _KEY_VALUE_BASIC_INFORMATION
+
+
+
KEY_VALUE_FULL_INFORMATION = _KEY_VALUE_FULL_INFORMATION
+
PKEY_VALUE_FULL_INFORMATION = POINTER(_KEY_VALUE_FULL_INFORMATION)
+
+
+
PKEY_VALUE_PARTIAL_INFORMATION = POINTER(_KEY_VALUE_PARTIAL_INFORMATION)
+
KEY_VALUE_PARTIAL_INFORMATION = _KEY_VALUE_PARTIAL_INFORMATION
+
+
SC_STATUS_PROCESS_INFO = EnumValue("_SC_STATUS_TYPE", "SC_STATUS_PROCESS_INFO", 0x0)
+
[docs]class _SC_STATUS_TYPE(EnumType):
+
values = [SC_STATUS_PROCESS_INFO]
+
mapper = FlagMapper(*values)
+
SC_STATUS_TYPE = _SC_STATUS_TYPE
+
+
+
SC_ENUM_PROCESS_INFO = EnumValue("_SC_ENUM_TYPE", "SC_ENUM_PROCESS_INFO", 0x0)
+
[docs]class _SC_ENUM_TYPE(EnumType):
+
values = [SC_ENUM_PROCESS_INFO]
+
mapper = FlagMapper(*values)
+
SC_ENUM_TYPE = _SC_ENUM_TYPE
+
+
+
[docs]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
+
+
[docs]class _SERVICE_STATUS_PROCESS(_SERVICE_STATUS_PROCESS):
+
+
SERVICE_STATE = FlagMapper(SERVICE_STOPPED,
+
SERVICE_START_PENDING,
+
SERVICE_STOP_PENDING,
+
SERVICE_RUNNING,
+
SERVICE_CONTINUE_PENDING,
+
SERVICE_PAUSE_PENDING,
+
SERVICE_PAUSED)
+
+
SERVICE_TYPE = FlagMapper(SERVICE_KERNEL_DRIVER,
+
SERVICE_FILE_SYSTEM_DRIVER,
+
SERVICE_WIN32_OWN_PROCESS,
+
SERVICE_WIN32_SHARE_PROCESS,
+
SERVICE_INTERACTIVE_PROCESS)
+
+
SERVICE_CONTROLE_ACCEPTED = FlagMapper()
+
+
SERVICE_FLAGS = FlagMapper(SERVICE_RUNS_IN_SYSTEM_PROCESS)
+
+
+
@property
+
def dwCurrentState(self):
+
return self.SERVICE_STATE[super(_SERVICE_STATUS_PROCESS, self).dwCurrentState]
+
+
@property
+
def dwServiceType(self):
+
return self.SERVICE_TYPE[super(_SERVICE_STATUS_PROCESS, self).dwServiceType]
+
+
@property
+
def dwControlsAccepted(self):
+
return self.SERVICE_CONTROLE_ACCEPTED[super(_SERVICE_STATUS_PROCESS, self).dwControlsAccepted]
+
+
@property
+
def dwServiceFlags(self):
+
return self.SERVICE_FLAGS[super(_SERVICE_STATUS_PROCESS, self).dwServiceFlags]
+
+
# Python friendly names
+
state = dwCurrentState
+
type = dwServiceType
+
control_accepted = dwControlsAccepted
+
flags = dwServiceFlags
+
LPSERVICE_STATUS_PROCESS = POINTER(_SERVICE_STATUS_PROCESS)
+
SERVICE_STATUS_PROCESS = _SERVICE_STATUS_PROCESS
+
[docs]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
+
+
[docs]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 _ENUM_SERVICE_STATUSA(Structure):
+
_fields_ = [
+
("lpServiceName", LPSTR),
+
("lpDisplayName", LPSTR),
+
("ServiceStatus", SERVICE_STATUS),
+
]
+
LPENUM_SERVICE_STATUSA = POINTER(_ENUM_SERVICE_STATUSA)
+
ENUM_SERVICE_STATUSA = _ENUM_SERVICE_STATUSA
+
+
[docs]class _ENUM_SERVICE_STATUSW(Structure):
+
_fields_ = [
+
("lpServiceName", LPWSTR),
+
("lpDisplayName", LPWSTR),
+
("ServiceStatus", SERVICE_STATUS),
+
]
+
ENUM_SERVICE_STATUSW = _ENUM_SERVICE_STATUSW
+
LPENUM_SERVICE_STATUSW = POINTER(_ENUM_SERVICE_STATUSW)
+
+
[docs]class _QUERY_SERVICE_CONFIGA(Structure):
+
_fields_ = [
+
("dwServiceType", DWORD),
+
("dwStartType", DWORD),
+
("dwErrorControl", DWORD),
+
("lpBinaryPathName", LPSTR),
+
("lpLoadOrderGroup", LPSTR),
+
("dwTagId", DWORD),
+
("lpDependencies", LPSTR),
+
("lpServiceStartName", LPSTR),
+
("lpDisplayName", LPSTR),
+
]
+
QUERY_SERVICE_CONFIGA = _QUERY_SERVICE_CONFIGA
+
LPQUERY_SERVICE_CONFIGA = POINTER(_QUERY_SERVICE_CONFIGA)
+
+
[docs]class _QUERY_SERVICE_CONFIGW(Structure):
+
_fields_ = [
+
("dwServiceType", DWORD),
+
("dwStartType", DWORD),
+
("dwErrorControl", DWORD),
+
("lpBinaryPathName", LPWSTR),
+
("lpLoadOrderGroup", LPWSTR),
+
("dwTagId", DWORD),
+
("lpDependencies", LPWSTR),
+
("lpServiceStartName", LPWSTR),
+
("lpDisplayName", LPWSTR),
+
]
+
LPQUERY_SERVICE_CONFIGW = POINTER(_QUERY_SERVICE_CONFIGW)
+
QUERY_SERVICE_CONFIGW = _QUERY_SERVICE_CONFIGW
+
+
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)
+
[docs]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 = FlagMapper(*values)
+
TCP_TABLE_CLASS = _TCP_TABLE_CLASS
+
+
+
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)
+
[docs]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 = FlagMapper(*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 = FlagMapper(*values)
+
NET_FW_IP_PROTOCOL = NET_FW_IP_PROTOCOL_
+
+
+
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)
+
[docs]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 = FlagMapper(*values)
+
INTERNAL_IF_OPER_STATUS = _INTERNAL_IF_OPER_STATUS
+
+
+
DnsFreeFlat = EnumValue("DNS_FREE_TYPE", "DnsFreeFlat", 0x0)
+
DnsFreeRecordList = EnumValue("DNS_FREE_TYPE", "DnsFreeRecordList", 0x1)
+
DnsFreeParsedMessageFields = EnumValue("DNS_FREE_TYPE", "DnsFreeParsedMessageFields", 0x2)
+
[docs]class DNS_FREE_TYPE(EnumType):
+
values = [DnsFreeFlat, DnsFreeRecordList, DnsFreeParsedMessageFields]
+
mapper = FlagMapper(*values)
+
+
+
[docs]class IP6_ADDRESS(Structure):
+
_fields_ = [
+
("IP6Qword", ULONGLONG * (2)),
+
]
+
PIP6_ADDRESS = POINTER(IP6_ADDRESS)
+
+
[docs]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
+
+
[docs]class _MIB_IPADDRTABLE(Structure):
+
_fields_ = [
+
("dwNumEntries", DWORD),
+
("table", MIB_IPADDRROW * (ANY_SIZE)),
+
]
+
PMIB_IPADDRTABLE = POINTER(_MIB_IPADDRTABLE)
+
MIB_IPADDRTABLE = _MIB_IPADDRTABLE
+
+
[docs]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
+
+
[docs]class _MIB_IFTABLE(Structure):
+
_fields_ = [
+
("dwNumEntries", DWORD),
+
("table", MIB_IFROW * (ANY_SIZE)),
+
]
+
PMIB_IFTABLE = POINTER(_MIB_IFTABLE)
+
MIB_IFTABLE = _MIB_IFTABLE
+
+
[docs]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)
+
+
[docs]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)
+
+
[docs]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)
+
+
[docs]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)
+
+
[docs]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)
+
+
[docs]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
+
+
[docs]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)
+
+
[docs]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)
+
+
[docs]class _MIB_TCPROW(Structure):
+
_fields_ = [
+
("dwState", DWORD),
+
("dwLocalAddr", DWORD),
+
("dwLocalPort", DWORD),
+
("dwRemoteAddr", DWORD),
+
("dwRemotePort", DWORD),
+
]
+
MIB_TCPROW = _MIB_TCPROW
+
PMIB_TCPROW = POINTER(_MIB_TCPROW)
+
+
[docs]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
+
+
[docs]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
+
[docs]class _DNS_CACHE_ENTRY(Structure): pass
+
PDNS_CACHE_ENTRY = POINTER(_DNS_CACHE_ENTRY)
+
DNS_CACHE_ENTRY = _DNS_CACHE_ENTRY
+
_DNS_CACHE_ENTRY._fields_ = [
+
("pNext", POINTER(_DNS_CACHE_ENTRY)),
+
("pszName", PCWSTR),
+
("wType", USHORT),
+
("wDataLength", USHORT),
+
("dwFlags", ULONG),
+
]
+
+
[docs]class DNS_A_DATA(Structure):
+
_fields_ = [
+
("IpAddress", IP4_ADDRESS),
+
]
+
PDNS_A_DATA = POINTER(DNS_A_DATA)
+
+
[docs]class DNS_PTR_DATAW(Structure):
+
_fields_ = [
+
("pNameHost", PWSTR),
+
]
+
PDNS_PTR_DATAW = POINTER(DNS_PTR_DATAW)
+
+
[docs]class DNS_PTR_DATAA(Structure):
+
_fields_ = [
+
("pNameHost", PSTR),
+
]
+
PDNS_PTR_DATAA = POINTER(DNS_PTR_DATAA)
+
+
[docs]class DNS_SOA_DATAW(Structure):
+
_fields_ = [
+
("pNamePrimaryServer", PWSTR),
+
("pNameAdministrator", PWSTR),
+
("dwSerialNo", DWORD),
+
("dwRefresh", DWORD),
+
("dwRetry", DWORD),
+
("dwExpire", DWORD),
+
("dwDefaultTtl", DWORD),
+
]
+
PDNS_SOA_DATAW = POINTER(DNS_SOA_DATAW)
+
+
[docs]class DNS_SOA_DATAA(Structure):
+
_fields_ = [
+
("pNamePrimaryServer", PSTR),
+
("pNameAdministrator", PSTR),
+
("dwSerialNo", DWORD),
+
("dwRefresh", DWORD),
+
("dwRetry", DWORD),
+
("dwExpire", DWORD),
+
("dwDefaultTtl", DWORD),
+
]
+
PDNS_SOA_DATAA = POINTER(DNS_SOA_DATAA)
+
+
[docs]class DNS_MINFO_DATAW(Structure):
+
_fields_ = [
+
("pNameMailbox", PWSTR),
+
("pNameErrorsMailbox", PWSTR),
+
]
+
PDNS_MINFO_DATAW = POINTER(DNS_MINFO_DATAW)
+
+
[docs]class DNS_MINFO_DATAA(Structure):
+
_fields_ = [
+
("pNameMailbox", PSTR),
+
("pNameErrorsMailbox", PSTR),
+
]
+
PDNS_MINFO_DATAA = POINTER(DNS_MINFO_DATAA)
+
+
[docs]class DNS_MX_DATAW(Structure):
+
_fields_ = [
+
("pNameExchange", PWSTR),
+
("wPreference", WORD),
+
("Pad", WORD),
+
]
+
PDNS_MX_DATAW = POINTER(DNS_MX_DATAW)
+
+
[docs]class DNS_MX_DATAA(Structure):
+
_fields_ = [
+
("pNameExchange", PSTR),
+
("wPreference", WORD),
+
("Pad", WORD),
+
]
+
PDNS_MX_DATAA = POINTER(DNS_MX_DATAA)
+
+
[docs]class DNS_TXT_DATAW(Structure):
+
_fields_ = [
+
("dwStringCount", DWORD),
+
("pStringArray", PWSTR * (1)),
+
]
+
PDNS_TXT_DATAW = POINTER(DNS_TXT_DATAW)
+
+
[docs]class DNS_TXT_DATAA(Structure):
+
_fields_ = [
+
("dwStringCount", DWORD),
+
("pStringArray", PSTR * (1)),
+
]
+
PDNS_TXT_DATAA = POINTER(DNS_TXT_DATAA)
+
+
[docs]class DNS_NULL_DATA(Structure):
+
_fields_ = [
+
("dwByteCount", DWORD),
+
("Data", BYTE * (1)),
+
]
+
PDNS_NULL_DATA = POINTER(DNS_NULL_DATA)
+
+
[docs]class DNS_WKS_DATA(Structure):
+
_fields_ = [
+
("IpAddress", IP4_ADDRESS),
+
("chProtocol", UCHAR),
+
("BitMask", BYTE * (1)),
+
]
+
PDNS_WKS_DATA = POINTER(DNS_WKS_DATA)
+
+
[docs]class DNS_AAAA_DATA(Structure):
+
_fields_ = [
+
("Ip6Address", IP6_ADDRESS),
+
]
+
PDNS_AAAA_DATA = POINTER(DNS_AAAA_DATA)
+
+
[docs]class DNS_SIG_DATAW(Structure):
+
_fields_ = [
+
("wTypeCovered", WORD),
+
("chAlgorithm", BYTE),
+
("chLabelCount", BYTE),
+
("dwOriginalTtl", DWORD),
+
("dwExpiration", DWORD),
+
("dwTimeSigned", DWORD),
+
("wKeyTag", WORD),
+
("wSignatureLength", WORD),
+
("pNameSigner", PWSTR),
+
("Signature", BYTE * (1)),
+
]
+
DNS_RRSIG_DATAW = DNS_SIG_DATAW
+
PDNS_RRSIG_DATAW = POINTER(DNS_SIG_DATAW)
+
PDNS_SIG_DATAW = POINTER(DNS_SIG_DATAW)
+
+
[docs]class DNS_SIG_DATAA(Structure):
+
_fields_ = [
+
("wTypeCovered", WORD),
+
("chAlgorithm", BYTE),
+
("chLabelCount", BYTE),
+
("dwOriginalTtl", DWORD),
+
("dwExpiration", DWORD),
+
("dwTimeSigned", DWORD),
+
("wKeyTag", WORD),
+
("wSignatureLength", WORD),
+
("pNameSigner", PSTR),
+
("Signature", BYTE * (1)),
+
]
+
PDNS_SIG_DATAA = POINTER(DNS_SIG_DATAA)
+
PDNS_RRSIG_DATAA = POINTER(DNS_SIG_DATAA)
+
DNS_RRSIG_DATAA = DNS_SIG_DATAA
+
+
[docs]class DNS_KEY_DATA(Structure):
+
_fields_ = [
+
("wFlags", WORD),
+
("chProtocol", BYTE),
+
("chAlgorithm", BYTE),
+
("wKeyLength", WORD),
+
("wPad", WORD),
+
("Key", BYTE * (1)),
+
]
+
PDNS_DNSKEY_DATA = POINTER(DNS_KEY_DATA)
+
PDNS_KEY_DATA = POINTER(DNS_KEY_DATA)
+
DNS_DNSKEY_DATA = DNS_KEY_DATA
+
+
[docs]class DNS_DHCID_DATA(Structure):
+
_fields_ = [
+
("dwByteCount", DWORD),
+
("DHCID", BYTE * (1)),
+
]
+
PDNS_DHCID_DATA = POINTER(DNS_DHCID_DATA)
+
+
[docs]class DNS_NSEC_DATAW(Structure):
+
_fields_ = [
+
("pNextDomainName", PWSTR),
+
("wTypeBitMapsLength", WORD),
+
("wPad", WORD),
+
("TypeBitMaps", BYTE * (1)),
+
]
+
PDNS_NSEC_DATAW = POINTER(DNS_NSEC_DATAW)
+
+
[docs]class DNS_NSEC_DATAA(Structure):
+
_fields_ = [
+
("pNextDomainName", PSTR),
+
("wTypeBitMapsLength", WORD),
+
("wPad", WORD),
+
("TypeBitMaps", BYTE * (1)),
+
]
+
PDNS_NSEC_DATAA = POINTER(DNS_NSEC_DATAA)
+
+
[docs]class DNS_NSEC3_DATA(Structure):
+
_fields_ = [
+
("chAlgorithm", BYTE),
+
("bFlags", BYTE),
+
("wIterations", WORD),
+
("bSaltLength", BYTE),
+
("bHashLength", BYTE),
+
("wTypeBitMapsLength", WORD),
+
("chData", BYTE * (1)),
+
]
+
PDNS_NSEC3_DATA = POINTER(DNS_NSEC3_DATA)
+
+
[docs]class DNS_NSEC3PARAM_DATA(Structure):
+
_fields_ = [
+
("chAlgorithm", BYTE),
+
("bFlags", BYTE),
+
("wIterations", WORD),
+
("bSaltLength", BYTE),
+
("bPad", BYTE * (3)),
+
("pbSalt", BYTE * (1)),
+
]
+
PDNS_NSEC3PARAM_DATA = POINTER(DNS_NSEC3PARAM_DATA)
+
+
[docs]class DNS_DS_DATA(Structure):
+
_fields_ = [
+
("wKeyTag", WORD),
+
("chAlgorithm", BYTE),
+
("chDigestType", BYTE),
+
("wDigestLength", WORD),
+
("wPad", WORD),
+
("Digest", BYTE * (1)),
+
]
+
PDNS_DS_DATA = POINTER(DNS_DS_DATA)
+
+
[docs]class DNS_OPT_DATA(Structure):
+
_fields_ = [
+
("wDataLength", WORD),
+
("wPad", WORD),
+
("Data", BYTE * (1)),
+
]
+
PDNS_OPT_DATA = POINTER(DNS_OPT_DATA)
+
+
[docs]class DNS_LOC_DATA(Structure):
+
_fields_ = [
+
("wVersion", WORD),
+
("wSize", WORD),
+
("wHorPrec", WORD),
+
("wVerPrec", WORD),
+
("dwLatitude", DWORD),
+
("dwLongitude", DWORD),
+
("dwAltitude", DWORD),
+
]
+
PDNS_LOC_DATA = POINTER(DNS_LOC_DATA)
+
+
[docs]class DNS_NXT_DATAW(Structure):
+
_fields_ = [
+
("pNameNext", PWSTR),
+
("wNumTypes", WORD),
+
("wTypes", WORD * (1)),
+
]
+
PDNS_NXT_DATAW = POINTER(DNS_NXT_DATAW)
+
+
[docs]class DNS_NXT_DATAA(Structure):
+
_fields_ = [
+
("pNameNext", PSTR),
+
("wNumTypes", WORD),
+
("wTypes", WORD * (1)),
+
]
+
PDNS_NXT_DATAA = POINTER(DNS_NXT_DATAA)
+
+
[docs]class DNS_SRV_DATAW(Structure):
+
_fields_ = [
+
("pNameTarget", PWSTR),
+
("wPriority", WORD),
+
("wWeight", WORD),
+
("wPort", WORD),
+
("Pad", WORD),
+
]
+
PDNS_SRV_DATAW = POINTER(DNS_SRV_DATAW)
+
+
[docs]class DNS_SRV_DATAA(Structure):
+
_fields_ = [
+
("pNameTarget", PSTR),
+
("wPriority", WORD),
+
("wWeight", WORD),
+
("wPort", WORD),
+
("Pad", WORD),
+
]
+
PDNS_SRV_DATAA = POINTER(DNS_SRV_DATAA)
+
+
[docs]class DNS_NAPTR_DATAW(Structure):
+
_fields_ = [
+
("wOrder", WORD),
+
("wPreference", WORD),
+
("pFlags", PWSTR),
+
("pService", PWSTR),
+
("pRegularExpression", PWSTR),
+
("pReplacement", PWSTR),
+
]
+
PDNS_NAPTR_DATAW = POINTER(DNS_NAPTR_DATAW)
+
+
[docs]class DNS_NAPTR_DATAA(Structure):
+
_fields_ = [
+
("wOrder", WORD),
+
("wPreference", WORD),
+
("pFlags", PSTR),
+
("pService", PSTR),
+
("pRegularExpression", PSTR),
+
("pReplacement", PSTR),
+
]
+
PDNS_NAPTR_DATAA = POINTER(DNS_NAPTR_DATAA)
+
+
[docs]class DNS_ATMA_DATA(Structure):
+
_fields_ = [
+
("AddressType", BYTE),
+
("Address", BYTE * (DNS_ATMA_MAX_ADDR_LENGTH)),
+
]
+
PDNS_ATMA_DATA = POINTER(DNS_ATMA_DATA)
+
+
[docs]class DNS_TKEY_DATAW(Structure):
+
_fields_ = [
+
("pNameAlgorithm", PWSTR),
+
("pAlgorithmPacket", PBYTE),
+
("pKey", PBYTE),
+
("pOtherData", PBYTE),
+
("dwCreateTime", DWORD),
+
("dwExpireTime", DWORD),
+
("wMode", WORD),
+
("wError", WORD),
+
("wKeyLength", WORD),
+
("wOtherLength", WORD),
+
("cAlgNameLength", UCHAR),
+
("bPacketPointers", BOOL),
+
]
+
PDNS_TKEY_DATAW = POINTER(DNS_TKEY_DATAW)
+
+
[docs]class DNS_TKEY_DATAA(Structure):
+
_fields_ = [
+
("pNameAlgorithm", PSTR),
+
("pAlgorithmPacket", PBYTE),
+
("pKey", PBYTE),
+
("pOtherData", PBYTE),
+
("dwCreateTime", DWORD),
+
("dwExpireTime", DWORD),
+
("wMode", WORD),
+
("wError", WORD),
+
("wKeyLength", WORD),
+
("wOtherLength", WORD),
+
("cAlgNameLength", UCHAR),
+
("bPacketPointers", BOOL),
+
]
+
PDNS_TKEY_DATAA = POINTER(DNS_TKEY_DATAA)
+
+
[docs]class DNS_TSIG_DATAW(Structure):
+
_fields_ = [
+
("pNameAlgorithm", PWSTR),
+
("pAlgorithmPacket", PBYTE),
+
("pSignature", PBYTE),
+
("pOtherData", PBYTE),
+
("i64CreateTime", LONGLONG),
+
("wFudgeTime", WORD),
+
("wOriginalXid", WORD),
+
("wError", WORD),
+
("wSigLength", WORD),
+
("wOtherLength", WORD),
+
("cAlgNameLength", UCHAR),
+
("bPacketPointers", BOOL),
+
]
+
PDNS_TSIG_DATAW = POINTER(DNS_TSIG_DATAW)
+
+
[docs]class DNS_TSIG_DATAA(Structure):
+
_fields_ = [
+
("pNameAlgorithm", PSTR),
+
("pAlgorithmPacket", PBYTE),
+
("pSignature", PBYTE),
+
("pOtherData", PBYTE),
+
("i64CreateTime", LONGLONG),
+
("wFudgeTime", WORD),
+
("wOriginalXid", WORD),
+
("wError", WORD),
+
("wSigLength", WORD),
+
("wOtherLength", WORD),
+
("cAlgNameLength", UCHAR),
+
("bPacketPointers", BOOL),
+
]
+
PDNS_TSIG_DATAA = POINTER(DNS_TSIG_DATAA)
+
+
[docs]class DNS_WINS_DATA(Structure):
+
_fields_ = [
+
("dwMappingFlag", DWORD),
+
("dwLookupTimeout", DWORD),
+
("dwCacheTimeout", DWORD),
+
("cWinsServerCount", DWORD),
+
("WinsServers", IP4_ADDRESS * (1)),
+
]
+
PDNS_WINS_DATA = POINTER(DNS_WINS_DATA)
+
+
[docs]class DNS_WINSR_DATAW(Structure):
+
_fields_ = [
+
("dwMappingFlag", DWORD),
+
("dwLookupTimeout", DWORD),
+
("dwCacheTimeout", DWORD),
+
("pNameResultDomain", PWSTR),
+
]
+
PDNS_WINSR_DATAW = POINTER(DNS_WINSR_DATAW)
+
+
[docs]class DNS_WINSR_DATAA(Structure):
+
_fields_ = [
+
("dwMappingFlag", DWORD),
+
("dwLookupTimeout", DWORD),
+
("dwCacheTimeout", DWORD),
+
("pNameResultDomain", PSTR),
+
]
+
PDNS_WINSR_DATAA = POINTER(DNS_WINSR_DATAA)
+
+
[docs]class DNS_TLSA_DATA(Structure):
+
_fields_ = [
+
("bCertUsage", BYTE),
+
("bSelector", BYTE),
+
("bMatchingType", BYTE),
+
("bCertificateAssociationDataLength", WORD),
+
("bPad", BYTE * (3)),
+
("bCertificateAssociationData", BYTE * (1)),
+
]
+
PDNS_TLSA_DATA = POINTER(DNS_TLSA_DATA)
+
+
[docs]class DNS_UNKNOWN_DATA(Structure):
+
_fields_ = [
+
("dwByteCount", DWORD),
+
("bData", BYTE * (1)),
+
]
+
PDNS_UNKNOWN_DATA = POINTER(DNS_UNKNOWN_DATA)
+
+
[docs]class _DnsRecordFlags(Structure):
+
_fields_ = [
+
("Section", DWORD, 2),
+
("Delete", DWORD, 1),
+
("CharSet", DWORD, 2),
+
("Unused", DWORD, 3),
+
("Reserved", DWORD, 24),
+
]
+
DNS_RECORD_FLAGS = _DnsRecordFlags
+
+
class _ANON__DNSRECORDA_SUB_UNION_1(Union):
+
_fields_ = [
+
("DW", DWORD),
+
("S", DNS_RECORD_FLAGS),
+
]
+
+
+
class _ANON__DNSRECORDA_SUB_UNION_2(Union):
+
_fields_ = [
+
("A", DNS_A_DATA),
+
("SOA", DNS_SOA_DATAA),
+
("Soa", DNS_SOA_DATAA),
+
("PTR", DNS_PTR_DATAA),
+
("Ptr", DNS_PTR_DATAA),
+
("NS", DNS_PTR_DATAA),
+
("Ns", DNS_PTR_DATAA),
+
("CNAME", DNS_PTR_DATAA),
+
("Cname", DNS_PTR_DATAA),
+
("DNAME", DNS_PTR_DATAA),
+
("Dname", DNS_PTR_DATAA),
+
("MB", DNS_PTR_DATAA),
+
("Mb", DNS_PTR_DATAA),
+
("MD", DNS_PTR_DATAA),
+
("Md", DNS_PTR_DATAA),
+
("MF", DNS_PTR_DATAA),
+
("Mf", DNS_PTR_DATAA),
+
("MG", DNS_PTR_DATAA),
+
("Mg", DNS_PTR_DATAA),
+
("MR", DNS_PTR_DATAA),
+
("Mr", DNS_PTR_DATAA),
+
("MINFO", DNS_MINFO_DATAA),
+
("Minfo", DNS_MINFO_DATAA),
+
("RP", DNS_MINFO_DATAA),
+
("Rp", DNS_MINFO_DATAA),
+
("MX", DNS_MX_DATAA),
+
("Mx", DNS_MX_DATAA),
+
("AFSDB", DNS_MX_DATAA),
+
("Afsdb", DNS_MX_DATAA),
+
("RT", DNS_MX_DATAA),
+
("Rt", DNS_MX_DATAA),
+
("HINFO", DNS_TXT_DATAA),
+
("Hinfo", DNS_TXT_DATAA),
+
("ISDN", DNS_TXT_DATAA),
+
("Isdn", DNS_TXT_DATAA),
+
("TXT", DNS_TXT_DATAA),
+
("Txt", DNS_TXT_DATAA),
+
("X25", DNS_TXT_DATAA),
+
("Null", DNS_NULL_DATA),
+
("WKS", DNS_WKS_DATA),
+
("Wks", DNS_WKS_DATA),
+
("AAAA", DNS_AAAA_DATA),
+
("KEY", DNS_KEY_DATA),
+
("Key", DNS_KEY_DATA),
+
("SIG", DNS_SIG_DATAA),
+
("Sig", DNS_SIG_DATAA),
+
("ATMA", DNS_ATMA_DATA),
+
("Atma", DNS_ATMA_DATA),
+
("NXT", DNS_NXT_DATAA),
+
("Nxt", DNS_NXT_DATAA),
+
("SRV", DNS_SRV_DATAA),
+
("Srv", DNS_SRV_DATAA),
+
("NAPTR", DNS_NAPTR_DATAA),
+
("Naptr", DNS_NAPTR_DATAA),
+
("OPT", DNS_OPT_DATA),
+
("Opt", DNS_OPT_DATA),
+
("DS", DNS_DS_DATA),
+
("Ds", DNS_DS_DATA),
+
("RRSIG", DNS_RRSIG_DATAA),
+
("Rrsig", DNS_RRSIG_DATAA),
+
("NSEC", DNS_NSEC_DATAA),
+
("Nsec", DNS_NSEC_DATAA),
+
("DNSKEY", DNS_DNSKEY_DATA),
+
("Dnskey", DNS_DNSKEY_DATA),
+
("TKEY", DNS_TKEY_DATAA),
+
("Tkey", DNS_TKEY_DATAA),
+
("TSIG", DNS_TSIG_DATAA),
+
("Tsig", DNS_TSIG_DATAA),
+
("WINS", DNS_WINS_DATA),
+
("Wins", DNS_WINS_DATA),
+
("WINSR", DNS_WINSR_DATAA),
+
("WinsR", DNS_WINSR_DATAA),
+
("NBSTAT", DNS_WINSR_DATAA),
+
("Nbstat", DNS_WINSR_DATAA),
+
("DHCID", DNS_DHCID_DATA),
+
("NSEC3", DNS_NSEC3_DATA),
+
("Nsec3", DNS_NSEC3_DATA),
+
("NSEC3PARAM", DNS_NSEC3PARAM_DATA),
+
("Nsec3Param", DNS_NSEC3PARAM_DATA),
+
("TLSA", DNS_TLSA_DATA),
+
("Tlsa", DNS_TLSA_DATA),
+
("UNKNOWN", DNS_UNKNOWN_DATA),
+
("Unknown", DNS_UNKNOWN_DATA),
+
("pDataPtr", PBYTE),
+
]
+
+
# Self referencing struct tricks
+
[docs]class _DnsRecordA(Structure): pass
+
PDNS_RECORDA = POINTER(_DnsRecordA)
+
DNS_RECORDA = _DnsRecordA
+
_DnsRecordA._fields_ = [
+
("pNext", POINTER(_DnsRecordA)),
+
("pName", PSTR),
+
("wType", WORD),
+
("wDataLength", WORD),
+
("Flags", _ANON__DNSRECORDA_SUB_UNION_1),
+
("dwTtl", DWORD),
+
("dwReserved", DWORD),
+
("Data", _ANON__DNSRECORDA_SUB_UNION_2),
+
]
+
+
class _ANON__DNSRECORDW_SUB_UNION_1(Union):
+
_fields_ = [
+
("DW", DWORD),
+
("S", DNS_RECORD_FLAGS),
+
]
+
+
+
class _ANON__DNSRECORDW_SUB_UNION_2(Union):
+
_fields_ = [
+
("A", DNS_A_DATA),
+
("SOA", DNS_SOA_DATAW),
+
("Soa", DNS_SOA_DATAW),
+
("PTR", DNS_PTR_DATAW),
+
("Ptr", DNS_PTR_DATAW),
+
("NS", DNS_PTR_DATAW),
+
("Ns", DNS_PTR_DATAW),
+
("CNAME", DNS_PTR_DATAW),
+
("Cname", DNS_PTR_DATAW),
+
("DNAME", DNS_PTR_DATAW),
+
("Dname", DNS_PTR_DATAW),
+
("MB", DNS_PTR_DATAW),
+
("Mb", DNS_PTR_DATAW),
+
("MD", DNS_PTR_DATAW),
+
("Md", DNS_PTR_DATAW),
+
("MF", DNS_PTR_DATAW),
+
("Mf", DNS_PTR_DATAW),
+
("MG", DNS_PTR_DATAW),
+
("Mg", DNS_PTR_DATAW),
+
("MR", DNS_PTR_DATAW),
+
("Mr", DNS_PTR_DATAW),
+
("MINFO", DNS_MINFO_DATAW),
+
("Minfo", DNS_MINFO_DATAW),
+
("RP", DNS_MINFO_DATAW),
+
("Rp", DNS_MINFO_DATAW),
+
("MX", DNS_MX_DATAW),
+
("Mx", DNS_MX_DATAW),
+
("AFSDB", DNS_MX_DATAW),
+
("Afsdb", DNS_MX_DATAW),
+
("RT", DNS_MX_DATAW),
+
("Rt", DNS_MX_DATAW),
+
("HINFO", DNS_TXT_DATAW),
+
("Hinfo", DNS_TXT_DATAW),
+
("ISDN", DNS_TXT_DATAW),
+
("Isdn", DNS_TXT_DATAW),
+
("TXT", DNS_TXT_DATAW),
+
("Txt", DNS_TXT_DATAW),
+
("X25", DNS_TXT_DATAW),
+
("Null", DNS_NULL_DATA),
+
("WKS", DNS_WKS_DATA),
+
("Wks", DNS_WKS_DATA),
+
("AAAA", DNS_AAAA_DATA),
+
("KEY", DNS_KEY_DATA),
+
("Key", DNS_KEY_DATA),
+
("SIG", DNS_SIG_DATAW),
+
("Sig", DNS_SIG_DATAW),
+
("ATMA", DNS_ATMA_DATA),
+
("Atma", DNS_ATMA_DATA),
+
("NXT", DNS_NXT_DATAW),
+
("Nxt", DNS_NXT_DATAW),
+
("SRV", DNS_SRV_DATAW),
+
("Srv", DNS_SRV_DATAW),
+
("NAPTR", DNS_NAPTR_DATAW),
+
("Naptr", DNS_NAPTR_DATAW),
+
("OPT", DNS_OPT_DATA),
+
("Opt", DNS_OPT_DATA),
+
("DS", DNS_DS_DATA),
+
("Ds", DNS_DS_DATA),
+
("RRSIG", DNS_RRSIG_DATAW),
+
("Rrsig", DNS_RRSIG_DATAW),
+
("NSEC", DNS_NSEC_DATAW),
+
("Nsec", DNS_NSEC_DATAW),
+
("DNSKEY", DNS_DNSKEY_DATA),
+
("Dnskey", DNS_DNSKEY_DATA),
+
("TKEY", DNS_TKEY_DATAW),
+
("Tkey", DNS_TKEY_DATAW),
+
("TSIG", DNS_TSIG_DATAW),
+
("Tsig", DNS_TSIG_DATAW),
+
("WINS", DNS_WINS_DATA),
+
("Wins", DNS_WINS_DATA),
+
("WINSR", DNS_WINSR_DATAW),
+
("WinsR", DNS_WINSR_DATAW),
+
("NBSTAT", DNS_WINSR_DATAW),
+
("Nbstat", DNS_WINSR_DATAW),
+
("DHCID", DNS_DHCID_DATA),
+
("NSEC3", DNS_NSEC3_DATA),
+
("Nsec3", DNS_NSEC3_DATA),
+
("NSEC3PARAM", DNS_NSEC3PARAM_DATA),
+
("Nsec3Param", DNS_NSEC3PARAM_DATA),
+
("TLSA", DNS_TLSA_DATA),
+
("Tlsa", DNS_TLSA_DATA),
+
("UNKNOWN", DNS_UNKNOWN_DATA),
+
("Unknown", DNS_UNKNOWN_DATA),
+
("pDataPtr", PBYTE),
+
]
+
+
# Self referencing struct tricks
+
[docs]class _DnsRecordW(Structure): pass
+
DNS_RECORDW = _DnsRecordW
+
PDNS_RECORDW = POINTER(_DnsRecordW)
+
_DnsRecordW._fields_ = [
+
("pNext", POINTER(_DnsRecordW)),
+
("pName", PWSTR),
+
("wType", WORD),
+
("wDataLength", WORD),
+
("Flags", _ANON__DNSRECORDW_SUB_UNION_1),
+
("dwTtl", DWORD),
+
("dwReserved", DWORD),
+
("Data", _ANON__DNSRECORDW_SUB_UNION_2),
+
]
+
+
TASK_ACTION_EXEC = EnumValue("_TASK_ACTION_TYPE", "TASK_ACTION_EXEC", 0x0)
+
TASK_ACTION_COM_HANDLER = EnumValue("_TASK_ACTION_TYPE", "TASK_ACTION_COM_HANDLER", 0x5)
+
TASK_ACTION_SEND_EMAIL = EnumValue("_TASK_ACTION_TYPE", "TASK_ACTION_SEND_EMAIL", 0x6)
+
TASK_ACTION_SHOW_MESSAGE = EnumValue("_TASK_ACTION_TYPE", "TASK_ACTION_SHOW_MESSAGE", 0x7)
+
[docs]class _TASK_ACTION_TYPE(EnumType):
+
values = [TASK_ACTION_EXEC, TASK_ACTION_COM_HANDLER, TASK_ACTION_SEND_EMAIL, TASK_ACTION_SHOW_MESSAGE]
+
mapper = FlagMapper(*values)
+
TASK_ACTION_TYPE = _TASK_ACTION_TYPE
+
+
+
TASK_RUNLEVEL_LUA = EnumValue("_TASK_RUNLEVEL_TYPE", "TASK_RUNLEVEL_LUA", 0x0)
+
TASK_RUNLEVEL_HIGHEST = EnumValue("_TASK_RUNLEVEL_TYPE", "TASK_RUNLEVEL_HIGHEST", 0x1)
+
[docs]class _TASK_RUNLEVEL_TYPE(EnumType):
+
values = [TASK_RUNLEVEL_LUA, TASK_RUNLEVEL_HIGHEST]
+
mapper = FlagMapper(*values)
+
TASK_RUNLEVEL_TYPE = _TASK_RUNLEVEL_TYPE
+
+
+
TASK_LOGON_NONE = EnumValue("_TASK_LOGON_TYPE", "TASK_LOGON_NONE", 0x0)
+
TASK_LOGON_PASSWORD = EnumValue("_TASK_LOGON_TYPE", "TASK_LOGON_PASSWORD", 0x1)
+
TASK_LOGON_S4U = EnumValue("_TASK_LOGON_TYPE", "TASK_LOGON_S4U", 0x2)
+
TASK_LOGON_INTERACTIVE_TOKEN = EnumValue("_TASK_LOGON_TYPE", "TASK_LOGON_INTERACTIVE_TOKEN", 0x3)
+
TASK_LOGON_GROUP = EnumValue("_TASK_LOGON_TYPE", "TASK_LOGON_GROUP", 0x4)
+
TASK_LOGON_SERVICE_ACCOUNT = EnumValue("_TASK_LOGON_TYPE", "TASK_LOGON_SERVICE_ACCOUNT", 0x5)
+
TASK_LOGON_INTERACTIVE_TOKEN_OR_PASSWORD = EnumValue("_TASK_LOGON_TYPE", "TASK_LOGON_INTERACTIVE_TOKEN_OR_PASSWORD", 0x6)
+
[docs]class _TASK_LOGON_TYPE(EnumType):
+
values = [TASK_LOGON_NONE, TASK_LOGON_PASSWORD, TASK_LOGON_S4U, TASK_LOGON_INTERACTIVE_TOKEN, TASK_LOGON_GROUP, TASK_LOGON_SERVICE_ACCOUNT, TASK_LOGON_INTERACTIVE_TOKEN_OR_PASSWORD]
+
mapper = FlagMapper(*values)
+
TASK_LOGON_TYPE = _TASK_LOGON_TYPE
+
+
+
TASK_STATE_UNKNOWN = EnumValue("_TASK_STATE", "TASK_STATE_UNKNOWN", 0x0)
+
TASK_STATE_DISABLED = EnumValue("_TASK_STATE", "TASK_STATE_DISABLED", 0x1)
+
TASK_STATE_QUEUED = EnumValue("_TASK_STATE", "TASK_STATE_QUEUED", 0x2)
+
TASK_STATE_READY = EnumValue("_TASK_STATE", "TASK_STATE_READY", 0x3)
+
TASK_STATE_RUNNING = EnumValue("_TASK_STATE", "TASK_STATE_RUNNING", 0x4)
+
[docs]class _TASK_STATE(EnumType):
+
values = [TASK_STATE_UNKNOWN, TASK_STATE_DISABLED, TASK_STATE_QUEUED, TASK_STATE_READY, TASK_STATE_RUNNING]
+
mapper = FlagMapper(*values)
+
TASK_STATE = _TASK_STATE
+
+
+
TASK_INSTANCES_PARALLEL = EnumValue("_TASK_INSTANCES_POLICY", "TASK_INSTANCES_PARALLEL", 0x0)
+
TASK_INSTANCES_QUEUE = EnumValue("_TASK_INSTANCES_POLICY", "TASK_INSTANCES_QUEUE", 0x1)
+
TASK_INSTANCES_IGNORE_NEW = EnumValue("_TASK_INSTANCES_POLICY", "TASK_INSTANCES_IGNORE_NEW", 0x2)
+
TASK_INSTANCES_STOP_EXISTING = EnumValue("_TASK_INSTANCES_POLICY", "TASK_INSTANCES_STOP_EXISTING", 0x3)
+
[docs]class _TASK_INSTANCES_POLICY(EnumType):
+
values = [TASK_INSTANCES_PARALLEL, TASK_INSTANCES_QUEUE, TASK_INSTANCES_IGNORE_NEW, TASK_INSTANCES_STOP_EXISTING]
+
mapper = FlagMapper(*values)
+
TASK_INSTANCES_POLICY = _TASK_INSTANCES_POLICY
+
+
+
TASK_COMPATIBILITY_AT = EnumValue("_TASK_COMPATIBILITY", "TASK_COMPATIBILITY_AT", 0x0)
+
TASK_COMPATIBILITY_V1 = EnumValue("_TASK_COMPATIBILITY", "TASK_COMPATIBILITY_V1", 0x1)
+
TASK_COMPATIBILITY_V2 = EnumValue("_TASK_COMPATIBILITY", "TASK_COMPATIBILITY_V2", 0x2)
+
[docs]class _TASK_COMPATIBILITY(EnumType):
+
values = [TASK_COMPATIBILITY_AT, TASK_COMPATIBILITY_V1, TASK_COMPATIBILITY_V2]
+
mapper = FlagMapper(*values)
+
TASK_COMPATIBILITY = _TASK_COMPATIBILITY
+
+
+
TASK_TRIGGER_EVENT = EnumValue("_TASK_TRIGGER_TYPE2", "TASK_TRIGGER_EVENT", 0x0)
+
TASK_TRIGGER_TIME = EnumValue("_TASK_TRIGGER_TYPE2", "TASK_TRIGGER_TIME", 0x1)
+
TASK_TRIGGER_DAILY = EnumValue("_TASK_TRIGGER_TYPE2", "TASK_TRIGGER_DAILY", 0x2)
+
TASK_TRIGGER_WEEKLY = EnumValue("_TASK_TRIGGER_TYPE2", "TASK_TRIGGER_WEEKLY", 0x3)
+
TASK_TRIGGER_MONTHLY = EnumValue("_TASK_TRIGGER_TYPE2", "TASK_TRIGGER_MONTHLY", 0x4)
+
TASK_TRIGGER_MONTHLYDOW = EnumValue("_TASK_TRIGGER_TYPE2", "TASK_TRIGGER_MONTHLYDOW", 0x5)
+
TASK_TRIGGER_IDLE = EnumValue("_TASK_TRIGGER_TYPE2", "TASK_TRIGGER_IDLE", 0x6)
+
TASK_TRIGGER_REGISTRATION = EnumValue("_TASK_TRIGGER_TYPE2", "TASK_TRIGGER_REGISTRATION", 0x7)
+
TASK_TRIGGER_BOOT = EnumValue("_TASK_TRIGGER_TYPE2", "TASK_TRIGGER_BOOT", 0x8)
+
TASK_TRIGGER_LOGON = EnumValue("_TASK_TRIGGER_TYPE2", "TASK_TRIGGER_LOGON", 0x9)
+
TASK_TRIGGER_SESSION_STATE_CHANGE = EnumValue("_TASK_TRIGGER_TYPE2", "TASK_TRIGGER_SESSION_STATE_CHANGE", 0xb)
+
[docs]class _TASK_TRIGGER_TYPE2(EnumType):
+
values = [TASK_TRIGGER_EVENT, TASK_TRIGGER_TIME, TASK_TRIGGER_DAILY, TASK_TRIGGER_WEEKLY, TASK_TRIGGER_MONTHLY, TASK_TRIGGER_MONTHLYDOW, TASK_TRIGGER_IDLE, TASK_TRIGGER_REGISTRATION, TASK_TRIGGER_BOOT, TASK_TRIGGER_LOGON, TASK_TRIGGER_SESSION_STATE_CHANGE]
+
mapper = FlagMapper(*values)
+
TASK_TRIGGER_TYPE2 = _TASK_TRIGGER_TYPE2
+
+
+
TASK_ENUM_HIDDEN = EnumValue("_TASK_ENUM_FLAGS", "TASK_ENUM_HIDDEN", 0x1)
+
[docs]class _TASK_ENUM_FLAGS(EnumType):
+
values = [TASK_ENUM_HIDDEN]
+
mapper = FlagMapper(*values)
+
TASK_ENUM_FLAGS = _TASK_ENUM_FLAGS
+
+
+
TASK_VALIDATE_ONLY = EnumValue("_TASK_CREATION", "TASK_VALIDATE_ONLY", 0x1)
+
TASK_CREATE = EnumValue("_TASK_CREATION", "TASK_CREATE", 0x2)
+
TASK_UPDATE = EnumValue("_TASK_CREATION", "TASK_UPDATE", 0x4)
+
TASK_CREATE_OR_UPDATE = EnumValue("_TASK_CREATION", "TASK_CREATE_OR_UPDATE", 0x6)
+
TASK_DISABLE = EnumValue("_TASK_CREATION", "TASK_DISABLE", 0x8)
+
TASK_DONT_ADD_PRINCIPAL_ACE = EnumValue("_TASK_CREATION", "TASK_DONT_ADD_PRINCIPAL_ACE", 0x10)
+
TASK_IGNORE_REGISTRATION_TRIGGERS = EnumValue("_TASK_CREATION", "TASK_IGNORE_REGISTRATION_TRIGGERS", 0x20)
+
[docs]class _TASK_CREATION(EnumType):
+
values = [TASK_VALIDATE_ONLY, TASK_CREATE, TASK_UPDATE, TASK_CREATE_OR_UPDATE, TASK_DISABLE, TASK_DONT_ADD_PRINCIPAL_ACE, TASK_IGNORE_REGISTRATION_TRIGGERS]
+
mapper = FlagMapper(*values)
+
TASK_CREATION = _TASK_CREATION
+
+
+
TASK_RUN_NO_FLAGS = EnumValue("TASK_RUN_FLAGS", "TASK_RUN_NO_FLAGS", 0x0)
+
TASK_RUN_AS_SELF = EnumValue("TASK_RUN_FLAGS", "TASK_RUN_AS_SELF", 0x1)
+
TASK_RUN_IGNORE_CONSTRAINTS = EnumValue("TASK_RUN_FLAGS", "TASK_RUN_IGNORE_CONSTRAINTS", 0x2)
+
TASK_RUN_USE_SESSION_ID = EnumValue("TASK_RUN_FLAGS", "TASK_RUN_USE_SESSION_ID", 0x4)
+
TASK_RUN_USER_SID = EnumValue("TASK_RUN_FLAGS", "TASK_RUN_USER_SID", 0x8)
+
[docs]class TASK_RUN_FLAGS(EnumType):
+
values = [TASK_RUN_NO_FLAGS, TASK_RUN_AS_SELF, TASK_RUN_IGNORE_CONSTRAINTS, TASK_RUN_USE_SESSION_ID, TASK_RUN_USER_SID]
+
mapper = FlagMapper(*values)
+
+
[docs]class _API_SET_VALUE_ENTRY(Structure):
_fields_ = [
("Flags", ULONG),
@@ -517,7 +1723,7 @@
("Size", ULONG),
("Flags", ULONG),
("Count", ULONG),
-
("Array", API_SET_NAMESPACE_ENTRY * ANYSIZE_ARRAY),
+
("Array", API_SET_NAMESPACE_ENTRY * (ANYSIZE_ARRAY)),
]
PAPI_SET_NAMESPACE_ARRAY = POINTER(_API_SET_NAMESPACE_ARRAY)
API_SET_NAMESPACE_ARRAY = _API_SET_NAMESPACE_ARRAY
@@ -535,7 +1741,7 @@
[docs]class _API_SET_VALUE_ARRAY_V2(Structure):
_fields_ = [
("Count", ULONG),
-
("Array", API_SET_VALUE_ENTRY_V2 * ANYSIZE_ARRAY),
+
("Array", API_SET_VALUE_ENTRY_V2 * (ANYSIZE_ARRAY)),
]
API_SET_VALUE_ARRAY_V2 = _API_SET_VALUE_ARRAY_V2
PAPI_SET_VALUE_ARRAY_V2 = POINTER(_API_SET_VALUE_ARRAY_V2)
@@ -553,7 +1759,7 @@
_fields_ = [
("Version", ULONG),
("Count", ULONG),
-
("Array", API_SET_NAMESPACE_ENTRY_V2 * ANYSIZE_ARRAY),
+
("Array", API_SET_NAMESPACE_ENTRY_V2 * (ANYSIZE_ARRAY)),
]
API_SET_NAMESPACE_ARRAY_V2 = _API_SET_NAMESPACE_ARRAY_V2
PAPI_SET_NAMESPACE_ARRAY_V2 = POINTER(_API_SET_NAMESPACE_ARRAY_V2)
@@ -562,7 +1768,7 @@
_fields_ = [
("GuessFlags", ULONG),
("Count", ULONG),
- ("Array", API_SET_VALUE_ENTRY_V2 * ANYSIZE_ARRAY),
+ ("Array", API_SET_VALUE_ENTRY_V2 * (ANYSIZE_ARRAY)),
]
API_SET_VALUE_ARRAY_V4 = _API_SET_VALUE_ARRAY_V4
PAPI_SET_VALUE_ARRAY_V2 = POINTER(_API_SET_VALUE_ARRAY_V4)
@@ -573,7 +1779,7 @@
("Size", ULONG),
("Flags", ULONG),
("Count", ULONG),
-
("Array", API_SET_NAMESPACE_ENTRY * ANYSIZE_ARRAY),
+
("Array", API_SET_NAMESPACE_ENTRY * (ANYSIZE_ARRAY)),
]
API_SET_NAMESPACE_ARRAY_V4 = _API_SET_NAMESPACE_ARRAY_V4
PAPI_SET_NAMESPACE_ARRAY_V4 = POINTER(_API_SET_NAMESPACE_ARRAY_V4)
@@ -613,14 +1819,659 @@
]