Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement save APIs and provide an mdmerge tool that composes an image from deltas and writes it to disk instead of dumping to console. #35

Merged
merged 5 commits into from
Aug 24, 2023

Conversation

jkoritzinsky
Copy link
Collaborator

With these APIs, we can now implement writing an image out to disk or into memory.

The mdmerge tool produces a raw metadata file, not a PE-enveloped file. As a result, mddump (in this repo) is one of the few decent tools that can read it.

The work to fully construct a composite delta image in a PE envelope that can be run requires additional work. For example, including valid RVAs is difficult and requires a more comprehensive implementation and CLI interface, so I deferred on this work as it would likely be as complex if not moreso than the actual metadata saving logic.

Most of the code in mdmerge is a direct copy of mddump.

…e from deltas and writes it to disk instead of dumping to console.
src/inc/dnmd.h Outdated Show resolved Hide resolved
src/dnmd/entry.c Show resolved Hide resolved
src/dnmd/entry.c Show resolved Hide resolved
src/dnmd/entry.c Outdated Show resolved Hide resolved
src/dnmd/entry.c Outdated Show resolved Hide resolved
src/dnmd/entry.c Show resolved Hide resolved
src/dnmd/entry.c Outdated Show resolved Hide resolved
src/dnmd/entry.c Outdated Show resolved Hide resolved
src/dnmd/entry.c Show resolved Hide resolved
src/mdmerge/main.cpp Show resolved Hide resolved
Co-authored-by: Aaron Robinson <[email protected]>
@jkoritzinsky jkoritzinsky merged commit 7ba6399 into AaronRobinsonMSFT:master Aug 24, 2023
@jkoritzinsky jkoritzinsky deleted the save branch November 30, 2023 18:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants