init
This commit is contained in:
@@ -0,0 +1,50 @@
|
||||
---
|
||||
source_files:
|
||||
- DataPRO/DataPRO Installer/Source Files/Driver/DPInstallWrapper2/DPInstallWrapper2.cs
|
||||
generated_at: "2026-04-17T16:45:59.910732+00:00"
|
||||
model: "zai-org/GLM-5-FP8"
|
||||
schema_version: 1
|
||||
sha256: "6d03d299d83277d2"
|
||||
---
|
||||
|
||||
# DPInstallWrapper2 Documentation
|
||||
|
||||
## 1. Purpose
|
||||
|
||||
This module serves as a shim wrapper for executing driver installer executables (specifically `dpinst.exe`) within the DataPRO installation process. Its primary purpose is to work around a known quirk where the wrapped executable returns non-zero exit codes even on successful installations. By always returning `0` to the calling installer, it prevents false failure conditions from propagating up the installation chain.
|
||||
|
||||
## 2. Public Interface
|
||||
|
||||
### `DPInstallWrapper2.Main`
|
||||
|
||||
**Signature:**
|
||||
```csharp
|
||||
static int Main(string[] args)
|
||||
```
|
||||
|
||||
**Behavior:**
|
||||
- Entry point for the wrapper executable.
|
||||
- Expects `args[0]` to be the path to the executable to run.
|
||||
- Passes exactly three arguments (`args[1]`, `args[2]`, `args[3]`) to the spawned process.
|
||||
- Automatically quotes any argument containing a space character by wrapping it in double quotes.
|
||||
- Launches the target process synchronously, waits for completion, and always returns `0` regardless of the child process's actual exit code.
|
||||
|
||||
## 3. Invariants
|
||||
|
||||
- **Argument count requirement:** The caller must supply at least 4 arguments. If fewer than 4 arguments are provided, the code will throw an `IndexOutOfRangeException` when accessing `lArgs[1]`, `lArgs[2]`, or `lArgs[3]`.
|
||||
- **Fixed argument passing:** Exactly three arguments are forwarded to the child process. Any additional arguments beyond `args[3]` are silently ignored.
|
||||
- **Return value:** The method always returns `0` (success), regardless of the wrapped process's actual exit code.
|
||||
|
||||
## 4. Dependencies
|
||||
|
||||
**This module depends on:**
|
||||
- `System.Collections.Generic` — for `List<string>` used to manipulate arguments
|
||||
- `System.Diagnostics` — for the `Process` class used to spawn and manage the child process
|
||||
|
||||
**Dependents:** Not determinable from source alone; this is a standalone executable invoked by the DataPRO installer infrastructure.
|
||||
|
||||
## 5. Gotchas
|
||||
|
||||
1. **Exit code is discarded:** The wrapper captures `proc.ExitCode` into a local variable `exitCode` but never uses it. All failures of the child process are masked and reported as success. This could hide genuine installation failures.
|
||||
|
||||
2. **Off-by-one in quoting logic:** The loop iterates from `i = 1` to `i < args.Length`, but `lArgs[0]` (the executable path) is never quoted. This may be intentional since `FileName` property typically doesn't require quoting
|
||||
@@ -0,0 +1,48 @@
|
||||
---
|
||||
source_files:
|
||||
- DataPRO/DataPRO Installer/Source Files/Driver/DPInstallWrapper2/Properties/AssemblyInfo.cs
|
||||
generated_at: "2026-04-17T16:13:55.382246+00:00"
|
||||
model: "zai-org/GLM-5-FP8"
|
||||
schema_version: 1
|
||||
sha256: "1f8a3e54b48f4f09"
|
||||
---
|
||||
|
||||
# Properties
|
||||
|
||||
### Purpose
|
||||
This module contains assembly metadata for the `DPInstallWrapper2` assembly, which appears to be a driver installer wrapper component within the DataPRO installation system. The file configures assembly identity, version information, and COM visibility settings using standard .NET assembly attributes. It exists to provide build-time metadata for the compiled assembly.
|
||||
|
||||
### Public Interface
|
||||
No public functions, classes, or methods are defined in this module. This file contains only assembly-level attribute declarations:
|
||||
|
||||
- `AssemblyTitle("DPInstallWrapper2")` - Sets the assembly title
|
||||
- `AssemblyDescription("")` - Empty description
|
||||
- `AssemblyConfiguration("")` - Empty configuration
|
||||
- `AssemblyCompany("")` - Empty company name
|
||||
- `AssemblyProduct("DPInstallWrapper2")` - Product name
|
||||
- `AssemblyCopyright("Copyright © 2019")` - Copyright notice
|
||||
- `AssemblyTrademark("")` - Empty trademark
|
||||
- `AssemblyCulture("")` - Neutral culture
|
||||
- `ComVisible(false)` - Types not visible to COM components
|
||||
- `Guid("bb0e5961-d169-4dab-ac55-72e1e71c1ef9")` - COM type library identifier
|
||||
- `AssemblyVersion("1.0.0.0")` - Assembly version
|
||||
- `AssemblyFileVersion("1.0.0.0")` - File version
|
||||
|
||||
### Invariants
|
||||
- The GUID `bb0e5961-d169-4dab-ac55-72e1e71c1ef9` uniquely identifies this assembly's COM type library if exposed.
|
||||
- `ComVisible(false)` ensures types are not exposed to COM by default.
|
||||
- Version numbers are fixed at `1.0.0.0` for both assembly and file versions.
|
||||
|
||||
### Dependencies
|
||||
**Imports:**
|
||||
- `System.Reflection`
|
||||
- `System.Runtime.CompilerServices`
|
||||
- `System.Runtime.InteropServices`
|
||||
|
||||
**Consumers:** Unknown from this file alone - would be any project referencing the DPInstallWrapper2 assembly.
|
||||
|
||||
### Gotchas
|
||||
- The `AssemblyDescription`, `AssemblyCompany`, `AssemblyConfiguration`, and `AssemblyTrademark` attributes are all empty strings, which may indicate incomplete metadata configuration.
|
||||
- The copyright year (2019) differs from other modules in the system, suggesting this component was created or updated later in the project lifecycle.
|
||||
|
||||
---
|
||||
Reference in New Issue
Block a user