diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..803253e --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +.vs/ +Debug/ +Release/ +*.vcxproj.user diff --git a/Ext4Fsd/Ext4Fsd.inf b/Ext4Fsd/Ext4Fsd.inf index 7786ebb..c049d8e 100644 --- a/Ext4Fsd/Ext4Fsd.inf +++ b/Ext4Fsd/Ext4Fsd.inf @@ -1,90 +1,212 @@ +; Ext4Fsd.INF ; -; Ext3Fsd.inf +; Setup information file for the Windows ext2,ext3,ext4 filesystem driver. ; +; Project: http://ext2fsd.sourceforge.net +; Ext2Fsd author: Matt Wu . +; Inf author: Stefan Kanthak +; Updated for Windows 10: Bo Brantén +; +; Copyright (C) 2016, Stefan Kanthak, Matt Wu, Bo Brantén. [Version] -Signature="$WINDOWS NT$" -Class=Sample ; TODO: edit Class -ClassGuid={78A1C341-4539-11d3-B88D-00C04FAD5171} ; TODO: edit ClassGuid -Provider=%ManufacturerName% -CatalogFile=Ext3Fsd.cat -DriverVer=; TODO: set DriverVer in stampinf property pages +Class = ExtendedFileSystem +ClassGuid = {19290421-C680-482C-9068-E87D5FE49CA4} +InfVersion = "01.03.00" +Provider = %Ext2Fsd*Author% +Signature = "$Windows NT$" +DriverVer = 03/04/2020,0.70 +CatalogFile = Ext4Fsd.cat -[DestinationDirs] -DefaultDestDir = 12 +;[ClassInstall32] +;AddReg = Ext2Fsd.Install.ClassReg -; ================= Class section ===================== +;[Ext2Fsd.Install.ClassReg] +;HKR,,,%REG_SZ%,"%Ext2Fsd*Class%" +;HKR,,"Icon",%REG_SZ%,"-5" -[ClassInstall32] -Addreg=SampleClassReg +[DefaultInstall.NTx86] +AddReg = Ext2Fsd.Install.AddReg +CopyFiles = Ext2Fsd.CopyFiles.Drv.NTx86 +CopyINF = "Ext4Fsd.inf" -[SampleClassReg] -HKR,,,0,%ClassName% -HKR,,Icon,,-5 +[DefaultInstall.NTamd64] +AddReg = Ext2Fsd.Install.AddReg +CopyFiles = Ext2Fsd.CopyFiles.Drv.NTamd64 +CopyINF = "Ext4Fsd.inf" + +[DefaultInstall.NTarm] +AddReg = Ext2Fsd.Install.AddReg +CopyFiles = Ext2Fsd.CopyFiles.Drv.NTarm +CopyINF = "Ext4Fsd.inf" + +[DefaultInstall.NTarm64] +AddReg = Ext2Fsd.Install.AddReg +CopyFiles = Ext2Fsd.CopyFiles.Drv.NTarm64 +CopyINF = "Ext4Fsd.inf" + +[DefaultInstall.Services] +AddService = "%Ext2Fsd*Key%",%SVCINST_TAGTOFRONT%,Ext2Fsd.Service,Ext2Fsd.EventLog + +[DefaultInstall.NTamd64.Services] +AddService = "%Ext2Fsd*Key%",%SVCINST_TAGTOFRONT%,Ext2Fsd.Service,Ext2Fsd.EventLog + +[DefaultUninstall.NTx86] +LegacyUninstall=1 +DelFiles = Ext2Fsd.DeleteFiles.Drv.NTx86 +DelReg = Ext2Fsd.Remove.DelReg +Reboot + +[DefaultUninstall.NTamd64] +LegacyUninstall=1 +DelFiles = Ext2Fsd.DeleteFiles.Drv.NTamd64 +DelReg = Ext2Fsd.Remove.DelReg +Reboot + +[DefaultUninstall.NTarm] +LegacyUninstall=1 +DelFiles = Ext2Fsd.DeleteFiles.Drv.NTarm +DelReg = Ext2Fsd.Remove.DelReg +Reboot + +[DefaultUninstall.NTarm64] +LegacyUninstall=1 +DelFiles = Ext2Fsd.DeleteFiles.Drv.NTarm64 +DelReg = Ext2Fsd.Remove.DelReg +Reboot + +[DefaultUninstall.NTx86.Services] +DelService = "%Ext2Fsd*Key%",%SVCINST_DELETEEVENTLOGENTRY% + +[DefaultUninstall.NTamd64.Services] +DelService = "%Ext2Fsd*Key%",%SVCINST_DELETEEVENTLOGENTRY% + +[Ext2Fsd.Install.AddReg] +HKR,"Software\Microsoft\Windows\CurrentVersion\Uninstall\%Ext2Fsd*Key%","DisplayName",%REG_SZ%,"%Ext2Fsd*Description%" +HKR,"Software\Microsoft\Windows\CurrentVersion\Uninstall\%Ext2Fsd*Key%","DisplayVersion",%REG_SZ%,"%Ext2Fsd*Version%" +HKR,"Software\Microsoft\Windows\CurrentVersion\Uninstall\%Ext2Fsd*Key%","HelpLink",%REG_SZ%,"%Ext2Fsd*URL%" +HKR,"Software\Microsoft\Windows\CurrentVersion\Uninstall\%Ext2Fsd*Key%","InstallLocation",%REG_SZ%,"%%SystemRoot%%\system32\drivers" +HKR,"Software\Microsoft\Windows\CurrentVersion\Uninstall\%Ext2Fsd*Key%","InstallSource",%REG_SZ%,"%01%" +HKR,"Software\Microsoft\Windows\CurrentVersion\Uninstall\%Ext2Fsd*Key%","Publisher",%REG_SZ%,"%Ext2Fsd*Author% <%Ext2Fsd*eMail%>" +HKR,"Software\Microsoft\Windows\CurrentVersion\Uninstall\%Ext2Fsd*Key%","UninstallString",%REG_SZ%,"%%SystemRoot%%\system32\RunDll32.exe %%SystemRoot%%\system32\SetupAPI.Dll,InstallHinfSection DefaultUninstall 4 %%SystemRoot%%\inf\Ext2Fsd.Inf" +HKR,"Software\Microsoft\Windows\CurrentVersion\Uninstall\%Ext2Fsd*Key%","URLInfoAbout",%REG_SZ%,"%Ext2Fsd*URL%" + +[Ext2Fsd.Remove.DelReg] +HKR,"Software\Microsoft\Windows\CurrentVersion\Uninstall\%Ext2Fsd*Key%" +HKR,"System\CurrentControlSet\Services\%Ext2Fsd*Key%\Parameters" + +[Ext2Fsd.Service] +DisplayName = "%Ext2Fsd*Driver%" +ServiceType = %SERVICE_KERNEL_FILESYSTEM_DRIVER% +StartType = %SERVICE_SYSTEM_START% +ErrorControl = %SERVICE_ERROR_NORMAL% +ServiceBinary = "%12%\Ext2Fsd.sys" +AddReg = Ext2Fsd.Service.Reg + +[Ext2Fsd.Service.Reg] +HKR,"Parameters","AutoMount",%REG_DWORD%,0x00000001 +HKR,"Parameters","CheckingBitmap",%REG_DWORD%,0x00000000 +HKR,"Parameters","Ext3ForceWriting",%REG_DWORD%,0x00000001 +HKR,"Parameters","WritingSupport",%REG_DWORD%,0x00000001 +HKR,"Parameters","CodePage",%REG_SZ%,"utf8" + +[Ext2Fsd.EventLog] +AddReg = Ext2Fsd.EventLog.Reg + +[Ext2Fsd.EventLog.Reg] +HKR,,"EventMessageFile",%REG_EXPAND_SZ%,"%%SystemRoot%%\System32\IoLogMsg.Dll" +HKR,,"TypesSupported",%REG_DWORD%,7 [SourceDisksNames] -1 = %DiskName%,,,"" +; Cabinet file names and associated disks +; = ,[],,[] +1 = "%Ext2Fsd*Description%",,0000-0000 [SourceDisksFiles] -Ext3Fsd.sys = 1,, - -;***************************************** -; Install Section -;***************************************** - -[Manufacturer] -%ManufacturerName%=Standard,NT$ARCH$ - -[Standard.NT$ARCH$] -%Ext3Fsd.DeviceDesc%=Ext3Fsd_Device, Root\Ext3Fsd ; TODO: edit hw-id - -[Ext3Fsd_Device.NT] -CopyFiles=Drivers_Dir - -[Drivers_Dir] -Ext3Fsd.sys - -;-------------- Service installation -[Ext3Fsd_Device.NT.Services] -AddService = Ext3Fsd,%SPSVCINST_ASSOCSERVICE%, Ext3Fsd_Service_Inst - -; -------------- Ext3Fsd driver install sections -[Ext3Fsd_Service_Inst] -DisplayName = %Ext3Fsd.SVCDESC% -ServiceType = 1 ; SERVICE_KERNEL_DRIVER -StartType = 3 ; SERVICE_DEMAND_START -ErrorControl = 1 ; SERVICE_ERROR_NORMAL -ServiceBinary = %12%\Ext3Fsd.sys - -; -;--- Ext3Fsd_Device Coinstaller installation ------ -; +; = ,[],[],[],[] +; Note: is neither on a disk nor in a cabinet if is 0 +Ext4Fsd.sys = 1, "." [DestinationDirs] -Ext3Fsd_Device_CoInstaller_CopyFiles = 11 +Ext2Fsd.CopyFiles.Drv.NTx86 = 12 ; %SystemRoot%\System32\Drivers +Ext2Fsd.DeleteFiles.Drv.NTx86 = 12 ; %SystemRoot%\System32\Drivers +Ext2Fsd.CopyFiles.Drv.NTamd64 = 12 ; %SystemRoot%\System32\Drivers +Ext2Fsd.DeleteFiles.Drv.NTamd64 = 12 ; %SystemRoot%\System32\Drivers +Ext2Fsd.CopyFiles.Drv.NTarm = 12 ; %SystemRoot%\System32\Drivers +Ext2Fsd.DeleteFiles.Drv.NTarm = 12 ; %SystemRoot%\System32\Drivers +Ext2Fsd.CopyFiles.Drv.NTarm64 = 12 ; %SystemRoot%\System32\Drivers +Ext2Fsd.DeleteFiles.Drv.NTarm64 = 12 ; %SystemRoot%\System32\Drivers -[Ext3Fsd_Device.NT.CoInstallers] -AddReg=Ext3Fsd_Device_CoInstaller_AddReg -CopyFiles=Ext3Fsd_Device_CoInstaller_CopyFiles +[Ext2Fsd.CopyFiles.Drv.NTx86] +Ext4Fsd.sys,,,%COPYFLG_NOPRUNE% -[Ext3Fsd_Device_CoInstaller_AddReg] -HKR,,CoInstallers32,0x00010000, "WdfCoInstaller$KMDFCOINSTALLERVERSION$.dll,WdfCoInstaller" +[Ext2Fsd.DeleteFiles.Drv.NTx86] +Ext4Fsd.sys,,,%DELFLG_IN_USE% -[Ext3Fsd_Device_CoInstaller_CopyFiles] -WdfCoInstaller$KMDFCOINSTALLERVERSION$.dll +[Ext2Fsd.CopyFiles.Drv.NTamd64] +Ext4Fsd.sys,,,%COPYFLG_NOPRUNE% -[SourceDisksFiles] -WdfCoInstaller$KMDFCOINSTALLERVERSION$.dll=1 ; make sure the number matches with SourceDisksNames +[Ext2Fsd.DeleteFiles.Drv.NTamd64] +Ext4Fsd.sys,,,%DELFLG_IN_USE% -[Ext3Fsd_Device.NT.Wdf] -KmdfService = Ext3Fsd, Ext3Fsd_wdfsect -[Ext3Fsd_wdfsect] -KmdfLibraryVersion = $KMDFVERSION$ +[Ext2Fsd.CopyFiles.Drv.NTarm] +Ext4Fsd.sys,,,%COPYFLG_NOPRUNE% + +[Ext2Fsd.DeleteFiles.Drv.NTarm] +Ext4Fsd.sys,,,%DELFLG_IN_USE% + +[Ext2Fsd.CopyFiles.Drv.NTarm64] +Ext4Fsd.sys,,,%COPYFLG_NOPRUNE% + +[Ext2Fsd.DeleteFiles.Drv.NTarm64] +Ext4Fsd.sys,,,%DELFLG_IN_USE% [Strings] -SPSVCINST_ASSOCSERVICE= 0x00000002 -ManufacturerName="" ;TODO: Replace with your manufacturer name -ClassName="Samples" ; TODO: edit ClassName -DiskName = "Ext3Fsd Installation Disk" -Ext3Fsd.DeviceDesc = "Ext3Fsd Device" -Ext3Fsd.SVCDESC = "Ext3Fsd Service" +Ext2Fsd*Author = "Matt Wu" +Ext2Fsd*Class = "File System" +Ext2Fsd*Description = "Ext2,Ext3,Ext4 file system driver" +Ext2Fsd*Driver = "Ext2,Ext3,Ext4 file system driver" +Ext2Fsd*eMail = "matt@ext2fsd.com" +Ext2Fsd*Key = "Ext2Fsd" +Ext2Fsd*URL = "http://www.ext2fsd.com" +Ext2Fsd*Version = "0.70" + +; Non-Localizable Strings +DELFLG_IN_USE = 0x00000001 +COPYFLG_NOPRUNE = 0x00002000 + +; Registry Data Types +REG_SZ = 0x00000000 +REG_BINARY = 0x00000001 +REG_SZ_NOCLOBBER = 0x00000002 +REG_BINARY_NOCLOBBER = 0x00000003 +REG_MULTI_SZ = 0x00010000 +REG_DWORD = 0x00010001 +REG_MULTI_SZ_NOCLOBBER = 0x00010002 +REG_DWORD_NOCLOBBER = 0x00010003 +REG_EXPAND_SZ = 0x00020000 +REG_EXPAND_SZ_NOCLOBBER = 0x00020002 + +; Driver and Service Types +SERVICE_KERNEL_DRIVER = 0x00000001 +SERVICE_KERNEL_FILESYSTEM_DRIVER = 0x00000002 +SERVICE_NETWORK_ADAPTER_DRIVER = 0x00000004 +SERVICE_WIN32_OWN_PROCESS = 0x00000010 +SERVICE_WIN32_SHARED_PROCESS = 0x00000020 + +; Driver and Service Start Types +SERVICE_BOOT_START = 0 +SERVICE_SYSTEM_START = 1 +SERVICE_AUTO_START = 2 +SERVICE_MANUAL_START = 3 +SERVICE_NEVER_START = 4 ; (deactivated) + +; Driver and Service Error Control +SERVICE_ERROR_IGNORE = 0 +SERVICE_ERROR_NORMAL = 1 +SERVICE_ERROR_SEVERE = 2 +SERVICE_ERROR_CRITICAL = 3 + +SVCINST_TAGTOFRONT = 0x00000001 +SVCINST_ASSOCSERVICE = 0x00000002 +SVCINST_DELETEEVENTLOGENTRY = 0x00000004 diff --git a/Ext4Fsd/Ext4Fsd.vcxproj b/Ext4Fsd/Ext4Fsd.vcxproj index 99af665..e692bfe 100644 --- a/Ext4Fsd/Ext4Fsd.vcxproj +++ b/Ext4Fsd/Ext4Fsd.vcxproj @@ -83,6 +83,7 @@ WindowsKernelModeDriver10.0 Driver WDM + 1 Windows10 @@ -90,6 +91,7 @@ WindowsKernelModeDriver10.0 Driver WDM + 1 Windows10 @@ -97,6 +99,7 @@ WindowsKernelModeDriver10.0 Driver WDM + 1 Windows10 @@ -104,6 +107,7 @@ WindowsKernelModeDriver10.0 Driver WDM + 1 @@ -139,15 +143,27 @@ DbgengKernelDebugger + $(SolutionDir)Ext4Fsd\$(ConfigurationName)\arm\ + $(ConfigurationName)\arm\ + Ext4Fsd DbgengKernelDebugger + $(SolutionDir)Ext4Fsd\$(ConfigurationName)\arm\ + $(ConfigurationName)\arm\ + Ext4Fsd DbgengKernelDebugger + $(SolutionDir)Ext4Fsd\$(ConfigurationName)\arm64\ + $(ConfigurationName)\arm64\ + Ext4Fsd DbgengKernelDebugger + $(SolutionDir)Ext4Fsd\$(ConfigurationName)\arm64\ + $(ConfigurationName)\arm64\ + Ext4Fsd @@ -187,6 +203,44 @@ 4995;%(DisableSpecificWarnings) + + + .\include;.\include\linux;.\include\asm;%(AdditionalIncludeDirectories) + Level3 + __KERNEL__;%(PreprocessorDefinitions) + 4995;%(DisableSpecificWarnings) + + + %(AdditionalDependencies) + + + + + .\include;.\include\linux;.\include\asm;%(AdditionalIncludeDirectories) + Level3 + __KERNEL__;%(PreprocessorDefinitions) + 4995;%(DisableSpecificWarnings) + + + %(AdditionalDependencies) + + + + + .\include;.\include\linux;.\include\asm;%(AdditionalIncludeDirectories) + Level3 + __KERNEL__;%(PreprocessorDefinitions) + 4995;%(DisableSpecificWarnings) + + + + + .\include;.\include\linux;.\include\asm;%(AdditionalIncludeDirectories) + Level3 + __KERNEL__;%(PreprocessorDefinitions) + 4995;%(DisableSpecificWarnings) + +