Virtualization SDK Documentation: FSL2 Class
Previously, I've covered WMI and SVS with scripting and with .Net C#. This provided the Juice community with a C# class that allowed for easy integration into any .Net application you may want to make. WMI provides a lot of convenience and relative ease of use, but I know that everyone wants a way to use the actual SVS library for your work. There is an SDK available to download but it's in C++ and doesn't have the best documentation in the world. Over the past few months I've been wrapping various SVS APIs that I've needed into C# and have decided to share that information with the community.
I will be providing a class, named FLS2 that you can download and use as well as articles on how to use the class. At first there won't be many methods in FSL2 because I'll only add them as I complete the documentation. There's also a lot I haven't used or marshaled in as of this writing. To make things easy and simple every time there's a new article posted and the class is updated I'll put all notes here -- in this article -- as well as link to all the articles. By doing that you'll only have to subscribe to one page and not have to worry about which articles have any downloads or not.
And for all you C++ fans out there you may not have much interest in the class that's available but each of the linked articles will go into some depth on each API and how or why they're used so there's something for you as well.
It would also be helpful to have the FSLLIB.HLP file that comes with the SDK for reference because I will not be retyping all the information in the help file and I cannot promise the API I cover will be fully covered in my articles.
SVS SDK Documetation
- Part One: Intro and Initializing SVS
- Part Two: Layer Management
- Part Three: Export & Import
- Part Four: Layer Attributes
- Part Five: Create, Capture & Data
- Part Six: OnEvents and Excludes
- Part 7: Files and Registry
- Part 8: Rights, Priorities, and Processes
- Part 9: Enumeration of Layers
SWV 6.1 SDK Documetation
- Part One: Intro & Function Changes from SVS
- Part Two: Patching
- Part Three: Duplicating Layers & Sub-layer Merging
- Part Four: Processes
- Part Five: Layer Visibility & Dependencies
SWV 6.1 SP1 SDK Documetation
Return to the Virtualization SDK Book
| License: | Altiris EULA By downloading this software, you agree to the terms and conditions in the Altiris End User License Agreement |
| Support: | User-contributed tools on the Juice are not supported by Altiris Technical Support. If you have questions about a tool, please communicate directly with the author by visiting their profile page and clicking the 'contact' tab. |

Comments 28 Comments • Jump to latest comment
FSL2 Class has been updated with the content in Part Two.
If a forum post solves your problem please flag is as the solution
For those that are interested here's a list of the SDK article I have planned.
1) Intro and Initializing SVS
2) Common Methods
3) Import and Export
4) Attributes
5) Capture and Create
6) Onevents and Excludes
a) Companion article that goes in depth on onEvent handlers and when certain events will and wont work.
Not sure what I'll cover after that, I'll probably have an article on using files and one on using registry stuff with SVS then do one last one that's just a mix of what's left that people may actually want to use.
I'm probably not going to cover every function in the API but if you have something you want to know that's not covered in the 6 articles listed let me know and I'll cover it.
If a forum post solves your problem please flag is as the solution
The download has been updated with the content from Part 3.
If a forum post solves your problem please flag is as the solution
the download has been updated with the content from part Four.
If a forum post solves your problem please flag is as the solution
The FSL2 Class has been updated for the content in part Five.
If a forum post solves your problem please flag is as the solution
The download has been updated to add the content used in part 6.
If a forum post solves your problem please flag is as the solution
Nice done Jordan!
Now we just have to wait for everyone to provide the tools based on the code :D
Thanks
I've got two tools in the works right now based off this code: an OnEvents manager and a Layer Exclude wizard that scans the layer for excludes (it's more intelligent then the exclude finder up on the juice now which just places any file type listed in a layer in the exclude list).
They're mostly done core feature wise but I'm still working on the GUIs for each and it's taking a while since I'm wanting to make these two processes as simple and useful as possible.
If a forum post solves your problem please flag is as the solution
Until it is finished this excellent tutorial.
I can't stand the suspense waiting until the next article, that's why I wait until finished :)
I already fell for this trap after reading the first article :)
Cheers, FrankB
______________________________________________
Frank Bastiaens
Senior Technical Consultant
Vanderlet B.V.
Sadly you'll have to wait a little longer, I haven't had time to start writing the next article and I probably won't get to it for another week or two. But right now I'm looking at only two more to finish things off, I don't think I'm going to cover any of the registry APIs because they're pretty much the same ones that are listed in the MSDN.
If a forum post solves your problem please flag is as the solution
The download has been updated with the content from part 7.
If a forum post solves your problem please flag is as the solution
The download for part 8 is up.
If a forum post solves your problem please flag is as the solution
The download for part 9 is up, the article should be up in the next few days. Can't believe it took this long to get to but this is the end of the SVS 2.x API documentation unless there are specific API that I didn't cover that people want.
If a forum post solves your problem please flag is as the solution
Part 1 of the SWV 6.1 SDK is up and there's a new download that contains 6.1 Specific API.
Also I've got through and renamed many of the earlier articles to something that's easier to read and understand, you can see an example in how this article is now called Virtualization SDK Documentation: FSL2 Class.
If a forum post solves your problem please flag is as the solution
Part 5 of SWV 6.1 SDK has been added and a new class has been uploaded.
A question for those actually following along, would anyone actually be interested in a DLL version of this so you could just replace one file instead of 3 things in every project you have going?
If so would it annoy people if I change the class from FSL2 to Virtualization? I think its a better class name but I don't want to do something that would make the DLL something people wouldn't want to use.
If a forum post solves your problem please flag is as the solution
The first part of the SP1 SDK guide is up, I recommend everyone that creates custom tools to read it because there have been some significant changes that could break what you've made.
If a forum post solves your problem please flag is as the solution
Jordan,
Found a typo in the api wrapper (one equal character too many)
[DllImport("fsllib32.dll", SetLastError = true, EntryPoint = "=FSL2SetShellRefreshFlag")]
should be:
[DllImport("fsllib32.dll", SetLastError = true, EntryPoint = "FSL2SetShellRefreshFlag")]
thanks Kim I'll make that change for the next upload.
I'm not to worried about that API because it's been depricated in 6.1 and I believe returns a 2006 error (FSL2_ERROR_DEPRICATED) now.
If a forum post solves your problem please flag is as the solution
A new Guide has been posted and the class has been updated to reflect that.
If a forum post solves your problem please flag is as the solution
Hi Jordan,
Are there a reference of the possible error codes that may be return from the functions?
Yes.
For a full list of SWV error codes you can check out this blog post https://www-secure.symantec.com/connect/blogs/swv-error-codes
For what each API can possibly return check the help file that's installed with the SDK option of SWV.
If a forum post solves your problem please flag is as the solution
Thank you Jordan. :)
Is there any way to detect which provisioned applications are being used or launched?
Not with the SWV SDK. Streaming has a webservice SDK, which is something you can install via it's installer, there's not much on connect about it--and I'm afraid I've never used it--so I don't know if it can do what you're looking for.
Here's the only article I could find about it https://www-secure.symantec.com/connect/articles/symantec-workspace-streaming-sws-sdk-examples-c
I would suggest asking in the comments section of the article.
If a forum post solves your problem please flag is as the solution
Hi Jordan,
Thank you for your reply.
Hi,
For some instances of application packages (.xpf) produced, a System.AccessViolationException is thrown when I import the xpf file, both with the SDK and svscmd.
Is there a function in the sdk to check if an xpf file is packaged properly before I invoke the import function?
I must be blind, or where is the download link. Or is it not working any more with the new releases of swv?
Hi schnyders,
I've send a notis to the Admin regarding the missing download link!
Cheers!
Would you like to reply?
Login or Register to post your comment.