Emanuele Aliberti wrote:
Alex Ionescu wrote:
I don't understand this change; it is incorrect. MS kernel32.dll sends the name of the port.
It seems that KERNEL32, the 1st (or the 2nd) time, sends L"\Windows", but, the 2nd (or the 1st) time, sends NULL.
The 2nd call (the one that connects to the console server in basesrv.dll) sends NULL, yes, but it's not CsrpConnectToServer's job to automagically assume you want \Windows. That is a total hack, so I just wanted to point that out... on Windows, it will actually probably -break- ntdll compatibility, since windows's ntdll merrily sends uses the NULL, while we'll end up adding \Windows incorrectly.
This happens during the DLL initialization. As you and other stated, this is probably related to the SM managing subsystem IDs in pairs (2+3 for Win32) and not to the servers (Win32 has 1+3 servers hosted by the CSR).
N.B. Still trying to understand how everything get glued.
Best regards, Alex Ionescu