osr.com
      Home
      Consulting
      Development
      Toolkits
      Seminars
      Publications
      Resources
      About OSR
      Contact OSR
      OSR Online

OSR's
Development Toolkits

  File Systems Development Kit (FSDK)

Even with the materials available now, file systems development for Windows NT/2000/XP/Server 2003 remains a very challenging task. It can be surprisingly challenging.  If you haven't tried it yourself, take our word for it: we've developed several real, commercially-shipping, Windows file systems.

Sure, there are code examples - for some of the interfaces - available now. And the Microsoft IFS kit even has a small amount of documentation.  And that's very helpful.  You might also be able to use one of the books on Windows that are available. Of course, they are already out of date and some of the details are wrong. They aren't "cutting edge." They don't cover NT 4.0, let alone Windows Server 2003.  Finally, Microsoft has told everyone that the file systems interfaces aren't truly stable so they may change from release to release.

Of course, in addition to the technical hurdles, your company probably has marketing and business requirements - get a product to market quicker, with more features, and do it on a smaller budget. Or perhaps you also have a staffing issue; finding file systems experts is challenging enough, but Windows file systems experts are difficult to find and expensive to boot.

The OSR FSDK can help you overcome these obstacles and achieve your goals: hitting that marketing window, keeping your engineering costs under control, and maximizing the functionality your file system provides. How? By providing you with a simple, clean interface in which you can implement your file system functionality without first having to become an expert in Windows file systems.

The way our FSDK reduces your work and the complexity of your task is simple - indeed, it is the core idea behind the Windows Miniport and WDM Mini-Driver models. Someone implements the "common" part of the functionality as a library, and then everyone else builds the portion that makes their product unique by using that library. 

We recognize a good idea when we see it. So for Windows NT/2000/XP/Server 2003 File Systems, this is exactly what OSR has done. We've put years of effort into building a package that handles the common Windows-specific issues. This frees your scarce development team resources so they can then build the part of your product that adds value rather than simply reinventing the "common code." As with WDM Mini-Drivers, you could build an entire driver yourself - but it would take longer to implement, debug, and test (not to mention maintain).

For the FSDK Diagram click here.

Also, since we set out to make the FSDK a true kit, we loaded it with numerous features that you won't find in a typical file system example, such as code to ensure that your implementation is correct. The OSR FSDK tells your development team when they've done something wrong and provides them with information on how to fix it. This is something you can't get from source code examples, documentation, seminars, or books. And if that isn't enough, the entire OSR technical staff is standing behind the FSDK to answer those tough questions - included as part of the FSDK package.

Using the FSDK means that your engineering team members don't need to spend the time to become experts on the esoteric aspects of the cache manager, virtual memory subsystem, and file system interface. In fact, users of the FSDK don't need to know much about Windows file systems development issues at all. The FSDK wrapper handles all the hard stuff, and presents a straight-forward interface that's both documented and supported.  And, because the interface is much like the VFS inteface found on UNIX platforms, porting your file system either from or to a UNIX platform is almost easy.

Of course, if you already have a staff of expert Windows internals and file systems folks you might not need the FSDK. Or perhaps you have the years it will take to build that team. But, to be truthful, even clients who have access to the entire Windows source code base have found the FSDK to be useful, strictly as a way to force structure on their code, save development time, and decrease their time to market. Really!

OSR's FSDK is backed with a full year of support and updates - including automatic maintenance and upgrades.  When a new release of Windows (for example, Windows Server 2003) ships, clients using OSR's FSDK simply upgrade to the next FSDK release.

So, free your developers from spending their time reading file system example code, and trying to figure out just how the examples work and why.  With the FSDK, your development team can be writing useful code for your file system now.  Imagine what they could do w ithout having to concern themselves with whether or not (or how, or why, or when) they might need to call functions like CcUnpinRepinnedBcb( ).  (No, we didn't make that one up.)

 

   
Product Overview

This package provides the essential components needed to develop Windows NT/2000/XP file system drivers, allowing your team to focus on implementing your key technology rather than on figuring out the details of the Windows file systems development process. The FSDK includes everything required to develop either a local (disk-based) or network file system for Windows NT/2000/XP using the Windows DDK and Visual C/C++:

  • A complete distribution kit including all the FSDK libraries necessary to develop your file system.
  • A stable, supported, and fully documented interface between the FSDK and your file system.
  • Fully documented and buildable source code for a sample file system using the FSDK.
  • A four-day custom training/consulting session for your engineering staff covering the essentials of how the FSDK works and how it can be used as the base of your development project.
  • A royalty-free, non-exclusive license to distribute binary images including the FSDK as part of your product.
  • One full year of comprehensive maintenance and support services, including bug fixes and enhancements, as well as access to OSR's world class file systems development staff to ensure the success of your file system development project. Clients may also purchase extended support beyond the first year.

 

   
Product Features

The FSDK provides a complete implementation of the "upper edge" functions required of Windows NT/2000/XP file systems. It then presents a simple I/O based interface to your file system, which allows you to focus on implementing your file system's functionality without worrying about many of the details of interfacing with the operating system. And it does it without sacrificing performance or functionality. The end result? You can deliver a fully-functional Windows system to market quickly.

To accomplish this, the FSDK provide a number of key features for both physical and network file systems:

  • Virtual Memory support, which includes:
    • The ability to execute binary images (which are demand paged by the VM system)
    • The ability to support file mapping via the Win32 API
    • Read-ahead I/O optimizations to minimize unnecessary disk or network traffic (via integration with the existing Cache Manager)
    • Write-behind caching to increase user performance perceptions
    • Complete support of the integration between the file system and VM cache
  • Complete support for mandatory byte range locking
  • Complete support for the Windows security model (optionally implemented by your file system) allowing support of access control lists and auditing
  • Support for Extended Attributes (supported by NTFS and HPFS)
  • The FSDK only requires the Windows DDK, available as part of the Microsoft Software Developer Network subscription, and the Microsoft Visual C/C++ V4.0 (or later) compiler. No additional development kit, of any kind, is needed from Microsoft
  • Support for automatic generation of compatible short file names (8.3 compliant)

For physical file systems the FSDK offers the following services:
  • A sample file system recognizer, allowing your file system driver to be loaded on demand
  • Oplock support, which is essential for optimizing LanManager server performance
  • Directory change notification, used by applications to detect when file system state has changed
  • File system mount and dismount support (for use with removable media, for instance)
  • Forced dismounting support (required for scheduled failover in cluster environments)

For network file systems (redirectors) the FSDK offers the following services:

  • Integration with the UNC provider interface model
  • Handling of the "share" interface used to map network destinations to drive letters

For pseudo file systems (applications which support a file systems interface but do not "fit" in the standard categories):

  • Dynamic creation and deletion of drive letters as required
  • Tight integration - including the ability to work seamlessly with existing services and applications, such as LanManager (CIFS) and Explorer

With the OSR FSDK, your team will be able to be "up and running" - developing file system code - within a matter of days. Because of this, you will be able to get your product to market that much sooner - a key advantage over your competitor who decided to figure it out on their own. Of course, OSR also stands behind the FSDK to facilitate your team's progress. Should they have problems with the kit, tough technical questions, or problems with Windows, the entire team here at OSR will assist you. After all, we want to guarantee the success of your project!

 

   
Quality Assurance and Support

Your investment in the FSDK is sure to be a valuable one. The FSDK is tested exhaustively by OSR prior to its release to ensure it is of the highest quality. Of course, you are protected against both bugs and obsolescence in the FSDK with one full year of maintenance and support from OSR's world-class technical staff. Following that initial year, optional support services are available to protect your investment into the future.

 

   
Availability

The FSDK is available immediately.

 

   
Additional Documentation
  • The FSDK Version 2.0 manual This manual (here, in HTML format) documents the OSR FSDK interface.
  • FSDK vs Microsoft IFS Kit White Paper This MS Word (V6.0) document describes the differences between the OSR FSDK and the Microsoft IFS kit. About 140K -- Download it (right mouse click on link and then "save target as...") or read it online.
  • A Windows NT File System In Two Weeks? MS Word (V6.0) document. Reprinted from The NT Insider, describing how the OSR FSDK has been used successfully in porting non-NT file systems to NT... fast! About 241K.

Contact OSR if you require additional information.

If you're interested in our file systems seminar, please see our seminar information for details.

 


Top of Page
Home | Consulting | Development | Toolkits | Seminars | Publications | Resources | About OSR | Contact Us

©2008 OSR Open Systems Resources, Inc, ALL RIGHTS RESERVED