Proposed spec for GetProcessInfo3 IPC command #3476
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
As discussed in dotnet/runtime#74476, we need to add more information to the GetProcessInfo2 IPC command. Rather than introducing another rigid contract, we should have a key/value system that allows us to return more data in the future without a new command.
The IPC protocol is very limited and only understands native types. Although we have first class support for arrays of types and serializing nested objects in the EventPipe format, we do not have that here. To keep things as simple as possible this IPC command will return keys and values as strings, this will lead to some parsing on the client side but the performance impact is worth the trade off for ease of implementation.