;* ********************************************************** ;* Copyright (c) 2004-2008 VMware, Inc. All rights reserved. -- VMware Confidential ;* ********************************************************** ;* ;* This is the AutoIt interface to the VIX API. ;* Implemented by Greenhorn, June 2011 ;* Global $vixdll = DllOpen ("vix.dll") ;* Declare handle variables for callback functions * Global $g_hVixEventProc OnAutoItExitRegister ("VixDllFree") Func VixDllFree ( ) ; Free the handle variables for callback functions here If ($g_hVixEventProc) Then _ DllCallbackFree ($g_hVixEventProc) ; Close the vix.dll DllClose ($vixdll) EndFunc ;* ;*----------------------------------------------------------------------------- ;* ;* Basic Types -- ;* ;*----------------------------------------------------------------------------- ;* ; typedef int VixHandle; ; typedef int VixHandleType; ; typedef uint64 VixError; ; typedef int VixPropertyType; ; typedef int VixPropertyID; ; typedef int VixEventType; ; typedef int VixHostOptions; ; typedef int VixServiceProvider; ; typedef int VixFindItemType; ; typedef int VixVMOpenOptions; ; typedef int VixPumpEventsOptions; ; typedef int VixVMPowerOpOptions; ; typedef int VixVMDeleteOptions; ; typedef int VixPowerState; ; typedef int VixToolsState; ; typedef int VixRunProgramOptions; ; typedef int VixRemoveSnapshotOptions; ; typedef int VixCreateSnapshotOptions; ; typedef int VixMsgSharedFolderOptions; ; typedef int VixCloneType; ;~ #include "vm_basic_types.h" Global Enum $VIX_INVALID_HANDLE = 0 ;* ;* These are the types of handles. ;* Global Enum $VIX_HANDLETYPE_NONE = 0, _ $VIX_HANDLETYPE_HOST = 2, _ $VIX_HANDLETYPE_VM = 3, _ $VIX_HANDLETYPE_NETWORK = 5, _ $VIX_HANDLETYPE_JOB = 6, _ $VIX_HANDLETYPE_SNAPSHOT = 7, _ $VIX_HANDLETYPE_PROPERTY_LIST = 9, _ $VIX_HANDLETYPE_METADATA_CONTAINER = 11 ;* ;* The error codes are returned by all public VIX routines. ;* Global Enum $VIX_OK = 0, _ _ _ ;* General errors;* $VIX_E_FAIL = 1, _ $VIX_E_OUT_OF_MEMORY = 2, _ $VIX_E_INVALID_ARG = 3, _ $VIX_E_FILE_NOT_FOUND = 4, _ $VIX_E_OBJECT_IS_BUSY = 5, _ $VIX_E_NOT_SUPPORTED = 6, _ $VIX_E_FILE_ERROR = 7, _ $VIX_E_DISK_FULL = 8, _ $VIX_E_INCORRECT_FILE_TYPE = 9, _ $VIX_E_CANCELLED = 10, _ $VIX_E_FILE_READ_ONLY = 11, _ $VIX_E_FILE_ALREADY_EXISTS = 12, _ $VIX_E_FILE_ACCESS_ERROR = 13, _ $VIX_E_REQUIRES_LARGE_FILES = 14, _ $VIX_E_FILE_ALREADY_LOCKED = 15, _ $VIX_E_VMDB = 16, _ $VIX_E_NOT_SUPPORTED_ON_REMOTE_OBJECT = 20, _ $VIX_E_FILE_TOO_BIG = 21, _ $VIX_E_FILE_NAME_INVALID = 22, _ $VIX_E_ALREADY_EXISTS = 23, _ $VIX_E_BUFFER_TOOSMALL = 24, _ $VIX_E_OBJECT_NOT_FOUND = 25, _ $VIX_E_HOST_NOT_CONNECTED = 26, _ $VIX_E_INVALID_UTF8_STRING = 27, _ $VIX_E_OPERATION_ALREADY_IN_PROGRESS = 31, _ $VIX_E_UNFINISHED_JOB = 29, _ $VIX_E_NEED_KEY = 30, _ $VIX_E_LICENSE = 32, _ $VIX_E_VM_HOST_DISCONNECTED = 34, _ $VIX_E_AUTHENTICATION_FAIL = 35, _ $VIX_E_HOST_CONNECTION_LOST = 36, _ $VIX_E_DUPLICATE_NAME = 41, _ _ _ ;* Handle Errors;* $VIX_E_INVALID_HANDLE = 1000, _ $VIX_E_NOT_SUPPORTED_ON_HANDLE_TYPE = 1001, _ $VIX_E_TOO_MANY_HANDLES = 1002, _ _ _ ;* XML errors;* $VIX_E_NOT_FOUND = 2000, _ $VIX_E_TYPE_MISMATCH = 2001, _ $VIX_E_INVALID_XML = 2002, _ _ _ ;* VM Control Errors;* $VIX_E_TIMEOUT_WAITING_FOR_TOOLS = 3000, _ $VIX_E_UNRECOGNIZED_COMMAND = 3001, _ $VIX_E_OP_NOT_SUPPORTED_ON_GUEST = 3003, _ $VIX_E_PROGRAM_NOT_STARTED = 3004, _ $VIX_E_CANNOT_START_READ_ONLY_VM = 3005, _ $VIX_E_VM_NOT_RUNNING = 3006, _ $VIX_E_VM_IS_RUNNING = 3007, _ $VIX_E_CANNOT_CONNECT_TO_VM = 3008, _ $VIX_E_POWEROP_SCRIPTS_NOT_AVAILABLE = 3009, _ $VIX_E_NO_GUEST_OS_INSTALLED = 3010, _ $VIX_E_VM_INSUFFICIENT_HOST_MEMORY = 3011, _ $VIX_E_SUSPEND_ERROR = 3012, _ $VIX_E_VM_NOT_ENOUGH_CPUS = 3013, _ $VIX_E_HOST_USER_PERMISSIONS = 3014, _ $VIX_E_GUEST_USER_PERMISSIONS = 3015, _ $VIX_E_TOOLS_NOT_RUNNING = 3016, _ $VIX_E_GUEST_OPERATIONS_PROHIBITED = 3017, _ $VIX_E_ANON_GUEST_OPERATIONS_PROHIBITED = 3018, _ $VIX_E_ROOT_GUEST_OPERATIONS_PROHIBITED = 3019, _ $VIX_E_MISSING_ANON_GUEST_ACCOUNT = 3023, _ $VIX_E_CANNOT_AUTHENTICATE_WITH_GUEST = 3024, _ $VIX_E_UNRECOGNIZED_COMMAND_IN_GUEST = 3025, _ $VIX_E_CONSOLE_GUEST_OPERATIONS_PROHIBITED = 3026, _ $VIX_E_MUST_BE_CONSOLE_USER = 3027, _ $VIX_E_VMX_MSG_DIALOG_AND_NO_UI = 3028, _ $VIX_E_NOT_ALLOWED_DURING_VM_RECORDING = 3029, _ $VIX_E_NOT_ALLOWED_DURING_VM_REPLAY = 3030, _ $VIX_E_OPERATION_NOT_ALLOWED_FOR_LOGIN_TYPE = 3031, _ $VIX_E_LOGIN_TYPE_NOT_SUPPORTED = 3032, _ $VIX_E_EMPTY_PASSWORD_NOT_ALLOWED_IN_GUEST = 3033, _ $VIX_E_INTERACTIVE_SESSION_NOT_PRESENT = 3034, _ $VIX_E_INTERACTIVE_SESSION_USER_MISMATCH = 3035, _ $VIX_E_UNABLE_TO_REPLAY_VM = 3039, _ $VIX_E_CANNOT_POWER_ON_VM = 3041, _ $VIX_E_NO_DISPLAY_SERVER = 3043, _ $VIX_E_VM_NOT_RECORDING = 3044, _ $VIX_E_VM_NOT_REPLAYING = 3045, _ _ _ ;* VM Errors;* $VIX_E_VM_NOT_FOUND = 4000, _ $VIX_E_NOT_SUPPORTED_FOR_VM_VERSION = 4001, _ $VIX_E_CANNOT_READ_VM_CONFIG = 4002, _ $VIX_E_TEMPLATE_VM = 4003, _ $VIX_E_VM_ALREADY_LOADED = 4004, _ $VIX_E_VM_ALREADY_UP_TO_DATE = 4006, _ $VIX_E_VM_UNSUPPORTED_GUEST = 4011, _ _ _ ;* Property Errors;* $VIX_E_UNRECOGNIZED_PROPERTY = 6000, _ $VIX_E_INVALID_PROPERTY_VALUE = 6001, _ $VIX_E_READ_ONLY_PROPERTY = 6002, _ $VIX_E_MISSING_REQUIRED_PROPERTY = 6003, _ $VIX_E_INVALID_SERIALIZED_DATA = 6004, _ $VIX_E_PROPERTY_TYPE_MISMATCH = 6005, _ _ _ ;* Completion Errors;* $VIX_E_BAD_VM_INDEX = 8000, _ _ _ ;* Message errors;* $VIX_E_INVALID_MESSAGE_HEADER = 10000, _ $VIX_E_INVALID_MESSAGE_BODY = 10001, _ _ _ ;* Snapshot errors;* $VIX_E_SNAPSHOT_INVAL = 13000, _ $VIX_E_SNAPSHOT_DUMPER = 13001, _ $VIX_E_SNAPSHOT_DISKLIB = 13002, _ $VIX_E_SNAPSHOT_NOTFOUND = 13003, _ $VIX_E_SNAPSHOT_EXISTS = 13004, _ $VIX_E_SNAPSHOT_VERSION = 13005, _ $VIX_E_SNAPSHOT_NOPERM = 13006, _ $VIX_E_SNAPSHOT_CONFIG = 13007, _ $VIX_E_SNAPSHOT_NOCHANGE = 13008, _ $VIX_E_SNAPSHOT_CHECKPOINT = 13009, _ $VIX_E_SNAPSHOT_LOCKED = 13010, _ $VIX_E_SNAPSHOT_INCONSISTENT = 13011, _ $VIX_E_SNAPSHOT_NAMETOOLONG = 13012, _ $VIX_E_SNAPSHOT_VIXFILE = 13013, _ $VIX_E_SNAPSHOT_DISKLOCKED = 13014, _ $VIX_E_SNAPSHOT_DUPLICATEDDISK = 13015, _ $VIX_E_SNAPSHOT_INDEPENDENTDISK = 13016, _ $VIX_E_SNAPSHOT_NONUNIQUE_NAME = 13017, _ $VIX_E_SNAPSHOT_MEMORY_ON_INDEPENDENT_DISK = 13018, _ $VIX_E_SNAPSHOT_MAXSNAPSHOTS = 13019, _ $VIX_E_SNAPSHOT_MIN_FREE_SPACE = 13020, _ $VIX_E_SNAPSHOT_HIERARCHY_TOODEEP = 13021, _ _ _ ;* Host Errors;* $VIX_E_HOST_DISK_INVALID_VALUE = 14003, _ $VIX_E_HOST_DISK_SECTORSIZE = 14004, _ $VIX_E_HOST_FILE_ERROR_EOF = 14005, _ $VIX_E_HOST_NETBLKDEV_HANDSHAKE = 14006, _ $VIX_E_HOST_SOCKET_CREATION_ERROR = 14007, _ $VIX_E_HOST_SERVER_NOT_FOUND = 14008, _ $VIX_E_HOST_NETWORK_CONN_REFUSED = 14009, _ $VIX_E_HOST_TCP_SOCKET_ERROR = 14010, _ $VIX_E_HOST_TCP_CONN_LOST = 14011, _ $VIX_E_HOST_NBD_HASHFILE_VOLUME = 14012, _ $VIX_E_HOST_NBD_HASHFILE_INIT = 14013, _ _ _ ;* Disklib errors;* $VIX_E_DISK_INVAL = 16000, _ $VIX_E_DISK_NOINIT = 16001, _ $VIX_E_DISK_NOIO = 16002, _ $VIX_E_DISK_PARTIALCHAIN = 16003, _ $VIX_E_DISK_NEEDSREPAIR = 16006, _ $VIX_E_DISK_OUTOFRANGE = 16007, _ $VIX_E_DISK_CID_MISMATCH = 16008, _ $VIX_E_DISK_CANTSHRINK = 16009, _ $VIX_E_DISK_PARTMISMATCH = 16010, _ $VIX_E_DISK_UNSUPPORTEDDISKVERSION = 16011, _ $VIX_E_DISK_OPENPARENT = 16012, _ $VIX_E_DISK_NOTSUPPORTED = 16013, _ $VIX_E_DISK_NEEDKEY = 16014, _ $VIX_E_DISK_NOKEYOVERRIDE = 16015, _ $VIX_E_DISK_NOTENCRYPTED = 16016, _ $VIX_E_DISK_NOKEY = 16017, _ $VIX_E_DISK_INVALIDPARTITIONTABLE = 16018, _ $VIX_E_DISK_NOTNORMAL = 16019, _ $VIX_E_DISK_NOTENCDESC = 16020, _ $VIX_E_DISK_NEEDVMFS = 16022, _ $VIX_E_DISK_RAWTOOBIG = 16024, _ $VIX_E_DISK_TOOMANYOPENFILES = 16027, _ $VIX_E_DISK_TOOMANYREDO = 16028, _ $VIX_E_DISK_RAWTOOSMALL = 16029, _ $VIX_E_DISK_INVALIDCHAIN = 16030, _ $VIX_E_DISK_KEY_NOTFOUND = 16052, _ ;// metadata key is not found $VIX_E_DISK_SUBSYSTEM_INIT_FAIL = 16053, _ $VIX_E_DISK_INVALID_CONNECTION = 16054, _ $VIX_E_DISK_ENCODING = 16061, _ $VIX_E_DISK_CANTREPAIR = 16062, _ $VIX_E_DISK_INVALIDDISK = 16063, _ $VIX_E_DISK_NOLICENSE = 16064, _ $VIX_E_DISK_NODEVICE = 16065, _ $VIX_E_DISK_UNSUPPORTEDDEVICE = 16066, _ _ _ ;* Crypto Library Errors;* $VIX_E_CRYPTO_UNKNOWN_ALGORITHM = 17000, _ $VIX_E_CRYPTO_BAD_BUFFER_SIZE = 17001, _ $VIX_E_CRYPTO_INVALID_OPERATION = 17002, _ $VIX_E_CRYPTO_RANDOM_DEVICE = 17003, _ $VIX_E_CRYPTO_NEED_PASSWORD = 17004, _ $VIX_E_CRYPTO_BAD_PASSWORD = 17005, _ $VIX_E_CRYPTO_NOT_IN_DICTIONARY = 17006, _ $VIX_E_CRYPTO_NO_CRYPTO = 17007, _ $VIX_E_CRYPTO_ERROR = 17008, _ $VIX_E_CRYPTO_BAD_FORMAT = 17009, _ $VIX_E_CRYPTO_LOCKED = 17010, _ $VIX_E_CRYPTO_EMPTY = 17011, _ $VIX_E_CRYPTO_KEYSAFE_LOCATOR = 17012, _ _ _ ;* Remoting Errors.;* $VIX_E_CANNOT_CONNECT_TO_HOST = 18000, _ $VIX_E_NOT_FOR_REMOTE_HOST = 18001, _ $VIX_E_INVALID_HOSTNAME_SPECIFICATION = 18002, _ _ _ ;* Screen Capture Errors.;* $VIX_E_SCREEN_CAPTURE_ERROR = 19000, _ $VIX_E_SCREEN_CAPTURE_BAD_FORMAT = 19001, _ $VIX_E_SCREEN_CAPTURE_COMPRESSION_FAIL = 19002, _ $VIX_E_SCREEN_CAPTURE_LARGE_DATA = 19003, _ _ _ ;* Guest Errors;* $VIX_E_GUEST_VOLUMES_NOT_FROZEN = 20000, _ $VIX_E_NOT_A_FILE = 20001, _ $VIX_E_NOT_A_DIRECTORY = 20002, _ $VIX_E_NO_SUCH_PROCESS = 20003, _ $VIX_E_FILE_NAME_TOO_LONG = 20004, _ _ _ ;* Tools install errors;* $VIX_E_TOOLS_INSTALL_NO_IMAGE = 21000, _ $VIX_E_TOOLS_INSTALL_IMAGE_INACCESIBLE = 21001, _ $VIX_E_TOOLS_INSTALL_NO_DEVICE = 21002, _ $VIX_E_TOOLS_INSTALL_DEVICE_NOT_CONNECTED = 21003, _ $VIX_E_TOOLS_INSTALL_CANCELLED = 21004, _ $VIX_E_TOOLS_INSTALL_INIT_FAILED = 21005, _ $VIX_E_TOOLS_INSTALL_AUTO_NOT_SUPPORTED = 21006, _ $VIX_E_TOOLS_INSTALL_GUEST_NOT_READY = 21007, _ $VIX_E_TOOLS_INSTALL_SIG_CHECK_FAILED = 21008, _ $VIX_E_TOOLS_INSTALL_ERROR = 21009, _ $VIX_E_TOOLS_INSTALL_ALREADY_UP_TO_DATE = 21010, _ $VIX_E_TOOLS_INSTALL_IN_PROGRESS = 21011, _ _ _ ;* Wrapper Errors;* $VIX_E_WRAPPER_WORKSTATION_NOT_INSTALLED = 22001, _ $VIX_E_WRAPPER_VERSION_NOT_FOUND = 22002, _ $VIX_E_WRAPPER_SERVICEPROVIDER_NOT_FOUND = 22003, _ $VIX_E_WRAPPER_PLAYER_NOT_INSTALLED = 22004, _ $VIX_E_WRAPPER_RUNTIME_NOT_INSTALLED = 22005, _ $VIX_E_WRAPPER_MULTIPLE_SERVICEPROVIDERS = 22006, _ _ _ ;* FuseMnt errors* $VIX_E_MNTAPI_MOUNTPT_NOT_FOUND = 24000, _ $VIX_E_MNTAPI_MOUNTPT_IN_USE = 24001, _ $VIX_E_MNTAPI_DISK_NOT_FOUND = 24002, _ $VIX_E_MNTAPI_DISK_NOT_MOUNTED = 24003, _ $VIX_E_MNTAPI_DISK_IS_MOUNTED = 24004, _ $VIX_E_MNTAPI_DISK_NOT_SAFE = 24005, _ $VIX_E_MNTAPI_DISK_CANT_OPEN = 24006, _ $VIX_E_MNTAPI_CANT_READ_PARTS = 24007, _ $VIX_E_MNTAPI_UMOUNT_APP_NOT_FOUND = 24008, _ $VIX_E_MNTAPI_UMOUNT = 24009, _ $VIX_E_MNTAPI_NO_MOUNTABLE_PARTITONS = 24010, _ $VIX_E_MNTAPI_PARTITION_RANGE = 24011, _ $VIX_E_MNTAPI_PERM = 24012, _ $VIX_E_MNTAPI_DICT = 24013, _ $VIX_E_MNTAPI_DICT_LOCKED = 24014, _ $VIX_E_MNTAPI_OPEN_HANDLES = 24015, _ $VIX_E_MNTAPI_CANT_MAKE_VAR_DIR = 24016, _ $VIX_E_MNTAPI_NO_ROOT = 24017, _ $VIX_E_MNTAPI_LOOP_FAILED = 24018, _ $VIX_E_MNTAPI_DAEMON = 24019, _ $VIX_E_MNTAPI_INTERNAL = 24020, _ $VIX_E_MNTAPI_SYSTEM = 24021, _ $VIX_E_MNTAPI_NO_CONNECTION_DETAILS = 24022, _ _ ;* FuseMnt errors: Do not exceed 24299;*/ _ _ ;* VixMntapi errors*/ $VIX_E_MNTAPI_INCOMPATIBLE_VERSION = 24300, _ $VIX_E_MNTAPI_OS_ERROR = 24301, _ $VIX_E_MNTAPI_DRIVE_LETTER_IN_USE = 24302, _ $VIX_E_MNTAPI_DRIVE_LETTER_ALREADY_ASSIGNED = 24303, _ $VIX_E_MNTAPI_VOLUME_NOT_MOUNTED = 24304, _ $VIX_E_MNTAPI_VOLUME_ALREADY_MOUNTED = 24305, _ $VIX_E_MNTAPI_FORMAT_FAILURE = 24306, _ $VIX_E_MNTAPI_NO_DRIVER = 24307, _ $VIX_E_MNTAPI_ALREADY_OPENED = 24308, _ $VIX_E_MNTAPI_ITEM_NOT_FOUND = 24309, _ $VIX_E_MNTAPI_UNSUPPROTED_BOOT_LOADER = 24310, _ $VIX_E_MNTAPI_UNSUPPROTED_OS = 24311, _ $VIX_E_MNTAPI_CODECONVERSION = 24312, _ $VIX_E_MNTAPI_REGWRITE_ERROR = 24313, _ $VIX_E_MNTAPI_UNSUPPORTED_FT_VOLUME = 24314, _ $VIX_E_MNTAPI_PARTITION_NOT_FOUND = 24315, _ $VIX_E_MNTAPI_PUTFILE_ERROR = 24316, _ $VIX_E_MNTAPI_GETFILE_ERROR = 24317, _ $VIX_E_MNTAPI_REG_NOT_OPENED = 24318, _ $VIX_E_MNTAPI_REGDELKEY_ERROR = 24319, _ $VIX_E_MNTAPI_CREATE_PARTITIONTABLE_ERROR = 24320, _ $VIX_E_MNTAPI_OPEN_FAILURE = 24321, _ $VIX_E_MNTAPI_VOLUME_NOT_WRITABLE = 24322, _ _ _ ;* Network Errors;*/ $VIX_E_NET_HTTP_UNSUPPORTED_PROTOCOL = 30001, _ $VIX_E_NET_HTTP_URL_MALFORMAT = 30003, _ $VIX_E_NET_HTTP_COULDNT_RESOLVE_PROXY = 30005, _ $VIX_E_NET_HTTP_COULDNT_RESOLVE_HOST = 30006, _ $VIX_E_NET_HTTP_COULDNT_CONNECT = 30007, _ $VIX_E_NET_HTTP_HTTP_RETURNED_ERROR = 30022, _ $VIX_E_NET_HTTP_OPERATION_TIMEDOUT = 30028, _ $VIX_E_NET_HTTP_SSL_CONNECT_ERROR = 30035, _ $VIX_E_NET_HTTP_TOO_MANY_REDIRECTS = 30047, _ $VIX_E_NET_HTTP_TRANSFER = 30200, _ $VIX_E_NET_HTTP_SSL_SECURITY = 30201, _ $VIX_E_NET_HTTP_GENERIC = 30202 Func VIX_ERROR_CODE ($err) Return BitAND($err, 0xFFFF) EndFunc Func VIX_SUCCEEDED ($err) Return $VIX_OK == ($err) EndFunc Func VIX_FAILED ($err) Return $VIX_OK <> ($err) EndFunc Func Vix_GetErrorText ($err, $locale) Local $aRes = DllCall ($vixdll, "str", "Vix_GetErrorText", _ "UINT64", $err, _ "str", $locale) Return $aRes[0] EndFunc ;* ;*----------------------------------------------------------------------------- ;* ;* VIX Handles -- ;* ;* These are common functions that apply to handles of several types. ;*----------------------------------------------------------------------------- ;* ;* ;* VIX Property Type ;* ;~ typedef int VixPropertyType; Global Enum $VIX_PROPERTYTYPE_ANY = 0, _ $VIX_PROPERTYTYPE_INTEGER = 1, _ $VIX_PROPERTYTYPE_STRING = 2, _ $VIX_PROPERTYTYPE_BOOL = 3, _ $VIX_PROPERTYTYPE_HANDLE = 4, _ $VIX_PROPERTYTYPE_INT64 = 5, _ $VIX_PROPERTYTYPE_BLOB = 6 ;* ;* VIX Property ID's ;* ;~ typedef int VixPropertyID; Global Enum $VIX_PROPERTY_NONE = 0, _ _ _ ;* Properties used by several handle types.;*/ $VIX_PROPERTY_META_DATA_CONTAINER = 2, _ _ _ ;* VIX_HANDLETYPE_HOST properties;*/ $VIX_PROPERTY_HOST_HOSTTYPE = 50, _ $VIX_PROPERTY_HOST_API_VERSION = 51, _ _ _ ;* VIX_HANDLETYPE_VM properties;*/ $VIX_PROPERTY_VM_NUM_VCPUS = 101, _ $VIX_PROPERTY_VM_VMX_PATHNAME = 103, _ $VIX_PROPERTY_VM_VMTEAM_PATHNAME = 105, _ $VIX_PROPERTY_VM_MEMORY_SIZE = 106, _ $VIX_PROPERTY_VM_READ_ONLY = 107, _ $VIX_PROPERTY_VM_NAME = 108, _ $VIX_PROPERTY_VM_GUESTOS = 109, _ $VIX_PROPERTY_VM_IN_VMTEAM = 128, _ $VIX_PROPERTY_VM_POWER_STATE = 129, _ $VIX_PROPERTY_VM_TOOLS_STATE = 152, _ $VIX_PROPERTY_VM_IS_RUNNING = 196, _ $VIX_PROPERTY_VM_SUPPORTED_FEATURES = 197, _ $VIX_PROPERTY_VM_IS_RECORDING = 236, _ $VIX_PROPERTY_VM_IS_REPLAYING = 237, _ _ _ ;* Result properties; these are returned by various procedures;*/ $VIX_PROPERTY_JOB_RESULT_ERROR_CODE = 3000, _ $VIX_PROPERTY_JOB_RESULT_VM_IN_GROUP = 3001, _ $VIX_PROPERTY_JOB_RESULT_USER_MESSAGE = 3002, _ $VIX_PROPERTY_JOB_RESULT_EXIT_CODE = 3004, _ $VIX_PROPERTY_JOB_RESULT_COMMAND_OUTPUT = 3005, _ $VIX_PROPERTY_JOB_RESULT_HANDLE = 3010, _ $VIX_PROPERTY_JOB_RESULT_GUEST_OBJECT_EXISTS = 3011, _ $VIX_PROPERTY_JOB_RESULT_GUEST_PROGRAM_ELAPSED_TIME = 3017, _ $VIX_PROPERTY_JOB_RESULT_GUEST_PROGRAM_EXIT_CODE = 3018, _ $VIX_PROPERTY_JOB_RESULT_ITEM_NAME = 3035, _ $VIX_PROPERTY_JOB_RESULT_FOUND_ITEM_DESCRIPTION = 3036, _ $VIX_PROPERTY_JOB_RESULT_SHARED_FOLDER_COUNT = 3046, _ $VIX_PROPERTY_JOB_RESULT_SHARED_FOLDER_HOST = 3048, _ $VIX_PROPERTY_JOB_RESULT_SHARED_FOLDER_FLAGS = 3049, _ $VIX_PROPERTY_JOB_RESULT_PROCESS_ID = 3051, _ $VIX_PROPERTY_JOB_RESULT_PROCESS_OWNER = 3052, _ $VIX_PROPERTY_JOB_RESULT_PROCESS_COMMAND = 3053, _ $VIX_PROPERTY_JOB_RESULT_FILE_FLAGS = 3054, _ $VIX_PROPERTY_JOB_RESULT_PROCESS_START_TIME = 3055, _ $VIX_PROPERTY_JOB_RESULT_VM_VARIABLE_STRING = 3056, _ $VIX_PROPERTY_JOB_RESULT_PROCESS_BEING_DEBUGGED = 3057, _ $VIX_PROPERTY_JOB_RESULT_SCREEN_IMAGE_SIZE = 3058, _ $VIX_PROPERTY_JOB_RESULT_SCREEN_IMAGE_DATA = 3059, _ $VIX_PROPERTY_JOB_RESULT_FILE_SIZE = 3061, _ $VIX_PROPERTY_JOB_RESULT_FILE_MOD_TIME = 3062, _ $VIX_PROPERTY_JOB_RESULT_EXTRA_ERROR_INFO = 3084, _ _ _ ;* Event properties; these are sent in the moreEventInfo for some events.;*/ $VIX_PROPERTY_FOUND_ITEM_LOCATION = 4010, _ _ _ ;* VIX_HANDLETYPE_SNAPSHOT properties;*/ $VIX_PROPERTY_SNAPSHOT_DISPLAYNAME = 4200, _ $VIX_PROPERTY_SNAPSHOT_DESCRIPTION = 4201, _ $VIX_PROPERTY_SNAPSHOT_POWERSTATE = 4205, _ $VIX_PROPERTY_SNAPSHOT_IS_REPLAYABLE = 4207, _ _ $VIX_PROPERTY_GUEST_SHAREDFOLDERS_SHARES_PATH = 4525, _ _ _ ;* Virtual machine encryption properties;*/ $VIX_PROPERTY_VM_ENCRYPTION_PASSWORD = 7001 ;* ;* These are events that may be signalled by calling a procedure ;* of type VixEventProc. ;* ;~ typedef int VixEventType; Global Enum $VIX_EVENTTYPE_JOB_COMPLETED = 2, _ $VIX_EVENTTYPE_JOB_PROGRESS = 3, _ $VIX_EVENTTYPE_FIND_ITEM = 8, _ $VIX_EVENTTYPE_CALLBACK_SIGNALLED = 2 ; Deprecated - Use VIX_EVENTTYPE_JOB_COMPLETED instead. ;* ;* These are the property flags for each file. ;* Global Enum $VIX_FILE_ATTRIBUTES_DIRECTORY = 0x0001, _ $VIX_FILE_ATTRIBUTES_SYMLINK = 0x0002 ;* ;* Procedures of this type are called when an event happens on a handle. ;* ;************************************************************************ ;* Registration of function prototype, must be implemented by the user! * ;************************************************************************ ;~ $g_hVixEventProc = DllCallbackRegister ("VixEventProc", "none", "int;int;int;ptr") ;******************************************************** ;* Function prototype, must be implemented by the user! * ;******************************************************** ;~ Func VixEventProc ($handle, $eventType, $moreEventInfo, $clientData) ;~ ;~ ; $handle - An int value ;~ ; $eventType - An int value ;~ ; $moreEventInfo - An int value ;~ ; $clientData - A void pointer to a structure ;~ ;~ ; Code goes here ... ;~ ; No return value ;~ EndFunc ;* ;* Handle Property functions ;*/ Func Vix_ReleaseHandle ($handle) Local $aRes = DllCall ($vixdll, "none", "Vix_ReleaseHandle", _ "int", $handle) ; VixHandle Return $aRes[0] EndFunc Func Vix_AddRefHandle ($handle) Local $aRes = DllCall ($vixdll, "none", "Vix_AddRefHandle", _ "int", $handle) ; VixHandle Return $aRes[0] EndFunc Func Vix_GetHandleType ($handle) Local $aRes = DllCall ($vixdll, "int", "Vix_GetHandleType", _ "int", $handle) ; VixHandle Return $aRes[0] EndFunc Func Vix_GetProperties ($handle, $firstPropertyID, $secondPropertyID = 0, $thirdPropertyID = 0, $fourthPropertyID = 0, $fifthPropertyID = 0, $sixthPropertyID = 0, $seventhPropertyID = 0, $eighthPropertyID = 0, $ninthPropertyID = 0, $tenthPropertyID = 0) Local $aRes = DllCall ($vixdll, "uint64", "Vix_GetProperties", _ "int", $handle, _ ; VixHandle "int", $firstPropertyID, _ ; VixPropertyID "int", $secondPropertyID, _ ; VixPropertyID "int", $thirdPropertyID, _ ; VixPropertyID "int", $fourthPropertyID, _ ; VixPropertyID "int", $fifthPropertyID, _ ; VixPropertyID "int", $sixthPropertyID, _ ; VixPropertyID "int", $seventhPropertyID, _ ; VixPropertyID "int", $eighthPropertyID, _ ; VixPropertyID "int", $ninthPropertyID, _ ; VixPropertyID "int", $tenthPropertyID) ; VixPropertyID Return $aRes[0] EndFunc Func Vix_GetPropertyType ($handle, $propertyID, $propertyType) Local $aRes = DllCall ($vixdll, "uint64", "Vix_GetPropertyType", _ "int", $handle, _ ; VixHandle "int", $propertyID, _ ; VixPropertyID "PTR", $propertyType) ; Pointer to an int Return $aRes[0] EndFunc Func Vix_FreeBuffer ($p) Local $aRes = DllCall ($vixdll, "none", "Vix_FreeBuffer", _ "PTR", $p) ; void pointer Return $aRes[0] EndFunc ;* ;*----------------------------------------------------------------------------- ;* ;* VIX Host -- ;* ;*----------------------------------------------------------------------------- ;* Global Enum _ $VIX_HOSTOPTION_USE_EVENT_PUMP = 0x0008 Global Enum _ $VIX_SERVICEPROVIDER_DEFAULT = 1, _ $VIX_SERVICEPROVIDER_VMWARE_SERVER = 2, _ $VIX_SERVICEPROVIDER_VMWARE_WORKSTATION = 3, _ $VIX_SERVICEPROVIDER_VMWARE_PLAYER = 4, _ $VIX_SERVICEPROVIDER_VMWARE_VI_SERVER = 10 ;* ;* VIX_API_VERSION tells VixHost_Connect to use the latest API version ;* that is available for the product specified in the VixServiceProvider ;* parameter. ;* Global Enum _ $VIX_API_VERSION = -1 Func VixHost_Connect ($apiVersion, $hostType, $hostName, $hostPort, $userName, $password, $options, $propertyListHandle, $callbackProc, $clientData) Local $aRes = DllCall ($vixdll, "INT", "VixHost_Connect", _ "INT", $apiVersion, _ "INT", $hostType, _ "str", $hostName, _ "INT", $hostPort, _ "str", $userName, _ "str", $password, _ "INT", $options, _ "INT", $propertyListHandle, _ "PTR", $callbackProc, _ "PTR", $clientData) Return $aRes[0] EndFunc Func VixHost_Disconnect ($hostHandle) Local $aRes = DllCall ($vixdll, "none", "VixHost_Disconnect", _ "INT", $hostHandle) Return $aRes[0] EndFunc ;* ;* VM Registration ;* Func VixHost_RegisterVM ($hostHandle, $vmxFilePath, $callbackProc, $clientData) Local $aRes = DllCall ($vixdll, "INT", "VixHost_RegisterVM", _ "INT", $hostHandle, _ "str", $vmxFilePath, _ "PTR", $callbackProc, _ "PTR", $clientData) Return $aRes[0] EndFunc Func VixHost_UnregisterVM ($hostHandle, $vmxFilePath, $callbackProc, $clientData) Local $aRes = DllCall ($vixdll, "INT", "VixHost_UnregisterVM", _ "INT", $hostHandle, _ "str", $vmxFilePath, _ "PTR", $callbackProc, _ "PTR", $clientData) Return $aRes[0] EndFunc ;* ;* VM Search ;* Global Enum _ $VIX_FIND_RUNNING_VMS = 1, _ $VIX_FIND_REGISTERED_VMS = 4 Func VixHost_FindItems ($hostHandle, $searchType, $searchCriteria, $timeout, $callbackProc, $clientData) Local $aRes = DllCall ($vixdll, "INT", "VixHost_FindItems", _ "INT", $hostHandle, _ "INT", $searchType, _ "INT", $searchCriteria, _ "int32", $timeout, _ "PTR", $callbackProc, _ "PTR", $clientData) Return $aRes[0] EndFunc ;* ;* VixHost_OpenVM() supercedes VixVM_Open() since it allows for ;* the passing of option flags and extra data in the form of a ;* property list. ;* It is recommended to use VixHost_OpenVM() instead of VixVM_Open(). ;* Global Enum _ $VIX_VMOPEN_NORMAL = 0x0 Func VixHost_OpenVM ($hostHandle, $vmxFilePathName, $options, $propertyListHandle, $callbackProc, $clientData) Local $aRes = DllCall ($vixdll, "INT", "VixHost_OpenVM", _ "INT", $hostHandle, _ "str", $vmxFilePathName, _ "INT", $options, _ "INT", $propertyListHandle, _ "PTR", $callbackProc, _ "PTR", $clientData) Return $aRes[0] EndFunc ;* ;* Event pump ;* Global Enum _ $VIX_PUMPEVENTOPTION_NONE = 0 Func Vix_PumpEvents ($hostHandle, $options) Local $aRes = DllCall ($vixdll, "none", "Vix_PumpEvents", _ "INT", $hostHandle, _ "INT", $options) Return $aRes[0] EndFunc ;* ;*----------------------------------------------------------------------------- ;* ;* PropertyList -- ;* ;*----------------------------------------------------------------------------- ;* ;~ #ifndef VIX_HIDE_FROM_JAVA Func VixPropertyList_AllocPropertyList ($hostHandle, $resultHandle, $firstPropertyID, $secondPropertyID = 0, $thirdPropertyID = 0, $fourthPropertyID = 0, $fifthPropertyID = 0, $sixthPropertyID = 0, $seventhPropertyID = 0, $eighthPropertyID = 0, $ninthPropertyID = 0, $tenthPropertyID = 0) Local $aRes = DllCall ($vixdll, "UINT64", "VixPropertyList_AllocPropertyList", _ "INT", $hostHandle, _ "PTR", $resultHandle, _ "INT", $firstPropertyID, _ "int", $secondPropertyID, _ ; VixPropertyID "int", $thirdPropertyID, _ ; VixPropertyID "int", $fourthPropertyID, _ ; VixPropertyID "int", $fifthPropertyID, _ ; VixPropertyID "int", $sixthPropertyID, _ ; VixPropertyID "int", $seventhPropertyID, _ ; VixPropertyID "int", $eighthPropertyID, _ ; VixPropertyID "int", $ninthPropertyID, _ ; VixPropertyID "int", $tenthPropertyID) ; VixPropertyID Return $aRes[0] EndFunc ;~ #endif ;* ;*----------------------------------------------------------------------------- ;* ;* VIX VM -- ;* ;* This describes the persistent configuration state of a single VM. The ;* VM may or may not be running. ;* ;*----------------------------------------------------------------------------- ;* Func VixVM_Open ($hostHandle, $vmxFilePathName, $callbackProc, $clientData) Local $aRes = DllCall ($vixdll, "INT", "VixVM_Open", _ "INT", $hostHandle, _ "str", $vmxFilePathName, _ "PTR", $callbackProc, _ "PTR", $clientData) Return $aRes[0] EndFunc Global Enum _ $VIX_VMPOWEROP_NORMAL = 0, _ $VIX_VMPOWEROP_FROM_GUEST = 0x0004, _ $VIX_VMPOWEROP_SUPPRESS_SNAPSHOT_POWERON = 0x0080, _ $VIX_VMPOWEROP_LAUNCH_GUI = 0x0200, _ $VIX_VMPOWEROP_START_VM_PAUSED = 0x1000 ;* ;* Power operations ;* Func VixVM_PowerOn ($vmHandle, $powerOnOptions, $propertyListHandle, $callbackProc, $clientData) Local $aRes = DllCall ($vixdll, "INT", "VixVM_PowerOn", _ "INT", $vmHandle, _ "INT", $powerOnOptions, _ "INT", $propertyListHandle, _ "PTR", $callbackProc, _ "PTR", $clientData) Return $aRes[0] EndFunc Func VixVM_PowerOff ($vmHandle, $powerOffOptions, $callbackProc, $clientData) Local $aRes = DllCall ($vixdll, "INT", "VixVM_PowerOff", _ "INT", $vmHandle, _ "INT", $powerOffOptions, _ "PTR", $callbackProc, _ "PTR", $clientData) Return $aRes[0] EndFunc Func VixVM_Reset ($vmHandle, $resetOptions, $callbackProc, $clientData) Local $aRes = DllCall ($vixdll, "INT", "VixVM_Reset", _ "INT", $vmHandle, _ "INT", $resetOptions, _ "PTR", $callbackProc, _ "PTR", $clientData) Return $aRes[0] EndFunc Func VixVM_Suspend ($vmHandle, $suspendOptions, $callbackProc, $clientData) Local $aRes = DllCall ($vixdll, "INT", "VixVM_Suspend", _ "INT", $vmHandle, _ "INT", $suspendOptions, _ "PTR", $callbackProc, _ "PTR", $clientData) Return $aRes[0] EndFunc Func VixVM_Pause ($vmHandle, $options, $propertyList, $callbackProc, $clientData) Local $aRes = DllCall ($vixdll, "INT", "VixVM_Pause", _ "INT", $vmHandle, _ "INT", $options, _ "INT", $propertyList, _ "PTR", $callbackProc, _ "PTR", $clientData) Return $aRes[0] EndFunc Func VixVM_Unpause ($vmHandle, $options, $propertyList, $callbackProc, $clientData) Local $aRes = DllCall ($vixdll, "INT", "VixVM_Unpause", _ "INT", $vmHandle, _ "INT", $options, _ "INT", $propertyList, _ "PTR", $callbackProc, _ "PTR", $clientData) Return $aRes[0] EndFunc Global Enum _ $VIX_VMDELETE_DISK_FILES = 0x0002 Func VixVM_Delete ($vmHandle, $deleteOptions, $callbackProc, $clientData) Local $aRes = DllCall ($vixdll, "INT", "VixVM_Delete", _ "INT", $vmHandle, _ "INT", $deleteOptions, _ "PTR", $callbackProc, _ "PTR", $clientData) Return $aRes[0] EndFunc ;* ;* This is the state of an individual VM. These values are bitwise flags. ;* The actual value returned for may be a bitwise OR of one more of these ;* flags, along with other reserved values not documented here. ;* Global Enum _ $VIX_POWERSTATE_POWERING_OFF = 0x0001, _ $VIX_POWERSTATE_POWERED_OFF = 0x0002, _ $VIX_POWERSTATE_POWERING_ON = 0x0004, _ $VIX_POWERSTATE_POWERED_ON = 0x0008, _ $VIX_POWERSTATE_SUSPENDING = 0x0010, _ $VIX_POWERSTATE_SUSPENDED = 0x0020, _ $VIX_POWERSTATE_TOOLS_RUNNING = 0x0040, _ $VIX_POWERSTATE_RESETTING = 0x0080, _ $VIX_POWERSTATE_BLOCKED_ON_MSG = 0x0100, _ $VIX_POWERSTATE_PAUSED = 0x0200, _ $VIX_POWERSTATE_RESUMING = 0x0800 Global Enum _ $VIX_TOOLSSTATE_UNKNOWN = 0x0001, _ $VIX_TOOLSSTATE_RUNNING = 0x0002, _ $VIX_TOOLSSTATE_NOT_INSTALLED = 0x0004 ;* ;* These flags describe optional functions supported by different ;* types of VM. ;* Global Enum _ $VIX_VM_SUPPORT_SHARED_FOLDERS = 0x0001, _ $VIX_VM_SUPPORT_MULTIPLE_SNAPSHOTS = 0x0002, _ $VIX_VM_SUPPORT_TOOLS_INSTALL = 0x0004, _ $VIX_VM_SUPPORT_HARDWARE_UPGRADE = 0x0008 ;* ;* VIX_ADMINISTRATOR_USER_NAME and VIX_CONSOLE_USER_NAME are no longer ;* supported. If your code includes references to these constants please ;* update your code to use a valid guest username and password when calling ;* VixVM_LoginInGuest(). ;* ;~ //#define VIX_ADMINISTRATOR_USER_NAME "__VMware_Vix_Guest_User_Admin__" ;~ //#define VIX_CONSOLE_USER_NAME "__VMware_Vix_Guest_Console_User__" ;* ;* Record/replay operations ;* Func VixVM_BeginRecording ($vmHandle, $displayName, $description, $options, $propertyList, $callbackProc, $clientData) Local $aRes = DllCall ($vixdll, "INT", "VixVM_BeginRecording", _ "INT", $vmHandle, _ "str", $displayName, _ "str", $description, _ "INT", $options, _ "INT", $propertyList, _ "PTR", $callbackProc, _ "PTR", $clientData) Return $aRes[0] EndFunc Func VixVM_EndRecording ($vmHandle, $options, $propertyList, $callbackProc, $clientData) Local $aRes = DllCall ($vixdll, "INT", "VixVM_EndRecording", _ "INT", $vmHandle, _ "INT", $options, _ "INT", $propertyList, _ "PTR", $callbackProc, _ "PTR", $clientData) Return $aRes[0] EndFunc Func VixVM_BeginReplay ($vmHandle, $snapshotHandle, $options, $propertyList, $callbackProc, $clientData) Local $aRes = DllCall ($vixdll, "INT", "VixVM_BeginReplay", _ "INT", $vmHandle, _ "INT", $snapshotHandle, _ "INT", $options, _ "INT", $propertyList, _ "PTR", $callbackProc, _ "PTR", $clientData) Return $aRes[0] EndFunc Func VixVM_EndReplay ($vmHandle, $options, $propertyList, $callbackProc, $clientData) Local $aRes = DllCall ($vixdll, "INT", "VixVM_EndReplay", _ "INT", $vmHandle, _ "INT", $options, _ "INT", $propertyList, _ "PTR", $callbackProc, _ "PTR", $clientData) Return $aRes[0] EndFunc ;* ;* Guest operations ;* Func VixVM_WaitForToolsInGuest ($vmHandle, $timeoutInSeconds, $callbackProc, $clientData) Local $aRes = DllCall ($vixdll, "INT", "VixVM_WaitForToolsInGuest", _ "INT", $vmHandle, _ "INT", $timeoutInSeconds, _ "PTR", $callbackProc, _ "PTR", $clientData) Return $aRes[0] EndFunc ;* ;* VixVM_LoginInGuest option flags. ;* Global Enum _ $VIX_LOGIN_IN_GUEST_REQUIRE_INTERACTIVE_ENVIRONMENT = 0x08 Func VixVM_LoginInGuest ($vmHandle, $userName, $password, $options, $callbackProc, $clientData) Local $aRes = DllCall ($vixdll, "INT", "VixVM_LoginInGuest", _ "INT", $vmHandle, _ "str", $userName, _ "str", $password, _ "INT", $options, _ "PTR", $callbackProc, _ "PTR", $clientData) Return $aRes[0] EndFunc Func VixVM_LogoutFromGuest ($vmHandle, $callbackProc, $clientData) Local $aRes = DllCall ($vixdll, "INT", "VixVM_LogoutFromGuest", _ "INT", $vmHandle, _ "PTR", $callbackProc, _ "PTR", $clientData) Return $aRes[0] EndFunc ;* ;* Guest Process functions ;* Global Enum _ $VIX_RUNPROGRAM_RETURN_IMMEDIATELY = 0x0001, _ $VIX_RUNPROGRAM_ACTIVATE_WINDOW = 0x0002 Func VixVM_RunProgramInGuest ($vmHandle, $guestProgramName, $commandLineArgs, $options, $propertyListHandle, $callbackProc, $clientData) Local $aRes = DllCall ($vixdll, "INT", "VixVM_RunProgramInGuest", _ "INT", $vmHandle, _ "str", $guestProgramName, _ "str", $commandLineArgs, _ "INT", $options, _ "INT", $propertyListHandle, _ "PTR", $callbackProc, _ "PTR", $clientData) Return $aRes[0] EndFunc Func VixVM_ListProcessesInGuest ($vmHandle, $options, $callbackProc, $clientData) Local $aRes = DllCall ($vixdll, "INT", "VixVM_ListProcessesInGuest", _ "INT", $vmHandle, _ "INT", $options, _ "PTR", $callbackProc, _ "PTR", $clientData) Return $aRes[0] EndFunc Func VixVM_KillProcessInGuest ($vmHandle, $pid, $options, $callbackProc, $clientData) Local $aRes = DllCall ($vixdll, "INT", "VixVM_KillProcessInGuest", _ "INT", $vmHandle, _ "uint64", $pid, _ "INT", $options, _ "PTR", $callbackProc, _ "PTR", $clientData) Return $aRes[0] EndFunc Func VixVM_RunScriptInGuest ($vmHandle, $interpreter, $scriptText, $options, $propertyListHandle, $callbackProc, $clientData) Local $aRes = DllCall ($vixdll, "INT", "VixVM_RunScriptInGuest", _ "INT", $vmHandle, _ "str", $interpreter, _ "str", $scriptText, _ "INT", $options, _ "INT", $propertyListHandle, _ "PTR", $callbackProc, _ "PTR", $clientData) Return $aRes[0] EndFunc Func VixVM_OpenUrlInGuest ($vmHandle, $url, $windowState, $propertyListHandle, $callbackProc, $clientData) Local $aRes = DllCall ($vixdll, "INT", "VixVM_OpenUrlInGuest", _ "INT", $vmHandle, _ "str", $url, _ "INT", $windowState, _ "INT", $propertyListHandle, _ "PTR", $callbackProc, _ "PTR", $clientData) Return $aRes[0] EndFunc ;* ;* Guest File functions ;* Func VixVM_CopyFileFromHostToGuest ($vmHandle, $hostPathName, $guestPathName, $options, $propertyListHandle, $callbackProc, $clientData) Local $aRes = DllCall ($vixdll, "INT", "VixVM_CopyFileFromHostToGuest", _ "INT", $vmHandle, _ "str", $hostPathName, _ "str", $guestPathName, _ "INT", $options, _ "INT", $propertyListHandle, _ "PTR", $callbackProc, _ "PTR", $clientData) Return $aRes[0] EndFunc Func VixVM_CopyFileFromGuestToHost ($vmHandle, $guestPathName, $hostPathName, $options, $propertyListHandle, $callbackProc, $clientData) Local $aRes = DllCall ($vixdll, "INT", "VixVM_CopyFileFromGuestToHost", _ "INT", $vmHandle, _ "str", $guestPathName, _ "str", $hostPathName, _ "INT", $options, _ "INT", $propertyListHandle, _ "PTR", $callbackProc, _ "PTR", $clientData) Return $aRes[0] EndFunc Func VixVM_DeleteFileInGuest ($vmHandle, $guestPathName, $callbackProc, $clientData) Local $aRes = DllCall ($vixdll, "INT", "VixVM_DeleteFileInGuest", _ "INT", $vmHandle, _ "str", $guestPathName, _ "PTR", $callbackProc, _ "PTR", $clientData) Return $aRes[0] EndFunc Func VixVM_FileExistsInGuest ($vmHandle, $guestPathName, $callbackProc, $clientData) Local $aRes = DllCall ($vixdll, "INT", "VixVM_FileExistsInGuest", _ "INT", $vmHandle, _ "str", $guestPathName, _ "PTR", $callbackProc, _ "PTR", $clientData) Return $aRes[0] EndFunc Func VixVM_RenameFileInGuest ($vmHandle, $oldName, $newName, $options, $propertyListHandle, $callbackProc, $clientData) Local $aRes = DllCall ($vixdll, "INT", "VixVM_RenameFileInGuest", _ "INT", $vmHandle, _ "str", $oldName, _ "str", $newName, _ "INT", $options, _ "INT", $propertyListHandle, _ "PTR", $callbackProc, _ "PTR", $clientData) Return $aRes[0] EndFunc Func VixVM_CreateTempFileInGuest ($vmHandle, $options, $propertyListHandle, $callbackProc, $clientData) Local $aRes = DllCall ($vixdll, "INT", "VixVM_CreateTempFileInGuest", _ "INT", $vmHandle, _ "INT", $options, _ "INT", $propertyListHandle, _ "PTR", $callbackProc, _ "PTR", $clientData) Return $aRes[0] EndFunc Func VixVM_GetFileInfoInGuest ($vmHandle, $pathName, $callbackProc, $clientData) Local $aRes = DllCall ($vixdll, "INT", "VixVM_GetFileInfoInGuest", _ "INT", $vmHandle, _ "str", $pathName, _ "PTR", $callbackProc, _ "PTR", $clientData) Return $aRes[0] EndFunc ;* ;* Guest Directory functions ;* Func VixVM_ListDirectoryInGuest ($vmHandle, $pathName, $options, $callbackProc, $clientData) Local $aRes = DllCall ($vixdll, "INT", "VixVM_ListDirectoryInGuest", _ "INT", $vmHandle, _ "str", $pathName, _ "INT", $options, _ "PTR", $callbackProc, _ "PTR", $clientData) Return $aRes[0] EndFunc Func VixVM_CreateDirectoryInGuest ($vmHandle, $pathName, $propertyListHandle, $callbackProc, $clientData) Local $aRes = DllCall ($vixdll, "INT", "VixVM_CreateDirectoryInGuest", _ "INT", $vmHandle, _ "str", $pathName, _ "INT", $propertyListHandle, _ "PTR", $callbackProc, _ "PTR", $clientData) Return $aRes[0] EndFunc Func VixVM_DeleteDirectoryInGuest ($vmHandle, $pathName, $options, $callbackProc, $clientData) Local $aRes = DllCall ($vixdll, "INT", "VixVM_DeleteDirectoryInGuest", _ "INT", $vmHandle, _ "str", $pathName, _ "INT", $options, _ "PTR", $callbackProc, _ "PTR", $clientData) Return $aRes[0] EndFunc Func VixVM_DirectoryExistsInGuest ($vmHandle, $pathName, $callbackProc, $clientData) Local $aRes = DllCall ($vixdll, "INT", "VixVM_DirectoryExistsInGuest", _ "INT", $vmHandle, _ "str", $pathName, _ "PTR", $callbackProc, _ "PTR", $clientData) Return $aRes[0] EndFunc ;* ;* Guest Variable Functions ;* Global Enum _ $VIX_VM_GUEST_VARIABLE = 1, _ $VIX_VM_CONFIG_RUNTIME_ONLY = 2, _ $VIX_GUEST_ENVIRONMENT_VARIABLE = 3 Func VixVM_ReadVariable ($vmHandle, $variableType, $name, $options, $callbackProc, $clientData) Local $aRes = DllCall ($vixdll, "INT", "VixVM_ReadVariable", _ "INT", $vmHandle, _ "INT", $variableType, _ "str", $name, _ "INT", $options, _ "PTR", $callbackProc, _ "PTR", $clientData) Return $aRes[0] EndFunc Func VixVM_WriteVariable ($vmHandle, $variableType, $valueName, $value, $options, $callbackProc, $clientData) Local $aRes = DllCall ($vixdll, "INT", "VixVM_WriteVariable", _ "INT", $vmHandle, _ "INT", $variableType, _ "str", $valueName, _ "str", $value, _ "INT", $options, _ "PTR", $callbackProc, _ "PTR", $clientData) Return $aRes[0] EndFunc ;* ;* Snapshot functions that operate on a VM ;* Func VixVM_GetNumRootSnapshots ($vmHandle, $result) Local $aRes = DllCall ($vixdll, "UINT64", "VixVM_GetNumRootSnapshots", _ "INT", $vmHandle, _ "PTR", $result) Return $aRes[0] EndFunc Func VixVM_GetRootSnapshot ($vmHandle, $index, $snapshotHandle) Local $aRes = DllCall ($vixdll, "UINT64", "VixVM_GetRootSnapshot", _ "INT", $vmHandle, _ "INT", $index, _ "PTR", $snapshotHandle) Return $aRes[0] EndFunc Func VixVM_GetCurrentSnapshot ($vmHandle, $snapshotHandle) Local $aRes = DllCall ($vixdll, "UINT64", "VixVM_GetCurrentSnapshot", _ "INT", $vmHandle, _ "PTR", $snapshotHandle) Return $aRes[0] EndFunc Func VixVM_GetNamedSnapshot ($vmHandle, $name, $snapshotHandle) Local $aRes = DllCall ($vixdll, "UINT64", "VixVM_GetNamedSnapshot", _ "INT", $vmHandle, _ "str", $name, _ "PTR", $snapshotHandle) Return $aRes[0] EndFunc Global Enum _ $VIX_SNAPSHOT_REMOVE_CHILDREN = 0x0001 Func VixVM_RemoveSnapshot ($vmHandle, $snapshotHandle, $options, $callbackProc, $clientData) Local $aRes = DllCall ($vixdll, "INT", "VixVM_RemoveSnapshot", _ "INT", $vmHandle, _ "INT", $snapshotHandle, _ "INT", $options, _ "PTR", $callbackProc, _ "PTR", $clientData) Return $aRes[0] EndFunc Func VixVM_RevertToSnapshot ($vmHandle, $snapshotHandle, $options, $propertyListHandle, $callbackProc, $clientData) Local $aRes = DllCall ($vixdll, "INT", "VixVM_RevertToSnapshot", _ "INT", $vmHandle, _ "INT", $snapshotHandle, _ "INT", $options, _ "INT", $propertyListHandle, _ "PTR", $callbackProc, _ "PTR", $clientData) Return $aRes[0] EndFunc Global Enum _ $VIX_SNAPSHOT_INCLUDE_MEMORY = 0x0002 Func VixVM_CreateSnapshot ($vmHandle, $name, $description, $options, $propertyListHandle, $callbackProc, $clientData) Local $aRes = DllCall ($vixdll, "INT", "VixVM_CreateSnapshot", _ "INT", $vmHandle, _ "str", $name, _ "str", $description, _ "INT", $options, _ "INT", $propertyListHandle, _ "PTR", $callbackProc, _ "PTR", $clientData) Return $aRes[0] EndFunc ;* ;* Shared Folders Functions ;* ;* ;* These are the flags describing each shared folder. ;* Global Enum _ $VIX_SHAREDFOLDER_WRITE_ACCESS = 0x04 Func VixVM_EnableSharedFolders ($vmHandle, $enabled, $options, $callbackProc, $clientData) Local $aRes = DllCall ($vixdll, "INT", "VixVM_EnableSharedFolders", _ "INT", $vmHandle, _ "Bool", $enabled, _ "INT", $options, _ "PTR", $callbackProc, _ "PTR", $clientData) Return $aRes[0] EndFunc Func VixVM_GetNumSharedFolders ($vmHandle, $callbackProc, $clientData) Local $aRes = DllCall ($vixdll, "INT", "VixVM_GetNumSharedFolders", _ "INT", $vmHandle, _ "PTR", $callbackProc, _ "PTR", $clientData) Return $aRes[0] EndFunc Func VixVM_GetSharedFolderState ($vmHandle, $index, $callbackProc, $clientData) Local $aRes = DllCall ($vixdll, "INT", "VixVM_GetSharedFolderState", _ "INT", $vmHandle, _ "INT", $index, _ "PTR", $callbackProc, _ "PTR", $clientData) Return $aRes[0] EndFunc Func VixVM_SetSharedFolderState ($vmHandle, $shareName, $hostPathName, $flags, $callbackProc, $clientData) Local $aRes = DllCall ($vixdll, "INT", "VixVM_SetSharedFolderState", _ "INT", $vmHandle, _ "str", $shareName, _ "str", $hostPathName, _ "INT", $flags, _ "PTR", $callbackProc, _ "PTR", $clientData) Return $aRes[0] EndFunc Func VixVM_AddSharedFolder ($vmHandle, $shareName, $hostPathName, $flags, $callbackProc, $clientData) Local $aRes = DllCall ($vixdll, "INT", "VixVM_AddSharedFolder", _ "INT", $vmHandle, _ "str", $shareName, _ "str", $hostPathName, _ "INT", $flags, _ "PTR", $callbackProc, _ "PTR", $clientData) Return $aRes[0] EndFunc Func VixVM_RemoveSharedFolder ($vmHandle, $shareName, $flags, $callbackProc, $clientData) Local $aRes = DllCall ($vixdll, "INT", "VixVM_RemoveSharedFolder", _ "INT", $vmHandle, _ "str", $shareName, _ "INT", $flags, _ "PTR", $callbackProc, _ "PTR", $clientData) Return $aRes[0] EndFunc ;* ;* Screen Capture ;* ;~ #ifndef VIX_HIDE_FROM_JAVA Global Enum _ $VIX_CAPTURESCREENFORMAT_PNG = 0x01, _ $VIX_CAPTURESCREENFORMAT_PNG_NOCOMPRESS = 0x02 Func VixVM_CaptureScreenImage ($vmHandle, $captureType, $additionalProperties, $callbackProc, $clientdata) Local $aRes = DllCall ($vixdll, "INT", "VixVM_CaptureScreenImage", _ "INT", $vmHandle, _ "INT", $captureType, _ "INT", $additionalProperties, _ "PTR", $callbackProc, _ "PTR", $clientdata) Return $aRes[0] EndFunc ;~ #endif // VIX_HIDE_FROM_JAVA ;* ;* VM Cloning -- ;* Global Enum _ $VIX_CLONETYPE_FULL = 0, _ $VIX_CLONETYPE_LINKED = 1 Func VixVM_Clone ($vmHandle, $snapshotHandle, $cloneType, $destConfigPathName, $options, $propertyListHandle, $callbackProc, $clientData) Local $aRes = DllCall ($vixdll, "INT", "VixVM_Clone", _ "INT", $vmHandle, _ "INT", $snapshotHandle, _ "INT", $cloneType, _ "str", $destConfigPathName, _ "INT", $options, _ "INT", $propertyListHandle, _ "PTR", $callbackProc, _ "PTR", $clientData) Return $aRes[0] EndFunc ;* ;* Misc Functions ;* Func VixVM_UpgradeVirtualHardware ($vmHandle, $options, $callbackProc, $clientData) Local $aRes = DllCall ($vixdll, "INT", "VixVM_UpgradeVirtualHardware", _ "INT", $vmHandle, _ "INT", $options, _ "PTR", $callbackProc, _ "PTR", $clientData) Return $aRes[0] EndFunc Global Enum _ $VIX_INSTALLTOOLS_MOUNT_TOOLS_INSTALLER = 0x00, _ $VIX_INSTALLTOOLS_AUTO_UPGRADE = 0x01, _ $VIX_INSTALLTOOLS_RETURN_IMMEDIATELY = 0x02 Func VixVM_InstallTools ($vmHandle, $options, $commandLineArgs, $callbackProc, $clientData) Local $aRes = DllCall ($vixdll, "INT", "VixVM_InstallTools", _ "INT", $vmHandle, _ "INT", $options, _ "str", $commandLineArgs, _ "PTR", $callbackProc, _ "PTR", $clientData) Return $aRes[0] EndFunc ;* ;*----------------------------------------------------------------------------- ;* ;* VIX Job -- ;* ;*----------------------------------------------------------------------------- ;* ;* ;* Synchronization functions ;* (used to detect when an asynch operation completes). ;* Func VixJob_Wait ($jobHandle, $firstPropertyID, $secondPropertyID = 0, $thirdPropertyID = 0, $fourthPropertyID = 0, $fifthPropertyID = 0, $sixthPropertyID = 0, $seventhPropertyID = 0, $eighthPropertyID = 0, $ninthPropertyID = 0, $tenthPropertyID = 0) Local $aRes = DllCall ($vixdll, "UINT64", "VixJob_Wait", _ "INT", $jobHandle, _ "INT", $firstPropertyID, _ "int", $secondPropertyID, _ ; VixPropertyID "int", $thirdPropertyID, _ ; VixPropertyID "int", $fourthPropertyID, _ ; VixPropertyID "int", $fifthPropertyID, _ ; VixPropertyID "int", $sixthPropertyID, _ ; VixPropertyID "int", $seventhPropertyID, _ ; VixPropertyID "int", $eighthPropertyID, _ ; VixPropertyID "int", $ninthPropertyID, _ ; VixPropertyID "int", $tenthPropertyID) ; VixPropertyID Return $aRes[0] EndFunc Func VixJob_CheckCompletion ($jobHandle, $complete) Local $aRes = DllCall ($vixdll, "UINT64", "VixJob_CheckCompletion", _ "INT", $jobHandle, _ "PTR", $complete) Return $aRes[0] EndFunc ;* ;* Accessor functions ;* (used to get results of a completed asynch operation). ;* Func VixJob_GetError ($jobHandle) Local $aRes = DllCall ($vixdll, "UINT64", "VixJob_GetError", _ "INT", $jobHandle) Return $aRes[0] EndFunc Func VixJob_GetNumProperties ($jobHandle, $resultPropertyID) Local $aRes = DllCall ($vixdll, "INT", "VixJob_GetNumProperties", _ "INT", $jobHandle, _ "INT", $resultPropertyID) Return $aRes[0] EndFunc Func VixJob_GetNthProperties ($jobHandle, $index, $propertyID0, $propertyID1 = 0, $propertyID2 = 0, $propertyID3 = 0, $propertyID4 = 0, $propertyID5 = 0, $propertyID6 = 0, $propertyID7 = 0, $propertyID8 = 0, $propertyID9 = 0) Local $aRes = DllCall ($vixdll, "UINT64", "VixJob_GetNthProperties", _ "INT", $jobHandle, _ "INT", $index, _ "INT", $propertyID0, _ "INT", $propertyID1, _ "INT", $propertyID2, _ "INT", $propertyID3, _ "INT", $propertyID4, _ "INT", $propertyID5, _ "INT", $propertyID6, _ "INT", $propertyID7, _ "INT", $propertyID8, _ "INT", $propertyID9) Return $aRes[0] EndFunc ;* ;*----------------------------------------------------------------------------- ;* ;* VIX Snapshot -- ;* ;*----------------------------------------------------------------------------- ;* Func VixSnapshot_GetNumChildren ($parentSnapshotHandle, $numChildSnapshots) Local $aRes = DllCall ($vixdll, "UINT64", "VixSnapshot_GetNumChildren", _ "INT", $parentSnapshotHandle, _ "PTR", $numChildSnapshots) Return $aRes[0] EndFunc Func VixSnapshot_GetChild ($parentSnapshotHandle, $index, $childSnapshotHandle) Local $aRes = DllCall ($vixdll, "UINT64", "VixSnapshot_GetChild", _ "INT", $parentSnapshotHandle, _ "INT", $index, _ "PTR", $childSnapshotHandle) Return $aRes[0] EndFunc Func VixSnapshot_GetParent ($snapshotHandle, $parentSnapshotHandle) Local $aRes = DllCall ($vixdll, "UINT64", "VixSnapshot_GetParent", _ "INT", $snapshotHandle, _ "PTR", $parentSnapshotHandle) Return $aRes[0] EndFunc ;лллллллллллллллллллллллллллллллл End Of File ллллллллллллллллллллллллллллллллл