Windows Vista Experience Index and Media Player not Working

      Windows Vista Experience Index and Media Player not Working

      GhostBoard Special Solutions :)

      Hey all ,

      Recently , I upgraded my PC and installed Vista since XP does not support 4 GB of Ram and Quad Core CPUs . Since i spent some money for my new PC , I wanted to see it scoring high under Windows User Experince Index. But it kept crashing so I had to find a cure for it. While working on it I realized that it was because of Windows Media Player which has problems on playing Wmv files , which are run under the testing assets. Then i realized that WMP doesn't play any Wmv files while it works for other files types. I tried some hard ways , and finally managed to solve it , and here it is ready to share only on here :) (searched net for solution for 5 days , nothing i got in return ) .

      Windows User Experience index was giving an error about some windows media dll file was interrupting before it was completed. Then somehow it was completing but was also giving an error about some modules returned errors so it was interrupted. I was getting this in Windows\Performance\Winsat\winsat.log :

      winsat\main.cpp:1161: > Running Assessment: media '-input {winsatencode.wmv} -encode {winsat.prx}'
      winsat\main.cpp:1430: > Assessment FAILED due to an error
      winsat\main.cpp:1161: > Running Assessment: moobego ''
      winsat\main.cpp:1161: > Running Assessment: mfmedia '-input {winsat.wmv} -nopmp'
      winsat\main.cpp:1430: > Assessment FAILED due to an error

      And strangely , only wmv files was a problem in media player while WMP could play other files pretty well. It returned a strange error like C00D11B1 means i don't have a sound card ( Hah! ) So i thought it could be about broken encoder/decoder files for wmv format. I got some dll files from another installation which works fine and tried to replace then under system32 . But they were protected . Tried it under XP which I have as dual boot , did not work either. So I used a Live Linux CD ( Fedora 8 ) and mounted my vista partition and overwrote those files under system32 , and voila ! worked like charm. And here is the proof :p

      here is the list of files I replaced under Windows\System32 :


      If there is anyone who knows how to replace those files under protection , he/she is welcome to post it. It would make a complete solution withour using external OS and such.

      Best Regards

      join our chans @ Quakenet
      War Report Channel
      Clan Public Chan
      There are several ways to exchange libraries which are in use by the system.

      Exchange files in use via MSI Installer Packages
      The usual way when using MSI Installer packages is to start an installation via "MS Installer" which puts all the files it can't exchange directly into the HKLM "pending file" key - all those files which are listed here will be exchange when the next system reboot happens.

      --> FileInUse (old Windows Installer)
      --> MSIFileInUse (Windows Installer >4.0)
      --> ReplacedFileInUse

      If you want to code an install routine and want to get all the files which are in use, you can use this library to list them

      Exchange files in use via MoveFileEx
      If you want to code and use the usual system routines (which can be used while coding in, for example, VB.Net and such), you can try the MoveFileEx function which is quite easy to use. Here is the function block:


      1. ' Deklaration der Funktion MoveFileEx und untersützter Konstanter:
      2. Declare Function MoveFileEx Lib "kernel32" Alias "MoveFileExA" _
      3. (ByVal lpExistingFileName As String, ByVal lpNewFileName As String, _
      4. ByVal dwFlags As Long) As Boolean
      5. Public Const MOVEFILE_REPLACE_EXISTING = &H1 ' Überschreiben, falls vorhanden
      6. Public Const MOVEFILE_COPY_ALLOWED = &H2 ' Kopieren auf anderes Laufwerk ermöglichen
      7. Public Const MOVEFILE_DELAY_UNTIL_REBOOT = &H4 ' Erst bei Neustart ausführen
      8. Public Const MOVEFILE_WRITE_THROUGH = &H8 ' Erst nach Erfolg zurückkehren

      And here is some example VB code:


      1. Dim Success As Boolean
      2. Success = MoveFileEx("c:\winnt\system32\", "c:\winnt\system32\blocked.dll", _
      4. If Success = False Then MsgBox "MoveFileEx schlug fehl.", vbCritical, "Fehler"

      Exchange files in use via InUse.exe
      The most flexible way if planning an installation by script is to use the Windows resource kit tool InUse.exe

      c:\inuse.exe /?
      InUse - version 1.3
      Copyright (c) 1994-1999 Microsoft Corporation. All rights reserved
      Replaces files that are currently locked by the OS

      INUSE source destination [/y]

      source Specifies the updated file
      destination Specifies the existing file to be replaced
      /y Suppresses confirmation prompt to replace file
      /? Displays syntax help

      Source and destination must include the complete physical or UNC pathname

      The following example represents how an administrator can nest multiple updates in a single script: batch.cmd
      @echo off
      inuse test.dll c:\winnt\system32\test.dll /y
      inuse test2.dll c:\winnt\system32\test2.dll /y
      inuse test3.dll c:\winnt\system32\test3.dll /y

      This tool uses similar techniques and puts the files which are in use at the moment into the pending queue registry key. They will be exchanged with the next reboot.

      Pending File RegKey
      Here is the registry path to the pending file key:
      HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\PendingFileRenameOperations
      ( +.+)

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „SkinnyPuppy“ ()

      ( +.+)