Solved

Peforming direct operations on floppy disks using DeviceIoControl() and the DIOC struct.

Posted on 1998-06-17
3
293 Views
Last Modified: 2013-12-03
I am writing a disk copier using MS C++ V. 4 for Windows '95.  There are 5 main tasks which I need to know how to do.  These are...

* Reading a specified track from a floppy disk.
* Writing a specified track to a floppy disk.
* Formating a specified track on a floppy disk.
* Determining whether a floppy disk is in the drive.
* Determining whether a floppy disk in a drive is write-protected or not.

To answer this question, could you please provide me with example C++ source code which will do ALL 5 of the above.

The code MUST be capable of the following...

* Be Windows '95 compatible.  I'm mainly interested in Windows '95, but if you also have any NT code as well, that would be great.

* Must be capable of detecting errors.  e.g. If the program writes to a corrupt track or the disk is write-protected, the code must detect that the operation has failed.

* THIS IS VERY IMPORTANT - The user must have the option of whether or not to allow for verification of operations such as (but not limiting to) disk writes etc.

I assume each of these tasks can be done by opening the system VXD, filling up a DIOC structure, then calling DeviceIoControl().  There is a good example in the MS KB (q163/9/20.asp) and in the C++ docs which explains how to use this technique to query a floppy disk device which I found very useful.  However, it doesn't explain how to do the 5 operations above.  There are no listings of the control codes to use for floppy disk devices or the structs needed (as far as I am aware) - that is why I need your help!  Thanks.
0
Comment
Question by:Richard_Thompson
  • 2
3 Comments
 
LVL 1

Expert Comment

by:TAMC
ID: 1408077
5 questions for 50 points, are you out of your mind.
0
 
LVL 11

Accepted Solution

by:
alexo earned 50 total points
ID: 1408078
There are some examples by Raymon Chen from MS at:
  http://www.dejanews.com/getdoc.xp?AN=207816158
  http://www.dejanews.com/getdoc.xp?AN=211688212

What you want to do can ve done with either INT 13h (BIOS disk access) or INT 21h Func 44h (IOCTL).  You'll need a DOS reference.  I suggest Ralf Brown's interrupt list at:
  http://ctyme.com/rbrown.htm
  http://www.cs.cmu.edu/afs/cs.cmu.edu/user/ralf/pub/WWW/files.html

Or:
     <ftp://ftp.simtel.net/pub/simtelnet/msdos/info/helppc21.zip>
     <ftp://garbo.uwasa.fi/pc/programming/helppc21.zip>

0
 
LVL 11

Expert Comment

by:alexo
ID: 1408079
>> 5 questions for 50 points, are you out of your mind.
TAMC, why does the amount of point matter to you?  They are virtual, you know...
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

zlib is a free compression library (a DLL) on which the popular gzip utility is built.  In this article, we'll see how to use the zlib functions to compress and decompress data in memory; that is, without needing to use a temporary file.  We'll be c…
What my article will show is if you ever had to do processing to a listbox without being able to just select all the items in it. My software Visual Studio 2008 crystal report v11 My issue was I wanted to add crystal report to a form and show…
This is Part 3 in a 3-part series on Experts Exchange to discuss error handling in VBA code written for Excel. Part 1 of this series discussed basic error handling code using VBA. http://www.experts-exchange.com/videos/1478/Excel-Error-Handlin…
Concerto provides fully managed cloud services and the expertise to provide an easy and reliable route to the cloud. Our best-in-class solutions help you address the toughest IT challenges, find new efficiencies and deliver the best application expe…

930 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

11 Experts available now in Live!

Get 1:1 Help Now