Windows driver examples
Windows driver examples with free source code related to file systems, virtual disks and network communication from kernel mode. Published by Bo Brantén.
Please send comments, suggestions and corrections to
bosse@acc.umu.se.
Mirror sites
http://www.acc.umu.se/~bosse/
http://branten.se/nt/
News
För lokala besökare: Vädret i Vagled på Frösön
Ntifs.h-56 Updated so you can compile Matt Wu's ext2fsd with it.
SwapFs-2.1 Works with swap partitions bigger than 4GB, works on 64-bit systems.
FileDisk-15 Support for DVD images with the UDF file system, works on 64-bit systems.
FileDisk-15-signed Signed by Matt Wu so that it can be loaded on 64-bit versions of Windows without pressing F8 at boot and select "Disable driver signing".
HttpDisk-5 Support for DVD images with the UDF file system, support for persistent connections to improve performance.
I have updated the unmaintained ReiserFs file system driver for Windows so that it works on Windows XP SP3, Windows Vista 32-bit and Windows Vista 64-bit. New release 0.25.1 with dir bug fixed. New release 0.25.2 with both read bugs fixed.
If you are interested in network communication from kernel mode on
Windows, so called TDI clients, you may want to read my report
High performance kernel mode web server for Windows.
Ntifs.h
Release 56 (2008-07-31)
I maintain a free version of the file ntifs.h. It is a
collection of information of interrest to people building file system and file
system filter drivers for Windows NT, Windows 2000 and Windows XP. The
information has been found in books, magazines, on the Internet and received
from contributors.
ntifs.h
ntifs.zip
ntifs.html
RomFs
Release 15 (2009-04-19)
I want to provide an example file system driver for Windows NT/2000/XP. For some
time I have worked on an implementation of RomFs. RomFs is a small filesystem
originally implemented in Linux, because of its simple disk layout its a good
choice for an example driver. The current status is a working read-only driver
that supports caching of file data, the create functionallity still needs some
work but I'm releasing it due to the high public demand.
Release notes
romfs-15.zip
Here is a romfs floppy image that you can write to a
floppy using RaWriteNT to test the driver.
Screenshot showing the debug prints from the driver
when executing the command 'type a:\hello.c' on the floppy image above.
Links to other file system drivers for Windows with free source code
Ext2Fsd by Matt Wu is an
ext2 file system driver for Windows NT/2000/XP.
FSDEXT2 by Peter van Sebille is
an ext2fs driver for Windows 95/98.
EXT2IFS by John
Newbigin is an ext2fs driver for Windows NT.
Ext2 File System Driver
for Windows NT 4.0 by Manoj Paul Joseph.
Win2fs by Satish kumar Janarthanan is an Ext2 file system driver for the Microsoft Windows 2000 family of operating systems.
The arla project by
Stacken at KTH is a free AFS implementation for many platforms including
Windows.
OpenAFS is a free and portable AFS implementation. It contains an native network redirector for Windows that is in beta stage in the repository branch openafs-windows-kdfs-ifs-branch.
Creating User-Mode Device
Drivers with a Proxy by Galen C. Hunt.
FIFS A Fremework for Implementing
User-Mode File Systems in Windows NT by Danilo Almeida.
FFS File System Driver for
Windows by Lee Jae-Hong allows you to get a read access to FreeBSD, NetBSD
and OpenBSD FFS partitions.
ReiserDriver is an Installable
File System Driver (IFSD) that allows ReiserFS partitions to be accessed
under Windows. This driver has been updated by me to correct a few bugs and support newer versions of Windows.
Dokan is a user mode file system for windows.
RomFsRec
Release 2 (2009-04-19)
RomFsRec is a Windows NT file system recognizer for
RomFs. A file system recognizer is a small driver that loads the real file
system driver when it recognizes a file system it can handle on a disk partition
or removable media.
SwapFs
Release 2.1 (2008-08-02)
SwapFs is a driver for Windows that let
you use a Linux swap partition for temporary storage, like a RAM-disk. It is
possible to put Windows page file on it. It is implemented as a disk filter
driver.
New in release 2.1 Works with swap partitions bigger than 4GB, works on 64-bit systems.
New in release 2: Works with standby and hibernation on Windows
2000/XP.
SwapFs Release 2.1 for Windows 2000/XP/Vista
SwapFs Release 1 for Windows NT 4.0
FileDisk
Release 15 (2009-04-12)
FileDisk is a virtual disk driver for Windows
NT/2000/XP that uses one or more files to emulate physical disks. A console
application is included that let you dynamically mount and unmount files. An
example of use for this driver is if you have made plans spending the weekend
writing an RAID driver for NT but find you are short of disks. FileDisk can
also use CD/DVD images.
Latest news: Support for DVD images with the UDF file system, works on 64-bit systems.
Screenshot of an example of use.
FileDisk will use sparse files as disk images if the underlying file system supports it. A sparse file is a file were
suficiently large blocks of zeros isn't allocated disk space.
To see how much disk space a file actually uses right click on the file and
choose properties. If you for example create a sparse file of 4GB, mounts
it in FileDisk and formats it to NTFS, it will only take up 24MB on disk but
look like a normal disk of 4GB. When you copy files to it the used disk
space will automatically increase.
FileDisk with support for .bin CD-ROM images.
HttpDisk
Release 5 (2009-04-12)
HttpDisk is a virtual disk driver for Windows that uses HTTP to mount disk or CD/DVD images from a web server. It is also a demonstration on how to do network communication from kernel mode on Windows using the TDI interface.
Latest news: Support for DVD images with the UDF file system, support for persistent connections to improve
performance.
I have put a small CD image here to make it easy for you to try HttpDisk,
use the following command:
httpdisk /mount 0 http://www.acc.umu.se/~bosse/fdbootcd.iso /cd f:
...
httpdisk /umount f:
Other links
Tools and utilities for Windows by Olof Lagerkvist.