PROCESS_INFORMATION in CreateProcess should use SafeHandle
Open
Nobody has claimed this yet.
bug
- Dominant language
- C#
- Stars
- 2.5k
- Forks
- 124
- Avg merge
- 1d 3h
- Merged PRs (30d)
- 9
Description
Actual behavior
The last argument of CreateProcess is an out PROCESS_INFORMATION with raw handles
struct PROCESS_INFORMATION
{
internal winmdroot.Foundation.HANDLE hProcess;
internal winmdroot.Foundation.HANDLE hThread;
internal uint dwProcessId;
internal uint dwThreadId;
}
Expected behavior
The promise of CsWin32 is to expose
struct PROCESS_INFORMATION
{
internal SafeHandle hProcess;
internal SafeHandle hThread;
internal uint dwProcessId;
internal uint dwThreadId;
}
Repro steps
NativeMethods.txtcontent:
CreateProcess
Context
- CsWin32 version:
0.2.162-beta - Target Framework:
netframework48
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the NativeMethods.txt repro containing CreateProcess and inspect the generated PROCESS_INFORMATION declaration. Compare its hProcess and hThread types with the expected SafeHandle-based declaration; done means the generated output exposes both handles as SafeHandle while retaining the process and thread IDs.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp
- Domain
- devtools, operating-systems
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100