private static boolean extractDriver(String driverNameToExtract, OperatingSystem os, String destDriveLetter)
        {

            String driverDestinationLoc = null;
            String systemRootDir = os.getSystemRoot();
            if(systemRootDir != null)
                driverDestinationLoc = os.getSystemRoot() + "\\system32\\drivers";
            else 
                return false;    //unhandled os selected

            myLogWriter.log("Driver Destination Location: " + driverDestinationLoc);

            //test if the intelide.sys driver is already present
            File f = new File(driverDestinationLoc + "\\" + driverNameToExtract);
            if(f.exists())
            {
                postOutput("Intel IDE Driver Already Exists On The System, Skipping Extraction" + endL);
                return true;
            }
            else
                myLogWriter.log("intel ide driver not found in driver directory on image");

            String driverCabLoc = null;
            String cabPrefix = systemRootDir + "\\Driver Cache\\i386";

            File cabFile = null;
            boolean foundCab = false;
            for(int i = 0; i < 10 && !foundCab; i++)   //check spX.cab where X is the service pack number
            {
                driverCabLoc = cabPrefix + "\\sp" + i + ".cab";
                cabFile = new File(driverCabLoc);
                if(cabFile.exists())
                {
                    foundCab = true;
                    myLogWriter.log("Found: " + cabFile.getName());
                }
            }
            if(!foundCab)      //no spX.cab files found, check driver.cab
            {
                driverCabLoc = cabPrefix + "\\driver.cab";
                myLogWriter.log("No spX.cab found, looking for: " + driverCabLoc);
                cabFile = new File(driverCabLoc);
                if(cabFile.exists())
                {
                    myLogWriter.log("Found: " + driverCabLoc);
                    foundCab = true;
                }
            }

            if(!foundCab)   //no spX.cab or driver.cab files found (error)
            {
                postError("Could not locate intelide.sys driver in cab file: " + cabFile.getName() + " on system");
                return false;
            }

            //extract driver to drivers directory (from the cab file we found)
            String[] cmd = new String[4];
            cmd[0] = "expand";
            cmd[1] = driverCabLoc;   
            cmd[2] = "-f:" + driverNameToExtract;
            cmd[3] = driverDestinationLoc;

            String stdOut = callExternalProcess(cmd);
            if(stdOut == null)
                return false;
            return true;
        }