mirror of
https://github.com/hakril/PythonForWindows
synced 2026-06-08 14:31:45 +00:00
Made some improvement of error handling by ApiProxy + some new generated def
This commit is contained in:
@@ -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;
|
||||
+30
-2
@@ -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__
|
||||
|
||||
@@ -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
@@ -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
+892
-823
File diff suppressed because it is too large
Load Diff
+754
-669
File diff suppressed because it is too large
Load Diff
+2494
-2024
File diff suppressed because one or more lines are too long
@@ -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
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
#####
|
||||
@@ -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)
|
||||
|
||||
|
||||
#########
|
||||
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user