Ticket #284 (closed task: fixed)
Eraser.Util rewrite
| Reported by: | Joel | Owned by: | Joel |
|---|---|---|---|
| Priority: | major | Milestone: | Eraser 6.1/6.2 |
| Component: | Core | Version: | |
| Keywords: | Cc: | ||
| Processor Architecture: | Blocked By: | #90, #272, #316, #317 | |
| Blocking: | #275 | Operating System: |
Description (last modified by Joel) (diff)
Other tasks:
- Extract the functions in the following files to discrete classes:
- Place functions in the SafeNativeMethods? class for those which are "safe"
Blocking
| Id | Summary | Milestone |
|---|---|---|
| #284 | └ Eraser.Util rewrite | Eraser 6.1/6.2 |
| #275 | └ Code Review | Eraser 6.1/6.2 |
| #262 | └ Localise the Util.Native and Util libraries | Eraser 6.1/6.2 |
Blocked by
| Id | Summary | Milestone |
|---|---|---|
| #284 | └ Eraser.Util rewrite | Eraser 6.1/6.2 |
| #272 | └ Remove IsFat12 from Fat12Or16Api | Eraser 6.1/6.2 |
| #90 | └ Generic speed meter | Eraser 6.1/6.2 |
| #316 | └ Eraser causes lag when running | Eraser 6.0.7 |
| #317 | └ Merge the BlackBox branch | Eraser 6.1/6.2 |
Change History
comment:3 Changed 3 years ago by Joel
And also group all the source files to folders, currently:
APIs
BlackBox?
FileSystem?
Unlocker
Each could have their own namespace (if large enough.)
comment:6 Changed 3 years ago by Joel
- Description modified (diff)
- Blocked By 90 added
- Summary changed from Combine all three Eraser Util assemblies to one to Eraser.Util rewrite
comment:9 Changed 3 years ago by Joel
- Description modified (diff)
AllocHGlobal in the VolumeInfo? constructor has been removed and replaced with a StringBuilder? instance in r1530
comment:10 Changed 3 years ago by Joel
- Description modified (diff)
It's just NOT possible to combine the native code to C# - the entire process becomes unstable especially with native threads needing termination when calling NtQueryObject)
comment:11 Changed 3 years ago by Joel
- Description modified (diff)
The assemblies have been pretty much combined since r1549.
comment:15 Changed 3 years ago by Joel
- Description modified (diff)
Source files are now neatly grouped into folders.
comment:17 Changed 3 years ago by Joel
- Description modified (diff)
Eraser.Util now adopts standard naming conventions.
- Extension methods are in the Eraser.Util.ExtensionMethods namespace and in the ExtensionMethods folder
- The extension methods are stored in files describing their function
- API names (from their import DLLs) are moved to the NativeMethods folder and all imports are placed in the NativeMethods class.
- Imports are grouped according to import DLL and the file name is the name of the import DLL (dropping the 32, if present)
- Eraser.Util classes now adopt the purpose of the class over the name of the import library
- UXThemeApi => Theming (r1558)
- WinTrustApi, AdvApi, !MsCorEEApi => Security (r1552)
- KernelApi (SetThreadExecutionState) => Power (r1562)
- KernelApi (KernelApi.!GetHRForWin32Error and !GetExceptionForWin32Error) => Win32ErrorCode (r1566)
- KernelApi (KernelApi.AllocConsole/KernelApi.FreeConsole) => ConsoleWindow? (also wraps the AllocConsole/FreeConsole functions) (r1567)
- Rest of KernelApi => SystemInfo
- ShellApi => RecycleBin (that was all that was left! r1563)
- SystemRestoreApi => SystemRestore (r1565)
comment:18 Changed 3 years ago by Joel
- Description modified (diff)
ProgressManager brought over in r1572
comment:20 Changed 3 years ago by Joel
- Description modified (diff)
Win32 error => Exception handling improved in r1576
comment:28 Changed 3 years ago by Joel
- Status changed from accepted to closed
- Resolution set to fixed
I'll mark this closed and lump it with the Code Review task.

Simultaneously, standardise the naming for the functions in Eraser.Util.