; ============================================================================= ; Модуль : VMMDev Host/Hypervisor Info ; Назначение : Получение информации о хосте (REQ 4: GetHostVersion) ; Файл : vmmdev/hypervisor.inc ; ============================================================================= ; Отправить REQ 4 GetHostVersion, eax = header.rc proc vmmdev_get_host_version uses ebx edi mov edi, [vbox_device.host_version_virt] mov ebx, [vbox_device.host_version_phys] test edi, edi jz .bad test ebx, ebx jz .bad stdcall vmmdev_send_request, ebx mov eax, [edi + VMMDEV_HEADER.rc] ret .bad: mov eax, VERR_INVALID_POINTER ret endp proc vmmdev_check_version uses ebx DEBUGF 2, "[VBoxGuest] [VMMDev] Checking host version (GetHostVersion)...\n" stdcall vmmdev_get_host_version DEBUGF 2, "[VBoxGuest] [VMMDev] GetHostVersion rc=0x%x\n", eax test eax, eax jnz .error mov eax, [vbox_device.host_version_virt] movzx ebx, [eax + VMMDEV_GET_HOST_VERSION.major] movzx ecx, [eax + VMMDEV_GET_HOST_VERSION.minor] DEBUGF 2, "[VBoxGuest] [VMMDev] Host version: %d.%d.%d r%d features=0x%x\n", \ ebx, ecx, \ [eax + VMMDEV_GET_HOST_VERSION.build], \ [eax + VMMDEV_GET_HOST_VERSION.revision], \ [eax + VMMDEV_GET_HOST_VERSION.features] xor eax, eax ret .error: DEBUGF 2, "[VBoxGuest] [VMMDev] ERROR: GetHostVersion failed, rc=0x%x\n", eax mov eax, VERR_GENERAL_FAILURE ret endp