Войти

Показать полную графическую версию : Доступность виртуализации


fgevat
19-01-2021, 18:29
Подскажите пжлста как пошем узнать доступна ли в системе виртуализация. Спс заранее!

Iska
19-01-2021, 18:48
fgevat, в каком смысле — «виртуализация»? Так-то она доступна, начиная с Intel 386.

Phoenix
19-01-2021, 18:55
Марку процессора и ОС нужно знать.

greg zakharov
19-01-2021, 19:05
Речь должно быть об этом (https://docs.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-isprocessorfeaturepresent), за номером 21:
PF_VIRT_FIRMWARE_ENABLED
21
Virtualization is enabled in the firmware and made available by the operating system.
В сущности функция делает следующее:
[Runtime.InteropServices.Marshal]::ReadByte([IntPtr]0x7ffe0289)

Phoenix, нужно знать скорее отладчик и приёмы работы с ним. На сей раз это не сарказм.

yurfed
19-01-2021, 19:13
начиная с Intel 386. »Да и не забыть включить фичу в БИОС, "Virtualization Technology" если такая фича имеется.

Iska
19-01-2021, 19:14
[Runtime.InteropServices.Marshal]::ReadByte([IntPtr]0x7ffe0289) »
У меня сие даёт «0».

А CPU-Z — это:

https://i.imgur.com/urtyywZ.png

Так и должно быть?

Foreigner
19-01-2021, 19:30
systeminfo.exe
Get-ComputerInfo

Phoenix
19-01-2021, 19:48
Phoenix, нужно знать скорее отладчик и приёмы работы с ним. »

А я грешным делом подумал, что ТС про Hyper-V вопрошает.
Ну ок.

Iska
19-01-2021, 19:57
что ТС про Hyper-V вопрошает. »
Мы пока этого не знаем.

greg zakharov
19-01-2021, 20:05
Так и должно быть?Если виртуализация отключена в BIOS\UEFI, то да, если включена - скорее всего накосячил с адресом. Давайте разбираться. Код IsProcessorFeaturePresent:
sub rsp,28h
call qword ptr [kernelbase!_imp_RtlIsProcessorFeaturePresent (00000001`801a8b10)]
nop dword ptr [rax+rax]
xor ecx,ecx
test al,al
setne cl ; установка байта по условию ne
mov eax,ecx
add rsp,28h
ret
Мысленно нарисовали себе операцию ветвления, в которой задействуется RtlIsProcessorFeaturePresent - экспортируется ntdll.dll:
cmp ecx,40h
jae ntdll!RtlIsProcessorFeaturePresent+0xe (00000001`80020c6e)
mov eax,ecx
mov al,byte ptr SharedUserData+0x274 (00000000`7ffe0274)[rax]
ret
xor al,al
ret
Что мы видим? Функция тупо берёт соответствующий байт из поля ProcessorFeatures (смещение 0x274) структуры KUSER_SHARED_DATA. Поле представлено как массив из 64-х unsigned char. А далее вы знаете: номера фич совпадают с индексами в массиве. Короче, просто гляньте вывод:
(0..63).ForEach{'{0}: {1}' -f $_, [Runtime.InteropServices.Marshal]::ReadByte([IntPtr](0x7ffe0274 + $_))}

А я грешным делом подумал, что ТС про Hyper-V вопрошает.Ну дык, мы сейчас все в телепатов обратились.

И исчо:
((gp HKLM:\HARDWARE\DESCRIPTION\System\CentralProcessor\0).FeatureSet -band 0x08000000) -eq 0x08000000

Iska
19-01-2021, 20:33
Короче, просто гляньте вывод: »
PS C:\> (0..64).ForEach{'{0}: {1}' -f $_, [Runtime.InteropServices.Marshal]::ReadByte([IntPtr](0x7ffe0274 + $_))}
0: 0
1: 0
2: 1
3: 1
4: 0
5: 0
6: 1
7: 0
8: 1
9: 1
10: 1
11: 0
12: 1
13: 1
14: 1
15: 0
16: 0
17: 1
18: 0
19: 0
20: 0
21: 0
22: 0
23: 0
24: 0
25: 0
26: 0
27: 0
28: 0
29: 0
30: 0
31: 0
32: 0
33: 0
34: 0
35: 0
36: 0
37: 0
38: 0
39: 0
40: 0
41: 0
42: 0
43: 0
44: 0
45: 0
46: 0
47: 0
48: 0
49: 0
50: 0
51: 0
52: 0
53: 0
54: 0
55: 0
56: 0
57: 0
58: 0
59: 0
60: 0
61: 0
62: 0
63: 0
64: 255

PS C:\>

greg zakharov
19-01-2021, 20:38
А в BIOS\UEFI всё включено?
Стоп! А версия винды какая? Фича распознаётся начиная с восьмёрки.

Iska
20-01-2021, 07:13
А версия винды какая? Фича распознаётся начиная с восьмёрки. »
Оно самое. Windows 7 SP1 x64.

greg zakharov
20-01-2021, 10:26
Iska, что касательно семёрки, то в ней многие вещи, являющиеся вполне привычными в последующих версиях, только формировались (хотя официально и подавались под соусом инновационных технологий, но это на совести MS). Правда сейчас сложно вспомнить выводит ли systeminfo.exe что-то о виртуализации, но вроде в диспетчере задач там был такой параметр. В принципе, можно нарисовать cpuid на pwsh (благо это не столь большая наука) и пошукать в листе 0x80000001 (вроде бы в нем водятся данные о VT-x и AMD-x). Более пока идей никаких.

Iska
20-01-2021, 21:01
Подождём, что скажет автор темы, а то он после десяти вечера более не появлялся.

fgevat
20-01-2021, 23:00
в моем случае вопрос решен

Phoenix
21-01-2021, 03:20
в моем случае вопрос решен »

В твоём случае, таких как ты, в бан пожизненный надо отправлять.
За хамско-потребительское отношение к виртуальному сообществу, т.е. к людям.

greg zakharov
22-01-2021, 12:20
За хамско-потребительское отношение к виртуальному сообществу...Звучит так, будто вы состоите в интимных отношениях с виртуализацией.




© OSzone.net 2001-2012