Working on sphinx doc generation for windows.generated_def

This commit is contained in:
Clement Rouault
2017-08-11 19:06:50 +02:00
parent 61ac5c8c5d
commit 8d139bce79
10 changed files with 16622 additions and 276 deletions
-141
View File
@@ -108,61 +108,6 @@
#define CREATE_IGNORE_SYSTEM_DEFAULT 0x80000000
#define STATUS_WAIT_0 (0x00000000L)
#define STATUS_ABANDONED_WAIT_0 (0x00000080L)
#define STATUS_USER_APC (0x000000C0L)
#define STATUS_TIMEOUT (0x00000102L)
#define STATUS_PENDING (0x00000103L)
#define DBG_EXCEPTION_HANDLED (0x00010001L)
#define DBG_CONTINUE (0x00010002L)
#define STATUS_SEGMENT_NOTIFICATION (0x40000005L)
#define DBG_TERMINATE_THREAD (0x40010003L)
#define DBG_TERMINATE_PROCESS (0x40010004L)
#define DBG_CONTROL_C (0x40010005L)
#define DBG_PRINTEXCEPTION_C (0x40010006L)
#define DBG_RIPEXCEPTION (0x40010007L)
#define DBG_CONTROL_BREAK (0x40010008L)
#define DBG_COMMAND_EXCEPTION (0x40010009L)
#define STATUS_GUARD_PAGE_VIOLATION (0x80000001L)
#define STATUS_DATATYPE_MISALIGNMENT (0x80000002L)
#define STATUS_BREAKPOINT (0x80000003L)
#define STATUS_SINGLE_STEP (0x80000004L)
#define STATUS_LONGJUMP (0x80000026L)
#define STATUS_UNWIND_CONSOLIDATE (0x80000029L)
#define DBG_EXCEPTION_NOT_HANDLED (0x80010001L)
#define STATUS_ACCESS_VIOLATION (0xC0000005L)
#define STATUS_IN_PAGE_ERROR (0xC0000006L)
#define STATUS_INVALID_HANDLE (0xC0000008L)
#define STATUS_INVALID_PARAMETER (0xC000000DL)
#define STATUS_NO_MEMORY (0xC0000017L)
#define STATUS_ILLEGAL_INSTRUCTION (0xC000001DL)
#define STATUS_NONCONTINUABLE_EXCEPTION (0xC0000025L)
#define STATUS_INVALID_DISPOSITION (0xC0000026L)
#define STATUS_ARRAY_BOUNDS_EXCEEDED (0xC000008CL)
#define STATUS_FLOAT_DENORMAL_OPERAND (0xC000008DL)
#define STATUS_FLOAT_DIVIDE_BY_ZERO (0xC000008EL)
#define STATUS_FLOAT_INEXACT_RESULT (0xC000008FL)
#define STATUS_FLOAT_INVALID_OPERATION (0xC0000090L)
#define STATUS_FLOAT_OVERFLOW (0xC0000091L)
#define STATUS_FLOAT_STACK_CHECK (0xC0000092L)
#define STATUS_FLOAT_UNDERFLOW (0xC0000093L)
#define STATUS_INTEGER_DIVIDE_BY_ZERO (0xC0000094L)
#define STATUS_INTEGER_OVERFLOW (0xC0000095L)
#define STATUS_PRIVILEGED_INSTRUCTION (0xC0000096L)
#define STATUS_STACK_OVERFLOW (0xC00000FDL)
#define STATUS_DLL_NOT_FOUND (0xC0000135L)
#define STATUS_ORDINAL_NOT_FOUND (0xC0000138L)
#define STATUS_ENTRYPOINT_NOT_FOUND (0xC0000139L)
#define STATUS_CONTROL_C_EXIT (0xC000013AL)
#define STATUS_DLL_INIT_FAILED (0xC0000142L)
#define STATUS_FLOAT_MULTIPLE_FAULTS (0xC00002B4L)
#define STATUS_FLOAT_MULTIPLE_TRAPS (0xC00002B5L)
#define STATUS_REG_NAT_CONSUMPTION (0xC00002C9L)
#define STATUS_STACK_BUFFER_OVERRUN (0xC0000409L)
#define STATUS_INVALID_CRUNTIME_PARAMETER (0xC0000417L)
#define STATUS_ASSERTION_FAILURE (0xC0000420L)
#define STATUS_POSSIBLE_DEADLOCK (0xC0000194)
#define WAIT_IO_COMPLETION STATUS_USER_APC
#define STILL_ACTIVE STATUS_PENDING
@@ -334,89 +279,6 @@
#define EXCEPTION_MAXIMUM_PARAMETERS 15
#define STATUS_WAIT_0 (0x00000000)
#define STATUS_ABANDONED_WAIT_0 (0x00000080)
#define STATUS_USER_APC (0x000000C0)
#define STATUS_TIMEOUT (0x00000102)
#define STATUS_PENDING (0x00000103)
#define DBG_EXCEPTION_HANDLED (0x00010001)
#define DBG_CONTINUE (0x00010002)
#define STATUS_SEGMENT_NOTIFICATION (0x40000005)
#define DBG_TERMINATE_THREAD (0x40010003)
#define DBG_TERMINATE_PROCESS (0x40010004)
#define DBG_CONTROL_C (0x40010005)
#define DBG_PRINTEXCEPTION_C (0x40010006)
#define DBG_RIPEXCEPTION (0x40010007)
#define DBG_CONTROL_BREAK (0x40010008)
#define DBG_COMMAND_EXCEPTION (0x40010009)
#define STATUS_GUARD_PAGE_VIOLATION (0x80000001)
#define STATUS_DATATYPE_MISALIGNMENT (0x80000002)
#define STATUS_BREAKPOINT (0x80000003)
#define STATUS_SINGLE_STEP (0x80000004)
#define STATUS_LONGJUMP (0x80000026)
#define STATUS_UNWIND_CONSOLIDATE (0x80000029)
#define DBG_EXCEPTION_NOT_HANDLED (0x80010001)
#define STATUS_ACCESS_VIOLATION (0xC0000005)
#define STATUS_IN_PAGE_ERROR (0xC0000006)
#define STATUS_INVALID_HANDLE (0xC0000008)
#define STATUS_INVALID_PARAMETER (0xC000000D)
#define STATUS_NO_MEMORY (0xC0000017)
#define STATUS_ILLEGAL_INSTRUCTION (0xC000001D)
#define STATUS_NONCONTINUABLE_EXCEPTION (0xC0000025)
#define STATUS_INVALID_DISPOSITION (0xC0000026)
#define STATUS_ARRAY_BOUNDS_EXCEEDED (0xC000008C)
#define STATUS_FLOAT_DENORMAL_OPERAND (0xC000008D)
#define STATUS_FLOAT_DIVIDE_BY_ZERO (0xC000008E)
#define STATUS_FLOAT_INEXACT_RESULT (0xC000008F)
#define STATUS_FLOAT_INVALID_OPERATION (0xC0000090)
#define STATUS_FLOAT_OVERFLOW (0xC0000091)
#define STATUS_FLOAT_STACK_CHECK (0xC0000092)
#define STATUS_FLOAT_UNDERFLOW (0xC0000093)
#define STATUS_INTEGER_DIVIDE_BY_ZERO (0xC0000094)
#define STATUS_INTEGER_OVERFLOW (0xC0000095)
#define STATUS_PRIVILEGED_INSTRUCTION (0xC0000096)
#define STATUS_STACK_OVERFLOW (0xC00000FD)
#define STATUS_DLL_NOT_FOUND (0xC0000135)
#define STATUS_ORDINAL_NOT_FOUND (0xC0000138)
#define STATUS_ENTRYPOINT_NOT_FOUND (0xC0000139)
#define STATUS_CONTROL_C_EXIT (0xC000013A)
#define STATUS_DLL_INIT_FAILED (0xC0000142)
#define STATUS_FLOAT_MULTIPLE_FAULTS (0xC00002B4)
#define STATUS_FLOAT_MULTIPLE_TRAPS (0xC00002B5)
#define STATUS_REG_NAT_CONSUMPTION (0xC00002C9)
#define STATUS_STACK_BUFFER_OVERRUN (0xC0000409)
#define STATUS_INVALID_CRUNTIME_PARAMETER (0xC0000417)
#define STATUS_ASSERTION_FAILURE (0xC0000420)
#define WAIT_IO_COMPLETION STATUS_USER_APC
#define STILL_ACTIVE STATUS_PENDING
#define EXCEPTION_ACCESS_VIOLATION STATUS_ACCESS_VIOLATION
#define EXCEPTION_DATATYPE_MISALIGNMENT STATUS_DATATYPE_MISALIGNMENT
#define EXCEPTION_BREAKPOINT STATUS_BREAKPOINT
#define EXCEPTION_SINGLE_STEP STATUS_SINGLE_STEP
#define EXCEPTION_ARRAY_BOUNDS_EXCEEDED STATUS_ARRAY_BOUNDS_EXCEEDED
#define EXCEPTION_FLT_DENORMAL_OPERAND STATUS_FLOAT_DENORMAL_OPERAND
#define EXCEPTION_FLT_DIVIDE_BY_ZERO STATUS_FLOAT_DIVIDE_BY_ZERO
#define EXCEPTION_FLT_INEXACT_RESULT STATUS_FLOAT_INEXACT_RESULT
#define EXCEPTION_FLT_INVALID_OPERATION STATUS_FLOAT_INVALID_OPERATION
#define EXCEPTION_FLT_OVERFLOW STATUS_FLOAT_OVERFLOW
#define EXCEPTION_FLT_STACK_CHECK STATUS_FLOAT_STACK_CHECK
#define EXCEPTION_FLT_UNDERFLOW STATUS_FLOAT_UNDERFLOW
#define EXCEPTION_INT_DIVIDE_BY_ZERO STATUS_INTEGER_DIVIDE_BY_ZERO
#define EXCEPTION_INT_OVERFLOW STATUS_INTEGER_OVERFLOW
#define EXCEPTION_PRIV_INSTRUCTION STATUS_PRIVILEGED_INSTRUCTION
#define EXCEPTION_IN_PAGE_ERROR STATUS_IN_PAGE_ERROR
#define EXCEPTION_ILLEGAL_INSTRUCTION STATUS_ILLEGAL_INSTRUCTION
#define EXCEPTION_NONCONTINUABLE_EXCEPTION STATUS_NONCONTINUABLE_EXCEPTION
#define EXCEPTION_STACK_OVERFLOW STATUS_STACK_OVERFLOW
#define EXCEPTION_INVALID_DISPOSITION STATUS_INVALID_DISPOSITION
#define EXCEPTION_GUARD_PAGE STATUS_GUARD_PAGE_VIOLATION
#define EXCEPTION_INVALID_HANDLE STATUS_INVALID_HANDLE
#define EXCEPTION_POSSIBLE_DEADLOCK STATUS_POSSIBLE_DEADLOCK
#define CONTROL_C_EXIT STATUS_CONTROL_C_EXIT
#define EXCEPTION_EXECUTE_HANDLER 1
#define EXCEPTION_CONTINUE_SEARCH 0
#define EXCEPTION_CONTINUE_EXECUTION -1
@@ -540,11 +402,8 @@
#define KEY_EXECUTE ((KEY_READ)&(~SYNCHRONIZE))
#define 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))
#define STATUS_INFO_LENGTH_MISMATCH (0xC0000004L)
#define ERROR_NOT_ALL_ASSIGNED 1300
#define S_OK 0
#define S_FALSE 1
#define E_NOINTERFACE 0x80004002
+81 -1
View File
@@ -251,6 +251,14 @@ class InitialDefGenerator(CtypesGenerator):
print("<{0}> generated".format(self.outfilename))
return ctypes_code
def generate_doc(self, target_file):
all_lines = [".. currentmodule:: windows.generated_def\n"
"Windef\n"
"------\n"]
all_lines += [".. autodata:: {windef.name}\n".format(windef=windef) for windef in self.parse()]
with open(target_file, "w") as f:
f.writelines(all_lines)
class StructGenerator(CtypesGenerator):
PARSER = struct_parser.WinStructParser
IMPORT_HEADER = dedent ("""
@@ -338,6 +346,41 @@ class StructGenerator(CtypesGenerator):
self.analyse(self.data)
self.check_dependances()
def generate_doc(self, target_file):
all_lines = [".. currentmodule:: windows.generated_def\n"
"Winstructs\n"
"----------\n"]
structs, enums = self.parse()
for struct in structs:
all_lines.append("{0}\n{1}\n".format(struct.name, "-" * len(struct.name)))
for name, type in struct.typedef.items():
all_lines.append(".. class:: {0}\n\n".format(name))
if hasattr(type, "type"):
all_lines.append(" Pointer to :class:`{0}`\n\n".format(type.type.name))
else:
all_lines.append(" Alias for :class:`{0}`\n\n".format(type.name))
all_lines.append(".. class:: {0}\n".format(struct.name))
for ftype, fname, nb in struct.fields:
array_str = " ``[{nb}]``".format(nb=nb) if nb > 1 else ""
all_lines.append("\n .. attribute:: {0}\n\n :class:`{1}`{2}\n\n".format(fname, ftype.name, array_str))
for enum in enums:
all_lines.append("{0}\n{1}\n".format(enum.name, "-" * len(enum.name)))
for name, type in enum.typedef.items():
all_lines.append(".. class:: {0}\n\n".format(name))
if hasattr(type, "type"):
all_lines.append(" Pointer to :class:`{0}`\n\n".format(type.type.name))
else:
all_lines.append(" Alias for :class:`{0}`\n\n".format(type.name))
all_lines.append(".. class:: {0}\n\n".format(enum.name))
for enum_value, enum_name in enum.fields:
all_lines.append("\n .. attribute:: {0}({1})\n\n".format(enum_name, enum_value))
with open(target_file, "w") as f:
f.writelines(all_lines)
class FuncGenerator(CtypesGenerator):
PARSER = func_parser.WinFuncParser
IMPORT_HEADER = dedent ("""
@@ -436,6 +479,14 @@ class NtStatusGenerator(CtypesGenerator):
print("<{0}> generated".format(self.outfilename))
return ctypes_code
def generate_doc(self, target_file):
all_lines = [".. currentmodule:: windows.generated_def\n"
"Ntstatus\n"
"--------\n"]
all_lines += [".. autodata:: {nstatus_name}\n".format(nstatus_name=nstatus[1]) for nstatus in self.parse()]
with open(target_file, "w") as f:
f.writelines(all_lines)
class InitialCOMGenerator(CtypesGenerator):
PARSER = com_parser.WinComParser
@@ -742,10 +793,39 @@ functions.append_input_file(from_here("definitions\\wintrust_crypt_func.txt"))
com = InitialCOMGenerator(from_here("definitions\\com\\*.txt"), DEFAULT_INTERFACE_TO_IID, from_here(r"..\windows\generated_def\\interfaces.py"), dependances=[structs, defs_with_ntstatus])
# check for collision between ntstatus and defs_with_ntstatus
# Check for multiple define in defs_with_ntstatus
import collections
all_defs_names = [x.name for x in defs_with_ntstatus.parse()]
for name, nb in collections.Counter(all_defs_names).most_common():
if nb > 1:
print("Duplicated windef define: {0} ({1} defines)".format(name, nb))
if nb == 1:
break
all_ntstatus_names = [x[1] for x in ntstatus.parse()]
# Check for multiple define in ntstatus
for name, nb in collections.Counter(all_ntstatus_names).most_common():
if nb > 1:
print("Duplicated ntstatus define: {0} ({1} defines)".format(name, nb))
if nb == 1:
break
for collision_name in set(all_defs_names) & set(all_ntstatus_names):
print("Duplicated ntstatus + windef define: {0}".format(collision_name))
if __name__ == "__main__":
ntstatus.generate()
defs_with_ntstatus.generate()
structs.generate()
functions.generate()
com.generate()
com.generate()
print("Generating documentation")
ntstatus.generate_doc(from_here(r"..\docs\source\ntstatus_generated.rst"))
defs_with_ntstatus.generate_doc(from_here(r"..\docs\source\windef_generated.rst"))
structs.generate_doc(from_here(r"..\docs\source\winstructs_generated.rst"))
+27
View File
@@ -0,0 +1,27 @@
``windows.alpc`` -- Advanced Local Procedure Call
*************************************************
.. module:: windows.alpc
The :mod:`windows.alpc` module regroups the classes that permits to send and receive
ALPC messages over an ALPC port and the classes representing these messages.
ALPC Message
------------
.. autoclass:: AlpcMessage
.. autoclass:: AlpcMessagePort
.. autoclass:: MessageAttribute
ALPC client
-----------
.. autoclass:: AlpcClient
ALPC Server
-----------
.. autoclass:: AlpcServer
+3
View File
@@ -21,10 +21,13 @@ Contents:
debug.rst
com.rst
crypto.rst
alpc.rst
iat_hook.rst
wip.rst
internals.rst
sample.rst
windef.rst
testing.rst
Indices and tables
File diff suppressed because it is too large Load Diff
+21
View File
@@ -0,0 +1,21 @@
LOOL
****
.. module:: windows.generated_def
.. class:: windows.generated_def.IMAGE_FILE_HEADER
public name of :class:`windows.generated_def.winstructs._IMAGE_FILE_HEADER`
.. autoclass:: windows.generated_def.winstructs._PEB
.. autoclass:: windows.generated_def.winstructs._PEB_LDR_DATA
yolo :class:`windows.generated_def.ERROR_RXACT_STATE_CREATED`
:class:`windows.generated_def._ALPC_PORT_INFORMATION_CLASS`
:class:`windows.generated_def._ALPC_PORT_INFORMATION_CLASS.AlpcServerInformation`
+17
View File
@@ -0,0 +1,17 @@
Test generated !
****************
.. module:: windows.generated_def
List of flags definition in :mod:`windows.generated_def`.
Each one inherit from :class:`long` but embded the name of the define and can be used in place of :class:`int`/:class:`long` for context.
Contents:
.. toctree::
:maxdepth: 2
:numbered:
windef_generated.rst
ntstatus_generated.rst
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
-134
View File
@@ -143,60 +143,6 @@ 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)
STATUS_WAIT_0 = make_flag("STATUS_WAIT_0", ( 0x00000000 ))
STATUS_ABANDONED_WAIT_0 = make_flag("STATUS_ABANDONED_WAIT_0", ( 0x00000080 ))
STATUS_USER_APC = make_flag("STATUS_USER_APC", ( 0x000000C0 ))
STATUS_TIMEOUT = make_flag("STATUS_TIMEOUT", ( 0x00000102 ))
STATUS_PENDING = make_flag("STATUS_PENDING", ( 0x00000103 ))
DBG_EXCEPTION_HANDLED = make_flag("DBG_EXCEPTION_HANDLED", ( 0x00010001 ))
DBG_CONTINUE = make_flag("DBG_CONTINUE", ( 0x00010002 ))
STATUS_SEGMENT_NOTIFICATION = make_flag("STATUS_SEGMENT_NOTIFICATION", ( 0x40000005 ))
DBG_TERMINATE_THREAD = make_flag("DBG_TERMINATE_THREAD", ( 0x40010003 ))
DBG_TERMINATE_PROCESS = make_flag("DBG_TERMINATE_PROCESS", ( 0x40010004 ))
DBG_CONTROL_C = make_flag("DBG_CONTROL_C", ( 0x40010005 ))
DBG_PRINTEXCEPTION_C = make_flag("DBG_PRINTEXCEPTION_C", ( 0x40010006 ))
DBG_RIPEXCEPTION = make_flag("DBG_RIPEXCEPTION", ( 0x40010007 ))
DBG_CONTROL_BREAK = make_flag("DBG_CONTROL_BREAK", ( 0x40010008 ))
DBG_COMMAND_EXCEPTION = make_flag("DBG_COMMAND_EXCEPTION", ( 0x40010009 ))
STATUS_GUARD_PAGE_VIOLATION = make_flag("STATUS_GUARD_PAGE_VIOLATION", ( 0x80000001 ))
STATUS_DATATYPE_MISALIGNMENT = make_flag("STATUS_DATATYPE_MISALIGNMENT", ( 0x80000002 ))
STATUS_BREAKPOINT = make_flag("STATUS_BREAKPOINT", ( 0x80000003 ))
STATUS_SINGLE_STEP = make_flag("STATUS_SINGLE_STEP", ( 0x80000004 ))
STATUS_LONGJUMP = make_flag("STATUS_LONGJUMP", ( 0x80000026 ))
STATUS_UNWIND_CONSOLIDATE = make_flag("STATUS_UNWIND_CONSOLIDATE", ( 0x80000029 ))
DBG_EXCEPTION_NOT_HANDLED = make_flag("DBG_EXCEPTION_NOT_HANDLED", ( 0x80010001 ))
STATUS_ACCESS_VIOLATION = make_flag("STATUS_ACCESS_VIOLATION", ( 0xC0000005 ))
STATUS_IN_PAGE_ERROR = make_flag("STATUS_IN_PAGE_ERROR", ( 0xC0000006 ))
STATUS_INVALID_HANDLE = make_flag("STATUS_INVALID_HANDLE", ( 0xC0000008 ))
STATUS_INVALID_PARAMETER = make_flag("STATUS_INVALID_PARAMETER", ( 0xC000000D ))
STATUS_NO_MEMORY = make_flag("STATUS_NO_MEMORY", ( 0xC0000017 ))
STATUS_ILLEGAL_INSTRUCTION = make_flag("STATUS_ILLEGAL_INSTRUCTION", ( 0xC000001D ))
STATUS_NONCONTINUABLE_EXCEPTION = make_flag("STATUS_NONCONTINUABLE_EXCEPTION", ( 0xC0000025 ))
STATUS_INVALID_DISPOSITION = make_flag("STATUS_INVALID_DISPOSITION", ( 0xC0000026 ))
STATUS_ARRAY_BOUNDS_EXCEEDED = make_flag("STATUS_ARRAY_BOUNDS_EXCEEDED", ( 0xC000008C ))
STATUS_FLOAT_DENORMAL_OPERAND = make_flag("STATUS_FLOAT_DENORMAL_OPERAND", ( 0xC000008D ))
STATUS_FLOAT_DIVIDE_BY_ZERO = make_flag("STATUS_FLOAT_DIVIDE_BY_ZERO", ( 0xC000008E ))
STATUS_FLOAT_INEXACT_RESULT = make_flag("STATUS_FLOAT_INEXACT_RESULT", ( 0xC000008F ))
STATUS_FLOAT_INVALID_OPERATION = make_flag("STATUS_FLOAT_INVALID_OPERATION", ( 0xC0000090 ))
STATUS_FLOAT_OVERFLOW = make_flag("STATUS_FLOAT_OVERFLOW", ( 0xC0000091 ))
STATUS_FLOAT_STACK_CHECK = make_flag("STATUS_FLOAT_STACK_CHECK", ( 0xC0000092 ))
STATUS_FLOAT_UNDERFLOW = make_flag("STATUS_FLOAT_UNDERFLOW", ( 0xC0000093 ))
STATUS_INTEGER_DIVIDE_BY_ZERO = make_flag("STATUS_INTEGER_DIVIDE_BY_ZERO", ( 0xC0000094 ))
STATUS_INTEGER_OVERFLOW = make_flag("STATUS_INTEGER_OVERFLOW", ( 0xC0000095 ))
STATUS_PRIVILEGED_INSTRUCTION = make_flag("STATUS_PRIVILEGED_INSTRUCTION", ( 0xC0000096 ))
STATUS_STACK_OVERFLOW = make_flag("STATUS_STACK_OVERFLOW", ( 0xC00000FD ))
STATUS_DLL_NOT_FOUND = make_flag("STATUS_DLL_NOT_FOUND", ( 0xC0000135 ))
STATUS_ORDINAL_NOT_FOUND = make_flag("STATUS_ORDINAL_NOT_FOUND", ( 0xC0000138 ))
STATUS_ENTRYPOINT_NOT_FOUND = make_flag("STATUS_ENTRYPOINT_NOT_FOUND", ( 0xC0000139 ))
STATUS_CONTROL_C_EXIT = make_flag("STATUS_CONTROL_C_EXIT", ( 0xC000013A ))
STATUS_DLL_INIT_FAILED = make_flag("STATUS_DLL_INIT_FAILED", ( 0xC0000142 ))
STATUS_FLOAT_MULTIPLE_FAULTS = make_flag("STATUS_FLOAT_MULTIPLE_FAULTS", ( 0xC00002B4 ))
STATUS_FLOAT_MULTIPLE_TRAPS = make_flag("STATUS_FLOAT_MULTIPLE_TRAPS", ( 0xC00002B5 ))
STATUS_REG_NAT_CONSUMPTION = make_flag("STATUS_REG_NAT_CONSUMPTION", ( 0xC00002C9 ))
STATUS_STACK_BUFFER_OVERRUN = make_flag("STATUS_STACK_BUFFER_OVERRUN", ( 0xC0000409 ))
STATUS_INVALID_CRUNTIME_PARAMETER = make_flag("STATUS_INVALID_CRUNTIME_PARAMETER", ( 0xC0000417 ))
STATUS_ASSERTION_FAILURE = make_flag("STATUS_ASSERTION_FAILURE", ( 0xC0000420 ))
STATUS_POSSIBLE_DEADLOCK = make_flag("STATUS_POSSIBLE_DEADLOCK", ( 0xC0000194 ))
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)
@@ -344,85 +290,6 @@ 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)
STATUS_WAIT_0 = make_flag("STATUS_WAIT_0", ( 0x00000000 ))
STATUS_ABANDONED_WAIT_0 = make_flag("STATUS_ABANDONED_WAIT_0", ( 0x00000080 ))
STATUS_USER_APC = make_flag("STATUS_USER_APC", ( 0x000000C0 ))
STATUS_TIMEOUT = make_flag("STATUS_TIMEOUT", ( 0x00000102 ))
STATUS_PENDING = make_flag("STATUS_PENDING", ( 0x00000103 ))
DBG_EXCEPTION_HANDLED = make_flag("DBG_EXCEPTION_HANDLED", ( 0x00010001 ))
DBG_CONTINUE = make_flag("DBG_CONTINUE", ( 0x00010002 ))
STATUS_SEGMENT_NOTIFICATION = make_flag("STATUS_SEGMENT_NOTIFICATION", ( 0x40000005 ))
DBG_TERMINATE_THREAD = make_flag("DBG_TERMINATE_THREAD", ( 0x40010003 ))
DBG_TERMINATE_PROCESS = make_flag("DBG_TERMINATE_PROCESS", ( 0x40010004 ))
DBG_CONTROL_C = make_flag("DBG_CONTROL_C", ( 0x40010005 ))
DBG_PRINTEXCEPTION_C = make_flag("DBG_PRINTEXCEPTION_C", ( 0x40010006 ))
DBG_RIPEXCEPTION = make_flag("DBG_RIPEXCEPTION", ( 0x40010007 ))
DBG_CONTROL_BREAK = make_flag("DBG_CONTROL_BREAK", ( 0x40010008 ))
DBG_COMMAND_EXCEPTION = make_flag("DBG_COMMAND_EXCEPTION", ( 0x40010009 ))
STATUS_GUARD_PAGE_VIOLATION = make_flag("STATUS_GUARD_PAGE_VIOLATION", ( 0x80000001 ))
STATUS_DATATYPE_MISALIGNMENT = make_flag("STATUS_DATATYPE_MISALIGNMENT", ( 0x80000002 ))
STATUS_BREAKPOINT = make_flag("STATUS_BREAKPOINT", ( 0x80000003 ))
STATUS_SINGLE_STEP = make_flag("STATUS_SINGLE_STEP", ( 0x80000004 ))
STATUS_LONGJUMP = make_flag("STATUS_LONGJUMP", ( 0x80000026 ))
STATUS_UNWIND_CONSOLIDATE = make_flag("STATUS_UNWIND_CONSOLIDATE", ( 0x80000029 ))
DBG_EXCEPTION_NOT_HANDLED = make_flag("DBG_EXCEPTION_NOT_HANDLED", ( 0x80010001 ))
STATUS_ACCESS_VIOLATION = make_flag("STATUS_ACCESS_VIOLATION", ( 0xC0000005 ))
STATUS_IN_PAGE_ERROR = make_flag("STATUS_IN_PAGE_ERROR", ( 0xC0000006 ))
STATUS_INVALID_HANDLE = make_flag("STATUS_INVALID_HANDLE", ( 0xC0000008 ))
STATUS_INVALID_PARAMETER = make_flag("STATUS_INVALID_PARAMETER", ( 0xC000000D ))
STATUS_NO_MEMORY = make_flag("STATUS_NO_MEMORY", ( 0xC0000017 ))
STATUS_ILLEGAL_INSTRUCTION = make_flag("STATUS_ILLEGAL_INSTRUCTION", ( 0xC000001D ))
STATUS_NONCONTINUABLE_EXCEPTION = make_flag("STATUS_NONCONTINUABLE_EXCEPTION", ( 0xC0000025 ))
STATUS_INVALID_DISPOSITION = make_flag("STATUS_INVALID_DISPOSITION", ( 0xC0000026 ))
STATUS_ARRAY_BOUNDS_EXCEEDED = make_flag("STATUS_ARRAY_BOUNDS_EXCEEDED", ( 0xC000008C ))
STATUS_FLOAT_DENORMAL_OPERAND = make_flag("STATUS_FLOAT_DENORMAL_OPERAND", ( 0xC000008D ))
STATUS_FLOAT_DIVIDE_BY_ZERO = make_flag("STATUS_FLOAT_DIVIDE_BY_ZERO", ( 0xC000008E ))
STATUS_FLOAT_INEXACT_RESULT = make_flag("STATUS_FLOAT_INEXACT_RESULT", ( 0xC000008F ))
STATUS_FLOAT_INVALID_OPERATION = make_flag("STATUS_FLOAT_INVALID_OPERATION", ( 0xC0000090 ))
STATUS_FLOAT_OVERFLOW = make_flag("STATUS_FLOAT_OVERFLOW", ( 0xC0000091 ))
STATUS_FLOAT_STACK_CHECK = make_flag("STATUS_FLOAT_STACK_CHECK", ( 0xC0000092 ))
STATUS_FLOAT_UNDERFLOW = make_flag("STATUS_FLOAT_UNDERFLOW", ( 0xC0000093 ))
STATUS_INTEGER_DIVIDE_BY_ZERO = make_flag("STATUS_INTEGER_DIVIDE_BY_ZERO", ( 0xC0000094 ))
STATUS_INTEGER_OVERFLOW = make_flag("STATUS_INTEGER_OVERFLOW", ( 0xC0000095 ))
STATUS_PRIVILEGED_INSTRUCTION = make_flag("STATUS_PRIVILEGED_INSTRUCTION", ( 0xC0000096 ))
STATUS_STACK_OVERFLOW = make_flag("STATUS_STACK_OVERFLOW", ( 0xC00000FD ))
STATUS_DLL_NOT_FOUND = make_flag("STATUS_DLL_NOT_FOUND", ( 0xC0000135 ))
STATUS_ORDINAL_NOT_FOUND = make_flag("STATUS_ORDINAL_NOT_FOUND", ( 0xC0000138 ))
STATUS_ENTRYPOINT_NOT_FOUND = make_flag("STATUS_ENTRYPOINT_NOT_FOUND", ( 0xC0000139 ))
STATUS_CONTROL_C_EXIT = make_flag("STATUS_CONTROL_C_EXIT", ( 0xC000013A ))
STATUS_DLL_INIT_FAILED = make_flag("STATUS_DLL_INIT_FAILED", ( 0xC0000142 ))
STATUS_FLOAT_MULTIPLE_FAULTS = make_flag("STATUS_FLOAT_MULTIPLE_FAULTS", ( 0xC00002B4 ))
STATUS_FLOAT_MULTIPLE_TRAPS = make_flag("STATUS_FLOAT_MULTIPLE_TRAPS", ( 0xC00002B5 ))
STATUS_REG_NAT_CONSUMPTION = make_flag("STATUS_REG_NAT_CONSUMPTION", ( 0xC00002C9 ))
STATUS_STACK_BUFFER_OVERRUN = make_flag("STATUS_STACK_BUFFER_OVERRUN", ( 0xC0000409 ))
STATUS_INVALID_CRUNTIME_PARAMETER = make_flag("STATUS_INVALID_CRUNTIME_PARAMETER", ( 0xC0000417 ))
STATUS_ASSERTION_FAILURE = make_flag("STATUS_ASSERTION_FAILURE", ( 0xC0000420 ))
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_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)
@@ -531,7 +398,6 @@ KEY_READ = make_flag("KEY_READ", ( ( STANDARD_RIGHTS_READ|KEY_QUERY_VALUE|KEY_EN
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 ) ))
STATUS_INFO_LENGTH_MISMATCH = make_flag("STATUS_INFO_LENGTH_MISMATCH", ( 0xC0000004 ))
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)