Video Screencast Help
Symantec to Separate Into Two Focused, Industry-Leading Technology Companies. Learn more.

Virtualization SDK Documentation

Created: 28 Apr 2008 • Updated: 08 Dec 2010 | 12 comments
Language Translations
Jordan's picture
0 0 Votes
Login to vote

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 book.

SVS SDK Documetation

SWV 6.1 SDK Documetation

SWV 6.1 SP1 SDK Documetation

SWV 6.1 SP4 SDK Documetation

Virtualization SDK Downloads

Comments 12 CommentsJump to latest comment

FrankB's picture

Jordan,

Could you tell me where to find all the possible global excludes? The whole list?

F

______________________________________________
Frank Bastiaens
Senior Technical Consultant
Vanderlet B.V.

0
Login to vote
Jordan's picture

For 6.1 SP6 they're all under HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\FSLX\Parameters\FSL\ and key Exclude Paths.

If a forum post solves your problem please flag is as the solution

0
Login to vote
FrankB's picture

But what I'm asking is the list of Global Excludes, e.g. the Variables.

______________________________________________
Frank Bastiaens
Senior Technical Consultant
Vanderlet B.V.

0
Login to vote
Jordan's picture

My understanding is the format is always: type <tab> exclude

0x0000 = file

0x0001= directory

0x0002 =  directory and subdirectory

Outside of that global excludes haven't changed and can be any file extension or folder on the system.

If a forum post solves your problem please flag is as the solution

0
Login to vote
FrankB's picture

I mean the list of all the global variables, equal to.

[_B_]PERSONAL[_E_]
[_B_]COOKIES[_E_]
...

If you look at a layer properties you see the user and system variables (excludes), where can I find that same list for the global excludes?

F

______________________________________________
Frank Bastiaens
Senior Technical Consultant
Vanderlet B.V.

0
Login to vote
Jordan's picture

They're the same but you really don't need to use the SWV variables for any exclude as a windows variable path or full path will work.

If you want to see a list of all the SWV variables (ones that start with [_B_] and end in [_E_]) just look in c:\fslrdr\# and all the folders there are what we support.  I believe that they're also stored in the registry somewhere but I'm not sure where--I'll have to look into that.

If you want to convert too and from those variables you can use the SDK functions FSL2VariablizePath and FSL2DevariablizePath which I cover in part 7 of the SWV SDK.

Hope that answsers your question.

If a forum post solves your problem please flag is as the solution

0
Login to vote
FrankB's picture

Can't find it in the registry.

But I like the tip of converting the variables.

F

______________________________________________
Frank Bastiaens
Senior Technical Consultant
Vanderlet B.V.

0
Login to vote
Jordan's picture

So after talking with some people we really don't store the SWV variables in the registry and so basically there's no simple way to enumerate all of them.

You can find the few that we do store in the registry at HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment

If a forum post solves your problem please flag is as the solution

0
Login to vote
valdezjoelt's picture

Hi Jordan,

 

do you have a sample code for FSL2.ExportEx I can't seem to make it work. Below is my sample code

 

                    FSL2 _svs = new FSL2();
                    _svs.initialize();
 
                    FSL2.endCapture(_appGUID);
                    FSL2.deactivateLayer(_appGUID, true, 0);
                    FSL2.exportEx(_appGUID, "c:\\xpf\\FireFox 4.0.xpf" , new FSL2.IMPEXP_INFO_FUNC(importStatus), ref _svs.pUserData, FSL2.FSL2_EXPORT_XPF, FSL2.LAYER_REPLACE_IF_EXISTS);

 

I have created already the folder on my c: drive.

 

 

0
Login to vote
AngelD's picture

Did you ever "start" a capture and provide the fslGUID (_appGUID)?

0
Login to vote
Jordan's picture

What error code are you getting returned when you try to export? 

As AngelD said you need to have a layer on the system before exporting--or capturing for that matter.  Part Five of the SWV SDK Documentation covers creates and captures and gives sample code.

If a forum post solves your problem please flag is as the solution

0
Login to vote
AngelD's picture

Was a very long time since I looked at C# now but maybe this will help (or not).

 FSL2 _svs = new FSL2();
_svs.initialize();

StringBuilder myGuid = new StringBuilder(FSL2.MAXIDLEN);

UInt32 result = FSL2.createLayer("FireFox 4.0", FSL2.LAYER_TYPE_NORMAL, true, myGuid);
if (result == FSL2.ERROR_SUCCESS) {

 result = FSL2.exportEx(
  _appGUID,
  "c:\\xpf\\FireFox 4.0.xpf",
  new FSL2.IMPEXP_INFO_FUNC(exportStatus),
  ref _svs.pUserData,
  FSL2.FSL2_EXPORT_XPF,
  FSL2.LAYER_REPLACE_IF_EXISTS);
 if (result == FSL2.ERROR_SUCCESS) {
  Console.WriteLine("Export done");
 } else {
  Console.WriteLine("Error exporting layer");
 }
} else {
 Console.WriteLine("Error creating empty layer");
}

public static void exportStatus(FSL2.IMP_EXP_V1 RTInfoFunc) {
 string CmdAction;
 string CmdStatus = "Export Action: ";

 if (FSL2.IMPEXP_STATE_COMPLETE == RTInfoFunc.currentAction)
  CmdAction = "COMPLETE";
 else if (FSL2.IMPEXP_STATE_COMPRESSING == RTInfoFunc.currentAction)
  CmdAction = "COMPRESSING";
 else if (FSL2.IMPEXP_STATE_AFTER_COMPRESS == RTInfoFunc.currentAction)
  CmdAction = "AFTER COMPRESS";
 else if (FSL2.IMPEXP_STATE_REG_EXPORT == RTInfoFunc.currentAction)
  CmdAction = "REGISTRY EXPORTING";
 else if (FSL2.IMPEXP_STATE_DELETING == RTInfoFunc.currentAction)
  CmdAction = "DELETING";
 else if (FSL2.IMPEXP_STATE_NAME_VALID == RTInfoFunc.currentAction)
  CmdAction = "NAME_VALID";
 else if (FSL2.IMPEXP_STATE_ERROR == RTInfoFunc.currentAction)
  return;
 else CmdAction = RTInfoFunc.currentAction.ToString();

 Console.CursorLeft = 0;
 Console.Write(CmdStatus + CmdAction);

 if (FSL2.IMPEXP_STATE_COMPLETE == RTInfoFunc.currentAction) {
  for (int i = 0; i < CmdStatus.Length + CmdAction.Length; i++) {
   Console.Write(" ");
  }
 }
} 

0
Login to vote