Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Parsing WSUS PSF file format

818 views
Skip to first unread message

bma...@hotmail.com

unread,
Aug 28, 2006, 1:34:04 PM8/28/06
to
I need to extract individual patches from an PSF file and generate
target (updated) files, just as the update application would do on a
client machine when a client requests an express update (through WSUS -
Windows Server Update Services).

The only difference is that I am starting from a PSF file and want to
generate all possible versions of a file for which patches are
available in the PSF file.

For example, if a PSF file contains version V0 of an A.DLL plus three
patches for it, namely patch1 (V0 -> V1), patch2 (V0 -> V2), and patch3
(V0 -> V3) I would like to be able to extract all four components of
the PSF file and produce three new versions of the A.DLL, namely V1,
V2, and V3.

To be able to do that I need know how to parse a PSF file and extract
its components. I could do that manually if I knew the PSF's file
format, or I could do it using some API. I couldn't find any reference
to such API on the Internet, so I assume it not publicly available
(maybe I'm wrong).

The next step in the process would be recognizing the seed file from
patches in the PSF file, then decompressing it and applying patches to
it to generate missing versions of the seed file. The patch application
can be done, I think, using the Delta Compression API
(PSDK\Include\PatchApi.h).

I would really appreciate if there is anybody out there willing to shed
some light on the PSF file format and how to parse it.

Kind regards,
Boris
bmazic [at] onetel [dot] com


[References]
The only information I could find on the Internet about PSF files,
comes from the following document:

http://www.microsoft.com/downloads/details.aspx?familyid=4789196c-d60a-497c-ae89-101a3754bad6&displaylang=en

"""
The sets of delta files for any given software update package are
stored in a patch storage file (PSF) that is hosted on an HTTP 1.1
server. In addition to delta files based on any number of older,
previously released versions of the new files, the PSF also contains
compressed copies of the updated files. If a given target computer does
not have an old file that matches any of the
delta files contained in the PSF, a compressed copy of the updated file
is downloaded instead of a delta file. This provides a seamless,
fault-tolerant mechanism to ensure that all of the new files can be
produced on the target computer regardless of its existing
configuration. Because each PSF contains all of the compressed new
files and many delta files for each new file, the
patch storage files are often quite large. However, because each
individual installation downloads only the required set of delta files
necessary for that target computer, each installation will download
only a small fraction of the entire contents of a PSF.
"""

Delta Compression Application Programming Interface
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnsetup/html/bdcapitech.asp

0 new messages