AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Hardwarevirtualisierung verfügbar? (Intel-VT/AMD-V)
Thema durchsuchen
Ansicht
Themen-Optionen

Hardwarevirtualisierung verfügbar? (Intel-VT/AMD-V)

Offene Frage von "Kyro"
Ein Thema von Kyro · begonnen am 3. Okt 2009 · letzter Beitrag vom 3. Okt 2009
Antwort Antwort
Kyro

Registriert seit: 16. Aug 2005
Ort: Wien
45 Beiträge
 
Delphi XE2 Professional
 
#1

Hardwarevirtualisierung verfügbar? (Intel-VT/AMD-V)

  Alt 3. Okt 2009, 12:11
Um ehrlich zu sein weiss ich nicht so recht wo ich anfangen soll zu suchen (In der DP hätte ich dazu nichts gefunden)...

Ich brauche eine API (oder irgendeine andere Möglichkeit) mit der ich ermitteln kann ob ein Computer (lokal) Hardwarevirtualisierung unterstützt
(egal ob das nun Intel VT, AMD-V oder was auch immer noch kommen wird ist)

Hat hier jemand einen Tipp für mich - eventuell ein Stichwort was mir die Suche erleichtert?
  Mit Zitat antworten Zitat
Benutzerbild von Codewalker
Codewalker

Registriert seit: 18. Nov 2005
Ort: Ratingen
945 Beiträge
 
Delphi XE2 Professional
 
#2

Re: Hardwarevirtualisierung verfügbar? (Intel-VT/AMD-V)

  Alt 3. Okt 2009, 12:15
Bin mir nicht sicher, aber kann man das nicht per WMI ermitteln?

Edit: http://social.msdn.microsoft.com/For...a-2148974d2203 . Da steht zumindest dass es geht, aber du bekommst halt nicht per WMI raus, ob es aktiviert ist, sondern nur, ob es theoretisch nutzbar wäre.
  Mit Zitat antworten Zitat
Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Hardwarevirtualisierung verfügbar? (Intel-VT/AMD-V)

  Alt 3. Okt 2009, 12:17
Mit dem Maschinencode CPUID kannst du prüfen, ob Virtual Machine Extensions (VMX) von Intel unterstützt sind.
Delphi-Quellcode:
function VMXAvailable: Boolean;
asm
  mov eax, 1
  cpuid
  test ecx, 32
  setnz al
end;
Getippt und nicht getestet.
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat
hathor
(Gast)

n/a Beiträge
 
#4

Re: Hardwarevirtualisierung verfügbar? (Intel-VT/AMD-V)

  Alt 3. Okt 2009, 12:19
Mit dem Programm securable.exe kannst Du es feststellen.
Nicht nur die CPU muss das unterstützen, sondern auch das BIOS.

http://www.grc.com/securable.htm

und VT.exe von INTEL:
Angehängte Dateien
Dateityp: zip vt_116.zip (14,5 KB, 10x aufgerufen)
  Mit Zitat antworten Zitat
TurboMartin

Registriert seit: 13. Feb 2006
Ort: Bad Honnef
765 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Hardwarevirtualisierung verfügbar? (Intel-VT/AMD-V)

  Alt 3. Okt 2009, 12:22
Wenn ein CPU das unterstützt, ist ein prozessorflag gesetzt, bei Intel vmx, bei AMD svm.
Tomorrow will be cancelled due to lack of interest.

  Mit Zitat antworten Zitat
Kyro

Registriert seit: 16. Aug 2005
Ort: Wien
45 Beiträge
 
Delphi XE2 Professional
 
#6

Re: Hardwarevirtualisierung verfügbar? (Intel-VT/AMD-V)

  Alt 3. Okt 2009, 13:00
WOW - Vielen Dank für die zahlreichen und guten Antworten - damit hätte ich nicht gerechnet dass hier so schnell darauf beantwortet wird!

Leider habe ich daran gar nicht gedacht dass man ja die Hardwarevirtualisierung im BIOS (meistens) abschalten kann, bzw. dass es auch Computer gibt die zwar eine CPU haben aber kein Mainboard was Hardwarevirtualisierung unterstützt....

@Codewalker: Die Methode über WMI gefällt mir schon ganz gut - wenn man jetzt noch herausfinden könnte ob es auch aktiviert ist (was scheinbar via WMI nicht möglich ist)

@hathor: Externe Programme abzufragen will ich möglichst vermeiden - Trotzdem Danke für den Hinweis!

@Apollonius: Die Funktion "VMXAvailable" würde auch bei AMD-V True rückliefern oder?

Um meine ursprüngliche Frage etwas zu präzisieren:
Ich möchte gerne Ermitteln ob im aktuellen Windows Betrieb Hardwarevirtualisierung verfügbar ist (+Aktiviert) - wenn möglichst via API, WMI, Assembler
  Mit Zitat antworten Zitat
Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: Hardwarevirtualisierung verfügbar? (Intel-VT/AMD-V)

  Alt 3. Okt 2009, 13:05
Ich habe gerade nur das Intel-Handbuch da - mit AMD kenne ich mich nicht aus, aber TurboMartin hat ja bereits angedeutet, dass das ein anderes Flag ist. Was bei Deaktivierung passiert, weiß ich auch nicht.

Edit: Doch, ich weiß es. Das BIOS manipuliert ein Model Specific Register (IA32_FEATURE_CONTROL um genau zu sein). Dummerweise kommt man aus dem Usermode nicht an dessen Wert heran.
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat
hathor
(Gast)

n/a Beiträge
 
#8

Re: Hardwarevirtualisierung verfügbar? (Intel-VT/AMD-V)

  Alt 3. Okt 2009, 13:17
Code:
#define IA32_FEATURE_CONTROL 0x003a

#define CPUID_VMX (1 << 5)
#define CPUID_SMX (1 << 6)
static void enable_vmx(void)
{
        struct cpuid_result regs;
        msr_t msr;

        msr = rdmsr(IA32_FEATURE_CONTROL);

        if (msr.lo & (1 << 0)) {
                /* VMX locked. If we set it again we get an illegal
                 * instruction
                 */
                return;
        }

        regs = cpuid(1);
        if (regs.ecx & CPUID_VMX) {
                msr.lo |= (1 << 2);
                if (regs.ecx & CPUID_SMX)
                        msr.lo |= (1 << 1);
        }

        wrmsr(IA32_FEATURE_CONTROL, msr);

        msr.lo |= (1 << 0); /* Set lock bit */

        wrmsr(IA32_FEATURE_CONTROL, msr);
}
Infos:
coreboot ? Wikipedia
coreboot
Supported Motherboards - coreboot
Supported Chipsets and Devices - coreboot
Download coreboot - coreboot
QEMU - coreboot
FILO - coreboot
Libpayload - coreboot

Flashrom - coreboot
Flashrom Live CD - coreboot
Nvramtool - coreboot

Ectool - coreboot
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#9

Re: Hardwarevirtualisierung verfügbar? (Intel-VT/AMD-V)

  Alt 3. Okt 2009, 13:24
also selbst wenn es deaktiviert ist, sollte das CPUID-Flag anzeigen, daß die CPU es kann.

bei AMD könnte es auch das gleiche Flag sein, wenn es auch anders heißt. (könnte aber auch ein anderes Flag sein)

Der Grund ist jedenfalls, daß AMD und Intel da eine andere "Technologie" für die Virtualisierung verwenden, welche dann natürlich auch unterschiedlich heißen
$2B or not $2B
  Mit Zitat antworten Zitat
hathor
(Gast)

n/a Beiträge
 
#10

Re: Hardwarevirtualisierung verfügbar? (Intel-VT/AMD-V)

  Alt 3. Okt 2009, 13:53
AMD - SVM:
.
Code:
if (cpu->maxei >= 0x8000000a) {
                cpuid (cpu->number, 0x8000000a, &eax, &ebx, NULL, &edx);
                printf("SVM: revision %d, %d ASIDs",
                       (int) (eax & 0xff), (int) ebx);
                if (edx & 1)
                        printf(", np");
                if (edx & 2)
                        printf(", lbrVirt");
                if (edx & 4)
                        printf(", SVMLock");
                if (edx & 8)
                        printf(", NRIPSave");
                printf("\n");
        }
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:38 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz