[DISCUSSION] Patch WMC to run on Windows 10 final & possible alternatives

Discussion in 'Windows 10' started by ricktendo64, May 8, 2015.

  1. Graznok

    Graznok MDL Member

    Jan 29, 2013
    214
    120
    10
    #261 Graznok, Aug 22, 2015
    Last edited by a moderator: Apr 20, 2017
  2. T-S

    T-S MDL Guru

    Dec 14, 2012
    3,984
    1,331
    120
    #262 T-S, Aug 22, 2015
    Last edited: Aug 22, 2015
    Must be 10.0.0.0 not 10.0.10240

    It's 6.3.0.0 on win 8.1

    6.2.0.0 on win 8

    6.1.0.0 on win 7

    and 6.0.0.0 on win vista
     
  3. T-S

    T-S MDL Guru

    Dec 14, 2012
    3,984
    1,331
    120
    #263 T-S, Aug 22, 2015
    Last edited: Aug 23, 2015
    Tried on an LTSB, and didn't work (ehshell tries to start but returns an error) I'll try on a plain pro

    Anyway, a couple of observations/questions

    The file list posted by abbodi seem taken from an x86 version, but copying the equivalent files from an x64 should be relatively obvious

    What's less obvious for me it's the ngen thing, should we replace the processor architecture=x86 with x64?

    Also the .cat/signtool part should be detailed more, I'm not sure I'm doing it right.

    Lat but not least: the WMC tasks. Copying them on the \system32\tasks folder isn't enough to have them visible on the task scheduler they are an important part of the MCE functionality and maintenance.
     
  4. DavidinCT

    DavidinCT MDL Addicted

    May 9, 2015
    536
    100
    30
    Just tried it, no change :(
     
  5. abbodi1406

    abbodi1406 MDL KB0000001

    Feb 19, 2011
    17,195
    90,699
    340
    #265 abbodi1406, Aug 23, 2015
    Last edited by a moderator: Apr 20, 2017
    Microsoft-Windows-MediaCenter-Package*.cat
    there should be 4 of them, place them in catalogs folder next to signtool.exe (which is available in SDK or ADK)

    this is the basic install steps:
    Code:
    dism.exe /Apply-Image /ImageFile:MediaCenter.wim /Index:1 /ApplyDir:%SystemDrive%\ 
    
    signtool.exe catdb /g {F750E6C3-38EE-11D1-85E5-00C04FC295EE} .\catalogs\*.cat
    
    _ngen stuff i posted earlier
    
    Create services stuff
    
    reg.exe import Install.reg
    
    set "_file=%ProgramData%\Microsoft\Windows\Start Menu\Programs\Accessories\desktop.ini"
    attrib -h -s "%_file%"
    echo Media Center.lnk^=^@^%systemroot^%\ehome\ehres.dll,-100 >>"%_file%"
    attrib +h +s "%_file%"
    
    yes, x64 edition will have some differences in ngen/registry
    i'll make one if the x86 succeded
     
  6. T-S

    T-S MDL Guru

    Dec 14, 2012
    3,984
    1,331
    120
    Thanks abbody I'll finish tomorrow, it's late here and I need some sleep.

    Anyway I think that eshell.dll is patched correctly, we need to figure or refine some details but i think that 95% of the work is done.
     
  7. Graznok

    Graznok MDL Member

    Jan 29, 2013
    214
    120
    10
    #267 Graznok, Aug 23, 2015
    Last edited by a moderator: Apr 20, 2017
    Yes I realized that some files were missing. I was working on build 10135 x64 Pro WMC and RTM x64 Pro, not x86.
    Here is the complete file list:
    Code:
    C:\WINDOWS
    ├───ehome
    │   │   BDATunePIA.dll
    │   │   BmlDataCarousel.dll
    │   │   cbva.dll
    │   │   ehchhime.dll
    │   │   ehchsime.dll
    │   │   ehchtime.dll
    │   │   ehCIR.dll
    │   │   ehcir.ird
    │   │   ehcmres.dll
    │   │   ehdebug.dll
    │   │   ehdrop.dll
    │   │   ehentt.dll
    │   │   ehepgnet.dll
    │   │   ehepgres.dll
    │   │   ehexthost.exe
    │   │   ehexthost.exe.config
    │   │   ehglid.dll
    │   │   ehiActivScp.dll
    │   │   ehiBmlDataCarousel.dll
    │   │   ehiExtens.dll
    │   │   ehiiTV.dll
    │   │   ehiProxy.dll
    │   │   ehitvhost.dll
    │   │   ehiTVMSMusic.dll
    │   │   ehiUPnP.dll
    │   │   ehiUserXp.dll
    │   │   ehiVidCtl.dll
    │   │   ehiwmp.dll
    │   │   ehiWUapi.dll
    │   │   ehjpnime.dll
    │   │   ehkorime.dll
    │   │   ehmsas.exe
    │   │   ehPresenter.dll
    │   │   ehprivjob.exe
    │   │   ehProxy.dll
    │   │   ehrec.exe
    │   │   ehRec.exe.config
    │   │   ehRecObj.dll
    │   │   ehrecvr.exe
    │   │   ehRecvr.exe.config
    │   │   ehReplay.dll
    │   │   ehres.dll
    │   │   ehsched.exe
    │   │   ehSched.exe.config
    │   │   ehshell.dll
    │   │   ehshell.exe
    │   │   ehshell.exe.config
    │   │   ehskb.dll
    │   │   ehSSO.dll
    │   │   ehtrace.dll
    │   │   ehtray.exe
    │   │   ehui.dll
    │   │   ehuihlp.dll
    │   │   ehvid.exe
    │   │   ItvRes.dll
    │   │   loadmxf.exe
    │   │   luttx43.ttf
    │   │   luttx83.ttf
    │   │   malgunmc.ttf
    │   │   markup.dll
    │   │   mcepg.dll
    │   │   mcetuningoverrides.xml
    │   │   mcGlidHost.exe
    │   │   mcglidhostobj.dll
    │   │   McITvVmData.dll
    │   │   mcplayer.dll
    │   │   mcplayerinterop.dll
    │   │   McrMgr.dll
    │   │   McrMgr.exe
    │   │   mcskin.wmz
    │   │   mcspad.exe
    │   │   mcsrchPH.propdesc
    │   │   mcstore.dll
    │   │   mcstoredb.dll
    │   │   mcupdate.exe
    │   │   Mcx2Dvcs.dll
    │   │   Mcx2Filter.dll
    │   │   Mcx2Prov.exe
    │   │   McxDataPath.dll
    │   │   McxTask.exe
    │   │   MediaCenterWebLauncher.exe
    │   │   MediaCenterWebLauncher.exe.manifest
    │   │   MediaCenterWebLauncherRes.dll
    │   │   MFCongestionController.dll
    │   │   MhegVM.dll
    │   │   Microsoft.MediaCenter.Bml.dll
    │   │   Microsoft.MediaCenter.dll
    │   │   Microsoft.MediaCenter.Interop.dll
    │   │   Microsoft.MediaCenter.iTV.dll
    │   │   Microsoft.MediaCenter.iTv.Hosting.dll
    │   │   Microsoft.MediaCenter.iTV.Media.dll
    │   │   Microsoft.MediaCenter.ITVVM.dll
    │   │   Microsoft.MediaCenter.Mheg.dll
    │   │   Microsoft.MediaCenter.Playback.dll
    │   │   Microsoft.MediaCenter.Shell.dll
    │   │   Microsoft.MediaCenter.Sports.dll
    │   │   Microsoft.MediaCenter.TV.Tuners.Interop.dll
    │   │   Microsoft.MediaCenter.UI.dll
    │   │   mstvcapn.dll
    │   │   NetBridge.dll
    │   │   RegisterMCEApp.exe
    │   │   segmcr.ttf
    │   │   segmcsb.ttf
    │   │   segoemcl.ttf
    │   │   SS2.dvr-ms
    │   │   SS51.dvr-ms
    │   │   wtv2dvrms.dll
    │   │   WTVConverter.exe
    │   │   WTVGOTHIC-R.ttc
    │   │   WTVGOTHIC-RB.ttc
    │   │   WTVGOTHIC-S.ttc
    │   │
    │   ├───en-US
    │   │       cbva.dll.mui
    │   │       ehchhime.dll.mui
    │   │       ehchsime.dll.mui
    │   │       ehcmres.dll.mui
    │   │       ehdebug.dll.mui
    │   │       ehdrop.dll.mui
    │   │       ehentt.dll.mui
    │   │       ehepgres.dll.mui
    │   │       ehglid.dll.mui
    │   │       ehjpnime.dll.mui
    │   │       ehkorime.dll.mui
    │   │       ehmsas.exe.mui
    │   │       ehPresenter.dll.mui
    │   │       ehprivjob.exe.mui
    │   │       ehrec.exe.mui
    │   │       ehrecvr.exe.mui
    │   │       ehres.dll.mui
    │   │       ehsched.exe.mui
    │   │       ehvid.exe.mui
    │   │       epgtos.txt
    │   │       ItvRes.dll.mui
    │   │       mcplayer.dll.mui
    │   │       mcupdate.exe.mui
    │   │       MediaCenterWebLauncherRes.dll.mui
    │   │       playready_eula.txt
    │   │       playReady_eula_oem.txt
    │   │       WTVConverter.exe.mui
    │   │
    │   ├───MCX
    │   │   └───X02
    │   │           XboxMCX-V.XEX
    │   │
    │   ├───MediaRenderer
    │   │       MediaCenter.DigitalMediaRenderer.AVTransport.xml
    │   │       MediaCenter.DigitalMediaRenderer.ConnectionManager.xml
    │   │       MediaCenter.DigitalMediaRenderer.RenderingControl.xml
    │   │       MediaCenter.DigitalMediaRenderer.RenderingControlNoMute.xml
    │   │
    │   └───wow
    │       │   BDATunePIA.dll
    │       │   ehdebug.dll
    │       │   ehexthost32.exe
    │       │   ehexthost32.exe.config
    │       │   ehtrace.dll
    │       │   ehui.dll
    │       │   ehuihlp.dll
    │       │   mcstoredb.dll
    │       │
    │       └───en-US
    │               ehdebug.dll.mui
    │
    ├───Microsoft.NET
    │   └───assembly
    │       ├───GAC_32
    │       │   ├───BDATunePIA
    │       │   │   └───v4.0_10.0.0.0__31bf3856ad364e35
    │       │   │           BDATunePIA.dll
    │       │   │
    │       │   └───mcstoredb
    │       │       └───v4.0_10.0.0.0__31bf3856ad364e35
    │       │               mcstoredb.dll
    │       │
    │       ├───GAC_64
    │       │   ├───BDATunePIA
    │       │   │   └───v4.0_10.0.0.0__31bf3856ad364e35
    │       │   │           BDATunePIA.dll
    │       │   │
    │       │   ├───mcplayerinterop
    │       │   │   └───v4.0_10.0.0.0__31bf3856ad364e35
    │       │   │           mcplayerinterop.dll
    │       │   │
    │       │   ├───mcstoredb
    │       │   │   └───v4.0_10.0.0.0__31bf3856ad364e35
    │       │   │           mcstoredb.dll
    │       │   │
    │       │   ├───mcupdate
    │       │   │   └───v4.0_10.0.0.0__31bf3856ad364e35
    │       │   │           mcupdate.exe
    │       │   │
    │       │   ├───Mcx2Dvcs
    │       │   │   └───v4.0_10.0.0.0__31bf3856ad364e35
    │       │   │           Mcx2Dvcs.dll
    │       │   │
    │       │   ├───Microsoft.MediaCenter.Interop
    │       │   │   └───v4.0_10.0.0.0__31bf3856ad364e35
    │       │   │           Microsoft.MediaCenter.Interop.dll
    │       │   │
    │       │   ├───Microsoft.MediaCenter.iTV.Media
    │       │   │   └───v4.0_10.0.0.0__31bf3856ad364e35
    │       │   │           Microsoft.MediaCenter.iTV.Media.dll
    │       │   │
    │       │   ├───Microsoft.MediaCenter.Mheg
    │       │   │   └───v4.0_10.0.0.0__31bf3856ad364e35
    │       │   │           Microsoft.MediaCenter.Mheg.dll
    │       │   │
    │       │   └───Microsoft.MediaCenter.TV.Tuners.Interop
    │       │       └───v4.0_10.0.0.0__31bf3856ad364e35
    │       │               Microsoft.MediaCenter.TV.Tuners.Interop.dll
    │       │
    │       └───GAC_MSIL
    │           ├───ehCIR
    │           │   └───v4.0_10.0.0.0__31bf3856ad364e35
    │           │           ehCIR.dll
    │           │
    │           ├───ehexthost
    │           │   └───v4.0_10.0.0.0__31bf3856ad364e35
    │           │           ehexthost.exe
    │           │           ehexthost.exe.config
    │           │
    │           ├───ehiActivScp
    │           │   └───v4.0_10.0.0.0__31bf3856ad364e35
    │           │           ehiActivScp.dll
    │           │
    │           ├───ehiBmlDataCarousel
    │           │   └───v4.0_10.0.0.0__31bf3856ad364e35
    │           │           ehiBmlDataCarousel.dll
    │           │
    │           ├───ehiExtens
    │           │   └───v4.0_10.0.0.0__31bf3856ad364e35
    │           │           ehiExtens.dll
    │           │
    │           ├───ehiiTV
    │           │   └───v4.0_10.0.0.0__31bf3856ad364e35
    │           │           ehiiTV.dll
    │           │
    │           ├───ehiProxy
    │           │   └───v4.0_10.0.0.0__31bf3856ad364e35
    │           │           ehiProxy.dll
    │           │
    │           ├───ehiTVMSMusic
    │           │   └───v4.0_10.0.0.0__31bf3856ad364e35
    │           │           ehiTVMSMusic.dll
    │           │
    │           ├───ehiUPnP
    │           │   └───v4.0_10.0.0.0__31bf3856ad364e35
    │           │           ehiUPnP.dll
    │           │
    │           ├───ehiUserXp
    │           │   └───v4.0_10.0.0.0__31bf3856ad364e35
    │           │           ehiUserXp.dll
    │           │
    │           ├───ehiVidCtl
    │           │   └───v4.0_10.0.0.0__31bf3856ad364e35
    │           │           ehiVidCtl.dll
    │           │
    │           ├───ehiwmp
    │           │   └───v4.0_10.0.0.0__31bf3856ad364e35
    │           │           ehiwmp.dll
    │           │
    │           ├───ehiWUapi
    │           │   └───v4.0_10.0.0.0__31bf3856ad364e35
    │           │           ehiWUapi.dll
    │           │
    │           ├───ehRecObj
    │           │   └───v4.0_10.0.0.0__31bf3856ad364e35
    │           │           ehRecObj.dll
    │           │
    │           ├───ehshell
    │           │   └───v4.0_10.0.0.0__31bf3856ad364e35
    │           │           ehshell.dll
    │           │
    │           ├───loadmxf
    │           │   └───v4.0_10.0.0.0__31bf3856ad364e35
    │           │           loadmxf.exe
    │           │
    │           ├───mcepg
    │           │   └───v4.0_10.0.0.0__31bf3856ad364e35
    │           │           mcepg.dll
    │           │
    │           ├───mcglidhostobj
    │           │   └───v4.0_10.0.0.0__31bf3856ad364e35
    │           │           mcglidhostobj.dll
    │           │
    │           ├───mcstore
    │           │   └───v4.0_10.0.0.0__31bf3856ad364e35
    │           │           mcstore.dll
    │           │
    │           ├───Microsoft.MediaCenter
    │           │   └───v4.0_10.0.0.0__31bf3856ad364e35
    │           │           Microsoft.MediaCenter.dll
    │           │
    │           ├───Microsoft.MediaCenter.Bml
    │           │   └───v4.0_10.0.0.0__31bf3856ad364e35
    │           │           Microsoft.MediaCenter.Bml.dll
    │           │
    │           ├───Microsoft.MediaCenter.iTV
    │           │   └───v4.0_10.0.0.0__31bf3856ad364e35
    │           │           Microsoft.MediaCenter.iTV.dll
    │           │
    │           ├───Microsoft.MediaCenter.iTv.Hosting
    │           │   └───v4.0_10.0.0.0__31bf3856ad364e35
    │           │           Microsoft.MediaCenter.iTv.Hosting.dll
    │           │
    │           ├───Microsoft.MediaCenter.ITVVM
    │           │   └───v4.0_10.0.0.0__31bf3856ad364e35
    │           │           Microsoft.MediaCenter.ITVVM.dll
    │           │
    │           ├───Microsoft.MediaCenter.Playback
    │           │   └───v4.0_10.0.0.0__31bf3856ad364e35
    │           │           Microsoft.MediaCenter.Playback.dll
    │           │
    │           ├───Microsoft.MediaCenter.Shell
    │           │   └───v4.0_10.0.0.0__31bf3856ad364e35
    │           │           Microsoft.MediaCenter.Shell.dll
    │           │
    │           ├───Microsoft.MediaCenter.Sports
    │           │   └───v4.0_10.0.0.0__31bf3856ad364e35
    │           │           Microsoft.MediaCenter.Sports.dll
    │           │
    │           ├───Microsoft.MediaCenter.UI
    │           │   └───v4.0_10.0.0.0__31bf3856ad364e35
    │           │           Microsoft.MediaCenter.UI.dll
    │           │
    │           ├───policy.6.0.ehRecObj
    │           │   └───v4.0_10.0.0.0__31bf3856ad364e35
    │           │           Policy.6.0.ehRecObj.config
    │           │           Policy.6.0.ehRecObj.dll
    │           │
    │           ├───policy.6.0.Microsoft.MediaCenter
    │           │   └───v4.0_10.0.0.0__31bf3856ad364e35
    │           │           Policy.6.0.Microsoft.MediaCenter.config
    │           │           Policy.6.0.Microsoft.MediaCenter.dll
    │           │
    │           └───policy.6.0.Microsoft.MediaCenter.UI
    │               └───v4.0_10.0.0.0__31bf3856ad364e35
    │                       Policy.6.0.Microsoft.MediaCenter.UI.config
    │                       Policy.6.0.Microsoft.MediaCenter.UI.dll
    │
    └───System32
        │   iTVData.dll
        │   mcmde.dll
        │   mcsrchPH.dll
        │   Mcx2Svc.dll
        │   mspbda.dll
        │   MsPbdaCoInst.dll
        │
        ├───spp
        │   └───tokens
        │       └───ppdlic
        │               MCLicense-ppdlic.xrm-ms
        │               MediaCenter-ppdlic.xrm-ms
        │
        └───Tasks
            └───Microsoft
                └───Windows
                    └───Media Center
                        │   ActivateWindowsSearch
                        │   ConfigureInternetTimeService
                        │   DispatchRecoveryTasks
                        │   ehDRMInit
                        │   InstallPlayReady
                        │   mcupdate
                        │   MediaCenterRecoveryTask
                        │   ObjectStoreRecoveryTask
                        │   OCURActivate
                        │   OCURDiscovery
                        │   PBDADiscovery
                        │   PBDADiscoveryW1
                        │   PBDADiscoveryW2
                        │   PeriodicScanRetry
                        │   PvrRecoveryTask
                        │   PvrScheduleTask
                        │   RecordingRestart
                        │   RegisterSearch
                        │   ReindexSearchRoot
                        │   SqlLiteRecoveryTask
                        │   UpdateRecordPath
                        │
                        └───Extender
    I didn't change anything for x64. I think they are assemblies-related commands, some are x86, some are x64.

    You are right. You cannot copy Tasks by copying folders. Actually I exported each Task from build 10135 (x64) in XML files, and imported them in RTM. I also manually created the Microsoft\Windows\Media Center folder (in the MMC) before importation.
    If ehshell doesn't run, have a look in event viewer to see if .NET Runtime error occured; it contains .NET Framework exception stack trace with all necessary debug information.
     
  8. dedalos92

    dedalos92 MDL Junior Member

    Nov 11, 2012
    84
    5
    0
    Thanks to everyone for their efforts and I hope you manage to success to work the wmc in windows 10 because I tried all possible alternatives software by here or I found myself not working properly ...
     
  9. Sergio526

    Sergio526 MDL Novice

    Aug 19, 2015
    23
    1
    0
    I just wanted to chime in and say that I've been watching this thread and I SUPER appreciate all you guys and gals are doing! I have a couple of questions and, feel free to completely ignore them if they're stupid or way outside the scope of this project, or if there's really no way of knowing until the first big hurdle has been cleared, but is there any indication of whether or not extenders will function? Does all this work open up the possibility of soft-sled extenders?
     
  10. T-S

    T-S MDL Guru

    Dec 14, 2012
    3,984
    1,331
    120
    I don't think so.

    BTW you can already share the WMC stuff using Dvblink and/or ServerWMC
     
  11. T-S

    T-S MDL Guru

    Dec 14, 2012
    3,984
    1,331
    120

    I see there are also some MCupdate*.cat, likely is worth to add them.
     
  12. abbodi1406

    abbodi1406 MDL KB0000001

    Feb 19, 2011
    17,195
    90,699
    340
    Where those?

    i ment the extracted package .cat files (usually named update.cat in the pack)
    but from a system that has MediaCenter-Package (9926, 10074, 10130, 10166...etc), the files will be located in \Windows\servicing\Packages
     
  13. T-S

    T-S MDL Guru

    Dec 14, 2012
    3,984
    1,331
    120
    #273 T-S, Aug 23, 2015
    Last edited: Aug 23, 2015
    In

    \Windows\System32\CatRoot\{F750E6C3-38EE-11D1-85E5-00C04FC295EE}\


    Anyway I was able to start the program itself both on LTSB and Pro.

    I had to launch it as administrator (that happened to me in the past with the "real thing") so I have to doublecheck the permissions.

    The pro installation i tried was, once, WMC enabled, and the \program data\microsoft\ehome directory was still populated, also the scheduled tasks were still there.
    I had to delete its content to launch ehshell (again something already seen doing an in place upgrade)

    For now the bad news is that the receiver and scheduler services aren't starting and so I cant see the livetv setup inside WMC.

    If you or someone else wants to test if the tuners are recognized w/o a real tuner, installing the dvblink network client is enough (it's a free download), if the (virtual) tuners are visible on device manager WMC must have the Live tv setup item in the settings and the dvblink tuners shown there.
     
  14. Graznok

    Graznok MDL Member

    Jan 29, 2013
    214
    120
    10
    #274 Graznok, Aug 23, 2015
    Last edited by a moderator: Apr 20, 2017
  15. T-S

    T-S MDL Guru

    Dec 14, 2012
    3,984
    1,331
    120
    Also i think that

    \Windows\Microsoft.NET\assembly\GAC_32\ehexthost32

    Should be included in your list.
     
  16. T-S

    T-S MDL Guru

    Dec 14, 2012
    3,984
    1,331
    120
  17. dejong12

    dejong12 MDL Member

    Jan 4, 2009
    170
    100
    10
    Well done everyone! I can't wait for WMC to be able to view live TV and record.
     
  18. Graznok

    Graznok MDL Member

    Jan 29, 2013
    214
    120
    10
    ehrecvr.exe seems to read HKLM\System\CurrentControlSet\Control\ProductOptions (which has the MediaCenter-EnabledSku flag).
     
  19. T-S

    T-S MDL Guru

    Dec 14, 2012
    3,984
    1,331
    120
    One of the two you see in that screenshot is trough a virtual machine, Read back on the thread for that, the other one isn't still fully working, live tv is not (yet) working.