Coffeehouse Post

Single Post Permalink

View Thread: Some more info on Redhawk in Windows 8
  • User profile image
    felix9

    Well, we have known that 'Microsoft Windows Redhawk' made a modest debut in Windows 8, there are slr100.dll and wcl*.dll, and they are use by two Windows component: PowerWmiProvier.dll and whealogr.dll. Although the functionality of wcl libraries are very limited and specific, the base runtime (clr) 'slr100.dll' and base library (bcl) 'wcl.dll' are still quite interesting.

    One good thing about Windows 8 CP is that Microsoft symbol servers have PDBs for the dlls, and you can download them too http://msdn.microsoft.com/en-us/windows/hardware/gg463028, PDBs are quite informative to understand some internals of a library, so I extracted some info using Dia2Dump and DumpBin, pasted here:

    SLR100.PDB publics & modules http://pastebin.com/Gpjtsb98
    WCL.PDB publics & modules http://pastebin.com/ziXwq9za
    WCL.DLL exports http://pastebin.com/Pm6G3asK

    as we can see, slr100 basically contains the execution engine and two garbage collectors, WKS and SVR, and it is designed to be run on just MinWin.

    0002 c:\redhawk-win8\rh_min\ndp\rh\src\slr\minwin\objr\i386\dllmain.obj
    0029 objr\i386\palredhawkminwin.obj

    and the WCL basically contains the System namespaces and Windows namespaces, provides basic and low-level functionalities.

    One interesting thing I seen in WCL is, it as Async/Await support, with the 'INotifyCompletion' interface which is new in the beta version of .NET 4.5, so we know that Redhawk is actually very up-to-date and in sync with the real CLR/BCL.

    Windows::Threading::ThreadPool::Async::DelayAwaitable::Awaiter.System.Runtime.CompilerServices.INotifyCompletion.OnCompleted
    Windows::Device::LogicalDevice::Awaitable::Awaiter.System.Runtime.CompilerServices.INotifyCompletion.OnCompleted
    Windows::Threading::ThreadPool::Async::SynchronizationHandleAwaitable::Awaiter.System.Runtime.CompilerServices.INotifyCompletion.OnCompleted