Previously the debug macros printed file/line, class and message separately, which resulted in possible intermingling with other debug messages, e.g. from rosautotest. This caused random parse errors for testman.
This is fixed by using a temp buffer for the prefix in rosfmt_default_dbg_vlog and then calling vDbgPrintExWithPrefix. Also make the __WINE_DPRINTF macro identical between GCC and MSVC.
See ROSTESTS-178
- Return IP Address, Subnet Mask, Default Gateway, Gateway Metric, Interface Metric and Name Servers.
- WINS Servers, Dynamic Update and Name Registration are not implemented yet.
In order to make the notify object interfaces available to the component interface, the TCPIP notify objects initialization needed to be rewritten. The Initialize method must retrieve the information for all network interfaces from the registry and the SetContext method selects the interface that will be modified by the RaisePropertyUi method. This is required to make the PropertyUi interface optional. The notify object can now be initialized and used without conflicts with the PropertyUi interface.
I also improved the ApplyRegistryChanges and ApplyPnpChanges methods. They have improved checks property changes, e.g. only changed properties are written to the registry.
TODO:
- Fix the alternate configuration and filter settings.
- Do not use fixed sized property string buffers.
- Improve checks for changed properties.
Implementing missing functions...
JIRA issue: CORE-19278
- Add _SHMergePopupMenus and
SHLoadPopupMenu helper
functions.
- Implement
CDefFolderMenu_MergeMenu
function in utils.cpp.
- Add function prototype into
<undocshell.h>.
Implementing missing features...
JIRA issue: CORE-19278
- Implement LinkWindow_RegisterClass
function by using "superclassing".
- Add prototype to <undocshell.h>.
Fix KiWriteSystemTime and move it to NDK. The previous implementation of KiWriteSystemTime was broken and updated the fields in the wrong order. Before that it was right for SystemTime and wrong for InterruptTime. ExpSetTimeZoneInformation had it wrong for the TimeZoneBias.
Add KiReadSystemTime to read KSYSTEM_TIME values correctly, instead of doing it manually (and partly wrongly) all over the place.
- Retrieve the INetCfgComponentControl interface first because it is the only mandatory interface.
- INetCfgComponentPropertyUi is optional. Query it from the INetCfgComponentControl interface.
- Load an old configuration and a current configuration.
- Free the configurations properly.
- Call the ApplyPnPChanges method after the ApplyRegistryChanges method.
- Move changes to the TCPIP and DHCP services from the ApplyRegistryChanges method to the ApplyPnpChanges method.
The funstion should create/open "Device Parameters" subkey of a device reference key (and return a handle to it), instead of device instance subkey.
- Fix SetupDiCreateDeviceInterfaceRegKeyW() to open (and return a handle to) the correct registry key.
- Fix its usage in internal InstallOneInterface() helper, which is called by SetupDiInstallDeviceInterfaces().
This fixes audio devices enumeration failure of winmm.dll from Windows 2000 SP4 (and unneeded creation of wrong registry keys) when using ReactOS with audio stack replacement from Windows XP/2003.
CORE-19986
We will continue with this stuff when we can understand the root issues better
* Revert "[NTDLL_APITEST] Relicense implicit tls tests as MIT"
This reverts commit ec6bae2b31.
* Revert "[NTDLL:LDR] Add Implicit Thread Local Storage Support (#7594)"
This reverts commit 23043ce0b8.
Fix https://reactos.org/testman/detail.php?id=87298653&prev=87291347
PropVariantChangeType is exported in propsys, and before the ole32 sync PropVariantChangeType was commented out. This causes the linker to link against the stub in ole32 rather than the function in propsys.
- Load and store alternate configurations properly.
- Use unique resource ids for the alternate configuration dialog.
- Fix code to enable or disable the name server address controls.
- Build the registry path to the network interface only once.
TODO: Fix the format of the alternate configuration data.