[BOOTDATA][NETSHELL][INF] Improvements to the network setup

- Fix the network setup wizard start page.
- Add the ndisuio driver to the network setup.
- Remove the tcpip driver from the system setup.
This commit is contained in:
Eric Kohl
2025-03-02 15:07:36 +01:00
parent f1a66daeeb
commit da5192e622
5 changed files with 91 additions and 16 deletions
-7
View File
@@ -1735,13 +1735,6 @@ HKLM,"SYSTEM\CurrentControlSet\Services\NMIDebug","ImagePath",0x00020000,"system
HKLM,"SYSTEM\CurrentControlSet\Services\NMIDebug","Start",0x00010001,0x00000000
HKLM,"SYSTEM\CurrentControlSet\Services\NMIDebug","Type",0x00010001,0x00000001
; NDIS User I/O driver (FIXME: Should be installed via INF and started on demand)
HKLM,"SYSTEM\CurrentControlSet\Services\Ndisuio","ErrorControl",0x00010001,0x00000001
HKLM,"SYSTEM\CurrentControlSet\Services\Ndisuio","Group",0x00000000,"NDIS"
HKLM,"SYSTEM\CurrentControlSet\Services\Ndisuio","ImagePath",0x00020000,"system32\drivers\ndisuio.sys"
HKLM,"SYSTEM\CurrentControlSet\Services\Ndisuio","Start",0x00010001,0x00000001
HKLM,"SYSTEM\CurrentControlSet\Services\Ndisuio","Type",0x00010001,0x00000001
; Packet driver
HKLM,"SYSTEM\CurrentControlSet\Services\Packet","ErrorControl",0x00010001,0x00000001
HKLM,"SYSTEM\CurrentControlSet\Services\Packet","Group",0x00000000,"PNP_TDI"
+30 -8
View File
@@ -23,10 +23,21 @@ typedef struct _NETWORKSETUPDATA
HWND hwndPage;
} NETWORKSETUPDATA, *PNETWORKSETUPDATA;
extern "C"
{
typedef struct _NETWORKCOMPONENT
{
LPWSTR pszDeviceId;
const GUID *pClassGuid;
} NETWORKCOMPONENT, PNETWORKCOMPONENT;
static NETWORKCOMPONENT NetworkComponents[] = {
{(LPWSTR)L"MS_TCPIP", &GUID_DEVCLASS_NETTRANS},
{(LPWSTR)L"MS_NDISUIO", &GUID_DEVCLASS_NETTRANS}
};
static
VOID
SetBoldText(
@@ -52,7 +63,7 @@ InstallNetworkComponent(
OBO_TOKEN OboToken;
HRESULT hr;
TRACE("InstallNetworkComponent()\n");
TRACE("InstallNetworkComponent(%S)\n", pszComponentName);
hr = CoInitialize(NULL);
if (hr != S_OK)
@@ -169,16 +180,23 @@ InstallThreadProc(
_In_ LPVOID lpParameter)
{
PNETWORKSETUPDATA pNetworkSetupData = (PNETWORKSETUPDATA)lpParameter;
UINT i, count;
TRACE("InstallThreadProc()\n");
SendDlgItemMessage(pNetworkSetupData->hwndPage, IDC_INSTALL_PROGRESS, PBM_SETRANGE, 0, MAKELPARAM(0, 1));
count = sizeof(NetworkComponents) / sizeof(NETWORKCOMPONENT);
TRACE("Network Components: %u\n", count);
SendDlgItemMessage(pNetworkSetupData->hwndPage, IDC_INSTALL_PROGRESS, PBM_SETRANGE, 0, MAKELPARAM(0, count));
SendDlgItemMessage(pNetworkSetupData->hwndPage, IDC_INSTALL_PROGRESS, PBM_SETPOS, 0, 0);
InstallNetworkComponent((LPWSTR)L"MS_TCPIP", &GUID_DEVCLASS_NETTRANS);
SendDlgItemMessage(pNetworkSetupData->hwndPage, IDC_INSTALL_PROGRESS, PBM_SETPOS, 1, 0);
Sleep(500);
for (i = 0; i < count; i++)
{
TRACE("Install Network Component: %S\n", NetworkComponents[i].pszDeviceId);
InstallNetworkComponent(NetworkComponents[i].pszDeviceId, NetworkComponents[i].pClassGuid);
SendDlgItemMessage(pNetworkSetupData->hwndPage, IDC_INSTALL_PROGRESS, PBM_SETPOS, i, 0);
Sleep(500);
}
TRACE("Done\n");
@@ -548,11 +566,14 @@ NetSetupRequestWizardPages(
DWORD dwPageCount = 4;
INT nPage = 0;
TRACE("NetSetupRequestWizardPages(%p %p %p)\n", pPageCount, pPages, pSetupData);
if (pPageCount == NULL)
return ERROR_INVALID_PARAMETER;
if (pPages == NULL)
{
TRACE("Return %lu pages\n", dwPageCount);
*pPageCount = dwPageCount;
return ERROR_SUCCESS;
}
@@ -560,7 +581,7 @@ NetSetupRequestWizardPages(
if (*pPageCount < dwPageCount)
return ERROR_BUFFER_OVERFLOW;
pSetupData->uFirstNetworkWizardPage = IDD_NETWORKSETTINGSPAGE;
pSetupData->uFirstNetworkWizardPage = IDD_NETWORKINITPAGE;
pNetworkSetupData = (PNETWORKSETUPDATA)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(NETWORKSETUPDATA));
if (pNetworkSetupData == NULL)
@@ -604,6 +625,7 @@ NetSetupRequestWizardPages(
psp.pszTemplate = MAKEINTRESOURCE(IDD_NETWORKDOMAINPAGE);
pPages[nPage++] = CreatePropertySheetPage(&psp);
TRACE("Return %lu pages\n", dwPageCount);
*pPageCount = dwPageCount;
return ERROR_SUCCESS;
+1
View File
@@ -18,6 +18,7 @@ list(APPEND INF_FILES
machine.inf
monitor.inf
msmouse.inf
ndisuio.inf
NET_NIC.inf
nettcpip.inf
ports.inf
+60
View File
@@ -0,0 +1,60 @@
; NDISUIO.INF
; Installation file for the NDIS Usermode I/O Protocol
[Version]
Signature = "$Windows NT$"
;Signature = "$ReactOS$"
LayoutFile = layout.inf
Class = NetTrans
ClassGUID = {4D36E975-E325-11CE-BFC1-08002BE10318}
Provider = %ReactOS%
DriverVer = 04/12/2006,1.00
[Manufacturer]
%ReactOS% = ReactOS
[ReactOS]
%NDISUIO_DisplayName% = Install, MS_NDISUIO
;--------------------------- NDISUIO DRIVER -----------------------------
[Install]
Characteristics = 0x28
AddReg = Inst_Ndi
CopyFiles = CopyFiles_Sys
[Inst_Ndi.NT]
HKR,"Ndi","HelpText",0x00000000,"%NDISUIO_HelpText%"
HKR,"Ndi","Service",0x00000000,"Ndisuio"
HKR,"Ndi\Interfaces","UpperRange",0x00000000,"noupper"
HKR,"Ndi\Interfaces","LowerRange",0x00000000,"ndis4,ndis5"
[Install.Services]
AddService = Ndisuio, , NDISUIO_Service_Inst
[NDISUIO_Service_Inst]
DisplayName = "%NDISUIO_DisplayName%"
Description = "%NDISUIO_DisplayName%"
ServiceType = 1
StartType = 1
ErrorControl = 1
ServiceBinary = %12%\ndisuio.sys
LoadOrderGroup = NDIS
[CopyFiles_Sys]
ndisuio.sys
;-------------------------------- STRINGS -------------------------------
[Strings]
; Non-localizable
ReactOS = "ReactOS Project"
; Localizable
NDISUIO_DisplayName = "NDIS Usermode I/O Protocol"
NDISUIO_HelpText = "A driver that supports the NDIS Usermode I/O Protocol."
[Strings.0409]
NDISUIO_DisplayName = "NDIS Benutzermodus E/A Protokoll"
NDISUIO_HelpText = "Ein Treiber, der das NDIS Benutzermodus E/A Protokoll unterstützt."
-1
View File
@@ -20,7 +20,6 @@ machine.inf
monitor.inf
msmouse.inf
NET_NIC.inf
nettcpip.inf
ports.inf
scsi.inf
unknown.inf