VMware Player の画面サイズを変えるとやたらBSoDになる件

vga6
理由は良く分からないんですが、やたら 英語の仮想環境がクラッシュするので調べてみた

12.01.08.0000

 L000113AC:
  mov eax,[L000195A4+edi*4] <- edi = 1
  cmp byte ptr [eax+0000AA5Ch],01h <- eax = 0
  jnz L000113C8
  add eax,000005F8h
  call SUB_L00011298
  add ebx,eax

11.09.01.0000

 L0001133E:
  cmp ebx,[ebp-04h]
  jge L00011380
  mov eax,[L000195A4+ebx*4] <- ebx = 1
  cmp byte ptr [eax+0000AA5Ch],01h <- eax =0
  jnz L0001135F
  add eax,000005F8h
  call SUB_L00011298
  add esi,eax

 

   push 00000011h //SVGA_REG_CAPABILITIES
  push esi
  call SUB_L000114B2 //VmxReadUlong
  push 0000001Fh //SVGA_REG_NUM_DISPLAYS
  and eax,FF7FFFFFh // ~SVGA_CAP_SCREEN_OBJECT_2
  push esi
  mov [esi+0000AA54h],eax
  call SUB_L000114B2 // VmxReadUlong
  mov [L00014A08],eax   <- 2
-------------------------------------------

VmxReadUlong:
   mov edi,edi
  push ebp
  mov ebp,esp
  push esi
  push [ebp+0Ch]
  mov esi,[ebp+08h]
  push [esi+000005E4h]
  call [VIDEOPRT.SYS!VideoPortWritePortUlong]
  push [esi+000005E8h]
  call [VIDEOPRT.SYS!VideoPortReadPortUlong]
  pop esi
  pop ebp
  retn 0008h

基本的にはどっちのドライバもディスプレイの数カウントしたら2が返ってくるのに実態が1しかないのがクラッシュの要因

vga8
モニタ3つにしてみた

vga7
そしたらこっちも3つに…。

どうやらHost 側にモニタ1つしかないのに2つと判定されてるのがクラッシュの原因のようだ。
手動で1つにしたところ、落ちなくなりましたとさ。

おすすめ

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です