Serge Gautherie
df81dadd9c
[UMPNPMGR] PNP_RegisterNotification(): Fix a string format ( #6211 )
...
Type was changed from DWORD to DWORD_PTR (as handle).
Addendum to commit 71df39b02
2023-12-23 21:50:47 +01:00
Eric Kohl
71df39b027
[IDL][SETUPAPI][UMPNPMGR] Improve PNP_RegisterNotification
...
- The 2nd parameter is the handle to the recipient.
- The 8th parameter is the callers process id.
2023-12-20 14:49:30 +01:00
Eric Kohl
ec0a300f2b
[UMPNPMGR] Broadcast a WM_DEVICECHANGE message after a device install was queued
2023-12-18 11:17:08 +01:00
Eric Kohl
d8ba5920a2
[NTOS:PNP][UMPNPMGR] GUID_DEVICE_ENUMERATED should be a DeviceInstallEvent
...
- Move the GUID_DEVICE_ENUMERATED event from the TargetDeviceChangeEvent category to the DeviceInstallEvent category
- Create a new function that handles DeviceInstallEvent category events
2023-12-03 14:00:34 +01:00
Eric Kohl
30b9be047f
[UMPNPMGR] Split the notification code by event category
...
- Move the TargetDeviceChangeEvent code into a separate function.
- Add a new function for the DeviceClassChangeEvent category.
2023-12-03 11:08:57 +01:00
Eric Kohl
01a8288d28
[UMPNPMGR] Move the pnp event thread to a separate file
2023-11-29 23:03:00 +01:00
Eric Kohl
e1eb9e3620
[UMPNPMGR] PNP_Get(First/Next)LogConf: return proper tags for the resource list case
2023-06-29 18:06:02 +02:00
Eric Kohl
44a312478d
[UMPNPMGR] OpenConfigurationKey: Open subkeys depending on the configuration type
...
- Boot and Basic Configurations are located in the LogConf subkey.
- Alloc and filtered Configurations are located in the Control subkey.
2023-06-28 23:15:26 +02:00
Timo Kreuzer
b29b2682bf
[UMPNPMGR] Fix uninitialized variable ( #5310 )
...
The unhiding and guilty revision that was identified by @stasm by bisecting the
bootability of LiveCD was 0.4.15-dev-6050-g13e6cbc
As that was the symptom: "We could not longer boot livecd". CORE-18986
2023-06-01 19:44:05 +09:00
Eric Kohl
2626c724e9
[UMPNPMGR] Replace some magic values
2023-05-29 11:58:09 +02:00
Eric Kohl
024daea0af
[UMPNPMGR] Check ulFlags in PNP_GetGlobalState
...
Return CR_INVALID_FLAG if ulFlags is not zero.
2023-05-29 09:54:31 +02:00
Eric Kohl
13e6cbcafa
[UMPNPMGR] Check for interactive caller in PNP_ReportLogOn
...
Do not run device install when a non-interactive user logs on.
2023-05-29 09:38:31 +02:00
George Bișoc
cd1070dfc4
[UMPNPMGR] Create a security descriptor for PnP installation device event
2022-05-06 10:09:51 +02:00
Eric Kohl
74efe979a8
[UMPNPMGR] PNP_CreateDevInst: Create a device node for the device to be installed
2022-04-24 12:56:42 +02:00
Eric Kohl
a7a222b52d
[UMPNPMGR] PNP_CreateDevInst: Convert a phantom device to a normal device
2022-04-23 16:59:47 +02:00
Eric Kohl
33a0c66f30
[UMPNPMGR] PNP_CreateDevInst: Do not create a normal device if it is already present
2022-04-23 15:35:45 +02:00
Stanislav Motylkov
27453fb759
[UMPNPMGR] Fix hang when installing devices. Addendum to 0296fce00
.
2022-04-20 02:38:41 +03:00
Eric Kohl
0296fce00e
[UMPNPMGR] GenerateDeviceID must fail, if pszDeviceID contains backslashes
2022-04-19 23:14:23 +02:00
Eric Kohl
f3ac86713d
[UMPNPMGR] PNP_CreateDevInst: A phantom device can only be created if the device did not exist before
2022-04-19 00:09:54 +02:00
Eric Kohl
8897a890c9
[UMPNPMGR] PNP_CreateDevInst: Support the creation of phantom devices
2022-04-18 19:53:18 +02:00
Eric Kohl
f63e8f8a03
[UMPNPMGR] Move device id generation into a separate function and limit device instance number
2022-04-18 14:14:11 +02:00
Eric Kohl
426687becf
[UMPNPMGR] PNP_CreateDevInst: Do not create a new device while generating a device id
2022-04-18 12:59:41 +02:00
Eric Kohl
11886ebec2
[UMPNPMGR] PNP_GetRelatedDeviceInstance must return the root device as the parent of non-existing devices
2022-04-18 09:48:03 +02:00
Eric Kohl
7cc5163bfa
[UMPNPMGR] Add checks to PNP_GetRelatedDeviceInstance
...
PNP_GetRelatedDeviceInstance must fail if we try to retrieve the parent or a sibling of the root device.
2022-04-17 13:52:59 +02:00
Eric Kohl
691a739b02
[UMPNPMGR] Improve UpdateServiceStatus()
...
- Set dwCheckPoint
- Set dwControlAccepted depending on the service state
2022-03-20 17:21:45 +01:00
Eric Kohl
b0a73746cd
[UMPNPMGR][SETUPAPI] Fix notification handles in PNP_RegisterNotification and PNP_UnregisterNotification
...
- Notification handles must be context handles
- Register and unregister notification targets
2022-03-20 14:59:30 +01:00
Hermès Bélusca-Maïto
9393fc320e
[FORMATTING] Remove trailing whitespace. Addendum to 34593d93
.
...
Excluded: 3rd-party code (incl. wine) and most of the win32ss.
2021-09-13 03:52:22 +02:00
Eric Kohl
13073e1acb
[UMPNPMGR] PNP_GetDeviceStatus: Add status checks as documented in MS-PNPR
...
CORE-17527
2021-06-22 00:02:56 +02:00
Eric Kohl
830e15b622
[UMPNPMGR] Add missing parameter checks to PNP_GetDeviceStatus
2021-06-21 21:33:24 +02:00
Eric Kohl
0f27609813
[UMPNPMGR] Fix DPRINT in PNP_GetDeviceStatus()
2021-04-24 17:06:08 +02:00
Eric Kohl
b24f463a33
[UMPNPMGR] Start the device in SetupDeviceInstance
2021-04-24 17:04:11 +02:00
Eric Kohl
d5b20cb118
[UMPNPMGR] Implement PNP_SetDeviceProblem
...
CORE-17527
2021-04-24 11:59:22 +02:00
Mark Jansen
5028c3adec
[UMPNPMGR] Fix remaining length calculation
2021-04-03 01:43:48 +02:00
Victor Perevertkin
16173c0798
[UMPNPMGR] Fix GCC build
...
Addendum to 420c4a7abf
2021-03-19 09:14:05 +03:00
Victor Perevertkin
420c4a7abf
[UMPNPMGR] Install drivers for all devices available on boot
...
Don't wait for their events to appear, just retrieve the list and
install drivers. This fixes the installation of manually reported device
nodes
CORE-17212 CORE-17398
2021-03-19 08:59:42 +03:00
Victor Perevertkin
abbc5ba45a
[UMPNPMGR][USETUP] Use PlugPlayControlStartDevice in usetup and umpnpmgr
...
Instead of PlugPlayControlResetDevice, PlugPlayControlStartDevice should
be used for a newly installed device.
For usetup, add a device status check before starting attempt, so we're
not touching devices which are already started.
CORE-17463 CORE-17490
2021-03-16 03:17:58 +03:00
Victor Perevertkin
029accdcf7
[NDK] Change the data structure for PlugPlayControlResetDevice control class
...
PlugPlayControlResetDevice shares the input structure with several other
control classes.
Source: ProcessHacker sources e9c8121f41/ntpnpapi.h
2021-03-16 03:17:42 +03:00
Victor Perevertkin
ff13301eb2
[UMPNPMGR] Set the data type in all cases of PNP_GetDeviceRegProp
...
CORE-14187
2020-12-06 19:48:38 +03:00
Hervé Poussineau
b483be4af2
[UMPNPMGR] Remove invalid prototype of inline function
...
This fixes eede1b9b7a
.
2020-12-01 18:51:42 +01:00
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
Eric Kohl
80b139d726
[UMPNPMGR] Start work on PNP_GetNextResDes()
2020-05-21 21:51:06 +02:00
Eric Kohl
38494d0997
[UMPNPMGR] Improve some debug messages
2020-05-20 19:56:30 +02:00
Eric Kohl
4246b64dcb
[UMPNPMGR] Implement PNP_GetFirstLogConf and PNP_GetNextLogConf (WIP)
...
- PNP_GetFirstLogConf only works for resources lists.
- PNP_GetNextLogConf does not return a valid tag yet.
2020-05-10 20:46:41 +02:00
Serge Gautherie
2712762538
[UMPNPMGR] rpcserver.c: Fix debug message copypastas ( #2426 )
...
Addendum to db02f87d
.
2020-03-09 16:00:53 +01:00
Eric Kohl
b39c55e5d2
[UMPNPMGR] Implement PNP_DisableDevInst()
2020-03-08 10:36:02 +01:00
Eric Kohl
db02f87d7b
[UMPNPMGR] Fix indentation and improve debug messages
2020-03-08 10:30:25 +01:00
Eric Kohl
c11491b750
[UMPNPMGR] Improve PNP_DeviceInstanceAction
...
- Rename parameters according to [MS_PNPR] (no longer available for download).
- Remove unsupported PNP_DEVINST_MOVE and PNP_DEVINST_DISABLE actions.
- Implement most of the PNP_DEVINST_SETUP action.
2020-02-23 10:44:43 +01:00
Eric Kohl
774a4252b9
[UMPNPMGR] Improve some DPRINTS and PNP_CreateKey
...
PNP_CreateKey creates the 'Device Parameters' key for a given device in the enum key
2020-02-16 22:08:34 +01:00
Eric Kohl
00a47324f2
[UMPNPMGR] Replace magic values and improve DPRINTS in exported function
2020-02-16 16:29:44 +01:00
Eric Kohl
f9160f7637
[UMPNPMGR] Implement PNP_RegisterDriver()
2020-02-16 11:13:10 +01:00