Understanding Disk Volume Tracking in Windows 95
ID: Q150582
|
The information in this article applies to:
-
Microsoft Win32 Application Programming Interface (API), included with:
-
Microsoft Windows versions 95, 4.0
SUMMARY
When users insert a disk in a floppy disk drive, Windows 95 tracks the
disk to prevent the user from opening a file, removing the disk,
and inadvertently inserting a different disk. Through this behavior,
Windows 95 helps users guard against corrupting the data on their
disks. This article explains how Windows 95 tracks disks and
discusses instances where software developers can consider overriding the
default mechanism Windows 95 uses to perform this task.
MORE INFORMATION
Volume Tracking Overview
One part of the Windows 95 disk system is a driver called the Volume
Tracking Driver. Its purpose is to uniquely identify disks and ensure that
the correct disk is in the floppy disk drive when data is written to a
file. The Volume Tracking Driver intercepts all writes to the floppy disk
drive and, when it detects an invalid write operation, displays a text-
mode blue screen prompting users to either insert the original disk or
cancel the invalid write operation. There is no way to prevent Windows 95
from displaying this blue screen because it serves as a warning to users
that an error has been made that could result in data loss.
The Volume Tracking Driver uniquely identifies disks by writing a
volume tracking serial number in the OEM ID field (offsets 0x3-0xB) of the
boot record, which is stored in the boot sector of the disk. This
serial number is different than the volume serial number created when the
disk is formatted and is used solely by the Volume Tracking Driver. The
Volume Tracking Driver assigns a volume tracking serial number the first
time a disk is inserted since Windows was last started. That number
identifies that particular disk until Windows 95 is restarted.
How to Override the Default Volume Tracking Method
There are times when the Volume Tracking Driver cannot or should not be
allowed to overwrite the OEM ID field of the boot record of a disk. For
example, write-protected disks physically prevent the Volume Tracking
Driver from overwriting the OEM ID field. Also, some software programs,
such as backups, rely on the OEM ID field to determine whether the disk
contains valid data. For instance, if a utility program stores a name in
the OEM ID field and the Volume Tracking Driver overwrites this
information, the disk becomes useless if the backup software checks for
the name.
When the Volume Tracking Drive is prevented from overwriting the OEM ID
field on a disk, it stores the disk's volume serial number and
label in memory and uses the combination of these to identify the disk.
Although this method does not modify the disk, it is slower than
storing a unique ID on the disk itself.
Although the Volume Tracking Driver cannot be disabled, it can be prevented
from modifying the OEM ID field of specific types of disks if the
following value is created for the registry key:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\control\
FileSystem\NoVolTrack
The values in this key form a table of patterns and offsets that the Volume
Tracking Driver uses to determine which disks should not be modified.
When a new disk is inserted, the Volume Tracking Driver scans this
table looking for each pattern at its corresponding offset in the
disk's boot sector. If it finds a pattern, it does not update the OEM
ID field in the disk's boot record, but rather identifies the disk
by its volume serial number and label.
Each value of the NoVolTrack key is binary data formatted as a two-byte
offset in little-endian order followed by an arbitrarily long sequence of
bytes that make up a pattern. The Volume Tracking Driver ignores the label
of each value, but the labels are used to aid human readers in
understanding the type of disk to which the value refers. An example
table of values looks like the following:
NoVolTrack
Label Offset Pattern
------- ------ --------------------
MyDisk 0050h MyDisk
COOL 0100h COOL
In the Registry Editor, this table looks like the following:
MyDisk 50 00 4D 79 44 69 73 6B
COOL 00 01 43 4F 4F 4C
If your software relies on the OEM ID in the boot record of disks it
uses, you need to register your "disk type" by adding it to the table
of values in the NoVolTrack registry key.
Additional query words:
4.00 floppy disk boot sector diskette
Keywords : kbAPI kbKernBase kbGrpKernBase
Version : 4.00
Platform : WINDOWS
Issue type :
Last Reviewed: March 10, 1999