Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 21 Feb 1996 11:32:00 -0700 (MST)
From:      Terry Lambert <terry@lambert.org>
To:        ravenpub@southwind.net (Carl D. Cravens)
Cc:        questions@freebsd.org
Subject:   Re: Error running FIPS, Last cylinder not free...
Message-ID:  <199602211832.LAA18394@phaeton.artisoft.com>
In-Reply-To: <zccKxwIeET8U086yn@southwind.net> from "Carl D. Cravens" at Feb 20, 96 08:05:55 am

next in thread | previous in thread | raw e-mail | index | archive | help
> >The locked stuff is the Windows Swap file.
> >
> >You can defrag it as well by disabling swapping during the defarag process.
> >
> >I assume you are running the defrag from the right-button properties panel
> >for the drive instead of from the command line of a DOS window.
> 
> The Windows swap file is a contiguous chunk... the locked stuff I'm
> talking about was single blocks scattered over my entire drive.  I never
> identified what they were, but ORG moves 'em when DOS 6.22's defrag
> won't.  Neither ORG (in default mode) won't move the swap file and
> defrag has no options to modify that feature.

The Windows95 swap file is scattered to hell and gone all over the disk.

To defrag the partition so that you can successfully cut it smaller,
you *must* disable swapping, do the defrag, do the FIPS resizing,
and *only* then reenable swapping.


When you disable swapping in Win95, you actually end up killing the
swap file.

The file is locked in exclusive mode using IFSMgr_LockFile and uses
the R0_SWAPPER_CALL flag in the PIOrequest field ir_options.

Windows95 swap file operation is documented in Section 8.3.4 of the
Installable File System (IFS) Specification, which a level II developer
gets on the DDK CDROM under ddk\docs\win95ifs.doc.

When the defragger asserts a volume lock, the FS_CloseFile() entry
point for the installable file system is called with the ir_options
bit for FILE_CLOSE_FOR_LEVEL3_LOCK.  The close returns a pointer to
the list of file record locks for each file in the ir_pos field so
the locks can be reset when the LEVEL3_LOCK is released ("3" should
be "4" here; the header files are right, the doc is wrong).

Active swap files don't have their locked blocks relocated.  Locks from
VMM.VXD go through a different interface.


					Terry Lambert
					terry@lambert.org
---
Any opinions in this posting are my own and not those of my present
or previous employers.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199602211832.LAA18394>