Miniport Code
  Home

 

  Bus Hound

 

Miniport Code

 

  Engineer Docs

 

  Contact us

 

  About us

 

   
Are you developing a miniport device driver for IDE, SATA, SCSI, Fibre Channel, or virtual hardware?
 

We offer precision source code to 3 device driver samples to jump start your development putting you close to the finish line right from the start.

Each sample is a self contained, fully functional device driver that needs no hardware backend to run and thus can be installed on any system. Each sample creates a virtual disk drive that is assigned a driver letter and works exactly like a real disk drive. Each sample supports plug and play, dynamic load/unload, 32-bit and 64-bit Windows, and can be easily installed programmatically or through the Windows Add Hardware wizard. Each sample is a precision tuned minimal set of clean, compliant, and well structured code.
 

  MiniFile MiniRam StorRam
Designed for: virtual devices hardware adapters hardware adapters
Driver Type: SCSI miniport SCSI miniport storport miniport
Example Device: file as a virtual disk ramdisk ramdisk
Operating Systems Supported: Windows 2000, XP, 2003, Vista, 2008 Windows 2000, XP, 2003, Vista, 2008 Windows 2003, Vista, 2008
Key Features: Perfect for virtual CD drives, software RAID, or devices with a network backend.

Your device code runs at PASSIVE_LEVEL making it ideal to call any WDK functions.

Requests can be completed with high performance outside of scsiport context.

Provisions for overlapped request queuing and fast, asynchronous backends.

Kernel level code to read, and write a disk file using asynchronous file i/o.

Does not claim any hardware resources.

Ideal choice for adapters on legacy buses such as PCMCIA or adapters without scatter gather.

The easiest way to cover the important Windows versions with a single source.

The "hello world" of SCSI miniports; a simple skeleton ready to be filled in with your code.

The new Microsoft architecture for achieving the highest possible performance.

Scatter/gather implementation.

Test storport functionality without needing the hardware.

Guides you past errors in the documentation and Windows drivers so you don't have to learn about them the hard way. For instance, the kb883646 hot fix introduces a new bug.

The "hello world" of storport miniports; a simple skeleton ready to be filled in with your code.

Try it: Download Download must buy the source due to innovations visible in the inf file
Price (USD): $6000 $3000 $3000
 

FAQ:

Which sample is right for me?

Just answer a few simple questions in our Miniport Selector Guide to find out which sample and why.

How long does it take to get?

The source is delivered electronically. You will be able to download and start using the source code instantly after entering your order. Online ordering is safe and secure by credit card. If you prefer, we accept purchase orders.

What comes with each sample?

You get the carefully articulated and well documented source code which can be built using the Windows WDK, an INF file for installing the driver, a document which covers all you need to know to use the source, and a pre-built ready to run driver.

What does it look like in device manager?

Are there limits on the devices?

You may define any number of adapters, buses, devices and LUNs. The devices can be of any type (eg: scanner, printer, disk drive, optical).

What is the API like?

For MiniRam/StorRam you only need to fill in the blanks in standard entry points that are called by scsiport/storport respectively. The documentation has a walkthrough to help you cover each step.

For MiniFile, your job is very easy. Simply fill in 3 functions and use one callback and your code is done:

// your below functions are called at PASSIVE_LEVEL. You get
// to define context data for each adapter, device, and request

ULONG StartAdapter(ADAPTER_CONTEXT_DATA,
                   PORT_CONFIGURATION_INFORMATION,
                   ARGUMENT_STRING);
void StopAdapter(ADAPTER_CONTEXT_DATA);
void StartCdb(ADAPTER_CONTEXT_DATA,
              DEVICE_CONTEXT_DATA,
              SCSI_REQUEST_BLOCK);

// the below callback is callable at DISPATCH_LEVEL or below
// which is convenient when you are posted by your back end.

void CompleteCdb(ADAPTER_CONTEXT_DATA, SCSI_REQUEST_BLOCK);

You may build the source using the DDK or WDK. Inside the code you may use standard DDK functions or KMDF.

What technical support is provided?

Free support for 90 days and a full refund if an issue is not resolved to your satisfaction.

Are there any royalties or other costs?

No. You are free to modify the source and use it for as many products as you wish in any sales volume. There is also no time limit on how long you can use the source.