Made some improvement of error handling by ApiProxy + some new generated def

This commit is contained in:
hakril
2018-11-24 21:39:40 +01:00
parent 267eddb5fe
commit b167c6e70f
39 changed files with 5426 additions and 4067 deletions
@@ -117,42 +117,4 @@
#define PROTECTED_DACL_SECURITY_INFORMATION (0x80000000L)
#define PROTECTED_SACL_SECURITY_INFORMATION (0x40000000L)
#define UNPROTECTED_DACL_SECURITY_INFORMATION (0x20000000L)
#define UNPROTECTED_SACL_SECURITY_INFORMATION (0x10000000L)
/* PRIVILEGES */
#define SE_CREATE_TOKEN_NAME ("SeCreateTokenPrivilege")
#define SE_ASSIGNPRIMARYTOKEN_NAME ("SeAssignPrimaryTokenPrivilege")
#define SE_LOCK_MEMORY_NAME ("SeLockMemoryPrivilege")
#define SE_INCREASE_QUOTA_NAME ("SeIncreaseQuotaPrivilege")
#define SE_UNSOLICITED_INPUT_NAME ("SeUnsolicitedInputPrivilege")
#define SE_MACHINE_ACCOUNT_NAME ("SeMachineAccountPrivilege")
#define SE_TCB_NAME ("SeTcbPrivilege")
#define SE_SECURITY_NAME ("SeSecurityPrivilege")
#define SE_TAKE_OWNERSHIP_NAME ("SeTakeOwnershipPrivilege")
#define SE_LOAD_DRIVER_NAME ("SeLoadDriverPrivilege")
#define SE_SYSTEM_PROFILE_NAME ("SeSystemProfilePrivilege")
#define SE_SYSTEMTIME_NAME ("SeSystemtimePrivilege")
#define SE_PROF_SINGLE_PROCESS_NAME ("SeProfileSingleProcessPrivilege")
#define SE_INC_BASE_PRIORITY_NAME ("SeIncreaseBasePriorityPrivilege")
#define SE_CREATE_PAGEFILE_NAME ("SeCreatePagefilePrivilege")
#define SE_CREATE_PERMANENT_NAME ("SeCreatePermanentPrivilege")
#define SE_BACKUP_NAME ("SeBackupPrivilege")
#define SE_RESTORE_NAME ("SeRestorePrivilege")
#define SE_SHUTDOWN_NAME ("SeShutdownPrivilege")
#define SE_DEBUG_NAME ("SeDebugPrivilege")
#define SE_AUDIT_NAME ("SeAuditPrivilege")
#define SE_SYSTEM_ENVIRONMENT_NAME ("SeSystemEnvironmentPrivilege")
#define SE_CHANGE_NOTIFY_NAME ("SeChangeNotifyPrivilege")
#define SE_REMOTE_SHUTDOWN_NAME ("SeRemoteShutdownPrivilege")
#define SE_UNDOCK_NAME ("SeUndockPrivilege")
#define SE_SYNC_AGENT_NAME ("SeSyncAgentPrivilege")
#define SE_ENABLE_DELEGATION_NAME ("SeEnableDelegationPrivilege")
#define SE_MANAGE_VOLUME_NAME ("SeManageVolumePrivilege")
#define SE_IMPERSONATE_NAME ("SeImpersonatePrivilege")
#define SE_CREATE_GLOBAL_NAME ("SeCreateGlobalPrivilege")
#define SE_TRUSTED_CREDMAN_ACCESS_NAME ("SeTrustedCredManAccessPrivilege")
#define SE_RELABEL_NAME ("SeRelabelPrivilege")
#define SE_INC_WORKING_SET_NAME ("SeIncreaseWorkingSetPrivilege")
#define SE_TIME_ZONE_NAME ("SeTimeZonePrivilege")
#define SE_CREATE_SYMBOLIC_LINK_NAME ("SeCreateSymbolicLinkPrivilege")
#define UNPROTECTED_SACL_SECURITY_INFORMATION (0x10000000L)
@@ -0,0 +1,20 @@
//
// Service trigger types
//
#define SERVICE_TRIGGER_TYPE_DEVICE_INTERFACE_ARRIVAL 1
#define SERVICE_TRIGGER_TYPE_IP_ADDRESS_AVAILABILITY 2
#define SERVICE_TRIGGER_TYPE_DOMAIN_JOIN 3
#define SERVICE_TRIGGER_TYPE_FIREWALL_PORT_EVENT 4
#define SERVICE_TRIGGER_TYPE_GROUP_POLICY 5
#define SERVICE_TRIGGER_TYPE_NETWORK_ENDPOINT 6
#define SERVICE_TRIGGER_TYPE_CUSTOM_SYSTEM_STATE_CHANGE 7
#define SERVICE_TRIGGER_TYPE_CUSTOM 20
//
// Service trigger data types
//
#define SERVICE_TRIGGER_DATA_TYPE_BINARY 1
#define SERVICE_TRIGGER_DATA_TYPE_STRING 2
#define SERVICE_TRIGGER_DATA_TYPE_LEVEL 3
#define SERVICE_TRIGGER_DATA_TYPE_KEYWORD_ANY 4
#define SERVICE_TRIGGER_DATA_TYPE_KEYWORD_ALL 5
@@ -0,0 +1,100 @@
#define TOKEN_SOURCE_LENGTH 8
#define SID_HASH_SIZE 32
#define TOKEN_MANDATORY_POLICY_OFF 0x0
#define TOKEN_MANDATORY_POLICY_NO_WRITE_UP 0x1
#define TOKEN_MANDATORY_POLICY_NEW_PROCESS_MIN 0x2
#define TOKEN_MANDATORY_POLICY_VALID_MASK (TOKEN_MANDATORY_POLICY_NO_WRITE_UP | \
TOKEN_MANDATORY_POLICY_NEW_PROCESS_MIN)
/* from ntseapi.h
* https://github.com/PKRoma/ProcessHacker/blob/8cd2217e9ff2170096d85b0fdafd5f1e1a8c925f/phnt/include/ntseapi.h
*/
#define TOKEN_SECURITY_ATTRIBUTE_TYPE_INVALID 0x00
#define TOKEN_SECURITY_ATTRIBUTE_TYPE_INT64 0x01
#define TOKEN_SECURITY_ATTRIBUTE_TYPE_UINT64 0x02
#define TOKEN_SECURITY_ATTRIBUTE_TYPE_STRING 0x03
#define TOKEN_SECURITY_ATTRIBUTE_TYPE_FQBN 0x04
#define TOKEN_SECURITY_ATTRIBUTE_TYPE_SID 0x05
#define TOKEN_SECURITY_ATTRIBUTE_TYPE_BOOLEAN 0x06
#define TOKEN_SECURITY_ATTRIBUTE_TYPE_OCTET_STRING 0x10
// Flags
#define TOKEN_SECURITY_ATTRIBUTE_NON_INHERITABLE 0x0001
#define TOKEN_SECURITY_ATTRIBUTE_VALUE_CASE_SENSITIVE 0x0002
#define TOKEN_SECURITY_ATTRIBUTE_USE_FOR_DENY_ONLY 0x0004
#define TOKEN_SECURITY_ATTRIBUTE_DISABLED_BY_DEFAULT 0x0008
#define TOKEN_SECURITY_ATTRIBUTE_DISABLED 0x0010
#define TOKEN_SECURITY_ATTRIBUTE_MANDATORY 0x0020
#define TOKEN_SECURITY_ATTRIBUTE_VALID_FLAGS ( \
TOKEN_SECURITY_ATTRIBUTE_NON_INHERITABLE | \
TOKEN_SECURITY_ATTRIBUTE_VALUE_CASE_SENSITIVE | \
TOKEN_SECURITY_ATTRIBUTE_USE_FOR_DENY_ONLY | \
TOKEN_SECURITY_ATTRIBUTE_DISABLED_BY_DEFAULT | \
TOKEN_SECURITY_ATTRIBUTE_DISABLED | \
TOKEN_SECURITY_ATTRIBUTE_MANDATORY)
#define TOKEN_SECURITY_ATTRIBUTE_CUSTOM_FLAGS 0xffff0000
#define TOKEN_ASSIGN_PRIMARY (0x0001)
#define TOKEN_DUPLICATE (0x0002)
#define TOKEN_IMPERSONATE (0x0004)
#define TOKEN_QUERY (0x0008)
#define TOKEN_QUERY_SOURCE (0x0010)
#define TOKEN_ADJUST_PRIVILEGES (0x0020)
#define TOKEN_ADJUST_GROUPS (0x0040)
#define TOKEN_ADJUST_DEFAULT (0x0080)
#define TOKEN_ADJUST_SESSIONID (0x0100)
#define TOKEN_ALL_ACCESS_P (STANDARD_RIGHTS_REQUIRED | TOKEN_ASSIGN_PRIMARY | TOKEN_DUPLICATE | TOKEN_IMPERSONATE | TOKEN_QUERY | TOKEN_QUERY_SOURCE | TOKEN_ADJUST_PRIVILEGES | TOKEN_ADJUST_GROUPS | TOKEN_ADJUST_DEFAULT)
#define TOKEN_ALL_ACCESS (TOKEN_ALL_ACCESS_P | TOKEN_ADJUST_SESSIONID )
/* Privileges attributes */
#define SE_PRIVILEGE_ENABLED_BY_DEFAULT (0x00000001L)
#define SE_PRIVILEGE_ENABLED (0x00000002L)
#define SE_PRIVILEGE_REMOVED (0X00000004L)
#define SE_PRIVILEGE_USED_FOR_ACCESS (0x80000000L)
/* PRIVILEGES Names*/
#define SE_CREATE_TOKEN_NAME ("SeCreateTokenPrivilege")
#define SE_ASSIGNPRIMARYTOKEN_NAME ("SeAssignPrimaryTokenPrivilege")
#define SE_LOCK_MEMORY_NAME ("SeLockMemoryPrivilege")
#define SE_INCREASE_QUOTA_NAME ("SeIncreaseQuotaPrivilege")
#define SE_UNSOLICITED_INPUT_NAME ("SeUnsolicitedInputPrivilege")
#define SE_MACHINE_ACCOUNT_NAME ("SeMachineAccountPrivilege")
#define SE_TCB_NAME ("SeTcbPrivilege")
#define SE_SECURITY_NAME ("SeSecurityPrivilege")
#define SE_TAKE_OWNERSHIP_NAME ("SeTakeOwnershipPrivilege")
#define SE_LOAD_DRIVER_NAME ("SeLoadDriverPrivilege")
#define SE_SYSTEM_PROFILE_NAME ("SeSystemProfilePrivilege")
#define SE_SYSTEMTIME_NAME ("SeSystemtimePrivilege")
#define SE_PROF_SINGLE_PROCESS_NAME ("SeProfileSingleProcessPrivilege")
#define SE_INC_BASE_PRIORITY_NAME ("SeIncreaseBasePriorityPrivilege")
#define SE_CREATE_PAGEFILE_NAME ("SeCreatePagefilePrivilege")
#define SE_CREATE_PERMANENT_NAME ("SeCreatePermanentPrivilege")
#define SE_BACKUP_NAME ("SeBackupPrivilege")
#define SE_RESTORE_NAME ("SeRestorePrivilege")
#define SE_SHUTDOWN_NAME ("SeShutdownPrivilege")
#define SE_DEBUG_NAME ("SeDebugPrivilege")
#define SE_AUDIT_NAME ("SeAuditPrivilege")
#define SE_SYSTEM_ENVIRONMENT_NAME ("SeSystemEnvironmentPrivilege")
#define SE_CHANGE_NOTIFY_NAME ("SeChangeNotifyPrivilege")
#define SE_REMOTE_SHUTDOWN_NAME ("SeRemoteShutdownPrivilege")
#define SE_UNDOCK_NAME ("SeUndockPrivilege")
#define SE_SYNC_AGENT_NAME ("SeSyncAgentPrivilege")
#define SE_ENABLE_DELEGATION_NAME ("SeEnableDelegationPrivilege")
#define SE_MANAGE_VOLUME_NAME ("SeManageVolumePrivilege")
#define SE_IMPERSONATE_NAME ("SeImpersonatePrivilege")
#define SE_CREATE_GLOBAL_NAME ("SeCreateGlobalPrivilege")
#define SE_TRUSTED_CREDMAN_ACCESS_NAME ("SeTrustedCredManAccessPrivilege")
#define SE_RELABEL_NAME ("SeRelabelPrivilege")
#define SE_INC_WORKING_SET_NAME ("SeIncreaseWorkingSetPrivilege")
#define SE_TIME_ZONE_NAME ("SeTimeZonePrivilege")
#define SE_CREATE_SYMBOLIC_LINK_NAME ("SeCreateSymbolicLinkPrivilege")
@@ -222,26 +222,6 @@
#define SPECIFIC_RIGHTS_ALL (0x0000FFFFL)
#define TOKEN_ASSIGN_PRIMARY (0x0001)
#define TOKEN_DUPLICATE (0x0002)
#define TOKEN_IMPERSONATE (0x0004)
#define TOKEN_QUERY (0x0008)
#define TOKEN_QUERY_SOURCE (0x0010)
#define TOKEN_ADJUST_PRIVILEGES (0x0020)
#define TOKEN_ADJUST_GROUPS (0x0040)
#define TOKEN_ADJUST_DEFAULT (0x0080)
#define TOKEN_ADJUST_SESSIONID (0x0100)
#define TOKEN_ALL_ACCESS_P (STANDARD_RIGHTS_REQUIRED | TOKEN_ASSIGN_PRIMARY | TOKEN_DUPLICATE | TOKEN_IMPERSONATE | TOKEN_QUERY | TOKEN_QUERY_SOURCE | TOKEN_ADJUST_PRIVILEGES | TOKEN_ADJUST_GROUPS | TOKEN_ADJUST_DEFAULT)
#define TOKEN_ALL_ACCESS (TOKEN_ALL_ACCESS_P | TOKEN_ADJUST_SESSIONID )
#define SE_PRIVILEGE_ENABLED_BY_DEFAULT (0x00000001L)
#define SE_PRIVILEGE_ENABLED (0x00000002L)
#define SE_PRIVILEGE_REMOVED (0X00000004L)
#define SE_PRIVILEGE_USED_FOR_ACCESS (0x80000000L)
#define AF_UNSPEC 0
#define AF_UNIX 1
@@ -680,3 +680,62 @@
#define CERT_SYSTEM_STORE_LOCAL_MACHINE_GROUP_POLICY (CERT_SYSTEM_STORE_LOCAL_MACHINE_GROUP_POLICY_ID << CERT_SYSTEM_STORE_LOCATION_SHIFT)
#define CERT_SYSTEM_STORE_LOCAL_MACHINE_ENTERPRISE (CERT_SYSTEM_STORE_LOCAL_MACHINE_ENTERPRISE_ID << CERT_SYSTEM_STORE_LOCATION_SHIFT)
//+-------------------------------------------------------------------------
// Message types
//--------------------------------------------------------------------------
#define CMSG_DATA 1
#define CMSG_SIGNED 2
#define CMSG_ENVELOPED 3
#define CMSG_SIGNED_AND_ENVELOPED 4
#define CMSG_HASHED 5
#define CMSG_ENCRYPTED 6
//+-------------------------------------------------------------------------
// Open dwFlags
//--------------------------------------------------------------------------
#define CMSG_BARE_CONTENT_FLAG 0x00000001
#define CMSG_LENGTH_ONLY_FLAG 0x00000002
#define CMSG_DETACHED_FLAG 0x00000004
#define CMSG_AUTHENTICATED_ATTRIBUTES_FLAG 0x00000008
#define CMSG_CONTENTS_OCTETS_FLAG 0x00000010
#define CMSG_MAX_LENGTH_FLAG 0x00000020
// When set, nonData type inner content is encapsulated within an
// OCTET STRING. Applicable to both Signed and Enveloped messages.
#define CMSG_CMS_ENCAPSULATED_CONTENT_FLAG 0x00000040
// If set, then, the hCryptProv passed to CryptMsgOpenToEncode or
// CryptMsgOpenToDecode is released on the final CryptMsgClose.
// Not released if CryptMsgOpenToEncode or CryptMsgOpenToDecode fails.
//
// Also applies to hNCryptKey where applicable.
//
// Note, the envelope recipient hCryptProv's aren't released.
#define CMSG_CRYPT_RELEASE_CONTEXT_FLAG 0x00008000
#define CMSG_INDEFINITE_LENGTH (0xFFFFFFFF)
//+-------------------------------------------------------------------------
// Message control types
//--------------------------------------------------------------------------
#define CMSG_CTRL_VERIFY_SIGNATURE 1
#define CMSG_CTRL_DECRYPT 2
#define CMSG_CTRL_VERIFY_HASH 5
#define CMSG_CTRL_ADD_SIGNER 6
#define CMSG_CTRL_DEL_SIGNER 7
#define CMSG_CTRL_ADD_SIGNER_UNAUTH_ATTR 8
#define CMSG_CTRL_DEL_SIGNER_UNAUTH_ATTR 9
#define CMSG_CTRL_ADD_CERT 10
#define CMSG_CTRL_DEL_CERT 11
#define CMSG_CTRL_ADD_CRL 12
#define CMSG_CTRL_DEL_CRL 13
#define CMSG_CTRL_ADD_ATTR_CERT 14
#define CMSG_CTRL_DEL_ATTR_CERT 15
#define CMSG_CTRL_KEY_TRANS_DECRYPT 16
#define CMSG_CTRL_KEY_AGREE_DECRYPT 17
#define CMSG_CTRL_MAIL_LIST_DECRYPT 18
#define CMSG_CTRL_VERIFY_SIGNATURE_EX 19
#define CMSG_CTRL_ADD_CMS_SIGNER_INFO 20
#define CMSG_CTRL_ENABLE_STRONG_SIGNATURE 21
@@ -94,6 +94,12 @@ BOOL EqualSid(
PSID pSid2
);
BOOL CopySid(
DWORD nDestinationSidLength,
PSID pDestinationSid,
PSID pSourceSid
);
PSID_IDENTIFIER_AUTHORITY WINAPI GetSidIdentifierAuthority(
_In_ PSID pSid
@@ -134,3 +134,12 @@ DWORD WINAPI GetWindowThreadProcessId(
_Out_opt_ LPDWORD lpdwProcessId
);
HWND FindWindowA(
LPCSTR lpClassName,
LPCSTR lpWindowName
);
HWND FindWindowW(
LPCWSTR lpClassName,
LPCWSTR lpWindowName
);
@@ -1727,4 +1727,43 @@ BOOLEAN RtlEqualUnicodeString(
PUNICODE_STRING String1,
PUNICODE_STRING String2,
BOOLEAN CaseInSensitive
);
);
DWORD WINAPI GetFirmwareEnvironmentVariableA(
_In_ LPCSTR lpName,
_In_ LPCSTR lpGuid,
_Out_ PVOID pBuffer,
_In_ DWORD nSize
);
DWORD WINAPI GetFirmwareEnvironmentVariableW(
_In_ LPCWSTR lpName,
_In_ LPCWSTR lpGuid,
_Out_ PVOID pBuffer,
_In_ DWORD nSize
);
DWORD WINAPI GetFirmwareEnvironmentVariableExA(
_In_ LPCSTR lpName,
_In_ LPCSTR lpGuid,
_Out_ PVOID pBuffer,
_In_ DWORD nSize,
_Out_ PDWORD pdwAttribubutes
);
DWORD WINAPI GetFirmwareEnvironmentVariableExW(
_In_ LPCWSTR lpName,
_In_ LPCWSTR lpGuid,
_Out_ PVOID pBuffer,
_In_ DWORD nSize,
_Out_ PDWORD pdwAttribubutes
);
NTSTATUS WINAPI NtEnumerateSystemEnvironmentValuesEx(
_In_ ULONG InformationClass,
_In_ PVOID Buffer,
_In_ ULONG BufferLength
);
@@ -457,4 +457,61 @@ PCCERT_CONTEXT PfnCryptGetSignerCertificate(
DWORD dwCertEncodingType,
PCERT_INFO pSignerId,
HCERTSTORE hMsgCertStore
);
BOOL CryptEncrypt(
HCRYPTKEY hKey,
HCRYPTHASH hHash,
BOOL Final,
DWORD dwFlags,
BYTE *pbData,
DWORD *pdwDataLen,
DWORD dwBufLen
);
BOOL CryptDecrypt(
HCRYPTKEY hKey,
HCRYPTHASH hHash,
BOOL Final,
DWORD dwFlags,
BYTE *pbData,
DWORD *pdwDataLen
);
HCRYPTMSG CryptMsgOpenToEncode(
DWORD dwMsgEncodingType,
DWORD dwFlags,
DWORD dwMsgType,
PVOID pvMsgEncodeInfo,
LPSTR pszInnerContentObjID,
PCMSG_STREAM_INFO pStreamInfo
);
HCRYPTMSG CryptMsgOpenToDecode(
DWORD dwMsgEncodingType,
DWORD dwFlags,
DWORD dwMsgType,
HCRYPTPROV_LEGACY hCryptProv,
PCERT_INFO pRecipientInfo,
PCMSG_STREAM_INFO pStreamInfo
);
BOOL CryptMsgUpdate(
HCRYPTMSG hCryptMsg,
BYTE *pbData,
DWORD cbData,
BOOL fFinal
);
BOOL CryptMsgControl(
HCRYPTMSG hCryptMsg,
DWORD dwFlags,
DWORD dwCtrlType,
PVOID pvCtrlPara
);
BOOL CryptMsgClose(
HCRYPTMSG hCryptMsg
);
@@ -12,4 +12,23 @@ NTSTATUS NtQueryLicenseValue(
PVOID Buffer,
ULONG Length,
ULONG *DataLength
);
NTSTATUS WINAPI NtQueryEaFile(
_In_ HANDLE FileHandle,
_Out_ PIO_STATUS_BLOCK IoStatusBlock,
_Out_writes_bytes_(Length) PVOID Buffer,
_In_ ULONG Length,
_In_ BOOLEAN ReturnSingleEntry,
_In_reads_bytes_opt_(EaListLength) PVOID EaList,
_In_ ULONG EaListLength,
_In_opt_ PULONG EaIndex,
_In_ BOOLEAN RestartScan
);
NTSTATUS WINAPI NtSetEaFile(
_In_ HANDLE FileHandle,
_Out_ PIO_STATUS_BLOCK IoStatusBlock,
_In_reads_bytes_(Length) PVOID Buffer,
_In_ ULONG Length
);
@@ -73,6 +73,12 @@ DEVICE_TYPE = DWORD
PWINDBG_EXTENSION_APIS32 = PVOID
PWINDBG_EXTENSION_APIS64 = PVOID
NCRYPT_HANDLE = ULONG_PTR
NCRYPT_PROV_HANDLE = ULONG_PTR
NCRYPT_KEY_HANDLE = ULONG_PTR
NCRYPT_HASH_HANDLE = ULONG_PTR
NCRYPT_SECRET_HANDLE = ULONG_PTR
/* INT sized*/
INT8 = c_byte // signed | our BYTE is unsigned
@@ -112,6 +118,9 @@ PACCESS_MASK = POINTER(ACCESS_MASK)
SECURITY_INFORMATION = DWORD
PSECURITY_INFORMATION = POINTER(SECURITY_INFORMATION)
PSECURITY_ATTRIBUTES_OPAQUE = PVOID
SID_HASH_ENTRY = ULONG_PTR
PSID_HASH_ENTRY = POINTER(SID_HASH_ENTRY)
PSID = PVOID
@@ -82,4 +82,73 @@ typedef enum tagCALLFRAME_WALK {
CALLFRAME_WALK_IN = 1,
CALLFRAME_WALK_INOUT = 2,
CALLFRAME_WALK_OUT = 4
} CALLFRAME_WALK;
} CALLFRAME_WALK;
typedef struct tagSAFEARRAYBOUND
{
ULONG cElements;
LONG lLbound;
} SAFEARRAYBOUND, *LPSAFEARRAYBOUND;
typedef struct tagSAFEARRAY
{
USHORT cDims;
USHORT fFeatures;
ULONG cbElements;
ULONG cLocks;
PVOID pvData;
SAFEARRAYBOUND rgsabound[ 1 ];
} SAFEARRAY;
typedef struct __tagBRECORD {
PVOID pvRecord;
PVOID pRecInfo;
} _tagBRECORD;
union _ANON_TMP_variant_sub_union{
LONGLONG llVal;
LONG lVal;
BYTE bVal;
SHORT iVal;
FLOAT fltVal;
DOUBLE dblVal;
VARIANT_BOOL boolVal;
SCODE scode;
BSTR bstrVal;
PVOID punkVal;
PVOID pdispVal;
SAFEARRAY *parray;
BYTE *pbVal;
SHORT *piVal;
LONG *plVal;
LONGLONG *pllVal;
FLOAT *pfltVal;
DOUBLE *pdblVal;
VARIANT_BOOL *pboolVal;
SCODE *pscode;
BSTR *pbstrVal;
PVOID byref;
CHAR cVal;
USHORT uiVal;
ULONG ulVal;
ULONGLONG ullVal;
INT intVal;
UINT uintVal;
CHAR *pcVal;
USHORT *puiVal;
ULONG *pulVal;
ULONGLONG *pullVal;
INT *pintVal;
UINT *puintVal;
_tagBRECORD _VARIANT_NAME_4;
};
typedef struct __tagVARIANT {
VARTYPE vt;
WORD wReserved1;
WORD wReserved2;
WORD wReserved3;
_ANON_TMP_variant_sub_union _VARIANT_NAME_3;
} _tagVARIANT, VARIANT, VARIANTARG, *LPVARIANT, *LPVARIANTARG;
@@ -242,6 +242,22 @@ typedef struct _CERT_INFO {
} CERT_INFO, *PCERT_INFO;
typedef struct _CERT_ISSUER_SERIAL_NUMBER {
CERT_NAME_BLOB Issuer;
CRYPT_INTEGER_BLOB SerialNumber;
} CERT_ISSUER_SERIAL_NUMBER, *PCERT_ISSUER_SERIAL_NUMBER;
typedef union _TMPUNION_CERT_ID {
CERT_ISSUER_SERIAL_NUMBER IssuerSerialNumber;
CRYPT_HASH_BLOB KeyId;
CRYPT_HASH_BLOB HashId;
} TMPUNION_CERT_ID;
typedef struct _CERT_ID {
DWORD dwIdChoice;
TMPUNION_CERT_ID DUMMYUNIONNAME;
} CERT_ID, *PCERT_ID;
typedef struct _CERT_CONTEXT {
DWORD dwCertEncodingType;
BYTE *pbCertEncoded;
@@ -251,6 +267,7 @@ typedef struct _CERT_CONTEXT {
} CERT_CONTEXT, *PCERT_CONTEXT, *PCCERT_CONTEXT;
typedef struct WINTRUST_SGNR_INFO_
{
DWORD cbStruct;
@@ -561,3 +578,120 @@ typedef struct _CRYPT_ENCODE_PARA {
PVOID pfnFree;
} CRYPT_ENCODE_PARA, *PCRYPT_ENCODE_PARA;
typedef union _TMPUNION_CMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO {
HCRYPTKEY hKeyEncryptionKey;
PVOID pvKeyEncryptionKey;
}TMPUNION_CMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO;
typedef struct _CMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO {
DWORD cbSize;
CRYPT_ALGORITHM_IDENTIFIER KeyEncryptionAlgorithm;
PVOID pvKeyEncryptionAuxInfo;
HCRYPTPROV hCryptProv;
DWORD dwKeyChoice;
TMPUNION_CMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO DUMMYUNIONNAME;
CRYPT_DATA_BLOB KeyId;
FILETIME Date;
PCRYPT_ATTRIBUTE_TYPE_VALUE pOtherAttr;
} CMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO, *PCMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO;
typedef struct _CMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO {
DWORD cbSize;
CRYPT_ALGORITHM_IDENTIFIER KeyEncryptionAlgorithm;
PVOID pvKeyEncryptionAuxInfo;
HCRYPTPROV_LEGACY hCryptProv;
CRYPT_BIT_BLOB RecipientPublicKey;
CERT_ID RecipientId;
} CMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO, *PCMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO;
typedef struct _CMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO {
DWORD cbSize;
CRYPT_ALGORITHM_IDENTIFIER KeyEncryptionAlgorithm;
PVOID pvKeyEncryptionAuxInfo;
HCRYPTPROV_LEGACY hCryptProv;
CRYPT_BIT_BLOB RecipientPublicKey;
CERT_ID RecipientId;
} CMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO, *PCMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO;
typedef union _TMPUNION_CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO {
PCRYPT_ALGORITHM_IDENTIFIER pEphemeralAlgorithm;
PCERT_ID pSenderId;
}TMPUNION_CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO;
typedef struct _CMSG_RECIPIENT_ENCRYPTED_KEY_ENCODE_INFO {
DWORD cbSize;
CRYPT_BIT_BLOB RecipientPublicKey;
CERT_ID RecipientId;
FILETIME Date;
PCRYPT_ATTRIBUTE_TYPE_VALUE pOtherAttr;
} CMSG_RECIPIENT_ENCRYPTED_KEY_ENCODE_INFO, *PCMSG_RECIPIENT_ENCRYPTED_KEY_ENCODE_INFO;
typedef struct _CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO {
DWORD cbSize;
CRYPT_ALGORITHM_IDENTIFIER KeyEncryptionAlgorithm;
PVOID pvKeyEncryptionAuxInfo;
CRYPT_ALGORITHM_IDENTIFIER KeyWrapAlgorithm;
PVOID pvKeyWrapAuxInfo;
HCRYPTPROV_LEGACY hCryptProv;
DWORD dwKeySpec;
DWORD dwKeyChoice;
TMPUNION_CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO DUMMYUNIONNAME;
CRYPT_DATA_BLOB UserKeyingMaterial;
DWORD cRecipientEncryptedKeys;
PCMSG_RECIPIENT_ENCRYPTED_KEY_ENCODE_INFO *rgpRecipientEncryptedKeys;
} CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO, *PCMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO;
typedef union _TMP_CMSG_RECIPIENT_ENCODE_INFO_UNION {
PCMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO pKeyTrans;
PCMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO pKeyAgree;
PCMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO pMailList;
} TMP_CMSG_RECIPIENT_ENCODE_INFO_UNION;
typedef struct _CMSG_RECIPIENT_ENCODE_INFO {
DWORD dwRecipientChoice;
TMP_CMSG_RECIPIENT_ENCODE_INFO_UNION DUMMYUNIONNAME;
} CMSG_RECIPIENT_ENCODE_INFO, *PCMSG_RECIPIENT_ENCODE_INFO;
typedef struct _CMSG_ENVELOPED_ENCODE_INFO {
DWORD cbSize;
HCRYPTPROV_LEGACY hCryptProv;
CRYPT_ALGORITHM_IDENTIFIER ContentEncryptionAlgorithm;
PVOID pvEncryptionAuxInfo;
DWORD cRecipients;
PCERT_INFO *rgpRecipients;
PCMSG_RECIPIENT_ENCODE_INFO rgCmsRecipients;
DWORD cCertEncoded;
PCERT_BLOB rgCertEncoded;
DWORD cCrlEncoded;
PCRL_BLOB rgCrlEncoded;
DWORD cAttrCertEncoded;
PCERT_BLOB rgAttrCertEncoded;
DWORD cUnprotectedAttr;
PCRYPT_ATTRIBUTE rgUnprotectedAttr;
} CMSG_ENVELOPED_ENCODE_INFO, *PCMSG_ENVELOPED_ENCODE_INFO;
typedef struct _CMSG_STREAM_INFO {
DWORD cbContent;
PVOID pfnStreamOutput;
PVOID pvArg;
} CMSG_STREAM_INFO, *PCMSG_STREAM_INFO;
typedef union _TMPUNION_CMSG_CTRL_DECRYPT_PARA {
HCRYPTPROV hCryptProv;
NCRYPT_KEY_HANDLE hNCryptKey;
} TMPUNION_CMSG_CTRL_DECRYPT_PARA;
typedef struct _CMSG_CTRL_DECRYPT_PARA {
DWORD cbSize;
TMPUNION_CMSG_CTRL_DECRYPT_PARA DUMMYUNIONNAME;
DWORD dwKeySpec;
DWORD dwRecipientIndex;
} CMSG_CTRL_DECRYPT_PARA, *PCMSG_CTRL_DECRYPT_PARA;
@@ -1,3 +0,0 @@
typedef struct _FILE_DISPOSITION_INFORMATION {
BOOLEAN DeleteFile;
} FILE_DISPOSITION_INFORMATION, *PFILE_DISPOSITION_INFORMATION;
@@ -152,7 +152,6 @@ typedef struct _FILE_IS_REMOTE_DEVICE_INFORMATION {
} FILE_IS_REMOTE_DEVICE_INFORMATION, *PFILE_IS_REMOTE_DEVICE_INFORMATION;
typedef struct _FILE_ALL_INFORMATION {
FILE_BASIC_INFORMATION BasicInformation;
FILE_STANDARD_INFORMATION StandardInformation;
@@ -163,4 +162,33 @@ typedef struct _FILE_ALL_INFORMATION {
FILE_MODE_INFORMATION ModeInformation;
FILE_ALIGNMENT_INFORMATION AlignmentInformation;
FILE_NAME_INFORMATION NameInformation;
} FILE_ALL_INFORMATION, *PFILE_ALL_INFORMATION;
} FILE_ALL_INFORMATION, *PFILE_ALL_INFORMATION;
typedef struct _FILE_STREAM_INFORMATION {
ULONG NextEntryOffset;
ULONG StreamNameLength;
LARGE_INTEGER StreamSize;
LARGE_INTEGER StreamAllocationSize;
WCHAR StreamName[1];
} FILE_STREAM_INFORMATION, *PFILE_STREAM_INFORMATION;
typedef struct _FILE_DISPOSITION_INFORMATION {
BOOLEAN DeleteFile;
} FILE_DISPOSITION_INFORMATION, *PFILE_DISPOSITION_INFORMATION;
typedef struct _FILE_FULL_EA_INFORMATION
{
ULONG NextEntryOffset;
UCHAR Flags;
UCHAR EaNameLength;
USHORT EaValueLength;
CHAR EaName[1];
} FILE_FULL_EA_INFORMATION, *PFILE_FULL_EA_INFORMATION;
typedef struct _FILE_GET_EA_INFORMATION
{
ULONG NextEntryOffset;
UCHAR EaNameLength;
CHAR EaName[1];
} FILE_GET_EA_INFORMATION, *PFILE_GET_EA_INFORMATION;
@@ -222,6 +222,38 @@ typedef struct _CLAIM_SECURITY_ATTRIBUTE_OCTET_STRING_RELATIVE {
} CLAIM_SECURITY_ATTRIBUTE_OCTET_STRING_RELATIVE,
*PCLAIM_SECURITY_ATTRIBUTE_OCTET_STRING_RELATIVE;
typedef union _CLAIM_SECURITY_ATTRIBUTE_V1_UNION {
PLONG64 pInt64;
PDWORD64 pUint64;
PWSTR *ppString;
PCLAIM_SECURITY_ATTRIBUTE_FQBN_VALUE pFqbn;
PCLAIM_SECURITY_ATTRIBUTE_OCTET_STRING_VALUE pOctetString;
} CLAIM_SECURITY_ATTRIBUTE_V1_UNION;
typedef struct _CLAIM_SECURITY_ATTRIBUTE_V1 {
PWSTR Name;
WORD ValueType;
WORD Reserved;
DWORD Flags;
DWORD ValueCount;
CLAIM_SECURITY_ATTRIBUTE_V1_UNION Values;
} CLAIM_SECURITY_ATTRIBUTE_V1, *PCLAIM_SECURITY_ATTRIBUTE_V1;
typedef union _CLAIM_SECURITY_ATTRIBUTES_INFORMATION_UNION {
PCLAIM_SECURITY_ATTRIBUTE_V1 pAttributeV1;
} CLAIM_SECURITY_ATTRIBUTES_INFORMATION_UNION;
typedef struct _CLAIM_SECURITY_ATTRIBUTES_INFORMATION {
WORD Version;
WORD Reserved;
DWORD AttributeCount;
CLAIM_SECURITY_ATTRIBUTES_INFORMATION_UNION Attribute;
} CLAIM_SECURITY_ATTRIBUTES_INFORMATION, *PCLAIM_SECURITY_ATTRIBUTES_INFORMATION;
typedef struct _SECURITY_DESCRIPTOR {
BYTE Revision;
BYTE Sbz1;
@@ -1,3 +1,9 @@
typedef enum _TOKEN_ELEVATION_TYPE {
TokenElevationTypeDefault = 1,
TokenElevationTypeFull = 2,
TokenElevationTypeLimited = 3
} TOKEN_ELEVATION_TYPE, *PTOKEN_ELEVATION_TYPE;
typedef struct _TOKEN_PRIVILEGES {
DWORD PrivilegeCount;
LUID_AND_ATTRIBUTES Privileges[ANYSIZE_ARRAY];
@@ -31,6 +37,69 @@ typedef struct _TOKEN_GROUPS {
SID_AND_ATTRIBUTES Groups[ANYSIZE_ARRAY];
} TOKEN_GROUPS, *PTOKEN_GROUPS;
typedef struct _TOKEN_OWNER {
PSID Owner;
} TOKEN_OWNER, *PTOKEN_OWNER;
typedef struct _TOKEN_PRIMARY_GROUP {
PSID PrimaryGroup;
} TOKEN_PRIMARY_GROUP, *PTOKEN_PRIMARY_GROUP;
typedef struct _TOKEN_SOURCE {
CHAR SourceName[TOKEN_SOURCE_LENGTH];
LUID SourceIdentifier;
} TOKEN_SOURCE, *PTOKEN_SOURCE;
typedef struct _TOKEN_STATISTICS {
LUID TokenId;
LUID AuthenticationId;
LARGE_INTEGER ExpirationTime;
TOKEN_TYPE TokenType;
SECURITY_IMPERSONATION_LEVEL ImpersonationLevel;
DWORD DynamicCharged;
DWORD DynamicAvailable;
DWORD GroupCount;
DWORD PrivilegeCount;
LUID ModifiedId;
} TOKEN_STATISTICS, *PTOKEN_STATISTICS;
typedef struct _TOKEN_ORIGIN {
LUID OriginatingLogonSession;
} TOKEN_ORIGIN, *PTOKEN_ORIGIN;
typedef struct _TOKEN_LINKED_TOKEN {
HANDLE LinkedToken;
} TOKEN_LINKED_TOKEN, *PTOKEN_LINKED_TOKEN;
typedef struct _TOKEN_MANDATORY_POLICY {
DWORD Policy;
} TOKEN_MANDATORY_POLICY, *PTOKEN_MANDATORY_POLICY;
typedef struct _SID_AND_ATTRIBUTES_HASH {
DWORD SidCount;
PSID_AND_ATTRIBUTES SidAttr;
SID_HASH_ENTRY Hash[SID_HASH_SIZE];
} SID_AND_ATTRIBUTES_HASH, *PSID_AND_ATTRIBUTES_HASH;
typedef struct _TOKEN_APPCONTAINER_INFORMATION {
PSID TokenAppContainer;
} TOKEN_APPCONTAINER_INFORMATION, *PTOKEN_APPCONTAINER_INFORMATION;
typedef struct _TOKEN_ACCESS_INFORMATION {
PSID_AND_ATTRIBUTES_HASH SidHash;
PSID_AND_ATTRIBUTES_HASH RestrictedSidHash;
PTOKEN_PRIVILEGES Privileges;
LUID AuthenticationId;
TOKEN_TYPE TokenType;
SECURITY_IMPERSONATION_LEVEL ImpersonationLevel;
TOKEN_MANDATORY_POLICY MandatoryPolicy;
DWORD Flags;
DWORD AppContainerNumber;
PSID PackageSid;
PSID_AND_ATTRIBUTES_HASH CapabilitiesHash;
PSID TrustLevelSid;
PSECURITY_ATTRIBUTES_OPAQUE SecurityAttributes;
} TOKEN_ACCESS_INFORMATION, *PTOKEN_ACCESS_INFORMATION;
typedef struct _TOKEN_GROUPS_AND_PRIVILEGES {
DWORD SidCount;
@@ -43,4 +112,54 @@ typedef struct _TOKEN_GROUPS_AND_PRIVILEGES {
DWORD PrivilegeLength;
PLUID_AND_ATTRIBUTES Privileges;
LUID AuthenticationId;
} TOKEN_GROUPS_AND_PRIVILEGES, *PTOKEN_GROUPS_AND_PRIVILEGES;
} TOKEN_GROUPS_AND_PRIVILEGES, *PTOKEN_GROUPS_AND_PRIVILEGES;
/* from ntseapi.h */
typedef struct _TOKEN_SECURITY_ATTRIBUTE_FQBN_VALUE
{
ULONG64 Version;
UNICODE_STRING Name;
} TOKEN_SECURITY_ATTRIBUTE_FQBN_VALUE, *PTOKEN_SECURITY_ATTRIBUTE_FQBN_VALUE;
typedef struct _TOKEN_SECURITY_ATTRIBUTE_OCTET_STRING_VALUE
{
PVOID pValue;
ULONG ValueLength;
} TOKEN_SECURITY_ATTRIBUTE_OCTET_STRING_VALUE, *PTOKEN_SECURITY_ATTRIBUTE_OCTET_STRING_VALUE;
typedef union _TOKEN_SECURITY_ATTRIBUTE_V1_UNION {
PLONG64 pInt64;
PULONG64 pUint64;
PUNICODE_STRING pString;
PTOKEN_SECURITY_ATTRIBUTE_FQBN_VALUE pFqbn;
PTOKEN_SECURITY_ATTRIBUTE_OCTET_STRING_VALUE pOctetString;
} TOKEN_SECURITY_ATTRIBUTE_V1_UNION;
// private
typedef struct _TOKEN_SECURITY_ATTRIBUTE_V1
{
UNICODE_STRING Name;
USHORT ValueType;
USHORT Reserved;
ULONG Flags;
ULONG ValueCount;
TOKEN_SECURITY_ATTRIBUTE_V1_UNION Values;
} TOKEN_SECURITY_ATTRIBUTE_V1, *PTOKEN_SECURITY_ATTRIBUTE_V1;
typedef union _TOKEN_SECURITY_ATTRIBUTES_INFORMATION_UNION {
PTOKEN_SECURITY_ATTRIBUTE_V1 pAttributeV1;
} TOKEN_SECURITY_ATTRIBUTES_INFORMATION_UNION;
//private
typedef struct _TOKEN_SECURITY_ATTRIBUTES_INFORMATION
{
USHORT Version;
USHORT Reserved;
ULONG AttributeCount;
TOKEN_SECURITY_ATTRIBUTES_INFORMATION_UNION Attribute;
} TOKEN_SECURITY_ATTRIBUTES_INFORMATION, *PTOKEN_SECURITY_ATTRIBUTES_INFORMATION;
@@ -702,240 +702,8 @@ typedef enum NET_FW_MODIFY_STATE_ {
} NET_FW_MODIFY_STATE;
typedef enum tag_WBEMSTATUS {
WBEM_NO_ERROR = 0,
WBEM_S_NO_ERROR = 0,
WBEM_S_SAME = 0,
WBEM_S_FALSE = 1,
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 = 0x80041001,
WBEM_E_NOT_FOUND = 0x80041002,
WBEM_E_ACCESS_DENIED = 0x80041003,
WBEM_E_PROVIDER_FAILURE = 0x80041004,
WBEM_E_TYPE_MISMATCH = 0x80041005,
WBEM_E_OUT_OF_MEMORY = 0x80041006,
WBEM_E_INVALID_CONTEXT = 0x80041007,
WBEM_E_INVALID_PARAMETER = 0x80041008,
WBEM_E_NOT_AVAILABLE = 0x80041009,
WBEM_E_CRITICAL_ERROR = 0x8004100a,
WBEM_E_INVALID_STREAM = 0x8004100b,
WBEM_E_NOT_SUPPORTED = 0x8004100c,
WBEM_E_INVALID_SUPERCLASS = 0x8004100d,
WBEM_E_INVALID_NAMESPACE = 0x8004100e,
WBEM_E_INVALID_OBJECT = 0x8004100f,
WBEM_E_INVALID_CLASS = 0x80041010,
WBEM_E_PROVIDER_NOT_FOUND = 0x80041011,
WBEM_E_INVALID_PROVIDER_REGISTRATION = 0x80041012,
WBEM_E_PROVIDER_LOAD_FAILURE = 0x80041013,
WBEM_E_INITIALIZATION_FAILURE = 0x80041014,
WBEM_E_TRANSPORT_FAILURE = 0x80041015,
WBEM_E_INVALID_OPERATION = 0x80041016,
WBEM_E_INVALID_QUERY = 0x80041017,
WBEM_E_INVALID_QUERY_TYPE = 0x80041018,
WBEM_E_ALREADY_EXISTS = 0x80041019,
WBEM_E_OVERRIDE_NOT_ALLOWED = 0x8004101a,
WBEM_E_PROPAGATED_QUALIFIER = 0x8004101b,
WBEM_E_PROPAGATED_PROPERTY = 0x8004101c,
WBEM_E_UNEXPECTED = 0x8004101d,
WBEM_E_ILLEGAL_OPERATION = 0x8004101e,
WBEM_E_CANNOT_BE_KEY = 0x8004101f,
WBEM_E_INCOMPLETE_CLASS = 0x80041020,
WBEM_E_INVALID_SYNTAX = 0x80041021,
WBEM_E_NONDECORATED_OBJECT = 0x80041022,
WBEM_E_READ_ONLY = 0x80041023,
WBEM_E_PROVIDER_NOT_CAPABLE = 0x80041024,
WBEM_E_CLASS_HAS_CHILDREN = 0x80041025,
WBEM_E_CLASS_HAS_INSTANCES = 0x80041026,
WBEM_E_QUERY_NOT_IMPLEMENTED = 0x80041027,
WBEM_E_ILLEGAL_NULL = 0x80041028,
WBEM_E_INVALID_QUALIFIER_TYPE = 0x80041029,
WBEM_E_INVALID_PROPERTY_TYPE = 0x8004102a,
WBEM_E_VALUE_OUT_OF_RANGE = 0x8004102b,
WBEM_E_CANNOT_BE_SINGLETON = 0x8004102c,
WBEM_E_INVALID_CIM_TYPE = 0x8004102d,
WBEM_E_INVALID_METHOD = 0x8004102e,
WBEM_E_INVALID_METHOD_PARAMETERS = 0x8004102f,
WBEM_E_SYSTEM_PROPERTY = 0x80041030,
WBEM_E_INVALID_PROPERTY = 0x80041031,
WBEM_E_CALL_CANCELLED = 0x80041032,
WBEM_E_SHUTTING_DOWN = 0x80041033,
WBEM_E_PROPAGATED_METHOD = 0x80041034,
WBEM_E_UNSUPPORTED_PARAMETER = 0x80041035,
WBEM_E_MISSING_PARAMETER_ID = 0x80041036,
WBEM_E_INVALID_PARAMETER_ID = 0x80041037,
WBEM_E_NONCONSECUTIVE_PARAMETER_IDS = 0x80041038,
WBEM_E_PARAMETER_ID_ON_RETVAL = 0x80041039,
WBEM_E_INVALID_OBJECT_PATH = 0x8004103a,
WBEM_E_OUT_OF_DISK_SPACE = 0x8004103b,
WBEM_E_BUFFER_TOO_SMALL = 0x8004103c,
WBEM_E_UNSUPPORTED_PUT_EXTENSION = 0x8004103d,
WBEM_E_UNKNOWN_OBJECT_TYPE = 0x8004103e,
WBEM_E_UNKNOWN_PACKET_TYPE = 0x8004103f,
WBEM_E_MARSHAL_VERSION_MISMATCH = 0x80041040,
WBEM_E_MARSHAL_INVALID_SIGNATURE = 0x80041041,
WBEM_E_INVALID_QUALIFIER = 0x80041042,
WBEM_E_INVALID_DUPLICATE_PARAMETER = 0x80041043,
WBEM_E_TOO_MUCH_DATA = 0x80041044,
WBEM_E_SERVER_TOO_BUSY = 0x80041045,
WBEM_E_INVALID_FLAVOR = 0x80041046,
WBEM_E_CIRCULAR_REFERENCE = 0x80041047,
WBEM_E_UNSUPPORTED_CLASS_UPDATE = 0x80041048,
WBEM_E_CANNOT_CHANGE_KEY_INHERITANCE = 0x80041049,
WBEM_E_CANNOT_CHANGE_INDEX_INHERITANCE = 0x80041050,
WBEM_E_TOO_MANY_PROPERTIES = 0x80041051,
WBEM_E_UPDATE_TYPE_MISMATCH = 0x80041052,
WBEM_E_UPDATE_OVERRIDE_NOT_ALLOWED = 0x80041053,
WBEM_E_UPDATE_PROPAGATED_METHOD = 0x80041054,
WBEM_E_METHOD_NOT_IMPLEMENTED = 0x80041055,
WBEM_E_METHOD_DISABLED = 0x80041056,
WBEM_E_REFRESHER_BUSY = 0x80041057,
WBEM_E_UNPARSABLE_QUERY = 0x80041058,
WBEM_E_NOT_EVENT_CLASS = 0x80041059,
WBEM_E_MISSING_GROUP_WITHIN = 0x8004105a,
WBEM_E_MISSING_AGGREGATION_LIST = 0x8004105b,
WBEM_E_PROPERTY_NOT_AN_OBJECT = 0x8004105c,
WBEM_E_AGGREGATING_BY_OBJECT = 0x8004105d,
WBEM_E_UNINTERPRETABLE_PROVIDER_QUERY = 0x8004105f,
WBEM_E_BACKUP_RESTORE_WINMGMT_RUNNING = 0x80041060,
WBEM_E_QUEUE_OVERFLOW = 0x80041061,
WBEM_E_PRIVILEGE_NOT_HELD = 0x80041062,
WBEM_E_INVALID_OPERATOR = 0x80041063,
WBEM_E_LOCAL_CREDENTIALS = 0x80041064,
WBEM_E_CANNOT_BE_ABSTRACT = 0x80041065,
WBEM_E_AMENDED_OBJECT = 0x80041066,
WBEM_E_CLIENT_TOO_SLOW = 0x80041067,
WBEM_E_NULL_SECURITY_DESCRIPTOR = 0x80041068,
WBEM_E_TIMED_OUT = 0x80041069,
WBEM_E_INVALID_ASSOCIATION = 0x8004106a,
WBEM_E_AMBIGUOUS_OPERATION = 0x8004106b,
WBEM_E_QUOTA_VIOLATION = 0x8004106c,
WBEM_E_RESERVED_001 = 0x8004106d,
WBEM_E_RESERVED_002 = 0x8004106e,
WBEM_E_UNSUPPORTED_LOCALE = 0x8004106f,
WBEM_E_HANDLE_OUT_OF_DATE = 0x80041070,
WBEM_E_CONNECTION_FAILED = 0x80041071,
WBEM_E_INVALID_HANDLE_REQUEST = 0x80041072,
WBEM_E_PROPERTY_NAME_TOO_WIDE = 0x80041073,
WBEM_E_CLASS_NAME_TOO_WIDE = 0x80041074,
WBEM_E_METHOD_NAME_TOO_WIDE = 0x80041075,
WBEM_E_QUALIFIER_NAME_TOO_WIDE = 0x80041076,
WBEM_E_RERUN_COMMAND = 0x80041077,
WBEM_E_DATABASE_VER_MISMATCH = 0x80041078,
WBEM_E_VETO_DELETE = 0x80041079,
WBEM_E_VETO_PUT = 0x8004107a,
WBEM_E_INVALID_LOCALE = 0x80041080,
WBEM_E_PROVIDER_SUSPENDED = 0x80041081,
WBEM_E_SYNCHRONIZATION_REQUIRED = 0x80041082,
WBEM_E_NO_SCHEMA = 0x80041083,
WBEM_E_PROVIDER_ALREADY_REGISTERED = 0x80041084,
WBEM_E_PROVIDER_NOT_REGISTERED = 0x80041085,
WBEM_E_FATAL_TRANSPORT_ERROR = 0x80041086,
WBEM_E_ENCRYPTED_CONNECTION_REQUIRED = 0x80041087,
WBEM_E_PROVIDER_TIMED_OUT = 0x80041088,
WBEM_E_NO_KEY = 0x80041089,
WBEM_E_PROVIDER_DISABLED = 0x8004108a,
WBEMESS_E_REGISTRATION_TOO_BROAD = 0x80042001,
WBEMESS_E_REGISTRATION_TOO_PRECISE = 0x80042002,
WBEMESS_E_AUTHZ_NOT_PRIVILEGED = 0x80042003,
WBEMMOF_E_EXPECTED_QUALIFIER_NAME = 0x80044001,
WBEMMOF_E_EXPECTED_SEMI = 0x80044002,
WBEMMOF_E_EXPECTED_OPEN_BRACE = 0x80044003,
WBEMMOF_E_EXPECTED_CLOSE_BRACE = 0x80044004,
WBEMMOF_E_EXPECTED_CLOSE_BRACKET = 0x80044005,
WBEMMOF_E_EXPECTED_CLOSE_PAREN = 0x80044006,
WBEMMOF_E_ILLEGAL_CONSTANT_VALUE = 0x80044007,
WBEMMOF_E_EXPECTED_TYPE_IDENTIFIER = 0x80044008,
WBEMMOF_E_EXPECTED_OPEN_PAREN = 0x80044009,
WBEMMOF_E_UNRECOGNIZED_TOKEN = 0x8004400a,
WBEMMOF_E_UNRECOGNIZED_TYPE = 0x8004400b,
WBEMMOF_E_EXPECTED_PROPERTY_NAME = 0x8004400c,
WBEMMOF_E_TYPEDEF_NOT_SUPPORTED = 0x8004400d,
WBEMMOF_E_UNEXPECTED_ALIAS = 0x8004400e,
WBEMMOF_E_UNEXPECTED_ARRAY_INIT = 0x8004400f,
WBEMMOF_E_INVALID_AMENDMENT_SYNTAX = 0x80044010,
WBEMMOF_E_INVALID_DUPLICATE_AMENDMENT = 0x80044011,
WBEMMOF_E_INVALID_PRAGMA = 0x80044012,
WBEMMOF_E_INVALID_NAMESPACE_SYNTAX = 0x80044013,
WBEMMOF_E_EXPECTED_CLASS_NAME = 0x80044014,
WBEMMOF_E_TYPE_MISMATCH = 0x80044015,
WBEMMOF_E_EXPECTED_ALIAS_NAME = 0x80044016,
WBEMMOF_E_INVALID_CLASS_DECLARATION = 0x80044017,
WBEMMOF_E_INVALID_INSTANCE_DECLARATION = 0x80044018,
WBEMMOF_E_EXPECTED_DOLLAR = 0x80044019,
WBEMMOF_E_CIMTYPE_QUALIFIER = 0x8004401a,
WBEMMOF_E_DUPLICATE_PROPERTY = 0x8004401b,
WBEMMOF_E_INVALID_NAMESPACE_SPECIFICATION = 0x8004401c,
WBEMMOF_E_OUT_OF_RANGE = 0x8004401d,
WBEMMOF_E_INVALID_FILE = 0x8004401e,
WBEMMOF_E_ALIASES_IN_EMBEDDED = 0x8004401f,
WBEMMOF_E_NULL_ARRAY_ELEM = 0x80044020,
WBEMMOF_E_DUPLICATE_QUALIFIER = 0x80044021,
WBEMMOF_E_EXPECTED_FLAVOR_TYPE = 0x80044022,
WBEMMOF_E_INCOMPATIBLE_FLAVOR_TYPES = 0x80044023,
WBEMMOF_E_MULTIPLE_ALIASES = 0x80044024,
WBEMMOF_E_INCOMPATIBLE_FLAVOR_TYPES2 = 0x80044025,
WBEMMOF_E_NO_ARRAYS_RETURNED = 0x80044026,
WBEMMOF_E_MUST_BE_IN_OR_OUT = 0x80044027,
WBEMMOF_E_INVALID_FLAGS_SYNTAX = 0x80044028,
WBEMMOF_E_EXPECTED_BRACE_OR_BAD_TYPE = 0x80044029,
WBEMMOF_E_UNSUPPORTED_CIMV22_QUAL_VALUE = 0x8004402a,
WBEMMOF_E_UNSUPPORTED_CIMV22_DATA_TYPE = 0x8004402b,
WBEMMOF_E_INVALID_DELETEINSTANCE_SYNTAX = 0x8004402c,
WBEMMOF_E_INVALID_QUALIFIER_SYNTAX = 0x8004402d,
WBEMMOF_E_QUALIFIER_USED_OUTSIDE_SCOPE = 0x8004402e,
WBEMMOF_E_ERROR_CREATING_TEMP_FILE = 0x8004402f,
WBEMMOF_E_ERROR_INVALID_INCLUDE_FILE = 0x80044030,
WBEMMOF_E_INVALID_DELETECLASS_SYNTAX = 0x80044031
} WBEMSTATUS;
typedef enum tag_WBEM_CHANGE_FLAG_TYPE {
WBEM_FLAG_CREATE_OR_UPDATE = 0,
WBEM_FLAG_UPDATE_ONLY = 0x1,
WBEM_FLAG_CREATE_ONLY = 0x2,
WBEM_FLAG_UPDATE_COMPATIBLE = 0,
WBEM_FLAG_UPDATE_SAFE_MODE = 0x20,
WBEM_FLAG_UPDATE_FORCE_MODE = 0x40,
WBEM_MASK_UPDATE_MODE = 0x60,
WBEM_FLAG_ADVISORY = 0x10000
} WBEM_CHANGE_FLAG_TYPE;
typedef enum tag_WBEM_TIMEOUT_TYPE
{
WBEM_NO_WAIT = 0,
WBEM_INFINITE = 0xffffffff
} WBEM_TIMEOUT_TYPE;
typedef enum tag_WBEM_GENERIC_FLAG_TYPE {
WBEM_FLAG_RETURN_IMMEDIATELY = 0x10,
WBEM_FLAG_RETURN_WBEM_COMPLETE = 0,
WBEM_FLAG_BIDIRECTIONAL = 0,
WBEM_FLAG_FORWARD_ONLY = 0x20,
WBEM_FLAG_NO_ERROR_OBJECT = 0x40,
WBEM_FLAG_RETURN_ERROR_OBJECT = 0,
WBEM_FLAG_SEND_STATUS = 0x80,
WBEM_FLAG_DONT_SEND_STATUS = 0,
WBEM_FLAG_ENSURE_LOCATABLE = 0x100,
WBEM_FLAG_DIRECT_READ = 0x200,
WBEM_FLAG_SEND_ONLY_SELECTED = 0,
WBEM_RETURN_WHEN_COMPLETE = 0,
WBEM_RETURN_IMMEDIATELY = 0x10,
WBEM_MASK_RESERVED_FLAGS = 0x1f000,
WBEM_FLAG_USE_AMENDED_QUALIFIERS = 0x20000,
WBEM_FLAG_STRONG_VALIDATION = 0x100000
} WBEM_GENERIC_FLAG_TYPE;
typedef enum tagCLSCTX {
CLSCTX_INPROC_SERVER = 0x1,
@@ -1970,23 +1738,8 @@ typedef struct _SYSTEM_MODULE_INFORMATION64
} SYSTEM_MODULE_INFORMATION64, *PSYSTEM_MODULE_INFORMATION64;
typedef struct tagSAFEARRAYBOUND
{
ULONG cElements;
LONG lLbound;
} SAFEARRAYBOUND, *LPSAFEARRAYBOUND;
typedef struct tagSAFEARRAY
{
USHORT cDims;
USHORT fFeatures;
ULONG cbElements;
ULONG cLocks;
PVOID pvData;
SAFEARRAYBOUND rgsabound[ 1 ];
} SAFEARRAY;
typedef struct _DEBUG_BREAKPOINT_PARAMETERS {
ULONG64 Offset;
ULONG Id;
@@ -2125,50 +1878,6 @@ typedef struct tagDEC {
} DECIMAL;
typedef struct __tagBRECORD {
PVOID pvRecord;
PVOID pRecInfo;
} _tagBRECORD;
union TMP_variant_sub_union{
LONGLONG llVal;
LONG lVal;
BYTE bVal;
SHORT iVal;
FLOAT fltVal;
DOUBLE dblVal;
VARIANT_BOOL boolVal;
SCODE scode;
BSTR bstrVal;
PVOID punkVal;
PVOID pdispVal;
SAFEARRAY *parray;
BYTE *pbVal;
SHORT *piVal;
LONG *plVal;
LONGLONG *pllVal;
FLOAT *pfltVal;
DOUBLE *pdblVal;
VARIANT_BOOL *pboolVal;
SCODE *pscode;
BSTR *pbstrVal;
PVOID byref;
CHAR cVal;
USHORT uiVal;
ULONG ulVal;
ULONGLONG ullVal;
INT intVal;
UINT uintVal;
CHAR *pcVal;
USHORT *puiVal;
ULONG *pulVal;
ULONGLONG *pullVal;
INT *pintVal;
UINT *puintVal;
_tagBRECORD _VARIANT_NAME_4;
};
typedef enum tagTYPEKIND {
TKIND_ENUM = 0,
TKIND_RECORD = 1 ,
@@ -2185,15 +1894,6 @@ typedef enum tagTYPEKIND {
typedef struct __tagVARIANT {
VARTYPE vt;
WORD wReserved1;
WORD wReserved2;
WORD wReserved3;
TMP_variant_sub_union _VARIANT_NAME_3;
} _tagVARIANT, VARIANT, VARIANTARG, *LPVARIANT, *LPVARIANTARG;
typedef struct tagDISPPARAMS {
VARIANTARG *rgvarg;
DISPID *rgdispidNamedArgs;
@@ -0,0 +1,257 @@
typedef /* [v1_enum] */
enum tag_WBEM_GENUS_TYPE
{
WBEM_GENUS_CLASS = 1,
WBEM_GENUS_INSTANCE = 2
} WBEM_GENUS_TYPE;
typedef /* [v1_enum] */
enum tag_WBEM_CHANGE_FLAG_TYPE
{
WBEM_FLAG_CREATE_OR_UPDATE = 0,
WBEM_FLAG_UPDATE_ONLY = 0x1,
WBEM_FLAG_CREATE_ONLY = 0x2,
WBEM_FLAG_UPDATE_COMPATIBLE = 0,
WBEM_FLAG_UPDATE_SAFE_MODE = 0x20,
WBEM_FLAG_UPDATE_FORCE_MODE = 0x40,
WBEM_MASK_UPDATE_MODE = 0x60,
WBEM_FLAG_ADVISORY = 0x10000
} WBEM_CHANGE_FLAG_TYPE;
typedef enum tag_WBEMSTATUS {
WBEM_NO_ERROR = 0,
WBEM_S_NO_ERROR = 0,
WBEM_S_SAME = 0,
WBEM_S_FALSE = 1,
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 = 0x80041001,
WBEM_E_NOT_FOUND = 0x80041002,
WBEM_E_ACCESS_DENIED = 0x80041003,
WBEM_E_PROVIDER_FAILURE = 0x80041004,
WBEM_E_TYPE_MISMATCH = 0x80041005,
WBEM_E_OUT_OF_MEMORY = 0x80041006,
WBEM_E_INVALID_CONTEXT = 0x80041007,
WBEM_E_INVALID_PARAMETER = 0x80041008,
WBEM_E_NOT_AVAILABLE = 0x80041009,
WBEM_E_CRITICAL_ERROR = 0x8004100a,
WBEM_E_INVALID_STREAM = 0x8004100b,
WBEM_E_NOT_SUPPORTED = 0x8004100c,
WBEM_E_INVALID_SUPERCLASS = 0x8004100d,
WBEM_E_INVALID_NAMESPACE = 0x8004100e,
WBEM_E_INVALID_OBJECT = 0x8004100f,
WBEM_E_INVALID_CLASS = 0x80041010,
WBEM_E_PROVIDER_NOT_FOUND = 0x80041011,
WBEM_E_INVALID_PROVIDER_REGISTRATION = 0x80041012,
WBEM_E_PROVIDER_LOAD_FAILURE = 0x80041013,
WBEM_E_INITIALIZATION_FAILURE = 0x80041014,
WBEM_E_TRANSPORT_FAILURE = 0x80041015,
WBEM_E_INVALID_OPERATION = 0x80041016,
WBEM_E_INVALID_QUERY = 0x80041017,
WBEM_E_INVALID_QUERY_TYPE = 0x80041018,
WBEM_E_ALREADY_EXISTS = 0x80041019,
WBEM_E_OVERRIDE_NOT_ALLOWED = 0x8004101a,
WBEM_E_PROPAGATED_QUALIFIER = 0x8004101b,
WBEM_E_PROPAGATED_PROPERTY = 0x8004101c,
WBEM_E_UNEXPECTED = 0x8004101d,
WBEM_E_ILLEGAL_OPERATION = 0x8004101e,
WBEM_E_CANNOT_BE_KEY = 0x8004101f,
WBEM_E_INCOMPLETE_CLASS = 0x80041020,
WBEM_E_INVALID_SYNTAX = 0x80041021,
WBEM_E_NONDECORATED_OBJECT = 0x80041022,
WBEM_E_READ_ONLY = 0x80041023,
WBEM_E_PROVIDER_NOT_CAPABLE = 0x80041024,
WBEM_E_CLASS_HAS_CHILDREN = 0x80041025,
WBEM_E_CLASS_HAS_INSTANCES = 0x80041026,
WBEM_E_QUERY_NOT_IMPLEMENTED = 0x80041027,
WBEM_E_ILLEGAL_NULL = 0x80041028,
WBEM_E_INVALID_QUALIFIER_TYPE = 0x80041029,
WBEM_E_INVALID_PROPERTY_TYPE = 0x8004102a,
WBEM_E_VALUE_OUT_OF_RANGE = 0x8004102b,
WBEM_E_CANNOT_BE_SINGLETON = 0x8004102c,
WBEM_E_INVALID_CIM_TYPE = 0x8004102d,
WBEM_E_INVALID_METHOD = 0x8004102e,
WBEM_E_INVALID_METHOD_PARAMETERS = 0x8004102f,
WBEM_E_SYSTEM_PROPERTY = 0x80041030,
WBEM_E_INVALID_PROPERTY = 0x80041031,
WBEM_E_CALL_CANCELLED = 0x80041032,
WBEM_E_SHUTTING_DOWN = 0x80041033,
WBEM_E_PROPAGATED_METHOD = 0x80041034,
WBEM_E_UNSUPPORTED_PARAMETER = 0x80041035,
WBEM_E_MISSING_PARAMETER_ID = 0x80041036,
WBEM_E_INVALID_PARAMETER_ID = 0x80041037,
WBEM_E_NONCONSECUTIVE_PARAMETER_IDS = 0x80041038,
WBEM_E_PARAMETER_ID_ON_RETVAL = 0x80041039,
WBEM_E_INVALID_OBJECT_PATH = 0x8004103a,
WBEM_E_OUT_OF_DISK_SPACE = 0x8004103b,
WBEM_E_BUFFER_TOO_SMALL = 0x8004103c,
WBEM_E_UNSUPPORTED_PUT_EXTENSION = 0x8004103d,
WBEM_E_UNKNOWN_OBJECT_TYPE = 0x8004103e,
WBEM_E_UNKNOWN_PACKET_TYPE = 0x8004103f,
WBEM_E_MARSHAL_VERSION_MISMATCH = 0x80041040,
WBEM_E_MARSHAL_INVALID_SIGNATURE = 0x80041041,
WBEM_E_INVALID_QUALIFIER = 0x80041042,
WBEM_E_INVALID_DUPLICATE_PARAMETER = 0x80041043,
WBEM_E_TOO_MUCH_DATA = 0x80041044,
WBEM_E_SERVER_TOO_BUSY = 0x80041045,
WBEM_E_INVALID_FLAVOR = 0x80041046,
WBEM_E_CIRCULAR_REFERENCE = 0x80041047,
WBEM_E_UNSUPPORTED_CLASS_UPDATE = 0x80041048,
WBEM_E_CANNOT_CHANGE_KEY_INHERITANCE = 0x80041049,
WBEM_E_CANNOT_CHANGE_INDEX_INHERITANCE = 0x80041050,
WBEM_E_TOO_MANY_PROPERTIES = 0x80041051,
WBEM_E_UPDATE_TYPE_MISMATCH = 0x80041052,
WBEM_E_UPDATE_OVERRIDE_NOT_ALLOWED = 0x80041053,
WBEM_E_UPDATE_PROPAGATED_METHOD = 0x80041054,
WBEM_E_METHOD_NOT_IMPLEMENTED = 0x80041055,
WBEM_E_METHOD_DISABLED = 0x80041056,
WBEM_E_REFRESHER_BUSY = 0x80041057,
WBEM_E_UNPARSABLE_QUERY = 0x80041058,
WBEM_E_NOT_EVENT_CLASS = 0x80041059,
WBEM_E_MISSING_GROUP_WITHIN = 0x8004105a,
WBEM_E_MISSING_AGGREGATION_LIST = 0x8004105b,
WBEM_E_PROPERTY_NOT_AN_OBJECT = 0x8004105c,
WBEM_E_AGGREGATING_BY_OBJECT = 0x8004105d,
WBEM_E_UNINTERPRETABLE_PROVIDER_QUERY = 0x8004105f,
WBEM_E_BACKUP_RESTORE_WINMGMT_RUNNING = 0x80041060,
WBEM_E_QUEUE_OVERFLOW = 0x80041061,
WBEM_E_PRIVILEGE_NOT_HELD = 0x80041062,
WBEM_E_INVALID_OPERATOR = 0x80041063,
WBEM_E_LOCAL_CREDENTIALS = 0x80041064,
WBEM_E_CANNOT_BE_ABSTRACT = 0x80041065,
WBEM_E_AMENDED_OBJECT = 0x80041066,
WBEM_E_CLIENT_TOO_SLOW = 0x80041067,
WBEM_E_NULL_SECURITY_DESCRIPTOR = 0x80041068,
WBEM_E_TIMED_OUT = 0x80041069,
WBEM_E_INVALID_ASSOCIATION = 0x8004106a,
WBEM_E_AMBIGUOUS_OPERATION = 0x8004106b,
WBEM_E_QUOTA_VIOLATION = 0x8004106c,
WBEM_E_RESERVED_001 = 0x8004106d,
WBEM_E_RESERVED_002 = 0x8004106e,
WBEM_E_UNSUPPORTED_LOCALE = 0x8004106f,
WBEM_E_HANDLE_OUT_OF_DATE = 0x80041070,
WBEM_E_CONNECTION_FAILED = 0x80041071,
WBEM_E_INVALID_HANDLE_REQUEST = 0x80041072,
WBEM_E_PROPERTY_NAME_TOO_WIDE = 0x80041073,
WBEM_E_CLASS_NAME_TOO_WIDE = 0x80041074,
WBEM_E_METHOD_NAME_TOO_WIDE = 0x80041075,
WBEM_E_QUALIFIER_NAME_TOO_WIDE = 0x80041076,
WBEM_E_RERUN_COMMAND = 0x80041077,
WBEM_E_DATABASE_VER_MISMATCH = 0x80041078,
WBEM_E_VETO_DELETE = 0x80041079,
WBEM_E_VETO_PUT = 0x8004107a,
WBEM_E_INVALID_LOCALE = 0x80041080,
WBEM_E_PROVIDER_SUSPENDED = 0x80041081,
WBEM_E_SYNCHRONIZATION_REQUIRED = 0x80041082,
WBEM_E_NO_SCHEMA = 0x80041083,
WBEM_E_PROVIDER_ALREADY_REGISTERED = 0x80041084,
WBEM_E_PROVIDER_NOT_REGISTERED = 0x80041085,
WBEM_E_FATAL_TRANSPORT_ERROR = 0x80041086,
WBEM_E_ENCRYPTED_CONNECTION_REQUIRED = 0x80041087,
WBEM_E_PROVIDER_TIMED_OUT = 0x80041088,
WBEM_E_NO_KEY = 0x80041089,
WBEM_E_PROVIDER_DISABLED = 0x8004108a,
WBEMESS_E_REGISTRATION_TOO_BROAD = 0x80042001,
WBEMESS_E_REGISTRATION_TOO_PRECISE = 0x80042002,
WBEMESS_E_AUTHZ_NOT_PRIVILEGED = 0x80042003,
WBEMMOF_E_EXPECTED_QUALIFIER_NAME = 0x80044001,
WBEMMOF_E_EXPECTED_SEMI = 0x80044002,
WBEMMOF_E_EXPECTED_OPEN_BRACE = 0x80044003,
WBEMMOF_E_EXPECTED_CLOSE_BRACE = 0x80044004,
WBEMMOF_E_EXPECTED_CLOSE_BRACKET = 0x80044005,
WBEMMOF_E_EXPECTED_CLOSE_PAREN = 0x80044006,
WBEMMOF_E_ILLEGAL_CONSTANT_VALUE = 0x80044007,
WBEMMOF_E_EXPECTED_TYPE_IDENTIFIER = 0x80044008,
WBEMMOF_E_EXPECTED_OPEN_PAREN = 0x80044009,
WBEMMOF_E_UNRECOGNIZED_TOKEN = 0x8004400a,
WBEMMOF_E_UNRECOGNIZED_TYPE = 0x8004400b,
WBEMMOF_E_EXPECTED_PROPERTY_NAME = 0x8004400c,
WBEMMOF_E_TYPEDEF_NOT_SUPPORTED = 0x8004400d,
WBEMMOF_E_UNEXPECTED_ALIAS = 0x8004400e,
WBEMMOF_E_UNEXPECTED_ARRAY_INIT = 0x8004400f,
WBEMMOF_E_INVALID_AMENDMENT_SYNTAX = 0x80044010,
WBEMMOF_E_INVALID_DUPLICATE_AMENDMENT = 0x80044011,
WBEMMOF_E_INVALID_PRAGMA = 0x80044012,
WBEMMOF_E_INVALID_NAMESPACE_SYNTAX = 0x80044013,
WBEMMOF_E_EXPECTED_CLASS_NAME = 0x80044014,
WBEMMOF_E_TYPE_MISMATCH = 0x80044015,
WBEMMOF_E_EXPECTED_ALIAS_NAME = 0x80044016,
WBEMMOF_E_INVALID_CLASS_DECLARATION = 0x80044017,
WBEMMOF_E_INVALID_INSTANCE_DECLARATION = 0x80044018,
WBEMMOF_E_EXPECTED_DOLLAR = 0x80044019,
WBEMMOF_E_CIMTYPE_QUALIFIER = 0x8004401a,
WBEMMOF_E_DUPLICATE_PROPERTY = 0x8004401b,
WBEMMOF_E_INVALID_NAMESPACE_SPECIFICATION = 0x8004401c,
WBEMMOF_E_OUT_OF_RANGE = 0x8004401d,
WBEMMOF_E_INVALID_FILE = 0x8004401e,
WBEMMOF_E_ALIASES_IN_EMBEDDED = 0x8004401f,
WBEMMOF_E_NULL_ARRAY_ELEM = 0x80044020,
WBEMMOF_E_DUPLICATE_QUALIFIER = 0x80044021,
WBEMMOF_E_EXPECTED_FLAVOR_TYPE = 0x80044022,
WBEMMOF_E_INCOMPATIBLE_FLAVOR_TYPES = 0x80044023,
WBEMMOF_E_MULTIPLE_ALIASES = 0x80044024,
WBEMMOF_E_INCOMPATIBLE_FLAVOR_TYPES2 = 0x80044025,
WBEMMOF_E_NO_ARRAYS_RETURNED = 0x80044026,
WBEMMOF_E_MUST_BE_IN_OR_OUT = 0x80044027,
WBEMMOF_E_INVALID_FLAGS_SYNTAX = 0x80044028,
WBEMMOF_E_EXPECTED_BRACE_OR_BAD_TYPE = 0x80044029,
WBEMMOF_E_UNSUPPORTED_CIMV22_QUAL_VALUE = 0x8004402a,
WBEMMOF_E_UNSUPPORTED_CIMV22_DATA_TYPE = 0x8004402b,
WBEMMOF_E_INVALID_DELETEINSTANCE_SYNTAX = 0x8004402c,
WBEMMOF_E_INVALID_QUALIFIER_SYNTAX = 0x8004402d,
WBEMMOF_E_QUALIFIER_USED_OUTSIDE_SCOPE = 0x8004402e,
WBEMMOF_E_ERROR_CREATING_TEMP_FILE = 0x8004402f,
WBEMMOF_E_ERROR_INVALID_INCLUDE_FILE = 0x80044030,
WBEMMOF_E_INVALID_DELETECLASS_SYNTAX = 0x80044031
} WBEMSTATUS;
typedef enum tag_WBEM_TIMEOUT_TYPE
{
WBEM_NO_WAIT = 0,
WBEM_INFINITE = 0xffffffff
} WBEM_TIMEOUT_TYPE;
typedef enum tag_WBEM_GENERIC_FLAG_TYPE {
WBEM_FLAG_RETURN_IMMEDIATELY = 0x10,
WBEM_FLAG_RETURN_WBEM_COMPLETE = 0,
WBEM_FLAG_BIDIRECTIONAL = 0,
WBEM_FLAG_FORWARD_ONLY = 0x20,
WBEM_FLAG_NO_ERROR_OBJECT = 0x40,
WBEM_FLAG_RETURN_ERROR_OBJECT = 0,
WBEM_FLAG_SEND_STATUS = 0x80,
WBEM_FLAG_DONT_SEND_STATUS = 0,
WBEM_FLAG_ENSURE_LOCATABLE = 0x100,
WBEM_FLAG_DIRECT_READ = 0x200,
WBEM_FLAG_SEND_ONLY_SELECTED = 0,
WBEM_RETURN_WHEN_COMPLETE = 0,
WBEM_RETURN_IMMEDIATELY = 0x10,
WBEM_MASK_RESERVED_FLAGS = 0x1f000,
WBEM_FLAG_USE_AMENDED_QUALIFIERS = 0x20000,
WBEM_FLAG_STRONG_VALIDATION = 0x100000
} WBEM_GENERIC_FLAG_TYPE;
typedef enum tag_WBEM_CONNECT_OPTIONS {
WBEM_FLAG_CONNECT_REPOSITORY_ONLY = 0x40,
WBEM_FLAG_CONNECT_USE_MAX_WAIT = 0x80,
WBEM_FLAG_CONNECT_PROVIDERS = 0x100
} WBEM_CONNECT_OPTIONS;
typedef enum tag_WBEM_QUERY_FLAG_TYPE {
WBEM_FLAG_DEEP = 0,
WBEM_FLAG_SHALLOW = 1,
WBEM_FLAG_PROTOTYPE = 2
} WBEM_QUERY_FLAG_TYPE;
@@ -18,6 +18,12 @@ class PSID(_INITIAL_PSID): # _INITIAL_PSID -> PVOID
def size(self):
return windows.winproxy.GetLengthSid(self)
def duplicate(self):
size = self.size
buffer = ctypes.c_buffer(size)
windows.winproxy.CopySid(size, buffer, self)
return ctypes.cast(buffer, type(self))
@classmethod
def from_string(cls, strsid):
self = cls()
@@ -39,3 +45,4 @@ class PSID(_INITIAL_PSID): # _INITIAL_PSID -> PVOID
return """<{0} "None" at {1:#x}>""".format(type(self).__name__, id(self))
return """<{0} "<conversion-failed>" at {1:#x}>""".format(type(self).__name__, id(self))
__sprint__ = __repr__
+4 -2
View File
@@ -21,8 +21,10 @@ class _GUID(INITIAL_GUID):
if getattr(self, "name", notpresent) is notpresent:
self.name = None
if self.name is None:
return '<IID "{0}">'.format(self.strid.upper())
return '<IID "{0}({1})">'.format(self.strid.upper(), self.name)
return '<GUID "{0}">'.format(self.strid.upper())
return '<GUID "{0}({1})">'.format(self.strid.upper(), self.name)
__sprint__ = __repr__
def to_string(self):
data4_format = "{0:02X}{1:02X}-" + "".join("{{{i}:02X}}".format(i=i + 2) for i in range(6))
@@ -21,4 +21,11 @@ class _LSA_UNICODE_STRING(INITIAL_LSA_UNICODE_STRING):
return cls(utf16_len, utf16_len, ctypes.cast(PWSTR(s), PVOID))
def __repr__(self):
return """<{0} "{1}" at {2}>""".format(type(self).__name__, self.str, hex(id(self)))
return """<{0} "{1}" at {2}>""".format(type(self).__name__, self.str, hex(id(self)))
def __sprint__(self):
try:
return self.__repr__()
except TypeError as e:
# Bad buffer: print raw infos
return """<{0} len={1} maxlen={2} buffer={3}>""".format(type(self).__name__, self.Length, self.MaximumLength, self.Buffer)
@@ -0,0 +1,7 @@
_INITIAL_LUID = _LUID
class _LUID(_INITIAL_LUID):
def __int__(self):
return (self.HighPart << 32) | self.LowPart
def __repr__(self):
return "<{0} HighPart={1} LowPart={2}>".format(type(self).__name__, self.HighPart, self.LowPart)
@@ -26,6 +26,12 @@ class _MEMORY_BASIC_INFORMATION32(INITIAL_MEMORY_BASIC_INFORMATION32):
# Finally make a chooser somewhere ?
return self.PROTECT_MAPPER[raw_protect]
@property
def AllocationProtect(self):
raw_protect = super(_MEMORY_BASIC_INFORMATION32, self).AllocationProtect
# Finally make a chooser somewhere ?
return self.PROTECT_MAPPER[raw_protect]
def __repr__(self):
return "<MEMORY_BASIC_INFORMATION32 BaseAddress={0:#08x} RegionSize={1:#08x} State={2} Type={3} Protect={4}>".format(
self.BaseAddress, self.RegionSize, self.State, self.Type, self.Protect)
@@ -26,6 +26,12 @@ class _MEMORY_BASIC_INFORMATION64(INITIAL_MEMORY_BASIC_INFORMATION64):
# Finally make a chooser somewhere ?
return self.PROTECT_MAPPER[raw_protect]
@property
def AllocationProtect(self):
raw_protect = super(_MEMORY_BASIC_INFORMATION32, self).AllocationProtect
# Finally make a chooser somewhere ?
return self.PROTECT_MAPPER[raw_protect]
def __repr__(self):
return "<MEMORY_BASIC_INFORMATION64 BaseAddress={0:#08x} RegionSize={1:#08x} State={2} Type={3} Protect={4}>".format(
self.BaseAddress, self.RegionSize, self.State, self.Type, self.Protect)
@@ -0,0 +1,15 @@
_INITIAL_SID_AND_ATTRIBUTES = _SID_AND_ATTRIBUTES
class _SID_AND_ATTRIBUTES(_INITIAL_SID_AND_ATTRIBUTES):
pass
# Only in TOKEN_GROUPS
# attributes = FlagExatractor(_INITIAL_SID_AND_ATTRIBUTES.Attributes,
# (SE_GROUP_MANDATORY,
# SE_GROUP_ENABLED_BY_DEFAULT,
# SE_GROUP_ENABLED,
# SE_GROUP_OWNER,
# SE_GROUP_USE_FOR_DENY_ONLY,
# SE_GROUP_INTEGRITY,
# SE_GROUP_INTEGRITY_ENABLED,
# SE_GROUP_LOGON_ID,
# SE_GROUP_RESOURCE))
+143 -142
View File
@@ -5,14 +5,6 @@ import ctypes
generate_IID = IID.from_raw
def pouet(*args):
print("POUET POUET")
print(args)
raise NotImplementedError(":(")
return 0
# HRESULT._check_retval_ = pouet
# ctypes._check_HRESULT = pouet
class COMHRESULT(HRESULT):
_type_ = HRESULT._type_
@@ -26,7 +18,6 @@ class COMInterface(ctypes.c_void_p):
_functions_ = {
}
# So COMInterface completely bypass the HRESULT
# return value check on restype by setting the restype to COMHRESULT
# But we add the 'errcheck' callbakc capacity for all COMInterface and subclasses
@@ -39,11 +30,13 @@ class COMInterface(ctypes.c_void_p):
def __getattr__(self, name):
if name in self._functions_:
x = self._functions_[name]
x.restype = COMHRESULT
winfunc = self._functions_[name]
# Hacking the HRESULT _check_retval_ and
# letting COMInterface.errcheck do the work of validating / raising
winfunc.restype = COMHRESULT
effective_errcheck = getattr(self, "errcheck", self._default_errcheck)
x.errcheck = effective_errcheck
return functools.partial(x, self)
winfunc.errcheck = effective_errcheck
return functools.partial(winfunc, self)
return super(COMInterface, self).__getattribute__(name)
def __repr__(self):
@@ -56,6 +49,14 @@ class COMInterface(ctypes.c_void_p):
self.QueryInterface(interface.IID, interface)
return interface
class IBackgroundCopyCallback(COMInterface):
IID = generate_IID(0x97EA99C7, 0x0186, 0x4AD4, 0x8D, 0xF9, 0xC5, 0xB4, 0xE0, 0xED, 0x6B, 0x22, name="IBackgroundCopyCallback", strid="97EA99C7-0186-4AD4-8DF9-C5B4E0ED6B22")
@@ -218,9 +219,9 @@ class ITriggerCollection(COMInterface):
IBackgroundCopyCallback._functions_ = {
# QueryInterface -> riid:REFIID, ppvObject:**void
"QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"),
# AddRef ->
# AddRef ->
"AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"),
# Release ->
# Release ->
"Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"),
# JobTransferred -> pJob:*IBackgroundCopyJob
"JobTransferred": ctypes.WINFUNCTYPE(HRESULT, IBackgroundCopyJob)(3, "JobTransferred"),
@@ -233,9 +234,9 @@ IBackgroundCopyCallback._functions_ = {
IBackgroundCopyError._functions_ = {
# QueryInterface -> riid:REFIID, ppvObject:**void
"QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"),
# AddRef ->
# AddRef ->
"AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"),
# Release ->
# Release ->
"Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"),
# GetError -> pContext:*BG_ERROR_CONTEXT, pCode:*HRESULT
"GetError": ctypes.WINFUNCTYPE(HRESULT, POINTER(BG_ERROR_CONTEXT), POINTER(HRESULT))(3, "GetError"),
@@ -252,9 +253,9 @@ IBackgroundCopyError._functions_ = {
IBackgroundCopyFile._functions_ = {
# QueryInterface -> riid:REFIID, ppvObject:**void
"QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"),
# AddRef ->
# AddRef ->
"AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"),
# Release ->
# Release ->
"Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"),
# GetRemoteName -> pVal:*LPWSTR
"GetRemoteName": ctypes.WINFUNCTYPE(HRESULT, POINTER(LPWSTR))(3, "GetRemoteName"),
@@ -267,9 +268,9 @@ IBackgroundCopyFile._functions_ = {
IBackgroundCopyJob._functions_ = {
# QueryInterface -> riid:REFIID, ppvObject:**void
"QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"),
# AddRef ->
# AddRef ->
"AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"),
# Release ->
# Release ->
"Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"),
# AddFileSet -> cFileCount:ULONG, pFileSet:*BG_FILE_INFO
"AddFileSet": ctypes.WINFUNCTYPE(HRESULT, ULONG, POINTER(BG_FILE_INFO))(3, "AddFileSet"),
@@ -277,13 +278,13 @@ IBackgroundCopyJob._functions_ = {
"AddFile": ctypes.WINFUNCTYPE(HRESULT, LPCWSTR, LPCWSTR)(4, "AddFile"),
# EnumFiles -> pEnum:**IEnumBackgroundCopyFiles
"EnumFiles": ctypes.WINFUNCTYPE(HRESULT, POINTER(IEnumBackgroundCopyFiles))(5, "EnumFiles"),
# Suspend ->
# Suspend ->
"Suspend": ctypes.WINFUNCTYPE(HRESULT)(6, "Suspend"),
# Resume ->
# Resume ->
"Resume": ctypes.WINFUNCTYPE(HRESULT)(7, "Resume"),
# Cancel ->
# Cancel ->
"Cancel": ctypes.WINFUNCTYPE(HRESULT)(8, "Cancel"),
# Complete ->
# Complete ->
"Complete": ctypes.WINFUNCTYPE(HRESULT)(9, "Complete"),
# GetId -> pVal:*GUID
"GetId": ctypes.WINFUNCTYPE(HRESULT, POINTER(GUID))(10, "GetId"),
@@ -333,16 +334,16 @@ IBackgroundCopyJob._functions_ = {
"SetProxySettings": ctypes.WINFUNCTYPE(HRESULT, BG_JOB_PROXY_USAGE, POINTER(WCHAR), POINTER(WCHAR))(32, "SetProxySettings"),
# GetProxySettings -> pProxyUsage:*BG_JOB_PROXY_USAGE, pProxyList:*LPWSTR, pProxyBypassList:*LPWSTR
"GetProxySettings": ctypes.WINFUNCTYPE(HRESULT, POINTER(BG_JOB_PROXY_USAGE), POINTER(LPWSTR), POINTER(LPWSTR))(33, "GetProxySettings"),
# TakeOwnership ->
# TakeOwnership ->
"TakeOwnership": ctypes.WINFUNCTYPE(HRESULT)(34, "TakeOwnership"),
}
IBackgroundCopyManager._functions_ = {
# QueryInterface -> riid:REFIID, ppvObject:**void
"QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"),
# AddRef ->
# AddRef ->
"AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"),
# Release ->
# Release ->
"Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"),
# CreateJob -> DisplayName:LPCWSTR, Type:BG_JOB_TYPE, pJobId:*GUID, ppJob:**IBackgroundCopyJob
"CreateJob": ctypes.WINFUNCTYPE(HRESULT, LPCWSTR, BG_JOB_TYPE, POINTER(GUID), POINTER(IBackgroundCopyJob))(3, "CreateJob"),
@@ -357,9 +358,9 @@ IBackgroundCopyManager._functions_ = {
ICallFrame._functions_ = {
# QueryInterface -> riid:REFIID, ppvObject:**void
"QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"),
# AddRef ->
# AddRef ->
"AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"),
# Release ->
# Release ->
"Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"),
# GetInfo -> pInfo:*CALLFRAMEINFO
"GetInfo": ctypes.WINFUNCTYPE(HRESULT, POINTER(CALLFRAMEINFO))(3, "GetInfo"),
@@ -367,13 +368,13 @@ ICallFrame._functions_ = {
"GetIIDAndMethod": ctypes.WINFUNCTYPE(HRESULT, POINTER(IID), POINTER(ULONG))(4, "GetIIDAndMethod"),
# GetNames -> pwszInterface:*LPWSTR, pwszMethod:*LPWSTR
"GetNames": ctypes.WINFUNCTYPE(HRESULT, POINTER(LPWSTR), POINTER(LPWSTR))(5, "GetNames"),
# GetStackLocation ->
# GetStackLocation ->
"GetStackLocation": ctypes.WINFUNCTYPE(PVOID)(6, "GetStackLocation"),
# SetStackLocation -> pvStack:PVOID
"SetStackLocation": ctypes.WINFUNCTYPE(VOID, PVOID)(7, "SetStackLocation"),
# SetReturnValue -> hr:HRESULT
"SetReturnValue": ctypes.WINFUNCTYPE(VOID, HRESULT)(8, "SetReturnValue"),
# GetReturnValue ->
# GetReturnValue ->
"GetReturnValue": ctypes.WINFUNCTYPE(HRESULT)(9, "GetReturnValue"),
# GetParamInfo -> iparam:ULONG, pInfo:*CALLFRAMEPARAMINFO
"GetParamInfo": ctypes.WINFUNCTYPE(HRESULT, ULONG, POINTER(CALLFRAMEPARAMINFO))(10, "GetParamInfo"),
@@ -404,9 +405,9 @@ ICallFrame._functions_ = {
ICallFrameEvents._functions_ = {
# QueryInterface -> riid:REFIID, ppvObject:**void
"QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"),
# AddRef ->
# AddRef ->
"AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"),
# Release ->
# Release ->
"Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"),
# OnCall -> pFrame:*ICallFrame
"OnCall": ctypes.WINFUNCTYPE(HRESULT, ICallFrame)(3, "OnCall"),
@@ -415,9 +416,9 @@ ICallFrameEvents._functions_ = {
ICallFrameWalker._functions_ = {
# QueryInterface -> riid:REFIID, ppvObject:**void
"QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"),
# AddRef ->
# AddRef ->
"AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"),
# Release ->
# Release ->
"Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"),
# OnWalkInterface -> iid:REFIID, ppvInterface:*PVOID, fIn:BOOL, fOut:BOOL
"OnWalkInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID), BOOL, BOOL)(3, "OnWalkInterface"),
@@ -426,9 +427,9 @@ ICallFrameWalker._functions_ = {
ICallInterceptor._functions_ = {
# QueryInterface -> riid:REFIID, ppvObject:**void
"QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"),
# AddRef ->
# AddRef ->
"AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"),
# Release ->
# Release ->
"Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"),
# CallIndirect -> phrReturn:*HRESULT, iMethod:ULONG, pvArgs:*void, cbArgs:*ULONG
"CallIndirect": ctypes.WINFUNCTYPE(HRESULT, POINTER(HRESULT), ULONG, PVOID, POINTER(ULONG))(3, "CallIndirect"),
@@ -447,9 +448,9 @@ ICallInterceptor._functions_ = {
IDispatch._functions_ = {
# QueryInterface -> riid:REFIID, ppvObject:**void
"QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"),
# AddRef ->
# AddRef ->
"AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"),
# Release ->
# Release ->
"Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"),
# GetTypeInfoCount -> pctinfo:*UINT
"GetTypeInfoCount": ctypes.WINFUNCTYPE(HRESULT, POINTER(UINT))(3, "GetTypeInfoCount"),
@@ -464,15 +465,15 @@ IDispatch._functions_ = {
IEnumBackgroundCopyFiles._functions_ = {
# QueryInterface -> riid:REFIID, ppvObject:**void
"QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"),
# AddRef ->
# AddRef ->
"AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"),
# Release ->
# Release ->
"Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"),
# Next -> celt:ULONG, rgelt:**IBackgroundCopyFile, pceltFetched:*ULONG
"Next": ctypes.WINFUNCTYPE(HRESULT, ULONG, POINTER(IBackgroundCopyFile), POINTER(ULONG))(3, "Next"),
# Skip -> celt:ULONG
"Skip": ctypes.WINFUNCTYPE(HRESULT, ULONG)(4, "Skip"),
# Reset ->
# Reset ->
"Reset": ctypes.WINFUNCTYPE(HRESULT)(5, "Reset"),
# Clone -> ppenum:**IEnumBackgroundCopyFiles
"Clone": ctypes.WINFUNCTYPE(HRESULT, POINTER(IEnumBackgroundCopyFiles))(6, "Clone"),
@@ -483,15 +484,15 @@ IEnumBackgroundCopyFiles._functions_ = {
IEnumBackgroundCopyJobs._functions_ = {
# QueryInterface -> riid:REFIID, ppvObject:**void
"QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"),
# AddRef ->
# AddRef ->
"AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"),
# Release ->
# Release ->
"Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"),
# Next -> celt:ULONG, rgelt:**IBackgroundCopyJob, pceltFetched:*ULONG
"Next": ctypes.WINFUNCTYPE(HRESULT, ULONG, POINTER(IBackgroundCopyJob), POINTER(ULONG))(3, "Next"),
# Skip -> celt:ULONG
"Skip": ctypes.WINFUNCTYPE(HRESULT, ULONG)(4, "Skip"),
# Reset ->
# Reset ->
"Reset": ctypes.WINFUNCTYPE(HRESULT)(5, "Reset"),
# Clone -> ppenum:**IEnumBackgroundCopyJobs
"Clone": ctypes.WINFUNCTYPE(HRESULT, POINTER(IEnumBackgroundCopyJobs))(6, "Clone"),
@@ -502,15 +503,15 @@ IEnumBackgroundCopyJobs._functions_ = {
IEnumVARIANT._functions_ = {
# QueryInterface -> riid:REFIID, ppvObject:**void
"QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"),
# AddRef ->
# AddRef ->
"AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"),
# Release ->
# Release ->
"Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"),
# Next -> celt:ULONG, rgVar:*VARIANT, pCeltFetched:*ULONG
"Next": ctypes.WINFUNCTYPE(HRESULT, ULONG, POINTER(VARIANT), POINTER(ULONG))(3, "Next"),
# Skip -> celt:ULONG
"Skip": ctypes.WINFUNCTYPE(HRESULT, ULONG)(4, "Skip"),
# Reset ->
# Reset ->
"Reset": ctypes.WINFUNCTYPE(HRESULT)(5, "Reset"),
# Clone -> ppEnum:**IEnumVARIANT
"Clone": ctypes.WINFUNCTYPE(HRESULT, POINTER(IEnumVARIANT))(6, "Clone"),
@@ -519,11 +520,11 @@ IEnumVARIANT._functions_ = {
IEnumWbemClassObject._functions_ = {
# QueryInterface -> riid:REFIID, ppvObject:**void
"QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"),
# AddRef ->
# AddRef ->
"AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"),
# Release ->
# Release ->
"Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"),
# Reset ->
# Reset ->
"Reset": ctypes.WINFUNCTYPE(HRESULT)(3, "Reset"),
# Next -> lTimeout:LONG, uCount:ULONG, apObjects:**IWbemClassObject, puReturned:*ULONG
"Next": ctypes.WINFUNCTYPE(HRESULT, LONG, ULONG, POINTER(IWbemClassObject), POINTER(ULONG))(4, "Next"),
@@ -538,9 +539,9 @@ IEnumWbemClassObject._functions_ = {
INetFwPolicy2._functions_ = {
# QueryInterface -> riid:REFIID, ppvObject:**void
"QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"),
# AddRef ->
# AddRef ->
"AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"),
# Release ->
# Release ->
"Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"),
# GetTypeInfoCount -> pctinfo:*UINT
"GetTypeInfoCount": ctypes.WINFUNCTYPE(HRESULT, POINTER(UINT))(3, "GetTypeInfoCount"),
@@ -580,7 +581,7 @@ INetFwPolicy2._functions_ = {
"EnableRuleGroup": ctypes.WINFUNCTYPE(HRESULT, LONG, BSTR, VARIANT_BOOL)(20, "EnableRuleGroup"),
# IsRuleGroupEnabled -> profileTypesBitmask:LONG, group:BSTR, enabled:*VARIANT_BOOL
"IsRuleGroupEnabled": ctypes.WINFUNCTYPE(HRESULT, LONG, BSTR, POINTER(VARIANT_BOOL))(21, "IsRuleGroupEnabled"),
# RestoreLocalFirewallDefaults ->
# RestoreLocalFirewallDefaults ->
"RestoreLocalFirewallDefaults": ctypes.WINFUNCTYPE(HRESULT)(22, "RestoreLocalFirewallDefaults"),
# get_DefaultInboundAction -> profileType:NET_FW_PROFILE_TYPE2, action:*NET_FW_ACTION
"get_DefaultInboundAction": ctypes.WINFUNCTYPE(HRESULT, NET_FW_PROFILE_TYPE2, POINTER(NET_FW_ACTION))(23, "get_DefaultInboundAction"),
@@ -599,9 +600,9 @@ INetFwPolicy2._functions_ = {
INetFwRules._functions_ = {
# QueryInterface -> riid:REFIID, ppvObject:**void
"QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"),
# AddRef ->
# AddRef ->
"AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"),
# Release ->
# Release ->
"Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"),
# GetTypeInfoCount -> pctinfo:*UINT
"GetTypeInfoCount": ctypes.WINFUNCTYPE(HRESULT, POINTER(UINT))(3, "GetTypeInfoCount"),
@@ -626,9 +627,9 @@ INetFwRules._functions_ = {
INetFwRule._functions_ = {
# QueryInterface -> riid:REFIID, ppvObject:**void
"QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"),
# AddRef ->
# AddRef ->
"AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"),
# Release ->
# Release ->
"Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"),
# GetTypeInfoCount -> pctinfo:*UINT
"GetTypeInfoCount": ctypes.WINFUNCTYPE(HRESULT, POINTER(UINT))(3, "GetTypeInfoCount"),
@@ -715,9 +716,9 @@ INetFwRule._functions_ = {
INetFwServiceRestriction._functions_ = {
# QueryInterface -> riid:REFIID, ppvObject:**void
"QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"),
# AddRef ->
# AddRef ->
"AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"),
# Release ->
# Release ->
"Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"),
# GetTypeInfoCount -> pctinfo:*UINT
"GetTypeInfoCount": ctypes.WINFUNCTYPE(HRESULT, POINTER(UINT))(3, "GetTypeInfoCount"),
@@ -738,13 +739,13 @@ INetFwServiceRestriction._functions_ = {
IPersistFile._functions_ = {
# QueryInterface -> riid:REFIID, ppvObject:**void
"QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"),
# AddRef ->
# AddRef ->
"AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"),
# Release ->
# Release ->
"Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"),
# GetClassID -> pClassID:*CLSID
"GetClassID": ctypes.WINFUNCTYPE(HRESULT, POINTER(CLSID))(3, "GetClassID"),
# IsDirty ->
# IsDirty ->
"IsDirty": ctypes.WINFUNCTYPE(HRESULT)(4, "IsDirty"),
# Load -> pszFileName:LPCOLESTR, dwMode:DWORD
"Load": ctypes.WINFUNCTYPE(HRESULT, LPCOLESTR, DWORD)(5, "Load"),
@@ -759,9 +760,9 @@ IPersistFile._functions_ = {
IShellLinkA._functions_ = {
# QueryInterface -> riid:REFIID, ppvObject:**void
"QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"),
# AddRef ->
# AddRef ->
"AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"),
# Release ->
# Release ->
"Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"),
# GetPath -> pszFile:LPSTR, cch:INT, pfd:*WIN32_FIND_DATAA, fFlags:DWORD
"GetPath": ctypes.WINFUNCTYPE(HRESULT, LPSTR, INT, POINTER(WIN32_FIND_DATAA), DWORD)(3, "GetPath"),
@@ -804,9 +805,9 @@ IShellLinkA._functions_ = {
IShellLinkW._functions_ = {
# QueryInterface -> riid:REFIID, ppvObject:**void
"QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"),
# AddRef ->
# AddRef ->
"AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"),
# Release ->
# Release ->
"Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"),
# GetPath -> pszFile:LPWSTR, cch:INT, pfd:*WIN32_FIND_DATAW, fFlags:DWORD
"GetPath": ctypes.WINFUNCTYPE(HRESULT, LPWSTR, INT, POINTER(WIN32_FIND_DATAW), DWORD)(3, "GetPath"),
@@ -849,18 +850,18 @@ IShellLinkW._functions_ = {
IUnknown._functions_ = {
# QueryInterface -> riid:REFIID, ppvObject:**void
"QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"),
# AddRef ->
# AddRef ->
"AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"),
# Release ->
# Release ->
"Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"),
}
IWbemCallResult._functions_ = {
# QueryInterface -> riid:REFIID, ppvObject:**void
"QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"),
# AddRef ->
# AddRef ->
"AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"),
# Release ->
# Release ->
"Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"),
# GetResultObject -> lTimeout:LONG, ppResultObject:**IWbemClassObject
"GetResultObject": ctypes.WINFUNCTYPE(HRESULT, LONG, POINTER(IWbemClassObject))(3, "GetResultObject"),
@@ -875,9 +876,9 @@ IWbemCallResult._functions_ = {
IWbemClassObject._functions_ = {
# QueryInterface -> riid:REFIID, ppvObject:**void
"QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"),
# AddRef ->
# AddRef ->
"AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"),
# Release ->
# Release ->
"Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"),
# GetQualifierSet -> ppQualSet:**IWbemQualifierSet
"GetQualifierSet": ctypes.WINFUNCTYPE(HRESULT, POINTER(IWbemQualifierSet))(3, "GetQualifierSet"),
@@ -893,7 +894,7 @@ IWbemClassObject._functions_ = {
"BeginEnumeration": ctypes.WINFUNCTYPE(HRESULT, LONG)(8, "BeginEnumeration"),
# Next -> lFlags:LONG, strName:*BSTR, pVal:*VARIANT, pType:*CIMTYPE, plFlavor:*LONG
"Next": ctypes.WINFUNCTYPE(HRESULT, LONG, POINTER(BSTR), POINTER(VARIANT), POINTER(CIMTYPE), POINTER(LONG))(9, "Next"),
# EndEnumeration ->
# EndEnumeration ->
"EndEnumeration": ctypes.WINFUNCTYPE(HRESULT)(10, "EndEnumeration"),
# GetPropertyQualifierSet -> wszProperty:LPCWSTR, ppQualSet:**IWbemQualifierSet
"GetPropertyQualifierSet": ctypes.WINFUNCTYPE(HRESULT, LPCWSTR, POINTER(IWbemQualifierSet))(11, "GetPropertyQualifierSet"),
@@ -921,7 +922,7 @@ IWbemClassObject._functions_ = {
"BeginMethodEnumeration": ctypes.WINFUNCTYPE(HRESULT, LONG)(22, "BeginMethodEnumeration"),
# NextMethod -> lFlags:LONG, pstrName:*BSTR, ppInSignature:**IWbemClassObject, ppOutSignature:**IWbemClassObject
"NextMethod": ctypes.WINFUNCTYPE(HRESULT, LONG, POINTER(BSTR), POINTER(IWbemClassObject), POINTER(IWbemClassObject))(23, "NextMethod"),
# EndMethodEnumeration ->
# EndMethodEnumeration ->
"EndMethodEnumeration": ctypes.WINFUNCTYPE(HRESULT)(24, "EndMethodEnumeration"),
# GetMethodQualifierSet -> wszMethod:LPCWSTR, ppQualSet:**IWbemQualifierSet
"GetMethodQualifierSet": ctypes.WINFUNCTYPE(HRESULT, LPCWSTR, POINTER(IWbemQualifierSet))(25, "GetMethodQualifierSet"),
@@ -932,9 +933,9 @@ IWbemClassObject._functions_ = {
IWbemContext._functions_ = {
# QueryInterface -> riid:REFIID, ppvObject:**void
"QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"),
# AddRef ->
# AddRef ->
"AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"),
# Release ->
# Release ->
"Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"),
# Clone -> ppNewCopy:**IWbemContext
"Clone": ctypes.WINFUNCTYPE(HRESULT, POINTER(IWbemContext))(3, "Clone"),
@@ -944,7 +945,7 @@ IWbemContext._functions_ = {
"BeginEnumeration": ctypes.WINFUNCTYPE(HRESULT, LONG)(5, "BeginEnumeration"),
# Next -> lFlags:LONG, pstrName:*BSTR, pValue:*VARIANT
"Next": ctypes.WINFUNCTYPE(HRESULT, LONG, POINTER(BSTR), POINTER(VARIANT))(6, "Next"),
# EndEnumeration ->
# EndEnumeration ->
"EndEnumeration": ctypes.WINFUNCTYPE(HRESULT)(7, "EndEnumeration"),
# SetValue -> wszName:LPCWSTR, lFlags:LONG, pValue:*VARIANT
"SetValue": ctypes.WINFUNCTYPE(HRESULT, LPCWSTR, LONG, POINTER(VARIANT))(8, "SetValue"),
@@ -952,16 +953,16 @@ IWbemContext._functions_ = {
"GetValue": ctypes.WINFUNCTYPE(HRESULT, LPCWSTR, LONG, POINTER(VARIANT))(9, "GetValue"),
# DeleteValue -> wszName:LPCWSTR, lFlags:LONG
"DeleteValue": ctypes.WINFUNCTYPE(HRESULT, LPCWSTR, LONG)(10, "DeleteValue"),
# DeleteAll ->
# DeleteAll ->
"DeleteAll": ctypes.WINFUNCTYPE(HRESULT)(11, "DeleteAll"),
}
IWbemLocator._functions_ = {
# QueryInterface -> riid:REFIID, ppvObject:**void
"QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"),
# AddRef ->
# AddRef ->
"AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"),
# Release ->
# Release ->
"Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"),
# ConnectServer -> strNetworkResource:BSTR, strUser:BSTR, strPassword:BSTR, strLocale:BSTR, lSecurityFlags:LONG, strAuthority:BSTR, pCtx:*IWbemContext, ppNamespace:**IWbemServices
"ConnectServer": ctypes.WINFUNCTYPE(HRESULT, BSTR, BSTR, BSTR, BSTR, LONG, BSTR, IWbemContext, POINTER(IWbemServices))(3, "ConnectServer"),
@@ -970,9 +971,9 @@ IWbemLocator._functions_ = {
IWbemObjectSink._functions_ = {
# QueryInterface -> riid:REFIID, ppvObject:**void
"QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"),
# AddRef ->
# AddRef ->
"AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"),
# Release ->
# Release ->
"Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"),
# Indicate -> lObjectCount:LONG, apObjArray:**IWbemClassObject
"Indicate": ctypes.WINFUNCTYPE(HRESULT, LONG, POINTER(IWbemClassObject))(3, "Indicate"),
@@ -983,9 +984,9 @@ IWbemObjectSink._functions_ = {
IWbemQualifierSet._functions_ = {
# QueryInterface -> riid:REFIID, ppvObject:**void
"QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"),
# AddRef ->
# AddRef ->
"AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"),
# Release ->
# Release ->
"Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"),
# Get -> wszName:LPCWSTR, lFlags:LONG, pVal:*VARIANT, plFlavor:*LONG
"Get": ctypes.WINFUNCTYPE(HRESULT, LPCWSTR, LONG, POINTER(VARIANT), POINTER(LONG))(3, "Get"),
@@ -999,16 +1000,16 @@ IWbemQualifierSet._functions_ = {
"BeginEnumeration": ctypes.WINFUNCTYPE(HRESULT, LONG)(7, "BeginEnumeration"),
# Next -> lFlags:LONG, pstrName:*BSTR, pVal:*VARIANT, plFlavor:*LONG
"Next": ctypes.WINFUNCTYPE(HRESULT, LONG, POINTER(BSTR), POINTER(VARIANT), POINTER(LONG))(8, "Next"),
# EndEnumeration ->
# EndEnumeration ->
"EndEnumeration": ctypes.WINFUNCTYPE(HRESULT)(9, "EndEnumeration"),
}
IWbemServices._functions_ = {
# QueryInterface -> riid:REFIID, ppvObject:**void
"QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"),
# AddRef ->
# AddRef ->
"AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"),
# Release ->
# Release ->
"Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"),
# OpenNamespace -> strNamespace:BSTR, lFlags:LONG, pCtx:*IWbemContext, ppWorkingNamespace:**IWbemServices, ppResult:**IWbemCallResult
"OpenNamespace": ctypes.WINFUNCTYPE(HRESULT, BSTR, LONG, IWbemContext, POINTER(IWbemServices), POINTER(IWbemCallResult))(3, "OpenNamespace"),
@@ -1061,9 +1062,9 @@ IWbemServices._functions_ = {
IAction._functions_ = {
# QueryInterface -> riid:REFIID, ppvObject:**void
"QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"),
# AddRef ->
# AddRef ->
"AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"),
# Release ->
# Release ->
"Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"),
# GetTypeInfoCount -> pctinfo:*UINT
"GetTypeInfoCount": ctypes.WINFUNCTYPE(HRESULT, POINTER(UINT))(3, "GetTypeInfoCount"),
@@ -1084,9 +1085,9 @@ IAction._functions_ = {
IActionCollection._functions_ = {
# QueryInterface -> riid:REFIID, ppvObject:**void
"QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"),
# AddRef ->
# AddRef ->
"AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"),
# Release ->
# Release ->
"Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"),
# GetTypeInfoCount -> pctinfo:*UINT
"GetTypeInfoCount": ctypes.WINFUNCTYPE(HRESULT, POINTER(UINT))(3, "GetTypeInfoCount"),
@@ -1110,7 +1111,7 @@ IActionCollection._functions_ = {
"Create": ctypes.WINFUNCTYPE(HRESULT, TASK_ACTION_TYPE, POINTER(IAction))(12, "Create"),
# Remove -> index:VARIANT
"Remove": ctypes.WINFUNCTYPE(HRESULT, VARIANT)(13, "Remove"),
# Clear ->
# Clear ->
"Clear": ctypes.WINFUNCTYPE(HRESULT)(14, "Clear"),
# get_Context -> pContext:*BSTR
"get_Context": ctypes.WINFUNCTYPE(HRESULT, POINTER(BSTR))(15, "get_Context"),
@@ -1121,9 +1122,9 @@ IActionCollection._functions_ = {
IComHandlerAction._functions_ = {
# QueryInterface -> riid:REFIID, ppvObject:**void
"QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"),
# AddRef ->
# AddRef ->
"AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"),
# Release ->
# Release ->
"Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"),
# GetTypeInfoCount -> pctinfo:*UINT
"GetTypeInfoCount": ctypes.WINFUNCTYPE(HRESULT, POINTER(UINT))(3, "GetTypeInfoCount"),
@@ -1152,9 +1153,9 @@ IComHandlerAction._functions_ = {
IEmailAction._functions_ = {
# QueryInterface -> riid:REFIID, ppvObject:**void
"QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"),
# AddRef ->
# AddRef ->
"AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"),
# Release ->
# Release ->
"Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"),
# GetTypeInfoCount -> pctinfo:*UINT
"GetTypeInfoCount": ctypes.WINFUNCTYPE(HRESULT, POINTER(UINT))(3, "GetTypeInfoCount"),
@@ -1215,9 +1216,9 @@ IEmailAction._functions_ = {
IExecAction._functions_ = {
# QueryInterface -> riid:REFIID, ppvObject:**void
"QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"),
# AddRef ->
# AddRef ->
"AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"),
# Release ->
# Release ->
"Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"),
# GetTypeInfoCount -> pctinfo:*UINT
"GetTypeInfoCount": ctypes.WINFUNCTYPE(HRESULT, POINTER(UINT))(3, "GetTypeInfoCount"),
@@ -1250,9 +1251,9 @@ IExecAction._functions_ = {
IIdleSettings._functions_ = {
# QueryInterface -> riid:REFIID, ppvObject:**void
"QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"),
# AddRef ->
# AddRef ->
"AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"),
# Release ->
# Release ->
"Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"),
# GetTypeInfoCount -> pctinfo:*UINT
"GetTypeInfoCount": ctypes.WINFUNCTYPE(HRESULT, POINTER(UINT))(3, "GetTypeInfoCount"),
@@ -1283,9 +1284,9 @@ IIdleSettings._functions_ = {
INetworkSettings._functions_ = {
# QueryInterface -> riid:REFIID, ppvObject:**void
"QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"),
# AddRef ->
# AddRef ->
"AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"),
# Release ->
# Release ->
"Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"),
# GetTypeInfoCount -> pctinfo:*UINT
"GetTypeInfoCount": ctypes.WINFUNCTYPE(HRESULT, POINTER(UINT))(3, "GetTypeInfoCount"),
@@ -1308,9 +1309,9 @@ INetworkSettings._functions_ = {
IPrincipal._functions_ = {
# QueryInterface -> riid:REFIID, ppvObject:**void
"QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"),
# AddRef ->
# AddRef ->
"AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"),
# Release ->
# Release ->
"Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"),
# GetTypeInfoCount -> pctinfo:*UINT
"GetTypeInfoCount": ctypes.WINFUNCTYPE(HRESULT, POINTER(UINT))(3, "GetTypeInfoCount"),
@@ -1349,9 +1350,9 @@ IPrincipal._functions_ = {
IRegisteredTask._functions_ = {
# QueryInterface -> riid:REFIID, ppvObject:**void
"QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"),
# AddRef ->
# AddRef ->
"AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"),
# Release ->
# Release ->
"Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"),
# GetTypeInfoCount -> pctinfo:*UINT
"GetTypeInfoCount": ctypes.WINFUNCTYPE(HRESULT, POINTER(UINT))(3, "GetTypeInfoCount"),
@@ -1402,9 +1403,9 @@ IRegisteredTask._functions_ = {
IRegisteredTaskCollection._functions_ = {
# QueryInterface -> riid:REFIID, ppvObject:**void
"QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"),
# AddRef ->
# AddRef ->
"AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"),
# Release ->
# Release ->
"Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"),
# GetTypeInfoCount -> pctinfo:*UINT
"GetTypeInfoCount": ctypes.WINFUNCTYPE(HRESULT, POINTER(UINT))(3, "GetTypeInfoCount"),
@@ -1425,9 +1426,9 @@ IRegisteredTaskCollection._functions_ = {
IRegistrationInfo._functions_ = {
# QueryInterface -> riid:REFIID, ppvObject:**void
"QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"),
# AddRef ->
# AddRef ->
"AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"),
# Release ->
# Release ->
"Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"),
# GetTypeInfoCount -> pctinfo:*UINT
"GetTypeInfoCount": ctypes.WINFUNCTYPE(HRESULT, POINTER(UINT))(3, "GetTypeInfoCount"),
@@ -1478,9 +1479,9 @@ IRegistrationInfo._functions_ = {
IRepetitionPattern._functions_ = {
# QueryInterface -> riid:REFIID, ppvObject:**void
"QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"),
# AddRef ->
# AddRef ->
"AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"),
# Release ->
# Release ->
"Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"),
# GetTypeInfoCount -> pctinfo:*UINT
"GetTypeInfoCount": ctypes.WINFUNCTYPE(HRESULT, POINTER(UINT))(3, "GetTypeInfoCount"),
@@ -1507,9 +1508,9 @@ IRepetitionPattern._functions_ = {
IRunningTask._functions_ = {
# QueryInterface -> riid:REFIID, ppvObject:**void
"QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"),
# AddRef ->
# AddRef ->
"AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"),
# Release ->
# Release ->
"Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"),
# GetTypeInfoCount -> pctinfo:*UINT
"GetTypeInfoCount": ctypes.WINFUNCTYPE(HRESULT, POINTER(UINT))(3, "GetTypeInfoCount"),
@@ -1529,9 +1530,9 @@ IRunningTask._functions_ = {
"get_State": ctypes.WINFUNCTYPE(HRESULT, POINTER(TASK_STATE))(10, "get_State"),
# get_CurrentAction -> pName:*BSTR
"get_CurrentAction": ctypes.WINFUNCTYPE(HRESULT, POINTER(BSTR))(11, "get_CurrentAction"),
# Stop ->
# Stop ->
"Stop": ctypes.WINFUNCTYPE(HRESULT)(12, "Stop"),
# Refresh ->
# Refresh ->
"Refresh": ctypes.WINFUNCTYPE(HRESULT)(13, "Refresh"),
# get_EnginePID -> pPID:*DWORD
"get_EnginePID": ctypes.WINFUNCTYPE(HRESULT, POINTER(DWORD))(14, "get_EnginePID"),
@@ -1540,9 +1541,9 @@ IRunningTask._functions_ = {
IRunningTaskCollection._functions_ = {
# QueryInterface -> riid:REFIID, ppvObject:**void
"QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"),
# AddRef ->
# AddRef ->
"AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"),
# Release ->
# Release ->
"Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"),
# GetTypeInfoCount -> pctinfo:*UINT
"GetTypeInfoCount": ctypes.WINFUNCTYPE(HRESULT, POINTER(UINT))(3, "GetTypeInfoCount"),
@@ -1563,9 +1564,9 @@ IRunningTaskCollection._functions_ = {
IShowMessageAction._functions_ = {
# QueryInterface -> riid:REFIID, ppvObject:**void
"QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"),
# AddRef ->
# AddRef ->
"AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"),
# Release ->
# Release ->
"Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"),
# GetTypeInfoCount -> pctinfo:*UINT
"GetTypeInfoCount": ctypes.WINFUNCTYPE(HRESULT, POINTER(UINT))(3, "GetTypeInfoCount"),
@@ -1594,9 +1595,9 @@ IShowMessageAction._functions_ = {
ITaskDefinition._functions_ = {
# QueryInterface -> riid:REFIID, ppvObject:**void
"QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"),
# AddRef ->
# AddRef ->
"AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"),
# Release ->
# Release ->
"Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"),
# GetTypeInfoCount -> pctinfo:*UINT
"GetTypeInfoCount": ctypes.WINFUNCTYPE(HRESULT, POINTER(UINT))(3, "GetTypeInfoCount"),
@@ -1639,9 +1640,9 @@ ITaskDefinition._functions_ = {
ITaskFolder._functions_ = {
# QueryInterface -> riid:REFIID, ppvObject:**void
"QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"),
# AddRef ->
# AddRef ->
"AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"),
# Release ->
# Release ->
"Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"),
# GetTypeInfoCount -> pctinfo:*UINT
"GetTypeInfoCount": ctypes.WINFUNCTYPE(HRESULT, POINTER(UINT))(3, "GetTypeInfoCount"),
@@ -1682,9 +1683,9 @@ ITaskFolder._functions_ = {
ITaskFolderCollection._functions_ = {
# QueryInterface -> riid:REFIID, ppvObject:**void
"QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"),
# AddRef ->
# AddRef ->
"AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"),
# Release ->
# Release ->
"Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"),
# GetTypeInfoCount -> pctinfo:*UINT
"GetTypeInfoCount": ctypes.WINFUNCTYPE(HRESULT, POINTER(UINT))(3, "GetTypeInfoCount"),
@@ -1705,9 +1706,9 @@ ITaskFolderCollection._functions_ = {
ITaskNamedValueCollection._functions_ = {
# QueryInterface -> riid:REFIID, ppvObject:**void
"QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"),
# AddRef ->
# AddRef ->
"AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"),
# Release ->
# Release ->
"Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"),
# GetTypeInfoCount -> pctinfo:*UINT
"GetTypeInfoCount": ctypes.WINFUNCTYPE(HRESULT, POINTER(UINT))(3, "GetTypeInfoCount"),
@@ -1727,16 +1728,16 @@ ITaskNamedValueCollection._functions_ = {
"Create": ctypes.WINFUNCTYPE(HRESULT, BSTR, BSTR, POINTER(ITaskNamedValuePair))(10, "Create"),
# Remove -> index:LONG
"Remove": ctypes.WINFUNCTYPE(HRESULT, LONG)(11, "Remove"),
# Clear ->
# Clear ->
"Clear": ctypes.WINFUNCTYPE(HRESULT)(12, "Clear"),
}
ITaskNamedValuePair._functions_ = {
# QueryInterface -> riid:REFIID, ppvObject:**void
"QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"),
# AddRef ->
# AddRef ->
"AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"),
# Release ->
# Release ->
"Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"),
# GetTypeInfoCount -> pctinfo:*UINT
"GetTypeInfoCount": ctypes.WINFUNCTYPE(HRESULT, POINTER(UINT))(3, "GetTypeInfoCount"),
@@ -1759,9 +1760,9 @@ ITaskNamedValuePair._functions_ = {
ITaskService._functions_ = {
# QueryInterface -> riid:REFIID, ppvObject:**void
"QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"),
# AddRef ->
# AddRef ->
"AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"),
# Release ->
# Release ->
"Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"),
# GetTypeInfoCount -> pctinfo:*UINT
"GetTypeInfoCount": ctypes.WINFUNCTYPE(HRESULT, POINTER(UINT))(3, "GetTypeInfoCount"),
@@ -1794,9 +1795,9 @@ ITaskService._functions_ = {
ITaskSettings._functions_ = {
# QueryInterface -> riid:REFIID, ppvObject:**void
"QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"),
# AddRef ->
# AddRef ->
"AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"),
# Release ->
# Release ->
"Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"),
# GetTypeInfoCount -> pctinfo:*UINT
"GetTypeInfoCount": ctypes.WINFUNCTYPE(HRESULT, POINTER(UINT))(3, "GetTypeInfoCount"),
@@ -1891,9 +1892,9 @@ ITaskSettings._functions_ = {
ITrigger._functions_ = {
# QueryInterface -> riid:REFIID, ppvObject:**void
"QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"),
# AddRef ->
# AddRef ->
"AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"),
# Release ->
# Release ->
"Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"),
# GetTypeInfoCount -> pctinfo:*UINT
"GetTypeInfoCount": ctypes.WINFUNCTYPE(HRESULT, POINTER(UINT))(3, "GetTypeInfoCount"),
@@ -1934,9 +1935,9 @@ ITrigger._functions_ = {
ITriggerCollection._functions_ = {
# QueryInterface -> riid:REFIID, ppvObject:**void
"QueryInterface": ctypes.WINFUNCTYPE(HRESULT, REFIID, POINTER(PVOID))(0, "QueryInterface"),
# AddRef ->
# AddRef ->
"AddRef": ctypes.WINFUNCTYPE(ULONG)(1, "AddRef"),
# Release ->
# Release ->
"Release": ctypes.WINFUNCTYPE(ULONG)(2, "Release"),
# GetTypeInfoCount -> pctinfo:*UINT
"GetTypeInfoCount": ctypes.WINFUNCTYPE(HRESULT, POINTER(UINT))(3, "GetTypeInfoCount"),
@@ -1956,7 +1957,7 @@ ITriggerCollection._functions_ = {
"Create": ctypes.WINFUNCTYPE(HRESULT, TASK_TRIGGER_TYPE2, POINTER(ITrigger))(10, "Create"),
# Remove -> index:VARIANT
"Remove": ctypes.WINFUNCTYPE(HRESULT, VARIANT)(11, "Remove"),
# Clear ->
# Clear ->
"Clear": ctypes.WINFUNCTYPE(HRESULT)(12, "Clear"),
}
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because one or more lines are too long
+1 -6
View File
@@ -1,8 +1,3 @@
print("Hello from winproxy")
from .apiproxy import (is_implemented,
get_target,
resolve)
from .apiproxy import is_implemented, get_target, resolve
from .error import WinproxyError
from .apis import * # Import all functions
+32 -13
View File
@@ -24,6 +24,7 @@ def resolve(apiproxy):
func = ctypes.WinDLL(dll_name)[func_name]
return ctypes.cast(func, gdef.PVOID).value
# ApiProxy stuff
class ExportNotFound(RuntimeError):
def __init__(self, func_name, api_name):
@@ -42,17 +43,22 @@ class NeededParameterType(object):
def __repr__(self):
return "NeededParameter"
NeededParameter = NeededParameterType()
sentinel = object()
class ApiProxy(object):
APIDLL = None
"""Create a python wrapper around a kernel32 function"""
def __init__(self, func_name=None, error_check=None, deffunc_module=None):
def __init__(self, func_name=None, error_check=sentinel, deffunc_module=None):
self.deffunc_module = deffunc_module if deffunc_module is not None else gdef.winfuncs
self.func_name = func_name
if error_check is None:
if error_check is sentinel:
error_check = self.default_error_check
self.error_check = functools.wraps(error_check)(functools.partial(error_check, func_name))
if error_check is not None:
self.error_check = functools.wraps(error_check)(functools.partial(error_check, func_name))
else:
self.error_check = None
self._cprototyped = None
def __call__(self, python_proxy):
@@ -79,21 +85,34 @@ class ApiProxy(object):
c_prototyped = prototype((self.func_name, getattr(ctypes.windll, self.APIDLL)), params)
except (AttributeError, WindowsError):
raise ExportNotFound(self.func_name, self.APIDLL)
c_prototyped.errcheck = self.error_check
if self.error_check is not None:
c_prototyped.errcheck = self.error_check
self._cprototyped = c_prototyped
def perform_call(*args):
if len(params_name) != len(args):
print("ERROR:")
print("Expected params: {0}".format(params_name))
print("Just Got params: {0}".format(args))
raise ValueError("I do not have all parameters: how is that possible ?")
for param_name, param_value in zip(params_name, args):
if param_value is NeededParameter:
raise TypeError("{0}: Missing Mandatory parameter <{1}>".format(self.func_name, param_name))
if self._cprototyped is None:
generate_ctypes_function()
return self._cprototyped(*args)
try:
return self._cprototyped(*args)
except ctypes.ArgumentError as e:
# We just add a conversion ctypes argument fail
# We can do some heavy computation if needed
# Not a case that normally happen
# "argument 2: <type 'exceptions.TypeError'>: wrong type"
# Thx ctypes..
argnbstr, ecx, reason = e.message.split(":")
if not argnbstr.startswith("argument "):
raise # Don't knnow if it can happen
argnb = int(argnbstr[len("argument "):])
badarg = args[argnb - 1]
if badarg is NeededParameter:
badargname = params_name[argnb - 1]
raise TypeError("{0}: Missing Mandatory parameter <{1}>".format(self.func_name, badargname))
# Not NeededParameter: the caller need to fix the used param :)
# raise the real ctypes error
raise
setattr(python_proxy, "ctypes_function", perform_call)
setattr(python_proxy, "force_resolution", generate_ctypes_function)
+17 -3
View File
@@ -11,7 +11,18 @@ class Advapi32Proxy(ApiProxy):
# Process
@Advapi32Proxy()
def CreateProcessAsUserA(hToken, lpApplicationName, lpCommandLine, lpProcessAttributes, lpThreadAttributes, bInheritHandles, dwCreationFlags, lpEnvironment, lpCurrentDirectory, lpStartupInfo, lpProcessInformation):
def CreateProcessAsUserA(hToken, lpApplicationName, lpCommandLine=None, lpProcessAttributes=None, lpThreadAttributes=None, bInheritHandles=False,
dwCreationFlags=0, lpEnvironment=None, lpCurrentDirectory=None, lpStartupInfo=None, lpProcessInformation=None):
if lpStartupInfo is None:
StartupInfo = gdef.STARTUPINFOA()
StartupInfo.cb = ctypes.sizeof(StartupInfo)
StartupInfo.dwFlags = 0
# StartupInfo.wShowWindow = gdef.SW_HIDE
lpStartupInfo = ctypes.byref(StartupInfo)
if lpProcessInformation is None:
lpProcessInformation = ctypes.byref(gdef.PROCESS_INFORMATION())
return CreateProcessAsUserA.ctypes_function(hToken, lpApplicationName, lpCommandLine, lpProcessAttributes, lpThreadAttributes, bInheritHandles, dwCreationFlags, lpEnvironment, lpCurrentDirectory, lpStartupInfo, lpProcessInformation)
return CreateProcessAsUserA.ctypes_function(hToken, lpApplicationName, lpCommandLine, lpProcessAttributes, lpThreadAttributes, bInheritHandles, dwCreationFlags, lpEnvironment, lpCurrentDirectory, lpStartupInfo, lpProcessInformation)
@Advapi32Proxy()
@@ -113,8 +124,6 @@ def GetSidSubAuthority(pSid, nSubAuthority):
def GetSidSubAuthorityCount(pSid):
return GetSidSubAuthorityCount.ctypes_function(pSid)
# Sid stuff
@Advapi32Proxy()
def ConvertStringSidToSidA(StringSid, Sid):
return ConvertStringSidToSidA.ctypes_function(StringSid, Sid)
@@ -131,6 +140,11 @@ def ConvertSidToStringSidA(Sid, StringSid):
def ConvertSidToStringSidW(Sid, StringSid):
return ConvertSidToStringSidW.ctypes_function(Sid, StringSid)
@Advapi32Proxy()
def CopySid(nDestinationSidLength, pDestinationSid, pSourceSid):
return CopySid.ctypes_function(nDestinationSidLength, pDestinationSid, pSourceSid)
# Security descriptor
@Advapi32Proxy(error_check=result_is_error_code)
+20 -1
View File
@@ -172,13 +172,32 @@ def CryptDecodeObject(dwCertEncodingType, lpszStructType, pbEncoded, cbEncoded,
def CryptMsgGetParam(hCryptMsg, dwParamType, dwIndex, pvData, pcbData):
return CryptMsgGetParam.ctypes_function(hCryptMsg, dwParamType, dwIndex, pvData, pcbData)
@Crypt32Proxy()
def CryptMsgOpenToEncode(dwMsgEncodingType, dwFlags, dwMsgType, pvMsgEncodeInfo, pszInnerContentObjID, pStreamInfo):
return CryptMsgOpenToEncode.ctypes_function(dwMsgEncodingType, dwFlags, dwMsgType, pvMsgEncodeInfo, pszInnerContentObjID, pStreamInfo)
@Crypt32Proxy()
def CryptMsgOpenToDecode(dwMsgEncodingType, dwFlags, dwMsgType, hCryptProv, pRecipientInfo, pStreamInfo):
return CryptMsgOpenToDecode.ctypes_function(dwMsgEncodingType, dwFlags, dwMsgType, hCryptProv, pRecipientInfo, pStreamInfo)
@Crypt32Proxy()
def CryptMsgUpdate(hCryptMsg, pbData, cbData, fFinal):
return CryptMsgUpdate.ctypes_function(hCryptMsg, pbData, cbData, fFinal)
@Crypt32Proxy()
def CryptMsgControl(hCryptMsg, dwFlags, dwCtrlType, pvCtrlPara):
return CryptMsgControl.ctypes_function(hCryptMsg, dwFlags, dwCtrlType, pvCtrlPara)
@Crypt32Proxy()
def CryptMsgVerifyCountersignatureEncoded(hCryptProv, dwEncodingType, pbSignerInfo, cbSignerInfo, pbSignerInfoCountersignature, cbSignerInfoCountersignature, pciCountersigner):
return CryptMsgVerifyCountersignatureEncoded.ctypes_function(hCryptProv, dwEncodingType, pbSignerInfo, cbSignerInfo, pbSignerInfoCountersignature, cbSignerInfoCountersignature, pciCountersigner)
@Crypt32Proxy()
def CryptMsgVerifyCountersignatureEncodedEx(hCryptProv, dwEncodingType, pbSignerInfo, cbSignerInfo, pbSignerInfoCountersignature, cbSignerInfoCountersignature, dwSignerType, pvSigner, dwFlags, pvExtra):
return CryptMsgVerifyCountersignatureEncodedEx.ctypes_function(hCryptProv, dwEncodingType, pbSignerInfo, cbSignerInfo, pbSignerInfoCountersignature, cbSignerInfoCountersignature, dwSignerType, pvSigner, dwFlags, pvExtra)
@Crypt32Proxy()
def CryptMsgClose(hCryptMsg):
return CryptMsgClose.ctypes_function(hCryptMsg)
+26 -1
View File
@@ -148,6 +148,14 @@ def GetModuleHandleA(lpModuleName):
def GetModuleHandleW(lpModuleName):
return GetModuleHandleW.ctypes_function(lpModuleName)
@Kernel32Proxy()
def GetModuleFileNameA(hModule, lpFilename, nSize):
return GetModuleFileNameA.ctypes_function(hModule, lpFilename, nSize)
@Kernel32Proxy()
def GetModuleFileNameW(hModule, lpFilename, nSize):
return GetModuleFileNameW.ctypes_function(hModule, lpFilename, nSize)
## Thread
@Kernel32Proxy()
@@ -276,7 +284,7 @@ def WriteProcessMemory(hProcess, lpBaseAddress, lpBuffer, nSize=None, lpNumberOf
## Error
@Kernel32Proxy()
@Kernel32Proxy(error_check=no_error_check)
def GetLastError():
return GetLastError.ctypes_function()
@@ -691,5 +699,22 @@ def ConnectNamedPipe(hNamedPipe, lpOverlapped):
def SetNamedPipeHandleState(hNamedPipe, lpMode, lpMaxCollectionCount, lpCollectDataTimeout):
return SetNamedPipeHandleState.ctypes_function(hNamedPipe, lpMode, lpMaxCollectionCount, lpCollectDataTimeout)
# Firmware
@Kernel32Proxy()
def GetFirmwareEnvironmentVariableA(lpName, lpGuid, pBuffer, nSize):
return GetFirmwareEnvironmentVariableA.ctypes_function(lpName, lpGuid, pBuffer, nSize)
@Kernel32Proxy()
def GetFirmwareEnvironmentVariableW(lpName, lpGuid, pBuffer, nSize):
return GetFirmwareEnvironmentVariableW.ctypes_function(lpName, lpGuid, pBuffer, nSize)
@Kernel32Proxy()
def GetFirmwareEnvironmentVariableExA(lpName, lpGuid, pBuffer, nSize, pdwAttribubutes):
return GetFirmwareEnvironmentVariableExA.ctypes_function(lpName, lpGuid, pBuffer, nSize, pdwAttribubutes)
@Kernel32Proxy()
def GetFirmwareEnvironmentVariableExW(lpName, lpGuid, pBuffer, nSize, pdwAttribubutes):
return GetFirmwareEnvironmentVariableExW.ctypes_function(lpName, lpGuid, pBuffer, nSize, pdwAttribubutes)
#####
+14
View File
@@ -57,6 +57,14 @@ def NtQueryVolumeInformationFile(FileHandle, IoStatusBlock, FsInformation, Lengt
Length = ctypes.sizeof(FsInformation)
return NtQueryVolumeInformationFile.ctypes_function(FileHandle, IoStatusBlock, FsInformation, Length, FsInformationClass)
@NtdllProxy()
def NtQueryEaFile(FileHandle, IoStatusBlock, Buffer, Length, ReturnSingleEntry, EaList, EaListLength, EaIndex, RestartScan):
return NtQueryEaFile.ctypes_function(FileHandle, IoStatusBlock, Buffer, Length, ReturnSingleEntry, EaList, EaListLength, EaIndex, RestartScan)
@NtdllProxy()
def NtSetEaFile(FileHandle, IoStatusBlock, Buffer, Length):
return NtSetEaFile.ctypes_function(FileHandle, IoStatusBlock, Buffer, Length)
# Process
@@ -341,6 +349,12 @@ def RtlEqualUnicodeString(String1, String2, CaseInSensitive):
return RtlEqualUnicodeString.ctypes_function(String1, String2, CaseInSensitive)
# Firmware
@NtdllProxy()
def NtEnumerateSystemEnvironmentValuesEx(InformationClass, Buffer, BufferLength):
return NtEnumerateSystemEnvironmentValuesEx.ctypes_function(InformationClass, Buffer, BufferLength)
#########
-6
View File
@@ -8,8 +8,6 @@ class PsapiProxy(ApiProxy):
APIDLL = "psapi"
default_error_check = staticmethod(fail_on_zero)
# TODO: fallback to kernel32 for old version
@PsapiProxy()
def GetMappedFileNameW(hProcess, lpv, lpFilename, nSize=None):
@@ -17,24 +15,20 @@ def GetMappedFileNameW(hProcess, lpv, lpFilename, nSize=None):
nSize = ctypes.sizeof(lpFilename)
return GetMappedFileNameW.ctypes_function(hProcess, lpv, lpFilename, nSize)
@PsapiProxy()
def GetMappedFileNameA(hProcess, lpv, lpFilename, nSize=None):
if nSize is None:
nSize = ctypes.sizeof(lpFilename)
return GetMappedFileNameA.ctypes_function(hProcess, lpv, lpFilename, nSize)
@PsapiProxy()
def QueryWorkingSet(hProcess, pv, cb):
return QueryWorkingSet.ctypes_function(hProcess, pv, cb)
@PsapiProxy()
def QueryWorkingSetEx(hProcess, pv, cb):
return QueryWorkingSetEx.ctypes_function(hProcess, pv, cb)
@PsapiProxy()
def GetModuleBaseNameA(hProcess, hModule, lpBaseName, nSize=None):
if nSize is None:
+13 -5
View File
@@ -2,7 +2,7 @@ import ctypes
import windows.generated_def as gdef
from ..apiproxy import ApiProxy, NeededParameter
from ..error import fail_on_zero
from ..error import fail_on_zero, no_error_check
class User32Proxy(ApiProxy):
APIDLL = "user32"
@@ -16,17 +16,25 @@ def EnumWindows(lpEnumFunc, lParam):
return EnumWindows.ctypes_function(lpEnumFunc, lParam)
@User32Proxy()
def GetParent(hWnd):
return GetParent.ctypes_function(hWnd)
@User32Proxy(error_check=no_error_check)
def GetWindowTextA(hWnd, lpString, nMaxCount):
return GetWindowTextA.ctypes_function(hWnd, lpString, nMaxCount)
@User32Proxy()
def GetParent(hWnd):
return GetParent.ctypes_function(hWnd)
@User32Proxy()
def GetWindowTextW(hWnd, lpString, nMaxCount):
return GetWindowTextW.ctypes_function(hWnd, lpString, nMaxCount)
@User32Proxy()
def FindWindowA(lpClassName, lpWindowName):
return FindWindowA.ctypes_function(lpClassName, lpWindowName)
@User32Proxy()
def FindWindowW(lpClassName, lpWindowName):
return FindWindowW.ctypes_function(lpClassName, lpWindowName)
@User32Proxy()
def GetWindowModuleFileNameA(hwnd, pszFileName, cchFileNameMax):
return GetWindowModuleFileNameA.ctypes_function(hwnd, pszFileName, cchFileNameMax)