reactos/base/setup/usetup
Hermès Bélusca-Maïto ffc96d26ec
[UMPNPMGR][USETUP] Fix the way device-install events are queued and dequeued. Fixes CORE-16103.
Dedicated to the hard work of Joachim Henze! xD

This reverts part of commit 043a98dd (see also commit b2aeafca).

Contrary to what I assumed in commit 043a98dd (and was also assumed in
the older commit b2aeafca), we cannot use the singled-linked lists to
queue and dequeue the PnP device-install events, because:

- the events must be treated from the oldest to the newest ones, for
  consistency, otherwise this creates problems, as shown by e.g. CORE-16103;

- the system singled-linked lists only offer access to the top of the
  list (like a stack) instead of to both the top and the bottom of the
  list, as would be required for a queue. Using the SLISTs would mean
  that only the newest-received events would be treated first, while the
  oldest (which were the first received) events would be treated last,
  and this is wrong.

Therefore one must use e.g. the standard doubly-linked list. Also, using
locked operations (insertion & removal) on the list of device-install
events is necessary, because these operations are done concurrently by
two different threads: PnpEventThread() and DeviceInstallThread().
Since the interlocked linked list functions are not available in user-mode,
we need to use instead locking access through e.g. a mutex.
2020-10-01 01:52:09 +02:00
..
lang [SETUP] French translation of missing elements (#3111) 2020-09-03 21:20:54 +02:00
spapisup [USETUP] Support a custom way to extract files for cabinet files 2020-04-26 14:57:40 +02:00
chkdsk.c [SETUPLIB][USETUP] Factor out the usage of FS provider structures. 2019-03-10 15:41:05 +01:00
chkdsk.h [SETUPLIB][USETUP] Factor out the usage of FS provider structures. 2019-03-10 15:41:05 +01:00
CMakeLists.txt [USETUP] Fix the build for msvc 2020-04-26 17:01:08 +02:00
cmdcons.c [SETUP] Remove myself from the 1st stage setup code 2018-05-27 21:33:07 +02:00
cmdcons.h [SETUP] Remove myself from the 1st stage setup code 2018-05-27 21:33:07 +02:00
console.c [USETUP] Move loading of requested font from blue.sys to usetup 2020-04-26 14:59:04 +02:00
console.h [SETUP] Remove myself from the 1st stage setup code 2018-05-27 21:33:07 +02:00
consup.c [USETUP] Implement resource ID text based strings for MUI (#2193) 2020-01-19 17:58:13 +01:00
consup.h [USETUP] Implement resource ID text based strings for MUI (#2193) 2020-01-19 17:58:13 +01:00
devinst.c [UMPNPMGR][USETUP] Fix the way device-install events are queued and dequeued. Fixes CORE-16103. 2020-10-01 01:52:09 +02:00
devinst.h [USETUP] Modify the integrated user-mode PnP manager along the lines of UMPNPMGR, so that we can wait until all the queued device installations finish before continuing the installation further. 2018-12-23 20:37:14 +01:00
format.c [SETUPLIB][USETUP] Factor out the usage of FS provider structures. 2019-03-10 15:41:05 +01:00
format.h [SETUPLIB][USETUP] Factor out the usage of FS provider structures. 2019-03-10 15:41:05 +01:00
fslist.c [SETUPLIB][USETUP] Factor out the usage of FS provider structures. 2019-03-10 15:41:05 +01:00
fslist.h [SETUPLIB][USETUP] Factor out the usage of FS provider structures. 2019-03-10 15:41:05 +01:00
genlist.c [SETUPLIB][USETUP] Remove the deprecated GenericListHasSingleEntry() function and use instead GetNumberOfListEntries(). 2018-10-28 15:04:33 +01:00
genlist.h [SETUPLIB][USETUP] Don't store UI-related display strings in GENERIC_LIST_ENTRY-ies, + other code adaptations. 2018-10-28 01:32:15 +02:00
keytrans.c [USETUP] Remove the WIN32 support because usetup is a native-only application 2018-05-15 23:35:17 +02:00
keytrans.h [USETUP] Remove the WIN32 support because usetup is a native-only application 2018-05-15 23:35:17 +02:00
mui.c [USETUP] Implement resource ID text based strings for MUI (#2193) 2020-01-19 17:58:13 +01:00
mui.h [USETUP] Implement resource ID text based strings for MUI (#2193) 2020-01-19 17:58:13 +01:00
muilanguages.h [TRANSLATION] Update Spanish, and add Basque translation (#2667) 2020-05-17 18:46:36 +02:00
partlist.c [USETUP] Use for-loops; simplify the code. 2019-03-11 00:05:37 +01:00
partlist.h [SETUPLIB][USETUP] Remove CurrentDisk/Partition from the partlist lib code, and move these into the UI code. 2019-03-11 00:05:37 +01:00
progress.c [USETUP] Progress-bar: minor improvements. 2018-08-27 23:55:58 +02:00
progress.h [USETUP] Progress-bar: minor improvements. 2018-08-27 23:55:58 +02:00
usetup.c [USETUP][BOOTDATA] Include optional CJK standard fonts (#2336) 2020-02-14 10:47:20 +09:00
usetup.h [SETUPLIB][USETUP] Slightly modify how and when the HW system partition is detected and used. 2019-08-25 02:38:53 +02:00
usetup.rc [SETUPLIB][USETUP] Diverse additions. 2018-06-03 22:12:45 +02:00