]> git.openfabrics.org - ~shefty/rdma-win.git/commitdiff
{WinOF] Windows OpenFabrics, framework for single file installers.
authorstansmith <stansmith@ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86>
Tue, 24 Apr 2007 20:18:37 +0000 (20:18 +0000)
committerstansmith <stansmith@ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86>
Tue, 24 Apr 2007 20:18:37 +0000 (20:18 +0000)
git-svn-id: svn://openib.tc.cornell.edu/gen1@631 ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86

19 files changed:
branches/WinOF/InstallShield/Command Window.lnk [new file with mode: 0644]
branches/WinOF/InstallShield/CustomActions.vbs [new file with mode: 0644]
branches/WinOF/InstallShield/Manual.htm [new file with mode: 0644]
branches/WinOF/InstallShield/README.txt [new file with mode: 0644]
branches/WinOF/InstallShield/Release_notes.htm [new file with mode: 0644]
branches/WinOF/InstallShield/WinOF_ia64/devman.exe [new file with mode: 0644]
branches/WinOF/InstallShield/WinOF_x64/BOM-x64.txt [new file with mode: 0644]
branches/WinOF/InstallShield/WinOF_x64/WinOF_x64.ism [new file with mode: 0644]
branches/WinOF/InstallShield/WinOF_x64/WinOF_x64/Script Files/Setup.Rul [new file with mode: 0644]
branches/WinOF/InstallShield/WinOF_x64/WinOF_x64/Script Files/Setup.dbg [new file with mode: 0644]
branches/WinOF/InstallShield/WinOF_x64/WinOF_x64/Script Files/Setup.inx [new file with mode: 0644]
branches/WinOF/InstallShield/WinOF_x64/WinOF_x64/Script Files/Setup.map [new file with mode: 0644]
branches/WinOF/InstallShield/WinOF_x64/WinOF_x64/Script Files/Setup.obs [new file with mode: 0644]
branches/WinOF/InstallShield/WinOF_x64/devman.exe [new file with mode: 0644]
branches/WinOF/InstallShield/WinOF_x86/devman.exe [new file with mode: 0644]
branches/WinOF/InstallShield/dat.conf [new file with mode: 0644]
branches/WinOF/InstallShield/openfabrics.gif [new file with mode: 0644]
branches/WinOF/InstallShield/openfabrics.ico [new file with mode: 0644]
branches/WinOF/InstallShield/opensm.service.txt [new file with mode: 0644]

diff --git a/branches/WinOF/InstallShield/Command Window.lnk b/branches/WinOF/InstallShield/Command Window.lnk
new file mode 100644 (file)
index 0000000..ef9a5c3
Binary files /dev/null and b/branches/WinOF/InstallShield/Command Window.lnk differ
diff --git a/branches/WinOF/InstallShield/CustomActions.vbs b/branches/WinOF/InstallShield/CustomActions.vbs
new file mode 100644 (file)
index 0000000..8a5e63f
--- /dev/null
@@ -0,0 +1,778 @@
+' InstallShield-12 CustomActions used in the WinOF (Windows OpenFabrics) Release\r
+' File is based on the file contributed by Mellanox Technologies.\r
+\r
+Function Architecture()\r
+      Dim Arch,item\r
+      For Each item In GetObject("winmgmts:root/cimv2").ExecQuery("SELECT Architecture FROM Win32_Processor")\r
+                  Arch=item.Architecture\r
+                  Exit For\r
+      Next\r
+      \r
+      If (Arch=0) Then\r
+                  Arch="x86"\r
+      Elseif (Arch=1) Then\r
+                  Arch="MIPS"\r
+      Elseif (Arch=2) Then\r
+                  Arch="Alpha"\r
+      Elseif (Arch=3) Then\r
+                  Arch="PowerPC"\r
+      Elseif (Arch=6) Then\r
+                  Arch="ia64"\r
+      Elseif (Arch=9) Then\r
+                  'Arch="x64"\r
+                  Arch="amd64"\r
+      Else\r
+                  WScript.echo "Arch ID=" & Arch\r
+                  Arch="CustomAction.vbs: Unable to determine Architecture"\r
+      End If\r
+      Architecture=Arch\r
+\r
+End Function\r
+\r
+\r
+' Since a CustomAction (CA) that runs before SetupFinalize as deffered actions can see the\r
+' properties only through 'customactiondata'\r
+\r
+Function WinOF_setup()\r
+       ' Driver Install Properties: 0-INSTALLDIR;1-SystemFolder;2-System64Folder;3-WindowsFolder\r
+       Session.Property("DriverInstall") = Session.Property("INSTALLDIR") & ";" & Session.Property("SystemFolder") & ";" & Session.Property("System64Folder") & ";" & Session.Property("WindowsFolder") \r
+        \r
+       ' Extract Files Properties: 0-Installdir\r
+       ' Session.Property("ExtractFiles") = Session.Property("INSTALLDIR")\r
+       \r
+       WinOF_setup = 0\r
+End Function\r
+\r
+\r
+''''''''''' Remove Driver Files ''''''''''''\r
+\r
+'Waiting to delete a file until it's free\r
+\r
+Function FileDeleteUntilFree(filename)\r
+       Set objFSO=CreateObject("Scripting.FileSystemObject") \r
+       Set WshShell = CreateObject("WScript.Shell")\r
+       dim too_much \r
+       too_much = 0\r
+       Do While objFSO.FileExists(filename)\r
+         On Error Resume Next \r
+         objFSO.DeleteFile(filename)\r
+         WScript.Sleep 100    ' milliseconds\r
+         too_much = too_much + 1    'We do not wait to much to delete the file, then we don't delete it.\r
+         if too_much > 50 then\r
+               msgbox "delete Timeout(5) " & filename\r
+               exit Do\r
+         End If\r
+         err.clear \r
+       Loop \r
+End Function\r
+\r
+Function FileDelete(filename)\r
+    Dim fso\r
+    Set fso = CreateObject("Scripting.FileSystemObject")\r
+    Err.clear\r
+    If fso.FileExists(filename) Then\r
+         fso.DeleteFile(filename), True\r
+         If Err Then\r
+               msgbox "Could not delete: " & filename\r
+       ' Display error number and description if applicable\r
+       ShowError\r
+       Err.clear\r
+      End If \r
+    End If\r
+End Function\r
+\r
+' Move and then Delete a file. File is moved into %TEMP%\basename(filename)\r
+' then deleted; pesky files in 'system32\drivers'.\r
+\r
+Function FileMDelete(filename)\r
+    Dim fso\r
+    Set fso = CreateObject("Scripting.FileSystemObject")\r
+    Err.clear\r
+    If fso.FileExists(filename) Then\r
+      Set WshShell = CreateObject("WScript.Shell")\r
+      Return = WshShell.Run ("cmd.exe /c del /Q /F " & filename, 0, true)\r
+      If Err Then\r
+               msgbox "Could not delete: " & filename\r
+       ' Display error number and description if applicable\r
+       ShowError\r
+       Err.clear\r
+      End If \r
+    End If\r
+End Function\r
+\r
+Function FileMove(filename,destination)\r
+    Dim fso\r
+    Set fso = CreateObject("Scripting.FileSystemObject")\r
+    If fso.FileExists(filename) Then\r
+      On Error Resume Next \r
+         fso.MoveFile filename,destination\r
+         'if err then msgbox "Could not move: " & filename\r
+      err.clear \r
+    End If\r
+    ' Display error number and description if applicable\r
+    If Err Then ShowError\r
+End Function\r
+\r
+\r
+Function RemoveInstalledFiles()\r
+       Dim Win\r
+       Dim sDRIVERS\r
+    Dim sSystem64Folder    \r
+       Dim sInstalldir\r
+       Dim sSystemFolder\r
+       \r
+       ' Function can be called from the Driver{Install/Uninstall} rtns.\r
+       ' (properties are different).\r
+       dim CheckMode\r
+       CheckMode = Session.Property("CustomActionData")\r
+       If not CheckMode = "" Then\r
+               Dim PropArray\r
+               PropArray = Split(Session.Property("CustomActionData"), ";") \r
+               Win = PropArray(3)\r
+       sSystem64Folder = PropArray(2)\r
+               sSystemFolder = PropArray(1)\r
+               sInstalldir = PropArray(0)\r
+       Else\r
+               Win = Session.Property("WINDOWS")\r
+       sSystem64Folder = Session.Property("System64Folder") \r
+               sInstalldir = Session.Property("INSTALLDIR") \r
+               sSystemFolder = Session.Property("SystemFolder") \r
+       End if\r
+           \r
+    MTARCH = Architecture \r
+    sDRIVERS = sSystem64Folder \r
+    If (MTARCH="x86") Then\r
+      sDRIVERS = sSystemFolder  ' holds Session.Property("SystemFolder")\r
+    End If\r
+    sDRIVERS = sDRIVERS & "drivers\"\r
+\r
+' msgbox "RM sDrivers " & sDRIVERS & " sSystemFolder " & sSystemFolder & " sSystem64Folder " & sSystem64Folder   \r
+' msgbox " sDrivers " & sDRIVERS\r
+' msgbox " sSystemFolder " & sSystemFolder\r
+' msgbox " sSystem64Folder " & sSystem64Folder\r
+           \r
+    FileMDelete(sDRIVERS & "ibbus.sys")\r
+    FileMDelete(sDRIVERS & "mthca.sys")\r
+    FileMDelete(sDRIVERS & "ipoib.sys")\r
+    FileMDelete(sDRIVERS & "ibsrp.sys")\r
+    FileMDelete(sDRIVERS & "vnic.sys")\r
+    \r
+    If (MTARCH="amd64") Then\r
+       ' System64Folder = System32, SystemFolder = Syswow64\r
+               ' check/remove from .dll cache prior to removal from system32\\r
+               Dim dllCache\r
+        dllCache = sSystem64Folder & "dllcache\"\r
+       FileDelete(dllCache & "ibal.dll")\r
+               FileDelete(dllCache & "ibald.dll")\r
+               FileDelete(dllCache & "complib.dll")\r
+               FileDelete(dllCache & "complibd.dll")\r
+               FileDelete(dllCache & "mthcau.dll")\r
+               FileDelete(dllCache & "mthcaud.dll")\r
+               FileDelete(dllCache & "IbInstaller.dll")\r
+               FileDelete(dllCache & "ibwsd.dll")\r
+               FileDelete(dllCache & "ibsrp.dll")\r
+               FileDelete(dllCache & "ibsrpd.dll")\r
+               \r
+               FileDelete(sSystem64Folder & "ibal.dll")\r
+               FileDelete(sSystem64Folder & "ibald.dll")\r
+               FileDelete(sSystem64Folder & "complib.dll")\r
+               FileDelete(sSystem64Folder & "complibd.dll")\r
+               FileDelete(sSystem64Folder & "mthcau.dll")\r
+               FileDelete(sSystem64Folder & "mthcaud.dll")\r
+               FileDelete(sSystem64Folder & "IbInstaller.dll")\r
+               FileDelete(sSystem64Folder & "ibwsd.dll")\r
+               FileDelete(sSystem64Folder & "ibsrp.dll")\r
+               FileDelete(sSystem64Folder & "ibsrpd.dll")\r
+    End If         \r
+    \r
+    ' MTARCH=x86 SystemFolder = System32\r
+    ' MTARCH=amd64 SystemFolder = Syswow64\r
+       FileDelete(sSystemFolder & "ibal.dll")\r
+       FileDelete(sSystemFolder & "ibald.dll")\r
+       FileDelete(sSystemFolder & "complib.dll")\r
+       FileDelete(sSystemFolder & "complibd.dll")\r
+       FileDelete(sSystemFolder & "mthcau.dll")\r
+       FileDelete(sSystemFolder & "mthcaud.dll")\r
+       FileDelete(sSystemFolder & "ibsrp.dll")\r
+       FileDelete(sSystemFolder & "ibsrpd.dll")\r
+       FileDelete(sSystemFolder & "IbInstaller.dll")\r
+       FileDelete(sSystemFolder & "ibwsd.dll")\r
+       \r
+       FileDelete(Win & "lastgood\system32\ibwsd.dll")\r
+       FileDelete(Win & "lastgood\sys64wow\ibwsd.dll")\r
+    \r
+    ' delete opensm file\r
+    FileDelete(sInstalldir & "etc\guid2lid")\r
+    \r
+    ' Delete oem*.inf and oem*.pnf files\r
+    dim  InfFiles, PnfFiles, IFILES, PFILES\r
+    Set WshShell = CreateObject("WScript.Shell")\r
+    Set infFilesExec = WshShell.Exec ("cmd.exe /c for /f  %i in ('findstr /m Mellanox %WINDIR%\inf\oem*.*') do @echo %i")\r
+    ' Display error number and description if applicable\r
+    If Err Then ShowError\r
+    \r
+    InfFiles = infFilesExec.StdOut.ReadAll\r
+    PnfFiles = Replace(InfFiles,".inf",".pnf")\r
+    \r
+    IFILES = Split(InfFiles,vbCrLf)\r
+    PFILES = Split(PnfFiles,vbCrLf)\r
+    \r
+    For Each file in IFILES\r
+       If (file <> "") Then\r
+               FileDelete(file)\r
+       End IF\r
+    Next\r
+    \r
+    For Each file in PFILES\r
+       If (file <> "") Then\r
+               FileDelete(file)\r
+       End IF\r
+    Next\r
+    \r
+    '  cleanup DAPL/DAT\r
+    Dim tmp\r
+    tmp = Win & "dat.dll"\r
+    FileMDelete(tmp)\r
+    tmp = Win & "dapl.dll"\r
+    FileMDelete(tmp)\r
+      \r
+End Function\r
+\r
+''''''''''' Delete registry key ''''''''''''\r
+\r
+Function DeleteRegKey(KeyPath)\r
+   Const HKEY_LOCAL_MACHINE = &H80000002\r
+   dim strComputer\r
+   strComputer = "."\r
+   Set objReg=GetObject("winmgmts:" & _\r
+       "{impersonationLevel=impersonate}!\\" & _\r
+       strComputer & "\root\default:StdRegProv")\r
+\r
+   ' Display error number and description if applicable\r
+   ' If Err Then ShowError\r
+   Return = objReg.DeleteKey(HKEY_LOCAL_MACHINE, KeyPath)\r
+   \r
+End Function\r
+\r
+\r
+''''''''''' Delete registry value ''''''''''''\r
+\r
+Function DeleteRegValue(strKeyPath, strValueName)\r
+   Const HKEY_LOCAL_MACHINE = &H80000002\r
+   \r
+   dim strComputer\r
+   strComputer = "."\r
+   \r
+   Set objReg=GetObject("winmgmts:" & _\r
+       "{impersonationLevel=impersonate}!\\" & _ \r
+       strComputer & "\root\default:StdRegProv")\r
+\r
+    \r
+   Return = objReg.DeleteValue(HKEY_LOCAL_MACHINE, strKeyPath, strValueName)\r
+   ' Display error number and description if applicable\r
+   If Err Then ShowError\r
+'    If (Return = 0) And (Err.Number = 0) Then\r
+'           WScript.Echo value & "Registry value HKEY_LOCAL_MACHINE," & _\r
+'             strKeyPath & "," & strValueName & "," & dwValue & " deleted"\r
+'    Else\r
+'           WScript.Echo "Registry value not deleted" & VBNewLine & _\r
+'             "Error = " & Err.Number\r
+'    End If\r
+\r
+End Function\r
+\r
+\r
+\r
+\r
+' not used\r
+''''''''''' Check installation status ''''''''''''\r
+\r
+Function install_verify()\r
+    Dim Status\r
+       Dim sInstalldir\r
+       sInstalldir = Session.Property("INSTALLDIR")\r
+   Set WshShell = CreateObject("WScript.Shell")\r
+   Set vstat = WshShell.Exec(sInstalldir & "\bin\vstat.exe")\r
+   install_verify = vstat.ExitCode\r
+\r
+End Function\r
+\r
+'-------------------------------------------------------------\r
+\r
+' add registry key\r
+Function CreateRegKey(KeyPath)\r
+   Const HKEY_LOCAL_MACHINE = &H80000002\r
+   dim strComputer\r
+   strComputer = "."\r
+   Set objReg=GetObject("winmgmts:" & _\r
+       "{impersonationLevel=impersonate}!\\" & _\r
+       strComputer & "\root\default:StdRegProv")\r
+\r
+   ' Display error number and description if applicable\r
+   If Err Then ShowError\r
+   Return = objReg.CreateKey(HKEY_LOCAL_MACHINE, KeyPath)\r
+   \r
+End Function\r
+\r
+\r
+\r
+'--------------------------------------------------------\r
+\r
+\r
+' Function to add registry DWORD val.\r
+Function AddRegDWORDValue(strKeyPath, strValueName, dwValue)\r
+const HKEY_LOCAL_MACHINE = &H80000002\r
+strComputer = "."\r
\r
+Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" &_ \r
+strComputer & "\root\default:StdRegProv")\r
\r
+If Err Then ShowError\r
+oReg.SetDWORDValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName,dwValue\r
+If Err Then ShowError\r
+\r
+End Function\r
+\r
+'-------------------------------------------------\r
+\r
+' Function to add registry Expanded string val.\r
+Function AddRegExpandValue(strKeyPath, strValueName, dwValue)\r
+const HKEY_LOCAL_MACHINE = &H80000002\r
+strComputer = "."\r
\r
+Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" &_ \r
+strComputer & "\root\default:StdRegProv")\r
\r
+If Err Then ShowError\r
+oReg.SetExpandedStringValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName,dwValue\r
+If Err Then ShowError\r
+\r
+End Function\r
+\r
+'------------------------------------------------------------------------\r
+\r
+\r
+' Function to add registry string val.\r
+Function AddRegStringValue(strKeyPath, strValueName, dwValue)\r
+const HKEY_LOCAL_MACHINE = &H80000002\r
+strComputer = "."\r
\r
+Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" &_ \r
+strComputer & "\root\default:StdRegProv")\r
\r
+If Err Then ShowError\r
+oReg.SetStringValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName,dwValue\r
+If Err Then ShowError\r
+\r
+End Function\r
+\r
+'------------------------------------------------------------------------\r
+\r
+\r
+\r
+\r
+''''''''''' Driver Install ''''''''''''\r
+\r
+Sub DriverInstall()\r
+       MTARCH = Architecture\r
+   \r
+       ' Get the value of INSTALLDIR\r
+       Dim PropArray\r
+       PropArray = Split(Session.Property("CustomActionData"), ";") 'in defered action this is the way to pass arguments.\r
+       Dim sInstalldir\r
+       sInstalldir = PropArray(0)\r
+       \r
+       RemoveInstalledFiles\r
+   \r
+       Set WshShell = CreateObject("WScript.Shell")\r
+       \r
+    ' rescan system buses\r
+       Return = WshShell.Run ("cmd.exe /c cd " & sInstalldir & "mthca & devman.exe rescan", 0, true)\r
+       ' Display error number and description if applicable\r
+    If Err Then ShowError\r
+               \r
+    ' Install HCA Driver\r
+       Return = WshShell.Run ("cmd.exe /c cd " & sInstalldir & "mthca & devman.exe update mthca.inf PCI\VEN_15b3", 0, true)\r
+       ' Display error number and description if applicable\r
+    If Err Then ShowError\r
+       \r
+    Dim fso\r
+    Set fso = CreateObject("Scripting.FileSystemObject")\r
+\r
+    ' Check/install IPoIB driver\r
+    ' Only if InstallShield component 'net' is NOT tagged as containing a Device Driver    \r
+    ' If fso.FileExists(sInstalldir & "net\netipoib.inf") Then\r
+    '      Return = WshShell.Run ("cmd.exe /c cd " & sInstalldir & "net & ..\mthca\devman.exe update netipoib.inf IBA\IPoIB", 0, true)\r
+    ' End If\r
+    \r
+   ' Copy 32 bit dlls on amd64 architecture\r
+    If (MTARCH="amd64") Then\r
+               Dim SYSWOW\r
+       SYSWOW = PropArray(1)  \r
+               ' msgbox "driverInstall syswow " & SYSWOW\r
+                       \r
+               if fso.FileExists(sInstalldir & "mthca\cl32.dll") then\r
+                       fso.CopyFile sInstalldir & "mthca\cl32.dll", SYSWOW & "complib.dll"\r
+               end if\r
+               if fso.FileExists(sInstalldir & "mthca\cl32d.dll") then\r
+                       fso.CopyFile sInstalldir & "mthca\cl32d.dll", SYSWOW & "complibd.dll"\r
+               end if\r
+               if fso.FileExists(sInstalldir & "mthca\ibal32.dll") then\r
+                       fso.CopyFile sInstalldir & "mthca\ibal32.dll", SYSWOW & "ibal.dll"\r
+               end if\r
+               if fso.FileExists(sInstalldir & "mthca\ibal32d.dll") then\r
+                       fso.CopyFile sInstalldir & "mthca\ibal32d.dll", SYSWOW & "ibald.dll"\r
+               end if\r
+               if fso.FileExists(sInstalldir & "mthca\mtuvpd32.dll") then\r
+                       fso.CopyFile sInstalldir & "mthca\mtuvpd32.dll", SYSWOW & "mthcau.dll"\r
+               end if\r
+               if fso.FileExists(sInstalldir & "mthca\mtuvpd32d.dll") then\r
+                       fso.CopyFile sInstalldir & "mthca\mtuvpd32d.dll", SYSWOW & "mthcaud.dll"\r
+               end if\r
+               if fso.FileExists(sInstalldir & "net\ibwsd32.dll") then\r
+                       fso.CopyFile sInstalldir & "net\ibwsd32.dll", SYSWOW & "ibwsd.dll"\r
+               end if\r
+    End If \r
+     \r
+       err.clear \r
+End Sub\r
+\r
+\r
+'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''\r
+\r
+' Find IBA devices using Devcon\r
+\r
+Function FindDevices() \r
+       Dim sInstalldir\r
+       MTARCH = Architecture\r
+       sInstalldir = Session.Property("INSTALLDIR")\r
+       Set WshShell = CreateObject("WScript.Shell")\r
+\r
+       Set ibaDevicesExec = WshShell.Exec ("cmd.exe /c cd " & sInstalldir & "mthca & devman.exe FindAll * | FIND ""IBA""")\r
+       ibaDevices = split(ibaDevicesExec.StdOut.ReadAll, vbCrLF)\r
+\r
+       ' Getting the array Size\r
+       dim arrSize\r
+       arrSize = 0\r
+       for each deviceCan in ibaDevices\r
+               if (Instr(deviceCan,"IBA\") = 1) Then\r
+                       arrSize = arrSize + 1\r
+               End if\r
+       next\r
+       'Creating array of IBA\ devices\r
+       dim ibaDev()\r
+       Redim ibaDev(arrSize - 1)\r
+       index = 0\r
+       for each deviceCan in ibaDevices\r
+               if (Instr(deviceCan,"IBA\") = 1) Then\r
+                       ibaDev(index) = deviceCan\r
+                       index = index + 1\r
+               End if\r
+       next\r
+\r
+       ' Return array of devices\r
+       FindDevices=ibaDev \r
+End Function\r
+\r
+\r
+' returns an array of all Local Area Connections which\r
+' were created for IPoIB.\r
+\r
+Function Find_IPOIB_LAC()\r
+               Set WshShell = CreateObject("WScript.Shell")\r
+\r
+               Set ibaDevicesExec = WshShell.Exec ("cmd.exe /c reg query HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Network /f ""IBA\IPOIB"" /s /d | FIND ""Connection""")\r
+               ibaDevices = split(ibaDevicesExec.StdOut.ReadAll, vbCrLF)\r
+\r
+               ' Getting the array Size\r
+               dim arrSize\r
+               arrSize = 0\r
+               for each deviceCan in ibaDevices\r
+                       arrSize = arrSize + 1\r
+               next\r
+               'Creating array of Local Area Connections based on IPoIB\r
+               dim ibaDev()\r
+               Redim ibaDev(arrSize - 1)\r
+               index = 0\r
+               for each deviceCan in ibaDevices\r
+                       ibaDev(index) = deviceCan\r
+                       index = index + 1\r
+               next\r
+               Find_IPOIB_LAC=ibaDev\r
+End Function\r
+\r
+\r
+''''''''''' Driver Uninstall ''''''''''''\r
+\r
+Sub DriverUninstall()  \r
+      on error resume next\r
+      MTARCH = Architecture\r
+      \r
+      Dim sInstalldir\r
+      sInstalldir = Session.Property("INSTALLDIR")\r
+      Set WshShell = CreateObject("WScript.Shell")\r
+      Dim fso\r
+      Set fso = CreateObject("Scripting.FileSystemObject")\r
+\r
+      ' if WSD enabled, then shut down the service\r
+      If fso.FileExists(sInstalldir & "installsp.exe") Then\r
+       Return = WshShell.Run ("cmd.exe /c cd " & sInstalldir & " & installsp.exe -r", 0, true)\r
+      End If\r
+      ' Display error number and description if applicable\r
+      If Err Then ShowError\r
+      \r
+      ' if opensm.service.txt exists - stop the service.\r
+      ' Display error number and description if applicable\r
+      If fso.FileExists(sInstalldir & "opensm.service.txt") Then\r
+        Return = WshShell.Run ("cmd.exe /c sc.exe stop opensm", 0, true)\r
+        ' delete opensm service from regisry\r
+        Return = WshShell.Run ("cmd.exe /c sc.exe delete opensm", 0, true)\r
+         If Err Then ShowError\r
+         fso.DeleteFile(sInstalldir & "opensm.service.txt"),true\r
+      End If\r
+      \r
+      dim devices \r
+      ' create a list of IBA\ devices via 'devcon findall'\r
+      devices = FindDevices\r
+      \r
+      ' Remove IPoIB Adapter instances\r
+         for each deviceCan in devices\r
+               if (Instr(deviceCan,"IBA\IPOIB") = 1) Then\r
+                       device = split(deviceCan, " ")\r
+                       ' Removing\r
+               Return = WshShell.Run ("cmd.exe /c cd " & sInstalldir & "mthca & devman.exe remove @" & device(0), 0, true)\r
+               End if\r
+         Next\r
+\r
+         ' Removing SRP - Searching for I/O UNIT and then removing it.\r
+         for each deviceCan in devices\r
+               if (Instr(deviceCan,"InfiniBand I/O Unit")) Then\r
+                       device = split(deviceCan, " ")\r
+                       ' Removing I/O Unit of the SRP\r
+               Return = WshShell.Run ("cmd.exe /c cd " & sInstalldir & " & mthca\devman.exe remove @" & device(0), 0, true)\r
+               End if\r
+         Next\r
+         \r
+         ' Removing SRP - Searching for SRP devices.\r
+         for each deviceCan in devices\r
+               if (Instr(deviceCan,"SRP")) Then\r
+                       device = split(deviceCan, " ")\r
+                       ' Removing SRP\r
+                       Return = WshShell.Run ("cmd.exe /c cd " & sInstalldir & " & mthca\devman.exe remove @" & device(0), 0, true)\r
+               End if\r
+         Next\r
+\r
+      ' Remove BUS/Fabric driver\r
+      Return = WshShell.Run ("cmd.exe /c cd " & sInstalldir & "mthca & devman.exe remove {94f41ced-78eb-407c-b5df-958040af0fd8}", 0, true)\r
+      ' Display error number and description if applicable\r
+      If Err Then ShowError\r
+\r
+      ' Remove HCAs\r
+      Return = WshShell.Run ("cmd.exe /c cd " & sInstalldir & "mthca & devman.exe remove PCI\VEN_15b3", 0, true)\r
+      ' Display error number and description if applicable\r
+      If Err Then ShowError\r
+\r
+      ' Remove Service entries from the registry\r
+      \r
+      DeleteRegKey "System\CurrentControlSet\Services\ibbus"\r
+      DeleteRegKey "System\CurrentControlSet\Services\mthca"\r
+      DeleteRegKey "System\CurrentControlSet\Services\ipoib"\r
\r
+      'DeleteRegKey "System\CurrentControlSet\Services\EventLog\Application\OpenSm"\r
+      DeleteRegValue "SYSTEM\CurrentControlSet\Control\CoDeviceInstallers" , "{58517E00-D3CF-40c9-A679-CEE5752F4491}"\r
+      DeleteRegKey   "SYSTEM\CurrentControlSet\Control\Class\{58517E00-D3CF-40C9-A679-CEE5752F4491}" \r
+      \r
+      ' in livefish mode the delete didn't suceed. So we delete it in another way\r
+      Return = WshShell.Run ("reg.exe delete HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{58517E00-D3CF-40C9-A679-CEE5752F4491} /f", 0, true)\r
+      If Err Then ShowError\r
+      \r
+      Return = WshShell.Run ("reg.exe delete HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ibbus /f", 0, true)\r
+      Return = WshShell.Run ("reg.exe delete HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\mthca /f", 0, true)\r
+      Return = WshShell.Run ("reg.exe delete HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ipoib /f", 0, true)\r
+\r
+      ' remove all Local Area Connection which were constructed for IPoIB\r
+      ' create a list of IBA\IPOIB Local Area Connections via 'reg query'\r
+      Dim IPOIB_LAC\r
+      IPOIB_LAC = Find_IPOIB_LAC\r
+\r
+         For each LAC in IPOIB_LAC\r
+               If LAC <> "" Then\r
+                       Return = WshShell.Run ("reg.exe delete " & LAC & " /f", 0, true)\r
+                       If Err Then ShowErr\r
+               End if\r
+         Next\r
+               \r
+      ' remove driver installed files\r
+      RemoveInstalledFiles\r
+      \r
+         Session.Property("REBOOT") = "FORCE"\r
+\r
+         err.clear \r
+End Sub\r
+\r
+\r
+Sub WSDEnable()\r
+      Dim sInstalldir\r
+      sInstalldir = Session.Property("INSTALLDIR")\r
+      Set WshShell = CreateObject("WScript.Shell")\r
+      \r
+      Dim fso\r
+      Set fso = CreateObject("Scripting.FileSystemObject")\r
+      If fso.FileExists(sInstalldir & "installsp.exe") Then\r
+        ' install the WinSockdirect service\r
+       Return = WshShell.Run ("cmd.exe /c cd " & sInstalldir & " & installsp.exe -i", 0, true)\r
+      End If\r
+      ' Display error number and description if applicable\r
+      If Err Then ShowError\r
+\r
+End Sub\r
+\r
+\r
+Sub ShowError()\r
+       strMsg = vbCrLf & "Error # " & Err.Number & vbCrLf & _\r
+                Err.Description & vbCrLf & vbCrLf\r
+       'Syntax\r
+       WScript.Echo strMsg\r
+End Sub\r
+\r
+\r
+\r
+' Function will add registry key for the opensm service\r
+\r
+Sub OpensmServiceEvent()\r
+       Dim sInstalldir\r
+       Dim opensmPath\r
+       Dim opensmService\r
+       Dim WshShell\r
+       sInstalldir = Session.Property("INSTALLDIR")\r
+       opensmService = sInstalldir & "opensm.service.txt"\r
+       opensmPath = sInstalldir & "opensm.exe"\r
+       Dim fso\r
+    Set fso = CreateObject("Scripting.FileSystemObject")\r
+    Set WshShell = CreateObject("WScript.Shell")\r
+    \r
+    ' if opensm.service.txt exists then the install requestor\r
+    ' has asked that opensm be run as a service.\r
+    \r
+       If Not fso.FileExists(opensmService) Then\r
+               Exit sub\r
+       End if\r
+\r
+       If fso.FileExists(opensmPath) Then\r
+               Dim sc\r
+               sc = "sc.exe create opensm binPath= """ &opensmPath & " -e --service"" start= auto DisplayName= ""InfiniBand Subnet Manager"" "\r
+       Return = WshShell.Run ("cmd.exe /c " & sc, 0, true)\r
+        sc = "sc.exe description opensm ""Configures and manage the InfiniBand Subnet"" "\r
+       Return = WshShell.Run ("cmd.exe /c " & sc, 0, true)\r
+       Return = WshShell.Run ("cmd.exe /c sc.exe start opensm", 0, true)\r
+       End If\r
+       If Err Then ShowError\r
+       err.clear\r
+End Sub\r
+\r
+\r
+' Determine if an existing WinOF or openib-window installation exists.\r
+' If existing, determined by registry entry for service/ibbus,\r
+' then uninstall and reboot.\r
+' Called in immediate mode, condition: INSTALL=1\r
+\r
+Function ChkInstallAndReboot()\r
+       Dim status ' check if ibbus.sys exists, if not the reboot won't happen\r
+       Dim fso\r
+    Set fso = CreateObject("Scripting.FileSystemObject")    \r
+    status = 0\r
+    \r
+       Set WshShell = CreateObject("WScript.Shell")\r
+       Return = WshShell.Run ("reg.exe query HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ibbus /v ImagePath", 0, true)\r
+    If (Return = 0) And (Err.Number = 0) Then\r
+       Status = Status + 1\r
+     End if\r
+    \r
+       ' if we can't find registry entry, then no need to uninstall/restart.\r
+       ' Proceed with installation\r
+       If status = 0 then\r
+               'msgbox "No existing InfiniBand installation detected"\r
+               Exit Function\r
+       End if\r
+       \r
+       ' Uninstall the existing WinOF/openib-windows installation and reboot\r
+       ' upon restart, WinOF installation will resume.\r
+\r
+    DriverUninstall\r
+\r
+       ' Rebooting the system\r
+               \r
+       dim res  ' return result of restart question\r
+       \r
+       res = msgbox("An existing InfiniBand installation has been detected and will be uninstalled - To complete the WinOF installation you must restart your computer and then restart the WinOF Installation." & vbCrLf,vbYesNo + vbDefaultButton1,"WinOF")\r
+       If res <> 6 Then    ' answer = No\r
+               ChkInstallAndReboot = 1\r
+               Exit Function\r
+       End if\r
+               \r
+       ' XXX - not working.\r
+       ' Get product code and putting it in the runonce registry key for\r
+       ' install upon restart\r
+\r
+       dim p_code: p_code = Session.Property("ProductCode")\r
+       dim run_once_cmd\r
+       dim srcp \r
+    ' srcp = WScript.ScriptFullName   # returns <null> in this env?\r
+       ' p_code = Session.Property("ProductCode")\r
+       run_once_cmd = "cmd.exe /c " & srcp ' & " /S "  \r
+       ' msgbox (" run_once " & run_once_cmd)\r
+\r
+       ' key_name = "Software\Microsoft\Windows\CurrentVersion\RunOnce"\r
+       ' AddRegStringValue key_name,"WinOFinstall",run_once_cmd\r
+    \r
+       ChkInstallAndReboot = 0\r
+\r
+       ' the driveruninstall call sets reboot=force, ForceReboot action\r
+       ' following this one will fire when reboot is set =force.\r
+       \r
+End Function\r
+\r
+\r
+\r
+' deferred action to increment ticks while action is taking place\r
+'\r
+Function AddProgressInfo( )\r
+       Const INSTALLMESSAGE_ACTIONSTART = &H08000000\r
+       Const INSTALLMESSAGE_ACTIONDATA  = &H09000000 \r
+       Const INSTALLMESSAGE_PROGRESS    = &H0A000000 \r
+\r
+       Set rec = Installer.CreateRecord(3)\r
+       \r
+       rec.StringData(1) = "callAddProgressInfo"\r
+       rec.StringData(2) = "Incrementing the progress bar..."\r
+       rec.StringData(3) = "Incrementing tick [1] of [2]"\r
+       \r
+       'Message INSTALLMESSAGE_ACTIONSTART, rec\r
+       \r
+       rec.IntegerData(1) = 1\r
+       rec.IntegerData(2) = 1\r
+       rec.IntegerData(3) = 0\r
+       \r
+       Message INSTALLMESSAGE_PROGRESS, rec\r
+       \r
+       Set progrec = Installer.CreateRecord(3)\r
+       \r
+       progrec.IntegerData(1) = 2\r
+       progrec.IntegerData(2) = 5000\r
+       progrec.IntegerData(3) = 0\r
+       \r
+       rec.IntegerData(2) = 1500000\r
+       \r
+       For i = 0 To 5000000 Step 5000\r
+           rec.IntegerData(1) = i\r
+           ' action data appears only if a text control subscribes to it\r
+           ' Message INSTALLMESSAGE_ACTIONDATA, rec\r
+           Message INSTALLMESSAGE_PROGRESS, progrec\r
+       Next ' i\r
+       \r
+       ' return success to MSI\r
+       AddProgressInfo = 0\r
+End Function\r
+\r
+\r
+\r
diff --git a/branches/WinOF/InstallShield/Manual.htm b/branches/WinOF/InstallShield/Manual.htm
new file mode 100644 (file)
index 0000000..a82e1bf
--- /dev/null
@@ -0,0 +1,1440 @@
+<h1 align="left">\r
+<img border="0" src="openfabrics.gif" width="107" height="93">&nbsp; \r
+<a name="TOP" href="#TOP"></a> </h1>\r
+<h1 align="center">Windows OpenFabrics </h1>\r
+<h1 align="center">User's Manual</h1>\r
+<h2 align="center">Release 1.0</h2>\r
+<h3 align="center">\r
+<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%m/%d/%Y" startspan -->04/23/2007<!--webbot bot="Timestamp" endspan i-checksum="12562" --></h3>\r
+<h2 align="left"><u>Overview</u></h2>\r
+<p align="left">This is the Windows OpenFabrics (WinOF) software package \r
+supporting InfiniBand fabrics. It is composed of several software modules \r
+intended for use on a computer cluster constructed as an InfiniBand fabric.</p>\r
+<p align="left">The Windows OpenFabrics software package contains the \r
+following:<br>\r
+<br>\r
+OpenFabrics Infiniband core drivers and User Level Protocols (ULPs):</p>\r
+<ul>\r
+       <li>\r
+       <p align="left">HCA (Host Channel Adapter) driver mthca</li>\r
+<li>\r
+<p align="left">Infiniband Core modules: IB verbs and IB access layer</li>\r
+<li>\r
+<p align="left">Upper Layer Protocols: IPoIB, WSD, VNIC, SRP Initiator and uDAPL</li>\r
+</ul>\r
+<p align="left">OpenFabrics utilities:</p>\r
+<ul>\r
+       <li>\r
+       <p align="left">OpenSM: InfiniBand Subnet Manager</li>\r
+<li>\r
+<p align="left">Performance tests</li>\r
+<li>\r
+<p align="left">Diagnostic tools</li>\r
+</ul>\r
+<p align="left">Documentation</p>\r
+<ul>\r
+       <li>\r
+       <p align="left">User's manual</li>\r
+<li>\r
+<p align="left">Release Notes</li>\r
+</ul>\r
+<h2 align="left"><u>Features</u></h2>\r
+<ul>\r
+       <li>\r
+       <h3 align="left">Tools</h3></li>\r
+</ul>\r
+<blockquote>\r
+       <blockquote>\r
+               <p align="left">The OpenFabrics Alliance Windows release contains a set of \r
+       user mode tools which are designed to faciliate the smooth operation of an \r
+       Windows OpenFabrics installation.</p>\r
+               <h4 align="left">Infiniband Subnet Management</h4>\r
+               <ul>\r
+                       <li>\r
+                       <p align="left"><a href="#opensm">opensm</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Open Subnet \r
+       Management - configure a subnet</li>\r
+                       <li>\r
+                       <p align="left"><a href="#osmtest">osmtest</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \r
+       Subnet management tests</li>\r
+                       <li>\r
+                       <p align="left"><a href="#ibtrapgen">ib_trapgen</a>&nbsp;&nbsp;&nbsp; Generate Infiniband Subnet \r
+       Management Traps for testing purposes</li>\r
+               </ul>\r
+               <h4 align="left"><a href="#verbs_benchmarks">Performance</a></h4>\r
+               <ul>\r
+                       <li>\r
+                       <p align="left"><a href="#ibsend_lat">ib_send_lat</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Infiniband send \r
+latency measurement</li>\r
+                       <li>\r
+                       <p align="left"><a href="#ibsend_bw">ib_send_bw</a>&nbsp;&nbsp;&nbsp;&nbsp; Infiniband send bandwidth \r
+       measurement</li>\r
+                       <li>\r
+                       <p align="left"><a href="#ibwrite_lat">ib_write_lat</a>&nbsp;&nbsp;&nbsp;&nbsp; Infiniband RDMA write \r
+latency measurement</li>\r
+                       <li>\r
+                       <p align="left">i<a href="#ibwrite_bw">b_write_bw</a>&nbsp;&nbsp;&nbsp; Infiniband RDMA write bandwidth \r
+measurement</li>\r
+                       <li>\r
+                       <p align="left"><a href="#ttcp">ttcp</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \r
+TCP performance measurements</li>\r
+               </ul>\r
+               <h4 align="left"><a href="#diags">Diagnostics</a></h4>\r
+               <ul>\r
+                       <li>\r
+                       <p align="left"><a href="#iblimits">ib_limits</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \r
+       Infiniband verb tests</li>\r
+                       <li>\r
+                       <p align="left"><a href="#cmtest">cmtest&nbsp;</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Connection Manager tests</li>\r
+                       <li>\r
+                       <p align="left"><a href="#printip">PrintIP</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Display \r
+an Internet Protocol address associated with an IB GUID.</li>\r
+                       <li>\r
+                       <p align="left"><a href="#vstat">vstat</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \r
+Display HCA attributes, statistics and error counters.<br>&nbsp;</li>\r
+               </ul>\r
+       </blockquote>\r
+</blockquote>\r
+<ul>\r
+       <li>\r
+       <h3 align="left"><a href="#IPoIB">IPoIB - Internet Protocols over InfiniBand</a></h3>\r
+       </li>\r
+       <li>\r
+       <h3 align="left"><a href="#winsockdirect">Winsock Direct Service Provider</a></h3>\r
+       </li>\r
+       <li>\r
+       <h3 align="left"><a href="#DAT">DAT and uDAPL</a></h3></li>\r
+       <li>\r
+       <h3 align="left"><a href="#SRP">SRP - SCSI RDMA Protocol</a></h3></li>\r
+</ul>\r
+<h3 align="left">&nbsp;</h3>\r
+<p align="left">&nbsp;</p>\r
+<hr>\r
+<p align="left">&nbsp;</p>\r
+<h3 align="left"><a name="verbs_benchmarks"></a>User mode verbs micro-benchmarks<br>\r
+&nbsp;</h3>\r
+<p align="left">These micro-benchmarks tests are intended as useful benchmarks for HW or SW \r
+tuning and/or functional testing.</p>\r
+<blockquote>\r
+       <p align="left">Tests use CPU cycle counters to get time stamps without \r
+       context switch.<br>\r
+       <br>Tests measure round-trip time but report half of that as one-way latency<br>\r
+       (i.e.. May not be sufficiently accurate for \r
+       asymmetrical configurations).<br>\r
+       <br>Min/Median/Max result is reported.<br>The median (vs. average) is less sensitive to extreme scores.<br>Typically the &quot;Max&quot; value is the first value measured.<br>\r
+       <br>larger samples only marginally help. The default (1000) is pretty good.<br>Note that an array of cycles_t (typically unsigned long) is allocated<br>once to collect samples and again to store the difference between them.<br>Really big sample sizes (e.g. 1 million) might expose other problems<br>with the program.<br>\r
+       <br>&quot;-H&quot; option will dump the histogram for additional statistical analysis.<br>See xgraph, ygraph, r-base (http://www.r-project.org/), pspp, or other\r
+       <br>statistical math programs.<br><br>Architectures tested: x86, x86_64, ia64</p>\r
+</blockquote>\r
+<h4 align="left"><a name="ibsend_lat"></a>ib_send_lat.exe&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - latency test with \r
+send transactions</h4>\r
+<blockquote>\r
+       <p align="left">Usage:</p>\r
+       <blockquote>\r
+               <p align="left">ib_send_lat start a server and wait for connection<br>\r
+               ib_send_lat &lt;host&gt; connect to server at &lt;host&gt;</p>\r
+       </blockquote>\r
+       <p align="left">Options:</p>\r
+       <blockquote>\r
+               <p align="left">-p, --port=&lt;port&gt; listen on/connect to port &lt;port&gt; \r
+               (default 18515)<br>\r
+               -c, --connection=&lt;RC/UC&gt; connection type RC/UC (default RC)<br>\r
+               -m, --mtu=&lt;mtu&gt; mtu size (default 2048)<br>\r
+               -d, --ib-dev=&lt;dev&gt; use IB device &lt;dev&gt; (default first device found)<br>\r
+               -i, --ib-port=&lt;port&gt; use port &lt;port&gt; of IB device (default 1)<br>\r
+               -s, --size=&lt;size&gt; size of message to exchange (default 1)<br>\r
+               -t, --tx-depth=&lt;dep&gt; size of tx queue (default 50)<br>\r
+               -l, --signal signal completion on each msg<br>\r
+               -a, --all Run sizes from 2 till 2^23<br>\r
+               -n, --iters=&lt;iters&gt; number of exchanges (at least 2, default 1000)<br>\r
+               -C, --report-cycles report times in cpu cycle units (default \r
+               microseconds)<br>\r
+               -H, --report-histogram print out all results (default print summary \r
+               only)<br>\r
+               -U, --report-unsorted (implies -H) print out unsorted results (default \r
+               sorted)<br>\r
+               -V, --version display version number<br>\r
+               -e, --events sleep on CQ events (default poll)</p>\r
+       </blockquote>\r
+</blockquote>\r
+<h4 align="left"><a name="ibsend_bw"></a>ib_send_bw.exe&nbsp;&nbsp;&nbsp;&nbsp; - BW (BandWidth) test with send transactions</h4>\r
+<blockquote>\r
+       <p align="left">Usage:</p>\r
+       <blockquote>\r
+               <p align="left">ib_send_bw start a server and wait for connection<br>\r
+               ib_send_bw &lt;host&gt; connect to server at &lt;host&gt;</p>\r
+       </blockquote>\r
+       <p align="left">Options:</p>\r
+       <blockquote>\r
+               <p align="left">-p, --port=&lt;port&gt; listen on/connect to port &lt;port&gt; \r
+               (default 18515)<br>\r
+               -d, --ib-dev=&lt;dev&gt; use IB device &lt;dev&gt; (default first device found)<br>\r
+               -i, --ib-port=&lt;port&gt; use port &lt;port&gt; of IB device (default 1)<br>\r
+               -c, --connection=&lt;RC/UC&gt; connection type RC/UC/UD (default RC)<br>\r
+               -m, --mtu=&lt;mtu&gt; mtu size (default 1024)<br>\r
+               -s, --size=&lt;size&gt; size of message to exchange (default 65536)<br>\r
+               -a, --all Run sizes from 2 till 2^23<br>\r
+               -t, --tx-depth=&lt;dep&gt; size of tx queue (default 300)<br>\r
+               -n, --iters=&lt;iters&gt; number of exchanges (at least 2, default 1000)<br>\r
+               -b, --bidirectional measure bidirectional bandwidth (default \r
+               unidirectional)<br>\r
+               -V, --version display version number<br>\r
+               -e, --events sleep on CQ events (default poll)</p>\r
+       </blockquote>\r
+</blockquote>\r
+<h4 align="left"><a name="ibwrite_lat"></a>ib_write_lat.exe&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - latency test with RDMA write \r
+transactions</h4>\r
+<blockquote>\r
+       <p align="left">Usage:</p>\r
+       <blockquote>\r
+               <p align="left">ib_write_lat start a server and wait for connection<br>\r
+               ib_write_lat &lt;host&gt; connect to server at &lt;host&gt;</p>\r
+       </blockquote>\r
+       <p align="left">Options:</p>\r
+       <blockquote>\r
+               <p align="left">-p, --port=&lt;port&gt; listen on/connect to port &lt;port&gt; \r
+               (default 18515)<br>\r
+               -c, --connection=&lt;RC/UC&gt; connection type RC/UC (default RC)<br>\r
+               -m, --mtu=&lt;mtu&gt; mtu size (default 1024)<br>\r
+               -d, --ib-dev=&lt;dev&gt; use IB device &lt;dev&gt; (default first device found)<br>\r
+               -i, --ib-port=&lt;port&gt; use port &lt;port&gt; of IB device (default 1)<br>\r
+               -s, --size=&lt;size&gt; size of message to exchange (default 1)<br>\r
+               -a, --all Run sizes from 2 till 2^23<br>\r
+               -t, --tx-depth=&lt;dep&gt; size of tx queue (default 50)<br>\r
+               -n, --iters=&lt;iters&gt; number of exchanges (at least 2, default 1000)<br>\r
+               -C, --report-cycles report times in cpu cycle units (default \r
+               microseconds)<br>\r
+               -H, --report-histogram print out all results (default print summary \r
+               only)<br>\r
+               -U, --report-unsorted (implies -H) print out unsorted results (default \r
+               sorted)<br>\r
+               -V, --version display version number</p>\r
+       </blockquote>\r
+</blockquote>\r
+<h4 align="left"><a name="ibwrite_bw"></a>ib_write_bw.exe&nbsp;&nbsp;&nbsp;&nbsp; - BW test with RDMA write transactions</h4>\r
+<blockquote>\r
+       <p align="left">Usage:</p>\r
+       <blockquote>\r
+               <p align="left">ib_write_bw&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \r
+               # start a server and wait for connection<br>\r
+               ib_write_bw &lt;host&gt;&nbsp;&nbsp;&nbsp; # connect to server at &lt;host&gt;</p>\r
+       </blockquote>\r
+       <p align="left">Options:</p>\r
+       <blockquote>\r
+               <p align="left">-p, --port=&lt;port&gt; listen on/connect to port &lt;port&gt; \r
+               (default 18515)<br>\r
+               -d, --ib-dev=&lt;dev&gt; use IB device &lt;dev&gt; (default first device found)<br>\r
+               -i, --ib-port=&lt;port&gt; use port &lt;port&gt; of IB device (default 1)<br>\r
+               -c, --connection=&lt;RC/UC&gt; connection type RC/UC (default RC)<br>\r
+               -m, --mtu=&lt;mtu&gt; mtu size (default 1024)<br>\r
+               -g, --post=&lt;num of posts&gt; number of posts for each qp in the chain \r
+               (default tx_depth)<br>\r
+               -q, --qp=&lt;num of qp's&gt; Num of qp's(default 1)<br>\r
+               -s, --size=&lt;size&gt; size of message to exchange (default 65536)<br>\r
+               -a, --all Run sizes from 2 till 2^23<br>\r
+               -t, --tx-depth=&lt;dep&gt; size of tx queue (default 100)<br>\r
+               -n, --iters=&lt;iters&gt; number of exchanges (at least 2, default 5000)<br>\r
+               -b, --bidirectional measure bidirectional bandwidth (default \r
+               unidirectional)<br>\r
+               -V, --version display version number</p>\r
+       </blockquote>\r
+</blockquote>\r
+<h4 align="left"><a href="#TOP"><font color="#000000">&lt;return-to-top&gt;</font></a></h4>\r
+<p align="left"><br>\r
+&nbsp;</p>\r
+<h4 align="left"><a name="ttcp"></a>ttcp - Test TCP performance</h4>\r
+<blockquote>\r
+       <pre>Usage: ttcp -t [-options] host \r
+       ttcp -r [-options]\r
+Common options:\r
+       -l ##   length of bufs read from or written to network (default 8192)\r
+       -u      use UDP instead of TCP\r
+       -p ##   port number to send to or listen at (default 5001)\r
+       -A      align the start of buffers to this modulus (default 16384)\r
+       -O      start buffers at this offset from the modulus (default 0)\r
+       -d      set SO_DEBUG socket option\r
+       -b ##   set socket buffer size (if supported)\r
+       -f X    format for rate: k,K = kilo{bit,byte}; m,M = mega; g,G = giga\r
+Options specific to -t:\r
+       -n##    number of source bufs written to network (default 2048)\r
+       -D      don't buffer TCP writes (sets TCP_NODELAY socket option)\r
+Options specific to -r:\r
+       -B      for -s, only output full blocks as specified by -l (for TAR)\r
+       -T      &quot;touch&quot;: access each byte as it's read</pre>\r
+       <p align="left">Requires a receiver (server) side and a transmitter (client) \r
+       side, host1 and host2 are IPoIB connected hosts.</p>\r
+       <p align="left">at host1 (receiver)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \r
+       ttcp -r -f M -l 4096</p>\r
+       <p align="left">at host2 (transmitter)&nbsp;&nbsp;&nbsp; ttcp -t -f M -l \r
+       4096 -n1000 host1</p>\r
+</blockquote>\r
+<h4 align="left"><a href="#TOP"><font color="#000000">&lt;return-to-top&gt;</font></a></h4>\r
+<p align="left">&nbsp;</p>\r
+<p align="left">&nbsp;</p>\r
+<h3 align="left"><a name="diags"></a>Diagnostics</h3>\r
+<p align="left">&nbsp;</p>\r
+<h3 align="left"><a name="iblimits"></a>ib_limits - Infiniband verbs tests</h3>\r
+<p align="left">Usage: ib_limits [options]</p>\r
+<blockquote>\r
+       <p align="left">Options:<br>-m or --memory<br>&nbsp;&nbsp;&nbsp; Direct ib_limits to test memory registration<br>-c or --cq<br>&nbsp;&nbsp;&nbsp; Direct ib_limits to test CQ creation<br>-r or --resize_cq<br>&nbsp;&nbsp;&nbsp; direct ib_limits to test CQ resize<br>-q or --qp<br>&nbsp;&nbsp;&nbsp; Directs ib_limits to test QP creation<br>-v or --verbose<br>&nbsp;&nbsp;&nbsp; Enable verbosity level to debug console.<br>-h or --help<br>&nbsp;&nbsp;&nbsp; Display this usage info then exit.</p>\r
+</blockquote>\r
+<h4 align="left"><a href="#TOP"><font color="#000000">&lt;return-to-top&gt;</font></a></h4>\r
+<p align="left">&nbsp;</p>\r
+<h3 align="left"><a name="cmtest"></a>cmtest - Connection Manager Tests</h3>\r
+<p>Usage: cmtest [options]</p>\r
+<p>&nbsp;&nbsp;&nbsp; Options:</p>\r
+<blockquote>\r
+       <p>&nbsp;-s --server This option directs cmtest to act as a Server<br>\r
+&nbsp;-l\r
+       <lid>--local\r
+       <lid>This option specifies the local endpoint.<br>\r
+&nbsp;-r\r
+       <lid>--remote\r
+       <lid>This option specifies the remote endpoint.<br>\r
+&nbsp;-c\r
+       <number>--connect\r
+       <number>This option specifies the number of connections to open. Default of \r
+       1.<br>\r
+&nbsp;-m\r
+       <bytes>--msize\r
+       <bytes>This option specifies the byte size of each message. Default is 100 \r
+       bytes.<br>\r
+&nbsp;-n\r
+       <number>--nmsgs\r
+       <number>This option specifies the number of messages to send at a time.<br>\r
+&nbsp;-p --permsg This option indicates if a separate buffer should be used per \r
+       message. Default is one buffer for all messages.<br>\r
+&nbsp;-i\r
+       <number>--iterate\r
+       <number>This option specifies the number of times to loop through 'nmsgs'. \r
+       Default of 1.<br>\r
+&nbsp;-v --verbose This option enables verbosity level to debug console.<br>\r
+&nbsp;-h --help Display this usage info then exit.</p>\r
+</blockquote>\r
+<h4 align="left"><a href="#TOP"><font color="#000000">&lt;return-to-top&gt;</font></a></h4>\r
+<p align="left">&nbsp;</p>\r
+<p align="left">&nbsp;</p>\r
+<h3 align="left"><a name="printip"></a>PrintIP - print ip adapters and their addresses</h3>\r
+<blockquote>\r
+       <p align="left">PrintIP is used to print IP adapters and their addresses, or \r
+       ARP (Address Resolution Protocol) and IP address.<br>\r
+       <br>\r
+       Usage:<br>\r
+&nbsp;&nbsp;&nbsp; printip &lt;print_ips&gt;<br>\r
+&nbsp;&nbsp;&nbsp; printip &lt;remoteip&gt; &lt;ip&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \r
+       (example printip remoteip 10.10.2.20)</p>\r
+</blockquote>\r
+<h3 align="left"><a href="#TOP"><font color="#000000">&lt;return-to-top&gt;</font></a></h3>\r
+<p align="left">&nbsp;</p>\r
+<h3 align="left">\r
+<br>\r
+<a name="vstat"></a>vstat - HCA Stats and Counters</h3>\r
+<blockquote>\r
+       <p align="left">Display HCA (Host channel Adapter) attributes.</p>\r
+       <p align="left">Usage: vstat [-v] [-c]<br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -v - verbose mode<br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -c - HCA error/statistic \r
+       counters</p>\r
+</blockquote>\r
+<h4 align="left"><a href="#TOP"><font color="#000000">&lt;return-to-top&gt;</font></a></h4>\r
+<p align="left">&nbsp;</p>\r
+<h3 align="left"><a name="opensm"></a>Subnet Management with OpenSM Rev: openib-1.2.0</h3>\r
+<p align="left">A single running process (opensm.exe) is required to configure \r
+and thus make an Infiniband subnet useable.&nbsp; For most cases, invoking \r
+opensm.exe with no arguments from a command window is sufficient to correctly configure most \r
+Infiniband fabrics.</p>\r
+<p align="left">The Infiniband subnet management process (opensm) may exist on a \r
+Windows (WinOF) node or a Linux (OFED) node but not both!<br>\r
+One OpenSM per IB fabric.</p>\r
+<h4>OpenIB Subnet Management as a Windows Service</h4>\r
+<p>InfiniBand subnet management is installed by default, although it is NOT \r
+enabled by default. There are two ways to enable OpenSM on a node:</p>\r
+<ol style="margin-bottom: 0in">\r
+       <li>Manual - In a command window run 'opensm.exe', command window/opensm.exe \r
+       must remain active in order for the fabric to remain configured.</li>\r
+       <li>Start OpenSM as a Windows service:<br>\r
+       a) Request a 'Custom' install, selecting the OpenSM install feature; the \r
+       preferred method.<br>\r
+       b) Manually create/start the OpenSM service:<br>\r
+&nbsp;&nbsp;&nbsp; 1) sc create opensm binPath= &quot;<a href="file:///C:/Program%20Files/WinOF/opensm.exe%20--service" style="color: blue; text-decoration: underline">C:\Program \r
+       Files\WinOF\opensm.exe --service</a>&quot; start= auto DisplayName= &quot;IB Subnet \r
+       Manager&quot;<br>\r
+&nbsp;&nbsp;&nbsp; 2) sc start opensm<br>\r
+&nbsp;&nbsp;&nbsp; 3) sc qc opensm&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \r
+       rem Query service description,&nbsp; 'sc stop opensm'&nbsp; Stops the opensm \r
+       service</li>\r
+</ol>\r
+<p>WARNING - only 'one' OpenSM per IB fabric.</p>\r
+<hr>\r
+<p align="left">Usage: opensm [options]</p>\r
+<p align="left">Options:</p>\r
+<blockquote>\r
+       <p align="left">-c<br>\r
+       --cache-options</p>\r
+       <blockquote>\r
+               <p align="left">Cache the given command line options into the file<br>\r
+               /var/cache/osm/opensm.opts for use next invocation<br>\r
+               The cache directory can be changed by the environment<br>\r
+               variable OSM_CACHE_DIR</p>\r
+       </blockquote>\r
+       <p align="left">-g[=]&lt;GUID in hex&gt;<br>\r
+       --guid[=]&lt;GUID in hex&gt;</p>\r
+       <blockquote>\r
+               <p align="left">This option specifies the local port GUID value with \r
+               which OpenSM should bind. OpenSM may be<br>\r
+               bound to 1 port at a time.&nbsp; If GUID given is 0, OpenSM displays a \r
+               list of possible port GUIDs and waits for user input. Without -g, OpenSM \r
+               trys to use the default port.</p>\r
+       </blockquote>\r
+       <p align="left">-l &lt;LMC&gt;<br>\r
+       --lmc &lt;LMC&gt;</p>\r
+       <blockquote>\r
+               <p align="left">This option specifies the subnet's LMC value.<br>\r
+               The number of LIDs assigned to each port is 2^LMC.<br>\r
+               The LMC value must be in the range 0-7.<br>\r
+               LMC values &gt; 0 allow multiple paths between ports.<br>\r
+               LMC values &gt; 0 should only be used if the subnet<br>\r
+               topology actually provides multiple paths between<br>\r
+               ports, i.e. multiple interconnects between switches.<br>\r
+               Without -l, OpenSM defaults to LMC = 0, which allows<br>\r
+               one path between any two ports.</p>\r
+       </blockquote>\r
+       <p align="left">-p &lt;PRIORITY&gt;<br>\r
+       --priority &lt;PRIORITY&gt;</p>\r
+       <blockquote>\r
+               <p align="left">This option specifies the SM's PRIORITY.<br>\r
+               This will effect the handover cases, where master<br>\r
+               is chosen by priority and GUID.<br>\r
+               -smkey &lt;SM_Key&gt;<br>\r
+               This option specifies the SM's SM_Key (64 bits).<br>\r
+               This will effect SM authentication.</p>\r
+       </blockquote>\r
+       <p align="left">-r<br>\r
+       --reassign_lids</p>\r
+       <blockquote>\r
+               <p align="left"><br>\r
+               This option causes OpenSM to reassign LIDs to all end nodes. Specifying \r
+               -r on a running subnet<br>\r
+               may disrupt subnet traffic.&nbsp; Without -r, OpenSM attempts to \r
+               preserve existing LID assignments resolving multiple use of same LID.</p>\r
+       </blockquote>\r
+       <p align="left">-u<br>\r
+       --updn</p>\r
+       <blockquote>\r
+               <p align="left">This option activate UPDN algorithm instead of Min Hop \r
+               algorithm (default).</p>\r
+       </blockquote>\r
+       <p align="left">-a<br>\r
+       --add_guid_file &lt;path to file&gt;</p>\r
+       <blockquote>\r
+               <p align="left">Set the root nodes for the Up/Down routing algorithm to \r
+               the guids provided in the given file (one per line)</p>\r
+       </blockquote>\r
+       <p align="left">-o<br>\r
+       --once</p>\r
+       <blockquote>\r
+               <p align="left">This option causes OpenSM to configure the subnet once, \r
+               then exit. Ports remain in the ACTIVE state.</p>\r
+       </blockquote>\r
+       <p align="left">-s &lt;interval&gt;<br>\r
+       --sweep &lt;interval&gt;</p>\r
+       <blockquote>\r
+               <p align="left">This option specifies the number of seconds between \r
+               subnet sweeps. Specifying -s 0 disables sweeping.<br>\r
+               Without -s, OpenSM defaults to a sweep interval of 10 seconds.</p>\r
+       </blockquote>\r
+       <p align="left">-t &lt;milliseconds&gt;<br>\r
+       --timeout &lt;milliseconds&gt;</p>\r
+       <blockquote>\r
+               <p align="left">This option specifies the time in milliseconds<br>\r
+               used for transaction timeouts.<br>\r
+               Specifying -t 0 disables timeouts.<br>\r
+               Without -t, OpenSM defaults to a timeout value of<br>\r
+               200 milliseconds.</p>\r
+       </blockquote>\r
+       <p align="left">-maxsmps &lt;number&gt;</p>\r
+       <blockquote>\r
+               <p align="left">This option specifies the number of VL15 SMP MADs \r
+               allowed on the wire at any one time.<br>\r
+               Specifying -maxsmps 0 allows unlimited outstanding SMPs.<br>\r
+               Without -maxsmps, OpenSM defaults to a maximum of one outstanding SMP.</p>\r
+       </blockquote>\r
+       <p align="left">-i &lt;equalize-ignore-guids-file&gt;<br>\r
+       -ignore-guids &lt;equalize-ignore-guids-file&gt;</p>\r
+       <blockquote>\r
+               <p align="left">This option provides the means to define a set of ports\r
+               (by guids) that will be ignored by the link load&nbsp;\r
+               equalization algorithm.</p>\r
+       </blockquote>\r
+       <p align="left">-x<br>\r
+       --honor_guid2lid</p>\r
+       <blockquote>\r
+               <p align="left">This option forces OpenSM to honor the guid2lid file,\r
+               when it comes out of Standby state, if such file exists\r
+               under OSM_CACHE_DIR, and is valid.\r
+               By default this is FALSE.</p>\r
+       </blockquote>\r
+       <p align="left">-f<br>\r
+       --log_file</p>\r
+       <blockquote>\r
+               <p align="left">This option defines the log to be the given file. By \r
+               default the log goes to %SystemRoot%\temp\osm.log.<br>\r
+               For the log to go to standard output use -f stdout.</p>\r
+       </blockquote>\r
+       <p align="left">-e<br>\r
+       --erase_log_file</p>\r
+       <blockquote>\r
+               <p align="left">This option will cause deletion of the log file&nbsp; \r
+               (if it previously exists). By default, the log file is accumulative.</p>\r
+       </blockquote>\r
+       <p align="left">-y<br>\r
+       --stay_on_fatal</p>\r
+       <blockquote>\r
+               <p align="left">This option will cause SM not to exit on fatal \r
+               initialization\r
+               issues: if SM discovers duplicated guids or 12x link with\r
+               lane reversal badly configured.\r
+               By default, the SM will exit on these errors.</p>\r
+       </blockquote>\r
+       <p align="left">-v<br>\r
+       --verbose</p>\r
+       <blockquote>\r
+               <p align="left">This option increases the log verbosity level.\r
+               The -v option may be specified multiple times\r
+               to further increase the verbosity level.&nbsp;\r
+               See the -vf option for more information about.\r
+               log verbosity.</p>\r
+       </blockquote>\r
+       <p align="left">-V</p>\r
+       <blockquote>\r
+               <p align="left">This option sets the maximum verbosity level and\r
+               forces log flushing.<br>\r
+               The -V is equivalent to '-vf 0xFF -d 2'.\r
+               See the -vf option for more information about\r
+               log verbosity.</p>\r
+       </blockquote>\r
+       <p align="left">-D &lt;flags&gt;</p>\r
+       <blockquote>\r
+               <p align="left">This option sets the log verbosity level.&nbsp; A flags \r
+               field must follow the -D option.<br>\r
+               A bit set/clear in the flags enables/disables a specific log level as \r
+               follows:<br>\r
+               BIT LOG LEVEL ENABLED<br>\r
+               ---- -----------------<br>\r
+               0x01 - ERROR (error messages)<br>\r
+               0x02 - INFO (basic messages, low volume)<br>\r
+               0x04 - VERBOSE (interesting stuff, moderate volume)<br>\r
+               0x08 - DEBUG (diagnostic, high volume)<br>\r
+               0x10 - FUNCS (function entry/exit, very high volume)<br>\r
+               0x20 - FRAMES (dumps all SMP and GMP frames)<br>\r
+               0x40 - ROUTING (dump FDB routing information)<br>\r
+               0x80 - currently unused.<br>\r
+               Without -D, OpenSM defaults to ERROR + INFO (0x3).<br>\r
+               Specifying -D 0 disables all messages.<br>\r
+               Specifying -D 0xFF enables all messages (see -V).<br>\r
+               High verbosity levels may require increasing the transaction timeout \r
+               with the -t option.</p>\r
+       </blockquote>\r
+       <p align="left">-d &lt;number&gt;<br>\r
+       --debug &lt;number&gt;</p>\r
+       <blockquote>\r
+               <p align="left">This option specifies a debug option. These options are \r
+               not normally needed. The number following -d selects the debug option to \r
+               enable as follows:<br>\r
+               OPT Description<br>\r
+               --- -----------------<br>\r
+               -d0 - Ignore other SM nodes<br>\r
+               -d1 - Force single threaded dispatching<br>\r
+               -d2 - Force log flushing after each log message<br>\r
+               -d3 - Disable multicast support<br>\r
+               -d4 - Put OpenSM in memory tracking mode<br>\r
+               -d10 - Put OpenSM in testability mode<br>\r
+               Without -d, no debug options are enabled</p>\r
+       </blockquote>\r
+       <p align="left">-h<br>\r
+       --help</p>\r
+       <blockquote>\r
+               <p align="left">Display this usage info then exit.</p>\r
+       </blockquote>\r
+       <p align="left">-?</p>\r
+       <blockquote>\r
+               <p align="left">Display this usage info then exit.</p>\r
+       </blockquote>\r
+</blockquote>\r
+<h4 align="left"><a href="#TOP"><font color="#000000">&lt;return-to-top&gt;</font></a></h4>\r
+<h3 align="left">&nbsp;</h3>\r
+<h3 align="left"><a name="osmtest"></a>Osmtest - Subnet Management Tests</h3>\r
+<p align="left">Invoke open subnet management tests.</p>\r
+<blockquote>\r
+       <p align="left">&nbsp;Usage: osmtest [options]</p>\r
+       <p align="left">Options:</p>\r
+       <blockquote>\r
+               <p align="left">&nbsp;-f &lt;c|a|v|s|e|f|m|q|t&gt;<br>\r
+               --flow &lt;c|a|v|s|e|f|m|q|t&gt;</p>\r
+\r
+                       <p align="left">This option directs osmtest to run a specific flow:</p>\r
+                       <p align="left">FLOW DESCRIPTIONS<br>\r
+                       c = create an inventory file with all nodes, ports &amp; paths.<br>\r
+                       a = run all validation tests (expecting an input inventory)<br>\r
+                       v = only validate the given inventory file.<br>\r
+                       s = run service registration, un-registration and lease.<br>\r
+                       e = run event forwarding test.<br>\r
+                       f = flood the SA with queries accoring to the stress mode.<br>\r
+                       m = multicast flow.<br>\r
+                       q = QoS info - VLArb and SLtoVL tables.<br>\r
+                       t = run trap 64/65 flow; requires running an external tool.<br>\r
+                       (default is all but QoS).</p>\r
+       \r
+               <p align="left">-w &lt;trap_wait_time&gt;<br>\r
+               --wait &lt;trap_wait_time&gt;</p>\r
+               <blockquote>\r
+                       <p align="left">This option specifies the wait time for trap 64/65 \r
+                       in seconds.<br>\r
+                       It is used only when running -f t - the trap 64/65 flow<br>\r
+                       (default to 10 sec).</p>\r
+               </blockquote>\r
+               <p align="left">-d &lt;number&gt;<br>\r
+               --debug &lt;number&gt;</p>\r
+               <blockquote>\r
+                       <p align="left">This option specifies a debug option.\r
+                       These options are not normally needed.<br>\r
+                       The number following -d selects the debug\r
+                       option to enable as follows:<br>\r
+                       OPT Description<br>\r
+                       --- -----------------<br>\r
+                       -d0 - Unused.<br>\r
+                       -d1 - Do not scan/compare path records.<br>\r
+                       -d2 - Force log flushing after each log message.<br>\r
+                       -d3 - Use mem tracking.<br>\r
+                       Without -d, no debug options are enabled.</p>\r
+               </blockquote>\r
+               <p align="left">-m &lt;LID in hex&gt;<br>\r
+               --max_lid &lt;LID in hex&gt;</p>\r
+               <blockquote>\r
+                       <p align="left">This option specifies the maximal LID number to be \r
+                       searched\r
+                       for during inventory file build (default to 100).</p>\r
+               </blockquote>\r
+               <p align="left">-g &lt;GUID in hex&gt;<br>\r
+               --guid &lt;GUID in hex&gt;</p>\r
+               <blockquote>\r
+                       <p align="left">This option specifies the local port GUID value\r
+                       with which osmtest should bind. osmtest may be\r
+                       bound to 1 port at a time.\r
+                       Without -g, osmtest displays a menu of possible\r
+                       port GUIDs and waits for user input.</p>\r
+               </blockquote>\r
+               <p align="left">-h<br>\r
+               --help</p>\r
+               <blockquote>\r
+                       <p align="left">Display this usage info then exit.</p>\r
+               </blockquote>\r
+               <p align="left">-i &lt;filename&gt;<br>\r
+               --inventory &lt;filename&gt;</p>\r
+               <blockquote>\r
+                       <p align="left">This option specifies the name of the inventory \r
+                       file.\r
+                       Normally, osmtest expects to find an inventory file,\r
+                       which osmtest uses to validate real-time information\r
+                       received from the SA during testing.\r
+                       If -i is not specified, osmtest defaults to the file\r
+                       'osmtest.dat'.<br>\r
+                       See the -c option for related information.</p>\r
+               </blockquote>\r
+               <p align="left">-s<br>\r
+               --stress</p>\r
+               <blockquote>\r
+                       <p align="left">This option runs the specified stress test instead \r
+                       of the normal test suite.<br>\r
+                       Stress test options are as follows:<br>\r
+                       OPT Description<br>\r
+                       --- -----------------<br>\r
+                       -s1 - Single-MAD response SA queries .<br>\r
+                       -s2 - Multi-MAD (RMPP) response SA queries.<br>\r
+                       -s3 - Multi-MAD (RMPP) Path Record SA queries.<br>\r
+                       Without -s, stress testing is not performed.</p>\r
+               </blockquote>\r
+               <p align="left">-M<br>\r
+               --Multicast_Mode</p>\r
+               <blockquote>\r
+                       <p align="left">This option specify length of Multicast test :<br>\r
+                       OPT Description<br>\r
+                       --- -----------------<br>\r
+                       -M1 - Short Multicast Flow (default) - single mode.<br>\r
+                       -M2 - Short Multicast Flow - multiple mode.<br>\r
+                       -M3 - Long Multicast Flow - single mode.<br>\r
+                       -M4 - Long Multicast Flow - multiple mode.<br>\r
+                       Single mode - Osmtest is tested alone , with no other <br>\r
+                       apps that interact vs. OpenSM MC.<br>\r
+                       Multiple mode - Could be run with other apps using MC vs.<br>\r
+                       OpenSM. Without -M, default flow testing is performed.</p>\r
+               </blockquote>\r
+               <p align="left">-t &lt;milliseconds&gt;</p>\r
+               <blockquote>\r
+                       <p align="left">This option specifies the time in milliseconds used \r
+                       for transaction timeouts.<br>\r
+                       Specifying -t 0 disables timeouts.<br>\r
+                       Without -t, osmtest defaults to a timeout value of 1 second.</p>\r
+               </blockquote>\r
+               <p align="left">-l<br>\r
+               --log_file</p>\r
+               <blockquote>\r
+                       <p align="left">This option defines the log to be the given file.<br>\r
+                       By default the log goes to stdout.</p>\r
+               </blockquote>\r
+               <p align="left">-v</p>\r
+               <blockquote>\r
+                       <p align="left">This option increases the log verbosity level. The \r
+                       -v option may be specified multiple times<br>\r
+                       to further increase the verbosity level. See the -vf option for more \r
+                       information about log verbosity.</p>\r
+               </blockquote>\r
+               <p align="left">-V</p>\r
+               <blockquote>\r
+                       <p align="left">This option sets the maximum verbosity level and \r
+                       forces log flushing.<br>\r
+                       The -V is equivalent to '-vf 0xFF -d 2'.<br>\r
+                       See the -vf option for more information about log verbosity.</p>\r
+               </blockquote>\r
+               <p align="left">-vf &lt;flags&gt;</p>\r
+               <blockquote>\r
+                       <p align="left">This option sets the log verbosity level. A flags \r
+                       field must follow the -vf option.<br>\r
+                       A bit set/clear in the flags enables/disables a specific log level \r
+                       as follows:<br>\r
+                       BIT LOG LEVEL ENABLED<br>\r
+                       ---- -----------------<br>\r
+                       0x01 - ERROR (error messages)<br>\r
+                       0x02 - INFO (basic messages, low volume)<br>\r
+                       0x04 - VERBOSE (interesting stuff, moderate volume)<br>\r
+                       0x08 - DEBUG (diagnostic, high volume)<br>\r
+                       0x10 - FUNCS (function entry/exit, very high volume)<br>\r
+                       0x20 - FRAMES (dumps all SMP and GMP frames)<br>\r
+                       0x40 - currently unused.<br>\r
+                       0x80 - currently unused.<br>\r
+                       Without -vf, osmtest defaults to ERROR + INFO (0x3).<br>\r
+                       Specifying -vf 0 disables all messages.<br>\r
+                       Specifying -vf 0xFF enables all messages (see -V).<br>\r
+                       High verbosity levels may require increasing<br>\r
+                       the transaction timeout with the -t option.</p>\r
+               </blockquote>\r
+       </blockquote>\r
+</blockquote>\r
+<h4 align="left"><a href="#TOP"><font color="#000000">&lt;return-to-top&gt;</font></a></h4>\r
+<h3 align="left">&nbsp;</h3>\r
+<h3 align="left"><br>\r
+<a name="ibtrapgen"></a>ibtrapgen - Generate Infiniband subnet management traps</h3>\r
+<p align="left">Usage: ibtrapgen -t|--trap_num &lt;TRAP_NUM&gt; -n|--number &lt;NUM_TRAP_CREATIONS&gt;<br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \r
+-r|--rate &lt;TRAP_RATE&gt; -l|--lid &lt;LIDADDR&gt; <br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \r
+-s|--src_port &lt;SOURCE_PORT&gt; -p|--port_num &lt;PORT_NUM&gt;<br>\r
+<br>\r
+Options: one of the following optional flows:</p>\r
+<blockquote>\r
+       <p align="left">-t &lt;TRAP_NUM&gt;<br>\r
+       --trap_num &lt;TRAP_NUM&gt;<br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; This option specifies the \r
+       number of the trap to generate. Valid values are 128-131.<br>\r
+       -n &lt;NUM_TRAP_CREATIONS&gt;<br>\r
+       --number &lt;NUM_TRAP_CREATIONS&gt;<br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; This option specifies the \r
+       number of times to generate this trap.<br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If not specified - \r
+       default to 1.<br>\r
+       -r &lt;TRAP_RATE&gt;<br>\r
+       --rate &lt;TRAP_RATE&gt;<br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; This option specifies the \r
+       rate of the trap generation.<br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; What is the time period \r
+       between one generation and another?<br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; The value is given in \r
+       miliseconds. <br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If the number of trap \r
+       creations is 1 - this value is ignored.<br>\r
+       -l &lt;LIDADDR&gt;<br>\r
+       --lid &lt;LIDADDR&gt;<br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; This option specifies the \r
+       lid address from where the trap should be generated.<br>\r
+       -s &lt;SOURCE_PORT&gt;<br>\r
+       --src_port &lt;SOURCE_PORT&gt;<br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; This option specifies the \r
+       port number from which the trap should<br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; be generated. If trap \r
+       number is 128 - this value is ignored (since<br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; trap 128 is not sent with \r
+       a specific port number)<br>\r
+       -p &lt;port num&gt;<br>\r
+       --port_num &lt;port num&gt;<br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; This is the port number \r
+       used for communicating with the SA.<br>\r
+       -h<br>\r
+       --help<br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Display this usage info \r
+       then exit.<br>\r
+       -o<br>\r
+       --out_log_file<br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; This option defines the \r
+       log to be the given file.<br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; By default the log goes \r
+       to stdout.<br>\r
+       -v<br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; This option increases the \r
+       log verbosity level.<br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; The -v option may be \r
+       specified multiple times to further increase the verbosity level.<br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; See the -vf option for \r
+       more information about log verbosity.<br>\r
+       -V<br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; This option sets the \r
+       maximum verbosity level and forces log flushing.<br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; The -V is equivalent to \r
+       '-vf 0xFF -d 2'.<br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; See the -vf option for \r
+       more information about. log verbosity.<br>\r
+       -x &lt;flags&gt;<br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; This option sets the log \r
+       verbosity level.<br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; A flags field must follow \r
+       the -vf option.<br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; A bit set/clear in the \r
+       flags enables/disables a<br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; specific log level as \r
+       follows:</p>\r
+       <blockquote>\r
+               <p align="left">BIT LOG LEVEL ENABLED<br>\r
+               ---- -----------------<br>\r
+               0x01 - ERROR (error messages)<br>\r
+               0x02 - INFO (basic messages, low volume)<br>\r
+               0x04 - VERBOSE (interesting stuff, moderate volume)<br>\r
+               0x08 - DEBUG (diagnostic, high volume)<br>\r
+               0x10 - FUNCS (function entry/exit, very high volume)<br>\r
+               0x20 - FRAMES (dumps all SMP and GMP frames)<br>\r
+               0x40 - currently unused.<br>\r
+               0x80 - currently unused.<br>\r
+               Without -x, ibtrapgen defaults to ERROR + INFO (0x3).<br>\r
+               Specifying -x 0 disables all messages.<br>\r
+               Specifying -x 0xFF enables all messages (see -V).</p>\r
+       </blockquote>\r
+</blockquote>\r
+<h4 align="left"><a href="#TOP"><font color="#000000">&lt;return-to-top&gt;</font></a></h4>\r
+<p align="left">&nbsp;</p>\r
+<p align="left">&nbsp;</p>\r
+<h3 align="left"><a name="IPoIB"></a>IPoIB - Internet Protocols over InfiniBand</h3>\r
+<p align="left">IPoIB enables the use of Internet Protocol utilities (e.g., ftp, \r
+telnet) to function correctly over an Infiniband fabric. IPoIB is implemented as \r
+an NDIS Miniport driver with a WDM lower edge.</p>\r
+<p align="left">The IPoIB Network adapters are \r
+located via 'My Computer-&gt;Manage-&gt;Device Manager-&gt;Network adapters-&gt;IPoIB'.<br>\r
+'My \r
+Network Places-&gt;Properties' will display IPoIB Local Area Connection instances and should be used to \r
+configure IP addresses for the IPoIB interfaces; one Local Area Connection \r
+instance per HCA port. The IP \r
+(Internet Protocol) address bound to the IPoIB adapter instance can be assigned \r
+by DHCP or as a static IP addresses via<br>\r
+'My Network Places-&gt;Properties-&gt;Local \r
+Area Connection X-&gt;Properties-&gt;(General Tab)Internet Protocol(TCP/IP)-&gt;Properties'.</p>\r
+<p align="left">When the subnet manager (opensm) configures/sweeps the local \r
+Infiniband HCA, the Local Area Connection will become enabled. If you discover \r
+the Local Area Connection to be disabled, then likely your subnet manager \r
+(opensm) is not running or functioning correctly.</p>\r
+<h4 align="left"><a href="#TOP"><font color="#000000">&lt;return-to-top&gt;</font></a></h4>\r
+<p align="left">&nbsp;</p>\r
+<p align="left">&nbsp;</p>\r
+<h3 align="left"><a name="winsockdirect"></a>Winsock Direct Service Provider</h3>\r
+<p align="left">Winsock Direct (WSD) is Microsoft's proprietary protocol that \r
+predates SDP (Sockets Direct Protocol) for accelerating TCP/IP applications by \r
+using RDMA hardware. Microsoft had a significant role in defining the SDP \r
+protocol, hence SDP and WSD are remarkably similar, though unfortunately \r
+incompatible.<br>\r
+<br>\r
+WSD is made up of two parts, the winsock direct switch and the winsock direct \r
+provider. The WSD switch is in the winsock DLL that ships in all editions of \r
+Windows Server 2003, and is responsible for routing socket traffic over either \r
+the regular TCP/IP stack, or offload it to a WSD provider. The WSD provider is a \r
+hardware specific DLL that implements connection management and data transfers \r
+over particular RDMA hardware.</p>\r
+<p align="left">The WSD Protocol seamlessly transports TCP \r
+               data using Infiniband data packets in 'buffered' mode or Infiniband \r
+               RDMA in 'direct' mode. Either way the user mode socket application sees no \r
+               difference in the standard Inet socket which it created other than \r
+reduced data transfer times and increased bandwidth.<br>\r
+<br>\r
+The Windows OpenFabrics release includes a WSD provider library that has been \r
+extensively tested with Microsoft Windows Server 2003.</p>\r
+<div id="tiki-main">\r
+       <div id="tiki-mid">\r
+               <table id="table1" cellSpacing="0" cellPadding="0" border="0">\r
+                       <tr>\r
+                               <td id="centercolumn">\r
+                               <div id="tiki-center">\r
+                                       <div class="wikitext">\r
+                                               Environment variables can be used to change the behavior \r
+                                               of the WSD provider:<br>\r
+                                               <br>\r
+                                               IBWSD_NO_READ - Disables RDMA Read operations when set \r
+                                               to any value. Note that this variable must be used \r
+                                               consistently throughout the cluster or communication \r
+                                               will fail.<br>\r
+                                               <br>\r
+                                               IBWSD_POLL - Sets the number of times to poll the \r
+                                               completion queue after processing completions in \r
+                                               response to a CQ event. Reduces latency at the cost of \r
+                                               CPU utilization. Default is 500.<br>\r
+                                               <br>\r
+                                               IBWSD_SA_RETRY - Sets the number of times to retry SA \r
+                                               query requests. Default is 4, can be increased if \r
+                                               connection establishment fails.<br>\r
+                                               <br>\r
+                                               IBWSD_SA_TIMEOUT - Sets the number of milliseconds to \r
+                                               wait before retrying SA query requests. Default is 4, \r
+                                               can be increased if connection establishment fails.<br>\r
+                                               <br>\r
+                                               IBWSD_NO_IPOIB - SA query timeouts by default allow the \r
+                                               connection to be established over IPoIB. Setting this \r
+                                               environment variable to any value prevents fall back to \r
+                                               IPoIB if SA queries time out.<br>\r
+                                               <br>\r
+                                               IBWSD_DBG - Controls debug output when using a debug \r
+                                               version of the WSD provider. Takes a hex value, with \r
+                                               leading '0x', default value is '0x80000000'<br>\r
+                                               <br>\r
+&nbsp;<table class="wikitable" id="table2">\r
+                                                       <tr>\r
+                                                               <td class="wikicell">0x00000001</td>\r
+                                                               <td class="wikicell">DLL</td>\r
+                                                       </tr>\r
+                                                       <tr>\r
+                                                               <td class="wikicell">0x00000002</td>\r
+                                                               <td class="wikicell">socket info</td>\r
+                                                       </tr>\r
+                                                       <tr>\r
+                                                               <td class="wikicell">0x00000004</td>\r
+                                                               <td class="wikicell">initialization code</td>\r
+                                                       </tr>\r
+                                                       <tr>\r
+                                                               <td class="wikicell">0x00000008</td>\r
+                                                               <td class="wikicell">WQ related functions</td>\r
+                                                       </tr>\r
+                                                       <tr>\r
+                                                               <td class="wikicell">0x00000010</td>\r
+                                                               <td class="wikicell">Enpoints related functions</td>\r
+                                                       </tr>\r
+                                                       <tr>\r
+                                                               <td class="wikicell">0x00000020</td>\r
+                                                               <td class="wikicell">memory registration</td>\r
+                                                       </tr>\r
+                                                       <tr>\r
+                                                               <td class="wikicell">0x00000040</td>\r
+                                                               <td class="wikicell">CM</td>\r
+                                                       </tr>\r
+                                                       <tr>\r
+                                                               <td class="wikicell">0x00000080</td>\r
+                                                               <td class="wikicell">connections</td>\r
+                                                       </tr>\r
+                                                       <tr>\r
+                                                               <td class="wikicell">0x00000200</td>\r
+                                                               <td class="wikicell">socket options</td>\r
+                                                       </tr>\r
+                                                       <tr>\r
+                                                               <td class="wikicell">0x00000400</td>\r
+                                                               <td class="wikicell">network events</td>\r
+                                                       </tr>\r
+                                                       <tr>\r
+                                                               <td class="wikicell">0x00000800</td>\r
+                                                               <td class="wikicell">Hardware</td>\r
+                                                       </tr>\r
+                                                       <tr>\r
+                                                               <td class="wikicell">0x00001000</td>\r
+                                                               <td class="wikicell">Overlapped I/O request</td>\r
+                                                       </tr>\r
+                                                       <tr>\r
+                                                               <td class="wikicell">0x00002000</td>\r
+                                                               <td class="wikicell">Socket Duplication</td>\r
+                                                       </tr>\r
+                                                       <tr>\r
+                                                               <td class="wikicell">0x00004000</td>\r
+                                                               <td class="wikicell">Performance Monitoring</td>\r
+                                                       </tr>\r
+                                                       <tr>\r
+                                                               <td class="wikicell">0x01000000</td>\r
+                                                               <td class="wikicell">More verbose than \r
+                                                               IBSP_DBG_LEVEL3</td>\r
+                                                       </tr>\r
+                                                       <tr>\r
+                                                               <td class="wikicell">0x02000000</td>\r
+                                                               <td class="wikicell">More verbose than \r
+                                                               IBSP_DBG_LEVEL2</td>\r
+                                                       </tr>\r
+                                                       <tr>\r
+                                                               <td class="wikicell">0x04000000</td>\r
+                                                               <td class="wikicell">More verbose than \r
+                                                               IBSP_DBG_LEVEL1</td>\r
+                                                       </tr>\r
+                                                       <tr>\r
+                                                               <td class="wikicell">0x08000000</td>\r
+                                                               <td class="wikicell">Verbose output</td>\r
+                                                       </tr>\r
+                                                       <tr>\r
+                                                               <td class="wikicell">0x20000000</td>\r
+                                                               <td class="wikicell">Function enter/exit</td>\r
+                                                       </tr>\r
+                                                       <tr>\r
+                                                               <td class="wikicell">0x40000000</td>\r
+                                                               <td class="wikicell">Warnings</td>\r
+                                                       </tr>\r
+                                                       <tr>\r
+                                                               <td class="wikicell">0x80000000</td>\r
+                                                               <td class="wikicell">Errors</td>\r
+                                                       </tr>\r
+                                               </table>\r
+                                       </div>\r
+                               </div>\r
+                               </td>\r
+                       </tr>\r
+               </table>\r
+       </div>\r
+</div>\r
+<p align="left"><br>\r
+See <a href="https://wiki.openfabrics.org/tiki-index.php?page=Winsock+Direct">\r
+https://wiki.openfabrics.org/tiki-index.php?page=Winsock+Direct</a> for the \r
+latest WSD status.</p>\r
+<h3 align="left">Install Winsock Direct Service Provider</h3>\r
+<p align="left">When the custom install option 'WSD' is selected the WSD service \r
+is automatically installed and started as part of the installation.<br>\r
+Manual control is performed via the \Program Files\WinOF\installsp.exe utility.</p>\r
+<blockquote>\r
+       <p align="left">usage: installsp [-i | -r | -l]<br>\r
+       <br>\r
+       -i&nbsp;&nbsp;&nbsp; Install the Winsock Direct (WSD) service provider<br>\r
+       -r&nbsp;&nbsp;&nbsp; Remove the WSD service provider<br>\r
+       -r &lt;name&gt;&nbsp;&nbsp;&nbsp; Remove the specified service provider<br>\r
+       -l&nbsp;&nbsp;&nbsp; List service providers<br>\r
+&nbsp;</p>\r
+</blockquote>\r
+<h4 align="left"><a href="#TOP"><font color="#000000">&lt;return-to-top&gt;</font></a></h4>\r
+<p align="left">&nbsp;</p>\r
+<p align="left">&nbsp;</p>\r
+<h3 align="left"><a name="DAT"></a>DAT (Direct Access Transport) Library and uDAPL (usermode Direct Access Programing \r
+Library)</h3>\r
+<p align="left">DAT and uDAPL are based on the 1.1 DAT specification. The DAPL \r
+(Direct Access Provider Library) provider now fully supports Infiniband RDMA and \r
+IPoIB.</p>\r
+<div align="left">\r
+       <h3 align="left"><font face="Courier New" size="3">DAT EXECUTION ENVIRONMENT</font><font face="Courier New" size="2">:</font></h3>\r
+</div>\r
+<blockquote>\r
+       <p align="left"><font face="Courier New" size="2">In order for DAT/uDAPL \r
+       programs to execute correctly, the 'dat.dll' file must be present in the \r
+       current directory,\r
+       %SystemRoot%\system32, %SystemRoot% or in the library search path.</font></p>\r
+       <p align="left"><font face="Courier New" size="2">The default WinOF \r
+       installation places the file dat.dll in the '%SystemRoot%' folder.</font></p>\r
+       <p align="left"><font face="Courier New" size="2">The DAPL configuration \r
+       file by default is defined as '%SystemDrive%\DAT\dat.conf'. This default \r
+       specification can be overriden by use of the environment variable \r
+       DAT_OVERRIDE; see following environment variable discussion.</font></p>\r
+       <p align="left"><font face="Courier New" size="2">Within the dat.conf file, \r
+       the DAPL library specification can be located as the 5th whitespace \r
+       separated line argument. By default the DAPL library file is installed as<br>\r
+       '%SystemRoot%\dapl.dll'.</font></p>\r
+       <p align="left"><font face="Courier New" size="2">Should you choose to \r
+       relocated the DAPL library file to a path where whitespace appears in the \r
+       full library path specification, then the full library file specification \r
+       must be contained within double-quotes. A side effect of the double-quotes \r
+       is the library specification is treated as a Windows string which implies \r
+       the '\' (backslash character) is treated as an 'escape' character.&nbsp; Hence \r
+       all backslashes in the library path must be duplicated when enclosed in \r
+       double-quotes\r
+       (e.g., &quot;C:\\Programs Files\\WinOF\\dapl.dll&quot;).</font></p>\r
+       <p align="left"><font face="Courier New" size="2">A sample dat.conf file is \r
+       installed as '\Program Files\WinOF\dat.conf '.<br>\r
+       After the WinOF installation, move the \Program Files\WinOF\dat.conf file to \r
+       the default DAT configuration file location\r
+       '%SystemDrive%\DAT\dat.conf'.</font></p>\r
+       <p align="left"><font face="Courier New" size="2">In order to preserve existing installations, \r
+       the dat.conf file is not automatically installed in it's default location.</font></p>\r
+       <p align="left">&nbsp;</p>\r
+       <h4>\r
+<u>DAT library environment variables</u>:<br>\r
+&nbsp;</h4>\r
+       <pre>\r
+DAT_OVERRIDE\r
+------------\r
+Value used as the static registry configuration file, overriding the\r
+default location, 'C:\DAT\dat.conf'.\r
+\r
+Example: set DAT_OVERRIDE=%SystemDrive%\path\to\my\private.conf\r
+\r
+\r
+DAT_DBG_TYPE\r
+------------\r
+\r
+Value specifies which parts of the registry will print debugging\r
+information, valid values are \r
+\r
+DAT_OS_DBG_TYPE_ERROR = 0x1\r
+DAT_OS_DBG_TYPE_GENERIC = 0x2\r
+DAT_OS_DBG_TYPE_SR = 0x4\r
+DAT_OS_DBG_TYPE_DR = 0x8\r
+DAT_OS_DBG_TYPE_PROVIDER_API = 0x10\r
+DAT_OS_DBG_TYPE_CONSUMER_API = 0x20\r
+DAT_OS_DBG_TYPE_ALL = 0xff\r
+\r
+or any combination of these. For example you can use 0xC to get both \r
+static and dynamic registry output.\r
+\r
+Example set DAT_DBG_TYPE=0xC\r
+\r
+DAT_DBG_DEST\r
+------------ \r
+\r
+Value sets the output destination, valid values are \r
+\r
+DAT_OS_DBG_DEST_STDOUT = 0x1\r
+DAT_OS_DBG_DEST_SYSLOG = 0x2 \r
+DAT_OS_DBG_DEST_ALL = 0x3 \r
+\r
+For example, 0x3 will output to both stdout and the syslog. \r
+</pre>\r
+       <h4>\r
+<u>DAPL Provider library environment variables</u></h4>\r
+       <p>\r
+<br>\r
+<font size="2">DAPL_DBG_TYPE<br>\r
+-------------<br>\r
+<br>\r
+<font face="Courier New">Value specifies which parts of the registry will print \r
+debugging information, valid values are</font> <br>\r
+<br>\r
+</font><font face="Courier New"><font size="2">DAPL_DBG_TYPE_ERR = 0x0001<br>\r
+DAPL_DBG_TYPE_WARN = 0x0002<br>\r
+DAPL_DBG_TYPE_EVD = 0x0004<br>\r
+DAPL_DBG_TYPE_CM = 0x0008<br>\r
+DAPL_DBG_TYPE_EP = 0x0010<br>\r
+DAPL_DBG_TYPE_UTIL = 0x0020<br>\r
+DAPL_DBG_TYPE_CALLBACK = 0x0040<br>\r
+DAPL_DBG_TYPE_DTO_COMP_ERR = 0x0080<br>\r
+DAPL_DBG_TYPE_API = 0x0100<br>\r
+DAPL_DBG_TYPE_RTN = 0x0200<br>\r
+DAPL_DBG_TYPE_EXCEPTION = 0x0400<br>\r
+<br>\r
+or any combination of these. For example you can use 0xC to get both <br>\r
+EVD and CM output.<br>\r
+<br>\r
+Example set DAPL_DBG_TYPE=0xC<br>\r
+<br>\r
+<br>\r
+DAPL_DBG_DEST<br>\r
+-------------<br>\r
+<br>\r
+Value sets the output destination, valid values are <br>\r
+<br>\r
+DAPL_DBG_DEST_STDOUT = 0x1<br>\r
+DAPL_DBG_DEST_SYSLOG = 0x2 <br>\r
+DAPL_DBG_DEST_ALL = 0x3 <br>\r
+<br>\r
+For example, 0x3 will output to both stdout and the syslog.</font> </font><br>\r
+<br>\r
+<br>\r
+\r
+</p>\r
+</blockquote><hr>\r
+<h3>DAPLTEST</h3>\r
+<pre>\r
+\r
+    dapltest - test for the Direct Access Provider Library (DAPL)\r
+\r
+DESCRIPTION\r
+\r
+    Dapltest is a set of tests developed to exercise, characterize,\r
+    and verify the DAPL interfaces during development and porting.\r
+    At least two instantiations of the test must be run.  One acts\r
+    as the server, fielding requests and spawning server-side test\r
+    threads as needed.  Other client invocations connect to the\r
+    server and issue test requests.\r
+\r
+    The server side of the test, once invoked, listens continuously\r
+    for client connection requests, until quit or killed.  Upon\r
+    receipt of a connection request, the connection is established,\r
+    the server and client sides swap version numbers to verify that\r
+    they are able to communicate, and the client sends the test\r
+    request to the server.  If the version numbers match, and the\r
+    test request is well-formed, the server spawns the threads\r
+    needed to run the test before awaiting further connections.\r
+\r
+USAGE\r
+\r
+    dapltest [ -f script_file_name ]\r
+             [ -T S|Q|T|P|L ] [ -D device_name ] [ -d ] [ -R HT|LL|EC|PM|BE ]\r
+\r
+    With no arguments, dapltest runs as a server using default values,\r
+    and loops accepting requests from clients.  The -f option allows\r
+    all arguments to be placed in a file, to ease test automation.\r
+    The following arguments are common to all tests:\r
+\r
+    [ -T S|Q|T|P|L ]    Test function to be performed:\r
+                            S   - server loop\r
+                            Q   - quit, client requests that server\r
+                                  wait for any outstanding tests to\r
+                                  complete, then clean up and exit\r
+                            T   - transaction test, transfers data between \r
+                                  client and server\r
+                            P   - performance test, times DTO operations\r
+                            L   - limit test, exhausts various resources,\r
+                                  runs in client w/o server interaction\r
+                        Default: S\r
+\r
+    [ -D device_name ]  Specifies the name of the device (interface adapter).\r
+                        Default: host-specific, look for DT_MdepDeviceName\r
+                                 in dapl_mdep.h\r
+\r
+    [ -d ]              Enables extra debug verbosity, primarily tracing\r
+                       of the various DAPL operations as they progress.\r
+                       Repeating this parameter increases debug spew.\r
+                       Errors encountered result in the test spewing some\r
+                       explanatory text and stopping; this flag provides\r
+                       more detail about what lead up to the error.\r
+                        Default: zero\r
+\r
+    [ -R BE ]           Indicate the quality of service (QoS) desired.\r
+                        Choices are:\r
+                            HT  - high throughput\r
+                            LL  - low latency\r
+                            EC  - economy (neither HT nor LL)\r
+                            PM  - premium\r
+                            BE  - best effort\r
+                        Default: BE\r
+\r
+USAGE - Quit test client\r
+\r
+    dapltest [Common_Args] [ -s server_name ]\r
+\r
+    Quit testing (-T Q) connects to the server to ask it to clean up and\r
+    exit (after it waits for any outstanding test runs to complete).\r
+    In addition to being more polite than simply killing the server,\r
+    this test exercises the DAPL object teardown code paths.\r
+    There is only one argument other than those supported by all tests:\r
+\r
+    -s server_name      Specifies the name of the server interface.\r
+                        No default.\r
+\r
+\r
+USAGE - Transaction test client\r
+\r
+    dapltest [Common_Args] [ -s server_name ]\r
+             [ -t threads ] [ -w endpoints ] [ -i iterations ] [ -Q ] \r
+             [ -V ] [ -P ] OPclient OPserver [ op3, \r
+\r
+    Transaction testing (-T T) transfers a variable amount of data between \r
+    client and server.  The data transfer can be described as a sequence of \r
+    individual operations; that entire sequence is transferred 'iterations' \r
+    times by each thread over all of its endpoint(s).\r
+\r
+    The following parameters determine the behavior of the transaction test:\r
+\r
+    -s server_name      Specifies the hostname of the dapltest server.\r
+                        No default.\r
+\r
+    [ -t threads ]      Specify the number of threads to be used.\r
+                        Default: 1\r
+\r
+    [ -w endpoints ]    Specify the number of connected endpoints per thread.\r
+                        Default: 1\r
+\r
+    [ -i iterations ]   Specify the number of times the entire sequence\r
+                        of data transfers will be made over each endpoint.\r
+                        Default: 1000\r
+\r
+    [ -Q ]              Funnel completion events into a CNO.\r
+                       Default: use EVDs\r
+\r
+    [ -V ]              Validate the data being transferred.\r
+                       Default: ignore the data\r
+\r
+    [ -P ]             Turn on DTO completion polling\r
+                       Default: off\r
+\r
+    OP1 OP2 [ OP3, ... ]\r
+                        A single transaction (OPx) consists of:\r
+\r
+                        server|client   Indicates who initiates the\r
+                                        data transfer.\r
+\r
+                        SR|RR|RW        Indicates the type of transfer:\r
+                                        SR  send/recv\r
+                                        RR  RDMA read\r
+                                        RW  RDMA write\r
+                        Defaults: none\r
+\r
+                        [ seg_size [ num_segs ] ]\r
+                                        Indicates the amount and format\r
+                                        of the data to be transferred.\r
+                                        Default:  4096  1\r
+                                                  (i.e., 1 4KB buffer)\r
+\r
+                        [ -f ]          For SR transfers only, indicates\r
+                                        that a client's send transfer\r
+                                        completion should be reaped when\r
+                                        the next recv completion is reaped.\r
+                                       Sends and receives must be paired\r
+                                       (one client, one server, and in that\r
+                                       order) for this option to be used.\r
+\r
+    Restrictions:  \r
+    \r
+    Due to the flow control algorithm used by the transaction test, there \r
+    must be at least one SR OP for both the client and the server.  \r
+\r
+    Requesting data validation (-V) causes the test to automatically append \r
+    three OPs to those specified. These additional operations provide \r
+    synchronization points during each iteration, at which all user-specified \r
+    transaction buffers are checked. These three appended operations satisfy \r
+    the &quot;one SR in each direction&quot; requirement.\r
+\r
+    The transaction OP list is printed out if -d is supplied.\r
+\r
+USAGE - Performance test client\r
+\r
+    dapltest [Common_Args] -s server_name [ -m p|b ]\r
+             [ -i iterations ] [ -p pipeline ] OP\r
+\r
+    Performance testing (-T P) times the transfer of an operation.\r
+    The operation is posted 'iterations' times.\r
+\r
+    The following parameters determine the behavior of the transaction test:\r
+\r
+    -s server_name      Specifies the hostname of the dapltest server.\r
+                        No default.\r
+\r
+    -m b|p             Used to choose either blocking (b) or polling (p)\r
+                        Default: blocking (b)\r
+\r
+    [ -i iterations ]   Specify the number of times the entire sequence\r
+                        of data transfers will be made over each endpoint.\r
+                        Default: 1000\r
+\r
+    [ -p pipeline ]     Specify the pipline length, valid arguments are in \r
+                        the range [0,MAX_SEND_DTOS]. If a value greater than \r
+                        MAX_SEND_DTOS is requested the value will be\r
+                        adjusted down to MAX_SEND_DTOS.\r
+                        Default: MAX_SEND_DTOS\r
+\r
+    OP\r
+                        An operation consists of:\r
+\r
+                        RR|RW           Indicates the type of transfer:\r
+                                        RR  RDMA read\r
+                                        RW  RDMA write\r
+                        Default: none\r
+\r
+                        [ seg_size [ num_segs ] ]\r
+                                        Indicates the amount and format\r
+                                        of the data to be transferred.\r
+                                        Default:  4096  1\r
+                                                  (i.e., 1 4KB buffer)\r
+\r
+USAGE - Limit test client\r
+\r
+    Limit testing (-T L) neither requires nor connects to any server\r
+    instance.  The client runs one or more tests which attempt to\r
+    exhaust various resources to determine DAPL limits and exercise\r
+    DAPL error paths.  If no arguments are given, all tests are run.\r
+\r
+    Limit testing creates the sequence of DAT objects needed to\r
+    move data back and forth, attempting to find the limits supported\r
+    for the DAPL object requested.  For example, if the LMR creation\r
+    limit is being examined, the test will create a set of\r
+    {IA, PZ, CNO, EVD, EP} before trying to run dat_lmr_create() to\r
+    failure using that set of DAPL objects.  The 'width' parameter\r
+    can be used to control how many of these parallel DAPL object\r
+    sets are created before beating upon the requested constructor.\r
+    Use of -m limits the number of dat_*_create() calls that will\r
+    be attempted, which can be helpful if the DAPL in use supports\r
+    essentailly unlimited numbers of some objects.\r
+\r
+    The limit test arguments are:\r
+\r
+    [ -m maximum ]      Specify the maximum number of dapl_*_create()\r
+                        attempts.\r
+                        Default: run to object creation failure\r
+\r
+    [ -w width ]        Specify the number of DAPL object sets to\r
+                        create while initializing.\r
+                        Default: 1\r
+\r
+    [ limit_ia ]        Attempt to exhaust dat_ia_open()\r
+\r
+    [ limit_pz ]        Attempt to exhaust dat_pz_create()\r
+\r
+    [ limit_cno ]       Attempt to exhaust dat_cno_create()\r
+\r
+    [ limit_evd ]       Attempt to exhaust dat_evd_create()\r
+\r
+    [ limit_ep ]        Attempt to exhaust dat_ep_create()\r
+\r
+    [ limit_rsp ]       Attempt to exhaust dat_rsp_create()\r
+\r
+    [ limit_psp ]       Attempt to exhaust dat_psp_create()\r
+\r
+    [ limit_lmr ]       Attempt to exhaust dat_lmr_create(4KB)\r
+\r
+    [ limit_rpost ]     Attempt to exhaust dat_ep_post_recv(4KB)\r
+\r
+    [ limit_size_lmr ]  Probe maximum size dat_lmr_create()\r
+\r
+                        Default: run all tests\r
+\r
+\r
+EXAMPLES\r
+\r
+    dapltest -T S -d -D ibnic0\r
+\r
+                        Starts a server process with debug verbosity.\r
+    \r
+    dapltest -T T -d -s winIB -D ibnic0 -i 100 \\r
+    client SR 4096 2 server SR 4096 2\r
+\r
+                        Runs a transaction test, with both sides\r
+                        sending one buffer with two 4KB segments,\r
+                        one hundred times; dapltest server is on host winIB.\r
+\r
+    dapltest -T P -d -s winIB -D JniIbdd0 -i 100 SR 4096 2\r
+\r
+                        Runs a performance test, with the client \r
+                        sending one buffer with two 4KB segments,\r
+                        one hundred times.\r
+\r
+    dapltest -T Q -s winIB -D ibnic0\r
+\r
+                        Asks the dapltest server at host 'winIB' to clean up and exit.\r
+\r
+    dapltest -T L -D ibnic0 -d -w 16 -m 1000\r
+\r
+                        Runs all of the limit tests, setting up\r
+                        16 complete sets of DAPL objects, and\r
+                        creating at most a thousand instances\r
+                        when trying to exhaust resources.\r
+\r
+    dapltest -T T -V -d -t 2 -w 4 -i 55555 -s winIB -D ibnic0 \\r
+    client RW  4096 1    server RW  2048 4    \\r
+    client SR  1024 4    server SR  4096 2    \\r
+    client SR  1024 3 -f server SR  2048 1 -f\r
+\r
+                        Runs a more complicated transaction test,\r
+                        with two thread using four EPs each,\r
+                        sending a more complicated buffer pattern\r
+                        for a larger number of iterations,\r
+                        validating the data received.\r
+\r
+\r
+BUGS  (and  To Do List)\r
+\r
+    Use of CNOs (-Q) is not yet supported.\r
+\r
+    Further limit tests could be added.</pre>\r
+<h4 align="left"><a href="#TOP"><font color="#000000">&lt;return-to-top&gt;</font></a></h4>\r
+<p align="left">&nbsp;</p>\r
+<p align="left">&nbsp;</p>\r
+<h3 align="left"><u><a name="SRP"></a>SRP - SCSI RDMA Protocol</u></h3>\r
+<p align="left">[ADD text here]</p>\r
+<h4 align="left"><a href="#TOP"><font color="#000000">&lt;return-to-top&gt;</font></a></h4>\r
diff --git a/branches/WinOF/InstallShield/README.txt b/branches/WinOF/InstallShield/README.txt
new file mode 100644 (file)
index 0000000..9aedee6
--- /dev/null
@@ -0,0 +1,91 @@
+[4-24-07]\r
+\r
+How to generate a Windows OpenFabrics Release (WinOF) using the\r
+InstallShield-12 product.\r
+\r
+Download the desired openib-windows binary release\r
+       http://openib.tc.cornell.edu/downloads/binaries/1.0.0.614/\r
+ to\r
+       '...\WinOF\InstallShield\bin\'.\r
+\r
+The .zip archives reduce the download/copy overhead.\r
+\r
+The resulting bin\ folder structure must look like the following:\r
+\r
+  bin\\r
+     DAPL\\r
+       amd64\\r
+       x86\\r
+       ia64\   \r
+     HCA\\r
+       amd64\\r
+       x86\\r
+       ia64\\r
+     net\\r
+       amd64\\r
+       x86\\r
+       ia64\\r
+     storage\\r
+       amd64\\r
+       x86\\r
+       ia64\\r
+     tools\\r
+       amd64\\r
+          debug\\r
+          release\\r
+       x86\\r
+          debug\\r
+          release\\r
+       ia64\\r
+          debug\\r
+          release\\r
+\r
+\r
+Update Release_notes.htm file.\r
+\r
+       Release ID number (e.g., 1.1)\r
+\r
+       New features\r
+\r
+       Know issues\r
+\r
+Update the Manual.htm file for new features, etc.\r
+\r
+\r
+See the arch specific BOM-arch.txt file for bin/ file references and where\r
+they are installed to.\r
+\r
+To generate an x64 WinOF release, cd WinOF_x64\r
+\r
+WinOF_x64\\r
+       WinOF_x64.ism   # WinOF x64 installShield src, double click this file to start\r
+       WinOF_x64\      # InstallShield-12 build files: <...>\DIsk1\setup.exe\r
+                       # is the end product; rename to WinOF_arch_Vx-y_setup.exe\r
+\r
+Assuming you have an InstallShield product installed on your system, double-click the WinOF_x64.ism\r
+file and proceed to the Installation Designer Tab.\r
+\r
+From the Installation Designer, find the 'Media' section (lower left); click '+' to open.\r
+\r
+Select Path variables.\r
+\r
+Edit the following Path Variables to reflect the full path to your WinOF build location.\r
+Such that ...\WinOF\InstallShield is changed to <your-path>\WinOF\InstallShield.\r
+Edit paths:\r
+       PATH_TO_OFW_FILES\r
+       PATH_TO_WINOF_INSTALL\r
+       Changing the 'Defined' value will also change the 'current' value.\r
+       set 'Defined' value to '<your-path>\WinOF\InstallShield'.\r
+Save.\r
+Now you can build.\r
+\r
+When building expect 4 warnings, as the referenced features are intended to be part of a Custom\r
+installation.\r
+\r
+The resulting install file is located:\r
+WinOF\InstallShield\WinOF_x64\WInOF_x64\PROJECT_ASSISTANT\SINGLE_EXE_IMAGE\DiskImages\Disk1\setup.exe\r
+\r
+Buckle-in InstallShield is a strange ride if your not familiar with it; very powerful and\r
+confusing at the same time.\r
+\r
+\r
diff --git a/branches/WinOF/InstallShield/Release_notes.htm b/branches/WinOF/InstallShield/Release_notes.htm
new file mode 100644 (file)
index 0000000..f4682e4
--- /dev/null
@@ -0,0 +1,441 @@
+<html>\r
+\r
+<head>\r
+<meta http-equiv=Content-Type content="text/html; charset=windows-1252">\r
+<meta name=Generator content="Microsoft Word 11 (filtered)">\r
+\r
+<style>\r
+<!--\r
+ /* Font Definitions */\r
+ @font-face\r
+       {font-family:Wingdings;\r
+       panose-1:5 0 0 0 0 0 0 0 0 0;}\r
+@font-face\r
+       {font-family:"MS Mincho";\r
+       panose-1:2 2 6 9 4 2 5 8 3 4;}\r
+@font-face\r
+       {font-family:"\@MS Mincho";\r
+       panose-1:2 2 6 9 4 2 5 8 3 4;}\r
+ /* Style Definitions */\r
+ p.MsoNormal, li.MsoNormal, div.MsoNormal\r
+       {margin:0in;\r
+       margin-bottom:.0001pt;\r
+       font-size:12.0pt;\r
+       font-family:"Times New Roman";}\r
+h1\r
+       {margin-right:0in;\r
+       margin-left:0in;\r
+       font-size:24.0pt;\r
+       font-family:"Times New Roman";\r
+       font-weight:bold;}\r
+h2\r
+       {margin-right:0in;\r
+       margin-left:0in;\r
+       font-size:18.0pt;\r
+       font-family:"Times New Roman";\r
+       font-weight:bold;}\r
+h3\r
+       {margin-right:0in;\r
+       margin-left:0in;\r
+       font-size:13.5pt;\r
+       font-family:"Times New Roman";\r
+       font-weight:bold;}\r
+h4\r
+       {margin-right:0in;\r
+       margin-left:0in;\r
+       font-size:12.0pt;\r
+       font-family:"Times New Roman";\r
+       font-weight:bold;}\r
+a:link, span.MsoHyperlink\r
+       {color:blue;\r
+       text-decoration:underline;}\r
+a:visited, span.MsoHyperlinkFollowed\r
+       {color:blue;\r
+       text-decoration:underline;}\r
+p.MsoPlainText, li.MsoPlainText, div.MsoPlainText\r
+       {margin:0in;\r
+       margin-bottom:.0001pt;\r
+       font-size:10.0pt;\r
+       font-family:"Courier New";}\r
+p\r
+       {margin-right:0in;\r
+       margin-left:0in;\r
+       font-size:12.0pt;\r
+       font-family:"Times New Roman";}\r
+@page Section1\r
+       {size:8.5in 11.0in;\r
+       margin:1.0in 65.95pt 1.0in 65.95pt;}\r
+div.Section1\r
+       {page:Section1;}\r
+ /* List Definitions */\r
+ ol\r
+       {margin-bottom:0in;}\r
+ul\r
+       {margin-bottom:0in;}\r
+-->\r
+</style>\r
+\r
+</head>\r
+\r
+<body lang=EN-US link=blue vlink=blue>\r
+\r
+<div class=Section1>\r
+\r
+<h1 align=center style='text-align:left'><img width=107 height=93\r
+src=openfabrics.gif></h1>\r
+\r
+<h1 align=center style='text-align:center'>Windows OpenFabrics </h1>\r
+\r
+<h1 align=center style='text-align:center'>1.0 Release Notes</h1>\r
+\r
+<h3 align=center style='text-align:center'>\r
+<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%m/%d/%Y" startspan -->04/23/2007<!--webbot bot="Timestamp" endspan i-checksum="12562" --></h3>\r
+\r
+<div class=MsoNormal align=center style='text-align:center'>\r
+\r
+<hr size=2 width="100%" align=center>\r
+\r
+</div>\r
+\r
+<h2><u>Overview</u></h2>\r
+\r
+<p class=MsoPlainText><span style='font-size:12.0pt;font-family:"Times New Roman"'>The\r
+Windows OpenFabrics (WinOF) release package is composed of software modules\r
+intended for use on Microsoft Windows based computer systems connected via an\r
+InfiniBand fabric.</span></p>\r
+\r
+<p class=MsoPlainText><span style='font-size:12.0pt;font-family:"Times New Roman"'>&nbsp;Binary\r
+files from the openib-windows developers release tree <a\r
+href="http://openib.tc.cornell.edu/downloads/binaries/1.0.0.614">http://openib.tc.cornell.edu/downloads/binaries/1.0.0.614</a>\r
+are packaged into an InstallShield single file install package referred to as\r
+the Windows OpenFabrics&nbsp;(WinOF) release.</span></p>\r
+\r
+<p>The Windows OpenFabrics (WinOF) release package contains the following:<br>\r
+<br>\r
+OpenFabrics InfiniBand core drivers and User Level Protocols (ULPs):</p>\r
+<ul>\r
+       <li>\r
+       <p style='margin-left:.5in;text-indent:-.25in'><span dir=LTR>HCA driver mthca</span></p>\r
+       </li>\r
+       <li>\r
+       <p style='margin-left:.5in;text-indent:-.25in'><span dir=LTR>Infiniband Core components</span></p>\r
+       </li>\r
+       <li>\r
+       <p style='margin-left:.5in;text-indent:-.25in'><span dir=LTR>Upper Layer Protocols: IPoIB, WSD, SRP Initiator\r
+and uDAPL</span></p></li>\r
+</ul>\r
+\r
+<p>OpenFabrics utilities:</p>\r
+\r
+<ul>\r
+       <li>\r
+       <p style='margin-left:.5in;text-indent:-.25in'><span dir=LTR>OpenSM: InfiniBand fabric Subnet Manager</span></p>\r
+       </li>\r
+       <li>\r
+       <p style='margin-left:.5in;text-indent:-.25in'><span dir=LTR>Performance tests</span></p>\r
+       </li>\r
+       <li>\r
+       <p style='margin-left:.5in;text-indent:-.25in'><span dir=LTR>Diagnostic tools</span></p>\r
+       </li>\r
+</ul>\r
+\r
+<p>Documentation</p>\r
+\r
+<ul>\r
+       <li>\r
+       <p style='margin-left:.5in;text-indent:-.25in'><span dir=LTR>User's manual</span></p>\r
+       </li>\r
+       <li>\r
+       <p style='margin-left:.5in;text-indent:-.25in'><span dir=LTR>Release Notes</span></p>\r
+       </li>\r
+</ul>\r
+\r
+<h2>&nbsp;</h2>\r
+<h2><u>Supported Platforms, Operating Systems and Infiniband Hardware</u></h2>\r
+\r
+<h4>CPU architectures</h4>\r
+\r
+<ul>\r
+       <li>\r
+       <p style='margin-left:.5in;text-indent:-.25in'><span dir=LTR>x64 (x86_64, amd64)</span></p>\r
+       </li>\r
+       <li>\r
+       <p style='margin-left:.5in;text-indent:-.25in'><span dir=LTR>x86</span></p>\r
+       </li>\r
+       <li>\r
+       <p style='margin-left:.5in;text-indent:-.25in'><span dir=LTR>IA64</span></p>\r
+       </li>\r
+</ul>\r
+\r
+<h4>Operating Systems</h4>\r
+\r
+<ul>\r
+       <li>\r
+       <p style='margin-left:.5in;text-indent:-.25in'><span dir=LTR>Windows Server 2003</span></p>\r
+       </li>\r
+       <li>\r
+       <p style='margin-left:.5in;text-indent:-.25in'><span dir=LTR>Windows Server 2003 Compute Cluster Edition</span></p>\r
+       </li>\r
+       <li>\r
+       <p style='margin-left:.5in;text-indent:-.25in'><span dir=LTR>Windows XP (SP2)</span></p>\r
+       </li>\r
+</ul>\r
+\r
+<h4><u>Supported HCAs (Host Channel Adapters)</u></h4>\r
+\r
+<blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'>\r
+\r
+<p>Mellanox (mthca.inf)</p>\r
+<ul>\r
+       <li>\r
+       <p style='margin-left:.5in;text-indent:-.25in'><span dir=LTR>InfiniHost</span></p>\r
+       </li>\r
+       <li>\r
+       <p style='margin-left:.5in;text-indent:-.25in'><span dir=LTR>InfiniHost III Ex (both modes: with memory and MemFree)</span></p>\r
+       </li>\r
+       <li>\r
+       <p style='margin-left:.5in;text-indent:-.25in'><span dir=LTR>InfiniHost III Lx</span></p>\r
+       </li>\r
+</ul>\r
+\r
+<p>Both SDR and DDR mode of the InfiniHost III family are supported.<br>\r
+<br>\r
+For official Firmware (FW) versions and update tools please see:<br>\r
+<a href="http://www.mellanox.com/support/firmware_table.php">http://www.mellanox.com/support/firmware_table.php</a></p>\r
+\r
+</blockquote>\r
+\r
+<h4><u>Supported Switches</u></h4>\r
+\r
+<ul>\r
+       <li>\r
+       <p style='margin-left:.5in;text-indent:-.25in'><span dir="LTR">QLogic</span></p>\r
+       </li>\r
+       <li>\r
+       <p style='margin-left:.5in;text-indent:-.25in'><span dir=LTR>SilverStorm</span></p>\r
+       </li>\r
+       <li>\r
+       <p style='margin-left:.5in;text-indent:-.25in'><span dir="LTR">Voltaire</span></p>\r
+       </li>\r
+       <li>\r
+       <p style='margin-left:.5in;text-indent:-.25in'><span dir=LTR>Flextronics</span></p>\r
+       </li>\r
+</ul>\r
+\r
+<h2><u>Installation Specifics</u></h2>\r
+\r
+<p>All installed files are located in '%SystemDrive%\Program\r
+Files\WinOF'.&nbsp; Installed user mode executables are designed to be run from\r
+a Command Prompt window; see</p>\r
+<blockquote>\r
+       <p>'Start-&gt;Program Files-&gt;OpenFabrics Alliance-&gt; Windows OpenFabrics-&gt; Command Prompt'.</p>\r
+</blockquote>\r
+\r
+<p>The \91default\92 installation installs \91released/free\92 (not\r
+checked/debug) versions of drivers, libraries and executables.</p>\r
+\r
+<p>A single instance of a subnet manager, opensm.exe, must be\r
+running on a fabric connected node in order for the Infiniband fabric to be\r
+configured and useful; either Windows or Linux opensm work fine.</p>\r
+<p>It is recommended that Opensm be run as a Windows service;\r
+see WinOF Manual for details on opensm as a service.</p>\r
+\r
+<p>Note, the opensm.exe process must continue to run in order\r
+to maintain Infiniband fabric configuration. Should the opensm.exe process die,\r
+restart the service if not automatic or run opensm.exe in order to continue\r
+correct fabric operation.</p>\r
+\r
+<p>For more subnet management information, consult the Windows\r
+OpenFabrics manual.</p>\r
+\r
+<p class=MsoNormal>&nbsp;</p>\r
+\r
+<h2><u>How to Install</u></h2>\r
+\r
+<h3>Requirements</h3>\r
+\r
+<p>Install HCA hardware prior to installing the Windows OpenFabrics Release\r
+package. Upon reboot, ignore/cancel any attempts to install new device hardware.</p>\r
+\r
+<p>If you have previously installed openib-windows, Windows OpenFabrics\r
+packages or vendor supplied Infiniband packages, uninstall them prior to\r
+installing this version of Windows OpenFabrics .</p>\r
+\r
+<p>openib-windows uninstall:</p>\r
+\r
+<ol start=1 type=1>\r
+ <li class=MsoNormal>Disable any Local Area Connections which are bound to the\r
+     IPoIB network adapter.</li>\r
+ <li class=MsoNormal>Uninstall the IPoIB driver - My\r
+     computer-&gt;Manage-&gt;Devices-&gt;Network Adapters-&gt;IPoIB*</li>\r
+ <li class=MsoNormal>Uninstall the Infiniband HCA device; don't forget the \r
+       System Device-&gt; InfiniBand Fabric</li>\r
+</ol>\r
+\r
+<p>&nbsp;For an existing Windows OpenFabrics uninstall<br>\r
+&nbsp;&nbsp;&nbsp; Control Panel -&gt; Add or Remove Programs-&gt; Windows\r
+OpenFabrics-&gt;Remove.</p>\r
+\r
+<p>REBOOT</p>\r
+\r
+<p>Upon reboot, cancel the 'Found New Hardware Wizard' attempt to install \r
+drivers for newly discovered PCI device.</p>\r
+<p>'My Computer-&gt;Manage-&gt;Device Manager' should display\r
+'?Other Devices-&gt;?PCI device' which is your HCA device.</p>\r
+\r
+<h3>Install</h3>\r
+\r
+<blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'>\r
+\r
+<p>From a login with administrator privileges, double-click the\r
+WinOF_arch_setup.exe file to begin the Windows OpenFabrics installation;&nbsp;\r
+where '_arch_' can be (_x64_ for amd64 or Intel EMT64 systems, _x86_ for x86\r
+compatible systems or _ia64_ for Intel IA64 systems). </p>\r
+\r
+<p>Follow the instructions.<br>\r
+Answer 'yes' or 'Continue' to any notifier windows which reference non-signed \r
+driver installation.</p>\r
+<p>&nbsp;<font size="4">**** WARNING ****</font></p>\r
+<blockquote>\r
+       <p>Should any 'Welcome to the Found New Hardware Wizard' windows popup after the install has \r
+started, IGNORE them as they will go away. Under <font color="#FF0000">NO</font> \r
+       circumstances should you interact with the misdirected 'Found New Hardware \r
+       Wizard' popup windows during an install; doing so will cause the install to fail - just ignore \r
+       them until such a time that they no longer appear - we are working on a fix!</p>\r
+       <p>You do need to answer 'Yes' or 'Continue' to those notifier windows which \r
+       reference non-signed driver installation.<br>\r
+&nbsp;</p>\r
+</blockquote>\r
+\r
+<h4>Install types:</h4>\r
+\r
+<h4>Minimal</h4>\r
+\r
+<ul type=disc>\r
+ <li class=MsoNormal>Basics - Release Notes, Manual, Command Window</li>\r
+ <li class=MsoNormal>Tools - Subnet Management [opensm], Performance &amp;\r
+     Diagnostic utilities</li>\r
+ <li class=MsoNormal>mthca HCA driver</li>\r
+ <li class=MsoNormal>IB fabric driver</li>\r
+</ul>\r
+\r
+<h4>Typical</h4>\r
+\r
+<ul style='margin-top:0in' type=disc>\r
+ <li class=MsoNormal>Minimal install 'plus'</li>\r
+</ul>\r
+\r
+<ul style='margin-top:0in' type=disc>\r
+ <li class=MsoNormal>IPoIB - Internet Protocols over InfiniBand (aka,\r
+     ftp/telnet/... over IB fabric).</li>\r
+ <li class=MsoNormal>DAPL - DAT and uDAPL support</li>\r
+</ul>\r
+\r
+<h4>Custom</h4>\r
+\r
+<ul type=disc>\r
+ <li class=MsoNormal>Basics - Release Notes, Manual, Command Window</li>\r
+ <li class=MsoNormal>Tools - Subnet Management [opensm], Performance &amp;\r
+     Diagnostic utilities</li>\r
+ <li class=MsoNormal>mthca HCA driver</li>\r
+ <li class=MsoNormal>IB fabric driver</li>\r
+ <li class=MsoNormal>Optional:<br>&nbsp;&nbsp;&nbsp; IPoIB<br>&nbsp;&nbsp;&nbsp; WSD - Winsock Direct Provider, service started; see \r
+       installsp.exe -l<br>&nbsp;&nbsp;&nbsp; VNIC - Virtual Ethernet device over Infiniband<br>&nbsp;&nbsp;&nbsp; SRP - SCSI over RDMA Protocol<br>&nbsp;&nbsp;&nbsp; DAPL<br>\r
+&nbsp;&nbsp;&nbsp; OpenSM - InfiniBand Subnet Management as a Windows Service</li>\r
+</ul>\r
+\r
+</blockquote>\r
+\r
+<h2><u>Trouble Shooting</u></h2>\r
+\r
+<h3>Correct Installation Validation</h3>\r
+<p>From the Device Manager you should fine the following devices:</p>\r
+<ul>\r
+       <li>InfiniBand Host Channel Adapters -&gt; Infinihost</li>\r
+       <li>System Devices -&gt; InfiniBand Fabric</li>\r
+       <li>Network Adapters -&gt; OpenIB IPoIB Adapter (an Instance per HCA port).</li>\r
+</ul>\r
+<blockquote>\r
+       <h4>Validation Test</h4>\r
+       <p>Open a WinOF command window</p>\r
+       <ol>\r
+               <li>Start-&gt;Program Files-&gt;OpenFabrics Alliance-&gt;Windows OpenFabrics -&gt; Command \r
+Window</li>\r
+               <li>run vstat.exe to view HCA configuration.</li>\r
+               <li>If IPoIB is installed (Device Manager-&gt;Network Adapters) ping another node on the InfiniBand fabric 'ping a.b.c.d'<br>\r
+&nbsp;</li>\r
+       </ol>\r
+</blockquote>\r
+<h3>OpenIB Subnet Management as a Windows Service</h3>\r
+<p>InfiniBand subnet management is installed by default, although it is NOT \r
+enabled by default. There are two ways to enable OpenSM on a node:</p>\r
+<ol>\r
+       <li>Manual - In a command window run 'opensm.exe', cmd-window/opensm.exe \r
+       must remain active in order for the fabric to remain configured.</li>\r
+       <li>Start OpenSM as a Windows service:<br>\r
+       a) Request a 'Custom' install, selecting the OpenSM install feature.<br>\r
+       b) Manually create the OpenSM service:<br>\r
+&nbsp;&nbsp;&nbsp; 1) sc create opensm binPath= &quot;<a href="file:///C:/Program%20Files/WinOF/opensm.exe%20--service">C:\Program \r
+       Files\WinOF\opensm.exe --service</a>&quot; start= auto DisplayName= &quot;IB Subnet \r
+       Manager&quot;<br>\r
+&nbsp;&nbsp;&nbsp; 2) sc start opensm<br>\r
+&nbsp;&nbsp;&nbsp; 3) sc qc opensm&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \r
+       rem Query service description,&nbsp; 'sc stop opensm'&nbsp; Stops the opensm \r
+       service</li>\r
+</ol>\r
+<p>WARNING - only 'one' OpenSM per IB fabric.</p>\r
+<p>&nbsp;</p>\r
+<h3>Local Network Adapter Ordering</h3>\r
+<p>Local Network Adapter ordering, which results in the IP address advertised \r
+for the system, can be managed from<br>&nbsp;&nbsp;&nbsp; 'My Network Places-&gt; Advanced Tab-&gt; Advanced settings'<br>From the Advanced settings display the ordering Local Network Adapters can be \r
+reordered after the IPoIB Local Network Adapters have been installed. Please \r
+check for your desired adapter ordering.<br>&nbsp;</p>\r
+<h3>Which WinOF release is installed?</h3>\r
+<p>1) Start-&gt;Programs-&gt;OpenFabrics Alliance-&gt;Windows OpenFabrics-&gt;Release Notes&nbsp; \r
+(2nd Line)<br>2) Driver confirmation:<br>&nbsp;&nbsp;&nbsp; Query My Computer-&gt; Manage-&gt; Device Manager-&gt; Network \r
+Adapters-&gt; OpenIB IPoIB Adapter-&gt; Properties-&gt; Driver-&gt; Details<br>&nbsp;&nbsp;&nbsp; The subversion (svn) revision number will be listed under \r
+'Driver Version'. The svn revision number will match what's listed in the \r
+release<br>&nbsp;&nbsp;&nbsp; notes.</p>\r
+<p>WinOF 1.0 is based on svn revision 614.</p>\r
+<h3>&nbsp;</h3>\r
+<h3>DAT &amp; uDAPL Configuration</h3>\r
+<p align="left">In order for DAT/uDAPL programs to execute correctly, the 'dat.dll' \r
+file must be present in the current directory,<br>\r
+%SystemRoot%\ or in the library search path.</p>\r
+<p align="left">The default WinOF installation places the file dat.dll in '%SystemRoot%' \r
+folder (a.k.a. \Windows).</p>\r
+<p align="left">The DAPL configuration file by default is defined as \r
+'%SystemDrive%\DAT\dat.conf'. This default specification can be overriden by use \r
+of the environment variable DAT_OVERRIDE. Such that 'DAT_OVERRIDE=D:\MyDAT\test.conf' \r
+would be a valid override specification.</p>\r
+<p align="left">Within the dat.conf file, the DAPL library specification can be \r
+located as the 5th whitespace separated line argument. By default the DAPL \r
+library file is installed as %SystemRoot%\dapl.dll'.</p>\r
+<p align="left">Should you choose to relocated the DAPL library file to a path \r
+where whitespace appears in the full library path specification, then the full \r
+library file specification must be contained within double-quotes. A side effect \r
+of the double-quotes is the library specification is treated as a Windows string \r
+which implies the '\' (backslash character) is treated as an 'escape' character.&nbsp; \r
+Hence all backslashes in the library path must be duplicated when enclosed in \r
+double-quotes (e.g., &quot;C:\\Programs Files\\WinOF\\dapl.dll&quot;).</p>\r
+<p align="left">A sample dat.conf file is installed as '\Program Files\WinOF\dat.conf \r
+'.<br>\r
+After the WinOF installation, move the \Program Files\WinOF\dat.conf file to the \r
+default DAT configuration file location<br>\r
+'%SystemDrive%\DAT\dat.conf'. In order to preserve existing installations, the \r
+dat.conf file is not automatically installed in it's default location.</p>\r
+<p>&nbsp;</p>\r
+<h3><u>Uninstall</u></h3>\r
+\r
+<p>Use the Add Remove Programs from the control panel to remove the Windows\r
+OpenFabrics installation.</p>\r
+\r
+<h2><u>Known Issues</u></h2>\r
+\r
+<p class=MsoPlainText><span style='font-size:12.0pt'>TBD</span></p>\r
+\r
+</div>\r
+\r
+</body>\r
+\r
+</html>\r
diff --git a/branches/WinOF/InstallShield/WinOF_ia64/devman.exe b/branches/WinOF/InstallShield/WinOF_ia64/devman.exe
new file mode 100644 (file)
index 0000000..5ac5b7c
Binary files /dev/null and b/branches/WinOF/InstallShield/WinOF_ia64/devman.exe differ
diff --git a/branches/WinOF/InstallShield/WinOF_x64/BOM-x64.txt b/branches/WinOF/InstallShield/WinOF_x64/BOM-x64.txt
new file mode 100644 (file)
index 0000000..25e4253
--- /dev/null
@@ -0,0 +1,119 @@
+\r
+\r
+BOM (Bill of Materials) Windows OpenFabrics Release 1.0        (x64)\r
+\r
+Binaries from http://openib.tc.cornell.edu/downloads/binaries/1.0.0.614/\r
+\r
+HCA firmware management tools omitted as they are vendor specific and available\r
+from the respective vendors.\r
+\r
+Where/which files are installed from a single file installer (WinOF_1-0_x64.exe)\r
+\r
+\r
+%SystemDrive%\Program Files\WinOF\\r
+\r
+       Manual.htm\r
+       Release_Notes.htm\r
+       Command Window <shortcut> - starts in \Program Files\WinOF\r
+       openfabrics.gif\r
+       openfabrics.ico\r
+\r
+       #  DAPL files\r
+       dapltest.exe\r
+       dapl32.dll\r
+       dapl32d.dll\r
+       dapld.dll\r
+       dat32.dll\r
+       dat32d.dll\r
+       datd.dll\r
+       dat.conf\r
+\r
+\r
+       # Diagnostics & performance tests\r
+       cmtest.exe\r
+       ib_limits.exe\r
+       PrintIP.exe\r
+       vstat.exe\r
+\r
+       ib_send_bw.exe\r
+       ib_send_lat.exe\r
+       ib_write_bw.exe\r
+       ib_write_lat.exe\r
+       ttcp.exe\r
+\r
+       # IB subnet management\r
+       opensm.exe\r
+       osmtest.exe\r
+       ibtrapgen.exe\r
+\r
+       # Infiniband Stack files\r
+  mthca\\r
+       mthca.inf\r
+       IbInstaller.dll\r
+       mthca.sys\r
+       mthcau.dll\r
+       mthcaud.dll\r
+       mthca32.dll\r
+       mthca32d.dll    \r
+       ib_bus.inf\r
+       ibbus.sys\r
+       ibiou.sys\r
+       ibal.dll\r
+       ibald.dll\r
+       complib.dll\r
+       complibd.dll\r
+       cl32.dll\r
+       cl32d.dll\r
+       ibal32.dll\r
+       ibal32d.dll\r
+  net\\r
+        netipoib.inf\r
+       ipoib.sys\r
+       ibwsd32.dll\r
+       ibwsd.dll\r
+       installsp.exe\r
+\r
+  VNIC\\r
+        netvnic.inf\r
+        netvnic.sys\r
+\r
+  SRP\\r
+    ib_srp.inf\r
+    amd64\\r
+       ibsrp.sys\r
+\r
+\r
+%SystemRoot%\dapl.dll\r
+%SystemRoot%\dat.dll\r
+\r
+%SystemRoot%\system32\mthcau.dll\r
+%SystemRoot%\system32\mthcaud.dll\r
+%SystemRoot%\system32\ibinstaller.dll\r
+%SystemRoot%\system32\ibal.dll\r
+%SystemRoot%\system32\ibald.dll\r
+%SystemRoot%\system32\complib.dll\r
+%SystemRoot%\system32\complibd.dll\r
+%SystemRoot%\system32\ibwsd.dll\r
+\r
+%SystemRoot%\system32\drivers\ibbus.sys\r
+%SystemRoot%\system32\drivers\mthca.sys\r
+%SystemRoot%\system32\drivers\ibiou.sys\r
+%SystemRoot%\system32\drivers\ipoib.sys\r
+%SystemRoot%\system32\drivers\netvnic.sys\r
+%SystemRoot%\system32\drivers\ibsrp.sys\r
+\r
+%SystemRoot%\syswow64\ibal.dll         WinOF\mthca\ibal32.dll\r
+%SystemRoot%\syswow64\ibald.dll                WinOF\mthca\ibal32d.dll\r
+%SystemRoot%\syswow64\mthcau.dll       WinOF\mthca\mthca32.dll\r
+%SystemRoot%\syswow64\mthcaud.dll      WinOF\mthca\mthca32d.dll\r
+%SystemRoot%\syswow64\complib.dll      WinOF\mthca\cl32.dll\r
+%SystemRoot%\syswow64\complibd.dll     WinOF\mthca\cl32d.dll\r
+%SystemRoot%\syswow64\ibwsd.dll                WinOF\mthca\ibwsd32.dll\r
+\r
+%SystemRoot%\inf\ renamed to oem*.inf/pnf\r
+       mthca.inf\r
+       ib_bus.inf\r
+       netipoib.inf\r
+       netvnic.inf\r
+       ibsrp.inf\r
+\r
diff --git a/branches/WinOF/InstallShield/WinOF_x64/WinOF_x64.ism b/branches/WinOF/InstallShield/WinOF_x64/WinOF_x64.ism
new file mode 100644 (file)
index 0000000..478da52
Binary files /dev/null and b/branches/WinOF/InstallShield/WinOF_x64/WinOF_x64.ism differ
diff --git a/branches/WinOF/InstallShield/WinOF_x64/WinOF_x64/Script Files/Setup.Rul b/branches/WinOF/InstallShield/WinOF_x64/WinOF_x64/Script Files/Setup.Rul
new file mode 100644 (file)
index 0000000..1469b25
--- /dev/null
@@ -0,0 +1,23 @@
+//===========================================================================\r
+//\r
+//  File Name:    Setup.rul\r
+//\r
+//  Description:  Blank setup main script file\r
+//\r
+//  Comments:     Blank setup is an empty setup project. If you want to\r
+//                               create a new project via. step-by step instructions use the\r
+//                               Project Assistant.\r
+//\r
+//===========================================================================\r
+\r
+// Included header files ----------------------------------------------------\r
+#include "ifx.h"\r
+\r
+// Note: In order to have your InstallScript function executed as a custom\r
+// action by the Windows Installer, it must be prototyped as an \r
+// entry-point function.\r
+\r
+// The keyword export identifies MyFunction() as an entry-point function.\r
+// The argument it accepts must be a handle to the Installer database.\r
+    \r
+/* export prototype MyFunction(HWND); */\r
diff --git a/branches/WinOF/InstallShield/WinOF_x64/WinOF_x64/Script Files/Setup.dbg b/branches/WinOF/InstallShield/WinOF_x64/WinOF_x64/Script Files/Setup.dbg
new file mode 100644 (file)
index 0000000..24bbdf7
Binary files /dev/null and b/branches/WinOF/InstallShield/WinOF_x64/WinOF_x64/Script Files/Setup.dbg differ
diff --git a/branches/WinOF/InstallShield/WinOF_x64/WinOF_x64/Script Files/Setup.inx b/branches/WinOF/InstallShield/WinOF_x64/WinOF_x64/Script Files/Setup.inx
new file mode 100644 (file)
index 0000000..3bcd33e
Binary files /dev/null and b/branches/WinOF/InstallShield/WinOF_x64/WinOF_x64/Script Files/Setup.inx differ
diff --git a/branches/WinOF/InstallShield/WinOF_x64/WinOF_x64/Script Files/Setup.map b/branches/WinOF/InstallShield/WinOF_x64/WinOF_x64/Script Files/Setup.map
new file mode 100644 (file)
index 0000000..3bf175e
--- /dev/null
@@ -0,0 +1,883 @@
+***** External Functions *****\r
+1    AdminAskPath                                       iswi.obl(AdminAskPath.obs)\r
+2    AllFeaturesDeselected                              iswi.obl(CompHelperFuncs.obs)\r
+3    CHECK_RETURN                                       iswi.obl(ErrHandler.obs)\r
+4    ChangeDirectory                                    isrt.obl(Files.obs)\r
+5    CloseFile                                          isrt.obl(Files.obs)\r
+6    CmdGetHwndDlg                                      isrt.obl(CustomDialog.obs)\r
+7    CoCreateObject                                     isrt.obl(Misc.obs)\r
+8    ComponentCompareSizeRequired                       isrt.obl(component.obs)\r
+9    ComponentErrorInfo                                 isrt.obl(component.obs)\r
+10   ComponentGetData                                   isrt.obl(component.obs)\r
+11   ComponentGetTotalCost                              isrt.obl(component.obs)\r
+12   ComponentIsItemSelected                            isrt.obl(component.obs)\r
+13   ComponentListItems                                 isrt.obl(component.obs)\r
+14   ComponentReinstall                                 isrt.obl(component.obs)\r
+15   ComponentRemoveAll                                 isrt.obl(component.obs)\r
+16   ComponentSaveTarget                                isrt.obl(component.obs)\r
+17   ComponentSelectItem                                isrt.obl(component.obs)\r
+18   ComponentTransferData                              isrt.obl(component.obs)\r
+19   ComponentTreeInit                                  isrt.obl(Dialogs.obs)\r
+20   CreateDir                                          isrt.obl(Files.obs)\r
+21   CreateFile                                         isrt.obl(Files.obs)\r
+22   CreateInstallationInfo                             isrt.obl(Registry.obs)\r
+23   CtrlGetNotificationCode                            isrt.obl(CustomDialog.obs)\r
+24   CtrlGetState                                       isrt.obl(CustomDialog.obs)\r
+25   CtrlGetSubCommand                                  isrt.obl(CustomDialog.obs)\r
+26   CtrlGetText                                        isrt.obl(CustomDialog.obs)\r
+27   CtrlSelectText                                     isrt.obl(CustomDialog.obs)\r
+28   CtrlSetList                                        isrt.obl(CustomDialog.obs)\r
+29   CtrlSetMLEText                                     isrt.obl(CustomDialog.obs)\r
+30   CtrlSetState                                       isrt.obl(CustomDialog.obs)\r
+31   CtrlSetText                                        isrt.obl(CustomDialog.obs)\r
+32   DefineDialog                                       isrt.obl(CustomDialog.obs)\r
+33   DeleteFile                                         isrt.obl(Files.obs)\r
+34   DeleteSingleFile                                   isrt.obl(Files.obs)\r
+35   DialogSetDefaultFont                               isrt.obl(Dialogs.obs)\r
+36   DialogSetFont                                      isrt.obl(Dialogs.obs)\r
+37   DialogSetInfo                                      isrt.obl(Dialogs.obs)\r
+38   Disable                                            isrt.obl(Enable.obs)\r
+39   DllSizeOf                                          isrt.obl(Str.obs)\r
+40   Do                                                 isrt.obl(Misc.obs)\r
+41   Enable                                             isrt.obl(Enable.obs)\r
+42   EndCurrentDialog                                   isrt.obl(Dialogs.obs)\r
+43   EndDialog                                          isrt.obl(CustomDialog.obs)\r
+44   ExistsDir                                          isrt.obl(Files.obs)\r
+45   EzDefineDialog                                     isrt.obl(CustomDialog.obs)\r
+46   FeatureCompareSizeRequired                         iswi.obl(FeatureConv.obs)\r
+47   FeatureErrorInfo                                   iswi.obl(ComponentConv.obs)\r
+48   FeatureFilterLanguage                              iswi.obl(ComponentConv.obs)\r
+49   FeatureFilterOS                                    iswi.obl(ComponentConv.obs)\r
+50   FeatureGetData                                     iswi.obl(ComponentConv.obs)\r
+51   FeatureGetTotalCost                                iswi.obl(FeatureConv.obs)\r
+52   FeatureIsItemSelected                              iswi.obl(ComponentConv.obs)\r
+53   FeatureListItems                                   iswi.obl(ComponentConv.obs)\r
+54   FeatureReinstall                                   iswi.obl(ComponentConv.obs)\r
+55   FeatureRemoveAll                                   iswi.obl(ComponentConv.obs)\r
+56   FeatureSaveTarget                                  iswi.obl(FeatureConv.obs)\r
+57   FeatureSelectItem                                  iswi.obl(ComponentConv.obs)\r
+58   FeatureSetupTypeSet                                iswi.obl(ComponentConv.obs)\r
+59   FeatureStandardSetupTypeSet                        iswi.obl(FeatureConv.obs)\r
+60   FeatureTransferData                                iswi.obl(ComponentConv.obs)\r
+61   FeaturesInstalled                                  iswi.obl(FileTransferFuncsConv.obs)\r
+62   FeaturesInstalling                                 iswi.obl(FileTransferFuncsConv.obs)\r
+63   FindFile                                           isrt.obl(Files.obs)\r
+64   FindWindow                                         isrt.obl(Misc.obs)\r
+65   FixUpCmdLine                                       iswi.obl(HelperFuncs.obs)\r
+66   FixUpCmdLinePostReboot                             iswi.obl(HelperFuncs.obs)\r
+67   FormatMessage                                      isrt.obl(Misc.obs)\r
+68   GDI32.CreateRectRgn                                Setup.obs\r
+69   GDI32.GetDeviceCaps                                Setup.obs\r
+70   GeneratedMSIScript                                 iswi.obl(FileTransferFuncsConv.obs)\r
+71   GeneratingMSIScript                                iswi.obl(FileTransferFuncsConv.obs)\r
+72   GetBasicMSI                                        isrt.obl(SysVars.obs)\r
+73   GetBillboard                                       isrt.obl(SysVars.obs)\r
+74   GetCommonFiles                                     isrt.obl(SysVars.obs)\r
+75   GetComponentsFeatures                              iswi.obl(CompHelperFuncs.obs)\r
+76   GetCurrentDialogName                               isrt.obl(Dialogs.obs)\r
+77   GetCurrentDir                                      isrt.obl(Files.obs)\r
+78   GetDialogTitle                                     isrt.obl(Dialogs.obs)\r
+79   GetDir                                             isrt.obl(Str.obs)\r
+80   GetDisk                                            isrt.obl(Str.obs)\r
+81   GetDisk1SetupExeName                               isrt.obl(SysVars.obs)\r
+82   GetDiskSpace                                       isrt.obl(GSI.obs)\r
+83   GetDiskSpaceEx                                     isrt.obl(GSI.obs)\r
+84   GetEnabledIServices                                isrt.obl(SysVars.obs)\r
+85   GetExtents                                         isrt.obl(GSI.obs)\r
+86   GetFolderApplications                              isrt.obl(SysVars.obs)\r
+87   GetFolderApplications64                            isrt.obl(SysVars.obs)\r
+88   GetISRes                                           isrt.obl(SysVars.obs)\r
+89   GetKeyPathWinCurrVerAuto                           isrt.obl(SysVars.obs)\r
+90   GetMSIFeatureName                                  iswi.obl(CompHelperFuncs.obs)\r
+91   GetMaintenance                                     iswi.obl(ISWiInit.obs)\r
+92   GetMsiFeaturePath                                  iswi.obl(CompHelperFuncs.obs)\r
+93   GetMsiNameFromAliasTable                           iswi.obl(CompHelperFuncs.obs)\r
+94   GetOpenFileMode                                    isrt.obl(Files.obs)\r
+95   GetPackageLocation                                 isrt.obl(SysVars.obs)\r
+96   GetProductGUID                                     iswi.obl(ISWiInit.obs)\r
+97   GetProfSectionKeyCount                             isrt.obl(Profile.obs)\r
+98   GetProfString                                      isrt.obl(Profile.obs)\r
+99   GetProfStringList                                  isrt.obl(Profile.obs)\r
+100  GetRemoveAllMode                                   isrt.obl(SysVars.obs)\r
+101  GetRemoveOnly                                      isrt.obl(SysVars.obs)\r
+102  GetSelectedLanguage                                isrt.obl(SysVars.obs)\r
+103  GetSelectedTreeComponent                           isrt.obl(CmptView.obs)\r
+104  GetSupportDir                                      isrt.obl(SysVars.obs)\r
+105  GetSystemInfo                                      isrt.obl(GSI.obs)\r
+106  GetTempFolder                                      isrt.obl(SysVars.obs)\r
+107  GetUpdateStatus                                    iswi.obl(HelperFuncs.obs)\r
+108  GetUpdateStatusReboot                              iswi.obl(HelperFuncs.obs)\r
+109  GetUserSelectableAuto                              isrt.obl(SysVars.obs)\r
+110  GetValidDrivesList                                 isrt.obl(GSI.obs)\r
+111  GetWinDir                                          isrt.obl(SysVars.obs)\r
+112  GetWinSysDir                                       isrt.obl(SysVars.obs)\r
+113  GetWindowHandle                                    iswi.obl(MiscConv.obs)\r
+114  HIWORD                                             isrt.obl(Misc.obs)\r
+115  ISDeterminePlatform                                isrt.obl(OsInfo.obs)\r
+116  ISMIF32.InstallStatusMIF                           isrt.obl(MIF.obs)\r
+117  ISRT.ComponentViewSetInfoEx                        isrt.obl(Dialogs.obs)\r
+118  ISRT.EnableHourGlass                               isrt.obl(Enable.obs)\r
+119  ISRT.GetCPUType                                    isrt.obl(GSI.obs)\r
+120  ISRT.GetFontSub                                    isrt.obl(Dialogs.obs)\r
+121  ISRT.GetHandle                                     Setup.obs\r
+122  ISRT.GetPorts                                      isrt.obl(GSI.obs)\r
+123  ISRT.IsEmpty                                       Setup.obs\r
+124  ISRT.IsNTAdmin                                     isrt.obl(Is.obs)\r
+125  ISRT.IsObject                                      Setup.obs\r
+126  ISRT.IsPowerUser                                   isrt.obl(Is.obs)\r
+127  ISRT.LangLoadString                                isrt.obl(SDINT.obs)\r
+128  ISRT.MessageBeepP                                  Setup.obs\r
+129  ISRT.PathCompactPathPixel                          isrt.obl(CustomDialog.obs)\r
+130  ISRT.PathGetDir                                    isrt.obl(Str.obs)\r
+131  ISRT.PathGetDrive                                  isrt.obl(Str.obs)\r
+132  ISRT.PathGetFile                                   isrt.obl(Files.obs)\r
+133  ISRT.PathGetFileExt                                isrt.obl(Str.obs)\r
+134  ISRT.PathGetFileName                               isrt.obl(Str.obs)\r
+135  ISRT.PathGetLongFromShort                          isrt.obl(Str.obs)\r
+136  ISRT.PathGetPath                                   isrt.obl(Str.obs)\r
+137  ISRT.PathGetSpecialFolder                          isrt.obl(SysVars.obs)\r
+138  ISRT.PathIsValidSyntax                             isrt.obl(Is.obs)\r
+139  ISRT._BrowseForFolder                              isrt.obl(SelectDir.obs)\r
+140  ISRT._CloseFile                                    isrt.obl(Files.obs)\r
+141  ISRT._CmdGetHwndDlg                                isrt.obl(CustomDialog.obs)\r
+142  ISRT._ComponentCompareSizeRequired                 iswi.obl(FeatureConv.obs)\r
+143  ISRT._ComponentGetTotalCost                        iswi.obl(FeatureConv.obs)\r
+144  ISRT._ComponentGetTotalCostEx                      isrt.obl(SdComponentTreeDlg.obs)\r
+145  ISRT._ComponentSaveTarget                          iswi.obl(FeatureConv.obs)\r
+146  ISRT._CreateDir                                    isrt.obl(Files.obs)\r
+147  ISRT._CreateObject                                 isrt.obl(Misc.obs)\r
+148  ISRT._CtrlGetNotificationCode                      isrt.obl(CustomDialog.obs)\r
+149  ISRT._CtrlGetSubCommand                            isrt.obl(CustomDialog.obs)\r
+150  ISRT._CtrlSetMLERichText                           isrt.obl(CustomDialog.obs)\r
+151  ISRT._DefineDialog                                 isrt.obl(CustomDialog.obs)\r
+152  ISRT._DialogSetFont                                isrt.obl(Dialogs.obs)\r
+153  ISRT._DisableStatus                                isrt.obl(Enable.obs)\r
+154  ISRT._DoSprintf                                    iswi.obl(HelperFuncs.obs)\r
+155  ISRT._EnableDialogCache                            isrt.obl(Enable.obs)\r
+156  ISRT._EnablePrevDialog                             iswi.obl(AdminAskPath.obs)\r
+157  ISRT._EnableSkins                                  isrt.obl(Enable.obs)\r
+158  ISRT._EnableStatus                                 isrt.obl(Enable.obs)\r
+159  ISRT._EnableWow64FsRedirection                     isrt.obl(Enable.obs)\r
+160  ISRT._EndDialog                                    isrt.obl(CustomDialog.obs)\r
+161  ISRT._ExistsDir                                    isrt.obl(Files.obs)\r
+162  ISRT._ExistsFile                                   isrt.obl(Files.obs)\r
+163  ISRT._GetCurrentDialogName                         isrt.obl(Dialogs.obs)\r
+164  ISRT._GetDiskSpaceEx                               isrt.obl(GSI.obs)\r
+165  ISRT._GetDiskSpaceExEx                             isrt.obl(SdComponentTreeDlg.obs)\r
+166  ISRT._GetGlobalMemorySize                          isrt.obl(GSI.obs)\r
+167  ISRT._GetProcessorInfo                             isrt.obl(OsInfo.obs)\r
+168  ISRT._GetSelectedTreeComponent                     isrt.obl(CmptView.obs)\r
+169  ISRT._GetSupportDir                                isrt.obl(SysVars.obs)\r
+170  ISRT._IsFontTypefaceNameAvailable                  isrt.obl(Is.obs)\r
+171  ISRT._IsSkinLoaded                                 isrt.obl(Is.obs)\r
+172  ISRT._IsWindowsME                                  isrt.obl(GSI.obs)\r
+173  ISRT._IsWow64                                      isrt.obl(OsInfo.obs)\r
+174  ISRT._ListAddItem                                  isrt.obl(scrlist.obs)\r
+175  ISRT._ListAddString                                isrt.obl(scrlist.obs)\r
+176  ISRT._ListCount                                    isrt.obl(scrlist.obs)\r
+177  ISRT._ListCreate                                   isrt.obl(scrlist.obs)\r
+178  ISRT._ListCurrentString                            isrt.obl(scrlist.obs)\r
+179  ISRT._ListDeleteItem                               isrt.obl(scrlist.obs)\r
+180  ISRT._ListDeleteString                             isrt.obl(scrlist.obs)\r
+181  ISRT._ListDestroy                                  isrt.obl(scrlist.obs)\r
+182  ISRT._ListFindString                               isrt.obl(scrlist.obs)\r
+183  ISRT._ListGetFirstItem                             isrt.obl(scrlist.obs)\r
+184  ISRT._ListGetFirstString                           isrt.obl(scrlist.obs)\r
+185  ISRT._ListGetNextItem                              isrt.obl(scrlist.obs)\r
+186  ISRT._ListGetNextString                            isrt.obl(scrlist.obs)\r
+187  ISRT._ListGetType                                  isrt.obl(scrlist.obs)\r
+188  ISRT._ListSetIndex                                 isrt.obl(scrlist.obs)\r
+189  ISRT._MediaGetInfo                                 iswi.obl(FeatureConv.obs)\r
+190  ISRT._OpenFile                                     isrt.obl(Files.obs)\r
+191  ISRT._Preprogram                                   Setup.obs\r
+192  ISRT._RegCreateKey                                 isrt.obl(Registry.obs)\r
+193  ISRT._RegEnableTextSubs                            isrt.obl(Enable.obs)\r
+194  ISRT._RegEnum                                      isrt.obl(Registry.obs)\r
+195  ISRT._RegGetOptions                                isrt.obl(SysVars.obs)\r
+196  ISRT._RegIsRemoteRegConnected                      isrt.obl(Is.obs)\r
+197  ISRT._RegQueryKeyBinaryValue                       isrt.obl(Registry.obs)\r
+198  ISRT._RegQueryKeyValue                             isrt.obl(Registry.obs)\r
+199  ISRT._RegSetKeyBinaryValue                         isrt.obl(Registry.obs)\r
+200  ISRT._RegSetKeyValue                               isrt.obl(Registry.obs)\r
+201  ISRT._RegSetOptions                                isrt.obl(SysVars.obs)\r
+202  ISRT._ReleaseDialog                                isrt.obl(CustomDialog.obs)\r
+203  ISRT._SdShowMsg                                    isrt.obl(SDSMSG.obs)\r
+204  ISRT._SetAltMainImage                              isrt.obl(Dialogs.obs)\r
+205  ISRT._SetDisplayEffect                             isrt.obl(ui.obs)\r
+206  ISRT._SetSilentSdShowMsg                           isrt.obl(Enable.obs)\r
+207  ISRT._SetTitle                                     isrt.obl(ui.obs)\r
+208  ISRT._SetupTraceWrite                              isrt.obl(Misc.obs)\r
+209  ISRT._TreeViewCreate                               isrt.obl(CmptView.obs)\r
+210  ISRT._WaitOnDialog                                 isrt.obl(CustomDialog.obs)\r
+211  ISRT._WriteLine                                    isrt.obl(Files.obs)\r
+212  ISRT.__CreateObjectContext                         isrt.obl(ISRTInit.obs)\r
+213  ISRT.__GetCmdLineOptions                           isrt.obl(ISRTInit.obs)\r
+214  ISRT.__GetContextGUID                              isrt.obl(ISRTInit.obs)\r
+215  ISRT.__GetEnabledIServices                         isrt.obl(SysVars.obs)\r
+216  ISRT.__GetFileRegistrar                            isrt.obl(ISRTInit.obs)\r
+217  ISRT.__GetISMSIStringTableObj                      iswi.obl(ISWiInit.obs)\r
+218  ISRT.__GetInfo                                     isrt.obl(ISRTInit.obs)\r
+219  ISRT.__GetInstallGuid                              isrt.obl(SysVars.obs)\r
+220  ISRT.__GetLogDB                                    isrt.obl(ISRTInit.obs)\r
+221  ISRT.__GetMainWindow                               Setup.obs\r
+222  ISRT.__GetMaintOption                              isrt.obl(SysVars.obs)\r
+223  ISRT.__GetMaintenanceMode                          isrt.obl(SysVars.obs)\r
+224  ISRT.__GetObjects                                  isrt.obl(ISRTInit.obs)\r
+225  ISRT.__GetProductGuid                              isrt.obl(SysVars.obs)\r
+226  ISRT.__GetProgress                                 Setup.obs\r
+227  ISRT.__GetReboot                                   isrt.obl(ISRTInit.obs)\r
+228  ISRT.__GetRemoveAllMode                            isrt.obl(SysVars.obs)\r
+229  ISRT.__GetTextSub                                  isrt.obl(ISRTInit.obs)\r
+230  ISRT.__GetUpdateMode                               isrt.obl(SysVars.obs)\r
+231  ISRT.__PutEnabledIServices                         isrt.obl(Enable.obs)\r
+232  ISRT.__ReleaseObjectContext                        isrt.obl(ISRTInit.obs)\r
+233  ISRT.__RestoreMainLog                              isrt.obl(ISRTInit.obs)\r
+234  ISRT.__RestoreMainLogEx                            isrt.obl(ISRTInit.obs)\r
+235  ISRT.__SetComponentLog                             isrt.obl(ISRTInit.obs)\r
+236  ISRT.__SetUpdateMode                               isrt.obl(SysVars.obs)\r
+237  ISRTHandleScriptException                          isrt.obl(Misc.obs)\r
+238  ISRTPreprogram                                     isrt.obl(Driver.obs)\r
+239  ISWIOnAppSearch                                    iswi.obl(DriverConv.obs)\r
+240  ISWIOnCCPSearch                                    iswi.obl(DriverConv.obs)\r
+241  ISWIOnExitInstall                                  iswi.obl(DriverConv.obs)\r
+242  ISWIOnFirstUIAfter                                 iswi.obl(DriverConv.obs)\r
+243  ISWIOnFirstUIBefore                                iswi.obl(DriverConv.obs)\r
+244  ISWIOnInitInstall                                  iswi.obl(DriverConv.obs)\r
+245  ISWIOnMaintUIAfter                                 iswi.obl(DriverConv.obs)\r
+246  ISWIOnMaintUIBefore                                iswi.obl(DriverConv.obs)\r
+247  ISWIOnMoveData                                     iswi.obl(DriverConv.obs)\r
+248  ISWIOnResumeUIAfter                                iswi.obl(DriverConv.obs)\r
+249  ISWIOnResumeUIBefore                               iswi.obl(DriverConv.obs)\r
+250  ISWIPCRestoreAfter                                 iswi.obl(DriverConv.obs)\r
+251  ISWIPCRestoreBefore                                iswi.obl(DriverConv.obs)\r
+252  ISWIPostprogram                                    iswi.obl(DriverConv.obs)\r
+253  ISWIPreprogram                                     iswi.obl(DriverConv.obs)\r
+254  InstallFilesActionAfter                            iswi.obl(FileTransferFuncsConv.obs)\r
+255  InstallFilesActionBefore                           iswi.obl(FileTransferFuncsConv.obs)\r
+256  Is                                                 isrt.obl(Is.obs)\r
+257  IsTestSetup                                        iswi.obl(HelperFuncs.obs)\r
+258  KERNEL.GetModuleHandle                             Setup.obs\r
+259  KERNEL32.CloseHandle                               Setup.obs\r
+260  KERNEL32.CreateFileA                               Setup.obs\r
+261  KERNEL32.CreateProcess                             Setup.obs\r
+262  KERNEL32.DeleteFileA                               Setup.obs\r
+263  KERNEL32.FindClose                                 Setup.obs\r
+264  KERNEL32.FindFirstFileA                            Setup.obs\r
+265  KERNEL32.FindNextFileA                             Setup.obs\r
+266  KERNEL32.FormatMessageA                            Setup.obs\r
+267  KERNEL32.FreeLibrary                               Setup.obs\r
+268  KERNEL32.GetCurrentDirectoryA                      Setup.obs\r
+269  KERNEL32.GetDriveType                              Setup.obs\r
+270  KERNEL32.GetExitCodeProcess                        Setup.obs\r
+271  KERNEL32.GetFileAttributesA                        Setup.obs\r
+272  KERNEL32.GetLocalTime                              Setup.obs\r
+273  KERNEL32.GetLocaleInfo                             Setup.obs\r
+274  KERNEL32.GetPrivateProfileSectionA                 Setup.obs\r
+275  KERNEL32.GetPrivateProfileString                   Setup.obs\r
+276  KERNEL32.GetPrivateProfileStringA                  Setup.obs\r
+277  KERNEL32.GetProcAddress                            Setup.obs\r
+278  KERNEL32.GetProfileStringA                         Setup.obs\r
+279  KERNEL32.GetShortPathNameA                         Setup.obs\r
+280  KERNEL32.GetSystemDefaultLCID                      Setup.obs\r
+281  KERNEL32.GetSystemDefaultLangID                    Setup.obs\r
+282  KERNEL32.GetSystemDefaultUILanguage                Setup.obs\r
+283  KERNEL32.GetTickCount                              Setup.obs\r
+284  KERNEL32.GetUserDefaultLangID                      Setup.obs\r
+285  KERNEL32.GetVersion                                Setup.obs\r
+286  KERNEL32.GetVersionEx                              Setup.obs\r
+287  KERNEL32.GetVolumeInformation                      Setup.obs\r
+288  KERNEL32.GetWindowsDirectory                       Setup.obs\r
+289  KERNEL32.LoadLibraryA                              Setup.obs\r
+290  KERNEL32.SetCurrentDirectoryA                      Setup.obs\r
+291  KERNEL32.SetFileAttributesA                        Setup.obs\r
+292  KERNEL32.WritePrivateProfileString                 Setup.obs\r
+293  KERNEL32.lstrlen                                   Setup.obs\r
+294  Kernel32.GetModuleHandleA                          iswi.obl(ComponentConv.obs)\r
+295  LOWORD                                             isrt.obl(Misc.obs)\r
+296  LaunchAgent                                        iswi.obl(HelperFuncs.obs)\r
+297  LaunchApp                                          isrt.obl(Extend.obs)\r
+298  LaunchAppAndWait                                   isrt.obl(Extend.obs)\r
+299  LaunchAppAndWaitInitStartupInfo                    isrt.obl(Extend.obs)\r
+300  ListAddItem                                        isrt.obl(scrlist.obs)\r
+301  ListAddString                                      isrt.obl(scrlist.obs)\r
+302  ListCount                                          isrt.obl(scrlist.obs)\r
+303  ListCreate                                         isrt.obl(scrlist.obs)\r
+304  ListCurrentString                                  isrt.obl(scrlist.obs)\r
+305  ListDeleteItem                                     isrt.obl(scrlist.obs)\r
+306  ListDeleteString                                   isrt.obl(scrlist.obs)\r
+307  ListDestroy                                        isrt.obl(scrlist.obs)\r
+308  ListFindString                                     isrt.obl(scrlist.obs)\r
+309  ListGetFirstItem                                   isrt.obl(scrlist.obs)\r
+310  ListGetFirstString                                 isrt.obl(scrlist.obs)\r
+311  ListGetLastString                                  iswi.obl(CompHelperFuncs.obs)\r
+312  ListGetNextItem                                    isrt.obl(scrlist.obs)\r
+313  ListGetNextString                                  isrt.obl(scrlist.obs)\r
+314  ListGetType                                        isrt.obl(scrlist.obs)\r
+315  ListSetIndex                                       isrt.obl(scrlist.obs)\r
+316  ListValid                                          isrt.obl(scrlist.obs)\r
+317  ListValidType                                      isrt.obl(scrlist.obs)\r
+318  LoadStringFromStringTable                          iswi.obl(ISWiInit.obs)\r
+319  LongPathFromShortPath                              isrt.obl(Str.obs)\r
+320  LongPathToQuote                                    isrt.obl(Str.obs)\r
+321  LongPathToShortPath                                isrt.obl(Str.obs)\r
+322  MAKELONG                                           isrt.obl(Misc.obs)\r
+323  MIFCreateMIFFile                                   isrt.obl(MIF.obs)\r
+324  MIFDeleteMIFFile                                   isrt.obl(MIF.obs)\r
+325  MIFInitialize                                      isrt.obl(MIF.obs)\r
+326  MIFSetInformation                                  isrt.obl(MIF.obs)\r
+327  MIFUnInitialize                                    isrt.obl(MIF.obs)\r
+328  MIFWasSetInformationCalled                         isrt.obl(MIF.obs)\r
+329  MediaGetDataEx                                     iswi.obl(FeatureConv.obs)\r
+330  MessageBeep                                        isrt.obl(Misc.obs)\r
+331  MessageBox                                         isrt.obl(MsgBox.obs)\r
+332  MessageBoxEx                                       isrt.obl(MsgBox.obs)\r
+333  Moved                                              iswi.obl(FileTransferFuncsConv.obs)\r
+334  Moving                                             iswi.obl(FileTransferFuncsConv.obs)\r
+335  MsiCloseHandle                                     iswi.obl(MsiFuncsConv.obs)\r
+336  MsiCreateRecord                                    iswi.obl(MsiFuncsConv.obs)\r
+337  MsiDatabaseOpenView                                iswi.obl(MsiFuncsConv.obs)\r
+338  MsiDoAction                                        iswi.obl(MsiFuncsConv.obs)\r
+339  MsiGetActiveDatabase                               iswi.obl(MsiFuncsConv.obs)\r
+340  MsiGetProperty                                     iswi.obl(MsiFuncsConv.obs)\r
+341  MsiGetPropertyIS                                   iswi.obl(MsiFuncsConv.obs)\r
+342  MsiGetSourcePath                                   iswi.obl(MsiFuncsConv.obs)\r
+343  MsiGetTargetPath                                   iswi.obl(MsiFuncsConv.obs)\r
+344  MsiInstallProduct                                  iswi.obl(MsiFuncsConv.obs)\r
+345  MsiProcessMessage                                  iswi.obl(MsiFuncsConv.obs)\r
+346  MsiQueryFeatureState                               iswi.obl(MsiFuncsConv.obs)\r
+347  MsiRecordGetInteger                                iswi.obl(MsiFuncsConv.obs)\r
+348  MsiRecordGetString                                 iswi.obl(MsiFuncsConv.obs)\r
+349  MsiRecordSetString                                 iswi.obl(MsiFuncsConv.obs)\r
+350  MsiSetProperty                                     iswi.obl(MsiFuncsConv.obs)\r
+351  MsiSetTargetPath                                   iswi.obl(MsiFuncsConv.obs)\r
+352  MsiViewExecute                                     iswi.obl(MsiFuncsConv.obs)\r
+353  MsiViewFetch                                       iswi.obl(MsiFuncsConv.obs)\r
+354  OnAbort                                            iswi.obl(DriverConv.obs)\r
+355  OnAction                                           iswi.obl(ISWiInit.obs)\r
+356  OnAdminInstallUIAfter                              iswi.obl(DriverConv.obs)\r
+357  OnAdminInstallUIBefore                             iswi.obl(DriverConv.obs)\r
+358  OnAdminPatchUIAfter                                iswi.obl(DriverConv.obs)\r
+359  OnAdminPatchUIBefore                               iswi.obl(DriverConv.obs)\r
+360  OnAdvertisementAfter                               iswi.obl(DriverConv.obs)\r
+361  OnAdvertisementBefore                              iswi.obl(DriverConv.obs)\r
+362  OnAppSearch                                        iswi.obl(DriverConv.obs)\r
+363  OnBegin                                            iswi.obl(DriverConv.obs)\r
+364  OnCCPSearch                                        iswi.obl(DriverConv.obs)\r
+365  OnCanceling                                        iswi.obl(DriverConv.obs)\r
+366  OnComponentError                                   iswi.obl(Exceptions.obs)\r
+367  OnDIFxLogCallback                                  isrt.obl(ISDIFx.obs)\r
+368  OnDIFxLogCallbackImpl                              isrt.obl(ISDIFx.obs)\r
+369  OnEnd                                              iswi.obl(DriverConv.obs)\r
+370  OnError                                            iswi.obl(DriverConv.obs)\r
+371  OnException                                        iswi.obl(Exceptions.obs)\r
+372  OnFeaturesInstalled                                iswi.obl(FileTransferFuncsConv.obs)\r
+373  OnFeaturesInstalling                               iswi.obl(FileTransferFuncsConv.obs)\r
+374  OnFileError                                        iswi.obl(Exceptions.obs)\r
+375  OnFileLocked                                       iswi.obl(Exceptions.obs)\r
+376  OnFileReadOnly                                     iswi.obl(Exceptions.obs)\r
+377  OnFilesInUse                                       iswi.obl(DriverConv.obs)\r
+378  OnFirstUIAfter                                     iswi.obl(DriverConv.obs)\r
+379  OnFirstUIBefore                                    iswi.obl(DriverConv.obs)\r
+380  OnGeneratedMSIScript                               iswi.obl(FileTransferFuncsConv.obs)\r
+381  OnGeneratingMSIScript                              iswi.obl(FileTransferFuncsConv.obs)\r
+382  OnHelp                                             iswi.obl(DriverConv.obs)\r
+383  OnInstallFilesActionAfter                          iswi.obl(FileTransferFuncsConv.obs)\r
+384  OnInstallFilesActionBefore                         iswi.obl(FileTransferFuncsConv.obs)\r
+385  OnInternetError                                    iswi.obl(Exceptions.obs)\r
+386  OnLaunchAppAndWaitCallback                         iswi.obl(DriverConv.obs)\r
+387  OnLogonUserSetMsiProperties                        iswi.obl(DriverConv.obs)\r
+388  OnMD5Error                                         iswi.obl(Exceptions.obs)\r
+389  OnMaintUIAfter                                     iswi.obl(DriverConv.obs)\r
+390  OnMaintUIBefore                                    iswi.obl(DriverConv.obs)\r
+391  OnMaintenance                                      iswi.obl(DriverConv.obs)\r
+392  OnMoved                                            iswi.obl(FileTransferFuncsConv.obs)\r
+393  OnMoving                                           iswi.obl(FileTransferFuncsConv.obs)\r
+394  OnMsiSilentInstall                                 iswi.obl(DriverConv.obs)\r
+395  OnNetApiCreateUserAccountInternal                  isrt.obl(NetApiRT.obs)\r
+396  OnNextDisk                                         iswi.obl(Exceptions.obs)\r
+397  OnOutOfDiskSpace                                   iswi.obl(DriverConv.obs)\r
+398  OnPatchUIAfter                                     iswi.obl(DriverConv.obs)\r
+399  OnPatchUIBefore                                    iswi.obl(DriverConv.obs)\r
+400  OnRebooted                                         iswi.obl(DriverConv.obs)\r
+401  OnRemovingSharedFile                               iswi.obl(Exceptions.obs)\r
+402  OnResolveSource                                    iswi.obl(DriverConv.obs)\r
+403  OnResume                                           iswi.obl(DriverConv.obs)\r
+404  OnResumeUIAfter                                    iswi.obl(DriverConv.obs)\r
+405  OnResumeUIBefore                                   iswi.obl(DriverConv.obs)\r
+406  OnSQLLogin                                         iswi.obl(DriverConv.obs)\r
+407  OnSelfRegistrationError                            iswi.obl(Exceptions.obs)\r
+408  OnUnhandledException                               iswi.obl(DriverConv.obs)\r
+409  OnUninstall                                        iswi.obl(DriverConv.obs)\r
+410  OnUpdateService                                    iswi.obl(DriverConv.obs)\r
+411  OnWarning                                          iswi.obl(DriverConv.obs)\r
+412  OpenFile                                           isrt.obl(Files.obs)\r
+413  OpenFileMode                                       isrt.obl(Files.obs)\r
+414  PCRestoreOnBegin                                   isrt.obl(PCRestore.obs)\r
+415  ParsePath                                          isrt.obl(Str.obs)\r
+416  PostShowComponentDlg                               iswi.obl(ISWiInit.obs)\r
+417  Postprogram                                        iswi.obl(DriverConv.obs)\r
+418  PreShowComponentDlg                                iswi.obl(ISWiInit.obs)\r
+419  Preprogram                                         iswi.obl(DriverConv.obs)\r
+420  ProgDefGroupType                                   isrt.obl(Shell.obs)\r
+421  ProgGetGroupType                                   isrt.obl(Shell.obs)\r
+422  PthFixPath                                         isrt.obl(Pth.obs)\r
+423  PthIsAbsPath                                       isrt.obl(Pth.obs)\r
+424  RebootNeeded                                       iswi.obl(FileTransferFuncsConv.obs)\r
+425  RedirectMsiCloseHandle                             iswi.obl(RedirectedMsiFuncsConv.obs)\r
+426  RedirectMsiCreateRecord                            iswi.obl(RedirectedMsiFuncsConv.obs)\r
+427  RedirectMsiGetActiveDatabase                       iswi.obl(RedirectedMsiFuncsConv.obs)\r
+428  RedirectMsiProcessMessage                          iswi.obl(RedirectedMsiFuncsConv.obs)\r
+429  RedirectMsiRecordGetInteger                        iswi.obl(RedirectedMsiFuncsConv.obs)\r
+430  RedirectMsiViewExecute                             iswi.obl(RedirectedMsiFuncsConv.obs)\r
+431  RedirectMsiViewFetch                               iswi.obl(RedirectedMsiFuncsConv.obs)\r
+432  RegDBGetDefaultRoot                                isrt.obl(SysVars.obs)\r
+433  RegDBGetItem                                       isrt.obl(Registry.obs)\r
+434  RegDBGetKeyValueEx                                 isrt.obl(Registry.obs)\r
+435  RegDBQueryKey                                      isrt.obl(Registry.obs)\r
+436  RegDBQueryKeyCount                                 isrt.obl(Registry.obs)\r
+437  RegDBQueryStringMultiStringCount                   isrt.obl(Registry.obs)\r
+438  RegDBQueryValue                                    isrt.obl(Registry.obs)\r
+439  RegDBQueryValue32                                  isrt.obl(Registry.obs)\r
+440  RegDBSetDefaultRoot                                isrt.obl(SysVars.obs)\r
+441  RegDBSetKeyValueEx                                 isrt.obl(Registry.obs)\r
+442  RegDBSetValue                                      isrt.obl(Registry.obs)\r
+443  ReleaseDialog                                      isrt.obl(CustomDialog.obs)\r
+444  RemoveSpaces                                       iswi.obl(HelperFuncs.obs)\r
+445  ResolveShellObjectsFolder                          iswi.obl(CompHelperFuncs.obs)\r
+446  SdAskDestPath                                      isrt.obl(SdAskDestPathDlg.obs)\r
+447  SdCloseDlg                                         isrt.obl(SDINT.obs)\r
+448  SdComponentDlgCheckSpace                           isrt.obl(SDINT.obs)\r
+449  SdCustomerInformation                              iswi.obl(SdCustInfo.obs)\r
+450  SdDlgToTop                                         isrt.obl(SDINT.obs)\r
+451  SdDoStdButton                                      isrt.obl(SDINT.obs)\r
+452  SdEnablement                                       isrt.obl(SDINT.obs)\r
+453  SdError                                            isrt.obl(SDINT.obs)\r
+454  SdFeatureTree                                      isrt.obl(SdComponentTreeDlg.obs)\r
+455  SdFilesInUse                                       iswi.obl(SdFilesInUse.obs)\r
+456  SdFinish                                           isrt.obl(SdFinishDlg.obs)\r
+457  SdFinishEx                                         iswi.obl(SdFinishExConv.obs)\r
+458  SdFinishReboot                                     isrt.obl(SdFinishRebootDlg.obs)\r
+459  SdFinishUpdate                                     iswi.obl(SdFinishUpdate.obs)\r
+460  SdFinishUpdateReboot                               iswi.obl(SdFinUpdateRebot.obs)\r
+461  SdGeneralInit                                      isrt.obl(SDINT.obs)\r
+462  SdInit                                             isrt.obl(SDINT.obs)\r
+463  SdIsStdButton                                      isrt.obl(SDINT.obs)\r
+464  SdLoadString                                       isrt.obl(SDINT.obs)\r
+465  SdMakeName                                         isrt.obl(SDINT.obs)\r
+466  SdOutOfDiskSpace                                   iswi.obl(SdDiskReqs.obs)\r
+467  SdPatchWelcome                                     iswi.obl(SdPatchWel.obs)\r
+468  SdPlugInProductName                                isrt.obl(SDINT.obs)\r
+469  SdSetDlgTitle                                      isrt.obl(SDINT.obs)\r
+470  SdSetStatic                                        isrt.obl(SDINT.obs)\r
+471  SdSetupCompleteError                               iswi.obl(SdSetupCompleteError.obs)\r
+472  SdShowMsg                                          isrt.obl(SDSMSG.obs)\r
+473  SdStartCopy                                        isrt.obl(SdStartCopyDlg.obs)\r
+474  SdSubstituteProductInfo                            isrt.obl(SDINT.obs)\r
+475  SdUnInit                                           isrt.obl(SDINT.obs)\r
+476  SdWelcome                                          isrt.obl(SdWelcomeDlg.obs)\r
+477  SdWelcomeMaint                                     isrt.obl(SdWelcomeMaintDlg.obs)\r
+478  SelectDir                                          isrt.obl(SelectDir.obs)\r
+479  SelectDirNoLog                                     isrt.obl(SelectDir.obs)\r
+480  SendMessage                                        isrt.obl(Misc.obs)\r
+481  ServiceInitParams                                  isrt.obl(Service.obs)\r
+482  SetCmdLine                                         isrt.obl(SysVars.obs)\r
+483  SetDisplayEffect                                   isrt.obl(ui.obs)\r
+484  SetExtendedErrInfo                                 isrt.obl(IsUtil.obs)\r
+485  SetFolderDesktop                                   isrt.obl(SysVars.obs)\r
+486  SetFolderPrograms                                  isrt.obl(SysVars.obs)\r
+487  SetFolderStartMenu                                 isrt.obl(SysVars.obs)\r
+488  SetFolderStartup                                   isrt.obl(SysVars.obs)\r
+489  SetGlobalVars                                      iswi.obl(ISWiInit.obs)\r
+490  SetInstallationInfo                                isrt.obl(Registry.obs)\r
+491  SetMifInformationOnly                              isrt.obl(Registry.obs)\r
+492  SetTitle                                           isrt.obl(ui.obs)\r
+493  SetUpdateStatus                                    iswi.obl(HelperFuncs.obs)\r
+494  SetUpdateStatusReboot                              iswi.obl(HelperFuncs.obs)\r
+495  SetupTraceWrite                                    isrt.obl(Misc.obs)\r
+496  SetupType                                          isrt.obl(SetupTypeDlg.obs)\r
+497  SilentDoGeneralInfo                                isrt.obl(Silent.obs)\r
+498  SilentFailed                                       isrt.obl(Silent.obs)\r
+499  SilentFinish                                       isrt.obl(Silent.obs)\r
+500  SilentInit                                         isrt.obl(Silent.obs)\r
+501  SilentReadData                                     isrt.obl(Silent.obs)\r
+502  SilentSetInfo                                      isrt.obl(Silent.obs)\r
+503  SilentSetMode                                      isrt.obl(Silent.obs)\r
+504  SilentWriteData                                    isrt.obl(Silent.obs)\r
+505  Sprintf                                            isrt.obl(Str.obs)\r
+506  SprintfBox                                         isrt.obl(MsgBox.obs)\r
+507  SprintfMsiLog                                      iswi.obl(HelperFuncs.obs)\r
+508  StrAddLastSlash                                    isrt.obl(Str.obs)\r
+509  StrDelete                                          iswi.obl(HelperFuncs.obs)\r
+510  StrFindEx                                          isrt.obl(Str.obs)\r
+511  StrGetTokens                                       isrt.obl(Str.obs)\r
+512  StrLength                                          isrt.obl(Str.obs)\r
+513  StrRemoveLastSlash                                 isrt.obl(Str.obs)\r
+514  StrRemoveSpaces                                    isrt.obl(Str.obs)\r
+515  StrReplace                                         isrt.obl(Str.obs)\r
+516  StrToNumHex                                        isrt.obl(Str.obs)\r
+517  StrToUpper                                         isrt.obl(Str.obs)\r
+518  SysVarsInit                                        isrt.obl(SysVars.obs)\r
+519  SysVarsInitConv                                    iswi.obl(SysVarsConv.obs)\r
+520  SysVarsTrace                                       isrt.obl(SysVars.obs)\r
+521  SysVarsUnInit                                      iswi.obl(SysVarsConv.obs)\r
+522  System                                             isrt.obl(Misc.obs)\r
+523  TextSubGetValue                                    isrt.obl(TextSub.obs)\r
+524  TextSubParseTextSub                                isrt.obl(TextSub.obs)\r
+525  TextSubSetValue                                    isrt.obl(TextSub.obs)\r
+526  TreeViewCreate                                     isrt.obl(CmptView.obs)\r
+527  USER.EnableWindow                                  Setup.obs\r
+528  USER.GetClassName                                  Setup.obs\r
+529  USER.GetDC                                         Setup.obs\r
+530  USER.GetDlgItem                                    Setup.obs\r
+531  USER.GetFocus                                      Setup.obs\r
+532  USER.GetWindowLong                                 Setup.obs\r
+533  USER.IsIconic                                      Setup.obs\r
+534  USER.IsWindow                                      Setup.obs\r
+535  USER.IsWindowVisible                               Setup.obs\r
+536  USER.ReleaseDC                                     Setup.obs\r
+537  USER.SendMessageA                                  Setup.obs\r
+538  USER.SetFocus                                      Setup.obs\r
+539  USER.SetForegroundWindow                           Setup.obs\r
+540  USER.SetWindowPos                                  Setup.obs\r
+541  USER.SetWindowText                                 Setup.obs\r
+542  USER.ShowWindow                                    Setup.obs\r
+543  USER32.CharUpperBuffA                              Setup.obs\r
+544  USER32.FindWindowA                                 Setup.obs\r
+545  USER32.GetDlgItem                                  iswi.obl(SdDiskReqs.obs)\r
+546  USER32.GetSystemMetrics                            Setup.obs\r
+547  USER32.GetWindowRect                               iswi.obl(SdDiskReqs.obs)\r
+548  USER32.GetWindowText                               Setup.obs\r
+549  USER32.GetWindowTextLength                         Setup.obs\r
+550  USER32.MessageBoxA                                 Setup.obs\r
+551  USER32.MsgWaitForMultipleObjects                   Setup.obs\r
+552  USER32.PeekMessageA                                Setup.obs\r
+553  USER32.SendMessageA                                Setup.obs\r
+554  USER32.SetWindowLong                               Setup.obs\r
+555  USER32.SetWindowRgn                                Setup.obs\r
+556  UpdateServiceEnableUpdateService                   isrt.obl(ISUpdateService.obs)\r
+557  User32.DestroyWindow                               iswi.obl(SdDiskReqs.obs)\r
+558  User32.LoadStringA                                 iswi.obl(ComponentConv.obs)\r
+559  VarInit                                            isrt.obl(SysVars.obs)\r
+560  VarRestore                                         iswi.obl(SysVarsConv.obs)\r
+561  VarRestoreISRT                                     isrt.obl(SysVars.obs)\r
+562  VarSave                                            iswi.obl(SysVarsConv.obs)\r
+563  VarSaveISRT                                        isrt.obl(SysVars.obs)\r
+564  VerProductGetInstalledVersion                      isrt.obl(version.obs)\r
+565  VerProductNumToStr                                 isrt.obl(version.obs)\r
+566  VerProductVerPartsFromVer                          isrt.obl(version.obs)\r
+567  WaitOnDialog                                       isrt.obl(CustomDialog.obs)\r
+568  WriteLine                                          isrt.obl(Files.obs)\r
+569  __AddIntegerToArray                                iswi.obl(HelperFuncs.obs)\r
+570  __AddStringToArray                                 iswi.obl(HelperFuncs.obs)\r
+571  __Begin                                            iswi.obl(DriverConv.obs)\r
+572  __ComponentListItemsEx                             iswi.obl(CompHelperFuncs.obs)\r
+573  __ComponentListItemsExInstall                      iswi.obl(CompHelperFuncs.obs)\r
+574  __ComponentListItemsExUnInstall                    iswi.obl(CompHelperFuncs.obs)\r
+575  __ComponentMoveXferData                            iswi.obl(CompHelperFuncs.obs)\r
+576  __End                                              iswi.obl(DriverConv.obs)\r
+577  __GetFinishMode                                    iswi.obl(ISWiInit.obs)\r
+578  __GetMsiHandle                                     iswi.obl(SysVarsConv.obs)\r
+579  __GetSourceDir                                     iswi.obl(SysVarsConv.obs)\r
+580  __HandleError                                      iswi.obl(ErrHandler.obs)\r
+581  __ISRTDoExit                                       isrt.obl(Misc.obs)\r
+582  __ISRTInit                                         isrt.obl(ISRTInit.obs)\r
+583  __ISRTRestoreMainLog                               isrt.obl(ISRTInit.obs)\r
+584  __ISRTRestoreMainLogEx                             isrt.obl(ISRTInit.obs)\r
+585  __ISRTSetComponentLog                              isrt.obl(ISRTInit.obs)\r
+586  __ISRTUnInit                                       isrt.obl(ISRTInit.obs)\r
+587  __ISWIInit                                         iswi.obl(ISWiInit.obs)\r
+588  __ISWIMsiHandle                                    iswi.obl(ISWiInit.obs)\r
+589  __ISWIUnInit                                       iswi.obl(ISWiInit.obs)\r
+590  __IsArrayEmpty                                     iswi.obl(HelperFuncs.obs)\r
+591  __LoadIScriptString                                isrt.obl(LoadStr.obs)\r
+592  __Moved                                            iswi.obl(FileTransferFuncsConv.obs)\r
+593  __Moving                                           iswi.obl(FileTransferFuncsConv.obs)\r
+594  __MsiOpenView                                      iswi.obl(CompHelperFuncs.obs)\r
+595  __MsiQueryFeatureState                             iswi.obl(MsiWrappersConv.obs)\r
+596  __MsiRecordGetString                               iswi.obl(MsiWrappersConv.obs)\r
+597  __OnAbort                                          iswi.obl(DriverConv.obs)\r
+598  __OnAdminPatch                                     iswi.obl(DriverConv.obs)\r
+599  __OnAdministrativeInstall                          iswi.obl(DriverConv.obs)\r
+600  __OnAdvertisement                                  iswi.obl(DriverConv.obs)\r
+601  __OnBegin                                          iswi.obl(DriverConv.obs)\r
+602  __OnCanceling                                      iswi.obl(DriverConv.obs)\r
+603  __OnEnd                                            iswi.obl(DriverConv.obs)\r
+604  __OnError                                          iswi.obl(DriverConv.obs)\r
+605  __OnMsiMaintenance                                 iswi.obl(DriverConv.obs)\r
+606  __OnMsiRebooted                                    iswi.obl(DriverConv.obs)\r
+607  __OnMsiSilentInstall                               iswi.obl(DriverConv.obs)\r
+608  __OnMsiUninstall                                   iswi.obl(DriverConv.obs)\r
+609  __OnPatch                                          iswi.obl(DriverConv.obs)\r
+610  __OnResume                                         iswi.obl(DriverConv.obs)\r
+611  __OnWarning                                        iswi.obl(DriverConv.obs)\r
+612  __ResetMsiObject                                   iswi.obl(ISWiInit.obs)\r
+613  __SetMaintenance                                   iswi.obl(ISWiInit.obs)\r
+614  __SetMsiHandle                                     iswi.obl(SysVarsConv.obs)\r
+615  __SetMsiServer                                     iswi.obl(ISWiInit.obs)\r
+616  __SetPatch                                         iswi.obl(SysVarsConv.obs)\r
+617  __SetSourceDir                                     iswi.obl(SysVarsConv.obs)\r
+618  isrt._ComponentGetData                             iswi.obl(ComponentConv.obs)\r
+619  isrt._ComponentIsItemSelected                      iswi.obl(ComponentConv.obs)\r
+620  isrt._ComponentListItems                           iswi.obl(ComponentConv.obs)\r
+621  isrt._ComponentReinstall                           iswi.obl(ComponentConv.obs)\r
+622  isrt._ComponentRemoveAll                           iswi.obl(ComponentConv.obs)\r
+623  isrt._ComponentSelectItem                          iswi.obl(ComponentConv.obs)\r
+624  isrt._ComponentSetupTypeSet                        iswi.obl(ComponentConv.obs)\r
+625  isrt._EnableDialogCache                            iswi.obl(ISWiInit.obs)\r
+626  kernel32.GetLocalTime                              iswi.obl(ErrHandler.obs)\r
+627  kernel32.GetWindowsDirectoryA                      iswi.obl(ErrHandler.obs)\r
+628  msi.MsiCloseHandle                                 iswi.obl(RedirectedMsiFuncsConv.obs)\r
+629  msi.MsiCreateRecord                                iswi.obl(RedirectedMsiFuncsConv.obs)\r
+630  msi.MsiDatabaseOpenViewA                           Setup.obs\r
+631  msi.MsiDoActionA                                   Setup.obs\r
+632  msi.MsiGetActiveDatabase                           iswi.obl(RedirectedMsiFuncsConv.obs)\r
+633  msi.MsiGetProductInfoA                             Setup.obs\r
+634  msi.MsiGetPropertyA                                Setup.obs\r
+635  msi.MsiGetSourcePathA                              Setup.obs\r
+636  msi.MsiGetTargetPathA                              Setup.obs\r
+637  msi.MsiOpenDatabaseA                               Setup.obs\r
+638  msi.MsiProcessMessage                              iswi.obl(RedirectedMsiFuncsConv.obs)\r
+639  msi.MsiQueryFeatureStateA                          Setup.obs\r
+640  msi.MsiRecordGetInteger                            iswi.obl(RedirectedMsiFuncsConv.obs)\r
+641  msi.MsiRecordGetStringA                            Setup.obs\r
+642  msi.MsiRecordSetStringA                            Setup.obs\r
+643  msi.MsiSetPropertyA                                Setup.obs\r
+644  msi.MsiSetTargetPathA                              Setup.obs\r
+645  msi.MsiViewExecute                                 iswi.obl(RedirectedMsiFuncsConv.obs)\r
+646  msi.MsiViewFetch                                   iswi.obl(RedirectedMsiFuncsConv.obs)\r
+647  program                                            iswi.obl(DriverConv.obs)\r
+648  sfc.SRSetRestorePoint                              Setup.obs\r
+\r
+\r
+***** External Variables *****\r
+1    ADDREMOVE                                          iswi.obl(HelperFuncs.obs)\r
+2    ADDREMOVE_COMBINEDBUTTON                           Setup.obs\r
+3    ADDREMOVE_HIDECHANGEOPTION                         Setup.obs\r
+4    ADDREMOVE_HIDEREMOVEOPTION                         Setup.obs\r
+5    ADDREMOVE_HIDEREPAIROPTION                         Setup.obs\r
+6    ADDREMOVE_STRING_REMOVEONLY                        Setup.obs\r
+7    ADDREMOVE_SYSTEMCOMPONENT                          Setup.obs\r
+8    ADMINUSER                                          Setup.obs\r
+9    ALLUSERS                                           Setup.obs\r
+10   AdminToolsFolder                                   iswi.obl(DebugSymbolsConv.obs)\r
+11   AppDataFolder                                      iswi.obl(DebugSymbolsConv.obs)\r
+12   BASICMSI                                           iswi.obl(HelperFuncs.obs)\r
+13   BATCH_INSTALL                                      Setup.obs\r
+14   CMDLINE                                            iswi.obl(HelperFuncs.obs)\r
+15   CMPTFILTERLANGOBJ                                  iswi.obl(CompHelperFuncs.obs)\r
+16   COMMONFILES                                        iswi.obl(HelperFuncs.obs)\r
+17   COMMONFILES64                                      iswi.obl(HelperFuncs.obs)\r
+18   CommonAppDataFolder                                iswi.obl(DebugSymbolsConv.obs)\r
+19   CommonFiles64Folder                                iswi.obl(DebugSymbolsConv.obs)\r
+20   CommonFilesFolder                                  iswi.obl(DebugSymbolsConv.obs)\r
+21   DISABLE_ALLUSERBTN                                 Setup.obs\r
+22   DISABLE_PERUSERBTN                                 Setup.obs\r
+23   DISK1SETUPEXENAME                                  iswi.obl(HelperFuncs.obs)\r
+24   DISK1TARGET                                        Setup.obs\r
+25   DesktopFolder                                      iswi.obl(DebugSymbolsConv.obs)\r
+26   ENABLED_ISERVICES                                  iswi.obl(HelperFuncs.obs)\r
+27   ENGINECOMMONDIR                                    iswi.obl(HelperFuncs.obs)\r
+28   ENGINEDIR                                          iswi.obl(HelperFuncs.obs)\r
+29   ERRORFILENAME                                      Setup.obs\r
+30   ERRORINFO                                          iswi.obl(ComponentConv.obs)\r
+31   Err                                                Setup.obs\r
+32   FEATURE                                            iswi.obl(ComponentConv.obs)\r
+33   FILEERROR                                          iswi.obl(ComponentConv.obs)\r
+34   FILETIME                                           Setup.obs\r
+35   FIND_DATA                                          Setup.obs\r
+36   FOLDER_APPDATA                                     iswi.obl(HelperFuncs.obs)\r
+37   FOLDER_COMMON_APPDATA                              iswi.obl(HelperFuncs.obs)\r
+38   FOLDER_DESKTOP                                     iswi.obl(HelperFuncs.obs)\r
+39   FOLDER_DOTNET_10                                   iswi.obl(HelperFuncs.obs)\r
+40   FOLDER_DOTNET_11                                   iswi.obl(HelperFuncs.obs)\r
+41   FOLDER_DOTNET_20                                   iswi.obl(HelperFuncs.obs)\r
+42   FOLDER_FONTS                                       iswi.obl(HelperFuncs.obs)\r
+43   FOLDER_LOCAL_APPDATA                               iswi.obl(HelperFuncs.obs)\r
+44   FOLDER_PERSONAL                                    iswi.obl(HelperFuncs.obs)\r
+45   FOLDER_PROGRAMS                                    iswi.obl(HelperFuncs.obs)\r
+46   FOLDER_STARTMENU                                   iswi.obl(HelperFuncs.obs)\r
+47   FOLDER_STARTUP                                     iswi.obl(HelperFuncs.obs)\r
+48   FOLDER_TEMP                                        iswi.obl(HelperFuncs.obs)\r
+49   FavoritesFolder                                    iswi.obl(DebugSymbolsConv.obs)\r
+50   FileRegistrar                                      Setup.obs\r
+51   FontsFolder                                        iswi.obl(DebugSymbolsConv.obs)\r
+52   HKEYCURRENTROOTKEY                                 Setup.obs\r
+53   IFX_COMPANY_NAME                                   Setup.obs\r
+54   IFX_INSTALLED_DISPLAY_VERSION                      Setup.obs\r
+55   IFX_INSTALLED_VERSION                              Setup.obs\r
+56   IFX_KEYPATH_PRODUCT_INFO                           Setup.obs\r
+57   IFX_MULTI_INSTANCE_SUFFIX                          Setup.obs\r
+58   IFX_NETAPI_GROUP                                   Setup.obs\r
+59   IFX_NETAPI_PASSWORD                                Setup.obs\r
+60   IFX_NETAPI_USER_ACCOUNT                            Setup.obs\r
+61   IFX_PRODUCT_COMMENTS                               Setup.obs\r
+62   IFX_PRODUCT_DISPLAY_NAME                           Setup.obs\r
+63   IFX_PRODUCT_DISPLAY_VERSION                        Setup.obs\r
+64   IFX_PRODUCT_ICON                                   Setup.obs\r
+65   IFX_PRODUCT_KEY                                    Setup.obs\r
+66   IFX_PRODUCT_NAME                                   Setup.obs\r
+67   IFX_PRODUCT_README                                 Setup.obs\r
+68   IFX_PRODUCT_REGISTEREDCOMPANY                      Setup.obs\r
+69   IFX_PRODUCT_REGISTEREDOWNER                        Setup.obs\r
+70   IFX_PRODUCT_REGISTEREDSERIALNUM                    Setup.obs\r
+71   IFX_PRODUCT_SUPPORT_CONTACT                        Setup.obs\r
+72   IFX_PRODUCT_SUPPORT_PHONE                          Setup.obs\r
+73   IFX_PRODUCT_SUPPORT_URL                            Setup.obs\r
+74   IFX_PRODUCT_UPDATE_URL                             Setup.obs\r
+75   IFX_PRODUCT_URL                                    Setup.obs\r
+76   IFX_PRODUCT_VERSION                                Setup.obs\r
+77   IFX_SETUP_TITLE                                    Setup.obs\r
+78   IFX_SUPPORTED_VERSIONS                             Setup.obs\r
+79   IISROOTFOLDER                                      iswi.obl(HelperFuncs.obs)\r
+80   INSTALLDIR                                         Setup.obs\r
+81   INSTALLSCRIPTMSI                                   iswi.obl(HelperFuncs.obs)\r
+82   INSTANCE_GUID                                      iswi.obl(HelperFuncs.obs)\r
+83   ISDIFXAPPID                                        Setup.obs\r
+84   ISMSI_HANDLE                                       iswi.obl(DebugSymbolsConv.obs)\r
+85   ISRES                                              iswi.obl(HelperFuncs.obs)\r
+86   ISUSER                                             iswi.obl(HelperFuncs.obs)\r
+87   ISUTIL_FUNCTION_ACTUAL_ERROR                       Setup.obs\r
+88   ISUTIL_FUNCTION_ERROR                              iswi.obl(CompHelperFuncs.obs)\r
+89   ISUTIL_LINE_NUMBER                                 Setup.obs\r
+90   ISUTIL_POSITIVE_ERROR                              iswi.obl(CompHelperFuncs.obs)\r
+91   ISUTIL_SCRIPT_FILE                                 Setup.obs\r
+92   ISVERSION                                          iswi.obl(HelperFuncs.obs)\r
+93   LAAW_PARAMETERS                                    Setup.obs\r
+94   LAAW_PROCESS_INFORMATION                           Setup.obs\r
+95   LAAW_STARTUPINFO                                   Setup.obs\r
+96   LAST_RESULT                                        Setup.obs\r
+97   LVITEM                                             iswi.obl(SdDiskReqs.obs)\r
+98   LV_COLUMN                                          iswi.obl(SdDiskReqs.obs)\r
+99   LocalAppDataFolder                                 iswi.obl(DebugSymbolsConv.obs)\r
+100  LogDB                                              Setup.obs\r
+101  MAINTENANCE                                        iswi.obl(HelperFuncs.obs)\r
+102  MAINT_OPTION                                       iswi.obl(HelperFuncs.obs)\r
+103  MEDIA                                              Setup.obs\r
+104  MEDIA_INFO                                         iswi.obl(FeatureConv.obs)\r
+105  MODE                                               Setup.obs\r
+106  MSG                                                Setup.obs\r
+107  MULTI_INSTANCE_COUNT                               iswi.obl(HelperFuncs.obs)\r
+108  MainWindow                                         Setup.obs\r
+109  MyPicturesFolder                                   iswi.obl(DebugSymbolsConv.obs)\r
+110  NOTHING                                            Setup.obs\r
+111  NetHoodFolder                                      iswi.obl(DebugSymbolsConv.obs)\r
+112  OSINFO_PLATFORM_INFO                               Setup.obs\r
+113  OSINFO_PROCESSOR_INFO                              Setup.obs\r
+114  OSVERSIONINFO                                      Setup.obs\r
+115  OSVERSIONINFOEX                                    Setup.obs\r
+116  Objects                                            Setup.obs\r
+117  OriginalDatabase                                   iswi.obl(DebugSymbolsConv.obs)\r
+118  PACKAGE_LOCATION                                   iswi.obl(HelperFuncs.obs)\r
+119  PATCH                                              iswi.obl(DebugSymbolsConv.obs)\r
+120  POINT                                              Setup.obs\r
+121  PRIVILEGED                                         Setup.obs\r
+122  PROCESS_INFORMATION                                Setup.obs\r
+123  PRODUCT_GUID                                       iswi.obl(HelperFuncs.obs)\r
+124  PROGRAMFILES                                       iswi.obl(HelperFuncs.obs)\r
+125  PROGRAMFILES64                                     iswi.obl(HelperFuncs.obs)\r
+126  PersonalFolder                                     iswi.obl(DebugSymbolsConv.obs)\r
+127  PrintHoodFolder                                    iswi.obl(DebugSymbolsConv.obs)\r
+128  ProgramFiles64Folder                               iswi.obl(DebugSymbolsConv.obs)\r
+129  ProgramFilesFolder                                 iswi.obl(DebugSymbolsConv.obs)\r
+130  ProgramMenuFolder                                  iswi.obl(DebugSymbolsConv.obs)\r
+131  RECT                                               Setup.obs\r
+132  REGDB_OPTIONS                                      Setup.obs\r
+133  REMOVEALLMODE                                      iswi.obl(HelperFuncs.obs)\r
+134  REMOVEONLY                                         iswi.obl(HelperFuncs.obs)\r
+135  RUN_ONCE_PROGRAM                                   iswi.obl(HelperFuncs.obs)\r
+136  Reboot                                             Setup.obs\r
+137  RecentFolder                                       iswi.obl(DebugSymbolsConv.obs)\r
+138  SELECTED_LANGUAGE                                  iswi.obl(HelperFuncs.obs)\r
+139  SERVICE_IS_PARAMS                                  Setup.obs\r
+140  SETUPTYPE_STR_COMPACT                              Setup.obs\r
+141  SETUPTYPE_STR_COMPLETE                             Setup.obs\r
+142  SETUPTYPE_STR_CUSTOM                               Setup.obs\r
+143  SETUPTYPE_STR_TYPICAL                              Setup.obs\r
+144  SHELL_OBJECT_FOLDER                                Setup.obs\r
+145  SHOW_PASSWORD_DIALOG                               iswi.obl(HelperFuncs.obs)\r
+146  SRCDIR                                             Setup.obs\r
+147  SRCDISK                                            iswi.obl(HelperFuncs.obs)\r
+148  STARTUPINFO                                        Setup.obs\r
+149  SUPPORTDIR                                         iswi.obl(HelperFuncs.obs)\r
+150  SYSTEMTIME                                         Setup.obs\r
+151  SYSTEMTIME2                                        iswi.obl(ErrHandler.obs)\r
+152  SendToFolder                                       iswi.obl(DebugSymbolsConv.obs)\r
+153  SetupInfo                                          Setup.obs\r
+154  SourceDir                                          iswi.obl(DebugSymbolsConv.obs)\r
+155  StartMenuFolder                                    iswi.obl(DebugSymbolsConv.obs)\r
+156  StartupFolder                                      iswi.obl(DebugSymbolsConv.obs)\r
+157  StatusDlg                                          Setup.obs\r
+158  System16Folder                                     iswi.obl(DebugSymbolsConv.obs)\r
+159  System64Folder                                     iswi.obl(DebugSymbolsConv.obs)\r
+160  SystemFolder                                       iswi.obl(DebugSymbolsConv.obs)\r
+161  TARGETDIR                                          Setup.obs\r
+162  TARGETDISK                                         iswi.obl(HelperFuncs.obs)\r
+163  TempFolder                                         iswi.obl(DebugSymbolsConv.obs)\r
+164  TemplateFolder                                     iswi.obl(DebugSymbolsConv.obs)\r
+165  TextSub                                            Setup.obs\r
+166  UNINST                                             Setup.obs\r
+167  UNINSTALLKEY                                       Setup.obs\r
+168  UNINSTALL_DISPLAYNAME                              Setup.obs\r
+169  UNINSTALL_STRING                                   Setup.obs\r
+170  UPDATEMODE                                         Setup.obs\r
+171  WINDIR                                             iswi.obl(HelperFuncs.obs)\r
+172  WINDISK                                            iswi.obl(HelperFuncs.obs)\r
+173  WINSYSDIR                                          iswi.obl(HelperFuncs.obs)\r
+174  WINSYSDIR64                                        iswi.obl(HelperFuncs.obs)\r
+175  WINSYSDISK                                         iswi.obl(HelperFuncs.obs)\r
+176  WindowsFolder                                      iswi.obl(DebugSymbolsConv.obs)\r
+177  WindowsVolume                                      iswi.obl(DebugSymbolsConv.obs)\r
+178  _INT64                                             Setup.obs\r
+179  _LAAW_PARAMETERS                                   Setup.obs\r
+180  _LAAW_TEMP_DATA                                    isrt.obl(Extend.obs)\r
+181  _RESTOREINFO_                                      Setup.obs\r
+182  _RESTOREPTINFO                                     Setup.obs\r
+183  _SERVICE_IS_PARAMS                                 Setup.obs\r
+184  _SMGRSTATUS                                        Setup.obs\r
+185  _SMGSTATUS_                                        Setup.obs\r
+186  _WIN9X                                             Setup.obs\r
+187  _WINNT                                             Setup.obs\r
+188  __SYSTEMINFORMATION                                Setup.obs\r
+189  __SYSTEMPROCESSORINFORMATION                       Setup.obs\r
+190  __gbAliasingOff                                    iswi.obl(CompHelperFuncs.obs)\r
+191  __gbCheckForUpdate                                 iswi.obl(CompHelperFuncs.obs)\r
+192  __gbCheckUpdateReboot                              iswi.obl(CompHelperFuncs.obs)\r
+193  __gbGetTarget                                      iswi.obl(CompHelperFuncs.obs)\r
+194  __gbInitialized                                    iswi.obl(CompHelperFuncs.obs)\r
+195  __gbInstallInfo                                    Setup.obs\r
+196  __gbMaintenance                                    iswi.obl(CompHelperFuncs.obs)\r
+197  __gbReopening                                      iswi.obl(CompHelperFuncs.obs)\r
+198  __ghActiveDataBase                                 iswi.obl(CompHelperFuncs.obs)\r
+199  __ghErrFileHandle                                  iswi.obl(CompHelperFuncs.obs)\r
+200  __ghMsiInstall                                     iswi.obl(CompHelperFuncs.obs)\r
+201  __gnButtonSelected                                 iswi.obl(CompHelperFuncs.obs)\r
+202  __gnLastError                                      iswi.obl(CompHelperFuncs.obs)\r
+203  __gnMsiReturn                                      iswi.obl(CompHelperFuncs.obs)\r
+204  __gnOSMask                                         iswi.obl(CompHelperFuncs.obs)\r
+205  __gnScriptMode                                     iswi.obl(CompHelperFuncs.obs)\r
+206  __goISDriver                                       iswi.obl(CompHelperFuncs.obs)\r
+207  __goLanguageFilter                                 iswi.obl(CompHelperFuncs.obs)\r
+208  __goMsiServer                                      iswi.obl(CompHelperFuncs.obs)\r
+209  __gsINSTALLDIR                                     iswi.obl(CompHelperFuncs.obs)\r
+210  __gsProductGuid                                    iswi.obl(CompHelperFuncs.obs)\r
+211  __gsSourceDir                                      iswi.obl(CompHelperFuncs.obs)\r
+212  __hContext                                         iswi.obl(CompHelperFuncs.obs)\r
+213  __objGlobalTextSub                                 Setup.obs\r
+214  __objStringTable                                   iswi.obl(ISWiInit.obs)\r
+215  __szGUID                                           isrt.obl(ISRTInit.obs)\r
+216  bBackButton                                        Setup.obs\r
+217  bCancelButton                                      Setup.obs\r
+218  bEnterDiskBeep                                     iswi.obl(AdminAskPath.obs)\r
+219  bFinishButton                                      Setup.obs\r
+220  bIfxPCHInitialized                                 Setup.obs\r
+221  bIfxPCHOn                                          Setup.obs\r
+222  bInstall16                                         Setup.obs\r
+223  bNextButton                                        Setup.obs\r
+224  bSdInit                                            Setup.obs\r
+225  bViewCmptKunits                                    Setup.obs\r
+226  bViewCmptUseDecimal                                Setup.obs\r
+227  g_bSuppressMissingStringWarning                    iswi.obl(DriverConv.obs)\r
+228  nIfxPCHType                                        Setup.obs\r
+229  szAppKey                                           Setup.obs\r
+230  szSdProduct                                        Setup.obs\r
+231  szSdStr_NotEnoughSpace                             Setup.obs\r
diff --git a/branches/WinOF/InstallShield/WinOF_x64/WinOF_x64/Script Files/Setup.obs b/branches/WinOF/InstallShield/WinOF_x64/WinOF_x64/Script Files/Setup.obs
new file mode 100644 (file)
index 0000000..4cbad30
Binary files /dev/null and b/branches/WinOF/InstallShield/WinOF_x64/WinOF_x64/Script Files/Setup.obs differ
diff --git a/branches/WinOF/InstallShield/WinOF_x64/devman.exe b/branches/WinOF/InstallShield/WinOF_x64/devman.exe
new file mode 100644 (file)
index 0000000..3da8870
Binary files /dev/null and b/branches/WinOF/InstallShield/WinOF_x64/devman.exe differ
diff --git a/branches/WinOF/InstallShield/WinOF_x86/devman.exe b/branches/WinOF/InstallShield/WinOF_x86/devman.exe
new file mode 100644 (file)
index 0000000..28e9b45
Binary files /dev/null and b/branches/WinOF/InstallShield/WinOF_x86/devman.exe differ
diff --git a/branches/WinOF/InstallShield/dat.conf b/branches/WinOF/InstallShield/dat.conf
new file mode 100644 (file)
index 0000000..37b3e40
--- /dev/null
@@ -0,0 +1,16 @@
+#\r
+# Generic DAT 1.1 configuration file [4-30-07]\r
+#\r
+\r
+# Each entry should have the following fields:\r
+# <ia_name> <api_version> <threadsafety> <default> <dapl_lib_path> \\r
+#           <provider_version> <ia_params> <platform_params>\r
+\r
+# Verify %SystemRoot% == C:\Windows\r
+# This is the dapl provider configuration for HCA0 port 1\r
+\r
+IbalHca0 u1.1 nonthreadsafe default C:\Windows\dapl.dll mv_dapl.1.1 "IbalHca0 1" ""\r
+\r
+# Intel MPI\r
+#ibnic0 u1.1 threadsafe default C:\Windows\dapl.dll ri.1.1 "IbalHca0 1" " "\r
+\r
diff --git a/branches/WinOF/InstallShield/openfabrics.gif b/branches/WinOF/InstallShield/openfabrics.gif
new file mode 100644 (file)
index 0000000..148d877
Binary files /dev/null and b/branches/WinOF/InstallShield/openfabrics.gif differ
diff --git a/branches/WinOF/InstallShield/openfabrics.ico b/branches/WinOF/InstallShield/openfabrics.ico
new file mode 100644 (file)
index 0000000..2ca2fcb
Binary files /dev/null and b/branches/WinOF/InstallShield/openfabrics.ico differ
diff --git a/branches/WinOF/InstallShield/opensm.service.txt b/branches/WinOF/InstallShield/opensm.service.txt
new file mode 100644 (file)
index 0000000..7317e54
--- /dev/null
@@ -0,0 +1,6 @@
+\r
+If this file exists in %ProgramFiles%\WinOF, then an 'opensm' service will be\r
+created and started at the end of the Install process. See\r
+Device Manager->Services->InfiniBand Subnet Manager\r
+\r
+\r