slavaim / wdm-storage-filter Goto Github PK
View Code? Open in Web Editor NEWA WDM Windows driver to issue IO to storage devices with asynchronous multithreaded processing
A WDM Windows driver to issue IO to storage devices with asynchronous multithreaded processing
The license model is a BSD Open Source License. This is a non-viral license, only asking that if you use it, you acknowledge the authors, in this case Slava Imameev. This is a WDM driver that I found on the old hard drive. The driver allows to issue read and write requests to a storage from user mode application bypassing attached file systems. I developed it in 2008 in one day to test some ideas. The interesting feature of the driver is using an asynchronous multithreaded processing to speed up IO processing from a client application. There is no PnP processing in this driver as its goal was to test asynchronous IO processing in multiple threads without attaching to a device objects stack. The main goal of the driver is a demonstration of asynchronous multithreaded IO processing for WDM drivers. The PctDriver folder contains code for the driver. The Test folder contains a test application code. I believe the solution was made in VS 2005, I do not remember the exact VS version I used for the project. The driver should be built by using WDK build environment (e.g. "build -cgwF" command ), the driver has been tested on 32 bit Windows Server 2003. The test application can be build from VS environment. The driver is intended to communicate with the FDO created by the disk class driver( i.e. disk.sys ). The driver uses the name space extending - the name sent to CreateFile is a concatenation of the driver's communication object and the name of the disk to be opened, e.g. CreateFile( L"\\\\.\\PctCommunicationObject\\Device\\Harddisk0\\DR0", ..... ); The returned handle is used for issuing read and write requests through DeviceIoControl, the number of the simultaneously opened handles is unrestricted ( the upper limit is defined by the OS kernel ). The driver supports asynchronous IO if the FILE_FLAG_OVERLAPPED flag is defined and DeviceIoControl parameters don't convert operation to a synchronous one.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.