Commit graph

196 commits

Author SHA1 Message Date
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 fc2b105e5d
[CMAKE] Use remove_target_compile_option when disabling manually enabled warnings 2021-03-03 06:04:25 +03:00
Eric Kohl 95188553ba [WKSSVC] Get version info and authentication package on startup 2021-02-27 19:07:47 +01:00
Eric Kohl 87a4624e20 [WKSSVC][NETAPI32] Implement NetrWkstaGetInfo and get rid of the old NetWkstaGetInfo implementation 2021-02-13 23:19:29 +01: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
Jérôme Gardou ab825334dd Apply suggestions from code review
Beautification and clarity

Co-authored-by: Victor Perevertkin <victor@perevertkin.ru>
Co-authored-by: Hermès BÉLUSCA - MAÏTO <hermes.belusca-maito@reactos.org>
2020-10-20 21:44:54 +02:00
Jérôme Gardou c004b53d77 Apply suggestions from code review
Style fixes

Co-authored-by: Hermès BÉLUSCA - MAÏTO <hermes.belusca-maito@reactos.org>
Co-authored-by: Victor Perevertkin <victor@perevertkin.ru>
2020-10-20 21:44:54 +02:00
Jérôme Gardou 00ed72d7e8 [CMAKE] Get rid of add_compile_flags
Use add_compile_options and the like instead
2020-10-20 21:44:54 +02:00
Jérôme Gardou 7e116f0ef3 [CMAKE] Get rid of replace_compile_flags
Introduce a finer-grained remove_target_compile_option instead
2020-10-20 21:44:54 +02: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
Serge Gautherie 98bbe8358c
[REACTOS] Fix GetTokenInformation() usage (#2997)
The first call to GetTokenInformation is used to determine the size of a TokenInformation buffer.
It should fail and return ERROR_INSUFFICIENT_BUFFER
2020-07-21 15:39:11 +03:00
Serge Gautherie b509658280
[CMAKE] Remove obsolete 'CMAKE_CXX_COMPILER_VERSION' checks (#2981)
Following upgrade to RosBE 2.2.0 support and GCC 8.4.
2020-07-18 15:37:29 +02:00
Serge Gautherie 353b544047 [AUDIOSRV] logmsg(): Disable its file part
Mininal workaround for
CORE-16814
2020-07-11 01:22:56 +02:00
Mark Jansen 6859348aea
[SVCHOST] Fix PSID initialization
CORE-17151
2020-07-04 19:39:06 +02:00
Oleg Dubinskiy dcc5dd2a69
[SDK][SVCHOST] Move all global svchost declarations to public header.
Also update the includes.
It will allow to use those declarations globally where they are required (e. g. for SvchostPushServiceGlobals functions in some services).
No functional changes.
2020-06-27 14:54:22 +02:00
Joachim Henze 1b8b339aae [DNSRSLVR] Define NDEBUG in cache.c
To avoid leaking private data into logs by default.
Some testers may consider their DNS-suffix private data.
And DnsIntCacheAddEntry() logs that via Record->pName.
2020-06-14 20:03:33 +02:00
Amine Khaldi 139a3d6661
[CMAKE] Implement PCH builds with target_precompile_headers. CORE-16905 2020-06-06 21:58:41 +03:00
Serge Gautherie 1e861d9759
[NFSD] readdir_copy_shortname(): Add needed brackets to '*name_size_out' (#2856)
CORE-17078
2020-06-06 18:21:05 +02:00
Eric Kohl 505b9f8052 [SCHEDSVC] Implement the job start time calculation for given days of month 2020-05-31 22:33:49 +02:00
Eric Kohl d70c64bde0 [SCHEDSVC] Fix the job start time calculation for given days of week. 2020-05-31 15:49:22 +02:00
Serge Gautherie 11345aedd8
[FORMATTING] [CMAKE] Remove space in 'if (' (#2847) 2020-05-26 20:24:02 +02:00
Eric Kohl 1b90e54242 [BROWSER] Add the browser service 2020-05-21 22:49:33 +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
Katayama Hirofumi MZ fe9838f578
[SERVICES][DCOMLAUNCH] Don't hardcode C: drive (#2779)
CORE-13235
2020-05-17 17:45:56 +09: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
Thomas Faber 5a5ba1ad10
[SHSVCS] Don't call UnregisterWait from within the wait callback.
Doing this causes deadlocks, the process runs out of worker threads and
the system runs out of memory by allocating too many I/O completion ports
when using ntdll.dll from Windows.
2020-04-22 12:37:26 +02:00
Victor Perevertkin 7e069ccdb2
[CMAKE] Replace custom functions to built-in ones
add_target_compile_definitions -> target_compile_definitions
add_target_compile_flags -> target_compile_options
add_target_include_directories -> target_include_directories
2020-04-16 15:59:38 +03:00
Hermès Bélusca-Maïto 622c7ed609
[W32TIME][BOOTDATA] Export SvchostEntry_W32Time() as an alias to W32TmServiceMain, and use the former as the service entry point specified in the registry, for Windows compatibility. 2020-04-09 23:22:40 +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
Eric Kohl 4f23b0c3df [W32TIME] Rename ServiceMain to W32TmServiceMain 2020-02-15 15:08:19 +01:00
Katayama Hirofumi MZ 214a9cb660
[NFSD][TELNETD][LIBTIRPC][MAN] Don't hardcode C:\ReactOS (#2334)
CORE-14747
2020-02-13 18:03:35 +01:00
Bișoc George 37349d7a0f
[TIMEDATE] Do not display a message box when NTP sync fails (#2305)
This PR merely checks if the string is empty and displaying (only) a debug information to the debugger, at disposal of displaying a message box. I might implement such dynamic resource string to the CPL later in a next PR.
CORE-16654
2020-02-06 03:54:33 +09:00
Eric Kohl 17f932d78e [DNSRSLVR] R_ResolverFlushCache should only flush cached records which were not read from the hosts file 2020-01-06 00:46:37 +01:00
Eric Kohl 6c7878f35e [DNSAPI][DNSRSLVR] Implement DnsGetCacheDataTable() 2019-12-22 11:21:04 +01:00
Eric Kohl 6499cf9e1a [DNSRSLVR] Set proper flags for the hosts file entries 2019-12-21 22:12:55 +01:00
Eric Kohl 7908e2e41f [NETAPI32][WKSSVC] Implement NetGetJoinInformation using the workstation service 2019-12-15 19:53:23 +01:00
Eric Kohl 989ee70d9d [WKSSVC] Implement parts of NetrJoinDomain2 to join a work group
NOTE: We can not connect to a work group yet!
2019-12-08 19:19:27 +01:00
Eric Kohl c35ebdfeb6 [DNSRSLVR] Add support for IP6 hosts file entries 2019-12-01 17:18:47 +01:00
Eric Kohl 630f34a0d0 [DNSAPI][DNSRSLVR] Parse the hosts file when the resolver is initializing
- Move the hosts file handling from dnsapi.dll to the resolver service. Now, the hosts file is no longer parsed on each query.
- Add support for DNS_QUERY_WIRE_ONLY and DNS_QUERY_NO_WIRE_QUERY flags to R_ResolverQuery.
- GetCurrentTimeInSeconds() should return DWORD instead of DNS_STATUS.
2019-11-23 17:13:51 +01:00
Eric Kohl e92ad7f309 [IDL][DNSRSLVR] Use the stdcall calling convention for remote functions 2019-11-10 17:16:17 +01:00
Eric Kohl 305035be7d [DNSRSLVR][DNSAPI] Enable the DNS resolver cache
- Fix the IDL file to return DNS records properly
- Reroute the DNS query call path: DNSQuery->R_ResolverQuery->Query_Main

DNS records get cached and 'ipconfig /flushdns' works as expected.

CORE-12159
2019-11-10 15:28:42 +01:00
Eric Kohl 2a2dd8f726 [UMPNPMGR] Add checks for the root device instance ID 2019-11-09 21:14:52 +01:00
Eric Kohl 8bf3f3feb9 [UMPNPMGR] Validate device instance IDs before use 2019-11-09 18:48:10 +01:00
Eric Kohl a743e33bd8 [UMPNPMGR] Implement PNP_RequestEjectPC() 2019-11-09 12:32:34 +01:00
Eric Kohl d49d7b3282 [DNSRSLVR] Add the DNS Resolver Cache Service
Patch written by Peter Hater and Christoph von Wittich.

Slightly modified by me in order to
- fix bit-rot
- fix header include issues
- disable integration with dnsapi because of confusing use of DnsQweryEx().

Integration with dnsapi will follow in a future commit.

CORE-12159
2019-10-27 13:48:04 +01:00
Serge Gautherie e133817811 [CMAKE] Use modules instead of shared libraries
Follow-up to 23373acbb9.
2 missed cases: apisets, lunar.msstyles.
4 new cases: w32time, netplwiz, msxml3r, mizu.msstyles.
2019-10-27 09:51:28 +01:00
Eric Kohl 13bb5e2317 [umpnpmgr][ndk] Implement PNP_RequestDeviceEject() and update unknown type in PLUGPLAY_CONTROL_QUERY_REMOVE_DATA 2019-10-15 22:40:06 +02:00
Eric Kohl 3d9a702d2b [UMPNPMGR] Implement PNP_QueryRemove() 2019-10-13 15:49:13 +02:00
Oleg Dubinskiy 5f7575909f [AUDIOSRV][BOOTDATA][INCLUDE][MMSYS] Rename RosAudioSrv to AudioSrv (#1826)
Rename RosAudioSrv to AudioSrv in audio service itself and in all system components which are related to this, same as it done in Win2k3.
It allows MS DxDiag to detect the system audio service correctly, so it becomes possible to run DirectSound test properly with MS dsound.dll, although it works with some minor errors and only in older VirtualBox versions, ~ up to 5.1.38 (and in other emulators as well).

CORE-16307
2019-08-16 19:11:04 +02:00
Mark Jansen fcb9378e01
[W32TIME] The interval is specified in seconds, but we need milliseconds 2019-08-16 16:29:20 +02:00
Timo Kreuzer ad89837c0e [3RDPARTY] Suppress MSVC printf format warnings in 3rd-party code 2019-08-15 15:24:12 +02:00
Timo Kreuzer 7611cc2b12 [REACTOS] Fix SIZE_T related warnings 2019-08-15 14:20:00 +02:00
Eric Kohl 71408b531c [RPCSS] Prevent the RPCSS service from getting stopped
CORE-13500
2019-08-04 19:59:30 +02:00
Eric Kohl 6b15e72206 [W32TIME] Use an event to stop the service
CORE-16180
2019-07-28 22:38:04 +02:00
Hermès Bélusca-Maïto b6135732d4
[DLLs] Fix .spec files regarding OLE-specific exports.
- Do not use hardcoded ordinals, add missing '-private'.
  Except for MSXML3, OLE32 and RSAENH, see commit bff824b2 for more details.

- SHSVCS: The 6 first exports are nonamed with ordinals. Replace exported
  commented stubs by actual exported stubs instead.

Co-Authored-By: Timo Kreuzer <timo.kreuzer@reactos.org>
2019-07-28 16:26:22 +02:00
Eric Kohl 353e05a4f3 [AUDIOSVC] Fix the coding style. No code changes! 2019-07-27 18:20:04 +02:00
Bișoc George eede1b9b7a
[UMPNPMGR] Implement registry functions for SuppressUI and SuppressNewHWUI handling. (#1683)
CORE-15897

Co-authored-by: Hermès Bélusca-Maïto <hermes.belusca-maito@reactos.org>
2019-07-21 19:02:53 +02:00
Eric Kohl e0c97c9eca [SRVSVC][WKSSVC] Set the stop pending status before stopping the services and stop the RPC listener on shutdown as well. 2019-07-21 18:56:59 +02:00
Eric Kohl 1f082ecc68 [WMISERV][WUAUSERV] Stop the service if the stop event creation fails. 2019-07-21 18:56:57 +02:00
Benjamin Aerni 5b9543c31a
[W32TIME] Use a reasonable fallback of 9 hours. (#1724)
CORE-16181

This allows preventing spamming the time servers if the registry entry
becomes corrupted or missing. Also, disallow a setting of less than
2 minutes for the same reasons, and instead use the fallback of 9 hours.
2019-07-21 17:47:13 +02:00
Eric Kohl eab73ad1a4 [SRVSVC] Make the server service stoppable. 2019-07-20 22:48:17 +02:00
Eric Kohl 4073a8c58d [WKSSVC] Make the workstation service stoppable. 2019-07-20 22:43:39 +02:00
Eric Kohl 8a631c8455 [WUAUSERV] Make the wuauserv service startable and stoppable. 2019-07-20 19:30:27 +02:00
Eric Kohl eb532bc641 [WMISVC] Accept stop and shutdown commands when the service is running. 2019-07-20 15:51:39 +02:00
Hermès Bélusca-Maïto e095695a64
[UMPNPMGR] Fix build. 2019-07-14 22:17:50 +02:00
Eric Kohl 47e90b5ea4 [UMPNPMGR] PNP_GetDeviceStatus: Move the code that retrieves the status of a device into a separate function so that we can use in other functions. 2019-07-14 21:50:06 +02:00
Eric Kohl ece54dcd2f [SETUPAPI][UMPNPMGR] The 3rd parameter of PNP_RegisterNotification() seems to be the service name 2019-07-07 13:41:00 +02:00
Doug Lyons e4898e6e0b
[W32TIME] Implement w32time service. CORE-13001 2019-07-07 12:55:13 +02:00
Thomas Faber d19b792511
[W32TIME] Implement a rudimentary version of W32TimeSyncNow. CORE-13001 2019-07-07 12:45:03 +02:00
Eric Kohl 8f5fe0fa4f [UMPNPMGR] PNP_RegisterNotification: Add notification filter parameter checks 2019-06-29 18:16:13 +02:00
Eric Kohl 7eb6e42626 [UMPNPMGR][SETUPAPI] PNP_RegisterNotification() has got 9 parameters. 2019-06-29 13:38:42 +02:00
Eric Kohl a9c4c07955 [SETUPAPI][UMPNPMGR] PNP_UnregisterNotification: Add 2 unknown parameters 2019-06-23 21:45:54 +02:00
Eric Kohl ca0406131c [SETUPAPI][UMPNPMGR] Improve CMP_RegisterNotification/PNP_RegisterNotification
Pass the notification filter to PNP_RegisterNotification as a byte-pointer to the filter and the size of the filter.
2019-06-23 19:31:34 +02:00
Eric Kohl 6866c0aede [NTOSKRNL][USETUP][UMPNPMGR] Pass user response data to NtPlugPlayControl(PlugPlayControlUserResponse).
- Windows requires 16 bytes of response data.
- Add the PLUGPLAY_CONTROL_USER_RESPONSE_DATA type.
- Usetup and Umpnpmgr must fail if NtPlugPlayControl(PlugPlayControlUserResponse) does not return STATUS_SUCCESS.
2019-06-12 13:48:27 +02:00
Eric Kohl acc821e1ea [UMPNPMGR] PNP_SetHwProf is not implemented in Windows XP and returns CR_CALL_NOT_IMPLEMENTED. 2019-06-11 16:32:44 +02:00
Eric Kohl 5e3c8ce0c6 [UMPNPMGR] Implement PNP_GetClassInstance(). 2019-06-06 18:16:31 +02:00
Eric Kohl fe3ae24369 [UMPNPMGR] Split the monolithic monster: service, rpc and installer. 2019-05-30 11:48:29 +02:00
Eric Kohl e71a94da20 [UMPNPMGR] PNP_QueryArbitratorFreeData and PNP_QueryArbitratorFreeSize don't do anything useful today. 2019-05-30 01:02:09 +02:00
Eric Kohl 78600cf223 [NETLOGON] Add the netlogon service. 2019-05-29 13:37:20 +02:00
Timo Kreuzer 9dc6c14eca [TFTPD] Disable format-overflow warnings 2019-05-27 13:22:40 +02:00
Hervé Poussineau 15a828c86d [DHCPCSVC] Eliminate unused code and associated parameters
This is mostly the same as OpenBSD commit b4e4f16f2ae0ddf1e786bb12c99b8c51170a1a33
2019-04-07 18:32:28 +02:00
Jérôme Gardou 23373acbb9 [CMAKE] Use modules instead of shared libraries
There is no need to compile our DLLs as shared libraries since we are
managing symbols exports and imports through spec files.

On my system, this reduces the configure-time by a factor of two.
2019-04-06 17:43:38 +02:00
Pierre Schweitzer e5b0087c8e
[DCOMLAUNCH][WMISVC] Stop busy waiting shutdown 2019-03-03 23:14:37 +01:00
Pierre Schweitzer 2ab289a34a
[DCOMLAUNCH] Add a DcomLaunch service stub
This stub is responsible for providing the UUID seed to the kernel.
For now, it generates a purely random seed - MAC address support
is to be added.
Because it's purely random seed and local the machine (not tied
to the MAC address) it's made so that ExUuidCreate keeps returning
RPC_NT_UUID_LOCAL_ONLY. It won't fix failing test for now.

Nota: this service shouldn't exist as it. It should be implemented
though rpcss DLL for both rpcss service (network service) and
dcomlaunch service (local system service).
Because rpcss is EXE based and wine-synced for now, I prefered
stubbing a new service. This will have to be changed at some point.
2019-03-03 14:25:19 +01:00
Pierre Schweitzer 6295cc506e
[OOPS] That was not meant to be pushed/commited 2019-02-10 20:52:55 +01:00
Pierre Schweitzer d2c71d761e
[CRYPTEX] Add French translation 2019-02-10 20:43:14 +01:00
Eric Kohl 66e4dbc7ed [UMPNPMGR] PNP_GetDeviceList: Implement the enumeration of service device instances. 2018-12-31 21:38:26 +01:00
Eric Kohl 5da008c338 [UMPNPMGR] PNP_GetDeviceListSize: Implement the buffer size calculation for the enumeration of services instances. 2018-12-31 16:15:16 +01:00
Eric Kohl ccb8c906b0 [UMPNPMGR] PNP_GetDeviceList/PNP_GetDeviceListSize: Move device relations code into separate functions. 2018-12-31 11:21:17 +01:00
Eric Kohl 6183774efa [UMPNPMGR] PNP_GetDeviceList: Implement the enumeration of all device instances. 2018-12-30 17:15:40 +01:00
Eric Kohl 969de9062c [UMPNPMGR] PNP_GetDeviceListSize: Implement the buffer size calculation for a list of all device instances. 2018-12-30 14:43:10 +01:00