[WinOF] move branches\WinOF to trunk.
authorstansmith <stansmith@ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86>
Wed, 12 Nov 2008 23:35:17 +0000 (23:35 +0000)
committerstansmith <stansmith@ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86>
Wed, 12 Nov 2008 23:35:17 +0000 (23:35 +0000)
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@1752 ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86

50 files changed:
WinOF/WIX/CustomActions.vbs [new file with mode: 0644]
WinOF/WIX/License.rtf [new file with mode: 0644]
WinOF/WIX/README.txt [new file with mode: 0644]
WinOF/WIX/README_checked.txt [new file with mode: 0644]
WinOF/WIX/README_release.txt [new file with mode: 0644]
WinOF/WIX/Release_notes.htm [new file with mode: 0644]
WinOF/WIX/SDK_Samples/DDK/README.txt [new file with mode: 0644]
WinOF/WIX/SDK_Samples/DDK/SOURCES [new file with mode: 0644]
WinOF/WIX/SDK_Samples/DDK/cmtest.rc [new file with mode: 0644]
WinOF/WIX/SDK_Samples/DDK/makefile [new file with mode: 0644]
WinOF/WIX/SDK_Samples/VS/Makefile.x64 [new file with mode: 0644]
WinOF/WIX/SDK_Samples/VS/Makefile.x86 [new file with mode: 0644]
WinOF/WIX/SDK_Samples/VS/README.txt [new file with mode: 0644]
WinOF/WIX/SDK_Samples/VS/cmtest.rc [new file with mode: 0644]
WinOF/WIX/build-OFA-dist.bat [new file with mode: 0644]
WinOF/WIX/build-all-MSI.bat [new file with mode: 0644]
WinOF/WIX/dat.conf [new file with mode: 0644]
WinOF/WIX/ia64/Command Window.lnk [new file with mode: 0644]
WinOF/WIX/ia64/DPInst.exe [new file with mode: 0644]
WinOF/WIX/ia64/devman.exe [new file with mode: 0644]
WinOF/WIX/openfabrics.gif [new file with mode: 0644]
WinOF/WIX/openfabrics.ico [new file with mode: 0644]
WinOF/WIX/sign-all-drivers.bat [new file with mode: 0644]
WinOF/WIX/wlh/build-MSI.bat [new file with mode: 0644]
WinOF/WIX/wlh/ia64/Makefile [new file with mode: 0644]
WinOF/WIX/wlh/ia64/wof.wxs [new file with mode: 0644]
WinOF/WIX/wlh/signDrivers.bat [new file with mode: 0644]
WinOF/WIX/wlh/x64/Makefile [new file with mode: 0644]
WinOF/WIX/wlh/x64/wof.wxs [new file with mode: 0644]
WinOF/WIX/wlh/x86/Makefile [new file with mode: 0644]
WinOF/WIX/wlh/x86/wof.wxs [new file with mode: 0644]
WinOF/WIX/wnet/build-MSI.bat [new file with mode: 0644]
WinOF/WIX/wnet/ia64/Makefile [new file with mode: 0644]
WinOF/WIX/wnet/ia64/wof.wxs [new file with mode: 0644]
WinOF/WIX/wnet/signDrivers.bat [new file with mode: 0644]
WinOF/WIX/wnet/x64/Makefile [new file with mode: 0644]
WinOF/WIX/wnet/x64/wof.wxs [new file with mode: 0644]
WinOF/WIX/wnet/x86/Makefile [new file with mode: 0644]
WinOF/WIX/wnet/x86/wof.wxs [new file with mode: 0644]
WinOF/WIX/wxp/build-MSI.bat [new file with mode: 0644]
WinOF/WIX/wxp/signDrivers.bat [new file with mode: 0644]
WinOF/WIX/wxp/x86/Makefile [new file with mode: 0644]
WinOF/WIX/wxp/x86/wof.wxs [new file with mode: 0644]
WinOF/WIX/x64/Command Window.lnk [new file with mode: 0644]
WinOF/WIX/x64/DPInst.exe [new file with mode: 0644]
WinOF/WIX/x64/devman.exe [new file with mode: 0644]
WinOF/WIX/x86/Command Window.lnk [new file with mode: 0644]
WinOF/WIX/x86/DPInst.exe [new file with mode: 0644]
WinOF/WIX/x86/devman.exe [new file with mode: 0644]
WinOF/WIX/zip-OFA-dist.bat [new file with mode: 0644]

diff --git a/WinOF/WIX/CustomActions.vbs b/WinOF/WIX/CustomActions.vbs
new file mode 100644 (file)
index 0000000..461d427
--- /dev/null
@@ -0,0 +1,1932 @@
+' WIX CustomActions used in the WinOF (Windows OpenFabrics) Release.\r
+' File is based on the installer src contributed by Mellanox Technologies.\r
+'\r
+' TabStops == 4\r
+'\r
+' $Id$\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
+\r
+' A CustomAction (CA) that runs after SetupInitialize which sets up\r
+' CustomAction Data for the defered action CA DriverInstall().\r
+' A CA can only see Installer properties through pre-loaded 'CustomActionData'\r
+\r
+Sub WinOF_setup\r
+       dim AddLocal,use_this_HCA\r
+\r
+       ' Pre-process ADDLOCAL in order to support msiexec cmd-line override of\r
+       ' the default InfiniHost HCA.\r
+       ' msiexec /i WOF_*.msi HCA=mlx \r
+       ' Replace default InfiniHost HCA driver feature with ConnectX HCA driver if\r
+       ' so requested.\r
+       ' The WIX UI (UserInterface) sets up ADDLOCAL. When cmd-line msiexec.exe is\r
+       ' run with a deprecited UI, then ADDLOCAL is not setup; default it's value\r
+       ' here.\r
+\r
+       Installed = Session.Property("Installed")\r
+       AddLocal = Session.Property("ADDLOCAL")\r
+\r
+       If AddLocal = "" AND Installed = "" Then\r
+               ' Enable default features.\r
+               AddLocal = "hca_mthca,HcaDrivers,IBcore,fIPoIB,fWSD,fDAPL,fDatBASIC1,fDatBASIC2" \r
+       End If\r
+\r
+       use_this_HCA = Session.Property("HCA")\r
+       If use_this_HCA <> "" Then\r
+               If Instr(use_this_HCA,"mlx") <> 0 Then\r
+                       If Instr(AddLocal,"hca_mthca") <> 0 Then\r
+                       AddLocal = Replace(AddLocal,"hca_mthca","hca_connectX")\r
+                       End If\r
+               End If\r
+       End If\r
+\r
+       ' Driver Install Properties:\r
+    ' 0-INSTALLDIR; 1-SystemFolder; 2-System64Folder; 3-WindowsFolder ;\r
+       ' 4-VersionNT; 5-ADDLOCAL; 6-REMOVE; 7-NODRV\r
+\r
+       Session.Property("DriverInstall") = _\r
+               Session.Property("INSTALLDIR")          & ";" & _\r
+               Session.Property("SystemFolder")        & ";" & _\r
+               Session.Property("System64Folder")      & ";" & _\r
+               Session.Property("WindowsFolder")       & ";" & _\r
+               Session.Property("VersionNT")           & ";" & _\r
+               AddLocal                                                        & ";" & _\r
+               Session.Property("REMOVE")                      & ";" & _\r
+               Session.Property("NODRV")\r
+\r
+End Sub\r
+\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
+      ' Do not wait to long to delete the file, bail and don't delete it if too\r
+      ' long of a wait.\r
+         too_much = too_much + 1\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
+           On Error Resume Next \r
+           fso.DeleteFile(filename),True\r
+           If (Err And Err.Number <> 70) Then  ' tolerate protection errors\r
+                   ErrMsg ("Could not delete: " & filename)\r
+        End If \r
+    End If\r
+End Function\r
+\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 FileMove(filename,destination)\r
+    Dim fso\r
+    Set fso = CreateObject("Scripting.FileSystemObject")\r
+    On Error Resume Next \r
+    If fso.FileExists(filename) Then\r
+           fso.MoveFile filename,destination\r
+           If (Err And Err.Number <> 70) then ' tolerate protection errors.\r
+            ErrMsg ("Could not move: " & filename & " to " & destination)\r
+        End if\r
+    End If\r
+    If Err Then ShowError\r
+End Function\r
+\r
+\r
+Function DriverFileDelete(fso,WshShell,filename)\r
+    Err.clear\r
+    If fso.FileExists(filename) Then\r
+           On Error Resume Next \r
+               ' unlock the driver file by deleting PnPLocked reg entry.\r
+               base = "reg delete HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup\PnpLockdownFiles /v "\r
+               Return = WshShell.Run (base & filename & " /f", 0, true)\r
+           fso.DeleteFile(filename),True\r
+           If (Err And Err.Number <> 70) Then  ' tolerate protection errors\r
+                   ErrMsg ("Could not delete: " & filename)\r
+        End If \r
+    End If\r
+End Function\r
+\r
+\r
+\r
+Function FileMDelete(src,file)\r
+    Dim rc,cmd\r
+       On Error Resume Next \r
+    Err.clear\r
+       Set WshShell = CreateObject("WScript.Shell")\r
+       cmd = "cmd.exe /c cd /d " & src & " & del /Q/F " & file\r
+       rc = WshShell.Run (cmd, 0, true)\r
+' Debug\r
+'      Set cmdExec = WshShell.Exec (cmd)\r
+'      noise = cmdExec.StdErr.ReadAll\r
+'      msgbox "FileMDel " & src & " stdErr " & noise\r
+\r
+End Function\r
+\r
+\r
+' Remove the specified folder and all sub-folders & files. \r
+' What rmdir does from the cmd line but will not do from vbs?\r
+\r
+Sub RemoveFolder(objStartFolder)\r
+    \r
+    Set objFSO = CreateObject("Scripting.FileSystemObject")\r
+    \r
+    If Not objFSO.FolderExists(objStartFolder) Then\r
+        Exit Sub\r
+    End if\r
+    \r
+    Set objFolder = objFSO.GetFolder(objStartFolder)\r
+    'Wscript.Echo objFolder.Path\r
+    Set colFiles = objFolder.Files\r
+    \r
+    ' del files in top-level folder\r
+    For Each objFile in colFiles\r
+        objFSO.DeleteFile(objFolder.Path & "\" & objFile.Name)\r
+        If Err Then\r
+            ErrMsg("Del err on " & objFolder.Path & "\" & objFile.Name)\r
+        End if\r
+    Next\r
+    \r
+    ShowSubfolders objFSO.GetFolder(objStartFolder), objFSO\r
+    \r
+    On Error Resume Next\r
+    objFSO.DeleteFolder(objStartFolder)\r
+    If Err Then\r
+        ErrMsg("DelFolder err on " & objStartFolder)\r
+    End if\r
+    \r
+End Sub\r
+\r
+\r
+Sub ShowSubFolders(Folder,FSO)\r
+    On Error Resume Next\r
+    For Each Subfolder in Folder.SubFolders\r
+        ' Wscript.Echo Subfolder.Path\r
+        Set objFolder = FSO.GetFolder(Subfolder.Path)\r
+        Set colFiles = objFolder.Files\r
+        For Each objFile in colFiles\r
+            ' Wscript.Echo Subfolder.Path & "\" & objFile.Name\r
+            FSO.DeleteFile(Subfolder.Path & "\" & objFile.Name)\r
+            If Err Then\r
+                ErrMsg("DelFile err on " & Subfolder.Path & "\" & objFile.Name)\r
+            End if\r
+        Next\r
+        ' Wscript.Echo\r
+        ShowSubFolders Subfolder, FSO\r
+        FSO.DeleteFolder(Subfolder.Path)\r
+        If Err Then\r
+            ErrMsg("DelFolder err on " & Subfolder.Path)\r
+        End if\r
+    Next\r
+End Sub\r
+\r
+\r
+\r
+\r
+''''''''''' Remove Driver Files ''''''''''''\r
+\r
+' Attempt to clean out driver installed files which fail to be uninstalled\r
+' when the driver is uninstalled. Win2K3/x64 files persist, XP & Win2K3/x86\r
+' the driver files are correctly remove?\r
\r
+Function RemoveDriverFiles(WshShell)\r
+    Dim Win, sDRIVERS, sSystem64Folder, sInstalldir, sSYS32, sSYSWOW64\r
+    Dim sSystemFolder, CheckMode, PropArray, dllCache, fso, sTemp\r
+       \r
+    ' Function can be called from the Driver{Install/Uninstall} rtns.\r
+    ' (properties are different).\r
+    CheckMode = Session.Property("CustomActionData")\r
+    If Not CheckMode = "" Then\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("WindowsFolder")\r
+       sSystem64Folder = Session.Property("System64Folder") \r
+       sInstalldir = Session.Property("INSTALLDIR") \r
+       sSystemFolder = Session.Property("SystemFolder") \r
+    End if\r
+\r
+    Set WshShell = CreateObject("WScript.Shell")\r
+    Set fso = CreateObject("Scripting.FileSystemObject")\r
+\r
+    MTARCH = Architecture \r
+\r
+       ' this is screw-ball: on 64-bit systems: SystemFolder == %windir%\SysWOW64\r
+       ' on 32-bit systems: SystemFolder == %windir%\system32\r
+       ' Pay attention and switch sSYS32 on x86 systems\r
+\r
+    sDRIVERS = sSystem64Folder \r
+       sSYS32 = sSystem64Folder\r
+       sSYSWOW64 = sSystemFolder\r
+\r
+    If (MTARCH = "x86") Then\r
+        sDRIVERS = sSystemFolder  ' holds Session.Property("SystemFolder")\r
+               sSYS32 = sSystemFolder\r
+    End If\r
+    sDRIVERS = sSYS32 & "drivers\"\r
+\r
+    DriverFileDelete fso,WshShell,sDRIVERS & "ibbus.sys"\r
+    FileDelete(sDRIVERS & "ibbus.sy1")\r
+    DriverFileDelete fso,WshShell,sDRIVERS & "ibiou.sys"\r
+    DriverFileDelete fso,WshShell,sDRIVERS & "mthca.sys"\r
+    FileDelete(sDRIVERS & "mthca.sy1")\r
+    DriverFileDelete fso,WshShell,sDRIVERS & "mlx4_bus.sys"\r
+    DriverFileDelete fso,WshShell,sDRIVERS & "mlx4_hca.sys"\r
+\r
+    DriverFileDelete fso,WshShell,sDRIVERS & "ipoib.sys"\r
+    DriverFileDelete fso,WshShell,sDRIVERS & "ibsrp.sys"\r
+    DriverFileDelete fso,WshShell,sDRIVERS & "vnic.sys"\r
+    DriverFileDelete fso,WshShell,sDRIVERS & "qlgcvnic.sys"\r
+    \r
+    dllCache = sSystem64Folder & "dllcache\"\r
+       If fso.FolderExists(dllCache) Then\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 & "mlx4u.dll")\r
+       FileDelete(dllCache & "mlx4ud.dll")\r
+       FileDelete(dllCache & "IbInstaller.dll")\r
+       FileDelete(dllCache & "ibwsd.dll")\r
+       FileDelete(dllCache & "ibsrp.dll")\r
+       FileDelete(dllCache & "ibsrpd.dll")\r
+       End if\r
+    \r
+    DriverFileDelete fso,WshShell,sSYS32 & "ibal.dll"\r
+    DriverFileDelete fso,WshShell,sSYS32 & "ibald.dll"\r
+    DriverFileDelete fso,WshShell,sSYS32 & "ibal32.dll"\r
+    DriverFileDelete fso,WshShell,sSYS32 & "ibal32d.dll"\r
+    DriverFileDelete fso,WshShell,sSYS32 & "complib.dll"\r
+    DriverFileDelete fso,WshShell,sSYS32 & "complibd.dll"\r
+    DriverFileDelete fso,WshShell,sSYS32 & "cl32.dll"\r
+    DriverFileDelete fso,WshShell,sSYS32 & "cl32d.dll"\r
+    DriverFileDelete fso,WshShell,sSYS32 & "mthcau.dll"\r
+    DriverFileDelete fso,WshShell,sSYS32 & "mthcaud.dll"\r
+    DriverFileDelete fso,WshShell,sSYS32 & "mthca32.dll"\r
+    DriverFileDelete fso,WshShell,sSYS32 & "mthca32d.dll"\r
+    DriverFileDelete fso,WshShell,sSYS32 & "mlx4u.dll"\r
+    DriverFileDelete fso,WshShell,sSYS32 & "mlx4ud.dll"\r
+    DriverFileDelete fso,WshShell,sSYS32 & "mlx4u32.dll"\r
+    DriverFileDelete fso,WshShell,sSYS32 & "mlx4u32d.dll"\r
+    DriverFileDelete fso,WshShell,sSYS32 & "ibsrp.dll"\r
+    DriverFileDelete fso,WshShell,sSYS32 & "ibsrpd.dll"\r
+    DriverFileDelete fso,WshShell,sSYS32 & "IbInstaller.dll"\r
+    DriverFileDelete fso,WshShell,sSYS32 & "ibwsd.dll"\r
+    DriverFileDelete fso,WshShell,sSYS32 & "ibndprov.dll"\r
+    DriverFileDelete fso,WshShell,sSYS32 & "ibndprov32.dll"\r
+    DriverFileDelete fso,WshShell,sSYS32 & "ndinstall.exe"\r
+\r
+       If fso.FolderExists(sSYSWOW64) Then\r
+               DriverFileDelete fso,WshShell,sSYSWOW64 & "ibal.dll"\r
+               DriverFileDelete fso,WshShell,sSYSWOW64 & "ibald.dll"\r
+               DriverFileDelete fso,WshShell,sSYSWOW64 & "complib.dll"\r
+               DriverFileDelete fso,WshShell,sSYSWOW64 & "complibd.dll"\r
+               DriverFileDelete fso,WshShell,sSYSWOW64 & "mthcau.dll"\r
+               DriverFileDelete fso,WshShell,sSYSWOW64 & "mthcaud.dll"\r
+               DriverFileDelete fso,WshShell,sSYSWOW64 & "mlx4u.dll"\r
+               DriverFileDelete fso,WshShell,sSYSWOW64 & "mlx4ud.dll"\r
+               DriverFileDelete fso,WshShell,sSYSWOW64 & "ibsrp.dll"\r
+               DriverFileDelete fso,WshShell,sSYSWOW64 & "ibsrpd.dll"\r
+               DriverFileDelete fso,WshShell,sSYSWOW64 & "IbInstaller.dll"\r
+               DriverFileDelete fso,WshShell,sSYSWOW64 & "ibwsd.dll"\r
+               DriverFileDelete fso,WshShell,sSYSWOW64 & "ibndprov.dll"\r
+       End If\r
+\r
+       If fso.FolderExists(Win & "lastgood" ) Then\r
+       FileDelete(Win & "lastgood\system32\ibwsd.dll")\r
+       FileDelete(Win & "lastgood\SysWOW64\ibwsd.dll")\r
+       FileDelete(Win & "lastgood\SysWOW64\mthcau.dll")\r
+       FileDelete(Win & "lastgood\SysWOW64\mthcaud.dll")\r
+       FileDelete(Win & "lastgood\system32\mthcau.dll")\r
+       FileDelete(Win & "lastgood\system32\mthcaud.dll")\r
+       FileDelete(Win & "lastgood\system32\drivers\mthcau.dll")\r
+       FileDelete(Win & "lastgood\system32\drivers\mthcaud.dll")\r
+       FileDelete(Win & "lastgood\system32\drivers\mthca.sys")\r
+       End If\r
+\r
+    FileDelete(Win & "winverbs.lib")\r
+    DriverFileDelete fso,WshShell,sDRIVERS & "winverbs.sys"\r
+    DriverFileDelete fso,WshShell,sSYS32 & "winverbs.dll"\r
+    DriverFileDelete fso,WshShell,sSYS32 & "winverbsd.dll"\r
+    \r
+    ' delete opensm files\r
+    sTemp = fso.GetSpecialFolder(0) & "\temp\"\r
+    ' remove files from %SystemRoot%\temp\r
+    FileDelete(sTemp & "guid2lid")\r
+    FileDelete(sTemp & "opensm-sa.dump")\r
+    FileDelete(sTemp & "osm.log")\r
+    FileDelete(sTemp & "osm-subnet.lst")\r
+    \r
+    ' Delete oem*.inf and oem*.pnf files\r
+    dim  InfFiles, PnfFiles, IFILES, PFILES\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
+End Function\r
+\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
+Function ReadSysPath\r
+\r
+    Const HKEY_LOCAL_MACHINE = &H80000002\r
+    Dim strComputer, strKeyPath, strValueName, strValue\r
+\r
+    ReadSysPath = Null  ' assume the worst.\r
+    strComputer = "."\r
+    Set oReg = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & _ \r
+                        strComputer & "\root\default:StdRegProv")\r
\r
+    strKeyPath="SYSTEM\CurrentControlSet\Control\Session Manager\Environment"\r
+    strValueName = "Path"\r
+    oReg.GetExpandedStringValue HKEY_LOCAL_MACHINE,_\r
+         strKeyPath, strValueName, strValue\r
+\r
+    If (Err.Number = 0) And (Not IsNull(strValue)) Then\r
+        ReadSysPath = strValue\r
+    End if\r
+End Function\r
+\r
+\r
+Function WriteSysPath(NewPath)\r
+\r
+    Const HKEY_LOCAL_MACHINE = &H80000002\r
+    Dim strComputer, strKeyPath, strValueName\r
+\r
+    strComputer = "."\r
+    Set oReg = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & _ \r
+                        strComputer & "\root\default:StdRegProv")\r
\r
+    strKeyPath="SYSTEM\CurrentControlSet\Control\Session Manager\Environment"\r
+    strValueName = "Path"\r
+    oReg.SetExpandedStringValue _\r
+         HKEY_LOCAL_MACHINE, strKeyPath, strValueName, NewPath\r
+\r
+    WriteSysPath = Err.Number\r
+End Function\r
+\r
+\r
+'Chops the last character off a string if it matches strchar\r
+Function ChopChar(strString, strChar)\r
+  Dim x\r
+  x = Len(strString)\r
+  if mid(strString, x) = strChar then\r
+    ChopChar = mid(strString, 1, x -1)\r
+  else\r
+    ChopChar = strString\r
+  end if\r
+End Function\r
+\r
+\r
+' Add specified path to the system search path registry entry @\r
+' 'HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\Path'\r
+' Normally the added path is [INSTALLDIR]\r
+' Called from a defered exection context (aka, DriverInstall).\r
+\r
+Function SysPathAdd(InstallDir)\r
+\r
+    Dim rc, result, sInstallDir, newPath\r
+\r
+    ' On Error Resume Next\r
+    sInstallDir = ChopChar(InstallDir,"\")\r
+\r
+    result = ReadSysPath\r
+    If IsNull(result) Then\r
+        SysPathAdd = ShowErr2("SysPathAdd - RegRead()")\r
+        Exit Function\r
+    End if\r
+\r
+    ' Is [INSTALLDIR] already set?\r
+    start = instr(result,sInstallDir)\r
+    If start <> 0 Then\r
+        SysPathAdd = 0\r
+        Exit Function\r
+    End if\r
+\r
+    newPath = result & ";" & sInstallDir\r
+\r
+    rc = WriteSysPath(newPath)\r
+    If rc <> 0 Then\r
+        SysPathAdd = ShowErr2("SysPathAdd - WriteSysPath()")\r
+    Else\r
+       ' TODO - Notify current windows of updated PATH registry value.\r
+       SysPathAdd = 0\r
+    End if\r
+\r
+End Function\r
+\r
+\r
+' Remove specified path from the system search path.\r
+\r
+Function SysPathRemove(InstallDir)\r
+\r
+    Dim rc, curPath, rKey, sInstallDir, newPath\r
+\r
+    ' On Error Resume Next\r
+    ' sInstallDir = Session.Property("INSTALLDIR")\r
+\r
+    sInstallDir = ";" & ChopChar(InstallDir,"\")\r
+\r
+    curPath = ReadSysPath\r
+    If IsNull(curPath) Then\r
+        SysPathRemove = ShowErr2("SysPathRemove - ReadSysPath() = NULL?")\r
+        Exit Function\r
+    End if\r
+\r
+    SysPathRemove = 0  ' assume SUCCESS\r
+\r
+    start = instr(curPath,sInstallDir)\r
+    If start <> 0 Then\r
+        ' INSTALLDIR IS in the system search path\r
+        ' remove INSTALLDIR from system search path\r
+        s0 = Left(curPath,start-1)\r
+        s1 = Right(curPath,Len(curPath) - (start+Len(sInstallDir) - 1))\r
+        NewPath = s0 & s1\r
+        rc = WriteSysPath(NewPath)\r
+        If rc <> 0 Then\r
+            SysPathRemove = ShowErr2("SysPathRemove - WriteSysPath()")\r
+        End if\r
+    End if\r
+\r
+End Function\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
+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
+    If Err Then ShowError\r
\r
+    oReg.SetDWORDValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName,dwValue\r
+\r
+    If Err Then ShowError\r
+\r
+End Function\r
+\r
+'-------------------------------------------------\r
+\r
+' Function to add registry Expanded string val.\r
+\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,_\r
+         dwValue\r
+    If Err Then ShowError\r
+\r
+End Function\r
+\r
+'------------------------------------------------------------------------\r
+\r
+\r
+' Function to add registry string val.\r
+\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
+' Return a list of PCI devices using 'devcon find | findall'\r
+' sFindHow - stringArg: devcon cmd arg {find | findall}\r
+\r
+Function Find_Dev_by_Tag(WshShell,exe,sFindHow,tag)\r
+    Dim cmd\r
+\r
+       cmd = exe & " " & sFindHow & " * | find """ & tag & """"\r
+       Set connExec = WshShell.Exec(cmd)\r
+    If Err Then\r
+        msgbox "Shell.Exec err: " & cmd\r
+               Find_Dev_by_Tag = Null\r
+        Exit Function\r
+    End if\r
+\r
+       devs = split(connExec.StdOut.ReadAll, vbCrLF)\r
+\r
+       On Error Resume Next \r
+\r
+       ' verify we have some useful data.\r
+       dim arrSize\r
+       arrSize = 0\r
+       for each dev in devs\r
+               If Instr(dev,Tag) Then\r
+                       arrSize = arrSize + 1\r
+               End if\r
+       next\r
+\r
+       If arrSize = 0 Then\r
+               Find_Dev_by_Tag = Null\r
+               Exit Function\r
+       End If\r
+               \r
+       Find_Dev_by_Tag = devs\r
+\r
+End Function\r
+\r
+\r
+Function IsInfiniHost(ID)\r
+    Dim dID\r
+       HCAs = Array("5A44","5A45","5E8C","5E8D","6264","6274","6275","6278",_\r
+                               "6279","6282")\r
+\r
+    For each dID in HCAs\r
+        If dID = ID Then\r
+            IsInfiniHost = 1\r
+'msgbox "match ID " & ID & " dID " & dID\r
+            Exit Function\r
+        End if\r
+       Next\r
+'msgbox "NO match ID " & ID \r
+    IsInfiniHost = 0\r
+\r
+End Function\r
+\r
+\r
+' Install Qlogic VNIC Driver\r
+\r
+Sub Install_VNIC(WshShell,devmanQL)\r
+\r
+       Dim devID, rc\r
+    Err.clear\r
+       devID = "IBA\V00066AP00000030"\r
+       rc = WshShell.Run (devmanQL & "disable " & devID, 0, true)\r
+       rc = WshShell.Run (devmanQL & "update netvnic.inf " & devID,0,true)\r
+       ' Display error number and description if applicable\r
+       If rc <> 0 Then\r
+               msgbox "Install_VNIC Err(" & rc & ") - update qlgcvnic.sys " & devID\r
+       Else\r
+               rc = WshShell.Run (devmanQL & "enable " & devID, 0, true)\r
+       End if\r
+\r
+End Sub\r
+       \r
+\r
+' Install SRP (SCSI RDMA Protocol) Driver\r
+\r
+Sub Install_SRP(WshShell,devmanSRP)\r
+\r
+       Dim devID, rc\r
+       Err.clear\r
+       ' QLogic Virtual FC I/O controller or\r
+       ' InfiniBand SRP Miniport: IBA\C0100C609EP0108 or IBA\CFF00C609EP0108\r
+       ' one driver handles all three.\r
+       devID = "IBA\V00066AP00000038"\r
+       rc = WshShell.Run (devmanSRP & "update ib_srp.inf " & devID,0,true)\r
+       ' Display error number and description if applicable\r
+       If rc <> 0 Then\r
+               msgbox "Install_SRP Err(" & rc &") devman update ib_srp.inf " & devID\r
+       End If\r
+\r
+End Sub\r
+\r
+\r
+Sub Install_IOU(WshShell,devman)\r
+\r
+       Dim rc\r
+       dev_list = Find_Dev_by_Tag(WshShell,devman,"find","IBA\IB_IOU")\r
+\r
+       ' if no IB_IOU device found, install ibiou.sys driver\r
+       If IsNull(dev_list) Then\r
+               rc = WshShell.Run (devman & "install ib_iou.inf IBA\IB_IOU",0,true)\r
+               If rc <> 0 Then\r
+                       msgbox "Install_IOU Err(" & rc & ")" & _\r
+                                       "devman install ib_iou.inf IBA\IB_IOU"\r
+               End If\r
+       Else\r
+               On Error Resume Next\r
+               msgbox "IOU driver already loaded [" & dev_list(0) & "]"\r
+       End If\r
+\r
+End Sub\r
+\r
+\r
+' For installer error codes see\r
+'  http://msdn2.microsoft.com/en-us/library/aa368542(VS.85).aspx \r
+\r
+Const ERROR_INSTALL_SOURCE_ABSENT = 1612  ' missing files to install,\r
+                                              ' invalid feature selection.\r
+Const ERROR_INSTALL_FAILURE       = 1603  ' fatal error during installation\r
+Const ERROR_FUNCTION_FAILED       = 1627  ' function failed during execution   \r
+Const ERROR_SUCCESS_REBOOT_REQUIRED = 3010 ' restart required\r
+\r
+Const DPINST_ERR = &H80000000\r
+\r
+\r
+''''''''''' Device Driver Install ''''''''''''\r
+\r
+Function DriverInstall()\r
+    Dim PropArray, devID\r
+       Dim devman, devmanEXE, devmanNET, devmanQL\r
+    Dim rc, cmd, CheckMode, sInstalldir, fso\r
+       Dim DrvInstalled, idev, mlxdev, dev, dev_list\r
+\r
+       On Error Resume Next\r
+\r
+    ' Get the value of INSTALLDIR - see WinOF_Setup\r
+    CheckMode = Session.Property("CustomActionData")\r
+\r
+    If Not CheckMode = "" Then\r
+        'in defered action this is the way to pass arguments.\r
+           PropArray = Split(Session.Property("CustomActionData"), ";")\r
+    Else\r
+        Redim PropArray(8)\r
+               PropArray(0) = Session.Property("INSTALLDIR") \r
+               PropArray(1) = Session.Property("SystemFolder") \r
+       PropArray(2) = Session.Property("System64Folder") \r
+               PropArray(3) = Session.Property("WindowsFolder")\r
+               PropArray(4) = Session.Property("VersionNT")\r
+               PropArray(5) = Session.Property("ADDLOCAL")\r
+               PropArray(6) = Session.Property("REMOVE")\r
+               PropArray(7) = Session.Property("NODRV")\r
+    End If\r
+\r
+       ' If cmd-line specified NODRV=1, then do not install drivers.\r
+       ' Should not get here with NODRV=1 as WIX src files check.\r
+       ' Be safe.\r
+\r
+       If PropArray(7) <> "" Then\r
+               Exit Function\r
+       End If\r
+\r
+    sInstalldir = PropArray(0)\r
+       sVersionNT      = PropArray(4)\r
+       InstallThis     = PropArray(5)\r
+\r
+    devmanEXE = sInstalldir & "IBcore\devman.exe "\r
+    devmanEXE1 = "..\IBcore\devman.exe "\r
+    devman =    "cmd.exe /c cd /d " & sInstalldir & "IBcore & devman.exe "\r
+    devmanNET = "cmd.exe /c cd /d " & sInstalldir & "net & " & devmanEXE1\r
+    devmanQL =  "cmd.exe /c cd /d " & sInstalldir & "qlgcvnic & " & devmanEXE1\r
+    devmanSRP = "cmd.exe /c cd /d " & sInstalldir & "SRP & " & devmanEXE1\r
+    devmanWV = "cmd.exe /c cd /d " & sInstalldir & "winverbs & " & devmanEXE1\r
+\r
+       dpinst = "cmd.exe /c cd /d " & sInstalldir & "IBcore & dpinst.exe "\r
+       dpinstWV = "cmd.exe /c cd /d " & sInstalldir & "winverbs & ..\IBcore\dpinst.exe "\r
+\r
+    Set WshShell = CreateObject("WScript.Shell")\r
+    Set fso = CreateObject("Scripting.FileSystemObject")\r
+       \r
+    If Not fso.FileExists(devmanEXE) Then\r
+        msgbox "Driver Install - missing file WinOF\IBcore\devman.exe"\r
+        DriverInstall=ERROR_FUNCTION_FAILED \r
+        Exit Function\r
+    End if\r
+\r
+    err.clear \r
+\r
+    ' rescan system buses\r
+    Return = WshShell.Run (devman & "rescan", 0, true)\r
+               \r
+    ' Install HCA (Host Channel Adapter) Driver(s)\r
+    DrvInstalled = false\r
+\r
+       ' Which HCAs are selected to install?\r
+       ' Both InfiniHost(mthca) and ConnectX(mlx4) have the same\r
+       ' Vendor ID VEN_15B3, so a generic by 'Vendor ID' install will not suceed.\r
+       ' In the case of both InfiniHost and ConnectX (mixed) HCAs present, install\r
+       ' using VENDOR_ID and DEV_ID.\r
+\r
+       have_mlx4 = 0\r
+       have_mthca = 0\r
+\r
+       ' msgbox "InstallThis " & InstallThis\r
+\r
+       have_mlx4 = instr(InstallThis,"hca_connectX")\r
+       have_mthca = instr(InstallThis,"hca_mthca")\r
+\r
+       ' an HCA driver is 'required'.\r
+    If have_mlx4 = 0 AND have_mthca = 0 Then\r
+        msgbox "Driver Install - No HCA Driver Selected to Install?" & _\r
+               "   Aborting Installation."\r
+        ' Force installer cleanup (real magic).\r
+        DriverInstall=ERROR_INSTALL_SOURCE_ABSENT\r
+        Exit Function\r
+    End If\r
+\r
+       dev_list = Find_Dev_by_Tag(WshShell,devman,"find","VEN_15B3")\r
+\r
+       If IsNull(dev_list) Then\r
+               msgbox "HCA driver install - No HCA devices to install?"\r
+               DriverInstall=ERROR_INSTALL_FAILURE\r
+               Exit Function\r
+       End If\r
+\r
+    ' Install ConnectX (mlx4) HCA driver?\r
+\r
+    If have_mlx4 Then\r
+\r
+        ' install ConnectX/mlx4 bus driver \r
+               cmd = ""\r
+        For each Dev in dev_list\r
+                       If Dev <> "" Then\r
+                               mlxdev = Left(Dev,(Instr(dev,"SUBSYS")-2))\r
+                               devID = Right(mlxdev,4)\r
+                               If IsInfiniHost( devID ) = 0 Then\r
+                                       ' Mixed HCA types? if not, then Vendor_ID install\r
+                                       If have_mthca = 0 Then\r
+                                               mlxdev = "PCI\VEN_15B3"\r
+                                       End If\r
+                                       cmd = devman & "update mlx4_bus.inf """ & mlxdev & """"\r
+                                       Return = WshShell.Run (cmd,0,true)\r
+' msgbox "mlx4_bus(" & Return & ") " & cmd\r
+                       If Return = 0 Then\r
+                               DrvInstalled = true\r
+                               Exit For\r
+                       End If\r
+                                       ' one time install attempt if not mixed HCA types present.\r
+                                       ' Otherwise, continue with next mlx4 DEV_ID\r
+                                       If have_mthca = 0 Then\r
+                               Exit For\r
+                                       End If\r
+                               End if\r
+                       End if\r
+               Next\r
+\r
+               If DrvInstalled <> true Then\r
+            msgbox "mlx4_bus Install failed(" & Return & ") " & cmd\r
+            DriverInstall=ERROR_INSTALL_FAILURE\r
+            Exit Function\r
+               End if\r
+\r
+               ' Install ConnectX HCA\r
+        cmd = devman & "update mlx4_hca.inf MLX4\CONNECTX_HCA"\r
+        Return = WshShell.Run (cmd,0,true)\r
+\r
+        ' Display error number and description if applicable\r
+        If Return <> 0 Then\r
+            msgbox "mlx4_hca Install Err(" & Return & ") " & cmd\r
+                       remove_INF_file WshShell,devmanEXE,"mlx4_"\r
+            DriverInstall=ERROR_INSTALL_FAILURE\r
+            Exit Function\r
+        End if\r
+    End If\r
+\r
+    ' InfiniHost (mthca) HCA driver?\r
+\r
+    If have_mthca Then\r
+               DrvInstalled = false\r
+\r
+               cmd = ""\r
+        For each dev in dev_list\r
+                       If dev <> "" Then\r
+                               idev = Left(dev,(Instr(dev,"SUBSYS")-2))\r
+                               devID = Right(idev,4)\r
+                               If IsInfiniHost( devID ) = 1 Then\r
+                                       ' Mixed HCA types? if not, then Vendor_ID install\r
+                                       If have_mlx4 = 0 Then\r
+                                               idev = "PCI\VEN_15B3"\r
+                                       End If\r
+                       cmd = devman & "update mthca.inf """ & idev & """"\r
+                       Return = WshShell.Run (cmd,0,true)\r
+                       If Return = 0 Then\r
+                               DrvInstalled = true\r
+                               Exit For\r
+                       End If\r
+                                       ' one time install attempt if no mlx4 present\r
+                                       ' otherwise, continue with next DEV_ID\r
+                                       If have_mlx4 = 0 Then\r
+                               Exit For\r
+                                       End If\r
+                               End if\r
+                       End if\r
+        Next\r
+\r
+               If DrvInstalled <> true Then\r
+            msgbox "InfiniHost(mthca) Install Err(" & Return & ") " & cmd\r
+                       remove_INF_file WshShell,devmanEXE,"mthca"\r
+            DriverInstall=ERROR_INSTALL_FAILURE\r
+            Exit Function\r
+               End if\r
+    End if\r
+\r
+       ' an HCA driver is 'required'.\r
+\r
+    if DrvInstalled = false Then\r
+        msgbox "Driver Install - No HCA Driver Selected to Install?" & _\r
+               "   Aborting Installation."\r
+        ' Force installer cleanup (real magic).\r
+        DriverInstall=ERROR_INSTALL_SOURCE_ABSENT\r
+        Exit Function\r
+    End if\r
+\r
+    ' Check/install IPoIB driver\r
+       If instr(InstallThis,"fIPoIB") <> 0 Then\r
+               cmd = devmanNET & "update netipoib.inf IBA\IPoIB"\r
+               rc = WshShell.Run (cmd,0,true)\r
+               If rc <> 0 Then\r
+                       msgbox "IPoIB Install Err(" & rc & ") " & cmd\r
+                       DriverUninstall\r
+            DriverInstall=ERROR_INSTALL_FAILURE\r
+            Exit Function\r
+               End If\r
+    End If\r
+    \r
+       ' IB I/O Unit driver installed only if required by VNIC or SRP.\r
+\r
+       need_SRP = fso.FileExists(sInstalldir & "SRP\ib_srp.inf")\r
+       need_VNIC = fso.FileExists(sInstalldir & "qlgcvnic\netvnic.inf")\r
+\r
+    If need_VNIC OR need_SRP Then\r
+       rc = WshShell.Run (devman & "install ib_iou.inf IBA\IB_IOU",0,true)\r
+               If rc <> 0 Then\r
+                       msgbox "IOU Install Err(" & rc & ") install ib_iou.inf IBA\IB_IOU"\r
+               End if\r
+    End If\r
+\r
+    ' Install Qlogic VNIC Driver\r
+       If need_VNIC Then\r
+               Install_VNIC WshShell,devmanQL\r
+    End if\r
+       \r
+    ' Install SRP (SCSI RDMA Protocol) Driver\r
+    If need_SRP Then\r
+               Install_SRP WshShell,devmanSRP\r
+       End If\r
+\r
+       If fso.FileExists(sInstalldir & "Xwinverbs\winverbs.inf") Then\r
+\r
+               ' install, don't start/insert\r
+               cmd = dpinstWV & "/S /F /SA /SE /SW /PATH """ & sInstalldir _\r
+                               & "winverbs""" \r
+\r
+        Return = WshShell.Run (cmd,0,true)\r
+\r
+        cmd = devmanWV & "classfilter InfinibandController upper +winverbs"\r
+        Return = WshShell.Run (cmd,0,true)\r
+        If Return <> 1 Then msgbox "winverbs\winverbs.inf(" & Return & ")"\r
+\r
+        cmd = devmanWV & "disable =InfinibandController"\r
+        Return = WshShell.Run (cmd,0,true)\r
+        If Return <> 1 Then msgbox "winverbs\disable(" & Return & ")"\r
+\r
+        cmd = devmanWV & "enable =InfinibandController"\r
+        Return = WshShell.Run (cmd,0,true)\r
+        If Return <> 1 Then msgbox "winverbs\enable(" & Return & ")"\r
+       End If\r
+\r
+    err.clear \r
+    DriverInstall=0\r
+\r
+End Function\r
+\r
+\r
+'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''\r
+\r
+' Find IBA devices using Devcon\r
+\r
+Function Find_IBA_Devices(WshShell,sInstalldir) \r
+       Dim dev\r
+\r
+       Set ibaDevicesExec = WshShell.Exec ("cmd.exe /c cd " & sInstalldir & "IBcore & 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 dev in ibaDevices\r
+               if (Instr(dev,"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 dev in ibaDevices\r
+               if (Instr(dev,"IBA\") = 1) Then\r
+                       ibaDev(index) = dev\r
+                       index = index + 1\r
+               End if\r
+       next\r
+\r
+       ' Return array of devices\r
+       Find_IBA_Devices=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
+       Dim WinOS,cmd,base,dev\r
+\r
+       Set WshShell = CreateObject("WScript.Shell")\r
+       base = "cmd.exe /c reg query HKLM\SYSTEM\CurrentControlSet\Control\Network"\r
+       WinOS = Session.Property("VersionNT")\r
+\r
+       If (WinOS <> 501) Then\r
+               ' Win2K3 style\r
+               cmd = base & " /f ""IBA\IPOIB"" /s /d | FIND ""Connection"" "\r
+       Else\r
+               ' XP style\r
+               cmd = base & " /s | FIND ""}\Connection"" " \r
+       End if\r
+\r
+       Set ibaDevicesExec = WshShell.Exec ("cmd.exe /C " & cmd)\r
+\r
+       ibaDevices = split(ibaDevicesExec.StdOut.ReadAll, vbCrLF)\r
+\r
+       ' determine the array Size\r
+       dim arrSize\r
+       arrSize = 0\r
+       for each dev 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
+\r
+       For each dev in ibaDevices\r
+               If dev = "" Then\r
+               ElseIf WinOS <> 501 then\r
+                       ' ibaDev(index) = dev\r
+                       delstr = Left(dev,Len(dev)-Len("\Connection"))\r
+                       ibaDev(index) = delstr\r
+                       index = index + 1\r
+               Else\r
+                       ' XP reg.exe format sucks, unable to filter IBA\IPOIB, so we do\r
+                       ' it here....sigh.\r
+                       Set rex = WshShell.Exec ("cmd.exe /C reg.exe query " & dev & _\r
+                                                                       " /v PnpInstanceID | FIND ""IBA\IPOIB"" ")\r
+                   resp = split(rex.StdOut.ReadAll, vbCrLF)\r
+                   For each re in resp\r
+'                              msgbox "XP dev " & dev\r
+'                              msgbox "XP re " & re\r
+                           if Instr(re,"IPOIB") Then\r
+                               delstr = Left(dev,Len(dev)-Len("\Connection"))\r
+                                   ibaDev(index) = delstr\r
+                                   index = index + 1\r
+                    Exit For\r
+                           End If\r
+                       next\r
+               End if\r
+       next\r
+       Find_IPOIB_LAC=ibaDev\r
+\r
+End Function\r
+\r
+\r
+' Remove 3rd party (OEM) driver package, identified by the string LookFor.\r
+\r
+Function remove_INF_file(WshShell,exe,LookFor)\r
+\r
+    Dim cmd,have_devman,pfile\r
+\r
+       have_devman = Instr(exe,"devman")\r
+       cmd = "cmd.exe /c for /f %i in ('findstr /m " & LookFor & _\r
+                       " %WINDIR%\inf\oem*.inf') do @echo %i"\r
+\r
+    Set infFilesExec = WshShell.Exec ( cmd )\r
+\r
+    InfFiles = infFilesExec.StdOut.ReadAll\r
+    IFILES = Split(InfFiles,vbCrLf)\r
+' msgbox "remove_INF_File LookFor " & LookFor \r
+       On Error Resume Next \r
+    For Each file in IFILES\r
+        If (file <> "") Then\r
+                       If have_devman Then\r
+               cmd = exe & " -f dp_delete " & file\r
+                       Else\r
+                               cmd = exe & " /U """ & file & """ /S /D"\r
+                       End if\r
+' msgbox cmd \r
+               Return = WshShell.Run (cmd, 0, true)\r
+                       ' make sure the .inf & .pnf files are removed.\r
+                       pfile = replace(file,".inf",".pnf")\r
+                       FileDelete file\r
+                       FileDelete pfile\r
+        End IF\r
+    Next\r
+\r
+       remove_INF_file = 0\r
+\r
+End Function\r
+\r
+\r
+' Not used - run the specified command during next startup.\r
+\r
+Function RunAtReboot(name,run_once_cmd)\r
+       dim key_name\r
+       key_name = "Software\Microsoft\Windows\CurrentVersion\RunOnce"\r
+       AddRegStringValue key_name,name,run_once_cmd\r
+       msgbox "RunAtReboot( " & name & " , " & run_once_cmd & " )"\r
+    RunAtReboot = 0\r
+End Function\r
+\r
+\r
+' Remove QLogic VNIC instances\r
+\r
+Sub Uninstall_VNIC(fso,WshShell,devices,sInstalldir)\r
+\r
+       Dim devman,Return,device,dt,sDRIVERS\r
+\r
+       devman = "cmd.exe /c cd /d " & sInstalldir & "IBcore & devman.exe "\r
+\r
+       If IsNull(devices) Then\r
+               ' create a list of IBA\* devices via "devcon find"\r
+               devices = Find_IBA_Devices(WshShell,sInstalldir)\r
+       End If\r
+\r
+       For each devTarget in devices\r
+           If (Instr(devTarget,"IBA\V00066AP00000030")) Then\r
+               device = split(devTarget, ":")\r
+               dt = rtrim(device(0))\r
+                       ' disable instance - double quote complex device name for success.\r
+                       Return = WshShell.Run (devman & "disable ""@" & dt & """", 0, true)\r
+               ' Removing the Qlogic Vnic I/O Unit\r
+               Return = WshShell.Run (devman & "remove ""@" & dt & """", 0, true)\r
+           End if\r
+       Next\r
+\r
+       remove_INF_file WshShell,devman,"qlgcvnic.sys"\r
+\r
+       sDRIVERS = Session.Property("WindowsFolder") & "system32\drivers\"\r
+       DriverFileDelete fso,WshShell,sDRIVERS & "vnic.sys"\r
+       DriverFileDelete fso,WshShell,sDRIVERS & "qlgcvnic.sys"\r
+\r
+End Sub\r
+\r
+\r
+Sub Uninstall_SRP(fso,WshShell,devices,sInstalldir)\r
+\r
+       Dim devman,devmanRMAT,devmanDAAT,Return,device,sDRIVERS\r
+\r
+       devman = "cmd.exe /c cd /d " & sInstalldir & "IBcore & devman.exe "\r
+       devmanRMAT = devman & "remove @"\r
+       devmanDAAT = devman & "disable @"\r
+\r
+       If IsNull(devices) Then\r
+               ' create a list of IBA\* devices via "devcon find"\r
+               devices = Find_IBA_Devices(WshShell,sInstalldir)\r
+       End If\r
+\r
+       ' Remove SRP device - QLogic Virtual FC I/O controller instance?\r
+       For each deviceCan in devices\r
+           If (Instr(deviceCan,"IBA\V00066AP00000038")) Then\r
+               device = split(deviceCan, " ")\r
+                         ' disable the instance\r
+                     Return = WshShell.Run (devmanDAAT & device(0), 0, true)\r
+               ' Removing I/O Unit of the SRP\r
+               Return = WshShell.Run (devmanRMAT & device(0), 0, true)\r
+           End if\r
+       Next\r
+\r
+       ' Removing SRP miniport devices.\r
+       ' Either: IBA\C0100C609EP0108 or IBA\CFF00C609EP0108\r
+       For each devTarget in devices\r
+           If (Instr(devTarget,"00C609EP0108")) Then\r
+               device = split(devTarget, " ")\r
+                         ' disable the instance\r
+                   Return = WshShell.Run (devmanDAAT & device(0), 0, true)\r
+               ' Removing SRP\r
+               Return = WshShell.Run (devmanRMAT & device(0), 0, true)\r
+           End if\r
+       Next\r
+\r
+       remove_INF_file WshShell,devman,"ibsrp.sys"\r
+\r
+       sDRIVERS = Session.Property("WindowsFolder") & "system32\drivers\"\r
+       DriverFileDelete fso,WshShell,sDRIVERS & "ibsrp.sys"\r
+\r
+End Sub\r
+\r
+\r
+Sub RemoveDevice(WshShell,sInstalldir,DeviceTag)\r
+\r
+       dim devices,device,devman,devmanRMAT,devTarget,dt,Return\r
+\r
+       devman = "cmd.exe /c cd /d " & sInstalldir & "IBcore & devman.exe "\r
+       devmanRMAT = devman & "remove ""@"\r
+\r
+       devices = Find_Dev_by_Tag(WshShell,devman,"findall",DeviceTag)\r
+\r
+       If Not IsNull(devices) Then\r
+\r
+               For each devTarget in devices\r
+                   If (Instr(devTarget,DeviceTag)) Then\r
+                       device = split(devTarget, ":")\r
+                       dt = rtrim(device(0))\r
+                       Return = WshShell.Run (devmanRMAT & dt & """", 0, true)\r
+                   End if\r
+               Next\r
+\r
+       End if\r
+\r
+End Sub\r
+\r
+Sub remove_all_HCA_devices(WshShell,sInstalldir)\r
+\r
+       RemoveDevice WshShell,sInstalldir,"MLX4\CONNECTX_HCA"\r
+       RemoveDevice WshShell,sInstalldir,"PCI\VEN_15B3"\r
+\r
+End Sub\r
+\r
+Function Uninstall_IB_Devices(sInstalldir,sVersionNT,sRemove)\r
+\r
+       Dim WshShell, fso, devices, cmd, dpinst, devman, devmanRMAT\r
+\r
+       dpinst = "cmd.exe /c cd /d " & sInstalldir & "IBcore & dpinst.exe "\r
+       devman = "cmd.exe /c cd /d " & sInstalldir & "IBcore & devman.exe "\r
+\r
+       devmanRMAT = devman & "remove @"\r
+       devmanDAAT = devman & "disable @"\r
+\r
+       Set WshShell = CreateObject("WScript.Shell")\r
+       Set fso = CreateObject("Scripting.FileSystemObject")\r
+\r
+       If (fso.FileExists(sInstalldir & "IBcore\dpinst.exe") = False) Then\r
+           Exit Function ' no reason to continue without the tool.\r
+       End if\r
+\r
+       If (fso.FileExists(sInstalldir & "IBcore\devman.exe") = False) Then\r
+           Exit Function ' no reason to continue without the tool.\r
+       End if\r
+\r
+       ' create a list of IBA\* devices via "devcon find"\r
+\r
+       devices = Find_IBA_Devices(WshShell,sInstalldir)\r
+\r
+       Uninstall_SRP fso,WshShell,devices,sInstalldir\r
+\r
+       Uninstall_VNIC fso,WshShell,devices,sInstalldir\r
+\r
+       ' remove any lingering IB I/O Units\r
+       For each devTarget in devices\r
+           If (Instr(devTarget,"IBA\IB_IOU")) Then\r
+               device = split(devTarget, ":")\r
+               dt = rtrim(device(0))\r
+                       ' double-quote device name to ensure success.\r
+                       Return = WshShell.Run (devman & "disable ""@" & dt & """", 0, true)\r
+               ' Removing the I/O Unit\r
+               Return = WshShell.Run (devman & "remove ""@" & dt & """", 0, true)\r
+           End if\r
+       Next\r
+\r
+       ' remove IPoIB devices\r
+\r
+       For each devTarget in devices\r
+           If (Instr(devTarget,"IBA\IPOIB")) Then\r
+               device = split(devTarget, " ")\r
+               dt = rtrim(device(0))\r
+                       ' no need to double-quote simple IPoIB device name.\r
+                       Return = WshShell.Run (devmanDAAT & dt, 0, true)\r
+               ' Remove the IPoIB device instance\r
+               Return = WshShell.Run (devmanRMAT & dt, 0, true)\r
+           End if\r
+       Next\r
+\r
+       remove_all_HCA_devices WshShell,sInstalldir\r
+\r
+       ' Old (CoInstaller version) ibbus GUID - just in case.\r
+       Return = WshShell.Run (devman & "remove {94F41CED-78EB-407C-B5DF-958040AF0FD8",0,true)\r
+\r
+    ' remove 3rd party driver packages (ibsrp, vnic, ipoib, mthca, Connectx)\r
+\r
+       cmd = devman\r
+       remove_INF_file WshShell,cmd,"ibiou"\r
+       remove_INF_file WshShell,cmd,"ipoib"\r
+       remove_INF_file WshShell,dpinst,"winverb"\r
+       remove_INF_file WshShell,cmd,"mthca"\r
+       remove_INF_file WshShell,cmd,"mlx4_"\r
+    \r
+       Uninstall_IB_Devices = 0\r
+\r
+End Function\r
+\r
+\r
+\r
+''''''''''' Driver Uninstall ''''''''''''\r
+\r
+Sub DriverUninstall()  \r
+       Dim sInstalldir, WshShell, fso, sVersionNT\r
+\r
+       sInstalldir = Session.Property("INSTALLDIR")\r
+\r
+       Set WshShell = CreateObject("WScript.Shell")\r
+       Set fso = CreateObject("Scripting.FileSystemObject")\r
+\r
+       ' WSD is not supported on XP and should NOT have been installed.\r
+       ' otherwise, remove the service: ND (Network Direct) then WinSock Direct.\r
+\r
+       sVersionNT = Session.Property("VersionNT")\r
+       sRemove = Session.Property("REMOVE")\r
+       If sRemove = "" Then\r
+               sRemove = "ALL"\r
+       End If\r
+\r
+       If sVersionNT <> 501 Then\r
+           if fso.FileExists(sInstalldir & "installsp.exe") Then\r
+                     Return = WshShell.Run ("cmd.exe /c cd " & sInstalldir & _\r
+                                  " & installsp.exe -r", 0, true)\r
+           End If\r
+       End If\r
+\r
+       if fso.FileExists(sInstalldir & "net\ndinstall.exe") Then\r
+           Return = WshShell.Run ("cmd.exe /c cd " & sInstalldir & _\r
+                                  " & net\ndinstall.exe -r", 0, true)\r
+       End If\r
+       \r
+       ' stop the openSM service in case it was started.\r
+       Return = WshShell.Run ("cmd.exe /c sc.exe stop opensm", 0, true)\r
+\r
+       ' delete opensm service from registry\r
+       Return = WshShell.Run ("cmd.exe /c sc.exe delete opensm", 0, true)\r
+       If Err Then ShowError\r
+\r
+       Uninstall_IB_Devices sInstalldir,sVersionNT,sRemove\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\mlx4_bus"\r
+       DeleteRegKey "System\CurrentControlSet\Services\mlx4_hca"\r
+       DeleteRegKey "System\CurrentControlSet\Services\ipoib"\r
+       DeleteRegKey "System\CurrentControlSet\Services\ibiou"\r
+       DeleteRegKey "System\CurrentControlSet\Services\ibsrp"\r
+       DeleteRegKey "System\CurrentControlSet\Services\qlgcvnic"\r
+       DeleteRegKey "System\CurrentControlSet\Services\winverbs"\r
+\r
+       ' Mthca\r
+       DeleteRegValue "SYSTEM\CurrentControlSet\Control\CoDeviceInstallers" ,_\r
+                                       "{58517E00-D3CF-40c9-A679-CEE5752F4491}"\r
+\r
+       DeleteRegKey "SYSTEM\CurrentControlSet\Control\Class\{58517E00-D3CF-40C9-A679-CEE5752F4491}" \r
+\r
+       ' Connectx (mlx4)\r
+       DeleteRegValue "SYSTEM\CurrentControlSet\Control\CoDeviceInstallers" ,_\r
+                                        "{31B0B28A-26FF-4dca-A6FA-E767C7DFBA20}"      \r
+\r
+       DeleteRegKey "SYSTEM\CurrentControlSet\Control\Class\{31B0B28A-26FF-4dca-A6FA-E767C7DFBA20}"\r
+\r
+       DeleteRegKey "SYSTEM\CurrentControlSet\Control\Class\{714995B2-CD65-4a47-BCFE-95AC73A0D780}"\r
+       \r
+       ' In livefish mode, the above does not always work - just in case.\r
+       ' remove reg entries for ConnectX, mthca, ibbus, mlx4 & ipoib\r
+       nukem = Array(_\r
+                       "Control\Class\{58517E00-D3CF-40C9-A679-CEE5752F4491}",_\r
+                       "Control\Class\{31B0B28A-26FF-4dca-A6FA-E767C7DFBA20}",_\r
+                       "Control\Class\{714995B2-CD65-4a47-BCFE-95AC73A0D780}",_\r
+                       "Services\ibbus",_\r
+                       "Services\mthca",_\r
+                       "Services\mlx4_bus",_\r
+                       "Services\mlx4_hca",_\r
+                       "Services\ipoib",_\r
+                       "Services\EventLog\System\ipoib",_\r
+                       "Services\ibiou",_\r
+                       "Services\qlgcvnic",_\r
+                       "Services\ibsrp",_\r
+                       "Services\winverbs" )\r
+\r
+       base = "reg.exe delete HKLM\SYSTEM\CurrentControlSet\" \r
+\r
+       ' in livefish mode the delete didn't suceed, delete it in another way\r
+    For each ID in nukem\r
+               If ID <> "" Then\r
+                       Return = WshShell.Run (base & ID & " /f", 0, true)\r
+               End if\r
+       Next\r
+\r
+       Return = WshShell.Run (base & "Control\Wdf\Kmdf\kmdflibrary\versions\1\driverservices /v mlx4_bus /f", 0, true)\r
+\r
+' Not yet\r
+'      Return = WshShell.Run ("reg.exe delete HKLM\Software\Microsoft\Windows\currentVersion\DIFx\DriverStore\WinVerbs_* /f", 0, true)\r
+'      Return = WshShell.Run ("reg.exe delete HKLM\Software\Microsoft\Windows\currentVersion\DIFx\DriverStore\ipoib_* /f", 0, true)\r
+'\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
+       RemoveDriverFiles WshShell\r
+       \r
+       Session.Property("REBOOT") = "FORCE"      \r
+       err.clear \r
+End Sub\r
+\r
+\r
+' Enable WSD if installsp.exe was installed (feature Winsock direct selected).\r
+' For Windows XP, this CustomAction should not be called as WSD is not\r
+' supported on XP.\r
+\r
+Sub WSDEnable()\r
+      Dim sInstalldir, WshShell, fso\r
+\r
+      sInstalldir = Session.Property("INSTALLDIR")\r
+\r
+      Set WshShell = CreateObject("WScript.Shell")\r
+      Set fso = CreateObject("Scripting.FileSystemObject")\r
+\r
+      If fso.FileExists(sInstalldir & "installsp.exe") Then\r
+          ' install the WinSockdirect service\r
+         Return = WshShell.Run ("cmd.exe /c cd " & sInstalldir _\r
+                                 & " & installsp.exe -i", 0, true)\r
+      End If\r
+      If Err Then ShowError\r
+\r
+End Sub\r
+\r
+\r
+' This sub will only be called if the feature ND start was selected.\r
+' See WIX src file - ND_start\r
+\r
+Sub ND_StartMeUp()\r
+      Dim sInstalldir, WshShell, fso\r
+\r
+      sInstalldir = Session.Property("INSTALLDIR")\r
+\r
+      Set WshShell = CreateObject("WScript.Shell")\r
+      Set fso = CreateObject("Scripting.FileSystemObject")\r
+\r
+    ' Start the Network Direct Service if installed\r
+\r
+    If fso.FileExists(sInstalldir & "net\ndinstall.exe") Then\r
+        Return = WshShell.Run ("cmd.exe /c cd " & sInstalldir _\r
+                               & " & net\ndinstall.exe -i", 0, true)\r
+        If Err Then ShowErr2("ND service install failed")\r
+    End If\r
+\r
+End Sub\r
+\r
+\r
+Sub ShowError()\r
+    If Err.Number = 0 Then\r
+        Exit Sub\r
+    End if\r
+       strMsg = vbCrLf & "Error # " & Err.Number & vbCrLf & _\r
+                Err.Description & vbCrLf & vbCrLf\r
+       msgbox strMsg\r
+End Sub\r
+\r
+\r
+Sub ErrMsg(msg)\r
+    If Err.Number <> 0 Then\r
+           msgbox msg & vbCrLf & "Err # " & Err.Number & vbCrLf & Err.Description\r
+       Err.clear\r
+    End if\r
+End Sub\r
+\r
+Function ShowErr2(msg)\r
+    If Err.Number <> 0 Then\r
+           strMsg = vbCrLf & "Err # " & Err.Number & vbCrLf & _\r
+                    Err.Description & vbCrLf\r
+           msgbox msg & strMsg\r
+    End if\r
+    ShowErr2=Err.Number\r
+End Function\r
+\r
+\r
+' Wix installer now handles this, no longer used although left as example.\r
+' Create OpenSM (Subnet Management) windows service disabled.\r
+\r
+Sub OpenSM_Install\r
+    Dim sInstalldir,opensmPath,WshShell,fso,sc\r
+\r
+    sInstalldir = Session.Property("INSTALLDIR")\r
+    opensmPath = sInstalldir & "opensm.exe"\r
+\r
+    Set fso = CreateObject("Scripting.FileSystemObject")\r
+    Set WshShell = CreateObject("WScript.Shell")\r
+    \r
+    ' opensm.exe is required\r
+    If Not fso.FileExists(opensmPath) Then\r
+        Exit Sub\r
+    End if\r
+\r
+    sc = "sc.exe create opensm binPath= """ &opensmPath _\r
+               & " -e --service"" DisplayName= ""InfiniBand Subnet Manager"" "\r
+\r
+    ' Install OpeSM as a 'disabled' Service\r
+    sc = sc & "start= disabled"\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
+    err.clear\r
+\r
+End Sub\r
+\r
+\r
+' CustomAction called by Wix installer to convert disabled OpenSM service to\r
+' to an 'auto' startup at boot. Performs conversion and then starts service.\r
+\r
+Sub OpenSM_StartMeUp\r
+    Dim sInstalldir, opensmPath, WshShell, fso\r
+\r
+    sInstalldir = Session.Property("INSTALLDIR")\r
+    opensmPath = sInstalldir & "opensm.exe"\r
+\r
+    Set fso = CreateObject("Scripting.FileSystemObject")\r
+    Set WshShell = CreateObject("WScript.Shell")\r
+    \r
+    ' opensm.exe is required\r
+    If Not fso.FileExists(opensmPath) Then\r
+        Exit Sub\r
+    End if\r
+\r
+    Return = WshShell.Run ("cmd.exe /c sc.exe config opensm start= auto",0,true)\r
+    Return = WshShell.Run ("cmd.exe /c sc.exe start opensm", 0, true)\r
+    Err.clear\r
+\r
+End Sub\r
+\r
+\r
+' NOT USED - WIX now handles this\r
+' If not present, then create %SystemDrive%\DAT\dat.conf\r
+\r
+Function DAPL_setup()\r
+      Dim sSysDrive, SrcFile, DstFile, WshShell, fso\r
+\r
+      Set WshShell = CreateObject("WScript.Shell")\r
+      Set fso = CreateObject("Scripting.FileSystemObject")\r
+\r
+      DAPL_setup = 0\r
+      Err.clear\r
+\r
+      SrcFile = Session.Property("INSTALLDIR") & "dat.conf"\r
+\r
+      If fso.FileExists(SrcFile) Then\r
+             On Error Resume Next \r
+          sSysDrive = Session.Property("WindowsVolume")\r
+          ' sSysDrive = WshShell.ExpandEnvironmentStrings("%SystemDrive%") \r
+          ' WindowsVolume includes root \, where %SystemDrive% does not.\r
+          DstFile = sSysDrive & "DAT\dat.conf"\r
+          If fso.FileExists(DstFile) Then\r
+              ' Preserve existing %SystemDrive%\DAT\dat.conf\r
+              Exit Function\r
+          End if\r
+          fso.CopyFile SrcFile, DstFile\r
+      End if\r
+End Function\r
+\r
+\r
+Sub ScheduleLocalReboot\r
+               \r
+    Set objWMILocator = CreateObject ("WbemScripting.SWbemLocator") \r
+      objWMILocator.Security_.Privileges.AddAsString "SeShutdownPrivilege",True \r
+    Set objWMIServices = objWMILocator.ConnectServer(strComputerName, _\r
+                       cWMINameSpace, strUserID, strPassword)\r
+    Set objSystemSet = GetObject(_\r
+       "winmgmts:{impersonationLevel=impersonate,(Shutdown)}")._\r
+                               InstancesOf("Win32_OperatingSystem")\r
+\r
+    ' Forced restart\r
+    For Each objSystem In objSystemSet\r
+       objSystem.Win32Shutdown 2+4\r
+       objSystem.Win32Shutdown 2+4\r
+       objSystem.Win32Shutdown 2+4\r
+    Next\r
+               \r
+    'msgbox "Please wait while computer restarts ...",0,"WinOF"\r
+\r
+End Sub\r
+\r
+\r
+' Determine if an existing WinOF or openib-window installation is present.\r
+' If previous install exists, 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
+    Const wshYes = 6\r
+    Const wshNo = 7\r
+    Const wshYesNoDialog = 4\r
+    Const wshQuestionMark = 32\r
+\r
+    Dim status ' check if ibbus.sys exists, if not the reboot won't happen\r
+    Dim fso, originalReboot\r
+    Set fso = CreateObject("Scripting.FileSystemObject")    \r
+    status = 0\r
+    \r
+    Set WshShell = CreateObject("WScript.Shell")\r
+    Return = WshShell.Run ("reg.exe query HKLM\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
+    originalReboot = Session.Property("REBOOT")\r
+\r
+    DriverUninstall\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
+        Session.Property("REBOOT") = originalReboot \r
+       Exit Function\r
+    End if\r
+       \r
+    Dim sys_folder, drv_folder\r
+    ' Idea here is to rename driver files to force a driver\r
+    ' load failure upon next reboot so ensuing install will\r
+    ' succeed.\r
+    sys_folder = Session.Property("WindowsFolder") & "system32"\r
+    drv_folder = sys_folder & "\drivers"\r
+       \r
+    If fso.FileExists(drv_folder & "\ibbus.sys") Then\r
+       FileMove drv_folder & "\ibbus.sys",drv_folder & "\ibbus.sy1"\r
+    End if\r
+    If fso.FileExists(drv_folder & "\mthca.sys") Then\r
+       FileMove drv_folder & "\mthca.sys",drv_folder & "\mthca.sy1"\r
+    End if     \r
+    If fso.FileExists(sys_folder & "\ibinstaller.dll") Then\r
+       FileMove sys_folder & "\ibinstaller.dll",sys_folder & "\ibinstaller1.dll"\r
+    End if\r
+\r
+    ' Notify the user an existing non WinOF IB installation was detected and\r
+    ' the system will be rebooted.\r
+    dim res\r
+       \r
+    res = WshShell.Popup("Existing InfiniBand installation has been removed." _\r
+             & vbCRLF & vbCRLF & "Automatic REBOOT in 10 seconds."_\r
+             & vbCRLF & "Please re-install WinOF."_\r
+             ,13,"WinOF - Existing InfiniBand installation Detected")\r
\r
+    'run_once_cmd = Session.Property("SETUPEXEDIR") & "\setup.exe"\r
+    'RunAtReboot "WinOF", run_once_cmd\r
+    \r
+    ' the _Driver Uninstall call sets reboot=force. The ForceReboot action\r
+    ' following this CustomAction will fire when reboot is set =force.\r
+    ' The problem is we need to fail the installation so it cleans up, not\r
+    ' a partial install, and still reboots - So far IS-12 doesn;t support\r
+    ' this behavior.\r
+\r
+    ScheduleLocalReboot\r
+\r
+    ' Fail the install so cleanup occurs.\r
+    ' Upon system restart, WinOF installation needs to be restarted \r
+    ' consider a run-once invocation.\r
+\r
+       ChkInstallAndReboot = 2 ' will force install cleanup.\r
+\r
+End Function\r
+\r
+\r
+' Not Used - idea was to run %SystemRoot%\temp\WinOFcleanup.bat on the next\r
+' reboot to remove driver files which did not get uninstalled (win2K3 only);\r
+' script ran, files persisted on Win2K3? WIX call to invoke this Sub was\r
+' removed.\r
+\r
+Sub RunOnceCleanup\r
+  Dim fso, sInstalldir, sTemp, cmd\r
+  Set fso=CreateObject("Scripting.FileSystemObject") \r
+\r
+  On Error Resume Next\r
+\r
+  sInstalldir = Session.Property("REMOVE")\r
+  If sInstalldir <> "ALL" Then\r
+      Exit Sub\r
+  End if\r
+\r
+  sInstalldir = Session.Property("INSTALLDIR")\r
+\r
+  If Not fso.FileExists(sInstalldir & "WinOFclean.bat") Then\r
+     Exit Sub\r
+  End if\r
+\r
+  ' copy WinOFclean.bat to %SystemRoot%\temp for runOnce cmd\r
+  sTemp = fso.GetSpecialFolder(0) & "\temp\WinOFclean.bat"\r
+  Err.clear\r
+  fso.CopyFile sInstalldir & "WinOFclean.bat", sTemp \r
+  If Err.Number = 0 Then\r
+      cmd = "cmd.exe /C " & sTemp\r
+      RunAtReboot "WinOF", cmd\r
+      ' 2nd cmd to remove previous script.\r
+      cmd = "cmd.exe /C del /F/Q " & sTemp\r
+      RunAtReboot "WinOF2", cmd\r
+  End if\r
+\r
+End Sub\r
+\r
+\r
+' WIX has appended [INSTALLDIR] to the system search path via <Environment>.\r
+' Unfortunately WIX does not _Broadcast_ to all top-level windows the registry\r
+' Settings for '%PATH%' have changed. Run nsc to do the broadcast.\r
\r
+Sub BcastRegChanged\r
+    Dim RC, sInstallDir\r
+    Set WshShell=CreateObject("WScript.Shell")\r
+\r
+    sInstallDir = Session.Property("INSTALLDIR")\r
+\r
+       On Error Resume Next \r
+    WshShell.Run "%COMSPEC% /c cd " & sInstallDir & " & nsc.exe", 0, true\r
+    Err.clear\r
+    BcastRegChanged = 0\r
+\r
+End Sub\r
+\r
+\r
+' This routine should never be...InstallShield-12 for some reason has\r
+' decided not to completely remove [INSTALLDIR]? Until such a time\r
+' that 'why' is understood, this routine removes [INSTALLDIR]! Sigh...\r
+' nuke some driver files which remain due to devcon device install.\r
+' Immediate execution; called after MsiCleanupOnSuccess (REMOVE="ALL")\r
+\r
+Sub HammerTime\r
+    Dim fso, sInstallDir, RC, cmd\r
+\r
+    Set fso=CreateObject("Scripting.FileSystemObject") \r
+    Set WshShell=CreateObject("WScript.Shell")\r
+\r
+    sInstallDir = Session.Property("INSTALLDIR")\r
+    If fso.FolderExists(sInstallDir) Then\r
+        cmd = "cmd.exe /c rmdir /S /Q """ & sInstallDir & """"\r
+        RC = wshShell.Run(cmd,0,true)\r
+    End if\r
+\r
+    RemoveFolder "C:\IBSDK"\r
+\r
+    ' WIX does this - SysPathRemove(sInstallDir)\r
+\r
+End Sub\r
+\r
+\r
+' NOT USED - 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
+' Called when .msi 'CHANGE' (ADD/REMOVE) installation was selected.\r
+' Currently only handles SRP & VNIC\r
+\r
+Function InstallChanged\r
+\r
+    Dim RC, sInstallDir, sAddLocal, sRemove, sDRIVERS, NeedReboot\r
+    Err.clear\r
+\r
+    sRemove = Session.Property("REMOVE")\r
+       If sRemove = "ALL" Then\r
+               Exit Function\r
+       End If\r
+\r
+    Set WshShell=CreateObject("WScript.Shell")\r
+    Set fso = CreateObject("Scripting.FileSystemObject")\r
+\r
+       NeedReboot = 0\r
+\r
+    sInstallDir = Session.Property("INSTALLDIR")\r
+    sAddLocal = Session.Property("ADDLOCAL")\r
+\r
+    devman =    "cmd.exe /c cd /d " & sInstalldir & "IBcore & devman.exe "\r
+    devmanEXE1 = "..\IBcore\devman.exe "\r
+    devmanQL =  "cmd.exe /c cd /d " & sInstalldir & "qlgcvnic & " & devmanEXE1\r
+    devmanSRP = "cmd.exe /c cd /d " & sInstalldir & "SRP & " & devmanEXE1\r
+\r
+       On Error Resume Next \r
+\r
+       If (Not IsNull(sAddLocal)) AND (sAddLocal <> "") Then\r
+               If Instr(sAddLocal,"fSRP") OR Instr(sAddLocal,"fVNIC") Then\r
+                       Install_IOU WshShell,devman\r
+               End If\r
+\r
+               If Instr(sAddLocal,"fSRP") Then\r
+               If fso.FileExists(sInstalldir & "SRP\ib_srp.inf") Then\r
+                               Install_SRP WshShell,devmanSRP\r
+                       Else\r
+                       msgbox "Install_SRP - missing " & sInstalldir & "SRP\ib_srp.inf"\r
+                       End If\r
+               End If\r
+\r
+               If Instr(sAddLocal,"fVNIC") Then\r
+               If fso.FileExists(sInstalldir & "qlgcvnic\netvnic.inf") Then\r
+                               Install_VNIC WshShell,devmanQL\r
+                       Else\r
+                               msgbox "Install_VNIC - missing " & sInstalldir & _\r
+                                               "VNIC\netvnic.inf"\r
+                       End If\r
+               End If\r
+       End If\r
+\r
+       If (Not IsNull(sRemove)) AND (sRemove <> "") Then\r
+\r
+               If Instr(sRemove,"fSRP") Then\r
+                       Uninstall_SRP fso,WshShell,Null,sInstalldir\r
+                       NeedReboot = NeedReboot + 1\r
+               End If\r
+\r
+               If Instr(sRemove,"fVNIC") Then\r
+                       Uninstall_VNIC fso,WshShell,Null,sInstalldir\r
+                       NeedReboot = NeedReboot + 1\r
+               End If\r
+       End If\r
+\r
+       If NeedReboot Then\r
+               Session.Property("REBOOT") = "FORCE"      \r
+               InstallChanged = ERROR_SUCCESS_REBOOT_REQUIRED\r
+               ' until forced rebot relly works....\r
+               msgbox "A system reboot is required to complete this operation." _\r
+                               & vbCrLf & "Please do so at your earliest convinence."\r
+       End If\r
+\r
+End Function\r
+\r
diff --git a/WinOF/WIX/License.rtf b/WinOF/WIX/License.rtf
new file mode 100644 (file)
index 0000000..6de463f
Binary files /dev/null and b/WinOF/WIX/License.rtf differ
diff --git a/WinOF/WIX/README.txt b/WinOF/WIX/README.txt
new file mode 100644 (file)
index 0000000..8143ffe
--- /dev/null
@@ -0,0 +1,151 @@
+[11-13-08]\r
+\r
+How to generate a Windows OpenFabrics Release (WinOF) using the WIX 2.0 open\r
+source installer tool set ( http://sourceforge.net/projects/wix/ ).\r
+\r
+WIX References:\r
+       WIX collection http://www.dalun.com/wix/default.htm\r
+       WIX Tutorial http://www.tramontana.co.hu/wix/\r
+       WIX sourceforge project http://sourceforge.net/projects/wix/\r
+       WIX Introduction http://wix.sourceforge.net/manual-wix2/wix_index.htm   \r
+\r
+\r
+WinOF Revisions:\r
+  1.0  based on svn.614\r
+  1.0.1        svn.864\r
+  1.1  svn.1177\r
+  2.0  svn.1748\r
+\r
+\r
+\r
+Creating a binary release tree\r
+------------------------------\r
+\r
+As of WinOF 2.0 release [Aug'08] the build environment has been switched over to\r
+Microsoft's WDK (Windows Driver Kit) version 6001.180001.\r
+\r
+See gen1\trunk\BuildRelease.bat file to generate a Wix installer (.msi file) containing\r
+signed driver files.\r
+The OS flavor WLH\ - Vista/Server 2008[LongHorn], WNET\ - Server 2003+XP64\r
+and XP\ (x86 only) bin folders will be populated with the correct folder structure such that\r
+a WIX installer (.msi) files can be generated; either cd into OS\arch dir and\r
+run buildmsi.bat or use BuildRelease.bat from trunk\ folder.\r
+\r
+Warning - buildrelease.bat is not generic, some asembly required as the folder\r
+structure is assumed.\r
+\r
+BuildRelease.bat will by default deposit 7 .msi files in\r
+'%SystemRoot%\temp\WinOF_OS_arch.msi'.\r
+\r
+\r
+The other approach to creating a binary release tree is to generate the\r
+contents of WIX\bin\ yourself from a WDK/SDK build window which can run\r
+'nmake'.\r
+\r
+  1) Generate binaries for each supported architecture: x86, x64 and ia64.\r
+     cd to trunk; build /wg from a WDK OS and arch specific command window; all\r
+     are required by etc\makebin.bat.\r
+\r
+  2) cd trunk\etc; execute 'makebin src-dir dest-dir OS-flavor' for each OS flavor:\r
+     wnet, wlh and wxp.\r
+     Say your svn repository is at C:\open-ib\, then to populate the WIX bin\r
+     folder for Server 2008 binaries from a command window:\r
+        makebin C:\open-ib\gen1\trunk C:\open-ib\gen1\branches\WinOF\Wix\WLH\bin WLH\r
+\r
+With the arrival of Windows Server 2008 & Vista (WLH - Windows LongHorn) driver signing\r
+is a requirement. The WIX\sign-all-drivers.bat script will create a .cat file for each\r
+driver .inf located. The generation of the .cat file is driven from the corresponding\r
+.cdf file (.inf + .cdf + all files listed in .cdf + inf2cat.exe & signtool.exe result\r
+in a .cat file).\r
+\r
+A SW publisher's digital-ID certificate is required in order for WinOF installers to\r
+be created. A test certificate can be generated for local use, requires overhead during\r
+installation ('bcdedit -set testsigning on', reboot & local certificate store updates).\r
+The MS prescribed procedure is to obtain a SW publisher's certificate from VeriSign or\r
+other agency; if your company is producing SW drivers for SVR2008/Vista, then you will\r
+likely have access to a cert file.\r
+The OFA will be purchasing a certificate for WinOF publication.\r
+Scripts for signing drivers assume the .cer file will be resident in '...WinOF\Wix\*.cer'.\r
+see trunk\buildrelease.bat for an example of how to invoke driver\r
+signing; 'WIX\sign-all-drivers.bat'.\r
+Also see the Microsoft 'Kernel Mode Code Signing' document 'KMCS_Walkthrough.doc'; goggle\r
+for current URL.\r
+\r
+\r
+Creating a WIX tool set\r
+-------------------------\r
+\r
+Download the WIX v2 (stable) tool set (http://sourceforge.net/projects/wix/)\r
+to \91WInOF\WIX\WIX_tools\\92.\r
+Unzip the archive to a folder within 'WIX_tools\' as this folder represents the\r
+version of the tool set.\r
+Something like unzip wix-2.0.5325.0-binaries.zip into wix-2.0.5325.0-binaries\.\r
+You would now have the following structure:\r
+       WinOF\WIX\WIX_tools\wix-2.0.5325.0-binaries\{candle.exe, light.exe,...}\r
+\r
+\r
+\r
+Updating Release Files\r
+---------------------\r
+\r
+Update Release_notes.htm file.\r
+\r
+        The file 'Release_notes.htm' represents the next to be released\r
+        WinOF version, as reflected by is Release ID.\r
+\r
+       Release ID number (e.g., 1.0)\r
+\r
+       New features\r
+\r
+       Know issues\r
+\r
+Update the trunk\doc\Manual.htm file for new features.\r
+\r
+\r
+BUILDING a .msi installer image file\r
+------------------------------------\r
+\r
+Easy way:\r
+ place certificate file (.cer) in WIX\ folder; 'My Personal' cert store needs to be updated.\r
+ cd trunk\\r
+ From a standard DOS cmd window, not a WDK cmd window, say \r
+   buildrelease clean\r
+   buildrelease all            # .msi file created in %windir%\temp\*.msi\r
+\r
+   buildrelease makebin - assumes trunk\bin\* built, populates WIX\{wlh,wnet,wxp}\bin folders.\r
+   buildrelease msi - signs & creates installers assuming makebin has been run.\r
+   buildrelease wix - just creates .msi installers - assumes all bin\ folders populated.\r
+\r
+CPU specific builds\r
+\r
+CD to the WIX OS-flavor and architecture specific directory.  'nmake.exe' needs to be\r
+in your command window search path. Build three arch specific installers\r
+(.msi files) for WLH and WNET; WXP is x86 only. \r
+\r
+WARNING:\r
+   assupmtion: .\bin is populated correctly from makebin.bat or BuildRelease.bat makebin.\r
+\r
+cd gen1\branches\WinOF\WIX\wlh\x86 & nmake\r
+       Results in a .\WOF_wlh_x86.msi installer image.\r
+\r
+cd gen1\branches\WinOF\WIX\wlh\x64 & nmake\r
+       Results in a WOF_wlh_x64.msi installer image.\r
+\r
+cd gen1\branches\WinOF\WIX\wlh\ia64 & nmake\r
+       Results in a WOF_wlh_ia64.msi installer image.\r
+\r
+\r
+DEBUG\r
+-----\r
+Create a log file for a given .msi installation:\r
+\r
+  msiexec /I "WOF_x86.msi" /Lv \temp\msi.log\r
+\r
+  Also see %windir%\inf\setupapi.dev.log on Svr08 & Vista for driver load logging.\r
+\r
+Command line way to set an interface's IP address, netmask, no gateway:\r
+\r
+  netsh interface ip set address "Local Area Connection 3" static 10.10.4.200 255.255.255.0\r
+  netsh interface ip show address "Local Area Connection 3"\r
+\r
+\r
diff --git a/WinOF/WIX/README_checked.txt b/WinOF/WIX/README_checked.txt
new file mode 100644 (file)
index 0000000..3b8813e
--- /dev/null
@@ -0,0 +1,18 @@
+\r
+Installing Checked drivers which are signed.\r
+\r
+For Server 2003 or XP, replace the installed .sys  file (%windir%\system32\drivers)\r
+with the checked version.\r
+\r
+\r
+For Server 2008 or Vista, install with the signed .inf & .cat checked files.\r
+\r
+1) Make a copy of the free driver .sys and it's .cat file from the correct install\r
+   folder in Winof\ {IBcore, net or storage}.\r
+\r
+2) Copy checked driver .sys and .cat file from the WinOF\Checked\kernel folder to\r
+   correct install folder; where free versions were located.\r
+\r
+3) Uninstall currently installed free driver; right-click uninstall. \r
+\r
+4) Install signed debug from it's inf file using the found new hardware wizard.\r
diff --git a/WinOF/WIX/README_release.txt b/WinOF/WIX/README_release.txt
new file mode 100644 (file)
index 0000000..156f77b
--- /dev/null
@@ -0,0 +1,96 @@
+\r
+[11-13-08] WinOF 2.0 (RC5) release\r
+\r
+Downloads available at http://www.openfabrics.org/downloads/WinOF/v2.0\r
+\r
+\r
+WinOF 2.0 Summary Changes \r
+-------------------------\r
+\r
+1) The WinOF 2.0 release is based on openib-windows source svn revision\r
+   (branches\WOF2-0 svn.1748).\r
+\r
+   Last WinOF release (1.1) based on svn 1177.\r
+\r
+   Revision 2.0? Because user-2-kernel and some kernel-2-kernel APIs\r
+   have changed.\r
+\r
+   User-mode applications not included in the WinOF 2.0 release will need\r
+   to be rebuilt using WinOF 2.0 header files.\r
+\r
+2) Stability enhancements\r
+   IB Core\r
+        Nonexistent GUID in registry crash fixed.\r
+   IPoIB\r
+        HCA hardware TCP/IP checksum offload if HCA supports it.\r
+        PathRecord caching for large cluster environments.\r
+   WSD\r
+   VNIC\r
+   SRP\r
+       Disconnect hang fixed.\r
+        BSOD fixed.\r
+   DAT/DAPL\r
+\r
+3) New Functionality\r
+\r
+   Windows Server 2008 and Vista are now supported:\r
+      Digitally signed Installer file (.msi).\r
+\r
+   Microsoft Network Direct (ND) supported for Windows Server 2008 & Vista;\r
+      InfiniBand ND provider.\r
+\r
+   WDK (Windows Driver Kit) build environment used to construct WinOF 2.0\r
+\r
+   OS flavors:\r
+       WLH  - Windows LongHorn (aka Windows Server 2008 & Vista)\r
+       WNET - Windows Server 2003 & XP(64bit)\r
+       WXP  - Windows XP (32bit)\r
+\r
+   IPoIB:\r
+       multicast garbage collector.\r
+       IGMP v2 support only; no v3.\r
+       Partitioning support - see manual.htm 'part_man.exe'; requires IGMP v2.\r
+       LSO (Large Segment Offload) available, enabled if HCA supported.\r
+\r
+   WinVerbs: OFED verbs API for Windows (initial alpha release)\r
+\r
+4) Kernel mode drivers digitally signed by the OpenFabrics Alliance.\r
+\r
+5) Network accessible WinOF symbol store available.\r
+   Point windbg at\r
+       http://www.openfabrics.org/downloads/WinOF/v2.0/{wlh,wnet,wxp}/SymStor\r
+\r
+   Free build symbol files (.pdb) installed as\r
+        %ProgramFiles%\WinOF\[IBcore,net,srp]\r
+\r
+6) Checked/Debug signed drivers & symbols available as an install feature.\r
+\r
+\r
+\r
+**** WARNING ****\r
+\r
+After the WinOF.msi file has started installation execution, an errant\r
+"Welcome to the Found New Hardware Wizard" window 'may' popup.\r
+\r
+Just ignore or 'cancel' the errant FNHW popup window in order to proceed with\r
+the installation. XP requires a cancel, for WLH & WNET, the notifiers will\r
+disappear on their own. \r
+\r
+You do need to answer 'Yes' or 'Continue' to those popup windows which refer to\r
+non-WHQL'ed drivers.\r
+\r
+If the install appears to hang, look around for popup windows requesting input\r
+which are covered by other windows. Such is the case on Server 2008 initial \r
+install - Answer 'yes' to always trust the OpenFabrics Alliance as a SW\r
+publisher.\r
+\r
+Vista installs require a command window with Administrator priviledges.\r
+Execute this command from a Vista command window 'msiexec /i WinOF_xxx_xxx.msi'.\r
+\r
+Please:\r
+  read the Release_notes.htm file!\r
+  make 'sure' your HCA firmware is recent; vstat.exe displays HCA firmware\r
+  version.\r
+\r
+thank you.\r
+\r
diff --git a/WinOF/WIX/Release_notes.htm b/WinOF/WIX/Release_notes.htm
new file mode 100644 (file)
index 0000000..33b9a0a
--- /dev/null
@@ -0,0 +1,1090 @@
+<html>\r
+\r
+<head>\r
+<meta http-equiv=Content-Type content="text/html; charset=windows-1252">\r
+<meta http-equiv="Content-Language" content="en-us">\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
+<title>WinOF 1.1 Release Notes</title>\r
+\r
+</head>\r
+\r
+<body lang=EN-US link=#0000FF vlink=#808080>\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'><a name="1.1_Release_Notes">2.0 Release Notes</a></h1>\r
+\r
+<h3 align=center style='text-align:center'>\r
+<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%m/%d/%Y" startspan -->11/12/2008<!--webbot bot="Timestamp" endspan i-checksum="12535" --></h3>\r
+\r
+<div class=MsoNormal align=center style='text-align:center'>\r
+\r
+<hr size=2 width="100%" align=center>\r
+\r
+<h3 style="text-align: left"><u><a href="#Overview"><font color="#000000">\r
+Overview</font></a></u></h3>\r
+<h3 style="text-align: left"><u>\r
+<a href="#Supported_Platforms,_Operating_Systems_and_Infiniband_Hardware">\r
+<font color="#000000">Supported Platforms, Operating Systems and Infiniband Hardware</font></a></u></h3>\r
+<h3 style="text-align: left"><a href="#Installation_Specifics">\r
+<font color="#000000">Installation Specifics</font></a></h3>\r
+<h3 style="text-align: left"><a href="#How_to_Install"><font color="#000000">\r
+How to Install</font></a></h3>\r
+\r
+</div>\r
+\r
+<h3><u><a href="#Unattended_Install"><font color="#000000">\r
+Unattended Install</font></a><font color="#000000"> plus Server2008/HPC</font></u></h3>\r
+<h3><u><a href="#Setting_the_IPoIB_Interface_IP_Address"><font color="#000000">\r
+Setting the IPoIB Interface IP Address</font></a></u></h3>\r
+<h3><u><a href="#Uninstall"><font color="#000000">\r
+Uninstall</font></a></u></h3>\r
+<h3><u><a href="#Trouble_Shooting"><font color="#000000">\r
+Trouble Shooting</font></a></u></h3>\r
+<h3><a href="#OpenIB_Subnet_Management_as_a_Windows_Service">\r
+<font color="#000000">InfiniBand</font></a><u><a href="#OpenIB_Subnet_Management_as_a_Windows_Service"><font color="#000000"> Subnet Management as a Windows Service</font></a></u></h3>\r
+<h3><u><a href="#Local_Network_Adapter_Ordering"><font color="#000000">\r
+Local Network Adapter Ordering</font></a></u></h3>\r
+<h3><u><a href="#Which_WinOF_release_is_installed"><font color="#000000">\r
+Which WinOF release is installed</font></a></u><a href="#Which_WinOF_release_is_installed"><font color="#000000">?</font></a></h3>\r
+<h3><u><a href="#QLogic_VNIC_Configuration"><font color="#000000">\r
+QLogic VNIC Configuration</font></a></u></h3>\r
+<h3><u><a href="#DAT_&_uDAPL_Configuration"><font color="#000000">\r
+DAT &amp; uDAPL Configuration</font></a></u></h3>\r
+<h3><u><a href="#SRP_-_SCSI_RDMA_Protocol_Driver_Installation">\r
+<font color="#000000">SRP - SCSI RDMA Protocol Driver Installation</font></a></u></h3>\r
+<h3><u><a href="#Known_Issues"><font color="#000000">\r
+Known Issues</font></a></u></h3>\r
+<hr>\r
+<p>&nbsp;</p>\r
+\r
+<h2><u><a name="Overview">Overview</a></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 generated from the OpenIB-windows developers subversion (svn) source tree </span>\r
+'svn://openib.tc.cornell.edu'<span style='font-size:12.0pt;font-family:"Times New Roman"'> \r
+(branches\WOF2-0 svn revision <font color="#FF0000">1748</font>)\r
+are packaged into a <a href="http://www.dalun.com/wix/default.htm">WIX 2.0 \r
+(Windows Installer Xml)</a> single file install package referred to as the \r
+Windows OpenFabrics&nbsp;(WinOF) release 2.0.<br>\r
+&nbsp;</span></p>\r
+<p class=MsoPlainText><font size="3"><span style="font-family: Times New Roman">\r
+This WinOF 2.0 is a new release as it contains new functionality and bug fixes \r
+to numerous components:</span></font></p>\r
+\r
+</div>\r
+<ul>\r
+       <li>\r
+       <p class="MsoPlainText"><font face="Times New Roman" size="3">Windows Server \r
+       2008 and Vista are now supported.</font></p></li>\r
+       <li>\r
+       <p class="MsoPlainText"><font face="Times New Roman" size="3">Network Direct \r
+       supported on Server 2008/HPC.</font></p></li>\r
+       <li>\r
+       <p class="MsoPlainText"><font face="Times New Roman" size="3">Mellanox ConnectX(mlx4) drivers \r
+       enhanced for increased performance and stability.</font></p></li>\r
+       <li>\r
+       <p class="MsoPlainText"><font face="Times New Roman" size="3">QLogic has \r
+       enhanced VNIC &amp; SRP for increased performance and stability.</font></p></li>\r
+       <li>\r
+       <p class="MsoPlainText"><font face="Times New Roman" size="3">Bug fixes for stability in IBcore, WSD, VNIC, SRP, IPoIB, DAT/DAPL</font></p>\r
+       <p class="MsoPlainText"><font face="Times New Roman" size="3">In WinOF 2.0 \r
+       the <b>ABI</b> changed and thus all user-mode applications not included in \r
+       the WinOF 2.0<br>\r
+       release, need to recompile.<br>\r
+       There are changes in the <b>API</b>,<br>\r
+&nbsp;&nbsp;&nbsp; user-mode:<br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ib_cm_listen() at ib_al.h changed.<br>\r
+       <br>\r
+&nbsp;&nbsp;&nbsp; kernel mode: (ibal &lt;--&gt; hca)<br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ci_open_ca(),<br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ci_create_{cq, qp, spl_qp, srq} all \r
+       changed.</font></p>\r
+       </li>\r
+</ul>\r
+<div class=Section1>\r
+\r
+<p>The Windows OpenFabrics (WinOF) release package contains the following:<br>\r
+<br>\r
+OpenFabrics InfiniBand core drivers and Upper Level Protocols (ULPs):</p>\r
+<ul>\r
+       <li>\r
+       <p style="text-indent: -.25in; margin-left: .5in"><span dir="LTR">HCA \r
+       Drivers - </span>\r
+       <span style='background-position: 0% 0%; mso-highlight:yellow; background-image:none; background-repeat:repeat; background-attachment:scroll' dir="LTR">&nbsp;Mellanox \r
+       </span>\r
+       <st1:stockticker>\r
+       <span\r
+ style='background-position: 0% 0%; mso-highlight:yellow; background-image:none; background-repeat:repeat; background-attachment:scroll'>\r
+       InfiniHost &amp; ConnectX</span></st1:stockticker><span\r
+style='background-position: 0% 0%; mso-highlight:yellow; background-image:none; background-repeat:repeat; background-attachment:scroll'> low level drivers; See list of\r
+supported devices below</span></li>\r
+       <li>\r
+       <p style="text-indent: -.25in; margin-left: .5in">\r
+       <span style="background-position: 0% 0%">Infiniband Core components</span></li>\r
+       <li>\r
+       <p style="text-indent: -.25in; margin-left: .5in">Upper Layer Protocols: \r
+       IPoIB, WSD, ND, VNIC, SRP Initiator and DAT/DAPL</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 \r
+       tests</span></p></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
+<p style="text-indent: -.25in; margin-left: .5in"><a href="#1.1_Release_Notes">\r
+<font color="#000000">&lt;Return-to-Top&gt;</font></a></p>\r
+<p style="text-indent: -.25in; margin-left: .5in">&nbsp;</p>\r
+<h2><u><a name="Supported_Platforms,_Operating_Systems_and_Infiniband_Hardware">Supported Platforms, Operating Systems and Infiniband Hardware</a></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 \r
+       Server 2008</span></p>\r
+       </li>\r
+       <li>\r
+       <p style='margin-left:.5in;text-indent:-.25in'><span dir="LTR">Vista</span></p>\r
+       </li>\r
+       <li>\r
+       <p style='margin-left:.5in;text-indent:-.25in'><span dir=LTR>Windows Server 2008 HPC Edition</span></p>\r
+       </li>\r
+       <li>\r
+       <p style='margin-left:.5in;text-indent:-.25in'><span dir="LTR">Windows Server 2003 \r
+       / XP64</span></p>\r
+       </li>\r
+       <li>\r
+       <p style='margin-left:.5in;text-indent:-.25in'><span dir=LTR>Windows XP/32 (SP2)</span></p>\r
+       </li>\r
+</ul>\r
+\r
+<h4><u>Supported HCAs (Host Channel Adapters)</u></h4>\r
+\r
+<p>Mellanox</p>\r
+<ul>\r
+       <li>\r
+       <p style='margin-left:.5in;text-indent:-.25in;mso-list:l13 level1 lfo1;\r
+tab-stops:list .5in'><![if !supportLists]><font size="3">\r
+       <span style='background-position: 0% 0%; font-style:normal; font-variant:normal; font-weight:normal; font-family:Times New Roman; mso-list:Ignore; mso-bidi-font-size:12.0pt; mso-fareast-font-family:Symbol; mso-bidi-font-family:Symbol; mso-highlight:yellow; background-image:none; background-repeat:repeat; background-attachment:scroll'>\r
+       MT23108 - InfiniHost</span></font><![endif]></p></li>\r
+       <li>\r
+       <p style='margin-left:.5in;text-indent:-.25in;mso-list:l13 level1 lfo1;\r
+tab-stops:list .5in'>\r
+       <span style='background-position: 0% 0%; mso-highlight:yellow; background-image:none; background-repeat:repeat; background-attachment:scroll' dir="LTR">MT25218 \96 InfiniHost III Ex, memfree</span></p>\r
+       </li>\r
+       <li>\r
+       <p style='margin-left:.5in;text-indent:-.25in;mso-list:l13 level1 lfo1;\r
+tab-stops:list .5in'>\r
+       <span style='background-position: 0% 0%; mso-highlight:yellow; background-image:none; background-repeat:repeat; background-attachment:scroll' dir="LTR">MT25204 \96 InfiniHost III Lx</span></p>\r
+       </li>\r
+       <li>\r
+       <p style='margin-left:.5in;text-indent:-.25in;mso-list:l13 level1 lfo1;\r
+tab-stops:list .5in'><span style="background-position: 0% 0%">MT25408 - </span>\r
+       <span style="background-position: 0% 0%">ConnectX DDR Channel Adapter, not \r
+       yet supported on IA64 platforms.</span></p>\r
+       </li>\r
+</ul>\r
+<p>Both SDR and DDR mode of the InfiniHost III family are supported.<br><br>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><br>\r
+Current HCA firmware version can be viewed from the 'vstat' command.</p>\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 - \r
+       update your firmware for correct embedded Subnet Manager operation.</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
+       <li>\r
+       <p style='margin-left:.5in;text-indent:-.25in'>Due to lack of hardware \r
+       accessibility, \r
+       other vendor switches have not been tested.</p>\r
+       </li>\r
+</ul>\r
+\r
+<p><a href="#1.1_Release_Notes"><font color="#000000">&lt;Return-to-Top&gt;</font></a></p>\r
+<p>&nbsp;</p>\r
+<h2><u><a name="Installation_Specifics">Installation Specifics</a></u></h2>\r
+\r
+<p>User mode tools and diagnostics are installed in '%SystemDrive%\Program\r
+Files (x86)\WinOF'.&nbsp; Although driver modules initially reside in \r
+'%SystemDrive%\Program Files (x86)\WinOF', when installed the Windows device \r
+installer copies driver files to %SystemRoot%\system32 &amp; %SystemRoot%\SysWOW64'. \r
+DAT &amp; DAPL runtime libraries are installed into %SystemRoot% in order to be \r
+accessible to user mode applications.<br>\r
+WinOF user mode executables are designed to be run from\r
+a Command Prompt window; see&nbsp; 'Start-&gt;Program Files-&gt; Windows OpenFabrics-&gt; Command Prompt'.</p>\r
+<p>'%SystemDrive%\Program Files (x86)\WinOF' is appended to the system wide search \r
+path; new command windows created after the installation will have the updated \r
+%PATH% environment variable, hence will be able to access WinOF executables.</p>\r
+\r
+<p>The \91default\92 installation installs \91released/free\92 (not\r
+checked/debug) versions of drivers and executables. Debug/Checked versions are \r
+available as an install feature.</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 OFED opensm work well.</p>\r
+<p>It is recommended that OpenSM be run as a Windows service.&nbsp; A typical \r
+WinOF install will install OpenSM as a Windows service which \r
+is disabled; after an installation, choose your openSM node and start the openSM \r
+service.&nbsp; \r
+See the WinOF Manual for details on opensm as a service.<br>\r
+By selecting the 'OpenSM_Service_Enabled' install feature, an OpenSM subnet \r
+management service will be automatically started. </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 re-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><a href="#1.1_Release_Notes"><font color="#000000">\r
+&lt;Return-to-Top&gt;</font></a></p>\r
+<p class=MsoNormal>&nbsp;</p>\r
+\r
+<h2><u><a name="How_to_Install">How to Install</a></u></h2>\r
+\r
+<h3>Requirements</h3>\r
+\r
+<p>Install HCA hardware prior to installing the Windows OpenFabrics Release\r
+package. Upon reboot, cancel any attempts to install new device hardware from \r
+the &quot;Found New Hardware Wizard&quot;.</p>\r
+\r
+<p>If you have previously installed openib-windows, WinOF (Windows OpenFabrics)\r
+packages or vendor supplied Infiniband packages, uninstall and reboot prior to\r
+installing this version of Windows OpenFabrics (WinOF).</p>\r
+\r
+<p>For an existing Windows OpenFabrics (WinOF) uninstall<br>\r
+&nbsp;&nbsp;&nbsp; Start-&gt; Programs-&gt; Windows OpenFabrics-&gt; Uninstall WinOF<br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -or-<br>\r
+&nbsp;&nbsp;&nbsp; Control Panel -&gt; Add or Remove Programs-&gt; Windows\r
+OpenFabrics-&gt;Remove.</p>\r
+<p>openib-windows (IB stack before WinOF 1.0 release) uninstall: (not the normal \r
+uninstall case, see previous discussion)</p>\r
+\r
+<ol start=1 type=1>\r
+ <li class=MsoNormal>Stop the openSM subnet manager if it is running on the \r
+       local node.</li>\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;</p>\r
+\r
+<p><b>REBOOT</b></p>\r
+\r
+<p>Upon system restart, 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 Infiniband HCA device.</p>\r
+\r
+<h3><u>Install</u></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_M-m{-p}_OSE_arch.msi file to begin the Windows OpenFabrics installation.&nbsp;</p>\r
+<p>Where 'M-n{-p}' indicates Major release number, Minor release number, and \r
+optional point-release number.</p>\r
+<p>&nbsp;OSE - Operating System Environment:</p>\r
+<ul>\r
+       <li>wlh - (Windows LongHorn) Windows Server 2008, HPC or Vista</li>\r
+       <li>wnet - Windows Server 2003 or Windows XP 64-bit version</li>\r
+       <li>wxp - Windows XP x86/32-bit version</li>\r
+</ul>\r
+<p>'_arch_' will be one of</p>\r
+<ul>\r
+       <li>_x64_ for&nbsp; Intel EMT64 systems or amd64; see\r
+       <a href="http://en.wikipedia.org/wiki/X86-64">x86-64</a></li>\r
+       <li>_x86_ for x86\r
+compatible systems</li>\r
+       <li>_ia64_ for Intel IA64 systems. </li>\r
+</ul>\r
+\r
+<p>Follow the on-screen instructions.<br>\r
+<br>\r
+Answer 'yes' or 'Continue' to any notifier windows which reference non-WHQL'ed \r
+driver installation.<br>\r
+These non-WHQL'ed driver install questions can <b>not</b> be disabled \r
+via 'My Computer-&gt;Properties-&gt;Hardware-&gt;Driver Signing-&gt;Ignore'.</p>\r
+<p>Bottom-line - The digitally signed WinOF drivers in this package are not WHQL'ed \r
+per se, although they are \r
+built from driver source which has been or is in process of being WHQL'ed by \r
+hardware vendors which participate in the open source WinOF development process.</p>\r
+<p>&nbsp;</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 \r
+       WinOF install has started, just ignore (window will disappear in a few \r
+       seconds) or 'Cancel' the errant popup window.&nbsp; \r
+       For Windows Server 2003 (SP1) you can safely ignore the errant FNHW popup \r
+       window; for Windows XP (SP2) the errant FNHW popups need to be 'cancelled' \r
+       in order for the WinOF install to proceed. The report back from Microsoft on these 'Found New Hardware Wizard' windows \r
+       popping up, is they are due to the fact the WinOF drivers are not WHQL'ed \r
+       and hence are not trusted by Windows; MS claims this is a 'feature'.</p>\r
+       <p>An artifact of cancelling an errant 'Found New Hardware' popup window may \r
+       induce an errant taskbar Information notifier/bubble indicating there may \r
+       have been problems installing your hardware drivers;\r
+       IGNORE/cancel this information bubble, likely the device installation \r
+       proceeded without error. Check the Device Manager views for the \r
+       Infiniband HCA and IPoIB Network Adapters for initial verification of \r
+       correct installation.</p>\r
+       <p>You <b>do</b> need to answer 'Yes' or 'Continue' to those notifier windows which \r
+       reference non-WHQL driver installation. If you have previously \r
+       set My Computer-&gt;Properties-&gt;Hardware-&gt;Driver Signing-&gt;Ignore, the FNHW \r
+       windows likely will occur anyway.</p>\r
+       <p>Should the install appear to hang, look around for occluded notifier windows \r
+       waiting for a response which \r
+       are covered by existing windows.<br>\r
+&nbsp;</p>\r
+</blockquote>\r
+\r
+<h4>Install type: Custom only</h4>\r
+\r
+<ul type=disc>\r
+ <li class=MsoNormal>InfiniBand Core:<ul type=disc>\r
+       <li>HCA driver - Mellanox: InfiniHost or ConnectX</li>\r
+       <li>IB core stack and libraries.</li>\r
+       <li>Release Notes, Manual</li>\r
+       <li>Subnet Management service [OpenSM] (installed &amp; disabled), Performance &amp; Diagnostic tools</li>\r
+       </ul></li>\r
+       <li>Optional:<br>&nbsp;&nbsp;&nbsp; IPoIB - Internet Protocols over \r
+       InfiniBand<br>&nbsp;&nbsp;&nbsp; Winsock Direct (Win2008/3 only)<br>\r
+&nbsp;&nbsp;&nbsp; Network Direct (MS supported only for Server 2008 HPC).<br>&nbsp;&nbsp;&nbsp; VNIC - Virtual Ethernet device over Infiniband<br>&nbsp;&nbsp;&nbsp; SRP - SCSI over RDMA Protocol<br>&nbsp;&nbsp;&nbsp; \r
+       DAT/DAPL \r
+       - RDMA device independent, user-mode Direct Access Transport &amp; Direct Access \r
+       Provider<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - DAT v1.1&nbsp; runtime libraries.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - DAT v1.1 application build environment \r
+       (header files &amp; link files).<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - DAT/DAPL v2.0 runtime libraries<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - DAT v2.0 application build environment<br>&nbsp;&nbsp;&nbsp; OpenSM_service_started - InfiniBand Subnet Management \r
+       enabled and started as a Windows Service.<br>&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \r
+       By default OpenSM is installed as a disabled Windows Service.<br>\r
+&nbsp;&nbsp;&nbsp; WinVerbs - OFED verbs API for Windows.<br>\r
+&nbsp;&nbsp;&nbsp; Checked versions of driver files.<br>\r
+&nbsp;</li>\r
+       <li>The '<b>default</b>' installation includes IB core, IPoIB, WSD (Win2K3 only), \r
+       DAT 1.1 runtime libraries, OpenSM service (disabled).</li>\r
+</ul>\r
+\r
+</blockquote>\r
+\r
+<p><a href="#1.1_Release_Notes"><font color="#000000">&lt;Return-to-Top&gt;</font></a></p>\r
+<p>&nbsp;</p>\r
+<h3><u><a name="Unattended_Install">Unattended Install</a></u></h3>\r
+\r
+<div id="main-copy">\r
+       <p>To perform a silent/unattended installation for Server 2003/XP, invoke \r
+       the following command from a command window; Server 2008/HPC see notes \r
+       below.</p>\r
+       <blockquote>\r
+               <p>start/wait msiexec.exe /i WinOF_2-0_wlh_x64.msi /quiet /log \r
+               %TEMP%\WOF_install.log</p>\r
+               <p>'/log dev:path\logFilename.log' is optional.</p>\r
+               <p>msiexec.exe /? for all options.</p>\r
+       </blockquote>\r
+       <p>An unattended install will install the following 'default' install options:</p>\r
+       <ul>\r
+               <li>Infiniband Core - HCA driver, IB core stack and libraries, \r
+               Documentation</li>\r
+               <li>IPoIB - Internet Protocols over InfiniBand</li>\r
+               <li>WSD - (Win2K8/3 only, not installed on XP) Win Sock Direct</li>\r
+               <li>ND - Network Direct, started automatically (via ndinstall.exe) only for Server \r
+               2008/HPC and Vista.</li>\r
+               <li>DAT &amp; DAPL (v1.1 &amp; v2.0) runtime libraries + dapltest.exe \r
+               (dt-svr &amp; dt-cli).</li>\r
+       </ul>\r
+</div>\r
+<p>Should WSD not be a desirable unattended install option (Win2008/3 only), \r
+currently you would install unattended then execute the command 'installsp -r' \r
+on each node to remove WSD.</p>\r
+<h4><u>Server 2008/HPC notes</u></h4>\r
+<p>Device drivers in WinOF 2.0, and later releases, are Digitally \r
+signed although they are not WHQL'ed (Windows Quality Hardware Labs) certified. The lack \r
+of WHQL certification impacts unattended installs by requiring the user to \r
+'accept' \r
+installation of the non-WHQL'ed driver the first time a compute node is \r
+installing WinOF drivers via the WinOF .msi installer.&nbsp; Additionally the non-WHQL \r
+driver notifier box has a \r
+checkbox which allows establishing a trust for software from the publisher \r
+'OpenFabrics Alliance'. Checking this box allows future WinOF driver installs to proceed \r
+without user intervention as you have indicated to Windows that you trust non-WHQL \r
+drivers from the Openfabrics Alliance software publisher.</p>\r
+<p>***** Warning *****<br>\r
+WinOF .msi installs on compute nodes the first time require human input to 'accept' \r
+installation of non-WHQL'ed drivers along with establishing a trust for the SW \r
+publisher 'OpenFabrics Alliance'.<br>\r
+If one attempts an unattended WinOF .msi install using 'clusrun.bat msiexec /i \r
+WinOF.....msi /quiet', the install will \r
+silently hang waiting for user input.<br>\r
+First time unattended WinOF .msi installs need mouse input to complete.&nbsp; \r
+Once the SW publisher trust has been established, future unattended WinOF .msi \r
+installs procees without human input.</p>\r
+<p>Be aware: if a node is reimaged (saem or different template applied) the \r
+established trust of OpenFabric Alliance is destroyed, thus the non-WHQL driver \r
+notifier box and ensuing human input is again required on the first WinOF .msi \r
+install.</p>\r
+<h4><u>Windows Deployment Manager usage for HPC compute node provisioning</u></h4>\r
+<p>Microsoft has chosen the WDM to provision HPC \r
+cluster compute nodes. WinOF 2.0 supports an administrative install mode which \r
+is a method to extract the WinOF&nbsp; files without actually installing them, \r
+thus making WinOF driver files accessible for WDM provisioning.</p>\r
+<p>msiexec /a WinOF_2-0_wlh_x64.msi TARGETDIR=dev:\path-to-extracted-files</p>\r
+<p>example:&nbsp; msiexec /a WinOF_2-0_wlh_x64.msi TARGETDIR=C:\windows\Temp\WOF&nbsp;&nbsp;&nbsp; \r
+(note: TARGETDIR is case sensitive)</p>\r
+<p>The above command creates the following folder structure:<br>\r
+<a href="file:///C:/windows/Temp/WOF/PFiles/WinOF/">\r
+C:\windows\Temp\WOF\PFiles\WinOF\</a><br>\r
+&nbsp;&nbsp;&nbsp; IBcore\mthca.inf&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \r
+Mellanox InfiniHost HCA driver<br>\r
+&nbsp;&nbsp;&nbsp; IBcore\mlx4_bus.inf&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \r
+Mellanox ConnectX bus driver<br>\r
+&nbsp;&nbsp;&nbsp; IBcore\mlx4_hca.inf&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \r
+Mellanox ConnectX HCA driver (both ConnectX drivers required).<br>\r
+&nbsp;&nbsp;&nbsp; net\netipoib.inf&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \r
+IPoIB + Network Direct IB provider + WSD (Winsock Direct) provider.</p>\r
+<p>See <a href="http://unattended.sourceforge.net/installers.php">Unattended \r
+Installations</a> for further references.</p>\r
+<p><a href="#1.1_Release_Notes"><font color="#000000">&lt;Return-to-Top&gt;</font></a></p>\r
+<p>&nbsp;</p>\r
+<h3><a name="Setting_the_IPoIB_Interface_IP_Address">Setting the IPoIB Interface IP Address</a></h3>\r
+<p>The Windows command 'netsh' will assist in assigning an IP address to an \r
+IPoIB interface.<br>\r
+By default, an IPoIB interface is configured to use DHCP. The following \r
+discussion deals with setting a static IP address on an IPoIB interface.<br>\r
+If your system has two Ethernet ports, then IPoIB interfaces (HCA port 1, 2...) \r
+will be assigned to 'Local Area Connection 3' and 'Local Area Connection 4'.&nbsp; \r
+If you system has a single Ethernet port, then IPoIB interface is Local Area \r
+Connection 2'.</p>\r
+<p>For Server 2008/HPC systems, the WinOF installation follows the above \r
+discussion. In defining HPC network interfaces, the IPoIB network can be \r
+identified as the 'Application' network. In this case, a few minutes after a \r
+compute node is installed, the local network manager will rename the installed \r
+IPoIB 'Local Area Connection X' network interface to the 'Application' network.</p>\r
+<p>Display all network interface configuration information<br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; netsh interface ip show config<br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; netsh interface ip show address \r
+&quot;Local Area Connection 3&quot;</p>\r
+<p>Config a static IP address for an IPoIB interface: [Local Area Connection 3 \r
+== 1st IPoIB interface], 10.10.4.23 is the assigned IP address<br>\r
+with a netmask of 255.255.255.0, the gateway is 10.10.4.1 metric is 2.</p>\r
+<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; netsh interface ip set address \r
+&quot;Local Area Connection 3&quot; static 10.10.4.23 255.255.255.0 10.10.4.1 2</p>\r
+<p>See <a href="http://support.microsoft.com/kb/257748">netsh</a> for further \r
+reference.</p>\r
+<p><a href="#1.1_Release_Notes"><font color="#000000">&lt;Return-to-Top&gt;</font></a></p>\r
+<p>&nbsp;</p>\r
+<h2><u><a name="Uninstall">Uninstall</a></u></h2>\r
+\r
+<p>To uninstall a WinOF package from a single node</p>\r
+<ol>\r
+       <li>Programs-&gt; Windows OpenFabrics-&gt; Uninstall WinOF</li>\r
+       <li>Control Panel-&gt; Add Remove Programs-&gt; Windows OpenFabrics-&gt; Remove</li>\r
+</ol>\r
+<h3><span style="font-weight: 400; text-decoration: underline">Unattended \r
+Uninstall</span></h3>\r
+<p>From a Command Window invoke the following command; a system reboot will \r
+occur after the uninstall.</p>\r
+<blockquote>\r
+       <p>start/wait msiexec.exe&nbsp; /x {3A6A276E-A636-48E8-8624-9A0DE3F2A15E} \r
+       /quiet \r
+       /forcerestart<br>\r
+&nbsp; - or -<br>\r
+       start/wait msiexec.exe&nbsp; /x WinOF_wlh_2-0_x64.msi /quiet /forcerestart&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \r
+       # WinOF_xxxx.msi is the file used to install WinOF.</p>\r
+       <p>msiexec.exe /help for details.</p>\r
+       <p>'/log dev:path\logfilename.log'&nbsp; if you wish to later view the install \r
+       results.</p>\r
+       <p>If for some reason the Product Code {GUID} changes, the latest code can \r
+       be located via<br>Programs-&gt; Windows OpenFabrics-&gt; Uninstall WinOF&lt;right-click&gt;Properties</p>\r
+</blockquote>\r
+<p>Infrequently, the 'System Device-&gt;Infiniband Fabric' may not correctly uninstall. Make sure the Infiniband Fabric device is \r
+               completely uninstalled; use device manager for checking. The effect of a \r
+               partially uninstalled Infiniband Fabric device is IPoIB load failure \r
+               upon the next WinOF install.</p>\r
+<p><a href="#1.1_Release_Notes"><font color="#000000">&lt;Return-to-Top&gt;</font></a></p>\r
+<p>&nbsp;</p>\r
+\r
+<h2><u><a name="Trouble_Shooting">Trouble Shooting</a></u></h2>\r
+<p>Vista installs can fail to install the HCA driver due to protection failures \r
+- installing from a non-privileged Administrator window or double-clicking the .msi \r
+file.<br>\r
+Startup a privileged Administrator command window (Start-&gt;Command \r
+Prompt-&gt;Right-click-&gt;Run as Administrator) and execute: msiexec /I \r
+WinOF_xxx_yyy.msi</p>\r
+<p>To create a LOG file of your WinOF installation, execute this command: \r
+msiexec /I WinOF_xxx_yyy.msi&nbsp; /Lv %TEMP%\WOF-install.log<br>\r
+View %TEMP%\WOF-install.log</p>\r
+<p>msiexec /? for details.</p>\r
+<p>Server 2008 or Vista can also fail to install due to driver install files \r
+left over from previously failed install attempts; see %windir%\system32\DriverStore\{Temp|FileRepository}. \r
+Look for folders with the following in the folder name: mthca, mlx4_, netipoib, \r
+srp, vnic. Once you have located one of these folders you need to remove it as \r
+win2k8/Vista will use these files instead of what your attempting to install.; \r
+removing the folders is a pain.<br>\r
+Right-click the folder and select Properties-&gt;Security-&gt;Advanced, select owner \r
+tab, select Edit button, select Administrator and check the 'Replace owner on \r
+subcontainers and objects', now click 'OK', OK again, select Edit button from \r
+the securities tab, check allow 'Full Control' box and click OK, OK again. At \r
+this point you should be back to the file explorer. Now you can delete the \r
+folder!</p>\r
+<p>Setupapi.log has moved in Server 2008/Vista, see '%windir%\inf\setupapi-dev.log'. \r
+Setupapi-*.log can at times contain useful install debug info.</p>\r
+<p>Down rev firmware will result in IPoIB not installing or other anonmolus \r
+behavior. Consult the event \r
+viewer, system error records, look for 'mthca' or 'mlx4*' entries generated when the HCA \r
+driver loads. One of the mthca or mlx4 entries will display the current firmware \r
+revision.</p>\r
+<p>Firmware version information and updates \r
+               are available at\r
+<a href="http://www.mellanox.com/support/firmware_download.php">\r
+               www.mellanox.com/support/firmware_download.php</a></p><p:colorscheme\r
+ colors="#ffffff,#000000,#808080,#000000,#ffc86c,#acc5ff,#fff4b4,#c4f48a"/>\r
+\r
+<div v:shape="_x0000_s1026" style="tab-stops:.6215in">\r
+       <div class="O" style="mso-line-spacing:&quot;80 20 0&quot;;mso-margin-left-alt:145;\r
+mso-char-wrap:1;mso-kinsoku-overflow:1">\r
+               <span style="font-family:&quot;Arial Narrow&quot;;\r
+font-size:106%;color:#F2862F">\r
+               <span style="mso-special-format:bullet;\r
+position:absolute;left:-3.41%">\95</span></span><span style="font-family:&quot;Arial Narrow&quot;;\r
+font-size:19pt;color:#F2862F"><b> </b></span></div>\r
+       <blockquote>\r
+               <div class="O1" style="mso-line-spacing:&quot;80 0 0&quot;;mso-margin-left-alt:395;\r
+mso-text-indent-alt:217;mso-char-wrap:1;mso-kinsoku-overflow:1">\r
+                       <span style="font-family:&quot;Arial Narrow&quot;;font-size:94%;color:#241172">\r
+                       <span style="mso-special-format:bullet;position:absolute;left:-4.4%">\96</span></span></div>\r
+       </blockquote>\r
+       <div class="O" style="mso-line-spacing:&quot;80 20 0&quot;;mso-margin-left-alt:145;\r
+mso-char-wrap:1;mso-kinsoku-overflow:1">\r
+               <span style="font-family:&quot;Arial Narrow&quot;;\r
+font-size:106%;color:#F2862F">\r
+               <span style="mso-special-format:bullet;\r
+position:absolute;left:-3.41%">\95</span></span><b><span style="font-family: Arial Narrow; ">If \r
+               HCA FW is older than minimal FW</span><span style="font-family: Arial Narrow; color: #F2862F"> </span> </b></div>\r
+       <blockquote>\r
+               <div class="O1" style="mso-line-spacing:&quot;80 0 0&quot;;mso-margin-left-alt:395;\r
+mso-text-indent-alt:217;mso-char-wrap:1;mso-kinsoku-overflow:1">\r
+                       <span style="font-family: Arial Narrow; color: #241172"><b>Error \r
+                       reported to system event log </b></span></div>\r
+               <div class="O1" style="mso-line-spacing:&quot;80 0 0&quot;;mso-margin-left-alt:395;\r
+mso-text-indent-alt:217;mso-char-wrap:1;mso-kinsoku-overflow:1">\r
+                       <span style="font-family: Arial Narrow; color: #241172">\r
+                       <span style="mso-special-format:bullet;position:absolute;left:-4.4%">\r
+                       \96</span><b>HCA loads as memory controller to allow FW upgrade </b>\r
+                       </span></div>\r
+       </blockquote>\r
+       <div class="O" style="mso-line-spacing:&quot;80 20 0&quot;;mso-margin-left-alt:145;\r
+mso-char-wrap:1;mso-kinsoku-overflow:1">\r
+               <span style="font-family: Arial Narrow; color: #F2862F">\r
+               <span style="mso-special-format:bullet;\r
+position:absolute;left:-3.41%">\95</span></span><b><span style="font-family: Arial Narrow; ">If HCA<span style="mso-spacerun:yes">&nbsp;\r
+               </span>FW is equal or newer than optimal version</span><span style="font-family: Arial Narrow; color: #F2862F"><br>\r
+&nbsp;</span></b></div>\r
+       <div class="O1" style="mso-line-spacing:&quot;80 0 0&quot;;mso-margin-left-alt:395;\r
+mso-text-indent-alt:217;mso-char-wrap:1;mso-kinsoku-overflow:1">\r
+               <blockquote>\r
+                       <span style="font-family: Arial Narrow; color: #241172">\r
+                       <span style="mso-special-format:bullet;position:absolute;left:-4.4%">\r
+                       \96</span><b>HCA starts OK. </b></span>\r
+               </blockquote>\r
+       </div>\r
+       <div class="O" style="mso-line-spacing:&quot;80 20 0&quot;;mso-margin-left-alt:145;\r
+mso-char-wrap:1;mso-kinsoku-overflow:1">\r
+               <span style="font-family: Arial Narrow; color: #F2862F">\r
+               <span style="mso-special-format:bullet;\r
+position:absolute;left:-3.41%">\95</span></span><b><span style="font-family: Arial Narrow; ">Else</span></b></div>\r
+       <blockquote>\r
+               <div class="O1" style="mso-line-spacing:&quot;80 0 0&quot;;mso-margin-left-alt:395;\r
+mso-text-indent-alt:217;mso-char-wrap:1;mso-kinsoku-overflow:1">\r
+                       <span style="font-family: Arial Narrow; color: #241172">\r
+                       <b>HCA loads OK. </b></span></div>\r
+               <div class="O1" style="mso-line-spacing:&quot;80 0 0&quot;;mso-margin-left-alt:395;\r
+mso-text-indent-alt:217;mso-char-wrap:1;mso-kinsoku-overflow:1">\r
+                       <span style="font-family: Arial Narrow; color: #241172">\r
+                       <span style="mso-special-format:bullet;position:absolute;left:-4.4%">\r
+                       \96</span><b>Warning will be issued to system event log </b></span>\r
+               </div>\r
+       </blockquote>\r
+       <div class="O1" style="mso-line-spacing:&quot;80 0 0&quot;;mso-margin-left-alt:395;\r
+mso-text-indent-alt:217;mso-char-wrap:1;mso-kinsoku-overflow:1">\r
+               <![if ppt]>\r
+               <span style="font-family:&quot;Arial Narrow&quot;;font-size:94%;color:#241172;visibility:hidden">\r
+               <span style="mso-special-format:bullet;position:absolute;left:-4.4%">\96</span></span><![endif]><span style="font-family:&quot;Arial Narrow&quot;;font-size:17pt;color:#241172"><b>\r
+               </b></span></div>\r
+       <div class="O" style="mso-line-spacing:&quot;80 50 0&quot;;mso-margin-left-alt:145">\r
+               My computer-&gt; Manage-&gt; Event Viewer-&gt; System Events; search for \r
+               mthca, mlx4 or ipoib entries.<p><a href="#1.1_Release_Notes"><font color="#000000">&lt;Return-to-Top&gt;</font></a></p>\r
+               <h3>&nbsp;</h3>\r
+               <h3><u>Incomplete Previous Uninstall</u></h3>\r
+               <p>Should the previous uninstall silently fail, the next installation \r
+               can fail in the Driver Install phase with the following error:<br>\r
+&nbsp;&nbsp;&nbsp; DriverInstall - HCA Ret 2 Error 0<br>\r
+               <br>\r
+               At this juncture, check the Device Manager and uninstall the PCI \r
+               device from 'InfiniBand Host Channel Adapters', and make sure you uninstall the system device\r
+               'InfiniBand Fabric' if it is present.<br>\r
+               <br>\r
+               <u><b>REBOOT</b></u> and retry the WinOF installation again.<p>See \r
+               ibscan.bat and ibcleanup.bat @\r
+               <a href="http://www.openfabrics.org/downloads/WinOF/etc/">\r
+               http://www.openfabrics.org/downloads/WinOF/etc/</a>.<br>\r
+               ibscan will display WinOF files on your system.<br>\r
+               ibcleanup will attempt to remove all WinOF files from your syste. \r
+               WARNING - ibcleanup is not valid as a WinOF uninstall tool!<p><a href="#1.1_Release_Notes"><font color="#000000">&lt;Return-to-Top&gt;</font></a><p>&nbsp;</div>\r
+</div>\r
+<h3><u><a name="Correct_Installation_Validation">Correct Installation Validation</a></u></h3>\r
+<p>From the Device Manager you should find the following devices:</p>\r
+<ul>\r
+       <li>InfiniBand Host Channel Adapters -&gt; InfiniHost or Mellanox ConnectX</li>\r
+       <li>The System Devices -&gt; InfiniBand Fabric device is no longer present in \r
+       WinOF 2.0 and following releases.</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;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
+<p><a href="#1.1_Release_Notes"><font color="#000000">&lt;Return-to-Top&gt;</font></a></p>\r
+<p>&nbsp;</p>\r
+<h2><u><a name="OpenIB_Subnet_Management_as_a_Windows_Service">Subnet Management as a Windows Service</a></u></h2>\r
+<p>Limit the number of Subnet Managers on your fabric; one SM per fabric is \r
+sufficient, although redundant Subnet Managers are supported.</p>\r
+<ol>\r
+       <li>After a 'typical' WinOF install, OpenSM is installed as a <b>disabled</b> \r
+       Windows service named &quot;InfiniBand Subnet Management&quot;. To start the OpenSM \r
+       service, use My computer-&gt;Manage-&gt;Services and Applications-&gt;Services-&gt;InfiniBand Subnet Manager-&gt;Start.<br>\r
+       Set the service properties to 'auto' in order to restart upon the next \r
+       system reboot.<br>\r
+&nbsp;</li>\r
+       <li>Install OpenSM as an automatic/running Windows service:<br>\r
+       a) Request a 'Custom' install, selecting the 'OpenSM_service_enabled' feature. Once \r
+       the install has completed, check that the Infiniband Subnet Manager service is \r
+       running: My computer-&gt;Manage-&gt;Services and Applications-&gt;Services-&gt;InfiniBand Subnet \r
+       Manager.<br>\r
+&nbsp;</li>\r
+       <li>Consult the OpenSM log file @ %SystemRoot%\temp\osm.log to see what \r
+       OpenSM thinks is happening.</li>\r
+</ol>\r
+<p><a href="#1.1_Release_Notes"><font color="#000000">&lt;Return-to-Top&gt;</font></a></p>\r
+<p>&nbsp;</p>\r
+<h2><u><a name="Local_Network_Adapter_Ordering">Local Network Adapter Ordering</a></u></h2>\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 \r
+of 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><br>\r
+<font color="#000000"><a href="#1.1_Release_Notes"><font color="#000000">\r
+&lt;Return-to-Top&gt;</font></a></font></p>\r
+<p>&nbsp;</p>\r
+<h2><u><a name="Which_WinOF_release_is_installed">Which WinOF release is installed</a></u><a name="Which_WinOF_release_is_installed">?</a></h2>\r
+<ol>\r
+       <li>Add/Remove Programs entry identifies the WinOF release version.</li>\r
+       <li>Start-&gt;Programs-&gt;Windows OpenFabrics-&gt;Release Notes&nbsp; \r
+(2nd Line)</li>\r
+       <li>Driver confirmation:<br>&nbsp;&nbsp;&nbsp; Query My Computer-&gt; Manage-&gt; Device Manager-&gt; Network \r
+Adapters-&gt; OpenFabrics 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 notes.</li>\r
+       <li>Hold the mouse point over \Program Files(x86)\WinOF\ib_read_bw.exe to display \r
+the file version; [WinOF-Major.Minor.not-used.svn revision number].</li>\r
+</ol>\r
+<ul>\r
+       <li>WinOF 1.0 is based on openib-windows <b><u>svn revision 614</u></b> @\r
+       <a href="http://openib.tc.cornell.edu/downloads/binaries/">http://openib.tc.cornell.edu/downloads/binaries/</a> .<br>\r
+&nbsp;</li>\r
+       <li>WinOF 1.0.1 is based on openib-windows <b><u>svn revision 864</u></b>.<br>\r
+&nbsp;</li>\r
+       <li>WinOF 1.1 is based on openib-windows <b><u>\r
+       (svn revision 1177 branches\WOF1-1).<br>\r
+&nbsp;</u></b></li>\r
+       <li>WinOF 2.0 is based on<b> (<u>svn.1748 branches\WOF2-0</u>)</b></li>\r
+</ul>\r
+<p><a href="#1.1_Release_Notes"><font color="#000000">&lt;Return-to-Top&gt;</font></a></p>\r
+<p>&nbsp;</p>\r
+<h2><u><a name="QLogic_VNIC_Configuration">QLogic VNIC Configuration</a></u></h2>\r
+<p><font face="Arial">\r
+<span style="font-size: 12pt; font-family: Times New Roman">The QLogic VNIC \r
+(Virtual Network Interface Card) driver in conjunction with the QLogic Ethernet \r
+Virtual I/O Controller (EVIC) provides virtual Ethernet interfaces and transport \r
+for Ethernet packets over Infiniband.<br>\r
+<br>\r
+Users can modify NIC parameters through User Interface icon in Network \r
+Connections:<br>\r
+( Properties-&gt;&quot;Configure...&quot; button -&gt; &quot;Advanced&quot; Tab).</span></p>\r
+<p class="MsoPlainText" style="MARGIN: 0in 0in 0pt">\r
+<span style="font-size: 12pt; font-family: Times New Roman">Parameters \r
+available:<br>\r
+<br>\r
+Vlan Id (802.1Q)&nbsp;</span></p>\r
+<p class="MsoPlainText" style="MARGIN: 0in 0in 0pt">\r
+<span style="font-size: 12pt; font-family: Times New Roman">&nbsp; values from 0 to \r
+4094 ( default&nbsp;<span class="899314318-23042008">0, </span>disabled )<br>\r
+&nbsp; This specifies if VLAN ID-marked packet transmission is enabled and, if so, \r
+specifies the ID.<br>\r
+<br>\r
+Priority (802.1P)</span></p>\r
+<p class="MsoPlainText" style="MARGIN: 0in 0in 0pt">\r
+<span style="font-size: 12pt; font-family: Times New Roman">&nbsp; values from 0 to 7 \r
+( default 0, feature disabled)<br>\r
+&nbsp; This specifies if priority-marked packet transmission is enabled.<br>\r
+<br>\r
+Payload MTU size&nbsp;</span></p>\r
+<p class="MsoPlainText" style="MARGIN: 0in 0in 0pt">\r
+<span style="font-size: 12pt; font-family: Times New Roman">&nbsp; values from 1500 \r
+to 9500 (default 1500)<br>\r
+&nbsp; This specifies the maximum transfer unit size in 100 bytes increments.<br>\r
+<br>\r
+Recv ChkSum offload&nbsp;</span></p>\r
+<p class="MsoPlainText" style="MARGIN: 0in 0in 0pt">\r
+<span style="font-size: 12pt; font-family: Times New Roman">&nbsp; (default enabled)<br>\r
+&nbsp; This specifies if IP protocols checksum calculations for receive is offloaded.<br>\r
+<br>\r
+Send ChkSum offload</span></p>\r
+<p class="MsoPlainText" style="MARGIN: 0in 0in 0pt">\r
+<span style="font-size: 12pt; font-family: Times New Roman">&nbsp; (default enabled)<br>\r
+&nbsp; This specifies if IP protocols checksum calculations for send is offloaded.<br>\r
+&nbsp;</span></p>\r
+<p class="MsoPlainText" style="MARGIN: 0in 0in 0pt">\r
+<span style="font-size: 12pt; font-family: Times New Roman">Secondary Path&nbsp;</span></p>\r
+<p class="MsoPlainText" style="MARGIN: 0in 0in 0pt">\r
+<span style="font-size: 12pt; font-family: Times New Roman">&nbsp;&nbsp; (default \r
+disabled)<br>\r
+&nbsp;&nbsp; Enabled - If more than one IB path to IOC exist then secondary IB instance of \r
+virtual port will be created and configured with the same parameters as primary \r
+one. Failover from Primary to Secondary IB path is transparent for user \r
+application sending data through associated NIC.<br>\r
+<br>\r
+&nbsp;&nbsp; Disabled \96 only one path at a time is allowed. If more than one path to IOC \r
+exists then failed path will be destroyed and next available path will be used \r
+for new connection. With this scenario there is a possibility new interface \r
+instance will be assigned different MAC address when other hosts compete for \r
+EVIC resources.<br>\r
+&nbsp;</span></p>\r
+<p class="MsoPlainText" style="MARGIN: 0in 0in 0pt">\r
+<font face="Times New Roman" size="3">LBFO Bundle Id<br>\r
+&nbsp;&nbsp; (default disabled) Enabling support for OS provided Load Balancing and Fail \r
+Over functionality on adapter level.<br>\r
+&nbsp;&nbsp; If enabled group ID can be selected from predefined names.</font></p>\r
+<p class="MsoPlainText" style="MARGIN: 0in 0in 0pt">\r
+<span style="font-size: 12pt; font-family: Times New Roman">&nbsp;</span></p>\r
+<p class="MsoPlainText" style="MARGIN: 0in 0in 0pt">\r
+<span style="font-size: 12pt; font-family: Times New Roman">Heartbeat interval</span></p>\r
+<p class="MsoPlainText" style="MARGIN: 0in 0in 0pt">\r
+<span style="font-size: 12pt; font-family: Times New Roman">&nbsp;&nbsp; configures \r
+interval for VNIC protocol heartbeat messages in milliseconds.<br>\r
+&nbsp;&nbsp; 0 \96 heartbeats disabled.<br>\r
+<br>\r
+Note:<br>\r
+&nbsp;&nbsp; To take advantage of the features supported by these options, ensure that the \r
+Ethernet gateway is also configured appropriately.&nbsp; For example, if the Payload \r
+MTU for a VNIC interface is set to&nbsp;<span class="899314318-23042008">4</span>000, \r
+the MTU at the EVIC module must also be set at least&nbsp;<span class="899314318-23042008">4</span>000 \r
+for the setting to take effect.</span></p>\r
+</font>\r
+<p><a href="#1.1_Release_Notes"><font color="#000000">&lt;Return-to-Top&gt;</font></a></p>\r
+<p>&nbsp;</p>\r
+<h2><u><a name="DAT_&amp;_uDAPL_Configuration">DAT &amp; uDAPL Configuration</a></u></h2>\r
+<p align="left">In order for DAT/DAPL programs to execute correctly, the 'dat.dll' \r
+file must be present in the current directory,\r
+%SystemRoot% or in the library search path.</p>\r
+<p align="left">WinOF installation places the dat.dll and dapl.dll \r
+files in the '%SystemRoot%' \r
+folder (a.k.a. \Windows).</p>\r
+<p align="left">The DAT/DAPL configuration file by convention is defined as \r
+'%SystemDrive%\DAT\dat.conf'. If the file '%SystemDrive%\DAT\dat.conf' does not exist, \r
+a template configuration file will be installed as '%SystemDrive%\DAT\dat.conf'.<br>\r
+In order to preserve existing installations, the dat.conf file is not \r
+automatically installed if '%SystemDrive%\DAT\dat.conf' exists.<br>\r
+A sample dat.conf file is always installed as '\Program Files (x86)\WinOF\dat.conf \r
+'.</p>\r
+<p align="left">The default DAT configuration file specification can be overridden 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 %WINDIR%\dapl.dll'.</p>\r
+<p align="left">Should you choose to relocate the DAPL library file to a folder \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 (x86)\\WinOF\\dapl.dll&quot;).</p>\r
+<h4 align="left"><span style="font-weight: 400">DAT/DAPL version 2.0 runtime \r
+libraries are identified as dat2.dll and dapl2.dll, both in %SystemRoot%; see \r
+manual for further details.<br>\r
+&nbsp;</span></h4>\r
+<p align="left"><a href="#1.1_Release_Notes"><font color="#000000">\r
+&lt;Return-to-Top&gt;</font></a></p>\r
+<p align="left">&nbsp;</p>\r
+<h2 align="left"><u><a name="SRP_-_SCSI_RDMA_Protocol_Driver_Installation">SRP - SCSI RDMA Protocol Driver Installation</a></u></h2>\r
+<p align="left">The WinOF stack does not install the SRP driver by default.&nbsp; \r
+If SRP is\r
+selected in the custom installation window, it will only be copied during WinOF\r
+installation. To complete the SRP driver installation, an SRP target must be\r
+detected; a Subnet Manager must be running somewhere in the InfiniBand subnet.<br>\r
+<br>\r
+Upon the detection of an SRP target, the &quot;New Hardware Found&quot; Wizard pops up.<br>\r
+- Select Install Automatically and click Next. This installs the I/O unit \r
+device.<br>\r
+<br>\r
+Once completed, the &quot;New Hardware Found&quot; Wizard pops up again.<br>\r
+- Select Install Automatically and click Next. This installs the SRP driver.<br>\r
+<br>\r
+<a href="#1.1_Release_Notes"><font color="#000000">&lt;Return-to-Top&gt;</font></a></p>\r
+<p align="left">&nbsp;</p>\r
+\r
+<h2><u><a name="Known_Issues">Known Issues</a></u></h2>\r
+\r
+<ul>\r
+       <li>\r
+       <p class=MsoPlainText><font face="Times New Roman" size="3">In a multi HCA \r
+       (Host Channel Adapter) system, disabling HCA devices works correctly EXCEPT \r
+       for disabling the first HCA while other HCAs are operational. Once the first \r
+       HCA is disabled, existing HCAs and user-mode applications lose the \r
+       connection to the kernel mode IB stack and will fail when attempting access \r
+       to the IB stack or hardware.<br>\r
+       Problem will be addressed in the next WinOF 2.0 release.<br>\r
+&nbsp;</font></p></li>\r
+       <li>\r
+       <p class=MsoPlainText><font face="Times New Roman" size="3">IPoIB partition \r
+       multicast \r
+       support requires IGMP (Internet Gateway Management Protocol) v2 Windows default is v3.<br>&nbsp;</font></p>\r
+       <div><span class="395594910-04112008"><font face="Times New Roman">Partition \r
+               multicast on ipoib will only work if the machine is configured to use \r
+               IGMP V2 (and not V3 which is the default).</font></span></div>\r
+       <div><span class="395594910-04112008"><font face="Times New Roman">To \r
+               configure your machine to use IGMP v2 please do the following:</font></span></div>\r
+       <div><span class="395594910-04112008"></span><font face="Times New Roman">&nbsp;</font></div>\r
+       <div><span class="395594910-04112008"><font face="Times New Roman">Server \r
+               2003 or XP:</font></span></div>\r
+       <div><span class="395594910-04112008">\r
+               <p class="MsoNormal"><font size="3">netsh routing ip igmp install</font></span></div>\r
+       <div><span class="395594910-04112008"><font face="Arial" size="2">\r
+               <p class="MsoNormal"><font size="3">netsh routing ip igmp install add \r
+               interface &quot;interface name of IPoIB adapter&quot;&nbsp; igmpprototype=igmprtrv2</font></p>\r
+               </font><font face="Arial" color="#0000ff" size="2">\r
+               <font face="Arial" size="2">\r
+               <p class="MsoNormal"></font><font size="3"><font face="Arial" size="2">If&nbsp;IGMP&nbsp;V3 is still used,&nbsp;please follow the instructions on</font><span style="color: navy"><font face="Arial" color="#0000ff" size="2">\r
+               <font color="#0000ff">(</font><a title="blocked::http://support.microsoft.com/default.aspx/kb/815752" style="color: blue; text-decoration: underline" href="http://support.microsoft.com/default.aspx/kb/815752">http://support.microsoft.com/default.aspx/kb/815752</a></font></font><font face="Arial" color="#0000ff" size="2"><font size="3" color="#0000ff">)</font></font></span></p>\r
+               <font face="Arial" color="#0000ff" size="2">\r
+               <p class="MsoNormal">&nbsp;</p></font></font>\r
+               <font face="Arial" size="2">\r
+               <p class="MsoNormal"><font size="3">Server 2008 </font></font>or<font size="3"> \r
+               HPC or Vista:</font></span></div>\r
+       <div><span class="395594910-04112008">\r
+               <font face="Times New Roman" color="#000080">If the netsh command is not \r
+               available, then you will need to install via the command 'servermanagercmd.exe \r
+               -install NPAS-RRAS-Services'.</font></span></div>\r
+       <div><span class="395594910-04112008"><font face="Tahoma" color="#0000ff">\r
+               <div>\r
+                       <p class="MsoNormal"><span style="color: navy"><font size="3">netsh \r
+                       routing ip igmp </font></span><font color="navy" size="3">\r
+                       <span style="color: navy">install</span></font></div>\r
+               <div><font face="Arial" color="#0000ff" size="2">\r
+                       <p class="MsoNormal"><span style="color: navy"><font size="3">netsh \r
+                       routing ip igmp install </font></span><font color="navy" size="3">\r
+                       <span style="color: navy">add interface &quot;interface name of IPoIB \r
+                       adapter&quot;&nbsp; igmpprototype=igmprtrv2</span></font></p>\r
+                       <p class="MsoNormal">&nbsp;</p></font></font>\r
+                       <font face="Tahoma" size="2">\r
+                       <p class="MsoNormal">F</font><font size="3">uture WinOF releases</font><font size="2" face="Tahoma"> \r
+                       will support IGMP V3.</font></div></span></div>\r
+       <p class=MsoPlainText>&nbsp;</p></li>\r
+       <li>\r
+       <p class=MsoPlainText><font face="Times New Roman" size="3">Sometimes an \r
+       errant &quot;Welcome to the Found New Hardware Wizard&quot; window pops up during \r
+       InfiniBand device installation on XP or Server 2003.<br>Just 'cancel' the FNHW popup window and proceed with installation.<br>An artifact of the 'Cancel' operation may cause a taskbar Information bubble \r
+       to appear which incorrectly claims problems with the Infiniband device \r
+       installation; Check IB device status via the Device Manager.</font></p></li>\r
+</ul>\r
+\r
+</div>\r
+<div class=Section1>\r
+\r
+<ul>\r
+       <li>\r
+       <p class=MsoPlainText><font size="3" face="Times New Roman">\r
+       <span style="background-color: #FFFFFF">The Microsoft hotfix </span></font>\r
+       <font face="Arial" color="navy" size="2">\r
+       <span style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">\r
+       <a href="http://support.microsoft.com/kb/915858">\r
+       http://support.microsoft.com/kb/915858</a> </span></font>\r
+       <font size="3" face="Times New Roman">\r
+       <span style="background-color: #FFFFFF">is necessary for users of SRP in any \r
+       of the Windows Server 2003 platforms.&nbsp; The hotfix is described in Article ID \r
+       915858 and fixes problems in the eventlog where specific event ids (56, 118, \r
+       129) are not found in the latest IoLogMsg.dll file.&nbsp; Without the correct \r
+       information, there is no supplied way to decipher the event log data.<br>\r
+       The SRP hotfix need not be installed by non-SRP users; however, if the \r
+       hotfix is installed in a system without SRP, it will not have any negative \r
+       effects.<br>\r
+&nbsp;</span></font></p></li>\r
+       <li>\r
+       <p class=MsoPlainText><span style="background-color: #FFFFFF">\r
+       <font face="Times New Roman" size="3">x64 Windows platforms do not exhibit \r
+       the following SRP behavior.<br>\r
+       SRP when run on a Windows 32-bit platform (x86) will exhibit SRP read \r
+       transfer hangs when the size of the SRP read&nbsp; is greater-than (&gt;) 4096 \r
+       bytes.</font></span></p>\r
+       <div dir="ltr" align="left">\r
+               <span style="background-color: #FFFFFF">\r
+               <font face="Times New Roman" size="3">Setting the registry entry </font></span>\r
+               <font face="Arial" size="2"><strong>HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ibsrp\Parameters<span class="795394519-15052008">\ModeFlags</span></strong></font></div>\r
+       <p class=MsoPlainText><span style="background-color: #FFFFFF">\r
+       <font face="Times New Roman" size="3">&nbsp;to 1 will \r
+       enable &gt; 4KB transfers to proceed without hanging.</font></span><font size="3" face="Times New Roman"><span style="background-color: #FFFFFF"><br>\r
+&nbsp;</span></font></p></li>\r
+       <li>\r
+       <p class=MsoPlainText><font face="Times New Roman" size="3">Winsock Direct \r
+       hotfix xxxxxxx for Windows Server 2003 is a good patch to apply if you are \r
+       using WSD/IPoIB.</font><br>&nbsp;<font face="Times New Roman" size="3"><br>&nbsp;</font></p></li>\r
+</ul>\r
+<p class=MsoPlainText><a href="#1.1_Release_Notes"><font color="#000000">\r
+&lt;Return-to-Top&gt;</font></a><br>\r
+&nbsp;</p>\r
+<p class=MsoPlainText>&nbsp;</p>\r
+\r
+</div>\r
+\r
+</body>\r
+\r
+</html>\r
diff --git a/WinOF/WIX/SDK_Samples/DDK/README.txt b/WinOF/WIX/SDK_Samples/DDK/README.txt
new file mode 100644 (file)
index 0000000..d3f55fe
--- /dev/null
@@ -0,0 +1,99 @@
+\r
+DDK (Driver Development Kit) Build Environment Example [12-06-07]\r
+-----------------------------------------------------------------\r
+\r
+Install the Windows Server 2003 (SP1) DDK see\r
+http://www.microsoft.com/whdc/devtools/ddk/default.mspx .\r
+\r
+Why use the DDK? Windows Server 2003 DDK (SP1) is what's used to build the WinOF\r
+distribution.\r
+Installing the DDK first requires burning a CD of the downloaded DDK - sigh...\r
+\r
+Due to the problematic nature of spaces in path names, Windows Server 2003 DDK\r
+does not allow spaces in pathnames; this is why IBSDK is not installed under\r
+WinOF.\r
+\r
+\r
+Building CM test example\r
+------------------------\r
+\r
+Start a 'Free/Release' type DDK command prompt for you respective architecture [x86,amd64,ia64].\r
+\r
+cd to C:\IBAL\Sampes\DDK\r
+\r
+Set the 'OPENIB_REV' env variable to the svn version number.\r
+Hold the mouse-point over the file 'C:\Program Files (x86)\WinOF\opensm.exe'.\r
+The last field of the 'File Version' field is the svn revision number.\r
+\r
+set OPENIB_REV=917\r
+\r
+If building an 32-bit cmtest version on an x64 platform, edit Sources file by adding '32' to\r
+ibal.lib and complib.lib, resulting in 'ibal32.lib' and 'complib32.lib'.\r
+Note - executable will be appear as 'objfre_wnet_x86\i386\cmtest.exe'.\r
+\r
+build -wg\r
+\r
+The executable will be created in a processor specific directory:\r
+\r
+  x64 (Release/Free) example:\r
+      C:\IBAL\Sampes\DDK\objfre_wnet_amd64\amd64\cmtest.exe\r
+\r
+  x64 (Checked/Debug)) example:\r
+      C:\IBAL\Sampes\DDK\objchk_wnet_amd64\amd64\cmtest.exe\r
+\r
+  x86 (Release/Free) example:\r
+      C:\IBAL\Sampes\DDK\objfre_wnet_x86\i386\cmtest.exe\r
+\r
+Executing cmtest.exe\r
+--------------------\r
+\r
+cmtest.exe passes messages between the server and client over a reliable IB\r
+queue-pair connection (RC).\r
+Connection end-points (hosts) are identified by IB port LID (hex integer, as\r
+displayed by the vstat command).\r
+\r
+Note: <spaces> are not allowed between command line switch and it's argument.\r
+\r
+Server side:    cmtest -s -l0xlll -r0xrrr -m1024 -n100\r
+\r
+Client side:   cmtest.exe -l0xlll -r0xrrr -m1024 -n100\r
+\r
+where:\r
+  lll == local port lid as displayed by vstat command.\r
+  rrr == Remote port lid as displayed by vstat command;\r
+           lll == rrr for local loopback operation.\r
+  -m  == bytes per message\r
+  -n  == number of messages to send.\r
+  -c  == number of connections (default is -c1)\r
+  cmtest -h reveals all...\r
+\r
+\r
+Example cmtest invocation\r
+-------------------------\r
+\r
+cmdWin> vstat\r
+\r
+        hca_idx=0\r
+        uplink={BUS=UNRECOGNIZED (33)}\r
+        vendor_id=0x02c9\r
+        vendor_part_id=0x6278\r
+        hw_ver=0xa0\r
+        fw_ver=4.08.0200\r
+        PSID=_00A0000001\r
+        node_guid=0002:c902:0020:1d74\r
+        num_phys_ports=2\r
+                port=1\r
+                port_state=PORT_ACTIVE (4)     <==== Must be active!\r
+                link_speed=2.5Gbps (1)\r
+                link_width=4x (2)\r
+                rate=10\r
+                sm_lid=0x0001\r
+                port_lid=0x0020                        <==== -l0x20\r
+                port_lmc=0x0\r
+                max_mtu=2048 (4)\r
+\r
+\r
+Separate processes for server & client (different cmd windows).\r
+\r
+server:    cmtest -s -l0x20 -r0x20 -m8192 -n400\r
+client:    cmtest    -l0x20 -r0x20 -m8192 -n400\r
diff --git a/WinOF/WIX/SDK_Samples/DDK/SOURCES b/WinOF/WIX/SDK_Samples/DDK/SOURCES
new file mode 100644 (file)
index 0000000..99254f9
--- /dev/null
@@ -0,0 +1,21 @@
+TARGETNAME=cmtest\r
+TARGETPATH=obj$(BUILD_ALT_DIR)\r
+TARGETTYPE=PROGRAM\r
+UMTYPE=console\r
+USE_CRTDLL=1\r
+_LIBS=..\..\Lib\r
+\r
+SOURCES=cmtest.c cmtest.rc\r
+\r
+INCLUDES=..\..\Inc;\r
+\r
+TARGETLIBS= \\r
+!if $(FREEBUILD)\r
+                       $(_LIBS)\complib.lib \\r
+                       $(_LIBS)\ibal.lib\r
+!else\r
+                       $(_LIBS)\complibd.lib \\r
+                       $(_LIBS)\ibald.lib\r
+!endif\r
+\r
+MSC_WARNING_LEVEL= /W3\r
diff --git a/WinOF/WIX/SDK_Samples/DDK/cmtest.rc b/WinOF/WIX/SDK_Samples/DDK/cmtest.rc
new file mode 100644 (file)
index 0000000..3c02ca9
--- /dev/null
@@ -0,0 +1,48 @@
+/*\r
+ * Copyright (c) 2007 Intel Corporation.  All rights reserved.\r
+ *\r
+ * This software is available to you under the OpenIB.org BSD license\r
+ * below:\r
+ *\r
+ *     Redistribution and use in source and binary forms, with or\r
+ *     without modification, are permitted provided that the following\r
+ *     conditions are met:\r
+ *\r
+ *      - Redistributions of source code must retain the above\r
+ *        copyright notice, this list of conditions and the following\r
+ *        disclaimer.\r
+ *\r
+ *      - Redistributions in binary form must reproduce the above\r
+ *        copyright notice, this list of conditions and the following\r
+ *        disclaimer in the documentation and/or other materials\r
+ *        provided with the distribution.\r
+ *\r
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\r
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS\r
+ * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN\r
+ * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\r
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\r
+ * SOFTWARE.\r
+ *\r
+ * $Id$\r
+ */\r
+\r
+\r
+#include <oib_ver.h>\r
+\r
+#define VER_FILETYPE                   VFT_DLL\r
+#define VER_FILESUBTYPE                        VFT2_UNKNOWN\r
+\r
+#if DBG\r
+#define VER_FILEDESCRIPTION_STR                "Connection Manager Test (Debug)"\r
+#define VER_INTERNALNAME_STR           "cmtest.exe"\r
+#define VER_ORIGINALFILENAME_STR       "cmtest.exe"\r
+#else\r
+#define VER_FILEDESCRIPTION_STR                "Connection Manager Test (Release)"\r
+#define VER_INTERNALNAME_STR           "cmtest.exe"\r
+#define VER_ORIGINALFILENAME_STR       "cmtest.exe"\r
+#endif\r
+\r
+#include <common.ver>\r
diff --git a/WinOF/WIX/SDK_Samples/DDK/makefile b/WinOF/WIX/SDK_Samples/DDK/makefile
new file mode 100644 (file)
index 0000000..f86adf8
--- /dev/null
@@ -0,0 +1,7 @@
+#\r
+# DO NOT EDIT THIS FILE!!!  Edit .\sources. if you want to add a new source\r
+# file to this component.  This file merely indirects to the real make file\r
+# that is shared by all the driver components of the OpenIB Windows project.\r
+#\r
+\r
+!INCLUDE C:\IBSDK\Inc\openib.def\r
diff --git a/WinOF/WIX/SDK_Samples/VS/Makefile.x64 b/WinOF/WIX/SDK_Samples/VS/Makefile.x64
new file mode 100644 (file)
index 0000000..0bc70cc
--- /dev/null
@@ -0,0 +1,97 @@
+#\r
+#*********************************************************************\r
+# \r
+# NMAKE Options (passed as macro) \r
+#\r
+# Select a Visual Studio 2005 command window from the start menu\r
+# vcvarsall X64         - sets X64 processor compilation env, X86 | IA64\r
+#\r
+#*********************************************************************/\r
+\r
+\r
+#*********************************************************************\r
+# \r
+# Dot Directives\r
+#\r
+#*********************************************************************/\r
+\r
+.SUFFIXES :            # clear the .SUFFIXES list\r
+.SUFFIXES : .c                 # initialize .SUFFIXES list\r
+\r
+\r
+#*********************************************************************\r
+# \r
+# Macros\r
+#\r
+#*********************************************************************/\r
+\r
+SRC=cmtest\r
+\r
+LIB_PATH=C:\IBSDK\Lib\r
+INC_PATH=C:\IBSDK\Inc\r
+\r
+IB_LIBS=ibal.lib complib.lib\r
+\r
+DEFS= /D_WIN64 /D_X64_ /D_AMD64_\r
+\r
+ARCH=x64\r
+\r
+OBJS = $(SRC).obj\r
+EXEC = $(SRC).exe\r
+\r
+#\r
+# Compiler \r
+#\r
+\r
+CC = cl\r
+\r
+INC_FLAGS = /I $(INC_PATH)\r
+\r
+UNUSED_CL=/Zp1 /Od\r
+UNUSED_LINKER= /DEBUG /incremental:no\r
+\r
+CC_FLAGS= /nologo /Gy /W3 /Gm- \\r
+       /GR- /GF  /O2 /Oi /Oy- /D_CRT_SECURE_NO_WARNINGS \\r
+       $(DEFS) $(INC_FLAGS)\r
+\r
+#\r
+# Linker\r
+#\r
+\r
+LINK = link\r
+\r
+LIBS =         ws2_32.lib advapi32.lib User32.lib bufferoverflowU.lib\r
+\r
+LINK_FLAGS = /nologo /subsystem:console /machine:$(ARCH) $(LIBS) \\r
+               /libpath:$(LIB_PATH) $(IB_LIBS)\r
+\r
+#\r
+# System Utilities\r
+#\r
+\r
+RM = del /Q\r
+\r
+\r
+#*********************************************************************\r
+# Inference Rules\r
+#\r
+#*********************************************************************/\r
+\r
+.c.obj:\r
+       $(CC) $(CC_FLAGS) /Fo$@ /c $< \r
+\r
+\r
+#*********************************************************************\r
+#\r
+# Description Blocks\r
+#\r
+#*********************************************************************/\r
+\r
+all : $(EXEC)\r
+\r
+\r
+$(EXEC) : $(OBJS) $0\r
+       $(LINK) $(LINK_FLAGS) /out:$(EXEC) $(OBJS)\r
+\r
+clean: \r
+       -$(RM) *.exe *.pdb *.obj\r
diff --git a/WinOF/WIX/SDK_Samples/VS/Makefile.x86 b/WinOF/WIX/SDK_Samples/VS/Makefile.x86
new file mode 100644 (file)
index 0000000..6407076
--- /dev/null
@@ -0,0 +1,97 @@
+#\r
+#*********************************************************************\r
+# \r
+# NMAKE Options (passed as macro) \r
+#\r
+# Select a Visual Studio command window from the start menu\r
+# vcvarsall X86         - sets X86 processor compilation env, X64 | IA64\r
+#\r
+#*********************************************************************/\r
+\r
+\r
+#*********************************************************************\r
+# \r
+# Dot Directives\r
+#\r
+#*********************************************************************/\r
+\r
+.SUFFIXES :            # clear the .SUFFIXES list\r
+.SUFFIXES : .c                 # initialize .SUFFIXES list\r
+\r
+\r
+#*********************************************************************\r
+# \r
+# Macros\r
+#\r
+#*********************************************************************/\r
+\r
+SRC=cmtest\r
+\r
+LIB_PATH=C:\IBSDK\Lib\r
+INC_PATH=C:\IBSDK\Inc\r
+\r
+IB_LIBS=ibal.lib complib.lib\r
+\r
+DEFS= /D_WIN32 \r
+\r
+ARCH=x86\r
+\r
+OBJS = $(SRC).obj\r
+EXEC = $(SRC).exe\r
+\r
+#\r
+# Compiler \r
+#\r
+\r
+CC = cl\r
+\r
+INC_FLAGS = /I $(INC_PATH)\r
+\r
+UNUSED_CL=/Zp1 /Od\r
+UNUSED_LINKER= /DEBUG /incremental:no\r
+\r
+CC_FLAGS= /nologo /Gy /W3 /Gm- \\r
+       /GR- /GF  /O2 /Oi /Oy- /D_CRT_SECURE_NO_WARNINGS \\r
+       $(DEFS) $(INC_FLAGS)\r
+\r
+#\r
+# Linker\r
+#\r
+\r
+LINK = link\r
+\r
+LIBS =         ws2_32.lib advapi32.lib User32.lib bufferoverflowU.lib\r
+\r
+LINK_FLAGS = /nologo /subsystem:console /machine:$(ARCH) $(LIBS) \\r
+               /libpath:$(LIB_PATH) $(IB_LIBS)\r
+\r
+#\r
+# System Utilities\r
+#\r
+\r
+RM = del /Q\r
+\r
+\r
+#*********************************************************************\r
+# Inference Rules\r
+#\r
+#*********************************************************************/\r
+\r
+.c.obj:\r
+       $(CC) $(CC_FLAGS) /Fo$@ /c $< \r
+\r
+\r
+#*********************************************************************\r
+#\r
+# Description Blocks\r
+#\r
+#*********************************************************************/\r
+\r
+all : $(EXEC)\r
+\r
+\r
+$(EXEC) : $(OBJS) $0\r
+       $(LINK) $(LINK_FLAGS) /out:$(EXEC) $(OBJS)\r
+\r
+clean: \r
+       -$(RM) *.exe *.pdb *.obj\r
diff --git a/WinOF/WIX/SDK_Samples/VS/README.txt b/WinOF/WIX/SDK_Samples/VS/README.txt
new file mode 100644 (file)
index 0000000..99d4173
--- /dev/null
@@ -0,0 +1,111 @@
+\r
+Visual Studio 8/5.0 (C++) Build Environment [12-06-07]\r
+-----------------------------------------------------------------\r
+\r
+Install Microsoft Visual Studio 8/5.0 (C++ env)\r
+\r
+\r
+**** WARNING - win32 application building ****\r
+\r
+The Visual Studio default calling convention is '__cdecl' (/Gd).\r
+The 32-bit versions of ibal32.lib & complib32.lib are built using '__stdcall'\r
+as the default calling convention (AL_API & CL_API).\r
+Make _sure_ 'all' user-defined ibal and complib callback routines match the\r
+callback function declaration [AL_API or CL_API calling conventions].\r
+The VS compiler will note a C-style cast is required if the calling conventions\r
+do not match.\r
+The other option is to force __stdcall (/Gz) as the 'default' calling\r
+convention for your 'win32' InfiniBand application.\r
+\r
+\r
+Building CM test example\r
+------------------------\r
+\r
+\r
+cd to C:\IBAL\Samples\VS\r
+\r
+\r
+Makefile Solution\r
+-----------------\r
+\r
+Assuming Visual Studio is installed, select a Visual Studio 2005 command\r
+window from the start menu.\r
+\r
+vcvarsall X64   - sets X64 processor compilation env, X86 | IA64\r
+\r
+nmake -f Makefile.x64\r
+\r
+If building a win32 application on a 64-bit platform then link with\r
+lbal32[d].lib & complib32[d].lib.\r
+\r
+\r
+\r
+Visual Studio Solution\r
+----------------------\r
+\r
+Double-click cmtest.c\r
+\r
+Create a New Solution 'Project from Existing Code', using cmtest.c & cmtest.rc\r
+Select a C++ console application project.\r
+\r
+Salient Solution points:\r
+  compile as a C program\r
+  set additional Include path as C:\IBSDK\Inc\r
+  set additional Resource Include path as C:\IBSDK\Inc\r
+  Set additional Library path as C:\IBSDK\Lib .\r
+  Link with additional libraries ibal.lib & complib.lib .\r
+  If building a win32 application on a 64-bit platform then link with\r
+  lbal32[d].lib & complib32[d].lib\r
+  \r
+\r
+Executing cmtest.exe\r
+--------------------\r
+\r
+cmtest.exe passes messages between the server and client over a reliable\r
+IB queue-pair connection (RC).\r
+Connection end-points (hosts) are identified by IB port LID (hex integer,\r
+as displayed by the vstat command).\r
+\r
+Note: <spaces> are not allowed between command line switch and it's argument.\r
+\r
+Server side:    cmtest -s -l0xlll -r0xrrr -m1024 -n100\r
+\r
+Client side:   cmtest.exe -l0xlll -r0xrrr -m1024 -n100\r
+\r
+where:\r
+  lll == local port lid as displayed by vstat command.\r
+  rrr == Remote port lid as displayed by vstat; lll == rrr for local loopback\r
+         operation.\r
+  -m  == bytes per message\r
+  -n  == number of messages to send.\r
+  -c  == number of connections (default is -c1)\r
+  cmtest -h reveals all...\r
+\r
+Example cmtest invocation: local loopback test\r
+\r
+cmdWin> vstat\r
+\r
+        hca_idx=0\r
+        uplink={BUS=UNRECOGNIZED (33)}\r
+        vendor_id=0x02c9\r
+        vendor_part_id=0x6278\r
+        hw_ver=0xa0\r
+        fw_ver=4.08.0200\r
+        PSID=_00A0000001\r
+        node_guid=0002:c902:0020:1d74\r
+        num_phys_ports=2\r
+                port=1\r
+                port_state=PORT_ACTIVE (4)     <==== Must be active!\r
+                link_speed=2.5Gbps (1)\r
+                link_width=4x (2)\r
+                rate=10\r
+                sm_lid=0x0001\r
+                port_lid=0x0020                        <=== -l0x20\r
+                port_lmc=0x0\r
+                max_mtu=2048 (4)\r
+\r
+\r
+Separate processes for server & client (different cmd windows).\r
+\r
+server:    cmtest -s -l0x20 -r0x20 -m8192 -n400\r
+client:    cmtest    -l0x20 -r0x20 -m8192 -n400\r
diff --git a/WinOF/WIX/SDK_Samples/VS/cmtest.rc b/WinOF/WIX/SDK_Samples/VS/cmtest.rc
new file mode 100644 (file)
index 0000000..b0a596b
--- /dev/null
@@ -0,0 +1,55 @@
+/*\r
+ * Copyright (c) 2007 Intel Corporation.  All rights reserved.\r
+ *\r
+ * This software is available to you under the OpenIB.org BSD license\r
+ * below:\r
+ *\r
+ *     Redistribution and use in source and binary forms, with or\r
+ *     without modification, are permitted provided that the following\r
+ *     conditions are met:\r
+ *\r
+ *      - Redistributions of source code must retain the above\r
+ *        copyright notice, this list of conditions and the following\r
+ *        disclaimer.\r
+ *\r
+ *      - Redistributions in binary form must reproduce the above\r
+ *        copyright notice, this list of conditions and the following\r
+ *        disclaimer in the documentation and/or other materials\r
+ *        provided with the distribution.\r
+ *\r
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\r
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS\r
+ * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN\r
+ * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\r
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\r
+ * SOFTWARE.\r
+ *\r
+ * $Id$\r
+ */\r
+\r
+#define IB_COMPANYNAME "OpenFabricsAlliance\x20Windows"\r
+#define IB_PRODUCTNAME "WinOF"\r
+#define VER_FILEMAJORVERSION 1\r
+#define VER_FILEMINORVERSION 0\r
+#define VER_FILEBUILD 1\r
+#define VER_FILEREV 906\r
+\r
+#include <oib_ver.h>\r
+\r
+#define VER_FILETYPE                   VFT_DLL\r
+#define VER_FILESUBTYPE                        VFT2_UNKNOWN\r
+\r
+\r
+#if DBG\r
+#define VER_FILEDESCRIPTION_STR                "Connection Manager Test (Debug)"\r
+#define VER_INTERNALNAME_STR           "cmtest.exe"\r
+#define VER_ORIGINALFILENAME_STR       "cmtest.exe"\r
+#else\r
+#define VER_FILEDESCRIPTION_STR                "Connection Manager Test (Release)"\r
+#define VER_INTERNALNAME_STR           "cmtest.exe"\r
+#define VER_ORIGINALFILENAME_STR       "cmtest.exe"\r
+#endif\r
+\r
+#include <common.ver>\r
diff --git a/WinOF/WIX/build-OFA-dist.bat b/WinOF/WIX/build-OFA-dist.bat
new file mode 100644 (file)
index 0000000..6464e47
--- /dev/null
@@ -0,0 +1,226 @@
+@echo off\r
+setlocal\r
+rem\r
+rem create a ZIP file of a WinOF distribution, such that the zip file is pushed to the\r
+rem OFA WinOF download site, unzipped for distribution.\r
+\r
+rem populate arch specific distribution folders, zip'em, populate symbols \r
+rem folder and zip the entire package for transmission to OFA download website.\r
+rem calls .\zip-OFA-dist.bat script.\r
+\r
+rem Operating assumptions:\r
+rem 1) current arch specific installers are in %systemroot%\temp\*.msi\r
+rem    resultant from trunk\buildrelease.bat execution.\r
+rem\r
+rem  ASSUMES %CD% ==  gen1\branches\WinOF\Wix\r
+rem\r
+rem build-OFA-dist release_ID {target_path}\r
+rem\r
+rem  example build-OFA-dist 1-1 %windir%\temp\r
+rem    # if target_path is null then default %SystemRoot%\temp\v%1\r
+rem     # otherwise %2\v%1\r
+\r
+if "%1" == "" (\r
+  echo "Missing release ID, example %0 1-1"\r
+  echo "usage: %0 release_ID {target_path, default: %SystemRoot%\temp}\r
+  exit /B 1\r
+)\r
+\r
+set ID=%1\r
+\r
+rem Final zip archive name\r
+set ZIP=WinOF_dist_v%ID%.zip\r
+\r
+rem where gen1\trunk\buildRelease.bat created the .msi installer files.\r
+set MSI=%SystemRoot%\temp\r
+set MSI_DST=%MSI%\v%ID%\r
+\r
+rem start fresh\r
+if exist %MSI_DST%  rmdir /S /Q %MSI_DST%\r
+mkdir %MSI_DST%\r
+if ERRORLEVEL 1 (\r
+    echo Err - unable to create %MSI_DST% ?\r
+    exit /B 1\r
+)\r
+\r
+set WZ="C:\Program Files (x86)\WinZip\WZZIP.EXE"\r
+if not exist %WZ% (\r
+    echo "Missing WinZip pro [cmd-line interface]"\r
+    echo "Please manually create the archives."\r
+    exit /B 1 \r
+)\r
+set SYMST="C:\Program Files\Debugging Tools for Windows (x64)"\symstore.exe\r
+if not exist %SYMST% (\r
+    echo %0 - Missing installation of MS Debug tools @\r
+    echo      %SYMST%\r
+    echo      www.microsoft.com/whdc/devtools/debugging/install64bit.mspx\r
+    exit /B 1 \r
+)\r
+\r
+FOR %%s IN ( wxp wlh wnet ) DO (\r
+\r
+       echo Building %%s installers.\r
+    if not exist %CD%\%%s\bin\Misc\Manual.htm (\r
+        echo "Must execute from gen1\branches\WinOF\WIX -- and --"\r
+        echo "  .\wnet,wxp,wlh\bin\ must be populated."\r
+        echo "  run gen1\trunk\buildRelease.bat -or- gen1\trunk\etc\makebin"\r
+        exit /B 1\r
+    )\r
+\r
+    rem create target structure\r
+       mkdir %MSI_DST%\%%s\r
+       mkdir %MSI_DST%\%%s\Installers\r
+       mkdir %MSI_DST%\%%s\SymStor\r
+    if ERRORLEVEL 1 (\r
+        echo Err - unable to create %MSI_DST%\%%s\... ?\r
+        exit /B 1\r
+    )\r
+\r
+    set DSTx86=WinOF_%ID%_%%s_x86\r
+    set DSTx64=WinOF_%ID%_%%s_x64\r
+    set DSTia64=WinOF_%ID%_%%s_ia64\r
+\r
+    echo Building target !DSTx86!\r
+\r
+    if exist !DSTx86!  rmdir /S /Q !DSTx86! \r
+    mkdir !DSTx86!\r
+\r
+    IF NOT EXIST !DSTx86! (\r
+        echo Unable to create !DSTx86! ?\r
+        exit /B 1\r
+    )\r
+\r
+    copy README_release.txt !DSTX86!\README.txt\r
+    if ERRORLEVEL 1 (\r
+        echo Err - missing file README_release.txt ?\r
+        exit /B 1\r
+    )\r
+\r
+    copy /B openfabrics.gif !DSTX86!\openfabrics.gif\r
+    copy release_notes.htm !DSTX86!\release_notes.htm\r
+\r
+    rem would like to use a goto although the target label destroys the\r
+    rem scope for %%s ... sigh.\r
+    rem Scope is preserved by if not\r
+\r
+    if not "%%s" == "wxp" (\r
+\r
+        echo Building target !DSTx64!\r
+        if exist !DSTx64!\.   rmdir /S /Q !DSTx64! \r
+        mkdir !DSTx64!\r
+\r
+        if NOT EXIST !DSTx64! (\r
+            echo Unable to create !DSTx64! ?\r
+            exit /B 1\r
+        )\r
+\r
+        copy README_release.txt !DSTX64!\README.txt\r
+        copy /B openfabrics.gif !DSTX64!\openfabrics.gif\r
+        copy release_notes.htm !DSTX64!\release_notes.htm\r
+\r
+        echo Building target !DSTia64!\r
+        if exist !DSTia64!\.   rmdir /S /Q !DSTia64! \r
+        mkdir !DSTia64!\r
+        if NOT EXIST !DSTia64! (\r
+            echo Unable to create !DSTia64! ?\r
+            exit /B 1\r
+        )\r
+\r
+        copy README_release.txt !DSTia64!\README.txt\r
+        copy /B openfabrics.gif !DSTia64!\openfabrics.gif\r
+        copy release_notes.htm !DSTia64!\release_notes.htm\r
+    )\r
+\r
+    echo Copying installers for %%s\r
+\r
+    copy /B /Y %MSI%\WOF_%%s_x86.msi !DSTx86!\WinOF_%ID%_%%s_x86.msi\r
+    if ERRORLEVEL 1 (\r
+        echo Err - unable to copy %MSI%\WOF_%%s_x86.msi\r
+        exit /B 1\r
+    )\r
+\r
+    if not "%%s" == "wxp" (\r
+\r
+        copy /B /Y %MSI%\WOF_%%s_x64.msi !DSTx64!\WinOF_%ID%_%%s_x64.msi\r
+        if ERRORLEVEL 1 (\r
+            echo Err - unable to copy %MSI%\WOF_%%s_x64.msi\r
+            exit /B 1\r
+        )\r
+\r
+        copy /B /Y %MSI%\WOF_%%s_ia64.msi !DSTia64!\WinOF_%ID%_%%s_ia64.msi\r
+        if ERRORLEVEL 1 (\r
+            echo Err - unable to copy %MSI%\WOF_%%s_ia64.msi\r
+            exit /B 1\r
+        )\r
+    )\r
+\r
+    echo Building ZIP archives of the architecture specific folders\r
+\r
+    if EXIST !DSTx86!.zip   del /F /Q !DSTx86!.zip\r
+    if EXIST !DSTx64!.zip   del /F /Q !DSTx64!.zip\r
+    if EXIST !DSTia64!.zip  del /F /Q !DSTia64!.zip\r
+\r
+    %WZ% -P -r %MSI_DST%\%%s\Installers\!DSTx86!.zip !DSTx86!\r
+    if ERRORLEVEL 1 (\r
+        echo Err - unable to create %MSI_DST%\%%s\Installers\!DSTx86!.zip\r
+        exit /B 1\r
+    )\r
+\r
+    if not "%%s" == "wxp" (\r
+\r
+        %WZ% -P -r %MSI_DST%\%%s\Installers\!DSTx64!.zip !DSTx64!\r
+        if ERRORLEVEL 1 (\r
+            echo Err - unable to create %MSI_DST%\%%s\Installers\!DSTx64!.zip\r
+            exit /B 1\r
+        )\r
+\r
+        %WZ% -P -r %MSI_DST%\%%s\Installers\!DSTia64!.zip !DSTia64!\r
+        if ERRORLEVEL 1 (\r
+            echo Err - unable to create %MSI_DST%\%%s\Installers\!DSTia64!.zip\r
+            exit /B 1\r
+        )\r
+    )\r
+\r
+    rem create the symbol store for the OS flavor\r
+    echo Generating %MSI_DST%\%%s\SymStor Symbol store\r
+\r
+    %SYMST% add /r /f %CD%\%%s\bin\bin /s %MSI_DST%\%%s\SymStor  /t "WinOF" /v "version %ID%"\r
+    if ERRORLEVEL 1 (\r
+        echo %%s symstore.exe failure rc %ERRORLEVEL%\r
+        exit /B 1\r
+    )\r
+    rem OS flavor cleanup\r
+\r
+    if exist !DSTx86!\.    rmdir /S /Q !DSTx86!\r
+    if exist !DSTx64!\.    rmdir /S /Q !DSTx64!\r
+    if exist !DSTia64!\.   rmdir /S /Q !DSTia64!\r
+)\r
+\r
+rem create a ZIP file of the entire distribution\r
+\r
+echo WinOF v%ID% distribution @ %ZIP%\r
+\r
+pushd %MSI%\r
+\r
+rem rename MS Operating System code-names to common Retail names\r
+pushd v%ID%\r
+rename wlh Server_2008-Vista-HPC\r
+rename wnet Server_2003-XP64\r
+rename wxp XP32\r
+popd\r
+\r
+IF EXIST %ZIP%  del /F/Q %ZIP%\r
+\r
+%WZ% -P -r %ZIP% v%ID%\r
+\r
+rmdir /Q /S v%ID%\r
+\r
+popd\r
+\r
+echo -----\r
+echo -----\r
+echo WinOF v%ID% distribution @ %MSI%\%ZIP%\r
+echo -----\r
+\r
+endlocal\r
+\r
diff --git a/WinOF/WIX/build-all-MSI.bat b/WinOF/WIX/build-all-MSI.bat
new file mode 100644 (file)
index 0000000..c6648f6
--- /dev/null
@@ -0,0 +1,122 @@
+@echo off\r
+setlocal\r
+rem Build WIX installers (.msi) for 'all' architectures & Operating environments\r
+rem\r
+rem usage:\r
+rem   %0 cmd Signing-Certificate-FileName CertSubjectName {dest-path-for-msi-files}\r
+rem    cmd - if 'msi' then assume drivers already signed, only sign .msi\r
+rem            otherwise sign all drivers and installers (.msi files)\r
+rem    CertFilename is indeed a filename only, we prefix ...\WIX before\r
+rem     CertName - see /n switch\r
+rem    passing it down.\r
+\r
+rem *** REQUIRES nmake, common invocation from Visual C or WDK command window\r
+rem *** Assumes current folder is WIX\\r
+\r
+set USE=usage %0 all/msi Certificate-FileName CertSubjName[see signtool /n] {dest-path-for-msi-files}\r
+\r
+if "%1" == "" (\r
+    echo %0: %USE%\r
+    exit /B 1\r
+)\r
+\r
+if "%1" == "all" (\r
+    goto ok\r
+)\r
+if "%1" == "msi" (\r
+    goto ok\r
+)\r
+echo %0 - Unknown command '%1' - 'all' or 'msi'\r
+echo %0: %USE%\r
+exit /B 1\r
+\r
+:ok\r
+\r
+if NOT EXIST %2 (\r
+    echo %0: Certificate-Filename not found?\r
+    echo %0 -   %2\r
+    exit /B 1\r
+)\r
+\r
+rem need a Cert subject name string - name is passed in quoted!\r
+if %3 == "" (\r
+    echo %0: %USE%\r
+    exit /B 1\r
+)\r
+\r
+if "%4" == "" (\r
+    set DST=%windir%\temp\r
+) else (\r
+    set DST=%4\r
+)\r
+\r
+if NOT EXIST %DST% (\r
+    echo %0: Installer output path %DST% not found?\r
+    exit /B 1\r
+)\r
+\r
+nmake /NOLOGO /? > %DST%\jnk.txt\r
+if ERRORLEVEL 1 (\r
+    echo %0 missing nmake.exe in PATH?\r
+    exit /B 1\r
+)\r
+del /Q /F %DST%\jnk.txt\r
+\r
+if "%1" == "all" (\r
+    rem Sign drivers for all OSes & arches. Convert CertFilename to full path.\r
+    call sign-all-drivers %CD%\%2 %3\r
+\r
+    if ERRORLEVEL 1 (\r
+        echo %0: Error signing drivers?\r
+        exit /B 1\r
+    )\r
+)\r
+\r
+:: build Windows Server 2008 / Vista (LongHorn versions) x86, x64 & ia64\r
+\r
+pushd wlh\r
+call build-MSI %DST%\r
+if ERRORLEVEL 1 exit /B\r
+popd\r
+\r
+:: build Windows Server 2003 versions: x86, x64 & ia64\r
+pushd wnet\r
+call build-MSI %DST%\r
+if ERRORLEVEL 1 exit /B\r
+popd\r
+\r
+:: build Windows XP (32-bit) versions: x86 only\r
+pushd wxp\r
+call build-MSI %DST%\r
+if ERRORLEVEL 1 exit /B\r
+popd\r
+\r
+rem Digitally Sign the installer .msi files\r
+\r
+set TS=/t http://timestamp.verisign.com/scripts/timstamp.dll\r
+echo %0 - Signing Installer .msi files\r
+for %%o in ( wlh wnet wxp ) do (\r
+    for %%a in ( x86 x64 ia64 ) do (\r
+        if exist %DST%\WOF_%%o_%%a.msi (\r
+            \r
+            echo  Signing installer %DST%\WOF_%%o_%%a.msi\r
+            signtool sign /ac %CD%\%2 /n %3 %TS% %DST%\WOF_%%o_%%a.msi\r
+            if ERRORLEVEL 1 (\r
+                echo %0 signtool sign %DST%\WOF_%%o_%%a.msi failed?\r
+                exit /B 1\r
+            )\r
+            signtool verify /pa %DST%\WOF_%%o_%%a.msi\r
+            if ERRORLEVEL 1 (\r
+                echo %0 signtool verify %DST%\WOF_%%o_%%a.msi failed?\r
+                exit /B 1\r
+            )\r
+        )\r
+    )\r
+)\r
+\r
+dir %DST%\*.msi\r
+\r
+echo ''\r
+echo Done - WIX installers in %DST%\r
+\r
+@endlocal\r
diff --git a/WinOF/WIX/dat.conf b/WinOF/WIX/dat.conf
new file mode 100644 (file)
index 0000000..03b3657
--- /dev/null
@@ -0,0 +1,31 @@
+#\r
+# DAT (DAPL) configuration file\r
+#\r
+# Entries scanned sequentially - first entry to open is used.\r
+#\r
+# Each entry requires the following fields:\r
+#\r
+# <IA_name(Interface Adapter)> <api_version> <threadsafety> <default> <dapl_lib_path> \\r
+#           <provider_version> <ia_params> <platform_params>\r
+#\r
+# DAT v1.1 dapl provider configuration for HCA0 port 1\r
+ibnic0 u1.1 threadsafe default C:\Windows\dapl.dll ri.1.1 "IbalHca0 1" ""\r
+IbalHca0 u1.1 threadsafe default C:\Windows\dapl.dll ri.1.1 "IbalHca0 1" ""\r
+#\r
+# DAT 1.1 debug\r
+ibnic0d u1.1 threadsafe default "C:\\Program Files (x86)\\WinOF\\dapld.dll" ri.1.1 "IbalHca0 1" ""\r
+#\r
+# DAT 2.0\r
+ibnic0v2 u2.0 nonthreadsafe default C:\Windows\dapl2.dll ri.2.0 "IbalHca0 1" ""\r
+ibnic1v2 u2.0 nonthreadsafe default C:\Windows\dapl2.dll ri.2.0 "IbalHca1 1" ""\r
+IbalHca0v2 u2.0 nonthreadsafe default C:\Windows\dapl2.dll ri.2.0 "IbalHca0 1" ""\r
+#\r
+# DAT 2.0 (debug)\r
+ibnic0v2d u2.0 nonthreadsafe default "C:\\Program Files (x86)\\WinOF\\dapl2d.dll" ri.2.0 "IbalHca0 1" ""\r
+#\r
+# DAT 2.0 [socket-cm] InfiniBand QPs setup by passing QP info over a socket\r
+# connection; supports DAT Windows <==> Linux over IB connections.\r
+ibnic0v2-scm u2.0 nonthreadsafe default C:\Windows\dapl2-scm.dll ri.2.0 "IbalHca0 1" ""\r
+#\r
+# Socket-CM (debug)\r
+ibnic0v2-scmd u2.0 nonthreadsafe default "C:\\Program Files (x86)\\WinOF\\dapl2-scmd.dll" ri.2.0 "IbalHca0 1" ""\r
diff --git a/WinOF/WIX/ia64/Command Window.lnk b/WinOF/WIX/ia64/Command Window.lnk
new file mode 100644 (file)
index 0000000..51cf550
Binary files /dev/null and b/WinOF/WIX/ia64/Command Window.lnk differ
diff --git a/WinOF/WIX/ia64/DPInst.exe b/WinOF/WIX/ia64/DPInst.exe
new file mode 100644 (file)
index 0000000..af9a0a1
Binary files /dev/null and b/WinOF/WIX/ia64/DPInst.exe differ
diff --git a/WinOF/WIX/ia64/devman.exe b/WinOF/WIX/ia64/devman.exe
new file mode 100644 (file)
index 0000000..e55b0f7
Binary files /dev/null and b/WinOF/WIX/ia64/devman.exe differ
diff --git a/WinOF/WIX/openfabrics.gif b/WinOF/WIX/openfabrics.gif
new file mode 100644 (file)
index 0000000..148d877
Binary files /dev/null and b/WinOF/WIX/openfabrics.gif differ
diff --git a/WinOF/WIX/openfabrics.ico b/WinOF/WIX/openfabrics.ico
new file mode 100644 (file)
index 0000000..2ca2fcb
Binary files /dev/null and b/WinOF/WIX/openfabrics.ico differ
diff --git a/WinOF/WIX/sign-all-drivers.bat b/WinOF/WIX/sign-all-drivers.bat
new file mode 100644 (file)
index 0000000..2d8b207
--- /dev/null
@@ -0,0 +1,78 @@
+@echo off\r
+setlocal\r
+rem\r
+rem Digitally sign all drivers for all OSes & architectures.\r
+rem\r
+rem example - sign-all-drivers CertFilename CertSubjName {noTimeStamp}\r
+rem see TS below.\r
+rem\r
+\r
+if "%1" == "" (\r
+    echo %0 - Missing CertStore Filename?\r
+    exit /B 1\r
+)\r
+\r
+if not EXIST %1 (\r
+    echo %0 - Missing Certificate file?\r
+    echo %0 -    %1\r
+    exit /B 1\r
+)\r
+\r
+if %2 == "" (\r
+    echo %0 - Missing Cert Subject name?\r
+    exit /B 1\r
+)\r
+\r
+rem XXX defeat TimeStamping until net access resolved.\r
+rem set TS=noTimeStamp\r
+\r
+for %%p in ( wlh wnet wxp ) do (\r
+    echo %0 - Signing %%p drivers\r
+    pushd %%p\r
+    if ERRORLEVEL 1 (\r
+        echo %0 - Error Bad cd to %%p folder ?\r
+        exit /B 1\r
+    )\r
+    rem Sign free HCA drivers\r
+    call signDrivers %1 %2 bin\HCA %TS%\r
+    if ERRORLEVEL 1 (\r
+        echo %0 - Error signing %%p\bin\HCA drivers?\r
+        exit /B 1\r
+    )\r
+    rem Sign checked HCA drivers\r
+    call signDrivers %1 %2 bin\Chk\HCA %TS%\r
+    if ERRORLEVEL 1 (\r
+        echo %0 - Error signing %%p\bin\Chk\HCA drivers?\r
+        exit /B 1\r
+    )\r
+\r
+    rem Sign free: IPoIB & VNIC drivers\r
+    call signDrivers %1 %2 bin\net %TS%\r
+    if ERRORLEVEL 1 (\r
+        echo %0 - Error signing %%p\bin\net drivers?\r
+        exit /B 1\r
+    )\r
+    rem Sign checked: IPoIB & VNIC drivers\r
+    call signDrivers %1 %2 bin\Chk\net %TS%\r
+    if ERRORLEVEL 1 (\r
+        echo %0 - Error signing %%p\bin\Chk\net drivers?\r
+        exit /B 1\r
+    )\r
+\r
+    rem Sign free SRP drivers\r
+    call signDrivers %1 %2 bin\storage %TS%\r
+    if ERRORLEVEL 1 (\r
+        echo %0 - Error signing %%p\bin\storage drivers?\r
+        exit /B 1\r
+    )\r
+    rem Sign checked SRP drivers\r
+    call signDrivers %1 %2 bin\Chk\storage %TS%\r
+    if ERRORLEVEL 1 (\r
+        echo %0 - Error signing %%p\bin\Chk\storage drivers?\r
+        exit /B 1\r
+    )\r
+\r
+    popd\r
+)\r
+endlocal\r
+echo Done %0 %1\r
diff --git a/WinOF/WIX/wlh/build-MSI.bat b/WinOF/WIX/wlh/build-MSI.bat
new file mode 100644 (file)
index 0000000..19a0966
--- /dev/null
@@ -0,0 +1,70 @@
+@echo off\r
+setlocal\r
+rem Build WNET WIX installer (.msi) for all architectures\r
+rem\r
+rem usage: %0 {dest-path-for-msi-files}\r
+\r
+rem *** REQUIRES nmake, common invocation from Visual C or DDK command window\r
+\r
+set OS=WLH\r
+\r
+if "%1" == "" (\r
+    set DST=%SystemRoot%\temp\r
+) else (\r
+    set DST=%1\r
+)\r
+if NOT EXIST %DST% (\r
+    echo %0: Installer output path %DST% not found?\r
+    exit /B\r
+)\r
+nmake /NOLOGO /? > %DST%\jnk.txt\r
+if ERRORLEVEL 1 (\r
+    echo %0 missing nmake.exe in PATH?\r
+    exit /B\r
+)\r
+del /Q /F %DST%\jnk.txt\r
+\r
+if NOT EXIST %CD%\bin\HCA\amd64 (\r
+    echo %0 - %CD%\bin not populated correctly? see trunk\etc\makebin.bat\r
+    exit /B\r
+)\r
+\r
+\r
+if EXIST ia64\WOF_%OS%_ia64.msi del /Q /F ia64\WOF_%OS%_ia64.msi\r
+if EXIST x64\WOF_%OS%_x64.msi   del /Q /F x64\WOF_%OS%_x64.msi\r
+if EXIST x86\WOF_%OS%_x86.msi   del /Q /F x86\WOF_%OS%_x86.msi\r
+\r
+if EXIST %DST%\WOF_%OS%_ia64.msi del /Q /F %DST%\WOF_%OS%_ia64.msi\r
+if EXIST %DST%\WOF_%OS%_x64.msi  del /Q /F %DST%\WOF_%OS%_x64.msi\r
+if EXIST %DST%\WOF_%OS%_x86.msi  del /Q /F %DST%\WOF_%OS%_x86.msi\r
+\r
+pushd ia64\r
+nmake /NOLOGO full\r
+if ERRORLEVEL 1 exit /B\r
+echo move /Y WOF_%OS%_ia64.msi %DST%\r
+move /Y WOF_%OS%_ia64.msi %DST%\r
+popd\r
+\r
+pushd x64\r
+nmake /NOLOGO full\r
+if ERRORLEVEL 1 exit /B\r
+echo move /Y WOF_%OS%_x64.msi %DST%\r
+move /Y WOF_%OS%_x64.msi %DST%\r
+popd\r
+\r
+pushd x86\r
+nmake /NOLOGO full\r
+if ERRORLEVEL 1 exit /B\r
+echo move /Y WOF_%OS%_x86.msi %DST%\r
+move /Y WOF_%OS%_x86.msi %DST%\r
+popd\r
+\r
+rem if run from top-level %1 will not be null, otherwise assume run from\r
+rem cmd line.\r
+if "%1" == ""   dir %DST%\*.msi\r
+\r
+echo ----\r
+echo Done - %OS% WIX installers in %DST%\r
+echo ----\r
+\r
+endlocal\r
diff --git a/WinOF/WIX/wlh/ia64/Makefile b/WinOF/WIX/wlh/ia64/Makefile
new file mode 100644 (file)
index 0000000..4a54647
--- /dev/null
@@ -0,0 +1,44 @@
+###################\r
+# IA64/IPF Itanium makefile targets\r
+#\r
+S=WOF\r
+P=$(S)_wlh_ia64\r
+\r
+#WIX 2.0\r
+# L=..\..\WIX_tools\wix-2.0.5325.0-binaries\r
+L=..\..\WIX_tools\wix-2.0.5805.0-binaries\r
+\r
+# WIX 3.0 L=..\WIX_tools\wix-3.0.2925.0-binaries\r
+\r
+WIX_UI="$(L)\wixui.wixlib" -loc "$(L)\WixUI_en-us.wxl"\r
+\r
+full: clean $(P).msi\r
+\r
+clean:\r
+       @del /q $(P).msi 2>nul\r
+       @del /q $(S).wixobj 2>nul\r
+       @del /q license.rtf 2>nul\r
+\r
+MySetup: $(P).msi\r
+\r
+license.rtf: ..\..\license.rtf\r
+       @copy ..\..\license.rtf .\license.rtf\r
+\r
+$(S).wixobj: $(S).wxs\r
+\r
+$(P).msi: $(S).wixobj license.rtf\r
+       @echo --\r
+       @echo Building $(P).msi\r
+       $(L)\light.exe /nologo -out $(P).msi $(S).wixobj $(WIX_UI)\r
+       @del /q $(S).wixobj 2>nul\r
+       @del /q license.rtf 2>nul\r
+\r
+\r
+###################\r
+# makefile inference rules\r
+#\r
+.SUFFIXES: .wxs .wixobj\r
+\r
+.wxs.wixobj::\r
+       @$(L)\candle.exe /nologo -trace -v $<\r
+\r
diff --git a/WinOF/WIX/wlh/ia64/wof.wxs b/WinOF/WIX/wlh/ia64/wof.wxs
new file mode 100644 (file)
index 0000000..859f9d6
--- /dev/null
@@ -0,0 +1,1498 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<!--\r
+   WinOF (Windows OpenFabrics) for IA64/IPF Itanium on Windows Server 2008\r
+-->\r
+<Wix xmlns="http://schemas.microsoft.com/wix/2003/01/wi">\r
+  <Product Name="Windows Open Fabrics InfiniBand v2.0 (GA) ia64"\r
+    Id="3A6A276E-A636-48e8-8624-9A0DE3F2A15E"\r
+    UpgradeCode='E38964D6-359D-4E38-9BBF-8C79D84DF6CF' \r
+    Version="2.0.0"\r
+    Language="1033" Codepage="1252"\r
+    Manufacturer="Open Fabrics Alliance Windows">\r
+\r
+    <Package Id="????????-????-????-????-????????????"\r
+     Keywords="Installer, InfiniBand" Description="WinOF Installer"\r
+     InstallPrivileges='elevated'\r
+     Comments="Windows Open Fabrics Alliance InfiniBand stack"\r
+     Manufacturer="Open Fabrics Alliance Windows" InstallerVersion="200"\r
+     Languages="1033" Compressed="yes" SummaryCodepage="1252" />\r
+\r
+    <Condition Message="Administrator required to install [ProductName].">\r
+     Privileged\r
+    </Condition>\r
+\r
+    <Condition Message="This package can be installed on IA64 systems only">\r
+        <![CDATA[Intel64]]>\r
+    </Condition>\r
+\r
+    <Condition Message="This package can be installed on 64-bit systems only">\r
+        <![CDATA[VersionNT64]]>\r
+    </Condition>\r
+\r
+    <Condition Message="[ProductName] requires Windows Server 2008 to install.">\r
+         <![CDATA[(VersionNT=600)]]>\r
+    </Condition>\r
+\r
+    <!--\r
+        System/Machine-wide install, otherwise per-user (Administrator) only.\r
+        All users see OpenFabrics WinOF Release Notes & Manual in Programs.\r
+     -->\r
+    <Property Id="ALLUSERS"> Value="1" </Property>\r
+\r
+    <!-- Requires files sc.exe & reg.exe -->\r
+    <Property Id="REG_EXISTS">\r
+      <DirectorySearch Id="RegFileDir" Path="[WindowsFolder]" Depth="1">\r
+        <FileSearch Id="RegFile" Name="reg.exe" />\r
+      </DirectorySearch>\r
+    </Property>\r
+\r
+    <Property Id="SC_EXISTS">\r
+      <DirectorySearch Id="ScFileDir" Path="[WindowsFolder]" Depth="1">\r
+        <FileSearch Id="ScFile" Name="sc.exe" />\r
+      </DirectorySearch>\r
+    </Property>\r
+\r
+    <Property Id="IPOIB_EXISTS">\r
+      <DirectorySearch Id="ipoibFileDir" Path="[INSTALLDIR]\net" Depth="0">\r
+        <FileSearch Id="ipoibFile" Name="netipoib.inf" />\r
+      </DirectorySearch>\r
+    </Property>\r
+\r
+    <Property Id="DAT_CONF_EXISTS">\r
+      <DirectorySearch Id="DCscan" Path="[WindowsVolume]\DAT" Depth="0">\r
+        <FileSearch Id="DCFile" Name="dat.conf" />\r
+      </DirectorySearch>\r
+    </Property>\r
+\r
+    <Property Id="DAT1_INSTALLED">\r
+      <DirectorySearch Id="Dat1File" Path="[INSTALLDIR]" Depth="0">\r
+        <FileSearch Id="daplFile" Name="dapl.dll" />\r
+      </DirectorySearch>\r
+    </Property>\r
+\r
+    <Property Id="DAT2_INSTALLED">\r
+      <DirectorySearch Id="Dat2File" Path="[INSTALLDIR]" Depth="0">\r
+        <FileSearch Id="dapl2File" Name="dapl2.dll" />\r
+      </DirectorySearch>\r
+    </Property>\r
+\r
+    <Condition Message="[ProductName] requires system file reg.exe">\r
+       REG_EXISTS\r
+    </Condition>\r
+\r
+    <Condition Message="[ProductName] requires system file sc.exe">\r
+       SC_EXISTS\r
+    </Condition>\r
+\r
+    <Media Id="1" Cabinet="Sample.cab" EmbedCab="yes" DiskPrompt="CD-ROM #1" />\r
+    <Property Id="DiskPrompt" Value="WinOF 1.1 Installation [1]" />\r
+\r
+    <Directory Id="TARGETDIR" Name="SourceDir">\r
+      <Directory Id="ProgramMenuFolder" Name="PMenu" LongName="Programs">\r
+        <Directory Id="ProgramMenuDir" LongName="Windows OpenFabrics"\r
+                   Name="WinOF" />\r
+      </Directory>\r
+      <Directory Id="DesktopFolder" Name="Desktop" />\r
+      <Directory Id="ProgramFilesFolder" Name="PFiles">\r
+        <Directory Id="INSTALLDIR" Name="WinOF">\r
+          <Component Id="Docs" Guid="931C58EF-3759-4cf4-89CC-276C017305BB">\r
+\r
+            <File Id="OFAlogo" Compressed="yes" DiskId="1"\r
+                    LongName="openfabrics.gif" Name="ofa.gif"\r
+                    Source="..\..\openfabrics.gif" />\r
+\r
+            <!-- implies WIX build only from an svn structured tree.  -->\r
+            <File Id="manual.htm" Compressed="yes" DiskId="1" Name="Manual.htm"\r
+                    LongName="Manual.htm"\r
+                    Source="..\bin\Misc\Manual.htm" Vital="yes" />\r
+\r
+            <Shortcut Id="Manual.htm" Directory="ProgramMenuDir"\r
+                    Name="Manual.htm" LongName="Manual"\r
+                    Target="[INSTALLDIR]\Manual.htm" Show="normal"\r
+                    WorkingDirectory="INSTALLDIR" Icon="openfabrics"\r
+                    IconIndex="0" />\r
+\r
+            <File Id="dRelnotes" Compressed="yes" DiskId="1"\r
+                    LongName="Release_notes.htm" Name="RELEASE_.HTM"\r
+                    Source="..\..\Release_notes.htm" />\r
+\r
+            <Shortcut Id="RelNotes" Directory="ProgramMenuDir" Name="RelNotes"\r
+                    LongName="Release Notes"\r
+                    Target="[INSTALLDIR]\Release_notes.htm" Show="normal"\r
+                    WorkingDirectory="INSTALLDIR" Icon="openfabrics"\r
+                    IconIndex="0" />\r
+\r
+            <File Id="command_window" Name="COMMAND.LNK"\r
+                    LongName="Command Window.lnk" Compressed="yes" DiskId="1"\r
+                    Source="..\..\ia64\Command Window.lnk" Vital="yes" />\r
+\r
+            <Shortcut Id="Command_Window.lnk" Directory="ProgramMenuDir"\r
+                    Name="COMMAND.LNK" LongName="Command Window.lnk"\r
+                    Target="[INSTALLDIR]\Command Window.lnk" Icon="openfabrics"\r
+                    IconIndex="0" Show="normal" WorkingDirectory="INSTALLDIR" />\r
+\r
+            <Shortcut Id="UninstallProduct" Name="UnMyApp"\r
+                LongName="Uninstall WinOF"\r
+                               Target="[System64Folder]msiexec.exe"\r
+                Arguments="/X [ProductCode]"\r
+                Directory="ProgramMenuDir"\r
+                Description="Uninstalls OpenFabrics InfiniBand" />\r
+            <RemoveFolder Id="RemoveShorcutFolder" On="uninstall" />\r
+          </Component>\r
+\r
+          <Component Id="Tools" Guid="1B89230E-5D8D-41a5-BD1F-A3E308FEE026">\r
+           <Environment Id='UpdatePath' Name='PATH' Action='create'\r
+                        System='yes' Part='last' Value='[INSTALLDIR]' /> \r
+\r
+            <File Id="part_man" Name="part_man.exe"\r
+                  Compressed="yes" DiskId="1" Vital="yes"\r
+                  Source="..\bin\tools\ia64\release\part_man.exe" />\r
+            <File Id="vstat" Name="vstat.exe"\r
+                  Compressed="yes" DiskId="1" Vital="yes"\r
+                  Source="..\bin\tools\ia64\release\vstat.exe" />\r
+            <File Id="ttcp.exe" LongName="ttcp.exe" Compressed="yes"\r
+                  DiskId="1" Name="TTCP.EXE"\r
+                  Source="..\bin\tools\ia64\release\ttcp.exe" />\r
+            <File Id="cmtest.exe" LongName="cmtest.exe" Compressed="yes"\r
+                  DiskId="1" Name="CMTEST.EXE"\r
+                  Source="..\bin\tools\ia64\release\cmtest.exe" />\r
+            <File Id="ib_limits.exe" Compressed="yes" DiskId="1"\r
+                  LongName="ib_limits.exe" Name="IB_LIMI.EXE"\r
+                  Source="..\bin\tools\ia64\release\ib_limits.exe" />\r
+            <File Id="ib_read_bw.exe" Compressed="yes" DiskId="1"\r
+                  LongName="ib_read_bw.exe" Name="IB_READ.EXE"\r
+                  Source="..\bin\tools\ia64\release\ib_read_bw.exe" />\r
+            <File Id="ib_read_lat.exe" Compressed="yes" DiskId="1"\r
+                  LongName="ib_read_lat.exe" Name="IB_READ1.EXE"\r
+                  Source="..\bin\tools\ia64\release\ib_read_lat.exe" />\r
+            <File Id="ib_send_bw.exe" Compressed="yes" DiskId="1"\r
+                  LongName="ib_send_bw.exe" Name="IB_SEND.EXE"\r
+                  Source="..\bin\tools\ia64\release\ib_send_bw.exe" />\r
+            <File Id="ib_send_lat.exe" Compressed="yes" DiskId="1"\r
+                  LongName="ib_send_lat.exe" Name="IB_SEND1.EXE"\r
+                  Source="..\bin\tools\ia64\release\ib_send_lat.exe" />\r
+            <File Id="ib_write_bw.exe" Compressed="yes" DiskId="1"\r
+                  LongName="ib_write_bw.exe" Name="IB_WRIT.EXE"\r
+                  Source="..\bin\tools\ia64\release\ib_write_bw.exe" />\r
+            <File Id="ib_write_lat.exe" Compressed="yes" DiskId="1"\r
+                  LongName="ib_write_lat.exe" Name="IB_WRIT1.EXE"\r
+                  Source="..\bin\tools\ia64\release\ib_write_lat.exe" />\r
+            <File Id="ibtrapgen.exe" Compressed="yes" DiskId="1"\r
+                  LongName="ibtrapgen.exe" Name="IBTRAPG.EXE"\r
+                  Source="..\bin\tools\ia64\release\ibtrapgen.exe" />\r
+            <File Id="osmtest.exe" Compressed="yes" DiskId="1"\r
+                  LongName="osmtest.exe" Name="OSMTEST.EXE"\r
+                  Source="..\bin\tools\ia64\release\osmtest.exe" />\r
+            <File Id="PrintIP.exe" Compressed="yes" DiskId="1"\r
+                  LongName="PrintIP.exe" Name="PRINTIP.EXE"\r
+                  Source="..\bin\tools\ia64\release\PrintIP.exe" />\r
+            <File Id="nsc" Name="nsc.exe" Compressed="yes" DiskId="1"\r
+                     Vital="yes" Source="..\bin\tools\ia64\release\nsc.exe" />\r
+          </Component>\r
+\r
+          <Component Id='OpenSMservice'\r
+                     Guid='90042B4F-51B5-4720-8E54-6D366253634B'\r
+                     SharedDllRefCount='no' KeyPath='no'\r
+                     NeverOverwrite='no'\r
+                     Permanent='no' Transitive='no' Win64='no'\r
+                     Location='either'>\r
+\r
+              <File Id="opensm.exe" Compressed="yes" DiskId="1"\r
+                    LongName="opensm.exe" Name="OPENSM.EXE"\r
+                    Source="..\bin\tools\ia64\release\opensm.exe"\r
+                    Vital='yes' KeyPath='yes' Hidden='no' System='no' \r
+                    Checksum='no' ReadOnly='no' />\r
+\r
+              <ServiceInstall Id='osmSvcInstall' Vital='yes' Name='OpenSM'\r
+                  Description='InfiniBand Subnet Configuration and Management'\r
+                  DisplayName='InfiniBand Subnet Manager'\r
+                  Arguments='-e --service'\r
+                  ErrorControl='normal'\r
+                  Start='disabled'\r
+                  Interactive='no'\r
+                  Type='ownProcess' />\r
+\r
+              <ServiceControl Id='osmSvcControl' Name='OpenSM'\r
+                              Stop='uninstall'\r
+                              Wait='no'\r
+                              Remove='uninstall' />\r
+          </Component>\r
+\r
+          <Directory Id="hcaDir" Name="IBcore">\r
+            <Component Id="cIBcore"\r
+                       Guid="4B4EA649-65ED-4B0D-8717-D60481412211">\r
+              <CreateFolder />\r
+              <File Id="dpinst.exe" Compressed="yes" DiskId="1"\r
+                     LongName="dpinst.exe" Name="dpinst.exe"\r
+                     Source="..\..\ia64\dpinst.exe" />\r
+              <File Id="devman.exe" Compressed="yes" DiskId="1"\r
+                     LongName="devman.exe" Name="devman.exe"\r
+                     Source="..\..\ia64\devman.exe" />\r
+              <File Id="cl32.dll" Compressed="yes" DiskId="1"\r
+                     LongName="cl32.dll" Name="CL32.DLL"\r
+                     Source="..\bin\HCA\ia64\cl32.dll" />\r
+                <CopyFile Id="dup_cl32" FileId="cl32.dll"\r
+                        DestinationName="complib.dll"\r
+                        DestinationProperty="SystemFolder" />\r
+              <File Id="cl32d.dll" Compressed="yes" DiskId="1"\r
+                     LongName="cl32d.dll" Name="CL32D.DLL"\r
+                     Source="..\bin\HCA\ia64\cl32d.dll" />\r
+                <CopyFile Id="dup_cl32d" FileId="cl32d.dll"\r
+                        DestinationName="complibd.dll"\r
+                        DestinationProperty="SystemFolder" />\r
+              <File Id="complib.dll" Compressed="yes" DiskId="1"\r
+                     LongName="complib.dll" Name="COMPLIB.DLL"\r
+                     Source="..\bin\HCA\ia64\complib.dll" />\r
+              <File Id="complibd.dll" Compressed="yes" DiskId="1"\r
+                     LongName="complibd.dll" Name="COMPLIB1.DLL"\r
+                     Source="..\bin\HCA\ia64\complibd.dll" />\r
+              <File Id="ibal32.dll" Compressed="yes" DiskId="1"\r
+                     LongName="ibal32.dll" Name="IBAL32.DLL"\r
+                     Source="..\bin\HCA\ia64\ibal32.dll" />\r
+                <CopyFile Id="dup_ibal32" FileId="ibal32.dll"\r
+                        DestinationName="ibal.dll"\r
+                        DestinationProperty="SystemFolder" />\r
+              <File Id="ibal32d.dll" Compressed="yes" DiskId="1"\r
+                     LongName="ibal32d.dll" Name="IBAL32D.DLL"\r
+                     Source="..\bin\HCA\ia64\ibal32d.dll" />\r
+                <CopyFile Id="dup_ibal32d" FileId="ibal32d.dll"\r
+                        DestinationName="ibald.dll"\r
+                        DestinationProperty="SystemFolder" />\r
+              <File Id="ibal.dll" Compressed="yes" DiskId="1"\r
+                     LongName="ibal.dll" Name="IBAL.DLL"\r
+                     Source="..\bin\HCA\ia64\ibal.dll" />\r
+              <File Id="ibald.dll" Compressed="yes" DiskId="1"\r
+                     LongName="ibald.dll" Name="IBALD.DLL"\r
+                     Source="..\bin\HCA\ia64\ibald.dll" />\r
+              <File Id="ibbus.sys" Compressed="yes" DiskId="1"\r
+                     LongName="ibbus.sys" Name="IBBUS.SYS"\r
+                     Source="..\bin\HCA\ia64\ibbus.sys" />\r
+              <File Id="ibbus.pdb" Name="ibbus.pdb" DiskId="1" Compressed="yes"\r
+                     Source="..\bin\HCA\ia64\ibbus.pdb" />\r
+\r
+              <File Id="ibiou.sys" Compressed="yes" DiskId="1"\r
+                     LongName="ibiou.sys" Name="IBIOU.SYS"\r
+                     Source="..\bin\HCA\ia64\ibiou.sys" />\r
+              <File Id="ibiou.pdb" Compressed="yes" DiskId="1"\r
+                     Name="ibiou.pdb" Source="..\bin\HCA\ia64\ibiou.pdb" />\r
+              <File Id="ib_iou.cat" Compressed="yes" DiskId="1"\r
+                     LongName="ib_iou.cat" Name="IB_IOU.cat"\r
+                     Source="..\bin\HCA\ia64\ib_iou.cat" />\r
+              <File Id="ib_iou.inf" Compressed="yes" DiskId="1"\r
+                     LongName="ib_iou.inf" Name="IB_IOU.inf"\r
+                     Source="..\bin\HCA\ia64\ib_iou.inf" />\r
+            </Component>\r
+\r
+            <Component Id="cMthcaDriver"\r
+                       Guid="BE4ED061-C852-40a2-A240-F06DBBE1159F">\r
+              <File Id="mthca32.dll" Compressed="yes" DiskId="1"\r
+                     LongName="mthca32.dll" Name="MTHCA32.DLL"\r
+                     Source="..\bin\HCA\ia64\mthca32.dll" />\r
+              <File Id="mthca32d.dll" Compressed="yes" DiskId="1"\r
+                     LongName="mthca32d.dll" Name="MTHCA321.DLL"\r
+                     Source="..\bin\HCA\ia64\mthca32d.dll" />\r
+              <File Id="mthca.inf" Compressed="yes" DiskId="1"\r
+                     LongName="mthca.inf" Name="MTHCA.INF"\r
+                     Source="..\bin\HCA\ia64\mthca.inf" />\r
+              <File Id="mthca.cat" Compressed="yes" DiskId="1"\r
+                     LongName="mthca.cat" Name="MTHCA.cat"\r
+                     Source="..\bin\HCA\ia64\mthca.cat" />\r
+              <File Id="mthca.sys" Compressed="yes" DiskId="1"\r
+                     LongName="mthca.sys" Name="MTHCA.SYS"\r
+                     Source="..\bin\HCA\ia64\mthca.sys" />\r
+              <File Id="mthca.pdb" Name="mthca.pdb" DiskId="1"\r
+                     Compressed="yes" Source="..\bin\HCA\ia64\mthca.pdb" />\r
+              <File Id="mthcau.dll" Compressed="yes" DiskId="1"\r
+                     LongName="mthcau.dll" Name="MTHCAU.DLL"\r
+                     Source="..\bin\HCA\ia64\mthcau.dll" />\r
+              <File Id="mthcaud.dll" Compressed="yes" DiskId="1"\r
+                     LongName="mthcaud.dll" Name="MTHCAUD.DLL"\r
+                     Source="..\bin\HCA\ia64\mthcaud.dll" />\r
+            </Component>\r
+\r
+<!-- Remove when ConnectX works on ia64\r
+            <Component Id="cConnectXDriver"\r
+                       Guid="C1EFF4D6-CE55-432a-9D92-E46AB983D9E3">\r
+              <File Id="mlx4_bus.inf" Compressed="yes" DiskId="1"\r
+                     LongName="mlx4_bus.inf" Name="mlx4_bus.INF"\r
+                     Source="..\bin\hca\ia64\mlx4_bus.inf" />\r
+              <File Id="mlx4_bus.cat" Compressed="yes" DiskId="1"\r
+                     LongName="mlx4_bus.cat" Name="mlx4_bus.cat"\r
+                     Source="..\bin\hca\ia64\mlx4_bus.cat" />\r
+              <File Id="mlx4_bus.sys" Compressed="yes" DiskId="1"\r
+                     LongName="mlx4_bus.sys" Name="mlx4_bus.sys"\r
+                     Source="..\bin\hca\ia64\mlx4_bus.sys" />\r
+              <File Id="mlx4_bus.pdb" Compressed="yes" DiskId="1"\r
+                     Name="mlx4_bus.pdb"\r
+                     Source="..\bin\hca\ia64\mlx4_bus.pdb" />\r
+              <File Id="wdfcoinstaller" Compressed="yes" DiskId="1"\r
+                     LongName="WdfCoInstaller01007.dll" Name="WCO.dll"\r
+                     Source="..\bin\hca\ia64\WdfCoInstaller01007.dll" />\r
+              <File Id="mlx4_hca.inf" Compressed="yes" DiskId="1"\r
+                     LongName="mlx4_hca.inf" Name="mlx4_hca.INF"\r
+                     Source="..\bin\hca\ia64\mlx4_hca.inf" />\r
+              <File Id="mlx4_hca.cat" Compressed="yes" DiskId="1"\r
+                     LongName="mlx4_hca.cat" Name="mlx4_hca.cat"\r
+                     Source="..\bin\hca\ia64\mlx4_hca.cat" />\r
+              <File Id="mlx4_hca.sys" Compressed="yes" DiskId="1"\r
+                     LongName="mlx4_hca.sys" Name="mlx4_hca.sys"\r
+                     Source="..\bin\hca\ia64\mlx4_hca.sys" />\r
+              <File Id="mlx4_hca.pdb" Compressed="yes" DiskId="1"\r
+                     LongName="mlx4_hca.pdb" Name="mlx4_hca.pdb"\r
+                     Source="..\bin\hca\ia64\mlx4_hca.pdb" />\r
+              <File Id="mlx4u.dll" Compressed="yes" DiskId="1"\r
+                     LongName="mlx4u.dll" Name="mlx4u.dll"\r
+                     Source="..\bin\hca\ia64\mlx4u.dll" />\r
+              <File Id="mlx4ud.dll" Compressed="yes" DiskId="1"\r
+                     LongName="mlx4ud.dll" Name="mlx4ud.dll"\r
+                     Source="..\bin\hca\ia64\mlx4ud.dll" />\r
+\r
+                         <!++ copy 32-bit binaries for 32b in ia64 ++> \r
+              <File Id="mlx4u32d.dll" Compressed="yes" DiskId="1"\r
+                     LongName="mlx4u32d.dll" Name="mlx4u32.dll"\r
+                     Source="..\bin\hca\ia64\mlx4u32d.dll" />\r
+              <File Id="mlx4u32.dll" Compressed="yes" DiskId="1"\r
+                     LongName="mlx4u32.dll" Name="mlx4u32.dll"\r
+                     Source="..\bin\hca\ia64\mlx4u32.dll" />\r
+            </Component>\r
+End Remove -->\r
+\r
+          </Directory>\r
+\r
+          <Directory Id="dir_0" Name="Checked">\r
+            <Directory Id="dir_1" Name="kernel">\r
+              <Component Id="cCHK_kernel"\r
+                         Guid="D96F299E-EEAA-44a5-BBC4-A862A158BA6B">\r
+                <CreateFolder />\r
+\r
+                <File Id="chk0" Name="README.txt" DiskId="1" Compressed="yes"\r
+                  Source="..\..\README_checked.txt" />\r
+                <File Id="chk1" Name="mthca.sys" DiskId="1" Compressed="yes"\r
+                  Source="..\bin\Chk\HCA\ia64\mthca.sys" />\r
+                <File Id="cat1" Name="mthca.cat" DiskId="1" Compressed="yes"\r
+                  Source="..\bin\Chk\HCA\ia64\mthca.cat" />\r
+                <File Id="sym1" Name="mthca.pdb" DiskId="1" Compressed="yes"\r
+                  Source="..\bin\Chk\HCA\ia64\mthca.pdb" />\r
+\r
+                <File Id="chk2" Name="ibbus.sys" DiskId="1" Compressed="yes"\r
+                  Source="..\bin\Chk\HCA\ia64\ibbus.sys" />\r
+                <File Id="sym2" Name="ibbus.pdb" DiskId="1" Compressed="yes"\r
+                  Source="..\bin\Chk\HCA\ia64\ibbus.pdb" />\r
+\r
+                <File Id="chk3" Name="ibiou.sys" DiskId="1" Compressed="yes"\r
+                  Source="..\bin\Chk\HCA\ia64\ibiou.sys" />\r
+                <File Id="cat3" Name="ib_iou.cat" DiskId="1" Compressed="yes"\r
+                  Source="..\bin\Chk\HCA\ia64\ib_iou.cat" />\r
+                <File Id="sym3" Name="ibiou.pdb" DiskId="1" Compressed="yes"\r
+                  Source="..\bin\Chk\HCA\ia64\ibiou.pdb" />\r
+\r
+                <File Id="chk4" Name="ipoib.sys" DiskId="1" Compressed="yes"\r
+                  Source="..\bin\Chk\net\ia64\ipoib.sys" />\r
+                <File Id="cat4" Name="ipoib.cat" DiskId="1" Compressed="yes"\r
+                  Source="..\bin\Chk\net\ia64\ipoib.cat" />\r
+                <File Id="sym4" Name="ipoib.pdb" DiskId="1" Compressed="yes"\r
+                  Source="..\bin\Chk\net\ia64\ipoib.pdb" />\r
+\r
+                <File Id="chk5" Name="qlgcvnic.sys" DiskId="1" Compressed="yes"\r
+                  Source="..\bin\Chk\net\ia64\qlgcvnic.sys" />\r
+                <File Id="cat5" Name="netvnic.cat" DiskId="1" Compressed="yes"\r
+                  Source="..\bin\Chk\net\ia64\netvnic.cat" />\r
+                <File Id="sym5" Name="qlgcvnic.pdb" DiskId="1" Compressed="yes"\r
+                  Source="..\bin\Chk\net\ia64\qlgcvnic.pdb" />\r
+\r
+                <File Id="chk6" Name="ibsrp.sys" DiskId="1" Compressed="yes"\r
+                  Source="..\bin\Chk\storage\ia64\ibsrp.sys" />\r
+                <File Id="cat6" Name="ibsrp.cat" DiskId="1" Compressed="yes"\r
+                  Source="..\bin\Chk\storage\ia64\ibsrp.cat" />\r
+                <File Id="sym6" Name="ibsrp.pdb" DiskId="1" Compressed="yes"\r
+                  Source="..\bin\Chk\storage\ia64\ibsrp.pdb" />\r
+\r
+              </Component>\r
+            </Directory>\r
+      \r
+            <Directory Id="dir_14" Name="user">\r
+              <Component Id="cCHK_user" \r
+                         Guid="A4AC788B-6517-47b2-A898-0493ADC794D5">\r
+                <CreateFolder />\r
+                <File Id="file83" Name="DAPL2-_1.DLL"\r
+                  LongName="dapl2-scmd.dll" DiskId="1" Compressed="yes"\r
+                  Source="..\bin\bin\user\objchk_wlh_ia64\ia64\dapl2-scmd.dll" />\r
+                <File Id="file84" Name="dapl2d.dll" DiskId="1" Compressed="yes"\r
+                  Source="..\bin\bin\user\objchk_wlh_ia64\ia64\dapl2d.dll" />\r
+                <File Id="file85" Name="DAPL2T_1.EXE"\r
+                  LongName="dapl2testd.exe" DiskId="1" Compressed="yes"\r
+                  Source="..\bin\bin\user\objchk_wlh_ia64\ia64\dapl2testd.exe" />\r
+                <File Id="file86" Name="dapld.dll" DiskId="1" Compressed="yes"\r
+                  Source="..\bin\bin\user\objchk_wlh_ia64\ia64\dapld.dll" />\r
+                <File Id="file87" Name="DAPLTE_1.EXE"\r
+                  LongName="dapltestd.exe" DiskId="1" Compressed="yes"\r
+                  Source="..\bin\bin\user\objchk_wlh_ia64\ia64\dapltestd.exe" />\r
+                <File Id="file88" Name="dat2d.dll" DiskId="1" Compressed="yes"\r
+                  Source="..\bin\bin\user\objchk_wlh_ia64\ia64\dat2d.dll" />\r
+                <File Id="file89" Name="datd.dll" DiskId="1" Compressed="yes"\r
+                  Source="..\bin\bin\user\objchk_wlh_ia64\ia64\datd.dll" />\r
+                <File Id="file90" Name="dtest2d.exe" DiskId="1" Compressed="yes"\r
+                  Source="..\bin\bin\user\objchk_wlh_ia64\ia64\dtest2d.exe" />\r
+                <File Id="file91" Name="dtestxd.exe" DiskId="1" Compressed="yes"\r
+                  Source="..\bin\bin\user\objchk_wlh_ia64\ia64\dtestxd.exe" />\r
+                <File Id="file94" Name="ibald.dll" DiskId="1" Compressed="yes"\r
+                  Source="..\bin\bin\user\objchk_wlh_ia64\ia64\ibald.dll" />\r
+                <File Id="file95" Name="IBINST_1.DLL"\r
+                  LongName="IbInstaller.dll" DiskId="1" Compressed="yes"\r
+                  Source="..\bin\bin\user\objchk_wlh_ia64\ia64\IbInstaller.dll" />\r
+                <File Id="file97" Name="ibwsd.dll" DiskId="1" Compressed="yes"\r
+                  Source="..\bin\bin\user\objchk_wlh_ia64\ia64\ibwsd.dll" />\r
+                <File Id="file105" Name="INSTAL_1.EXE"\r
+                  LongName="installsp.exe" DiskId="1" Compressed="yes"\r
+                  Source="..\bin\bin\user\objchk_wlh_ia64\ia64\installsp.exe" />\r
+                <File Id="file108" Name="mthcaud.dll" DiskId="1" Compressed="yes"\r
+                  Source="..\bin\bin\user\objchk_wlh_ia64\ia64\mthcaud.dll" />\r
+                <File Id="file110" Name="opensm.exe" DiskId="1" Compressed="yes"\r
+                  Source="..\bin\bin\user\objchk_wlh_ia64\ia64\opensm.exe" />\r
+                <File Id="file115" Name="vstat.exe" DiskId="1" Compressed="yes"\r
+                  Source="..\bin\bin\user\objchk_wlh_ia64\ia64\vstat.exe" />\r
+                <File Id="file116" Name="part_man.exe"\r
+                  DiskId="1" Compressed="yes"\r
+                  Source="..\bin\bin\user\objchk_wlh_ia64\ia64\part_man.exe" />\r
+              </Component>\r
+            </Directory>\r
+          </Directory>\r
+\r
+          <Directory Id="wvDir" Name="WinVerbs">\r
+             <Component Id="cWinVerbsKernel"\r
+                       Guid="F5FA1491-E2D2-4f22-9549-07C61F86BFEB">\r
+               <CreateFolder />\r
+\r
+               <File Id="winverbs.inf" Compressed="yes" DiskId="1"\r
+                     LongName="winverbs.inf" Name="winverbs.INF"\r
+                     Source="..\bin\HCA\ia64\winverbs.inf" />\r
+               <File Id="winverbs.sys" Compressed="yes" DiskId="1"\r
+                     LongName="winverbs.sys" Name="winverbs.sys"\r
+                     Source="..\bin\HCA\ia64\winverbs.sys" />\r
+               <File Id="winverbs.cat" Compressed="yes" DiskId="1"\r
+                     LongName="winverbs.cat" Name="winverbs.cat"\r
+                     Source="..\bin\HCA\ia64\winverbs.cat" />\r
+               <File Id="winverbs.dll" Compressed="yes" DiskId="1"\r
+                     LongName="winverbs.dll" Name="winvrbs.dll"\r
+                     Source="..\bin\HCA\ia64\winverbs.dll" />\r
+               <File Id="winverbsd.dll" Compressed="yes" DiskId="1"\r
+                     LongName="winverbsd.dll" Name="winvrbsd.dll"\r
+                     Source="..\bin\HCA\ia64\winverbsd.dll" />\r
+               <File Id="wvWdfCoinstaller" Compressed="yes" DiskId="1"\r
+                     LongName="WdfCoInstaller01007.dll" Name="WCO.dll"\r
+                     Source="..\bin\HCA\ia64\WdfCoInstaller01007.dll" />\r
+             </Component>\r
+\r
+             <Component Id="cWinVerbsUser"\r
+                       Guid="20916BB0-5E16-49bb-BE9F-3A202D760E72">\r
+\r
+               <File Id="winverbs.lib" Compressed="yes" DiskId="1"\r
+                     LongName="winverbs.lib" Name="winverbs.lib"\r
+                     Source="..\bin\HCA\ia64\winverbs.lib" />\r
+               <CopyFile Id="dupWverbs.lib" FileId="winverbs.lib"\r
+                     DestinationName="winverbs.lib"\r
+                     DestinationProperty="WindowsFolder" />\r
+\r
+               <File Id="winverbsd.lib" Compressed="yes" DiskId="1"\r
+                     LongName="winverbsd.lib" Name="winvrbsd.lib"\r
+                     Source="..\bin\HCA\ia64\winverbsd.lib" />\r
+\r
+               <File Id="libibverbs.dll" Compressed="yes" DiskId="1"\r
+                     LongName="libibverbs.dll" Name="ibverbs.dll"\r
+                     Source="..\bin\HCA\ia64\libibverbs.dll" />\r
+               <CopyFile Id="dupLibibv.dll" FileId="libibverbs.dll"\r
+                     DestinationName="ibverbs.dll"\r
+                     DestinationLongName="libibverbs.dll"\r
+                     DestinationProperty="WindowsFolder" />\r
+\r
+               <File Id="libibverbs.lib" Compressed="yes" DiskId="1"\r
+                     LongName="libibverbs.lib" Name="ibverbs.lib"\r
+                     Source="..\bin\HCA\ia64\libibverbs.lib" />\r
+               <CopyFile Id="dupLibibv.lib" FileId="libibverbs.lib"\r
+                     DestinationName="ibverbs.lib"\r
+                     DestinationLongName="libibverbs.lib"\r
+                     DestinationProperty="WindowsFolder" />\r
+\r
+               <File Id="libibverbsd.dll" Compressed="yes" DiskId="1"\r
+                     LongName="libibverbsd.dll" Name="ibverbsd.dll"\r
+                     Source="..\bin\HCA\ia64\libibverbsd.dll" />\r
+\r
+               <File Id="libibverbsd.lib" Compressed="yes" DiskId="1"\r
+                     LongName="libibverbsd.lib" Name="ibverbsd.lib"\r
+                     Source="..\bin\HCA\ia64\libibverbsd.lib" />\r
+             </Component>\r
+          </Directory>\r
+\r
+          <Component Id="cWinVerbsUApps"\r
+                    Guid="ECAB2829-AE65-4ef8-8214-9A89E5BBDB9A">\r
+\r
+            <File Id="ibv_asyncwatch.exe" Compressed="yes" DiskId="1"\r
+                  LongName="ibv_asyncwatch.exe" Name="asyncwat.exe"\r
+                  Source="..\bin\tools\ia64\release\ibv_asyncwatch.exe" />\r
+            <File Id="ibv_devinfo.exe" Compressed="yes" DiskId="1"\r
+                  LongName="ibv_devinfo.exe" Name="devinfo.exe"\r
+                  Source="..\bin\tools\ia64\release\ibv_devinfo.exe" />\r
+            <File Id="ibv_rc_pingpong.exe" Compressed="yes" DiskId="1"\r
+                  LongName="ibv_rc_pingpong.exe" Name="ibv_rc_p.exe"\r
+                  Source="..\bin\tools\ia64\release\ibv_rc_pingpong.exe" />\r
+            <File Id="ibv_read_bw.exe" Compressed="yes" DiskId="1"\r
+                  LongName="ibv_read_bw.exe" Name="readbw.exe"\r
+                  Source="..\bin\tools\ia64\release\ibv_read_bw.exe" />\r
+            <File Id="ibv_read_lat.exe" Compressed="yes" DiskId="1"\r
+                  LongName="ibv_read_lat.exe" Name="readlat.exe"\r
+                  Source="..\bin\tools\ia64\release\ibv_read_lat.exe" />\r
+            <File Id="ibv_send_bw.exe" Compressed="yes" DiskId="1"\r
+                  LongName="ibv_send_bw.exe" Name="send_bw.exe"\r
+                  Source="..\bin\tools\ia64\release\ibv_send_bw.exe" />\r
+            <File Id="ibv_send_lat.exe" Compressed="yes" DiskId="1"\r
+                  LongName="ibv_send_lat.exe" Name="send_lat.exe"\r
+                  Source="..\bin\tools\ia64\release\ibv_send_lat.exe" />\r
+            <File Id="ibv_uc_pingpong.exe" Compressed="yes" DiskId="1"\r
+                  LongName="ibv_uc_pingpong.exe" Name="uc_ping.exe"\r
+                  Source="..\bin\tools\ia64\release\ibv_uc_pingpong.exe" />\r
+            <File Id="ibv_ud_pingpong.exe" Compressed="yes" DiskId="1"\r
+                  LongName="ibv_ud_pingpong.exe" Name="ud_ping.exe"\r
+                  Source="..\bin\tools\ia64\release\ibv_ud_pingpong.exe" />\r
+            <File Id="ibv_write_bw.exe" Compressed="yes" DiskId="1"\r
+                  LongName="ibv_write_bw.exe" Name="write_bw.exe"\r
+                  Source="..\bin\tools\ia64\release\ibv_write_bw.exe" />\r
+            <File Id="ibv_write_lat.exe" Compressed="yes" DiskId="1"\r
+                  LongName="ibv_write_lat.exe" Name="writelat.exe"\r
+                  Source="..\bin\tools\ia64\release\ibv_write_lat.exe" />\r
+          </Component>\r
+\r
+          <Directory Id="ipoibDir" Name="net">\r
+            <Component Id="IPoIB" Guid="18CC13CC-0D29-4B88-8F03-854CE0C6AF94">\r
+              <CreateFolder />\r
+              <File Id="netipoib_inf" Compressed="yes" DiskId="1"\r
+                     LongName="netipoib.inf" Name="NETIPOI.INF"\r
+                     Source="..\bin\net\ia64\netipoib.inf" />\r
+              <File Id="ipoib_cat" Compressed="yes" DiskId="1"\r
+                     LongName="ipoib.cat" Name="IPOI.cat"\r
+                     Source="..\bin\net\ia64\ipoib.cat" />\r
+              <File Id="ipoib.sys" Compressed="yes" DiskId="1"\r
+                     LongName="ipoib.sys" Name="IPOIB.SYS"\r
+                     Source="..\bin\net\ia64\ipoib.sys" />\r
+              <File Id="ipoib.pdb" Compressed="yes" DiskId="1"\r
+                     Name="ipoib.pdb"\r
+                     Source="..\bin\net\ia64\ipoib.pdb" />\r
+              <File Id="ibwsd32.dll" Compressed="yes" DiskId="1"\r
+                     LongName="ibwsd32.dll" Name="IBWSD32.DLL"\r
+                     Source="..\bin\net\ia64\ibwsd32.dll" />\r
+                <CopyFile Id="dup_ibwsd32" FileId="ibwsd32.dll"\r
+                        DestinationName="ibwsd.dll"\r
+                        DestinationProperty="SystemFolder" />\r
+              <File Id="ibwsd.dll" Compressed="yes" DiskId="1"\r
+                     LongName="ibwsd.dll" Name="IBWSD.DLL"\r
+                     Source="..\bin\net\ia64\ibwsd.dll" />\r
+              <File Id="ibndprov.dll" Compressed="yes" DiskId="1"\r
+                     LongName="ibndprov.dll" Name="IBNDPROV.DLL"\r
+                     Source="..\bin\net\ia64\ibndprov.dll" />\r
+              <File Id="ibndprov32.dll" Compressed="yes" DiskId="1"\r
+                     LongName="ibndprov32.dll" Name="IBNDPR32.DLL"\r
+                     Source="..\bin\net\ia64\ibndprov32.dll" />\r
+              <File Id="ndinstall.exe" Compressed="yes" DiskId="1"\r
+                     LongName="ndinstall.exe" Name="NDINSTAL.EXE"\r
+                     Source="..\bin\net\ia64\ndinstall.exe" />\r
+            </Component>\r
+          </Directory>\r
+\r
+          <Component Id="WinsockDirect"\r
+                     Guid="516A61B4-EBC2-41CE-8D18-81BADA4649D4">\r
+            <File Id="installsp.exe" Compressed="yes" DiskId="1"\r
+                     LongName="installsp.exe" Name="INSTALL.EXE"\r
+                     Source="..\bin\net\ia64\installsp.exe" />\r
+          </Component>\r
+<!-- when ND works for ia64\r
+          <Component Id="cNetworkDirect"\r
+                     Guid="F3BA9E15-E532-4b8c-BB0C-E8C1CC0EEF3F">\r
+          </Component>\r
+-->\r
+\r
+          <Component Id="cDAPL1RT" Guid="A49F1ECC-14E4-4310-9F37-BEB7B00243A9">\r
+              <File Id="dapl32.dll" Compressed="yes" DiskId="1"\r
+                     LongName="dapl32.dll" Name="DAPL32.DLL"\r
+                     Source="..\bin\DAPL\ia64\dapl32.dll" />\r
+              <File Id="dapl32d.dll" Compressed="yes" DiskId="1"\r
+                     LongName="dapl32d.dll" Name="DAPL32D.DLL"\r
+                     Source="..\bin\DAPL\ia64\dapl32d.dll" />\r
+              <File Id="dapl.dll" Compressed="yes" DiskId="1"\r
+                     LongName="dapl.dll" Name="DAPL.DLL"\r
+                     Source="..\bin\DAPL\ia64\dapl.dll" />\r
+                <CopyFile Id="dupDAPL" FileId="dapl.dll"\r
+                        DestinationName="dapl.dll"\r
+                        DestinationProperty="WindowsFolder" />\r
+              <File Id="dapld.dll" Compressed="yes" DiskId="1"\r
+                     LongName="dapld.dll" Name="DAPLD.DLL"\r
+                     Source="..\bin\DAPL\ia64\dapld.dll" />\r
+              <File Id="dat32.dll" Compressed="yes" DiskId="1"\r
+                     LongName="dat32.dll" Name="DAT32.DLL"\r
+                     Source="..\bin\DAPL\ia64\dat32.dll" />\r
+              <File Id="dat32d.dll" Compressed="yes" DiskId="1"\r
+                     LongName="dat32d.dll" Name="DAT32D.DLL"\r
+                     Source="..\bin\DAPL\ia64\dat32d.dll" />\r
+              <File Id="dat.dll" Compressed="yes" DiskId="1"\r
+                     LongName="dat.dll" Name="DAT.DLL"\r
+                     Source="..\bin\DAPL\ia64\dat.dll" />\r
+              <CopyFile Id="dupDAT" FileId="dat.dll"\r
+                        DestinationName="dat.dll"\r
+                        DestinationProperty="WindowsFolder" />\r
+              <File Id="datd.dll" Compressed="yes" DiskId="1"\r
+                     LongName="datd.dll" Name="DATD.DLL"\r
+                     Source="..\bin\DAPL\ia64\datd.dll" />\r
+\r
+              <File Id="dat.conf" Compressed="yes" DiskId="1"\r
+                     LongName="dat.conf" Name="dat.conf"\r
+                     Source="..\..\dat.conf" />\r
+              <File Id="dapltest.exe" Compressed="yes" DiskId="1"\r
+                     LongName="dapltest.exe" Name="dapltest.exe"\r
+                     Source="..\bin\tools\ia64\release\dapltest.exe" />\r
+              <File Id="dapltestd.exe" Compressed="yes" DiskId="1"\r
+                     LongName="dapltestd.exe" Name="dapltesd.exe"\r
+                     Source="..\bin\tools\ia64\debug\dapltestd.exe" />\r
+\r
+              <File Id="dapl.pdb" Compressed="yes" DiskId="1"\r
+                    LongName="dapl.pdb" Name="dapl.pdb"\r
+                    Source="..\bin\DAPL\ia64\dapl.pdb" />\r
+              <File Id="dapld.pdb" Compressed="yes" DiskId="1"\r
+                    LongName="dapld.pdb" Name="dapld.pdb"\r
+                    Source="..\bin\DAPL\ia64\dapld.pdb" />\r
+              <File Id="dat.lib" Compressed="yes" DiskId="1"\r
+                    LongName="dat.lib" Name="dat.lib"\r
+                    Source="..\bin\DAPL\ia64\dat.lib" />\r
+              <File Id="datd.lib" Compressed="yes" DiskId="1"\r
+                    LongName="datd.lib" Name="datd.lib"\r
+                    Source="..\bin\DAPL\ia64\datd.lib" />\r
+              <File Id="dat.pdb" Compressed="yes" DiskId="1"\r
+                    LongName="dat.pdb" Name="dat.pdb"\r
+                    Source="..\bin\DAPL\ia64\dat.pdb" />\r
+              <File Id="datd.pdb" Compressed="yes" DiskId="1"\r
+                    LongName="datd.pdb" Name="datd.pdb"\r
+                    Source="..\bin\DAPL\ia64\datd.pdb" />\r
+              <File Id="dt_svr.bat" Compressed="yes" DiskId="1"\r
+                    LongName="dt-svr.bat" Name="dt-svr.bat"\r
+                    Source="..\bin\DAPL2\dt-svr.bat" />\r
+              <CopyFile Id="dup_dt_svr" FileId="dt_svr.bat"\r
+                        DestinationName="dt1-svr.bat"\r
+                        DestinationProperty="INSTALLDIR" />\r
+              <File Id="dt_cli.bat" Compressed="yes" DiskId="1"\r
+                    LongName="dt-cli.bat" Name="dt-cli.bat"\r
+                    Source="..\bin\DAPL2\dt-cli.bat" />\r
+              <CopyFile Id="dup_dt_cli" FileId="dt_cli.bat"\r
+                        DestinationName="dt1-cli.bat"\r
+                        DestinationProperty="INSTALLDIR" />\r
+          </Component>\r
+\r
+          <Component Id="cDAPL2RT" Guid="02C3490D-EF11-40C9-9E8D-0BEE97082A6A">\r
+              <File Id="_dapl32.dll" Compressed="yes" DiskId="1"\r
+                     LongName="dapl232.dll" Name="DAPL232.DLL"\r
+                     Source="..\bin\DAPL2\ia64\dapl232.dll" />\r
+              <File Id="_dapl32d.dll" Compressed="yes" DiskId="1"\r
+                     LongName="dapl232d.dll" Name="DAPL232D.DLL"\r
+                     Source="..\bin\DAPL2\ia64\dapl232d.dll" />\r
+              <File Id="_dapl2.dll" Compressed="yes" DiskId="1"\r
+                     LongName="dapl2.dll" Name="DAPL2.DLL"\r
+                     Source="..\bin\DAPL2\ia64\dapl2.dll" />\r
+                <CopyFile Id="dupDAPL2" FileId="_dapl2.dll"\r
+                        DestinationName="dapl2.dll"\r
+                        DestinationProperty="WindowsFolder" />\r
+              <File Id="_dapl2d.dll" Compressed="yes" DiskId="1"\r
+                     LongName="dapl2d.dll" Name="DAPL2D.DLL"\r
+                     Source="..\bin\DAPL2\ia64\dapl2d.dll" />\r
+              <File Id="_dapl2_scm.dll" Compressed="yes" DiskId="1"\r
+                          LongName="dapl2-scm.dll" Name="D2-scm.DLL"\r
+                          Source="..\bin\DAPL2\ia64\dapl2-scm.dll" />\r
+              <CopyFile Id="dupDAPL2_scm" FileId="_dapl2_scm.dll"\r
+                              DestinationName="d2-scm.dll"\r
+                              DestinationLongName="dapl2-scm.dll"\r
+                              DestinationProperty="WindowsFolder" />\r
+              <File Id="_dapl2_scmd.dll" Compressed="yes" DiskId="1"\r
+                          LongName="dapl2-scmd.dll" Name="D2-scmd.DLL"\r
+                          Source="..\bin\DAPL2\ia64\dapl2-scmd.dll" />\r
+              <File Id="_dat32.dll" Compressed="yes" DiskId="1"\r
+                     LongName="dat232.dll" Name="DAT232.DLL"\r
+                     Source="..\bin\DAPL2\ia64\dat232.dll" />\r
+              <File Id="_dat32d.dll" Compressed="yes" DiskId="1"\r
+                     LongName="dat232d.dll" Name="DAT232D.DLL"\r
+                     Source="..\bin\DAPL2\ia64\dat232d.dll" />\r
+              <File Id="_dat2.dll" Compressed="yes" DiskId="1"\r
+                     LongName="dat2.dll" Name="DAT2.DLL"\r
+                     Source="..\bin\DAPL2\ia64\dat2.dll" />\r
+              <CopyFile Id="dupDAT2" FileId="_dat2.dll"\r
+                        DestinationName="dat2.dll"\r
+                        DestinationProperty="WindowsFolder" />\r
+              <File Id="_dat2d.dll" Compressed="yes" DiskId="1"\r
+                     LongName="dat2d.dll" Name="DAT2D.DLL"\r
+                     Source="..\bin\DAPL2\ia64\dat2d.dll" />\r
+              <File Id="dapl2test.exe" Compressed="yes" DiskId="1"\r
+                     LongName="dapl2test.exe" Name="dapl2tes.exe"\r
+                     Source="..\bin\tools\ia64\release\dapl2test.exe" />\r
+              <File Id="dapl2testd.exe" Compressed="yes" DiskId="1"\r
+                     LongName="dapl2testd.exe" Name="dapl2tes.exe"\r
+                     Source="..\bin\tools\ia64\debug\dapl2testd.exe" />\r
+              <File Id="dtest2.exe" Compressed="yes" DiskId="1"\r
+                     LongName="dtest2.exe" Name="dtest2.exe"\r
+                     Source="..\bin\tools\ia64\release\dtest2.exe" />\r
+              <File Id="dtestx.exe" Compressed="yes" DiskId="1"\r
+                     LongName="dtestx.exe" Name="dtestx.exe"\r
+                     Source="..\bin\tools\ia64\release\dtestx.exe" />\r
+\r
+              <File Id="dapl2.pdb" Compressed="yes" DiskId="1"\r
+                    LongName="dapl2.pdb" Name="dapl2.pdb"\r
+                    Source="..\bin\DAPL2\ia64\dapl2.pdb" />\r
+              <File Id="dapl2d.pdb" Compressed="yes" DiskId="1"\r
+                    LongName="dapl2d.pdb" Name="dapl2d.pdb"\r
+                    Source="..\bin\DAPL2\ia64\dapl2d.pdb" />\r
+              <File Id="dat2.pdb" Compressed="yes" DiskId="1"\r
+                    LongName="dat2.pdb" Name="dat2.pdb"\r
+                    Source="..\bin\DAPL2\ia64\dat2.pdb" />\r
+              <File Id="dat2d.pdb" Compressed="yes" DiskId="1"\r
+                    LongName="dat2d.pdb" Name="dat2d.pdb"\r
+                    Source="..\bin\DAPL2\ia64\dat2d.pdb" />\r
+              <File Id="dat2.lib" Compressed="yes" DiskId="1"\r
+                    LongName="dat2.lib" Name="dat2.lib"\r
+                    Source="..\bin\DAPL2\ia64\dat2.lib" />\r
+              <File Id="dat2d.lib" Compressed="yes" DiskId="1"\r
+                    LongName="dat2d.lib" Name="dat2d.lib"\r
+                    Source="..\bin\DAPL2\ia64\dat2d.lib" />\r
+          </Component>\r
+\r
+          <Directory Id="qlgcvnicDir" Name="qlgcvnic">\r
+            <Component Id="cQLVNIC" Guid="2AE69B67-C5FD-4CEE-9DF4-FB0A55619B4A">\r
+              <CreateFolder />\r
+              <File Id="qlgcvnic.sys" Compressed="yes" DiskId="1"\r
+                     LongName="qlgcvnic.sys" Name="QLGCVNIC.SYS"\r
+                     Source="..\bin\net\ia64\qlgcvnic.sys" />\r
+              <File Id="qlgcvnic.pdb" Compressed="yes" DiskId="1"\r
+                     Name="qlgcvnic.pdb"\r
+                     Source="..\bin\net\ia64\qlgcvnic.pdb" />\r
+              <File Id="netvnic.inf" Compressed="yes" DiskId="1"\r
+                     LongName="netvnic.inf" Name="NETVNIC.INF"\r
+                     Source="..\bin\net\ia64\netvnic.inf" />\r
+              <File Id="netvnic.cat" Compressed="yes" DiskId="1"\r
+                     LongName="netvnic.cat" Name="NETVNIC.cat"\r
+                     Source="..\bin\net\ia64\netvnic.cat" />\r
+            </Component>\r
+          </Directory>\r
+\r
+          <!-- RDMA SCSI over IB (aka SRP) -->\r
+          <Directory Id="srpDir" Name="SRP">\r
+            <Component Id="cSRP_driver"\r
+                       Guid="BB58772F-061F-48B0-B6D5-0C0E38A301B2">\r
+              <File Id="ib_srp.inf" Compressed="yes" DiskId="1"\r
+                     LongName="ib_srp.inf" Name="IB_SRP.INF"\r
+                     Source="..\bin\storage\ia64\ib_srp.inf" />\r
+              <File Id="ibsrp.cat" Compressed="yes" DiskId="1"\r
+                     LongName="ibsrp.cat" Name="IBSRP.CAT"\r
+                     Source="..\bin\storage\ia64\ibsrp.cat" />\r
+              <File Id="ibsrp.sys" Compressed="yes" DiskId="1"\r
+                     LongName="ibsrp.sys" Name="IBSRP.SYS"\r
+                     Source="..\bin\storage\ia64\ibsrp.sys" />\r
+              <File Id="ibsrp.pdb" Compressed="yes" DiskId="1"\r
+                     Name="ibsrp.pdb"\r
+                     Source="..\bin\storage\ia64\ibsrp.pdb" />\r
+             </Component>\r
+          </Directory>\r
+\r
+          <Component Id="OpenSM_Service_enabled"\r
+                     Guid="3A148CF8-129D-4AE0-A769-5FC0E0828B5E">\r
+          </Component>\r
+        </Directory>\r
+        </Directory>\r
+\r
+      <!-- copy DAT header files -->\r
+\r
+      <Directory Id="WindowsVolume" Name="Root" SourceName="WinRoot">    \r
+\r
+          <Directory Id="dDATD" Name="DAT">\r
+            <Component Id="cDatCfg" Guid="54A4F997-AC33-45D8-9899-6332E40B62A8">\r
+              <CreateFolder />\r
+              <File Id="_dat.conf" Compressed="yes" DiskId="1" KeyPath="yes"\r
+                     LongName="dat.conf" Name="dat.conf"\r
+                     Source="..\..\dat.conf" />\r
+            </Component>\r
+\r
+            <Directory Id="v1_1" Name="v1-1">\r
+              <Component Id="cDATV1" Guid="D8EB75CB-8DE0-41B1-904B-CED87C893049"\r
+                         KeyPath="yes" SharedDllRefCount="yes">\r
+                <CreateFolder />\r
+              </Component>\r
+\r
+              <Directory Id="DDID" Name="DAT">    \r
+                <Component Id="cDatBldV1Hdrs"\r
+                          Guid="AA6BB350-5146-452F-B5F0-80BB9E3B0F55">    \r
+                  <CreateFolder />    \r
+                  <File Id="dat.h" Compressed="yes" DiskId="1"    \r
+                        LongName="dat.h" Name="dat.h"    \r
+                        Source="..\bin\DAPL\dat.h" />    \r
+\r
+                  <File Id="dat_error.h" Compressed="yes" DiskId="1"    \r
+                        LongName="dat_error.h" Name="dat.h"    \r
+                        Source="..\bin\DAPL\dat_error.h" />    \r
+    \r
+                  <File Id="dat_platform_specific.h" Compressed="yes"    \r
+                        DiskId="1" LongName="dat_platform_specific.h"    \r
+                        Name="dat_plat.h"    \r
+                       Source="..\bin\DAPL\dat_platform_specific.h" />    \r
+    \r
+                  <File Id="dat_redirection.h" Compressed="yes"    \r
+                        DiskId="1" LongName="dat_redirection.h"    \r
+                        Name="dat_redi.h"    \r
+                        Source="..\bin\DAPL\dat_redirection.h" />    \r
+    \r
+                  <File Id="dat_registry.h" Compressed="yes"    \r
+                        DiskId="1" LongName="dat_registry.h"    \r
+                        Name="dat_reg.h"    \r
+                        Source="..\bin\DAPL\dat_registry.h" />    \r
+    \r
+                  <File Id="dat_vendor_specific.h" Compressed="yes"    \r
+                        DiskId="1" LongName="dat_vendor_specific.h"    \r
+                        Name="dat_vend.h"    \r
+                        Source="..\bin\DAPL\dat_vendor_specific.h" />    \r
+    \r
+                  <File Id="udat.h" Compressed="yes" DiskId="1"    \r
+                        LongName="udat.h" Name="udat.h"    \r
+                        Source="..\bin\DAPL\udat.h" />    \r
+    \r
+                  <File Id="udat_config.h" Compressed="yes" DiskId="1"    \r
+                        LongName="udat_config.h" Name="udat_cfg.h"    \r
+                        Source="..\bin\DAPL\udat_config.h" />    \r
+    \r
+                  <File Id="udat_redirection.h" Compressed="yes"    \r
+                        DiskId="1" LongName="udat_redirection.h"    \r
+                        Name="udat_red.h"    \r
+                        Source="..\bin\DAPL\udat_redirection.h" />    \r
+    \r
+                  <File Id="udat_vendor_specific.h" Compressed="yes"    \r
+                        DiskId="1" LongName="udat_vendor_specific.h"    \r
+                        Name="udat_ven.h"    \r
+                        Source="..\bin\DAPL\udat_vendor_specific.h" />    \r
+                </Component>\r
+              </Directory>\r
+\r
+              <Component Id="cDatBldV1Libs"\r
+                          Guid="1BB9291E-79F5-4EC5-9400-4175BA1E5A91">    \r
+\r
+                  <File Id="_dat.lib" Compressed="yes" DiskId="1"\r
+                        LongName="dat.lib" Name="dat.lib"\r
+                        Source="..\bin\DAPL\ia64\dat.lib" />\r
+                  <File Id="_datd.lib" Compressed="yes" DiskId="1"\r
+                        LongName="datd.lib" Name="datd.lib"\r
+                        Source="..\bin\DAPL\ia64\datd.lib" />\r
+              </Component>\r
+            </Directory>\r
+\r
+            <Directory Id="v2_0" Name="v2-0">\r
+              <Component Id="cDATV2" Guid="A3CD6CA7-309B-48D2-B375-C9A91B37A876"\r
+                         KeyPath="yes" SharedDllRefCount="yes">\r
+                <CreateFolder />\r
+              </Component>\r
+\r
+              <Directory Id="DDID2" Name="DAT">    \r
+                <Component Id="cDatBldV2Hdrs"\r
+                          Guid="4D688030-53AC-4351-8999-E3AFEB38A92C" >    \r
+                  <CreateFolder />    \r
+                  <File Id="_dat.h" Compressed="yes" DiskId="1"    \r
+                        LongName="dat.h" Name="dat.h"    \r
+                        Source="..\bin\DAPL2\dat.h" />    \r
+\r
+                  <File Id="_dat_error.h" Compressed="yes" DiskId="1"    \r
+                        LongName="dat_error.h" Name="dat.h"    \r
+                        Source="..\bin\DAPL2\dat_error.h" />    \r
+    \r
+                  <File Id="_dat_platform_specific.h" Compressed="yes"    \r
+                        DiskId="1" LongName="dat_platform_specific.h"    \r
+                        Name="dat_plat.h"    \r
+                       Source="..\bin\DAPL2\dat_platform_specific.h" />    \r
+    \r
+                  <File Id="_dat_redirection.h" Compressed="yes"    \r
+                        DiskId="1" LongName="dat_redirection.h"    \r
+                        Name="dat_redi.h"    \r
+                        Source="..\bin\DAPL2\dat_redirection.h" />    \r
+    \r
+                  <File Id="_dat_registry.h" Compressed="yes"    \r
+                        DiskId="1" LongName="dat_registry.h"    \r
+                        Name="dat_reg.h"    \r
+                        Source="..\bin\DAPL2\dat_registry.h" />    \r
+    \r
+                  <File Id="_dat_vendor_specific.h" Compressed="yes"    \r
+                        DiskId="1" LongName="dat_vendor_specific.h"    \r
+                        Name="dat_vend.h"    \r
+                        Source="..\bin\DAPL2\dat_vendor_specific.h" />    \r
+    \r
+                  <File Id="_udat.h" Compressed="yes" DiskId="1"    \r
+                        LongName="udat.h" Name="udat.h"    \r
+                        Source="..\bin\DAPL2\udat.h" />    \r
+    \r
+                  <File Id="_udat_config.h" Compressed="yes" DiskId="1"    \r
+                        LongName="udat_config.h" Name="udat_cfg.h"    \r
+                        Source="..\bin\DAPL2\udat_config.h" />    \r
+    \r
+                  <File Id="_udat_redirection.h" Compressed="yes"    \r
+                        DiskId="1" LongName="udat_redirection.h"    \r
+                        Name="udat_red.h"    \r
+                        Source="..\bin\DAPL2\udat_redirection.h" />    \r
+    \r
+                  <File Id="_udat_vendor_specific.h" Compressed="yes"    \r
+                        DiskId="1" LongName="udat_vendor_specific.h"    \r
+                        Name="udat_ven.h"    \r
+                        Source="..\bin\DAPL2\udat_vendor_specific.h" />    \r
+                </Component>\r
+              </Directory>\r
+\r
+              <Component Id="cDatBldV2Libs"\r
+                          Guid="4DCE2855-1F42-4A7D-957A-44A47715C051" >    \r
+\r
+                  <File Id="_dat2.lib" Compressed="yes" DiskId="1"\r
+                        LongName="dat2.lib" Name="dat2.lib"\r
+                        Source="..\bin\DAPL2\ia64\dat2.lib" />\r
+                  <File Id="_dat2d.lib" Compressed="yes" DiskId="1"\r
+                        LongName="dat2d.lib" Name="dat2d.lib"\r
+                        Source="..\bin\DAPL2\ia64\dat2d.lib" />\r
+              </Component>    \r
+            </Directory>    \r
+\r
+          </Directory> <!-- DAT -->   \r
+\r
+          <Directory Id="IBSDK" Name="IBSDK">\r
+            <Directory Id="IB_libs" Name="lib">\r
+              <Component Id="cIBAL_Libs"\r
+                         Guid="12E15947-F84E-49d0-B5DF-FFC505C3F5C9">\r
+                <CreateFolder />\r
+                <File Id="ibal.lib" Compressed="yes" DiskId="1"\r
+                      LongName="ibal.lib" Name="ibal.lib"\r
+                      Source="..\bin\HCA\ia64\ibal.lib" />\r
+                <File Id="ibal.pdb" Compressed="yes" DiskId="1"\r
+                      LongName="ibal.pdb" Name="ibal.pdb"\r
+                      Source="..\bin\HCA\ia64\ibal.pdb" />\r
+                <File Id="complib.lib" Compressed="yes" DiskId="1"\r
+                      LongName="complib.lib" Name="complib.lib"\r
+                      Source="..\bin\HCA\ia64\complib.lib" />\r
+                <File Id="complib.pdb" Compressed="yes" DiskId="1"\r
+                      LongName="complib.pdb" Name="complib.pdb"\r
+                      Source="..\bin\HCA\ia64\complib.pdb" />\r
+              <File Id="ibald.lib" Compressed="yes" DiskId="1"\r
+                    LongName="ibald.lib" Name="ibald.lib"\r
+                    Source="..\bin\HCA\ia64\ibald.lib" />\r
+              <File Id="ibald.pdb" Compressed="yes" DiskId="1"\r
+                    LongName="ibald.pdb" Name="ibald.pdb"\r
+                    Source="..\bin\HCA\ia64\ibald.pdb" />\r
+              <File Id="complibd.lib" Compressed="yes" DiskId="1"\r
+                    LongName="complibd.lib" Name="complibd.lib"\r
+                    Source="..\bin\HCA\ia64\complibd.lib" />\r
+              <File Id="complibd.pdb" Compressed="yes" DiskId="1"\r
+                    LongName="complibd.pdb" Name="complibd.pdb"\r
+                    Source="..\bin\HCA\ia64\complibd.pdb" />\r
+\r
+              <!-- SysWOW64\ 32-bit libs -->\r
+              <File Id="cl32.lib" Compressed="yes" DiskId="1"\r
+                    LongName="complib32.lib" Name="cl32.lib"\r
+                    Source="..\bin\HCA\ia64\cl32.lib" />\r
+              <File Id="cl32.pdb" Compressed="yes" DiskId="1"\r
+                    LongName="complib32.pdb" Name="cl32.pdb"\r
+                    Source="..\bin\HCA\ia64\cl32.pdb" />\r
+              <File Id="cl32d.lib" Compressed="yes" DiskId="1"\r
+                    LongName="complib32d.lib" Name="cl32d.lib"\r
+                    Source="..\bin\HCA\ia64\cl32d.lib" />\r
+              <File Id="cl32d.pdb" Compressed="yes" DiskId="1"\r
+                    LongName="complib32d.pdb" Name="cl32d.pdb"\r
+                    Source="..\bin\HCA\ia64\cl32d.pdb" />\r
+              <File Id="ibal32.lib" Compressed="yes" DiskId="1"\r
+                    LongName="ibal32.lib" Name="ibal32.lib"\r
+                    Source="..\bin\HCA\ia64\ibal32.lib" />\r
+              <File Id="ibal32.pdb" Compressed="yes" DiskId="1"\r
+                    LongName="ibal32.pdb" Name="ibal32.pdb"\r
+                    Source="..\bin\HCA\ia64\ibal32.pdb" />\r
+              <File Id="ibal32d.lib" Compressed="yes" DiskId="1"\r
+                    LongName="ibal32d.lib" Name="ibal32d.lib"\r
+                    Source="..\bin\HCA\ia64\ibal32d.lib" />\r
+              <File Id="ibal32d.pdb" Compressed="yes" DiskId="1"\r
+                    LongName="ibal32d.pdb" Name="ibal32d.pdb"\r
+                    Source="..\bin\HCA\ia64\ibal32d.pdb" />\r
+              </Component>\r
+            </Directory>\r
+\r
+            <Directory Id="IB_inc" Name="Inc">\r
+              <Component Id="cIBAL_Incs"\r
+                         Guid="54C2903E-65DF-4c62-B31D-21DB1AFB5819">\r
+                <CreateFolder />\r
+\r
+                <File Id="oib_ver.h" Compressed="yes" DiskId="1"\r
+                       LongName="oib_ver.h" Name="oib_ver.h"\r
+                       Source="..\bin\Inc\oib_ver.h" />\r
+                <File Id="openib.def" Compressed="yes" DiskId="1"\r
+                       LongName="openib.def" Name="openib.def"\r
+                       Source="..\bin\Inc\openib.def" />\r
+              </Component>\r
+\r
+              <Directory Id="IB_complib" Name="complib">\r
+                <Component Id="cIBAL_Complib"\r
+                           Guid="9F9EE1F2-5ACE-47c7-89F8-B0EA1D4363AF">\r
+                  <CreateFolder />\r
+                  <File Id="cl_async_proc.h" Compressed="yes" DiskId="1"\r
+                        LongName="cl_async_proc.h" Name="CL_ASYN.H" \r
+                        Source="..\bin\Inc\complib\cl_async_proc.h" />\r
+                  <File Id="cl_atomic.h" Compressed="yes" DiskId="1"\r
+                        LongName="cl_atomic.h" Name="CL_ATOM.H" \r
+                        Source="..\bin\Inc\complib\cl_atomic.h" />\r
+                  <File Id="cl_atomic_osd.h" Compressed="yes" DiskId="1"\r
+                        LongName="cl_atomic_osd.h" Name="CL_ATOM1.H" \r
+                        Source="..\bin\Inc\complib\cl_atomic_osd.h" />\r
+                  <File Id="cl_byteswap.h" Compressed="yes" DiskId="1"\r
+                        LongName="cl_byteswap.h" Name="CL_BYTE.H" \r
+                        Source="..\bin\Inc\complib\cl_byteswap.h" />\r
+                  <File Id="cl_byteswap_osd.h" Compressed="yes" DiskId="1"\r
+                        LongName="cl_byteswap_osd.h" Name="CL_BYTE1.H" \r
+                        Source="..\bin\Inc\complib\cl_byteswap_osd.h" />\r
+                  <File Id="cl_comppool.h" Compressed="yes" DiskId="1"\r
+                        LongName="cl_comppool.h" Name="CL_COMP.H" \r
+                        Source="..\bin\Inc\complib\cl_comppool.h" />\r
+                  <File Id="cl_debug.h" Compressed="yes" DiskId="1"\r
+                        LongName="cl_debug.h" Name="CL_DEBU.H" \r
+                        Source="..\bin\Inc\complib\cl_debug.h" />\r
+                  <File Id="cl_debug_osd.h" Compressed="yes" DiskId="1"\r
+                        LongName="cl_debug_osd.h" Name="CL_DEBU1.H" \r
+                        Source="..\bin\Inc\complib\cl_debug_osd.h" />\r
+                  <File Id="cl_event.h" Compressed="yes" DiskId="1"\r
+                        LongName="cl_event.h" Name="CL_EVEN.H" \r
+                        Source="..\bin\Inc\complib\cl_event.h" />\r
+                  <File Id="cl_event_osd.h" Compressed="yes" DiskId="1"\r
+                        LongName="cl_event_osd.h" Name="CL_EVEN1.H" \r
+                        Source="..\bin\Inc\complib\cl_event_osd.h" />\r
+                  <File Id="cl_fleximap.h" Compressed="yes" DiskId="1"\r
+                        LongName="cl_fleximap.h" Name="CL_FLEX.H" \r
+                        Source="..\bin\Inc\complib\cl_fleximap.h" />\r
+                  <File Id="cl_ioctl.h" Compressed="yes" DiskId="1"\r
+                        LongName="cl_ioctl.h" Name="CL_IOCT.H" \r
+                        Source="..\bin\Inc\complib\cl_ioctl.h" />\r
+                  <File Id="cl_ioctl_osd.h" Compressed="yes" DiskId="1"\r
+                        LongName="cl_ioctl_osd.h" Name="CL_IOCT1.H" \r
+                        Source="..\bin\Inc\complib\cl_ioctl_osd.h" />\r
+                  <File Id="cl_irqlock.h" Compressed="yes" DiskId="1"\r
+                        LongName="cl_irqlock.h" Name="CL_IRQL.H" \r
+                        Source="..\bin\Inc\complib\cl_irqlock.h" />\r
+                  <File Id="cl_list.h" Compressed="yes" DiskId="1"\r
+                        LongName="cl_list.h" Name="CL_LIST.H" \r
+                        Source="..\bin\Inc\complib\cl_list.h" />\r
+                  <File Id="cl_log.h" Compressed="yes" DiskId="1"\r
+                        LongName="cl_log.h" Name="CL_LOG.H" \r
+                        Source="..\bin\Inc\complib\cl_log.h" />\r
+                  <File Id="cl_map.h" Compressed="yes" DiskId="1"\r
+                        LongName="cl_map.h" Name="CL_MAP.H" \r
+                        Source="..\bin\Inc\complib\cl_map.h" />\r
+                  <File Id="cl_math.h" Compressed="yes" DiskId="1"\r
+                        LongName="cl_math.h" Name="CL_MATH.H" \r
+                        Source="..\bin\Inc\complib\cl_math.h" />\r
+                  <File Id="cl_memory.h" Compressed="yes" DiskId="1"\r
+                        LongName="cl_memory.h" Name="CL_MEMO.H" \r
+                        Source="..\bin\Inc\complib\cl_memory.h" />\r
+                  <File Id="cl_memory_osd.h" Compressed="yes" DiskId="1"\r
+                        LongName="cl_memory_osd.h" Name="CL_MEMO1.H" \r
+                        Source="..\bin\Inc\complib\cl_memory_osd.h" />\r
+                  <File Id="cl_mutex.h" Compressed="yes" DiskId="1"\r
+                        LongName="cl_mutex.h" Name="CL_MUTE.H" \r
+                        Source="..\bin\Inc\complib\cl_mutex.h" />\r
+                  <File Id="cl_mutex_osd.h" Compressed="yes" DiskId="1"\r
+                        LongName="cl_mutex_osd.h" Name="CL_MUTE1.H" \r
+                        Source="..\bin\Inc\complib\cl_mutex_osd.h" />\r
+                  <File Id="cl_obj.h" Compressed="yes" DiskId="1"\r
+                        LongName="cl_obj.h" Name="CL_OBJ.H" \r
+                        Source="..\bin\Inc\complib\cl_obj.h" />\r
+                  <File Id="cl_packoff.h" Compressed="yes" DiskId="1"\r
+                        LongName="cl_packoff.h" Name="CL_PACK.H" \r
+                        Source="..\bin\Inc\complib\cl_packoff.h" />\r
+                  <File Id="cl_packon.h" Compressed="yes" DiskId="1"\r
+                        LongName="cl_packon.h" Name="CL_PACK1.H" \r
+                        Source="..\bin\Inc\complib\cl_packon.h" />\r
+                  <File Id="cl_passivelock.h" Compressed="yes" DiskId="1"\r
+                        LongName="cl_passivelock.h" Name="CL_PASS.H" \r
+                        Source="..\bin\Inc\complib\cl_passivelock.h" />\r
+                  <File Id="cl_perf.h" Compressed="yes" DiskId="1"\r
+                        LongName="cl_perf.h" Name="CL_PERF.H" \r
+                        Source="..\bin\Inc\complib\cl_perf.h" />\r
+                  <File Id="cl_pool.h" Compressed="yes" DiskId="1"\r
+                        LongName="cl_pool.h" Name="CL_POOL.H" \r
+                        Source="..\bin\Inc\complib\cl_pool.h" />\r
+                  <File Id="cl_ptr_vector.h" Compressed="yes" DiskId="1"\r
+                        LongName="cl_ptr_vector.h" Name="CL_PTR_.H" \r
+                        Source="..\bin\Inc\complib\cl_ptr_vector.h" />\r
+                  <File Id="cl_qcomppool.h" Compressed="yes" DiskId="1"\r
+                        LongName="cl_qcomppool.h" Name="CL_QCOM.H" \r
+                        Source="..\bin\Inc\complib\cl_qcomppool.h" />\r
+                  <File Id="cl_qlist.h" Compressed="yes" DiskId="1"\r
+                        LongName="cl_qlist.h" Name="CL_QLIS.H" \r
+                        Source="..\bin\Inc\complib\cl_qlist.h" />\r
+                  <File Id="cl_qlockpool.h" Compressed="yes" DiskId="1"\r
+                        LongName="cl_qlockpool.h" Name="CL_QLOC.H" \r
+                        Source="..\bin\Inc\complib\cl_qlockpool.h" />\r
+                  <File Id="cl_qmap.h" Compressed="yes" DiskId="1"\r
+                        LongName="cl_qmap.h" Name="CL_QMAP.H" \r
+                        Source="..\bin\Inc\complib\cl_qmap.h" />\r
+                  <File Id="cl_qpool.h" Compressed="yes" DiskId="1"\r
+                        LongName="cl_qpool.h" Name="CL_QPOO.H" \r
+                        Source="..\bin\Inc\complib\cl_qpool.h" />\r
+                  <File Id="cl_rbmap.h" Compressed="yes" DiskId="1"\r
+                        LongName="cl_rbmap.h" Name="CL_RBMA.H" \r
+                        Source="..\bin\Inc\complib\cl_rbmap.h" />\r
+                  <File Id="cl_reqmgr.h" Compressed="yes" DiskId="1"\r
+                        LongName="cl_reqmgr.h" Name="CL_REQM.H" \r
+                        Source="..\bin\Inc\complib\cl_reqmgr.h" />\r
+                  <File Id="cl_spinlock.h" Compressed="yes" DiskId="1"\r
+                        LongName="cl_spinlock.h" Name="CL_SPIN.H" \r
+                        Source="..\bin\Inc\complib\cl_spinlock.h" />\r
+                  <File Id="cl_spinlock_osd.h" Compressed="yes" DiskId="1"\r
+                        LongName="cl_spinlock_osd.h" Name="CL_SPIN1.H" \r
+                        Source="..\bin\Inc\complib\cl_spinlock_osd.h" />\r
+                  <File Id="cl_syscallback.h" Compressed="yes" DiskId="1"\r
+                        LongName="cl_syscallback.h" Name="CL_SYSC.H" \r
+                        Source="..\bin\Inc\complib\cl_syscallback.h" />\r
+                  <File Id="cl_syscallback_osd.h" Compressed="yes" DiskId="1"\r
+                        LongName="cl_syscallback_osd.h" Name="CL_SYSC1.H" \r
+                        Source="..\bin\Inc\complib\cl_syscallback_osd.h" />\r
+                  <File Id="cl_thread.h" Compressed="yes" DiskId="1"\r
+                        LongName="cl_thread.h" Name="CL_THRE.H" \r
+                        Source="..\bin\Inc\complib\cl_thread.h" />\r
+                  <File Id="cl_thread_osd.h" Compressed="yes" DiskId="1"\r
+                        LongName="cl_thread_osd.h" Name="CL_THRE1.H" \r
+                        Source="..\bin\Inc\complib\cl_thread_osd.h" />\r
+                  <File Id="cl_threadpool.h" Compressed="yes" DiskId="1"\r
+                        LongName="cl_threadpool.h" Name="CL_THRE2.H" \r
+                        Source="..\bin\Inc\complib\cl_threadpool.h" />\r
+                  <File Id="cl_timer.h" Compressed="yes" DiskId="1"\r
+                        LongName="cl_timer.h" Name="CL_TIME.H" \r
+                        Source="..\bin\Inc\complib\cl_timer.h" />\r
+                  <File Id="cl_timer_osd.h" Compressed="yes" DiskId="1"\r
+                        LongName="cl_timer_osd.h" Name="CL_TIME1.H" \r
+                        Source="..\bin\Inc\complib\cl_timer_osd.h" />\r
+                  <File Id="cl_types.h" Compressed="yes" DiskId="1"\r
+                        LongName="cl_types.h" Name="CL_TYPE.H" \r
+                        Source="..\bin\Inc\complib\cl_types.h" />\r
+                  <File Id="cl_types_osd.h" Compressed="yes" DiskId="1"\r
+                        LongName="cl_types_osd.h" Name="CL_TYPE1.H" \r
+                        Source="..\bin\Inc\complib\cl_types_osd.h" />\r
+                  <File Id="cl_vector.h" Compressed="yes" DiskId="1"\r
+                        LongName="cl_vector.h" Name="CL_VECT.H" \r
+                        Source="..\bin\Inc\complib\cl_vector.h" />\r
+                  <File Id="cl_waitobj.h" Compressed="yes" DiskId="1"\r
+                        LongName="cl_waitobj.h" Name="CL_WAIT.H" \r
+                        Source="..\bin\Inc\complib\cl_waitobj.h" />\r
+                  <File Id="cl_waitobj_osd.h" Compressed="yes" DiskId="1"\r
+                        LongName="cl_waitobj_osd.h" Name="CL_WAIT1.H" \r
+                        Source="..\bin\Inc\complib\cl_waitobj_osd.h" />\r
+                  <File Id="comp_lib.h" Compressed="yes" DiskId="1"\r
+                        LongName="comp_lib.h" Name="COMP_LI.H" \r
+                        Source="..\bin\Inc\complib\comp_lib.h" />\r
+                </Component>\r
+              </Directory>\r
+\r
+              <Directory Id="IB_iba" Name="iba">\r
+                <Component Id="cIBAL_IBA"\r
+                           Guid="2EC5C324-734D-4a06-AE35-D7B80D76B77A">\r
+                  <CreateFolder />\r
+                  <File Id="ib_al.h" Compressed="yes" DiskId="1"\r
+                        LongName="ib_al.h" Name="ib_al.h"\r
+                        Source="..\bin\Inc\iba\ib_al.h" />\r
+                  <File Id="ib_al_ioctl.h" Compressed="yes" DiskId="1"\r
+                        LongName="ib_al_ioctl.h" Name="ib_ioctl.h"\r
+                        Source="..\bin\Inc\iba\ib_al_ioctl.h" />\r
+                  <File Id="ib_at_ioctl.h" Compressed="yes" DiskId="1"\r
+                        LongName="ib_at_ioctl.h" Name="ib_iocat.h"\r
+                        Source="..\bin\Inc\iba\ib_at_ioctl.h" />\r
+                  <File Id="ib_ci.h" Compressed="yes" DiskId="1"\r
+                        LongName="ib_ci.h" Name="ib_ci.h"\r
+                        Source="..\bin\Inc\iba\ib_ci.h" />\r
+                  <File Id="ib_types.h" Compressed="yes" DiskId="1"\r
+                        LongName="ib_types.h" Name="ib_types.h"\r
+                        Source="..\bin\Inc\iba\ib_types.h" />\r
+                  <File Id="ib_uvp.h" Compressed="yes" DiskId="1"\r
+                        LongName="ib_uvp.h" Name="ib_uvp.h"\r
+                        Source="..\bin\Inc\iba\ib_uvp.h" />\r
+                </Component>\r
+              </Directory>\r
+            </Directory>\r
+\r
+            <Directory Id="IB_samples" Name="Samples">\r
+              <Directory Id="sample_DDK" Name="DDK">\r
+                <Component Id="cDDK_example"\r
+                           Guid="8C27B926-FCFE-4f46-83B4-A27482A5EB3B">\r
+                  <CreateFolder />\r
+                      <File Id="cmtest.c" Compressed="yes" DiskId="1"\r
+                            LongName="cmtest.c" Name="cmtest.c"\r
+                            Source="..\bin\Misc\cmtest.c" />\r
+                      <File Id="makefile" Compressed="yes" DiskId="1"\r
+                            LongName="makefile" Name="makefile"\r
+                            Source="..\..\SDK_Samples\DDK\makefile" />\r
+                      <File Id="SOURCES" Compressed="yes" DiskId="1"\r
+                            LongName="SOURCES" Name="SOURCES"\r
+                            Source="..\..\SDK_Samples\DDK\SOURCES" />\r
+                      <File Id="README.txt" Compressed="yes" DiskId="1"\r
+                            LongName="README.txt" Name="README.txt"\r
+                            Source="..\..\SDK_Samples\DDK\README.txt" />\r
+                </Component>\r
+              </Directory>    <!-- End DDK -->\r
+              <Directory Id="sample_VS" Name="VS">\r
+                <Component Id="cVS_example"\r
+                           Guid="35E03D7E-E943-4346-8F63-7E991AF68F53">\r
+                  <CreateFolder />\r
+                      <File Id="vs_cmtest.c" Compressed="yes" DiskId="1"\r
+                            LongName="cmtest.c" Name="cmtest.c"\r
+                            Source="..\bin\misc\cmtest.c" />\r
+                      <File Id="vscmtest.rc" Compressed="yes" DiskId="1"\r
+                            LongName="cmtest.rc" Name="cmtest.rc"\r
+                            Source="..\..\SDK_Samples\VS\cmtest.rc" />\r
+                      <File Id="vsREADME.txt" Compressed="yes" DiskId="1"\r
+                            LongName="README.txt" Name="README.txt"\r
+                            Source="..\..\SDK_Samples\VS\README.txt" />\r
+                </Component>\r
+              </Directory>    <!-- End VS -->\r
+            </Directory>    <!-- End Samples -->\r
+          </Directory>    <!-- End IBSDK -->\r
+\r
+      </Directory>   <!-- WinRoot -->   \r
+    </Directory> <!-- TARGETDIR --> \r
+\r
+<!--\r
+    <Property Id='ARPNOMODIFY'>1</Property>\r
+    <Property Id='ARPNOREPAIR'>1</Property>\r
+-->\r
+    <Property Id='ARPCOMMENTS'>OpenFabrics Windows InfiniBand</Property>\r
+    <Property Id='ARPCONTACT'>Openfabrics Alliance [www.openfabrics.org]</Property>\r
+    <Property Id='ARPURLINFOABOUT'>https://wiki.openfabrics.org/tiki-index.php?page=OpenIB%20Windows</Property>\r
+    <Property Id='ARPHELPLINK'>https://wiki.openfabrics.org/tiki-index.php?page=Windows+FAQ</Property>\r
+    <Property Id='ARPURLUPDATEINFO'>http://www.openfabrics.org/downloads/WinOF/</Property>\r
+\r
+\r
+    <!--\r
+       Features - Level=1 == Typical, no WSD on XP\r
+     -->\r
+\r
+    <Feature Id="HcaDriver" Title="InfiniBand HCA Driver" Level="1"\r
+         Description="InfiniBand Host Channel Adapter Drivers"\r
+         Display="expand" ConfigurableDirectory="INSTALLDIR"\r
+         AllowAdvertise='no' InstallDefault='local' Absent='disallow'>\r
+\r
+      <Feature Id="hca_mthca" Title="Mellanox InfiniHost" Level="1"\r
+           Description="InfiniHost series - all except ConnectX"\r
+           Display="expand" ConfigurableDirectory="INSTALLDIR"\r
+           AllowAdvertise='no' InstallDefault='local' Absent='allow'>\r
+        <ComponentRef Id="cMthcaDriver" />\r
+      </Feature>\r
+\r
+<!-- remove until ConnectX works on ia64\r
+      <Feature Id="hca_connectX" Title="Mellanox ConnectX" Level="5"\r
+           Description="ConnectX only - mlx4"\r
+           Display="expand" ConfigurableDirectory="INSTALLDIR"\r
+           AllowAdvertise='no' InstallDefault='local' Absent='allow'>\r
+        <ComponentRef Id="cConnectXDriver" />\r
+      </Feature>\r
+End Remove -->\r
+    </Feature>\r
+\r
+    <Feature Id="IBcore" Title="InfiniBand Core" Level="1"\r
+         Description="InfiniBand: Core, Tools, Docs"\r
+         Display="expand" ConfigurableDirectory="INSTALLDIR"\r
+         AllowAdvertise='no' InstallDefault='local' Absent='disallow'>\r
+      <ComponentRef Id="cIBcore" />\r
+      <ComponentRef Id="Docs" />\r
+      <ComponentRef Id="Tools" />\r
+      <ComponentRef Id="OpenSMservice" />\r
+    </Feature>\r
+\r
+    <Feature Id="fWV" Title="WinVerbs"\r
+        Description="OFED verbs API for Windows"\r
+        Display="expand" Level="2" ConfigurableDirectory="INSTALLDIR"\r
+        AllowAdvertise="no" InstallDefault="local" Absent="allow">\r
+        <ComponentRef Id="cWinVerbsKernel" />\r
+        <ComponentRef Id="cWinVerbsUser" />\r
+        <ComponentRef Id="cWinVerbsUApps" />\r
+    </Feature>\r
+\r
+    <Feature Id="fIPoIB" Title="IPoIB" Level="1"\r
+         Description="Internet Protocols over InfiniBand" Display="expand"\r
+         ConfigurableDirectory="INSTALLDIR"\r
+         AllowAdvertise='no' InstallDefault='local' Absent='allow'>\r
+      <ComponentRef Id="IPoIB" />\r
+    </Feature>\r
+\r
+    <Feature Id="fWSD" Title="WSD" Description="Winsock Direct Enabled"\r
+            Display="expand" Level="1" ConfigurableDirectory="INSTALLDIR"\r
+         AllowAdvertise='no' InstallDefault='local' Absent='allow'>\r
+      <!-- skip WSD on Windows XP, IPoIB is required for WSD. -->\r
+      <Condition Level="200"><![CDATA[VersionNT=501]]></Condition>\r
+      <Condition Level="201"> IPOIB_EXISTS </Condition>\r
+      <ComponentRef Id="WinsockDirect" />\r
+    </Feature>\r
+\r
+<!-- when ND on ia64 works.\r
+    <Feature Id="fND" Title="Network Direct"\r
+        Description="Network Direct Enabled"\r
+        Display="expand" Level="2" ConfigurableDirectory="INSTALLDIR"\r
+        AllowAdvertise="no" InstallDefault="local" Absent="allow">\r
+        <ComponentRef Id="cNetworkDirect" />\r
+        <Condition Level="201"> IPOIB_EXISTS </Condition> \r
+    </Feature>\r
+-->\r
+    <Feature Id="fDAPL" Title="DAPL" Description="DAT/DAPL over InfiniBand"\r
+         Display="collapse" Level="1" ConfigurableDirectory="INSTALLDIR"\r
+         AllowAdvertise='no' InstallDefault='local' Absent='allow'>\r
+      <Condition Level="201"> IPOIB_EXISTS </Condition>\r
+\r
+      <Feature Id="fDatConf" Title="DAT-DAPL Config File"\r
+         Description="DAT-DAPL runtime configuration file; installed if %SystemDrive%\DAT\dat.conf does not exist."\r
+         Display="expand" Level="1" \r
+         AllowAdvertise='no' InstallDefault='local' Absent='allow'>\r
+        <Condition Level="0"> DAT_CONF_EXISTS AND Not Installed </Condition>\r
+        <ComponentRef Id="cDatCfg" />\r
+      </Feature>\r
+\r
+      <Feature Id="fDatBASIC1" Title="DAT 1.1 Runtime"\r
+         Description="DAT 1.1 runtime libraries"\r
+         Display="expand" Level="1" \r
+         AllowAdvertise='no' InstallDefault='local' Absent='allow'>\r
+        <ComponentRef Id="cDAPL1RT" />\r
+      </Feature>\r
+\r
+      <Feature Id="fDatBldKit1" Title="DAT 1.1 Build Kit"\r
+         Description="DAT 1.1 Application Build Kit - Headers and Libraries"\r
+         Display="expand" Level="2" \r
+         AllowAdvertise='no' InstallDefault='local' Absent='allow'>\r
+         <Condition Level="201"> DAT1_INSTALLED </Condition>\r
+         <ComponentRef Id="cDATV1" />\r
+         <ComponentRef Id="cDatBldV1Hdrs" />\r
+         <ComponentRef Id="cDatBldV1Libs" />\r
+      </Feature>\r
+\r
+      <Feature Id="fDatBASIC2" Title="DAT 2.0 Runtime"\r
+         Description="DAT 2.0 runtime libraries"\r
+         Display="expand" Level="1" \r
+         AllowAdvertise='no' InstallDefault='local' Absent='allow'>\r
+        <ComponentRef Id="cDAPL2RT" />\r
+      </Feature>\r
+\r
+      <Feature Id="fDatBldKit2" Title="DAT 2.0 Build Kit"\r
+         Description="DAT 2.0 Application Build Kit - Headers and Libraries"\r
+         Display="expand" Level="2" \r
+         AllowAdvertise='no' InstallDefault='local' Absent='allow'>\r
+         <Condition Level="201"> DAT2_INSTALLED </Condition>\r
+         <ComponentRef Id="cDATV2" />\r
+         <ComponentRef Id="cDatBldV2Hdrs" />\r
+         <ComponentRef Id="cDatBldV2Libs" />\r
+      </Feature>\r
+    </Feature>\r
+\r
+    <Feature Id="fVNIC" Title="QLogic-VNIC"\r
+         Description="QLogic - Virtual NIC over InfiniBand"\r
+         Display="expand" Level="5" ConfigurableDirectory="INSTALLDIR"\r
+         AllowAdvertise='no' InstallDefault='local' Absent='allow'>\r
+      <ComponentRef Id="cQLVNIC" />\r
+    </Feature>\r
+\r
+    <Feature Id="fSRP" Title="SRP" Level="5" Description="SCSI over RDMA"\r
+         Display="expand" ConfigurableDirectory="INSTALLDIR"\r
+         AllowAdvertise='no' InstallDefault='local' Absent='allow'>\r
+      <ComponentRef Id="cSRP_driver" />\r
+    </Feature>\r
+\r
+    <Feature Id="fOSMS" Title="OpenSM Service Started" Level="5"\r
+         Description="Open Subnet Management started as a Windows Service"\r
+         Display="expand" ConfigurableDirectory="INSTALLDIR"\r
+         AllowAdvertise='no' InstallDefault='local' Absent='allow'>\r
+      <ComponentRef Id="OpenSM_Service_enabled" />\r
+    </Feature>\r
+\r
+    <Feature Id="fIBsdk" Title="InfiniBand SDK" Level="2"\r
+         Description="InfiniBand Software Development Kit (Headers + Libs)"\r
+         Display="expand" ConfigurableDirectory="INSTALLDIR"\r
+         AllowAdvertise='no' InstallDefault='local' Absent='disallow'>\r
+      <ComponentRef Id="cIBAL_Libs" />\r
+      <ComponentRef Id="cIBAL_Incs" />\r
+      <ComponentRef Id="cIBAL_Complib" />\r
+      <ComponentRef Id="cIBAL_IBA" />\r
+      <ComponentRef Id="cDDK_example" />\r
+      <ComponentRef Id="cVS_example" />\r
+    </Feature>\r
+\r
+    <Feature Id="fCHECKED" Title="Debug/Checked Modules"\r
+         Description="Checked versions: Not installed; see %ProgramFiles%\WinOF\Checked."\r
+         Display="expand" Level="5" ConfigurableDirectory="INSTALLDIR"\r
+         AllowAdvertise='no' InstallDefault='local' Absent='allow'>\r
+      <ComponentRef Id="cCHK_kernel" />\r
+      <ComponentRef Id="cCHK_user" />\r
+    </Feature>\r
+\r
+    <!--> File where Custom Actions are defined -->\r
+    <Binary Id='CA' src='..\..\CustomActions.vbs' />\r
+\r
+    <CustomAction Id='WinOF_setup' BinaryKey='CA'\r
+         VBScriptCall='WinOF_setup' Return='check' />\r
+\r
+    <CustomAction Id='ChkPreviousInstall' BinaryKey='CA'\r
+         VBScriptCall='ChkInstallAndReboot' Return='check' />\r
+\r
+    <CustomAction Id='DriverInstall' BinaryKey='CA'\r
+         VBScriptCall='DriverInstall' Return='check' Execute='deferred' />\r
+\r
+    <CustomAction Id='DriverUninstall' BinaryKey='CA'\r
+         VBScriptCall='DriverUninstall' Return='check' />\r
+\r
+    <CustomAction Id='WSDStart' BinaryKey='CA'\r
+         VBScriptCall='WSDEnable' Return='check' />\r
+\r
+    <CustomAction Id="OpenSM_start" BinaryKey="CA"\r
+         VBScriptCall="OpenSM_StartMeUp" Return="check" />\r
+\r
+    <CustomAction Id="ND_start" BinaryKey="CA"\r
+         VBScriptCall="ND_StartMeUp" Return="check" />\r
+\r
+    <CustomAction Id='HammerTime' BinaryKey='CA'\r
+         VBScriptCall='HammerTime' Return='check' />\r
+\r
+    <CustomAction Id="BcastRegChanged" BinaryKey="CA"\r
+         VBScriptCall="BcastRegChanged" Return="check" />\r
+\r
+    <CustomAction Id="InstallChanged" BinaryKey="CA"\r
+         VBScriptCall="InstallChanged" Return="check" />\r
+\r
+    <InstallExecuteSequence>\r
+       <!--> Always executed (Install or uninstall </!-->\r
+       <Custom Action="WinOF_setup" After='InstallInitialize' />\r
+\r
+       <!--> Install ONLY </!-->\r
+       <Custom Action="ChkPreviousInstall" After='WinOF_setup'>\r
+               NOT Installed</Custom>\r
+\r
+       <ScheduleReboot After='ChkPreviousInstall'>\r
+               REBOOT="FORCE"</ScheduleReboot>\r
+\r
+       <Custom Action="DriverInstall" After='PatchFiles'>\r
+               Not Installed AND Not NODRV </Custom>\r
+\r
+       <Custom Action="WSDStart" After='InstallFinalize'>\r
+               Not Installed AND Not NODRV </Custom>\r
+\r
+       <Custom Action="OpenSM_start" After="WSDStart">\r
+          ($OpenSM_Service_enabled = 3) AND Not Installed AND Not NODRV</Custom>\r
+\r
+       <Custom Action="ND_start" After="OpenSM_start">\r
+          ($cNetworkDirect = 3) AND Not Installed AND Not NODRV </Custom>\r
+\r
+       <Custom Action="BcastRegChanged" After="ND_start">\r
+               Not Installed</Custom>\r
+\r
+       <!--> CHANGE ONLY </!-->\r
+       <Custom Action="InstallChanged" After="InstallFinalize">\r
+           Installed </Custom>\r
+\r
+       <!--> REMOVE ONLY </!-->\r
+       <Custom Action="DriverUninstall" After='PublishProduct'>\r
+               REMOVE="ALL" </Custom>\r
+       <Custom Action="HammerTime" After='InstallFinalize'>REMOVE="ALL"</Custom>\r
+    </InstallExecuteSequence>\r
+\r
+\r
+    <UIRef Id="WixUI_FeatureTree" />\r
+    <UIRef Id="WixUI_ErrorProgressText" />\r
+    <Icon Id="openfabrics" SourceFile="..\..\openfabrics.ico" />\r
+    <UI />\r
+  </Product>\r
+</Wix>\r
diff --git a/WinOF/WIX/wlh/signDrivers.bat b/WinOF/WIX/wlh/signDrivers.bat
new file mode 100644 (file)
index 0000000..8ed0d38
--- /dev/null
@@ -0,0 +1,117 @@
+@echo off\r
+setlocal\r
+\r
+rem Sign device drivers for architectures specified\r
+\r
+rem usage: signDrivers CertFilename CertSubjectName path-2-drivers {noTimeStamp}\r
+\r
+rem example: signDirvers cse1CStore TestCert bin\hca\r
+\r
+\r
+rem cmd.exe /V:on (delayed environment variable expansion) is required!\r
+set F=on\r
+set F=off\r
+if not "!F!" == "off" (\r
+   echo Err: cmd.exe /V:on [delayed environment variable expansion] Required!\r
+   exit /B 1\r
+)\r
+\r
+set OE=Server2008\r
+set DU=/du www.openfabrics.org\r
+\r
+set Usage='usage: signDrivers CertFilename password path-2-drivers {noTimeStamp}'\r
+\r
+if "%1" == "" (\r
+    echo %0 - missing CertFileName?\r
+    echo %0 - %Usage%\r
+    exit /B 1\r
+)\r
+\r
+if not EXIST %1 (\r
+    echo %0 - Cert file missing?\r
+    echo %0 - %Usage%\r
+    exit /B 1\r
+)\r
+\r
+rem %2 is already quoted.\r
+if %2 == "" (\r
+    echo %0 - missing Cert Subject Name?\r
+    echo %0 - %Usage%\r
+    exit /B 1\r
+)\r
+\r
+if "%3" == "" (\r
+    echo %0 - missing path-2-driver files?\r
+    echo %0 - %Usage%\r
+    exit /B 1\r
+)\r
+\r
+rem Timestamp the signed file unless instructed not to.\r
+if "%4" == "" (\r
+    set TS=/t http://timestamp.verisign.com/scripts/timstamp.dll\r
+) else (\r
+    set TS=\r
+)\r
+\r
+rem make sure signtool is accessible in our path\r
+path > jnk.txt\r
+findstr /c:"SelfSign" jnk.txt > jnk1.txt\r
+if %errorlevel% EQU 1 (\r
+    path "%PATH%;C:\WinDDK\6001.18001\bin\SelfSign"\r
+)\r
+if exist jnk1.txt  del /Q /F jnk1.txt\r
+if exist jnk.txt  del /Q /F jnk.txt\r
+\r
+rem move to drivers folder\r
+cd %3\r
+if ERRORLEVEL 1 (\r
+    echo %0 - missing relative path %3\r
+    exit /B 1\r
+)\r
+echo cwd %CD%\r
+\r
+rem process drivers for all architectures found\r
+\r
+for %%d in (amd64 x86 ia64) do (\r
+\r
+    if not exist %%d (\r
+       echo %0 - skipping arch folder %%d\r
+    ) else (\r
+        pushd  %%d\r
+        echo %0 - Delete existing %%d .cat files\r
+        for %%f in ( *.cat ) do (\r
+            if exist %%f del /F /Q %%f\r
+        )\r
+\r
+        if "%%d" == "amd64" set OEA=%OE%_X64,Vista_X64\r
+               if "%%d" == "x86"   set OEA=%OE%_X86,Vista_X86\r
+       if "%%d" == "ia64"  set OEA=%OE%_IA64\r
+\r
+        echo %0 - Generating %%d .cat files for !OEA!\r
+        inf2cat /driver:%CD%\%%d /os:!OEA!\r
+        if ERRORLEVEL 1 (\r
+            echo %CD% inf2cat failed\r
+            exit /B 1\r
+        )\r
+        echo %0 - Signing %%d .cat files\r
+        for %%f in ( *.cat ) do (\r
+            echo %0 - Signing %%d\%%f\r
+            signtool sign /ac %1 /n %2 %TS% %DU% %%f\r
+            if ERRORLEVEL 1 (\r
+                echo %0 signtool sign %%f failed?\r
+                echo %0    file %CD%\%%f\r
+                exit /B 1\r
+            )\r
+            signtool verify /kp %%f\r
+            if ERRORLEVEL 1 (\r
+                echo %0 signtool verify %%f failed?\r
+                echo %0    file %CD%\%%f\r
+                exit /B 1\r
+            )\r
+        )\r
+        popd\r
+    )\r
+)\r
+\r
+endlocal\r
+echo %0 - Finished: %0 %1 %2 %OE% \r
diff --git a/WinOF/WIX/wlh/x64/Makefile b/WinOF/WIX/wlh/x64/Makefile
new file mode 100644 (file)
index 0000000..8a943d8
--- /dev/null
@@ -0,0 +1,44 @@
+###################\r
+# makefile targets\r
+#\r
+S=WOF\r
+P=$(S)_wlh_x64\r
+\r
+#WIX 2.0\r
+# L=..\..\WIX_tools\wix-2.0.5325.0-binaries\r
+L=..\..\WIX_tools\wix-2.0.5805.0-binaries\r
+\r
+# WIX 3.0 L=..\WIX_tools\wix-3.0.2925.0-binaries\r
+\r
+WIX_UI="$(L)\wixui.wixlib" -loc "$(L)\WixUI_en-us.wxl"\r
+\r
+full: clean $(P).msi\r
+\r
+clean:\r
+  @del /q $(P).msi 2>nul\r
+  @del /q $(S).wixobj 2>nul\r
+  @del /q license.rtf 2>nul\r
+\r
+MySetup: $(P).msi\r
+\r
+license.rtf: ..\..\license.rtf\r
+       @copy ..\..\license.rtf .\license.rtf\r
+\r
+$(S).wixobj: $(S).wxs\r
+\r
+$(P).msi: $(S).wixobj license.rtf\r
+       @echo --\r
+       @echo Building $(P).msi\r
+       $(L)\light.exe /nologo -out $(P).msi $(S).wixobj $(WIX_UI)\r
+       @del /q $(S).wixobj 2>nul\r
+       @del /q license.rtf 2>nul\r
+\r
+\r
+###################\r
+# makefile inference rules\r
+#\r
+.SUFFIXES: .wxs .wixobj\r
+\r
+.wxs.wixobj::\r
+       @$(L)\candle.exe /nologo -trace -v $<\r
+\r
diff --git a/WinOF/WIX/wlh/x64/wof.wxs b/WinOF/WIX/wlh/x64/wof.wxs
new file mode 100644 (file)
index 0000000..241c6f2
--- /dev/null
@@ -0,0 +1,1547 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<!--\r
+   WinOF (Windows OpenFabrics) for x64 Windows Server 2008 or Vista\r
+-->\r
+<Wix xmlns="http://schemas.microsoft.com/wix/2003/01/wi">\r
+  <Product Name="Windows Open Fabrics InfiniBand v2.0 (GA) x64"\r
+    Id="3A6A276E-A636-48e8-8624-9A0DE3F2A15E"\r
+    UpgradeCode='E38964D6-359D-4E38-9BBF-8C79D84DF6CF' \r
+    Version="2.0.0"\r
+    Language="1033" Codepage="1252"\r
+    Manufacturer="Open Fabrics Alliance Windows">\r
+\r
+    <Package Id="????????-????-????-????-????????????"\r
+     Keywords="Installer, InfiniBand, WinOF, OpenFabrics"\r
+     InstallPrivileges='elevated'\r
+     Description="WinOF Installer"\r
+     Comments="Windows Open Fabrics Alliance InfiniBand stack"\r
+     Manufacturer="Open Fabrics Alliance Windows" InstallerVersion="200"\r
+     Languages="1033" Compressed="yes" SummaryCodepage="1252" />\r
+\r
+    <Condition Message="Administrator required to install [ProductName].">\r
+     Privileged\r
+    </Condition>\r
+\r
+    <Condition Message="This package can be installed on x64 systems only">\r
+        <![CDATA[VersionNT64]]>\r
+    </Condition>\r
+\r
+    <Condition Message="This package can be installed on x64 systems only">\r
+        <![CDATA[Msix64]]>\r
+    </Condition>\r
+\r
+    <Condition Message="[ProductName] requires Windows Server 2008 or Vista to install.">\r
+         <![CDATA[(VersionNT=600)]]>\r
+    </Condition>\r
+\r
+    <!--\r
+        System/Machine-wide install, otherwise per-user (Administrator) only.\r
+        All users see OpenFabrics WinOF Release Notes & Manual in Programs.\r
+     -->\r
+    <Property Id="ALLUSERS"> Value="1" </Property>\r
+\r
+    <!-- Requires files sc.exe & reg.exe -->\r
+    <Property Id="REG_EXISTS">\r
+      <DirectorySearch Id="RegFileDir" Path="[WindowsFolder]" Depth="1">\r
+        <FileSearch Id="RegFile" Name="reg.exe" />\r
+      </DirectorySearch>\r
+    </Property>\r
+\r
+    <Property Id="SC_EXISTS">\r
+      <DirectorySearch Id="ScFileDir" Path="[WindowsFolder]" Depth="1">\r
+        <FileSearch Id="ScFile" Name="sc.exe" />\r
+      </DirectorySearch>\r
+    </Property>\r
+\r
+    <Property Id="IPOIB_EXISTS">\r
+      <DirectorySearch Id="ipoibFileDir" Path="[INSTALLDIR]\net" Depth="0">\r
+        <FileSearch Id="ipoibFile" Name="netipoib.inf" />\r
+      </DirectorySearch>\r
+    </Property>\r
+\r
+    <Property Id="DAT_CONF_EXISTS">\r
+      <DirectorySearch Id="DCscan" Path="[WindowsVolume]\DAT" Depth="0">\r
+        <FileSearch Id="DCFile" Name="dat.conf" />\r
+      </DirectorySearch>\r
+    </Property>\r
+\r
+    <Property Id="DAT1_INSTALLED">\r
+      <DirectorySearch Id="Dat1DS" Path="[INSTALLDIR]" Depth="0">\r
+        <FileSearch Id="daplFS" Name="dapl.dll" />\r
+      </DirectorySearch>\r
+    </Property>\r
+\r
+    <Property Id="DAT2_INSTALLED">\r
+      <DirectorySearch Id="Dat2DS" Path="[INSTALLDIR]" Depth="0">\r
+        <FileSearch Id="dapl2FS" Name="dapl2.dll" />\r
+      </DirectorySearch>\r
+    </Property>\r
+\r
+    <Condition Message="[ProductName] requires system file reg.exe">\r
+       REG_EXISTS\r
+    </Condition>\r
+\r
+    <Condition Message="[ProductName] requires system file sc.exe">\r
+       SC_EXISTS\r
+    </Condition>\r
+\r
+    <Media Id="1" Cabinet="Sample.cab" EmbedCab="yes" DiskPrompt="CD-ROM #1" />\r
+    <Property Id="DiskPrompt" Value="WinOF 1.0 Installation [1]" />\r
+\r
+    <Directory Id="TARGETDIR" Name="SourceDir">\r
+      <Directory Id="ProgramMenuFolder" Name="PMenu" LongName="Programs">\r
+        <Directory Id="ProgramMenuDir" LongName="Windows OpenFabrics"\r
+                   Name="WinOF" />\r
+      </Directory>\r
+      <Directory Id="DesktopFolder" Name="Desktop" />\r
+      <Directory Id="ProgramFilesFolder" Name="PFiles">\r
+        <Directory Id="INSTALLDIR" Name="WinOF">\r
+          <Component Id="Docs" Guid="931C58EF-3759-4cf4-89CC-276C017305BB">\r
+\r
+            <File Id="OFAlogo" Compressed="yes" DiskId="1"\r
+                    LongName="openfabrics.gif" Name="ofa.gif"\r
+                    Source="..\..\openfabrics.gif" />\r
+\r
+            <!-- implies WIX build only from an svn structured tree.  -->\r
+            <File Id="manual.htm" Compressed="yes" DiskId="1" Name="Manual.htm"\r
+                    LongName="Manual.htm"\r
+                    Source="..\bin\Misc\Manual.htm" Vital="yes" />\r
+\r
+            <Shortcut Id="Manual.htm" Directory="ProgramMenuDir"\r
+                    Name="Manual.htm" LongName="Manual"\r
+                    Target="[INSTALLDIR]\Manual.htm" Show="normal"\r
+                    WorkingDirectory="INSTALLDIR" Icon="openfabrics"\r
+                    IconIndex="0" />\r
+\r
+            <File Id="dRelnotes" Compressed="yes" DiskId="1"\r
+                    LongName="Release_notes.htm" Name="RELEASE_.HTM"\r
+                    Source="..\..\Release_notes.htm" />\r
+\r
+            <Shortcut Id="RelNotes" Directory="ProgramMenuDir"\r
+                    Name="RelNotes" LongName="Release Notes"\r
+                    Target="[INSTALLDIR]\Release_notes.htm" Show="normal"\r
+                    WorkingDirectory="INSTALLDIR" Icon="openfabrics"\r
+                    IconIndex="0" />\r
+\r
+            <File Id="command_window" Name="COMMAND.LNK"\r
+                    LongName="Command Window.lnk" Compressed="yes" DiskId="1"\r
+                    Source="..\..\x64\Command Window.lnk" Vital="yes" />\r
+\r
+            <Shortcut Id="Command_Window.lnk" Directory="ProgramMenuDir"\r
+                    Name="COMMAND.LNK" LongName="Command Window.lnk"\r
+                    Target="[INSTALLDIR]\Command Window.lnk" Icon="openfabrics"\r
+                    IconIndex="0" Show="normal" WorkingDirectory="INSTALLDIR" />\r
+\r
+            <Shortcut Id="UninstallProduct" Name="UnMyApp"\r
+                Directory="ProgramMenuDir"\r
+                LongName="Uninstall WinOF"\r
+                               Target="[System64Folder]msiexec.exe"\r
+                Arguments="/X [ProductCode]"\r
+                Description="Uninstalls OpenFabrics InfiniBand" />\r
+            <RemoveFolder Id="RemoveShorcutFolder" On="uninstall" />\r
+          </Component>\r
+\r
+          <Component Id="Tools" Guid="1B89230E-5D8D-41a5-BD1F-A3E308FEE026">\r
+            <Environment Id='UpdatePath' Name='PATH' Action='create'\r
+                         System='yes' Part='last' Value='[INSTALLDIR]' /> \r
+\r
+            <File Id="part_man" Name="part_man.exe"\r
+                    Compressed="yes" DiskId="1" Vital="yes"\r
+                    Source="..\bin\tools\amd64\release\part_man.exe" />\r
+            <File Id="vstat" Name="vstat.exe"\r
+                    Compressed="yes" DiskId="1" Vital="yes"\r
+                    Source="..\bin\tools\amd64\release\vstat.exe" />\r
+            <File Id="ttcp.exe" LongName="ttcp.exe" Compressed="yes"\r
+                    DiskId="1" Name="TTCP.EXE"\r
+                    Source="..\bin\tools\amd64\release\ttcp.exe" />\r
+            <File Id="cmtest.exe" LongName="cmtest.exe" Compressed="yes"\r
+                    DiskId="1" Name="CMTEST.EXE"\r
+                    Source="..\bin\tools\amd64\release\cmtest.exe" />\r
+            <File Id="ib_limits.exe" Compressed="yes" DiskId="1"\r
+                     LongName="ib_limits.exe" Name="IB_LIMI.EXE"\r
+                     Source="..\bin\tools\amd64\release\ib_limits.exe" />\r
+            <File Id="ib_read_bw.exe" Compressed="yes" DiskId="1"\r
+                     LongName="ib_read_bw.exe" Name="IB_READ.EXE"\r
+                     Source="..\bin\tools\amd64\release\ib_read_bw.exe" />\r
+            <File Id="ib_read_lat.exe" Compressed="yes" DiskId="1"\r
+                     LongName="ib_read_lat.exe" Name="IB_READ1.EXE"\r
+                     Source="..\bin\tools\amd64\release\ib_read_lat.exe" />\r
+            <File Id="ib_send_bw.exe" Compressed="yes" DiskId="1"\r
+                     LongName="ib_send_bw.exe" Name="IB_SEND.EXE"\r
+                     Source="..\bin\tools\amd64\release\ib_send_bw.exe" />\r
+            <File Id="ib_send_lat.exe" Compressed="yes" DiskId="1"\r
+                     LongName="ib_send_lat.exe" Name="IB_SEND1.EXE"\r
+                     Source="..\bin\tools\amd64\release\ib_send_lat.exe" />\r
+            <File Id="ib_write_bw.exe" Compressed="yes" DiskId="1"\r
+                     LongName="ib_write_bw.exe" Name="IB_WRIT.EXE"\r
+                     Source="..\bin\tools\amd64\release\ib_write_bw.exe" />\r
+            <File Id="ib_write_lat.exe" Compressed="yes" DiskId="1"\r
+                     LongName="ib_write_lat.exe" Name="IB_WRIT1.EXE"\r
+                     Source="..\bin\tools\amd64\release\ib_write_lat.exe" />\r
+            <File Id="ibtrapgen.exe" Compressed="yes" DiskId="1"\r
+                     LongName="ibtrapgen.exe" Name="IBTRAPG.EXE"\r
+                     Source="..\bin\tools\amd64\release\ibtrapgen.exe" />\r
+            <File Id="osmtest.exe" Compressed="yes" DiskId="1"\r
+                     LongName="osmtest.exe" Name="OSMTEST.EXE"\r
+                     Source="..\bin\tools\amd64\release\osmtest.exe" />\r
+            <File Id="PrintIP.exe" Compressed="yes" DiskId="1"\r
+                     LongName="PrintIP.exe" Name="PRINTIP.EXE"\r
+                     Source="..\bin\tools\amd64\release\PrintIP.exe" />\r
+            <File Id="nsc" Name="nsc.exe" Compressed="yes" DiskId="1"\r
+                     Vital="yes" Source="..\bin\tools\amd64\release\nsc.exe" />\r
+          </Component>\r
+\r
+          <Component Id='OpenSMservice'\r
+                     Guid='90042B4F-51B5-4720-8E54-6D366253634B'\r
+                     SharedDllRefCount='no' KeyPath='no'\r
+                     NeverOverwrite='no'\r
+                     Permanent='no' Transitive='no' Win64='no'\r
+                     Location='either'>\r