[REACTOS] Enable PnP storage stack

- Use PnP storage class drivers
- Make partmgr an upper filter driver for Disk class
- Fill upper filters in txtsetup and usetup/devinst
- Add cdrom driver to the critical device database

CORE-6264
This commit is contained in:
Victor Perevertkin 2020-12-05 20:36:29 +03:00
parent fb155b4ea4
commit dd56e065bc
No known key found for this signature in database
GPG key ID: C750B7222E9C7830
5 changed files with 30 additions and 5 deletions

View file

@ -71,6 +71,7 @@ InstallDriver(
UNICODE_STRING TypeU = RTL_CONSTANT_STRING(L"Type");
UNICODE_STRING UpperFiltersU = RTL_CONSTANT_STRING(L"UpperFilters");
PWSTR keyboardClass = L"kbdclass\0";
PWSTR partMgr = L"partmgr\0";
UNICODE_STRING StringU;
OBJECT_ATTRIBUTES ObjectAttributes;
@ -180,6 +181,7 @@ InstallDriver(
INF_FreeData(ImagePath);
/* Add kbdclass and partmgr upper filters */
if (ClassGuid &&_wcsicmp(ClassGuid, L"{4D36E96B-E325-11CE-BFC1-08002BE10318}") == 0)
{
DPRINT1("Installing keyboard class driver for '%S'\n", DeviceId);
@ -190,6 +192,16 @@ InstallDriver(
keyboardClass,
(wcslen(keyboardClass) + 2) * sizeof(WCHAR));
}
else if (ClassGuid && _wcsicmp(ClassGuid, L"{4D36E967-E325-11CE-BFC1-08002BE10318}") == 0)
{
DPRINT1("Installing partition manager driver for '%S'\n", DeviceId);
NtSetValueKey(hDeviceKey,
&UpperFiltersU,
0,
REG_MULTI_SZ,
partMgr,
(wcslen(partMgr) + 2) * sizeof(WCHAR));
}
INF_FreeData(ClassGuid);

View file

@ -47,6 +47,9 @@ HKLM,"SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\USB#ROOT_HUB","Cla
HKLM,"SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\USB#ROOT_HUB20","Service",0x00000000,"usbhub"
HKLM,"SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\USB#ROOT_HUB20","ClassGUID",0x00000000,"{36FC9E60-C465-11CF-8056-444553540000}"
HKLM,"SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\GenCdRom","Service",0x00000000,"cdrom"
HKLM,"SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\GenCdRom","ClassGUID",0x00000000,"{4D36E965-E325-11CE-BFC1-08002BE10318}"
HKLM,"SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\GenDisk","Service",0x00000000,"disk"
HKLM,"SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\GenDisk","ClassGUID",0x00000000,"{4D36E967-E325-11CE-BFC1-08002BE10318}"
@ -343,6 +346,14 @@ HKLM,"SYSTEM\CurrentControlSet\Control\Class\{36FC9E60-C465-11CF-8056-4445535400
HKLM,"SYSTEM\CurrentControlSet\Control\Class\{36FC9E60-C465-11CF-8056-444553540000}","Icon",0x00000000,"-20"
HKLM,"SYSTEM\CurrentControlSet\Control\Class\{36FC9E60-C465-11CF-8056-444553540000}","NoInstallClass",0x00000000,"1"
HKLM,"SYSTEM\CurrentControlSet\Control\Class\{4D36E967-E325-11CE-BFC1-08002BE10318}",,0x00000000,"Disk drives"
HKLM,"SYSTEM\CurrentControlSet\Control\Class\{4D36E967-E325-11CE-BFC1-08002BE10318}","Class",0x00000000,"DiskDrive"
HKLM,"SYSTEM\CurrentControlSet\Control\Class\{4D36E967-E325-11CE-BFC1-08002BE10318}","Icon",0x00000000,"-53"
HKLM,"SYSTEM\CurrentControlSet\Control\Class\{4D36E967-E325-11CE-BFC1-08002BE10318}","Installer32",0x00000000,"storprop.dll,DiskClassInstaller"
HKLM,"SYSTEM\CurrentControlSet\Control\Class\{4D36E967-E325-11CE-BFC1-08002BE10318}","NoInstallClass",0x00000000,"1"
HKLM,"SYSTEM\CurrentControlSet\Control\Class\{4D36E967-E325-11CE-BFC1-08002BE10318}","SilentInstall",0x00000000,"1"
HKLM,"SYSTEM\CurrentControlSet\Control\Class\{4D36E967-E325-11CE-BFC1-08002BE10318}","UpperFilters",0x00010000,"partmgr"
HKLM,"SYSTEM\CurrentControlSet\Control\Class\{4D36E96B-E325-11CE-BFC1-08002BE10318}",,0x00000000,"Keyboard"
HKLM,"SYSTEM\CurrentControlSet\Control\Class\{4D36E96B-E325-11CE-BFC1-08002BE10318}","Class",0x00000000,"Keyboard"
HKLM,"SYSTEM\CurrentControlSet\Control\Class\{4D36E96B-E325-11CE-BFC1-08002BE10318}","Icon",0x00000000,"-3"

View file

@ -20,6 +20,7 @@ HKLM,"SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\USB#COMPOSITE"
HKLM,"SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\USB#CLASS_09"
HKLM,"SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\USB#ROOT_HUB"
HKLM,"SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\USB#ROOT_HUB20"
HKLM,"SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\GenCdRom"
HKLM,"SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\GenDisk"
HKLM,"SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\USB#Class_03"
HKLM,"SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\GENERIC_HID_DEVICE"

View file

@ -99,7 +99,7 @@ c_437.nls = 1,,,,,,,2,,,,1,2
c_1252.nls = 1,,,,,,,2,,,,1,2
cdfs.sys = 1,,,,,,x,4,,,,1,4
cdrom.sys = 1,,,,,,x,4,,,,1,4
class2.sys = 1,,,,,,x,4,,,,1,4
classpnp.sys = 1,,,,,,x,4,,,,1,4
isapnp.sys = 1,,,,,,,4,,,,1,4
kdcom.dll = 1,,,,,,,2,,,,1,2
kdvbox.dll = 1,,,,,,,2,,,,1,2
@ -135,6 +135,7 @@ ntdll.dll = 1,,,,,,,2,,,,1,2
wmilib.sys = 1,,,,,,,4,,,,1,4
ksecdd.sys = 1,,,,,,,4,,,,1,4
mountmgr.sys = 1,,,,,,x,4,,,,1,4
partmgr.sys = 1,,,,,,x,4,,,,1,4
[SourceDisksFiles.x86]
@ -169,7 +170,7 @@ PCI\CC_0C0320 = usbehci
USB\Class_08&SubClass_06&Prot_50 = usbstor
HID_DEVICE_SYSTEM_KEYBOARD = kbdhid,{4D36E96B-E325-11CE-BFC1-08002BE10318}
USB\COMPOSITE = usbccgp
GenDisk = disk
GenDisk = disk,{4D36E967-E325-11CE-BFC1-08002BE10318}
USB\Class_03 = hidusb
GENERIC_HID_DEVICE = hidusb
*PNP0303 = i8042prt,{4D36E96B-E325-11CE-BFC1-08002BE10318}

View file

@ -1,4 +1,4 @@
add_subdirectory(cdrom)
add_subdirectory(class2)
add_subdirectory(disk)
add_subdirectory(cdrom_new)
add_subdirectory(classpnp)
add_subdirectory(disk_new)
add_subdirectory(ramdisk)