none
Windows 8 SDK: Include files in "shared", "um", and "winrt" directories. What's the difference? RRS feed

  • Question

  • Hello.  After installing Windows 8 SDK, I can see three(3) directories in my "Include" folder.  They are: "shared", "um", and "winrt".  What's the difference between them?  I just want to get started with developing good, old desktop applications.  Hope you can fill me in on this one.  Thanks.
    Saturday, December 1, 2012 10:12 PM

Answers

  • winrt - Contains the header files for the WinRT API (aka Windows Store).

    um - Contains the usual Windows header files: Windows.h & co. "um" likely comes from "user mode".

    shared - While there seem to be some exceptions this likely contains headers shared between user mode and kernel mode.

    AFAIR if you install the driver developer kit you get a 4th folder: km - kernel mode.

    "I just want to get started with developing good, old desktop applications."

    I would argue that knowing how the various Windows include files have been grouped into folders is not very relevant for developing good applications :)

    • Marked as answer by ColdBackup Sunday, December 2, 2012 3:51 PM
    • Unmarked as answer by ColdBackup Sunday, December 2, 2012 3:54 PM
    • Marked as answer by ColdBackup Sunday, December 2, 2012 3:54 PM
    Sunday, December 2, 2012 1:22 PM
    Moderator
  • "Did they take some header files located in the old "Include" folder and divided them into 2 parts, one of which has to do with low level interaction?"

    Something like that, for example basetsd.h and windef.h where in the old Include and now they're in shared. And ntdd*.h headers where previously in the driver developer kit but now they're in shared probably because some of the definitions in those headers can be used in user mode too (for device ioctl for example).

    • Marked as answer by ColdBackup Sunday, December 2, 2012 4:41 PM
    Sunday, December 2, 2012 4:05 PM
    Moderator

All replies

  • winrt - Contains the header files for the WinRT API (aka Windows Store).

    um - Contains the usual Windows header files: Windows.h & co. "um" likely comes from "user mode".

    shared - While there seem to be some exceptions this likely contains headers shared between user mode and kernel mode.

    AFAIR if you install the driver developer kit you get a 4th folder: km - kernel mode.

    "I just want to get started with developing good, old desktop applications."

    I would argue that knowing how the various Windows include files have been grouped into folders is not very relevant for developing good applications :)

    • Marked as answer by ColdBackup Sunday, December 2, 2012 3:51 PM
    • Unmarked as answer by ColdBackup Sunday, December 2, 2012 3:54 PM
    • Marked as answer by ColdBackup Sunday, December 2, 2012 3:54 PM
    Sunday, December 2, 2012 1:22 PM
    Moderator
  • "I just want to get started with developing good, old desktop applications."

    I would argue that knowing how the various Windows include files have been grouped into folders is not very relevant for developing good applications :)

    Good and old, not just good :)  If for example I were to use winrt folder, it wouldn't be anything like an app developed with Windows 7 SDK.

    One more question I would like to ask you: how should I interpret "shared between user mode and kernel mode"?  Did they take some header files located in the old "Include" folder and divided them into 2 parts, one of which has to do with low level interaction?  Please clarify, I'm kind of confused here with this new SDK.

    And thanks for your response, now I at least have a general idea of what's going on as far as headers are concerned.




    • Edited by ColdBackup Sunday, December 2, 2012 3:53 PM
    Sunday, December 2, 2012 3:51 PM
  • "Did they take some header files located in the old "Include" folder and divided them into 2 parts, one of which has to do with low level interaction?"

    Something like that, for example basetsd.h and windef.h where in the old Include and now they're in shared. And ntdd*.h headers where previously in the driver developer kit but now they're in shared probably because some of the definitions in those headers can be used in user mode too (for device ioctl for example).

    • Marked as answer by ColdBackup Sunday, December 2, 2012 4:41 PM
    Sunday, December 2, 2012 4:05 PM
    Moderator