WinFsp: helper to develop user mode file system in Windows

This project provides an infrastructure to build user mode file system:

  • A kernel mode file system driver is responsible of re-routing IRP to user mode code,
  • A library provide a low level abstraction to build user mode file system. This part make the glu with previous kernel driver. A FUSE compatible layer is also provided,
  • a sample fs, memfs: an in memory file system,
  • A Windows Service called WinFsp Launcher to launch multiple user mode file system.

Source: Main | WinFsp

EDIT: Yet another solution for developping user mode filesystem with FUSE support: https://github.com/dokan-dev/dokany.

Bridges between Win runtime APIs and managed desktop apps

How to use WinRT APIs from managed desktop apps: Managed desktop apps and Windows Runtime – Windows app development. This way is simple. Some available API are packaged in facade assemblies that can be consumed from desktop apps as reference. COM sharing is also detailed.

How to use desktop hosted server from Windows store apps: Brokered Windows Runtime Components for side-loaded Windows Store apps. This way is more restrictive. First, only side-loaded windows store apps can benefits from this mechanism. Then, server must be hosted in special .Net 4.5 assemblies, and last, contracts must be written as winRT components with several limitations:

  • 64 bits restrictions,
  • obligation of providing interface only used by internal mechanism,
  • too much manual winmd file generation,
  • lost of “this field must have such value if you want to avoid strange error message or undefined behavior”,
  • exchanged method parameters must favor bulk transfert using Array of struct (marshalled once) instead of using List<class> where each Next and each property get is a cross-process transfert involving marshalling.

Humanizer

Lots of helper extensions to format BCL types to more readable strings (and reverse).

Just like any other library, I have concrete cases of use of some extensions and some others seems useless. I dream of possibility to choose which subsetI take from a nuget library. Splitting in multiple parts is boring to use. This must be mitigated by the fact that binary is small: 76 Ko plus localisations assemblies.

Humanizer includes an evolution of the excellent ByteSize.

Humanizer by MehdiK.

New to Windows 8.1 Update: Using network loopback in side-loaded Windows Store apps (Windows)

Detailed samples on  the now (since Windows 8.1 Update) possible communication between Windows Store client connected to a local server hosted in local Desktop application.

It only works for side loaded applications. If you don’t know everything about this kind of app, all you need to know is available on technet here.

Using network loopback in side-loaded Windows Store apps (Windows).

EDIT: This is now simplified by project templates: Brokered WinRT component project templates now available.

EDIT: And now how to distribute C++ Runtime for Sideloaded Windows 8.1 apps (when C++ runtime cannot be provided by Windows 8 Store).