Comments (3)
The purpose of DMF_Template.c is two-fold: 1. Provide a template for a new Module. 2. Provide function signatures for the different callbacks.
The Samples solution and projects only contain Client drivers that use DMF. Those drivers use either DMF Library directly, or use the DMF Template Library (and the DMF Library indirectly). The Sample solution does not contain any Modules or Module Libraries. Modules and Module Libraries should go in the DMF Solution.
People what want their own Module Libraries generally will create a sperate DMF Solution that contains just their own private Modules and Module Libraries they write. And separately, they will have Client drivers that link to those Libraries (and DMF Libraries indirectly).
Another option is that they can have a single solution that contains their Module Library as well as their own Client drivers that link to their private Module Libraries.
Here is how DMF looks as distributed:
"DMF Core"
"DMF Library"
"DMF Template Library"
Client can write a new Module Library (DMF Private Library) that links to "DMF Library" in the same way the "DMF Template Library" links to "DMF Library".
The Vendor (you) should not add "DMF Private Library" to DMF Solution because when we update DMF the Client would need to update DMF Solution every time. For this reason it is best for the Vendor to create a separate solution for "DMF Private Library". The Vendor can also add the Vendor's Client drivers to that solution.
Let me know if that is not clear.
from dmf.
Hi Sam,
my point was just that I was wondering whether the Modules.Template
project should be in the Dmf.sln
solution rather than in a separate solution or in the DmfSamples.sln
solution.
The purpose of the various parts is clear to me.
Personally I created a private library in a separate solution together with the client driver, that works well for me.
from dmf.
Hi, Hans,
From our point of view, it is best to have Template in the DMF solution since the Template project shows how to write Modules/Module Libraries that are similar to the other projects. The Samples solution uses the Template project. I think we can clarify this by doing either of two things:
- Renaming "Template" to "Templates and Samples"
- Making another Library that just has "Samples" so we would have "Templates" and "Samples".
I think moving Template to Sample drivers, however, is not a good option.
Let me mull it over with coworkers and get back to you.
Thank you for your suggestion, however.
from dmf.
Related Issues (20)
- Isn't it better to design DMF on C++ code base? HOT 3
- Unexpected behaviour of ScheduledTask module HOT 7
- [UMDF] DMF_VirtualHidMini fails WriteReport requests on descriptors without Report IDs HOT 2
- Latest code generates following linker errors in my project HOT 17
- Do not use Visual Studio 16.10.0 or 16.10.1 or 16.10.2 with DMF due to link regressions HOT 4
- Debugging assertion in DMF\Dmf\Modules.Library\Dmf_ScheduledTask.c HOT 12
- Question Regarding SoundWire bus support HOT 11
- Unused config param in DMF_VirtualHidKeyboard module HOT 4
- How can I disable WPP for the DMF driver ? HOT 5
- Duplicated lines HOT 2
- This repo is missing important files
- EyeGazeIoctl sample fails ApiValidator HOT 2
- Pdo_DevicePropertyTableWrite adds properties to parent device instead of PDO HOT 32
- Building with Windows 11, version 22H2 WDK (10.0.22621.0) supported? HOT 9
- Trying to use Dmf_IoctlHandler with Control Device Object, supported? HOT 15
- fatal error C1510: Cannot load language resource clui.dll HOT 12
- WDF Verifier (Handle Tracking) trips over FILEOJECT de-reference without using the right tag HOT 2
- Dmf_VirtualHidKeyboard work in User-mode? HOT 1
- Why are lib files added to linker manually? HOT 5
- Why is `EnableLookAside` a `ULONG` and not a `BOOLEAN`? HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from dmf.