mirror of
https://github.com/hakril/PythonForWindows
synced 2026-06-08 14:31:45 +00:00
windows.com with a cleaner interface + use in wmi.pu
This commit is contained in:
@@ -18,7 +18,7 @@ class WinFunc(object):
|
||||
return self.generate_comment_ctypes() + "\n" + self.generate_prototype_ctypes() + "\n" + self.generate_paramflags_ctypes() + "\n"
|
||||
|
||||
def generate_comment_ctypes(self):
|
||||
model = "# {0}({1}):"
|
||||
model = "#def {0}({1}):\n# return {0}.ctypes_function({1})"
|
||||
ctypes_param = [name for type, name in self.params]
|
||||
ctypes_param_str = ", ".join(ctypes_param)
|
||||
return model.format(self.name, ctypes_param_str)
|
||||
|
||||
@@ -33,6 +33,8 @@ TYPE_EQUIVALENCE = [
|
||||
('CSHORT', 'c_short'),
|
||||
('VARTYPE', 'c_ushort'),
|
||||
('BSTR', 'c_wchar_p'),
|
||||
('OLECHAR', 'c_wchar'),
|
||||
('POLECHAR', 'c_wchar_p'),
|
||||
('PUCHAR', 'POINTER(UCHAR)'),
|
||||
('double', 'c_double'),
|
||||
('FARPROC', 'PVOID'),
|
||||
@@ -62,6 +64,8 @@ TYPE_EQUIVALENCE = [
|
||||
('SECURITY_CONTEXT_TRACKING_MODE', 'BOOLEAN'),
|
||||
("DISPID", "LONG"),
|
||||
("MEMBERID", "DISPID"),
|
||||
('PSECURITY_DESCRIPTOR', 'PVOID'),
|
||||
('LPUNKNOWN', 'POINTER(PVOID)'),
|
||||
# Will be changed at import time
|
||||
('LPCONTEXT', 'PVOID'),
|
||||
('HCERTSTORE', 'PVOID'),
|
||||
|
||||
@@ -867,4 +867,27 @@
|
||||
#define SM_REMOTESESSION 0x1000
|
||||
#define SM_SHUTTINGDOWN 0x2000
|
||||
#define SM_REMOTECONTROL 0x2001
|
||||
#define SM_CARETBLINKINGENABLED 0x2002
|
||||
#define SM_CARETBLINKINGENABLED 0x2002
|
||||
|
||||
|
||||
#define RPC_C_AUTHN_LEVEL_DEFAULT 0
|
||||
#define RPC_C_AUTHN_LEVEL_NONE 1
|
||||
#define RPC_C_AUTHN_LEVEL_CONNECT 2
|
||||
#define RPC_C_AUTHN_LEVEL_CALL 3
|
||||
#define RPC_C_AUTHN_LEVEL_PKT 4
|
||||
#define RPC_C_AUTHN_LEVEL_PKT_INTEGRITY 5
|
||||
#define RPC_C_AUTHN_LEVEL_PKT_PRIVACY 6
|
||||
|
||||
#define RPC_C_IMP_LEVEL_DEFAULT 0
|
||||
#define RPC_C_IMP_LEVEL_ANONYMOUS 1
|
||||
#define RPC_C_IMP_LEVEL_IDENTIFY 2
|
||||
#define RPC_C_IMP_LEVEL_IMPERSONATE 3
|
||||
#define RPC_C_IMP_LEVEL_DELEGATE 4
|
||||
|
||||
#define RPC_C_QOS_IDENTITY_STATIC 0
|
||||
#define RPC_C_QOS_IDENTITY_DYNAMIC 1
|
||||
|
||||
#define RPC_C_QOS_CAPABILITIES_DEFAULT 0x0
|
||||
#define RPC_C_QOS_CAPABILITIES_MUTUAL_AUTH 0x1
|
||||
#define RPC_C_QOS_CAPABILITIES_MAKE_FULLSIC 0x2
|
||||
#define RPC_C_QOS_CAPABILITIES_ANY_AUTHORITY 0x4
|
||||
@@ -1155,4 +1155,29 @@ BOOL WINAPI LookupAccountSidW(
|
||||
_Out_opt_ LPWSTR lpReferencedDomainName,
|
||||
_Inout_ LPDWORD cchReferencedDomainName,
|
||||
_Out_ PSID_NAME_USE peUse
|
||||
);
|
||||
|
||||
HRESULT WINAPI CoInitializeEx(
|
||||
_In_opt_ LPVOID pvReserved,
|
||||
_In_ DWORD dwCoInit
|
||||
);
|
||||
|
||||
HRESULT WINAPI CoInitializeSecurity(
|
||||
_In_opt_ PSECURITY_DESCRIPTOR pSecDesc,
|
||||
_In_ LONG cAuthSvc,
|
||||
_In_opt_ SOLE_AUTHENTICATION_SERVICE *asAuthSvc,
|
||||
_In_opt_ PVOID pReserved1,
|
||||
_In_ DWORD dwAuthnLevel,
|
||||
_In_ DWORD dwImpLevel,
|
||||
_In_opt_ PVOID pAuthList,
|
||||
_In_ DWORD dwCapabilities,
|
||||
_In_opt_ PVOID pReserved3
|
||||
);
|
||||
|
||||
HRESULT WINAPI CoCreateInstance(
|
||||
_In_ REFCLSID rclsid,
|
||||
_In_ LPUNKNOWN pUnkOuter,
|
||||
_In_ DWORD dwClsContext,
|
||||
_In_ REFIID riid,
|
||||
_Out_ LPVOID *ppv
|
||||
);
|
||||
@@ -585,6 +585,33 @@ typedef enum tag_WBEMSTATUS {
|
||||
WBEMMOF_E_INVALID_DELETECLASS_SYNTAX = 0x80044031
|
||||
} WBEMSTATUS;
|
||||
|
||||
typedef enum tagCLSCTX {
|
||||
CLSCTX_INPROC_SERVER = 0x1,
|
||||
CLSCTX_INPROC_HANDLER = 0x2,
|
||||
CLSCTX_LOCAL_SERVER = 0x4,
|
||||
CLSCTX_INPROC_SERVER16 = 0x8,
|
||||
CLSCTX_REMOTE_SERVER = 0x10,
|
||||
CLSCTX_INPROC_HANDLER16 = 0x20,
|
||||
CLSCTX_RESERVED1 = 0x40,
|
||||
CLSCTX_RESERVED2 = 0x80,
|
||||
CLSCTX_RESERVED3 = 0x100,
|
||||
CLSCTX_RESERVED4 = 0x200,
|
||||
CLSCTX_NO_CODE_DOWNLOAD = 0x400,
|
||||
CLSCTX_RESERVED5 = 0x800,
|
||||
CLSCTX_NO_CUSTOM_MARSHAL = 0x1000,
|
||||
CLSCTX_ENABLE_CODE_DOWNLOAD = 0x2000,
|
||||
CLSCTX_NO_FAILURE_LOG = 0x4000,
|
||||
CLSCTX_DISABLE_AAA = 0x8000,
|
||||
CLSCTX_ENABLE_AAA = 0x10000,
|
||||
CLSCTX_FROM_DEFAULT_CONTEXT = 0x20000,
|
||||
CLSCTX_ACTIVATE_32_BIT_SERVER = 0x40000,
|
||||
CLSCTX_ACTIVATE_64_BIT_SERVER = 0x80000,
|
||||
CLSCTX_ENABLE_CLOAKING = 0x100000,
|
||||
CLSCTX_APPCONTAINER = 0x400000,
|
||||
CLSCTX_ACTIVATE_AAA_AS_IU = 0x800000,
|
||||
CLSCTX_PS_DLL = 0x80000000
|
||||
} CLSCTX;
|
||||
|
||||
typedef struct _LDR_DATA_TABLE_ENTRY {
|
||||
PVOID Reserved1[2];
|
||||
LIST_ENTRY InMemoryOrderLinks;
|
||||
@@ -1495,12 +1522,19 @@ typedef enum _PROCESSINFOCLASS {
|
||||
ProcessWow64Information = 26
|
||||
} PROCESSINFOCLASS;
|
||||
|
||||
typedef enum tagCOINIT {
|
||||
COINIT_APARTMENTTHREADED = 0x2,
|
||||
COINIT_MULTITHREADED = 0x0,
|
||||
COINIT_DISABLE_OLE1DDE = 0x4,
|
||||
COINIT_SPEED_OVER_MEMORY = 0x8
|
||||
} COINIT;
|
||||
|
||||
typedef struct _GUID {
|
||||
ULONG Data1;
|
||||
USHORT Data2;
|
||||
USHORT Data3;
|
||||
BYTE Data4[ 8 ];
|
||||
} GUID, IID, *REFIID;
|
||||
} GUID, IID, *REFIID, *REFCLSID;
|
||||
|
||||
|
||||
|
||||
@@ -2140,3 +2174,9 @@ typedef struct _PUBLIC_OBJECT_BASIC_INFORMATION {
|
||||
DWORD DataOffset;
|
||||
} EVENTLOGRECORD, *PEVENTLOGRECORD;
|
||||
|
||||
typedef struct tagSOLE_AUTHENTICATION_SERVICE {
|
||||
DWORD dwAuthnSvc;
|
||||
DWORD dwAuthzSvc;
|
||||
OLECHAR *pPrincipalName;
|
||||
HRESULT hr;
|
||||
} SOLE_AUTHENTICATION_SERVICE, *PSOLE_AUTHENTICATION_SERVICE;
|
||||
+17
-1
@@ -1,8 +1,10 @@
|
||||
import struct
|
||||
import ctypes
|
||||
import functools
|
||||
from ctypes.wintypes import HRESULT
|
||||
from ctypes.wintypes import HRESULT, byref, pointer
|
||||
|
||||
from windows import winproxy
|
||||
from windows.generated_def import RPC_C_IMP_LEVEL_IMPERSONATE, CLSCTX_INPROC_SERVER
|
||||
from windows.generated_def import interfaces
|
||||
from windows.generated_def.interfaces import generate_IID, IID
|
||||
|
||||
@@ -15,6 +17,20 @@ def create_c_callable(func, types, keepalive=[]):
|
||||
keepalive.append(c_callable)
|
||||
return c_callback_addr
|
||||
|
||||
def init():
|
||||
t = winproxy.CoInitializeEx()
|
||||
if t:
|
||||
return t
|
||||
return winproxy.CoInitializeSecurity(0, -1, None, 0, 0, RPC_C_IMP_LEVEL_IMPERSONATE, 0,0,0)
|
||||
|
||||
def create_instance(clsiid, targetinterface, custom_iid=None):
|
||||
if custom_iid is None:
|
||||
custom_iid = targetinterface.IID
|
||||
return winproxy.CoCreateInstance(byref(clsiid), None, CLSCTX_INPROC_SERVER, byref(custom_iid), byref(targetinterface))
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
class ComVtable(object):
|
||||
# Name, types
|
||||
|
||||
@@ -36,11 +36,13 @@ else:
|
||||
|
||||
from . import winfuncs
|
||||
from . import windef
|
||||
from . import interfaces
|
||||
|
||||
# Fuck it
|
||||
from winstructs import *
|
||||
from winfuncs import *
|
||||
from windef import *
|
||||
from interfaces import *
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -2576,4 +2576,22 @@ SM_MAXIMUMTOUCHES = Flag("SM_MAXIMUMTOUCHES", 95)
|
||||
SM_REMOTESESSION = Flag("SM_REMOTESESSION", 0x1000)
|
||||
SM_SHUTTINGDOWN = Flag("SM_SHUTTINGDOWN", 0x2000)
|
||||
SM_REMOTECONTROL = Flag("SM_REMOTECONTROL", 0x2001)
|
||||
SM_CARETBLINKINGENABLED = Flag("SM_CARETBLINKINGENABLED", 0x2002)
|
||||
SM_CARETBLINKINGENABLED = Flag("SM_CARETBLINKINGENABLED", 0x2002)
|
||||
RPC_C_AUTHN_LEVEL_DEFAULT = Flag("RPC_C_AUTHN_LEVEL_DEFAULT", 0)
|
||||
RPC_C_AUTHN_LEVEL_NONE = Flag("RPC_C_AUTHN_LEVEL_NONE", 1)
|
||||
RPC_C_AUTHN_LEVEL_CONNECT = Flag("RPC_C_AUTHN_LEVEL_CONNECT", 2)
|
||||
RPC_C_AUTHN_LEVEL_CALL = Flag("RPC_C_AUTHN_LEVEL_CALL", 3)
|
||||
RPC_C_AUTHN_LEVEL_PKT = Flag("RPC_C_AUTHN_LEVEL_PKT", 4)
|
||||
RPC_C_AUTHN_LEVEL_PKT_INTEGRITY = Flag("RPC_C_AUTHN_LEVEL_PKT_INTEGRITY", 5)
|
||||
RPC_C_AUTHN_LEVEL_PKT_PRIVACY = Flag("RPC_C_AUTHN_LEVEL_PKT_PRIVACY", 6)
|
||||
RPC_C_IMP_LEVEL_DEFAULT = Flag("RPC_C_IMP_LEVEL_DEFAULT", 0)
|
||||
RPC_C_IMP_LEVEL_ANONYMOUS = Flag("RPC_C_IMP_LEVEL_ANONYMOUS", 1)
|
||||
RPC_C_IMP_LEVEL_IDENTIFY = Flag("RPC_C_IMP_LEVEL_IDENTIFY", 2)
|
||||
RPC_C_IMP_LEVEL_IMPERSONATE = Flag("RPC_C_IMP_LEVEL_IMPERSONATE", 3)
|
||||
RPC_C_IMP_LEVEL_DELEGATE = Flag("RPC_C_IMP_LEVEL_DELEGATE", 4)
|
||||
RPC_C_QOS_IDENTITY_STATIC = Flag("RPC_C_QOS_IDENTITY_STATIC", 0)
|
||||
RPC_C_QOS_IDENTITY_DYNAMIC = Flag("RPC_C_QOS_IDENTITY_DYNAMIC", 1)
|
||||
RPC_C_QOS_CAPABILITIES_DEFAULT = Flag("RPC_C_QOS_CAPABILITIES_DEFAULT", 0x0)
|
||||
RPC_C_QOS_CAPABILITIES_MUTUAL_AUTH = Flag("RPC_C_QOS_CAPABILITIES_MUTUAL_AUTH", 0x1)
|
||||
RPC_C_QOS_CAPABILITIES_MAKE_FULLSIC = Flag("RPC_C_QOS_CAPABILITIES_MAKE_FULLSIC", 0x2)
|
||||
RPC_C_QOS_CAPABILITIES_ANY_AUTHORITY = Flag("RPC_C_QOS_CAPABILITIES_ANY_AUTHORITY", 0x4)
|
||||
+390
-188
File diff suppressed because it is too large
Load Diff
@@ -23,6 +23,8 @@ UCHAR = c_char
|
||||
CSHORT = c_short
|
||||
VARTYPE = c_ushort
|
||||
BSTR = c_wchar_p
|
||||
OLECHAR = c_wchar
|
||||
POLECHAR = c_wchar_p
|
||||
PUCHAR = POINTER(UCHAR)
|
||||
double = c_double
|
||||
FARPROC = PVOID
|
||||
@@ -51,6 +53,8 @@ REGSAM = ACCESS_MASK
|
||||
SECURITY_CONTEXT_TRACKING_MODE = BOOLEAN
|
||||
DISPID = LONG
|
||||
MEMBERID = DISPID
|
||||
PSECURITY_DESCRIPTOR = PVOID
|
||||
LPUNKNOWN = POINTER(PVOID)
|
||||
LPCONTEXT = PVOID
|
||||
HCERTSTORE = PVOID
|
||||
HCRYPTMSG = PVOID
|
||||
@@ -58,9 +62,9 @@ PALPC_PORT_ATTRIBUTES = PVOID
|
||||
VOID = DWORD
|
||||
ITypeInfo = PVOID
|
||||
|
||||
structs = ['_LIST_ENTRY', '_PEB_LDR_DATA', '_LSA_UNICODE_STRING', '_RTL_USER_PROCESS_PARAMETERS', '_PEB', '_SECURITY_ATTRIBUTES', '_SYSTEM_VERIFIER_INFORMATION', '_LDR_DATA_TABLE_ENTRY', '_IMAGE_FILE_HEADER', '_IMAGE_DATA_DIRECTORY', '_IMAGE_SECTION_HEADER', '_IMAGE_OPTIONAL_HEADER64', '_IMAGE_OPTIONAL_HEADER', '_IMAGE_NT_HEADERS64', '_IMAGE_NT_HEADERS', '_IMAGE_IMPORT_DESCRIPTOR', '_IMAGE_IMPORT_BY_NAME', '_IMAGE_EXPORT_DIRECTORY', '_MEMORY_BASIC_INFORMATION', '_MEMORY_BASIC_INFORMATION32', '_MEMORY_BASIC_INFORMATION64', '_STARTUPINFOA', '_STARTUPINFOW', '_PROCESS_INFORMATION', '_FLOATING_SAVE_AREA', '_CONTEXT32', '_WOW64_FLOATING_SAVE_AREA', '_WOW64_CONTEXT', '_M128A', '_CONTEXT64', 'tagPROCESSENTRY32W', 'tagPROCESSENTRY32', 'tagTHREADENTRY32', '_LUID', '_LUID_AND_ATTRIBUTES', '_TOKEN_PRIVILEGES', '_TOKEN_ELEVATION', '_SID_AND_ATTRIBUTES', '_TOKEN_MANDATORY_LABEL', '_TOKEN_USER', '_OSVERSIONINFOA', '_OSVERSIONINFOW', '_OSVERSIONINFOEXA', '_OSVERSIONINFOEXW', '_OVERLAPPED', '_MIB_TCPROW_OWNER_PID', '_MIB_TCPTABLE_OWNER_PID', '_MIB_UDPROW_OWNER_PID', '_MIB_UDPTABLE_OWNER_PID', '_MIB_UDP6ROW_OWNER_PID', '_MIB_UDP6TABLE_OWNER_PID', '_MIB_TCP6ROW_OWNER_PID', '_MIB_TCP6TABLE_OWNER_PID', '_MIB_TCPROW', '_EXCEPTION_RECORD', '_EXCEPTION_RECORD32', '_EXCEPTION_RECORD64', '_EXCEPTION_POINTERS64', '_EXCEPTION_POINTERS32', '_DEBUG_PROCESSOR_IDENTIFICATION_ALPHA', '_DEBUG_PROCESSOR_IDENTIFICATION_AMD64', '_DEBUG_PROCESSOR_IDENTIFICATION_IA64', '_DEBUG_PROCESSOR_IDENTIFICATION_X86', '_DEBUG_PROCESSOR_IDENTIFICATION_ARM', '_DEBUG_PROCESSOR_IDENTIFICATION_ALL', '_SYMBOL_INFO', '_MODLOAD_DATA', '_SYSTEM_MODULE32', '_SYSTEM_MODULE64', '_SYSTEM_MODULE_INFORMATION32', '_SYSTEM_MODULE_INFORMATION64', 'tagSAFEARRAYBOUND', 'tagSAFEARRAY', '_DEBUG_BREAKPOINT_PARAMETERS', '_DEBUG_REGISTER_DESCRIPTION', '_DEBUG_STACK_FRAME', '_DEBUG_LAST_EVENT_INFO_BREAKPOINT', '_DEBUG_LAST_EVENT_INFO_EXCEPTION', '_DEBUG_LAST_EVENT_INFO_EXIT_THREAD', '_DEBUG_LAST_EVENT_INFO_EXIT_PROCESS', '_DEBUG_LAST_EVENT_INFO_LOAD_MODULE', '_DEBUG_LAST_EVENT_INFO_UNLOAD_MODULE', '_DEBUG_LAST_EVENT_INFO_SYSTEM_ERROR', '_DEBUG_SPECIFIC_FILTER_PARAMETERS', '_DEBUG_EXCEPTION_FILTER_PARAMETERS', '_GUID', '_TMP_signscale', '_TMP_lowmid', 'TMP_signscale_union', 'TMP_lowmid_union', 'tagDEC', '__tagBRECORD', 'TMP_variant_sub_union', '__tagVARIANT', 'tagDISPPARAMS', 'tagEXCEPINFO', '_CRYPTOAPI_BLOB', 'WINTRUST_FILE_INFO_', '_CRYPT_ATTRIBUTE', '_CTL_ENTRY', '_CRYPT_ATTRIBUTE', '_CRYPT_ATTRIBUTES', '_CRYPT_ALGORITHM_IDENTIFIER', '_CMSG_SIGNER_INFO', '_CERT_EXTENSION', '_CTL_USAGE', '_CTL_INFO', '_CTL_CONTEXT', 'WINTRUST_CATALOG_INFO_', 'WINTRUST_BLOB_INFO_', '_CRYPT_BIT_BLOB', '_CERT_PUBLIC_KEY_INFO', '_CERT_INFO', '_CERT_CONTEXT', 'WINTRUST_SGNR_INFO_', '_FILETIME', 'WINTRUST_CERT_INFO_', '_TMP_WINTRUST_UNION_TYPE', '_WINTRUST_DATA', '_PROCESS_BASIC_INFORMATION', '_JIT_DEBUG_INFO', '_SID_IDENTIFIER_AUTHORITY', '_EXCEPTION_DEBUG_INFO', '_CREATE_THREAD_DEBUG_INFO', '_CREATE_PROCESS_DEBUG_INFO', '_EXIT_THREAD_DEBUG_INFO', '_EXIT_PROCESS_DEBUG_INFO', '_LOAD_DLL_DEBUG_INFO', '_UNLOAD_DLL_DEBUG_INFO', '_OUTPUT_DEBUG_STRING_INFO', '_RIP_INFO', '_TMP_UNION_DEBUG_INFO', '_DEBUG_EVENT', '_STRING', '_OBJECT_ATTRIBUTES', '_SECURITY_QUALITY_OF_SERVICE', '_ALPC_PORT_ATTRIBUTES32', '_ALPC_PORT_ATTRIBUTES64', '_ALPC_MESSAGE_ATTRIBUTES', '_PORT_MESSAGE_TMP_UNION', '_PORT_MESSAGE_TMP_SUBSTRUCT_S1', '_PORT_MESSAGE_TMP_UNION_U1', '_PORT_MESSAGE_TMP_SUBSTRUCT_S2', '_PORT_MESSAGE_TMP_UNION_U2', '_PORT_MESSAGE', '_SERVICE_STATUS', '_SERVICE_STATUS_PROCESS', '_ENUM_SERVICE_STATUS_PROCESSA', '_ENUM_SERVICE_STATUS_PROCESSW', 'CATALOG_INFO_', '_SYSTEM_HANDLE', '_SYSTEM_HANDLE_INFORMATION', '__PUBLIC_OBJECT_TYPE_INFORMATION', '_PUBLIC_OBJECT_BASIC_INFORMATION', '_EVENTLOGRECORD']
|
||||
structs = ['_LIST_ENTRY', '_PEB_LDR_DATA', '_LSA_UNICODE_STRING', '_RTL_USER_PROCESS_PARAMETERS', '_PEB', '_SECURITY_ATTRIBUTES', '_SYSTEM_VERIFIER_INFORMATION', '_LDR_DATA_TABLE_ENTRY', '_IMAGE_FILE_HEADER', '_IMAGE_DATA_DIRECTORY', '_IMAGE_SECTION_HEADER', '_IMAGE_OPTIONAL_HEADER64', '_IMAGE_OPTIONAL_HEADER', '_IMAGE_NT_HEADERS64', '_IMAGE_NT_HEADERS', '_IMAGE_IMPORT_DESCRIPTOR', '_IMAGE_IMPORT_BY_NAME', '_IMAGE_EXPORT_DIRECTORY', '_MEMORY_BASIC_INFORMATION', '_MEMORY_BASIC_INFORMATION32', '_MEMORY_BASIC_INFORMATION64', '_STARTUPINFOA', '_STARTUPINFOW', '_PROCESS_INFORMATION', '_FLOATING_SAVE_AREA', '_CONTEXT32', '_WOW64_FLOATING_SAVE_AREA', '_WOW64_CONTEXT', '_M128A', '_CONTEXT64', 'tagPROCESSENTRY32W', 'tagPROCESSENTRY32', 'tagTHREADENTRY32', '_LUID', '_LUID_AND_ATTRIBUTES', '_TOKEN_PRIVILEGES', '_TOKEN_ELEVATION', '_SID_AND_ATTRIBUTES', '_TOKEN_MANDATORY_LABEL', '_TOKEN_USER', '_OSVERSIONINFOA', '_OSVERSIONINFOW', '_OSVERSIONINFOEXA', '_OSVERSIONINFOEXW', '_OVERLAPPED', '_MIB_TCPROW_OWNER_PID', '_MIB_TCPTABLE_OWNER_PID', '_MIB_UDPROW_OWNER_PID', '_MIB_UDPTABLE_OWNER_PID', '_MIB_UDP6ROW_OWNER_PID', '_MIB_UDP6TABLE_OWNER_PID', '_MIB_TCP6ROW_OWNER_PID', '_MIB_TCP6TABLE_OWNER_PID', '_MIB_TCPROW', '_EXCEPTION_RECORD', '_EXCEPTION_RECORD32', '_EXCEPTION_RECORD64', '_EXCEPTION_POINTERS64', '_EXCEPTION_POINTERS32', '_DEBUG_PROCESSOR_IDENTIFICATION_ALPHA', '_DEBUG_PROCESSOR_IDENTIFICATION_AMD64', '_DEBUG_PROCESSOR_IDENTIFICATION_IA64', '_DEBUG_PROCESSOR_IDENTIFICATION_X86', '_DEBUG_PROCESSOR_IDENTIFICATION_ARM', '_DEBUG_PROCESSOR_IDENTIFICATION_ALL', '_SYMBOL_INFO', '_MODLOAD_DATA', '_SYSTEM_MODULE32', '_SYSTEM_MODULE64', '_SYSTEM_MODULE_INFORMATION32', '_SYSTEM_MODULE_INFORMATION64', 'tagSAFEARRAYBOUND', 'tagSAFEARRAY', '_DEBUG_BREAKPOINT_PARAMETERS', '_DEBUG_REGISTER_DESCRIPTION', '_DEBUG_STACK_FRAME', '_DEBUG_LAST_EVENT_INFO_BREAKPOINT', '_DEBUG_LAST_EVENT_INFO_EXCEPTION', '_DEBUG_LAST_EVENT_INFO_EXIT_THREAD', '_DEBUG_LAST_EVENT_INFO_EXIT_PROCESS', '_DEBUG_LAST_EVENT_INFO_LOAD_MODULE', '_DEBUG_LAST_EVENT_INFO_UNLOAD_MODULE', '_DEBUG_LAST_EVENT_INFO_SYSTEM_ERROR', '_DEBUG_SPECIFIC_FILTER_PARAMETERS', '_DEBUG_EXCEPTION_FILTER_PARAMETERS', '_GUID', '_TMP_signscale', '_TMP_lowmid', 'TMP_signscale_union', 'TMP_lowmid_union', 'tagDEC', '__tagBRECORD', 'TMP_variant_sub_union', '__tagVARIANT', 'tagDISPPARAMS', 'tagEXCEPINFO', '_CRYPTOAPI_BLOB', 'WINTRUST_FILE_INFO_', '_CRYPT_ATTRIBUTE', '_CTL_ENTRY', '_CRYPT_ATTRIBUTE', '_CRYPT_ATTRIBUTES', '_CRYPT_ALGORITHM_IDENTIFIER', '_CMSG_SIGNER_INFO', '_CERT_EXTENSION', '_CTL_USAGE', '_CTL_INFO', '_CTL_CONTEXT', 'WINTRUST_CATALOG_INFO_', 'WINTRUST_BLOB_INFO_', '_CRYPT_BIT_BLOB', '_CERT_PUBLIC_KEY_INFO', '_CERT_INFO', '_CERT_CONTEXT', 'WINTRUST_SGNR_INFO_', '_FILETIME', 'WINTRUST_CERT_INFO_', '_TMP_WINTRUST_UNION_TYPE', '_WINTRUST_DATA', '_PROCESS_BASIC_INFORMATION', '_JIT_DEBUG_INFO', '_SID_IDENTIFIER_AUTHORITY', '_EXCEPTION_DEBUG_INFO', '_CREATE_THREAD_DEBUG_INFO', '_CREATE_PROCESS_DEBUG_INFO', '_EXIT_THREAD_DEBUG_INFO', '_EXIT_PROCESS_DEBUG_INFO', '_LOAD_DLL_DEBUG_INFO', '_UNLOAD_DLL_DEBUG_INFO', '_OUTPUT_DEBUG_STRING_INFO', '_RIP_INFO', '_TMP_UNION_DEBUG_INFO', '_DEBUG_EVENT', '_STRING', '_OBJECT_ATTRIBUTES', '_SECURITY_QUALITY_OF_SERVICE', '_ALPC_PORT_ATTRIBUTES32', '_ALPC_PORT_ATTRIBUTES64', '_ALPC_MESSAGE_ATTRIBUTES', '_PORT_MESSAGE_TMP_UNION', '_PORT_MESSAGE_TMP_SUBSTRUCT_S1', '_PORT_MESSAGE_TMP_UNION_U1', '_PORT_MESSAGE_TMP_SUBSTRUCT_S2', '_PORT_MESSAGE_TMP_UNION_U2', '_PORT_MESSAGE', '_SERVICE_STATUS', '_SERVICE_STATUS_PROCESS', '_ENUM_SERVICE_STATUS_PROCESSA', '_ENUM_SERVICE_STATUS_PROCESSW', 'CATALOG_INFO_', '_SYSTEM_HANDLE', '_SYSTEM_HANDLE_INFORMATION', '__PUBLIC_OBJECT_TYPE_INFORMATION', '_PUBLIC_OBJECT_BASIC_INFORMATION', '_EVENTLOGRECORD', 'tagSOLE_AUTHENTICATION_SERVICE']
|
||||
|
||||
enums = ['_SYSTEM_INFORMATION_CLASS', '_MEMORY_INFORMATION_CLASS', '_THREAD_INFORMATION_CLASS', '_TCP_TABLE_CLASS', '_VARENUM', '_UDP_TABLE_CLASS', '_MIB_TCP_STATE', '_TOKEN_INFORMATION_CLASS', '_SECURITY_IMPERSONATION_LEVEL', '_SC_ENUM_TYPE', '_SC_STATUS_TYPE', '_OBJECT_INFORMATION_CLASS', '_SID_NAME_USE', 'NET_FW_PROFILE_TYPE2_', 'NET_FW_ACTION_', 'NET_FW_MODIFY_STATE_', 'NET_FW_RULE_DIRECTION_', '_IMAGEHLP_SYMBOL_TYPE_INFO', '_PROCESSINFOCLASS', 'tagTYPEKIND']
|
||||
enums = ['_SYSTEM_INFORMATION_CLASS', '_MEMORY_INFORMATION_CLASS', '_THREAD_INFORMATION_CLASS', '_TCP_TABLE_CLASS', '_VARENUM', '_UDP_TABLE_CLASS', '_MIB_TCP_STATE', '_TOKEN_INFORMATION_CLASS', '_SECURITY_IMPERSONATION_LEVEL', '_SC_ENUM_TYPE', '_SC_STATUS_TYPE', '_OBJECT_INFORMATION_CLASS', '_SID_NAME_USE', 'NET_FW_PROFILE_TYPE2_', 'NET_FW_ACTION_', 'NET_FW_MODIFY_STATE_', 'NET_FW_RULE_DIRECTION_', 'tag_WBEMSTATUS', 'tagCLSCTX', '_IMAGEHLP_SYMBOL_TYPE_INFO', '_PROCESSINFOCLASS', 'tagCOINIT', 'tagTYPEKIND']
|
||||
|
||||
# Enum _SYSTEM_INFORMATION_CLASS definitions
|
||||
_SYSTEM_INFORMATION_CLASS = DWORD
|
||||
@@ -403,6 +407,233 @@ NET_FW_RULE_DIR_IN = 0x1
|
||||
NET_FW_RULE_DIR_OUT = 0x2
|
||||
NET_FW_RULE_DIR_MAX = 0x3
|
||||
|
||||
# Enum tag_WBEMSTATUS definitions
|
||||
tag_WBEMSTATUS = DWORD
|
||||
WBEMSTATUS = tag_WBEMSTATUS
|
||||
|
||||
WBEM_NO_ERROR = 0x0
|
||||
WBEM_S_NO_ERROR = 0x0
|
||||
WBEM_S_SAME = 0x0
|
||||
WBEM_S_FALSE = 0x1
|
||||
WBEM_S_ALREADY_EXISTS = 0x40001
|
||||
WBEM_S_RESET_TO_DEFAULT = 0x40002
|
||||
WBEM_S_DIFFERENT = 0x40003
|
||||
WBEM_S_TIMEDOUT = 0x40004
|
||||
WBEM_S_NO_MORE_DATA = 0x40005
|
||||
WBEM_S_OPERATION_CANCELLED = 0x40006
|
||||
WBEM_S_PENDING = 0x40007
|
||||
WBEM_S_DUPLICATE_OBJECTS = 0x40008
|
||||
WBEM_S_ACCESS_DENIED = 0x40009
|
||||
WBEM_S_PARTIAL_RESULTS = 0x40010
|
||||
WBEM_S_SOURCE_NOT_AVAILABLE = 0x40017
|
||||
WBEM_E_FAILED = 0x80041001L
|
||||
WBEM_E_NOT_FOUND = 0x80041002L
|
||||
WBEM_E_ACCESS_DENIED = 0x80041003L
|
||||
WBEM_E_PROVIDER_FAILURE = 0x80041004L
|
||||
WBEM_E_TYPE_MISMATCH = 0x80041005L
|
||||
WBEM_E_OUT_OF_MEMORY = 0x80041006L
|
||||
WBEM_E_INVALID_CONTEXT = 0x80041007L
|
||||
WBEM_E_INVALID_PARAMETER = 0x80041008L
|
||||
WBEM_E_NOT_AVAILABLE = 0x80041009L
|
||||
WBEM_E_CRITICAL_ERROR = 0x8004100aL
|
||||
WBEM_E_INVALID_STREAM = 0x8004100bL
|
||||
WBEM_E_NOT_SUPPORTED = 0x8004100cL
|
||||
WBEM_E_INVALID_SUPERCLASS = 0x8004100dL
|
||||
WBEM_E_INVALID_NAMESPACE = 0x8004100eL
|
||||
WBEM_E_INVALID_OBJECT = 0x8004100fL
|
||||
WBEM_E_INVALID_CLASS = 0x80041010L
|
||||
WBEM_E_PROVIDER_NOT_FOUND = 0x80041011L
|
||||
WBEM_E_INVALID_PROVIDER_REGISTRATION = 0x80041012L
|
||||
WBEM_E_PROVIDER_LOAD_FAILURE = 0x80041013L
|
||||
WBEM_E_INITIALIZATION_FAILURE = 0x80041014L
|
||||
WBEM_E_TRANSPORT_FAILURE = 0x80041015L
|
||||
WBEM_E_INVALID_OPERATION = 0x80041016L
|
||||
WBEM_E_INVALID_QUERY = 0x80041017L
|
||||
WBEM_E_INVALID_QUERY_TYPE = 0x80041018L
|
||||
WBEM_E_ALREADY_EXISTS = 0x80041019L
|
||||
WBEM_E_OVERRIDE_NOT_ALLOWED = 0x8004101aL
|
||||
WBEM_E_PROPAGATED_QUALIFIER = 0x8004101bL
|
||||
WBEM_E_PROPAGATED_PROPERTY = 0x8004101cL
|
||||
WBEM_E_UNEXPECTED = 0x8004101dL
|
||||
WBEM_E_ILLEGAL_OPERATION = 0x8004101eL
|
||||
WBEM_E_CANNOT_BE_KEY = 0x8004101fL
|
||||
WBEM_E_INCOMPLETE_CLASS = 0x80041020L
|
||||
WBEM_E_INVALID_SYNTAX = 0x80041021L
|
||||
WBEM_E_NONDECORATED_OBJECT = 0x80041022L
|
||||
WBEM_E_READ_ONLY = 0x80041023L
|
||||
WBEM_E_PROVIDER_NOT_CAPABLE = 0x80041024L
|
||||
WBEM_E_CLASS_HAS_CHILDREN = 0x80041025L
|
||||
WBEM_E_CLASS_HAS_INSTANCES = 0x80041026L
|
||||
WBEM_E_QUERY_NOT_IMPLEMENTED = 0x80041027L
|
||||
WBEM_E_ILLEGAL_NULL = 0x80041028L
|
||||
WBEM_E_INVALID_QUALIFIER_TYPE = 0x80041029L
|
||||
WBEM_E_INVALID_PROPERTY_TYPE = 0x8004102aL
|
||||
WBEM_E_VALUE_OUT_OF_RANGE = 0x8004102bL
|
||||
WBEM_E_CANNOT_BE_SINGLETON = 0x8004102cL
|
||||
WBEM_E_INVALID_CIM_TYPE = 0x8004102dL
|
||||
WBEM_E_INVALID_METHOD = 0x8004102eL
|
||||
WBEM_E_INVALID_METHOD_PARAMETERS = 0x8004102fL
|
||||
WBEM_E_SYSTEM_PROPERTY = 0x80041030L
|
||||
WBEM_E_INVALID_PROPERTY = 0x80041031L
|
||||
WBEM_E_CALL_CANCELLED = 0x80041032L
|
||||
WBEM_E_SHUTTING_DOWN = 0x80041033L
|
||||
WBEM_E_PROPAGATED_METHOD = 0x80041034L
|
||||
WBEM_E_UNSUPPORTED_PARAMETER = 0x80041035L
|
||||
WBEM_E_MISSING_PARAMETER_ID = 0x80041036L
|
||||
WBEM_E_INVALID_PARAMETER_ID = 0x80041037L
|
||||
WBEM_E_NONCONSECUTIVE_PARAMETER_IDS = 0x80041038L
|
||||
WBEM_E_PARAMETER_ID_ON_RETVAL = 0x80041039L
|
||||
WBEM_E_INVALID_OBJECT_PATH = 0x8004103aL
|
||||
WBEM_E_OUT_OF_DISK_SPACE = 0x8004103bL
|
||||
WBEM_E_BUFFER_TOO_SMALL = 0x8004103cL
|
||||
WBEM_E_UNSUPPORTED_PUT_EXTENSION = 0x8004103dL
|
||||
WBEM_E_UNKNOWN_OBJECT_TYPE = 0x8004103eL
|
||||
WBEM_E_UNKNOWN_PACKET_TYPE = 0x8004103fL
|
||||
WBEM_E_MARSHAL_VERSION_MISMATCH = 0x80041040L
|
||||
WBEM_E_MARSHAL_INVALID_SIGNATURE = 0x80041041L
|
||||
WBEM_E_INVALID_QUALIFIER = 0x80041042L
|
||||
WBEM_E_INVALID_DUPLICATE_PARAMETER = 0x80041043L
|
||||
WBEM_E_TOO_MUCH_DATA = 0x80041044L
|
||||
WBEM_E_SERVER_TOO_BUSY = 0x80041045L
|
||||
WBEM_E_INVALID_FLAVOR = 0x80041046L
|
||||
WBEM_E_CIRCULAR_REFERENCE = 0x80041047L
|
||||
WBEM_E_UNSUPPORTED_CLASS_UPDATE = 0x80041048L
|
||||
WBEM_E_CANNOT_CHANGE_KEY_INHERITANCE = 0x80041049L
|
||||
WBEM_E_CANNOT_CHANGE_INDEX_INHERITANCE = 0x80041050L
|
||||
WBEM_E_TOO_MANY_PROPERTIES = 0x80041051L
|
||||
WBEM_E_UPDATE_TYPE_MISMATCH = 0x80041052L
|
||||
WBEM_E_UPDATE_OVERRIDE_NOT_ALLOWED = 0x80041053L
|
||||
WBEM_E_UPDATE_PROPAGATED_METHOD = 0x80041054L
|
||||
WBEM_E_METHOD_NOT_IMPLEMENTED = 0x80041055L
|
||||
WBEM_E_METHOD_DISABLED = 0x80041056L
|
||||
WBEM_E_REFRESHER_BUSY = 0x80041057L
|
||||
WBEM_E_UNPARSABLE_QUERY = 0x80041058L
|
||||
WBEM_E_NOT_EVENT_CLASS = 0x80041059L
|
||||
WBEM_E_MISSING_GROUP_WITHIN = 0x8004105aL
|
||||
WBEM_E_MISSING_AGGREGATION_LIST = 0x8004105bL
|
||||
WBEM_E_PROPERTY_NOT_AN_OBJECT = 0x8004105cL
|
||||
WBEM_E_AGGREGATING_BY_OBJECT = 0x8004105dL
|
||||
WBEM_E_UNINTERPRETABLE_PROVIDER_QUERY = 0x8004105fL
|
||||
WBEM_E_BACKUP_RESTORE_WINMGMT_RUNNING = 0x80041060L
|
||||
WBEM_E_QUEUE_OVERFLOW = 0x80041061L
|
||||
WBEM_E_PRIVILEGE_NOT_HELD = 0x80041062L
|
||||
WBEM_E_INVALID_OPERATOR = 0x80041063L
|
||||
WBEM_E_LOCAL_CREDENTIALS = 0x80041064L
|
||||
WBEM_E_CANNOT_BE_ABSTRACT = 0x80041065L
|
||||
WBEM_E_AMENDED_OBJECT = 0x80041066L
|
||||
WBEM_E_CLIENT_TOO_SLOW = 0x80041067L
|
||||
WBEM_E_NULL_SECURITY_DESCRIPTOR = 0x80041068L
|
||||
WBEM_E_TIMED_OUT = 0x80041069L
|
||||
WBEM_E_INVALID_ASSOCIATION = 0x8004106aL
|
||||
WBEM_E_AMBIGUOUS_OPERATION = 0x8004106bL
|
||||
WBEM_E_QUOTA_VIOLATION = 0x8004106cL
|
||||
WBEM_E_RESERVED_001 = 0x8004106dL
|
||||
WBEM_E_RESERVED_002 = 0x8004106eL
|
||||
WBEM_E_UNSUPPORTED_LOCALE = 0x8004106fL
|
||||
WBEM_E_HANDLE_OUT_OF_DATE = 0x80041070L
|
||||
WBEM_E_CONNECTION_FAILED = 0x80041071L
|
||||
WBEM_E_INVALID_HANDLE_REQUEST = 0x80041072L
|
||||
WBEM_E_PROPERTY_NAME_TOO_WIDE = 0x80041073L
|
||||
WBEM_E_CLASS_NAME_TOO_WIDE = 0x80041074L
|
||||
WBEM_E_METHOD_NAME_TOO_WIDE = 0x80041075L
|
||||
WBEM_E_QUALIFIER_NAME_TOO_WIDE = 0x80041076L
|
||||
WBEM_E_RERUN_COMMAND = 0x80041077L
|
||||
WBEM_E_DATABASE_VER_MISMATCH = 0x80041078L
|
||||
WBEM_E_VETO_DELETE = 0x80041079L
|
||||
WBEM_E_VETO_PUT = 0x8004107aL
|
||||
WBEM_E_INVALID_LOCALE = 0x80041080L
|
||||
WBEM_E_PROVIDER_SUSPENDED = 0x80041081L
|
||||
WBEM_E_SYNCHRONIZATION_REQUIRED = 0x80041082L
|
||||
WBEM_E_NO_SCHEMA = 0x80041083L
|
||||
WBEM_E_PROVIDER_ALREADY_REGISTERED = 0x80041084L
|
||||
WBEM_E_PROVIDER_NOT_REGISTERED = 0x80041085L
|
||||
WBEM_E_FATAL_TRANSPORT_ERROR = 0x80041086L
|
||||
WBEM_E_ENCRYPTED_CONNECTION_REQUIRED = 0x80041087L
|
||||
WBEM_E_PROVIDER_TIMED_OUT = 0x80041088L
|
||||
WBEM_E_NO_KEY = 0x80041089L
|
||||
WBEM_E_PROVIDER_DISABLED = 0x8004108aL
|
||||
WBEMESS_E_REGISTRATION_TOO_BROAD = 0x80042001L
|
||||
WBEMESS_E_REGISTRATION_TOO_PRECISE = 0x80042002L
|
||||
WBEMESS_E_AUTHZ_NOT_PRIVILEGED = 0x80042003L
|
||||
WBEMMOF_E_EXPECTED_QUALIFIER_NAME = 0x80044001L
|
||||
WBEMMOF_E_EXPECTED_SEMI = 0x80044002L
|
||||
WBEMMOF_E_EXPECTED_OPEN_BRACE = 0x80044003L
|
||||
WBEMMOF_E_EXPECTED_CLOSE_BRACE = 0x80044004L
|
||||
WBEMMOF_E_EXPECTED_CLOSE_BRACKET = 0x80044005L
|
||||
WBEMMOF_E_EXPECTED_CLOSE_PAREN = 0x80044006L
|
||||
WBEMMOF_E_ILLEGAL_CONSTANT_VALUE = 0x80044007L
|
||||
WBEMMOF_E_EXPECTED_TYPE_IDENTIFIER = 0x80044008L
|
||||
WBEMMOF_E_EXPECTED_OPEN_PAREN = 0x80044009L
|
||||
WBEMMOF_E_UNRECOGNIZED_TOKEN = 0x8004400aL
|
||||
WBEMMOF_E_UNRECOGNIZED_TYPE = 0x8004400bL
|
||||
WBEMMOF_E_EXPECTED_PROPERTY_NAME = 0x8004400cL
|
||||
WBEMMOF_E_TYPEDEF_NOT_SUPPORTED = 0x8004400dL
|
||||
WBEMMOF_E_UNEXPECTED_ALIAS = 0x8004400eL
|
||||
WBEMMOF_E_UNEXPECTED_ARRAY_INIT = 0x8004400fL
|
||||
WBEMMOF_E_INVALID_AMENDMENT_SYNTAX = 0x80044010L
|
||||
WBEMMOF_E_INVALID_DUPLICATE_AMENDMENT = 0x80044011L
|
||||
WBEMMOF_E_INVALID_PRAGMA = 0x80044012L
|
||||
WBEMMOF_E_INVALID_NAMESPACE_SYNTAX = 0x80044013L
|
||||
WBEMMOF_E_EXPECTED_CLASS_NAME = 0x80044014L
|
||||
WBEMMOF_E_TYPE_MISMATCH = 0x80044015L
|
||||
WBEMMOF_E_EXPECTED_ALIAS_NAME = 0x80044016L
|
||||
WBEMMOF_E_INVALID_CLASS_DECLARATION = 0x80044017L
|
||||
WBEMMOF_E_INVALID_INSTANCE_DECLARATION = 0x80044018L
|
||||
WBEMMOF_E_EXPECTED_DOLLAR = 0x80044019L
|
||||
WBEMMOF_E_CIMTYPE_QUALIFIER = 0x8004401aL
|
||||
WBEMMOF_E_DUPLICATE_PROPERTY = 0x8004401bL
|
||||
WBEMMOF_E_INVALID_NAMESPACE_SPECIFICATION = 0x8004401cL
|
||||
WBEMMOF_E_OUT_OF_RANGE = 0x8004401dL
|
||||
WBEMMOF_E_INVALID_FILE = 0x8004401eL
|
||||
WBEMMOF_E_ALIASES_IN_EMBEDDED = 0x8004401fL
|
||||
WBEMMOF_E_NULL_ARRAY_ELEM = 0x80044020L
|
||||
WBEMMOF_E_DUPLICATE_QUALIFIER = 0x80044021L
|
||||
WBEMMOF_E_EXPECTED_FLAVOR_TYPE = 0x80044022L
|
||||
WBEMMOF_E_INCOMPATIBLE_FLAVOR_TYPES = 0x80044023L
|
||||
WBEMMOF_E_MULTIPLE_ALIASES = 0x80044024L
|
||||
WBEMMOF_E_INCOMPATIBLE_FLAVOR_TYPES2 = 0x80044025L
|
||||
WBEMMOF_E_NO_ARRAYS_RETURNED = 0x80044026L
|
||||
WBEMMOF_E_MUST_BE_IN_OR_OUT = 0x80044027L
|
||||
WBEMMOF_E_INVALID_FLAGS_SYNTAX = 0x80044028L
|
||||
WBEMMOF_E_EXPECTED_BRACE_OR_BAD_TYPE = 0x80044029L
|
||||
WBEMMOF_E_UNSUPPORTED_CIMV22_QUAL_VALUE = 0x8004402aL
|
||||
WBEMMOF_E_UNSUPPORTED_CIMV22_DATA_TYPE = 0x8004402bL
|
||||
WBEMMOF_E_INVALID_DELETEINSTANCE_SYNTAX = 0x8004402cL
|
||||
WBEMMOF_E_INVALID_QUALIFIER_SYNTAX = 0x8004402dL
|
||||
WBEMMOF_E_QUALIFIER_USED_OUTSIDE_SCOPE = 0x8004402eL
|
||||
WBEMMOF_E_ERROR_CREATING_TEMP_FILE = 0x8004402fL
|
||||
WBEMMOF_E_ERROR_INVALID_INCLUDE_FILE = 0x80044030L
|
||||
WBEMMOF_E_INVALID_DELETECLASS_SYNTAX = 0x80044031L
|
||||
|
||||
# Enum tagCLSCTX definitions
|
||||
tagCLSCTX = DWORD
|
||||
CLSCTX = tagCLSCTX
|
||||
|
||||
CLSCTX_INPROC_SERVER = 0x1
|
||||
CLSCTX_INPROC_HANDLER = 0x2
|
||||
CLSCTX_LOCAL_SERVER = 0x4
|
||||
CLSCTX_INPROC_SERVER16 = 0x8
|
||||
CLSCTX_REMOTE_SERVER = 0x10
|
||||
CLSCTX_INPROC_HANDLER16 = 0x20
|
||||
CLSCTX_RESERVED1 = 0x40
|
||||
CLSCTX_RESERVED2 = 0x80
|
||||
CLSCTX_RESERVED3 = 0x100
|
||||
CLSCTX_RESERVED4 = 0x200
|
||||
CLSCTX_NO_CODE_DOWNLOAD = 0x400
|
||||
CLSCTX_RESERVED5 = 0x800
|
||||
CLSCTX_NO_CUSTOM_MARSHAL = 0x1000
|
||||
CLSCTX_ENABLE_CODE_DOWNLOAD = 0x2000
|
||||
CLSCTX_NO_FAILURE_LOG = 0x4000
|
||||
CLSCTX_DISABLE_AAA = 0x8000
|
||||
CLSCTX_ENABLE_AAA = 0x10000
|
||||
CLSCTX_FROM_DEFAULT_CONTEXT = 0x20000
|
||||
CLSCTX_ACTIVATE_32_BIT_SERVER = 0x40000
|
||||
CLSCTX_ACTIVATE_64_BIT_SERVER = 0x80000
|
||||
CLSCTX_ENABLE_CLOAKING = 0x100000
|
||||
CLSCTX_APPCONTAINER = 0x400000
|
||||
CLSCTX_ACTIVATE_AAA_AS_IU = 0x800000
|
||||
CLSCTX_PS_DLL = 0x80000000L
|
||||
|
||||
# Enum _IMAGEHLP_SYMBOL_TYPE_INFO definitions
|
||||
_IMAGEHLP_SYMBOL_TYPE_INFO = DWORD
|
||||
IMAGEHLP_SYMBOL_TYPE_INFO = _IMAGEHLP_SYMBOL_TYPE_INFO
|
||||
@@ -449,6 +680,15 @@ PROCESSINFOCLASS = _PROCESSINFOCLASS
|
||||
ProcessBasicInformation = 0x0
|
||||
ProcessWow64Information = 0x1a
|
||||
|
||||
# Enum tagCOINIT definitions
|
||||
tagCOINIT = DWORD
|
||||
COINIT = tagCOINIT
|
||||
|
||||
COINIT_APARTMENTTHREADED = 0x2
|
||||
COINIT_MULTITHREADED = 0x0
|
||||
COINIT_DISABLE_OLE1DDE = 0x4
|
||||
COINIT_SPEED_OVER_MEMORY = 0x8
|
||||
|
||||
# Enum tagTYPEKIND definitions
|
||||
tagTYPEKIND = DWORD
|
||||
TYPEKIND = tagTYPEKIND
|
||||
@@ -1697,9 +1937,10 @@ class _GUID(Structure):
|
||||
("Data1", ULONG),
|
||||
("Data2", USHORT),
|
||||
("Data3", USHORT),
|
||||
("Data4", UCHAR * 8),
|
||||
("Data4", BYTE * 8),
|
||||
]
|
||||
IID = _GUID
|
||||
REFCLSID = POINTER(_GUID)
|
||||
GUID = _GUID
|
||||
REFIID = POINTER(_GUID)
|
||||
|
||||
@@ -1786,7 +2027,7 @@ class TMP_variant_sub_union(Union):
|
||||
("pullVal", POINTER(ULONGLONG)),
|
||||
("pintVal", POINTER(INT)),
|
||||
("puintVal", POINTER(UINT)),
|
||||
("__VARIANT_NAME_4", _tagBRECORD),
|
||||
("_VARIANT_NAME_4", _tagBRECORD),
|
||||
]
|
||||
|
||||
# Struct __tagVARIANT definitions
|
||||
@@ -1796,7 +2037,7 @@ class __tagVARIANT(Structure):
|
||||
("wReserved1", WORD),
|
||||
("wReserved2", WORD),
|
||||
("wReserved3", WORD),
|
||||
("__VARIANT_NAME_3", TMP_variant_sub_union),
|
||||
("_VARIANT_NAME_3", TMP_variant_sub_union),
|
||||
]
|
||||
LPVARIANTARG = POINTER(__tagVARIANT)
|
||||
VARIANTARG = __tagVARIANT
|
||||
@@ -2542,3 +2783,14 @@ class _EVENTLOGRECORD(Structure):
|
||||
PEVENTLOGRECORD = POINTER(_EVENTLOGRECORD)
|
||||
EVENTLOGRECORD = _EVENTLOGRECORD
|
||||
|
||||
# Struct tagSOLE_AUTHENTICATION_SERVICE definitions
|
||||
class tagSOLE_AUTHENTICATION_SERVICE(Structure):
|
||||
_fields_ = [
|
||||
("dwAuthnSvc", DWORD),
|
||||
("dwAuthzSvc", DWORD),
|
||||
("pPrincipalName", POINTER(OLECHAR)),
|
||||
("hr", HRESULT),
|
||||
]
|
||||
PSOLE_AUTHENTICATION_SERVICE = POINTER(tagSOLE_AUTHENTICATION_SERVICE)
|
||||
SOLE_AUTHENTICATION_SERVICE = tagSOLE_AUTHENTICATION_SERVICE
|
||||
|
||||
|
||||
+25
-80
@@ -4,50 +4,15 @@ import struct
|
||||
import functools
|
||||
|
||||
from ctypes.wintypes import *
|
||||
|
||||
import windows.com
|
||||
from windows.generated_def.winstructs import *
|
||||
from windows.simple_com import get_IID_from_raw, COMInterface
|
||||
from windows.generated_def.interfaces import IWbemLocator, IWbemServices, IEnumWbemClassObject, IWbemClassObject
|
||||
|
||||
|
||||
CLSID_WbemAdministrativeLocator_raw = 0xcb8555cc, 0x9128, 0x11d1, 0xad, 0x9b, 0x00, 0xc0, 0x4f, 0xd8, 0x0fd, 0xff
|
||||
CLSID_WbemAdministrativeLocator_IID = get_IID_from_raw(CLSID_WbemAdministrativeLocator_raw)
|
||||
|
||||
IID_IWbemLocator_raw = 0x0DC12A687, 0x737F, 0x11CF, 0x88, 0x4d, 0x00, 0xaa, 0x00, 0x4b, 0x2e, 0x24
|
||||
IID_IWbemLocator= get_IID_from_raw(IID_IWbemLocator_raw)
|
||||
|
||||
BSTR = ctypes.c_wchar_p
|
||||
|
||||
class IWbemLocator(COMInterface):
|
||||
_functions_ = {
|
||||
"ConnectServer": ctypes.WINFUNCTYPE(HRESULT, ctypes.c_wchar_p, ctypes.c_wchar_p, ctypes.c_wchar_p, ctypes.c_wchar_p,
|
||||
ctypes.c_long, ctypes.c_wchar_p, ctypes.c_void_p, POINTER(ctypes.c_void_p))(3, "ConnectServer")
|
||||
}
|
||||
|
||||
|
||||
class IWbemServices(COMInterface):
|
||||
_functions_ = {
|
||||
"ExecQuery": ctypes.WINFUNCTYPE(HRESULT, ctypes.c_wchar_p, ctypes.c_wchar_p, ctypes.c_long, ctypes.c_void_p, POINTER(ctypes.c_void_p))(20, "ExecQuery")
|
||||
}
|
||||
|
||||
|
||||
class IEnumWbemClassObject(COMInterface):
|
||||
_functions_ = {
|
||||
"Next": ctypes.WINFUNCTYPE(HRESULT, ctypes.c_long, ctypes.c_ulong, POINTER(ctypes.c_void_p), POINTER(ctypes.c_long))(4, "Next")
|
||||
}
|
||||
|
||||
|
||||
class IWbemClassObject(COMInterface):
|
||||
_functions_ = {
|
||||
"Get": ctypes.WINFUNCTYPE(HRESULT, ctypes.c_wchar_p, ctypes.c_long, ctypes.c_void_p, ctypes.c_void_p, POINTER(ctypes.c_long))(4, "Get"),
|
||||
"GetNames": ctypes.WINFUNCTYPE(HRESULT, ctypes.c_wchar_p, ctypes.c_long, ctypes.c_void_p, POINTER(ctypes.c_void_p))(7, "GetNames")
|
||||
}
|
||||
|
||||
|
||||
class _tagBRECORD(ctypes.Structure):
|
||||
_fields_ = [("pvRecord", PVOID), ("pRecInfo", PVOID)]
|
||||
|
||||
|
||||
class SAFEARRAY(windows.generated_def.winstructs.SAFEARRAY):
|
||||
CLSID_WbemAdministrativeLocator_IID = windows.com.IID.from_string('CB8555CC-9128-11D1-AD9B-00C04FD8FDFF')
|
||||
|
||||
class ImprovedSAFEARRAY(windows.generated_def.winstructs.SAFEARRAY):
|
||||
@classmethod
|
||||
def of_type(cls, addr, t):
|
||||
self = cls.from_address(addr)
|
||||
@@ -71,38 +36,19 @@ class SAFEARRAY(windows.generated_def.winstructs.SAFEARRAY):
|
||||
return data
|
||||
|
||||
|
||||
class SimpleVariantData(ctypes.Union):
|
||||
_fields_ = [("llVal", LONGLONG),
|
||||
("lVal", LONG),
|
||||
("bVal", BYTE),
|
||||
("iVal", SHORT),
|
||||
("fltVal", FLOAT),
|
||||
("dblVal", DOUBLE),
|
||||
("bstrVal", BSTR),
|
||||
("pbstrVal", POINTER(BSTR)),
|
||||
("byref", PVOID),
|
||||
("parray", POINTER(SAFEARRAY)),
|
||||
("pbyref", PVOID),
|
||||
("ullVal", ULONGLONG),
|
||||
("llVal", LONGLONG),
|
||||
("__VARIANT_NAME_4", _tagBRECORD)]
|
||||
|
||||
|
||||
# TODO: put real struct in winstruct (need a real parser for generation)
|
||||
class SimpleVariant(ctypes.Structure):
|
||||
_fields_ = [("vt", WORD), ("wReserved1", WORD), ("wReserved2", WORD), ("wReserved3", WORD), ("_Data", SimpleVariantData)]
|
||||
|
||||
class ImprovedVariant(VARIANT):
|
||||
@property
|
||||
def asbstr(self):
|
||||
if self.vt != VT_BSTR:
|
||||
raise ValueError("asbstr on non-bstr variant")
|
||||
return self._Data.bstrVal
|
||||
#import pdb;pdb.set_trace()
|
||||
return self._VARIANT_NAME_3.bstrVal
|
||||
|
||||
@property
|
||||
def aslong(self):
|
||||
if not self.vt in [VT_I4, VT_BOOL]:
|
||||
raise ValueError("aslong on non-long variant")
|
||||
return self._Data.lVal
|
||||
return self._VARIANT_NAME_3.lVal
|
||||
|
||||
@property
|
||||
def asbool(self):
|
||||
@@ -120,21 +66,13 @@ class WmiRequester(object):
|
||||
return cls.INSTANCE
|
||||
|
||||
def __init__(self):
|
||||
if hasattr(self, "initializiated"):
|
||||
return
|
||||
|
||||
locator = IWbemLocator()
|
||||
service = IWbemServices()
|
||||
|
||||
# TODO: puts those in winproxy with a real error check and wrapper
|
||||
assert ctypes.windll.ole32.CoInitializeEx(0, 0) == 0, "CoInitializeEx"
|
||||
assert ctypes.windll.ole32.CoInitializeSecurity(0, -1, 0,0, 0, 3, 0,0,0) == 0, "CoInitializeSecurity"
|
||||
assert ctypes.windll.ole32.CoCreateInstance(CLSID_WbemAdministrativeLocator_IID, 0, 1, IID_IWbemLocator, ctypes.byref(locator)) == 0, "CoCreateInstance"
|
||||
|
||||
windows.com.init()
|
||||
windows.com.create_instance(CLSID_WbemAdministrativeLocator_IID, locator)
|
||||
locator.ConnectServer("root\\cimv2", None, None , None, 0x80, None, None, ctypes.byref(service))
|
||||
self.service = service
|
||||
self.initializiated = True
|
||||
|
||||
|
||||
def select(self, frm, attrs="*"):
|
||||
"""Select `attrs` from ``frm``
|
||||
@@ -142,19 +80,24 @@ class WmiRequester(object):
|
||||
:rtype: list of dict
|
||||
"""
|
||||
enumerator = IEnumWbemClassObject()
|
||||
self.service.ExecQuery("WQL", "select * from {0}".format(frm), 0x20, 0, ctypes.byref(enumerator))
|
||||
try:
|
||||
self.service.ExecQuery("WQL", "select * from {0}".format(frm), 0x20, 0, ctypes.byref(enumerator))
|
||||
except WindowsError as e:
|
||||
if (e.winerror & 0xffffffff) == WBEM_E_INVALID_CLASS:
|
||||
raise WindowsError(e.winerror, 'WBEM_E_INVALID_CLASS <Invalid WMI class "{0}">'.format(frm))
|
||||
raise
|
||||
|
||||
count = ctypes.c_long(0)
|
||||
count = ctypes.c_ulong(0)
|
||||
processor = IWbemClassObject()
|
||||
res = []
|
||||
enumerator.Next(0xffffffff, 1, ctypes.byref(processor), ctypes.byref(count))
|
||||
while count.value:
|
||||
current_res = {}
|
||||
variant_res = SimpleVariant()
|
||||
variant_res = ImprovedVariant()
|
||||
if attrs == "*":
|
||||
attrs = [x for x in self.get_names(processor) if not x.startswith("__")]
|
||||
for name in attrs:
|
||||
processor.Get(name, 0, ctypes.byref(variant_res), 0, None)
|
||||
processor.Get(name, 0, ctypes.byref(variant_res), None, None)
|
||||
# TODO: something clean and generic
|
||||
if variant_res.vt & VT_ARRAY:
|
||||
if variant_res.vt & VT_TYPEMASK == VT_BSTR:
|
||||
@@ -176,6 +119,8 @@ class WmiRequester(object):
|
||||
return res
|
||||
|
||||
def get_names(self, processor):
|
||||
res = PVOID()
|
||||
processor.GetNames(None, 0, None, res)
|
||||
return SAFEARRAY.of_type(res.value, BSTR).to_list()
|
||||
res = POINTER(SAFEARRAY)()
|
||||
processor.GetNames(None, 0, None, byref(res))
|
||||
safe_array = ctypes.cast(res, POINTER(ImprovedSAFEARRAY))[0]
|
||||
safe_array.elt_type = BSTR
|
||||
return safe_array.to_list()
|
||||
+18
-1
@@ -916,4 +916,21 @@ def VerQueryValueA(pBlock, lpSubBlock, lplpBuffer, puLen):
|
||||
|
||||
@VersionProxy("VerQueryValueW")
|
||||
def VerQueryValueW(pBlock, lpSubBlock, lplpBuffer, puLen):
|
||||
return VerQueryValueW.ctypes_function(pBlock, lpSubBlock, lplpBuffer, puLen)
|
||||
return VerQueryValueW.ctypes_function(pBlock, lpSubBlock, lplpBuffer, puLen)
|
||||
|
||||
|
||||
# ## Ole32Proxy (COM STUFF) ## #
|
||||
|
||||
@Ole32Proxy('CoInitializeEx', no_error_check)
|
||||
def CoInitializeEx(pvReserved=None, dwCoInit=COINIT_MULTITHREADED):
|
||||
return CoInitializeEx.ctypes_function(pvReserved, dwCoInit)
|
||||
|
||||
|
||||
@Ole32Proxy('CoInitializeSecurity')
|
||||
def CoInitializeSecurity(pSecDesc, cAuthSvc, asAuthSvc, pReserved1, dwAuthnLevel, dwImpLevel, pAuthList, dwCapabilities, pReserved3):
|
||||
return CoInitializeSecurity.ctypes_function(pSecDesc, cAuthSvc, asAuthSvc, pReserved1, dwAuthnLevel, dwImpLevel, pAuthList, dwCapabilities, pReserved3)
|
||||
|
||||
|
||||
@Ole32Proxy('CoCreateInstance')
|
||||
def CoCreateInstance(rclsid, pUnkOuter=None, dwClsContext=CLSCTX_INPROC_SERVER, riid=NeededParameter, ppv=NeededParameter):
|
||||
return CoCreateInstance.ctypes_function(rclsid, pUnkOuter, dwClsContext, riid, ppv)
|
||||
|
||||
Reference in New Issue
Block a user