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

Add DLL Loader Layer to Support Backward Compatibility #398

Open
9 of 11 tasks
planetchili opened this issue Jan 29, 2025 · 0 comments
Open
9 of 11 tasks

Add DLL Loader Layer to Support Backward Compatibility #398

planetchili opened this issue Jan 29, 2025 · 0 comments
Assignees
Milestone

Comments

@planetchili
Copy link
Collaborator

planetchili commented Jan 29, 2025

By shipping the middleware DLL with the service instead of the client, we ensure that middleware-service compatibility is always guaranteed. Middleware-client compatibility is already guaranteed via C-API contract (this will be hardened/made absolute).

This change requires that clients locate the DLL at runtime and load it dynamically. To facilitate this process, we add a thin Loader Layer DLL that clients can link to with a convenient import .lib, which will transparently locate the middleware, load it, resolve all the function addresses, and forward the API calls.

  • POC of loader layer DLL
  • Ability to resolve mangled C++ endpoints for internal usage
  • Update installer to ship middleware with service, provide loader in SDK
  • Implement error checking with new PM_STATUS codes for DLL issues
  • add version check mechanism in C-API, loader checks during loading
  • Make loading process thread-safe
  • Review and implement DLL Main hooks as necessary
  • Clean out unused classes / projects (MockMiddleware etc.)
  • Repair and prune API2 tests
  • Cleanup organization of loader and solution project dependencies
  • Update documentation
@planetchili planetchili changed the title Add DLL Loader Layer to Support Backwards Compatibility Add DLL Loader Layer to Support Backward Compatibility Jan 29, 2025
@planetchili planetchili self-assigned this Jan 29, 2025
@markgalvan-intel markgalvan-intel modified the milestones: 2.2, v2.3.1 Jan 31, 2025
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

No branches or pull requests

2 participants