winapi-kmd-rs
Windows-driver-samples
winapi-kmd-rs | Windows-driver-samples | |
---|---|---|
2 | 12 | |
477 | 6,627 | |
- | 0.9% | |
0.0 | 6.6 | |
over 6 years ago | 8 days ago | |
Rust | C | |
- | Microsoft Public License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
winapi-kmd-rs
-
Driver development using Rust.
also, this https://github.com/pravic/winapi-kmd-rs
-
Rust for Windows Bindings: Generating the Entire Windows API Surface from Metadata
I know but right now the best thing we have in terms of bindings to the native windows kernel APIs is https://github.com/pravic/winapi-kmd-rs which unfortunately never received polishing. I forked it a while back to include the bindings I needed but stopped after scratching my itch. I would love comprehensive bindings for that and got my hopes up when I saw this post.
Windows-driver-samples
-
GOTOphobia Considered Harmful (In C)
The state machine example is definitely a very fitting use of goto, but it reminds me of another thing that seems to have become a rare skill but is very useful: flowcharting. Besides making people comfortable with goto in general, it also helps visualise control flow in ways that a lot of programmers these days don't realise, and it's unfortunate that a lot of courses seem to have omitted its teaching.
Also worth reading is "GOTO Considered Harmful Considered Harmful": https://news.ycombinator.com/item?id=11056434
And here Microsoft provides us with lovely example of such ridiculous nesting.
That's a very memorable example, but ultimately the true cause of that monstrosity is a clearly stupid API design; this is the API for a file picker, the recommended replacement for an existing one that they wanted to deprecate. In the existing one, you fill in a structure and call a single function with a pointer to it. In its replacement, you need to call a dozen methods on an object, and check for "possible" errors on each call, even if probably 99% of them only do things like assign to a field in a now-opaque structure and can never produce an error. Then the example code must've been edited by someone with severe gotophobia. (Not all MS code is like that --- they have plenty of other example code that uses goto, e.g.: https://github.com/microsoft/Windows-driver-samples/blob/mai... )
-
Installing avssamp virtual camera driver in Windows 10
The source code for the sample can be found here. Check this code out to a local folder and use the included visual studio solution to open it up. You should be able to build this code as is; if it's telling you that you need spectre mitigated libraries to build it you can either acquire those via the visual studio installer or go to Project Properties > C++ > Code Generation > Spectre Mitigation and select disabled (I have it enabled so disabling it could cause issues, probably not though).
- how tf do you make a driver???
- Struggling with Windows Kernel data structures
-
Toggling laptop touchscreen with a keyboard shortcut
This project was my first experience working with device drivers, and uses the Windows devcon utility to disable and re-enable a device driver.
-
Audio Programming Question(s)
So a quick look at the Wikipedia site of "Virtual Audio Cables" reveals that it's based in n a custom windows driver. Based on that I would start here
-
Question about Windows Drivers
Given that they're essential and worth about $1.8 million, then, it sounds like the proper solution would be to argue for the budget to engage a developer to write, test and sign a replacement driver. (Especially since the Intel 82930 USB test board is literally used by Microsoft as an archetypal example device in USB driver development documentation.)
-
Has anyone gotten Pulseaudio to work on macOS Catalina for mixing audio into the microphone?
Maybe corresponding Windows API? https://github.com/microsoft/Windows-driver-samples/tree/master/audio/simpleaudiosample and https://docs.microsoft.com/en-us/windows-hardware/drivers/audio/getting-started-with-wdm-audio-drivers.
-
A GPIO Driver in Rust
Well yes. But Linus is right on that one.
I wouldn't say Windows drivers were C++, more like "C with Classes" (and maybe a little bit C++)
Also, Windows drivers are usually much more convoluted than Linux drivers https://github.com/microsoft/Windows-driver-samples
-
Driver development using Rust.
A more practical resource are the various driver samples Microsoft provides: https://github.com/microsoft/Windows-driver-samples
What are some alternatives?
winapi-rs - Rust bindings to Windows API
Weylus - Use your tablet as graphic tablet/touch screen on your computer.
rust-windows-dll - Macro for dynamically loading windows dll functions
rust - Empowering everyone to build reliable and efficient software.
windows-rs - Rust for Windows
deskreen - Deskreen turns any device with a web browser into a secondary screen for your computer. ⭐️ Star to support our work!
Cargo - The Rust package manager
bbqueue - A SPSC, lockless, no_std, thread safe, queue, based on BipBuffers
rust-dyn-call - Do not use. Do not use. Do not use. (Calls a function dynamically)
click - The Click modular router: fast modular packet processing and analysis
spdlog - Fast C++ logging library.
arraystring - Fixed capacity stack based generic string that works on stable