none
Builtin Drivers Registry Settings Loading Order RRS feed

  • Question

  • In my registry setting I have several keys that are builtin drivers that are set to load at the same order. How does Windows determine the order in which it loads the drivers, when there are multiple keys at order 0, 1, etx?

    Example:

    In what order would the following keys be loaded?

    HKEY_LOCAL_MACHINE\Drivers\BuiltIn\Test1

        "order"=dword:0

    HKEY_LOCAL_MACHINE\Drivers\BuiltIn\Test2

        "order"=dword:0

    HKEY_LOCAL_MACHINE\Drivers\BuiltIn\Test3

        "order"=dword:1

    HKEY_LOCAL_MACHINE\Drivers\BuiltIn\Test4

        "order"=dword:1

    HKEY_LOCAL_MACHINE\Drivers\BuiltIn\Test5

        "order"=dword:5

    Friday, May 25, 2018 3:24 PM

Answers

  • Hi trendsetter311,

    Bruce has an excellent blog that might help you here... http://geekswithblogs.net/BruceEitman/archive/2008/12/08/windows-ce-stream-interface-driver-registry-settings.aspx

    Specifically about the order value, he states "This sets the order that the driver will be loaded relative to other drivers. The higher the number, the later the driver will be loaded, but if you don’t set a value it will be loaded last. If more than one driver has the same order value, then the load order is not define (or subject to change without notice anyway.)"

    Based on this, I think you are setting multiple items to the same value and that essentially negates them as two drivers can not be loaded simultaneously.  I would also not use 0/Null but rather integers.  I usually started with 10, 20, 30 etc so if I wanted to add other drivers in later I could put them in between without having to change all of my other order numbers.

    Sincerely,

    IoTGirl



    Friday, May 25, 2018 3:43 PM
    Moderator
  • I will throw in that I think that the order is defined by the order that they are read from the registry.  That order can and will change between boots.

    Bruce Eitman
    Senior Enginer
    Bruce.Eitman AT Synopsys DOT com
    My BLOG http://geekswithblogs.net/bruceeitman
    I work for
    Synopsys

    Friday, May 25, 2018 5:19 PM
    Moderator
  • Yes, I can confirm that if the order is the same for various drivers, the load order can and will change depending on registry order.

    You can see this clearly yourself; load a kernel with RAM based registry and mark the load order. Now change to hive based registry and mark the order on first boot. It's different. Whether subsequent boots on hive are different as well I don't know.


    Good luck,

    Michel Verhagen, eMVP
    Check out my blog: https://guruce.com/blog

    GuruCE
    Microsoft Embedded Partner
    NXP Proven Partner
    https://guruce.com
    Consultancy, training and development services.

    Interested in WEC on i.MX6?
    Get the only 100% stable and best performing i.MX6 BSP for WEC7 and WEC2013 here: https://guruce.com/imx6


    Saturday, May 26, 2018 7:33 AM
    Moderator

All replies

  • Hi trendsetter311,

    Bruce has an excellent blog that might help you here... http://geekswithblogs.net/BruceEitman/archive/2008/12/08/windows-ce-stream-interface-driver-registry-settings.aspx

    Specifically about the order value, he states "This sets the order that the driver will be loaded relative to other drivers. The higher the number, the later the driver will be loaded, but if you don’t set a value it will be loaded last. If more than one driver has the same order value, then the load order is not define (or subject to change without notice anyway.)"

    Based on this, I think you are setting multiple items to the same value and that essentially negates them as two drivers can not be loaded simultaneously.  I would also not use 0/Null but rather integers.  I usually started with 10, 20, 30 etc so if I wanted to add other drivers in later I could put them in between without having to change all of my other order numbers.

    Sincerely,

    IoTGirl



    Friday, May 25, 2018 3:43 PM
    Moderator
  • I will throw in that I think that the order is defined by the order that they are read from the registry.  That order can and will change between boots.

    Bruce Eitman
    Senior Enginer
    Bruce.Eitman AT Synopsys DOT com
    My BLOG http://geekswithblogs.net/bruceeitman
    I work for
    Synopsys

    Friday, May 25, 2018 5:19 PM
    Moderator
  • Yes, I can confirm that if the order is the same for various drivers, the load order can and will change depending on registry order.

    You can see this clearly yourself; load a kernel with RAM based registry and mark the load order. Now change to hive based registry and mark the order on first boot. It's different. Whether subsequent boots on hive are different as well I don't know.


    Good luck,

    Michel Verhagen, eMVP
    Check out my blog: https://guruce.com/blog

    GuruCE
    Microsoft Embedded Partner
    NXP Proven Partner
    https://guruce.com
    Consultancy, training and development services.

    Interested in WEC on i.MX6?
    Get the only 100% stable and best performing i.MX6 BSP for WEC7 and WEC2013 here: https://guruce.com/imx6


    Saturday, May 26, 2018 7:33 AM
    Moderator