Microsoft provides WDM-based kernel-mode drivers to support still image devices connected to SCSI and USB buses. Both drivers support Plug and Play devices and provide services for adding, removing, starting, stopping, and creating registry entries for Plug and Play devices. Additionally, both drivers provide suspend and resume operations for devices that support power management.
User-mode still image minidrivers can access these kernel-mode drivers by calling CreateFile, ReadFile, WriteFile, and DeviceIoControl (described in the Microsoft Windows SDK documentation). ReadFile and WriteFile are used for block data transfers. Specifically, ReadFile is called to obtain image data, and WriteFile is used for sending commands to devices that accept commands as data streams.
Before calling ReadFile, Writefile or DeviceIoControl, the minidriver must call IStiDeviceControl::GetMyDevicePortName to obtain the device's port name and then use that port name as a parameter to CreateFile.