public bool DeletePackage(DriverStoreEntry dse, bool forceDelete) { var dummy = ""; return PnpUtilHelper(forceDelete ? PnpUtilOptions.ForceDelete : PnpUtilOptions.Delete, dse.DriverPublishedName, ref dummy); }
public List <DriverStoreEntry> EnumeratePackages() { var ldse = new List <DriverStoreEntry>(); var output = ""; var result = PnpUtilHelper(PnpUtilOptions.Enumerate, "", ref output); if (result) { // Trace.TraceInformation("O/P of Enumeration : " + Environment.NewLine + output + Environment.NewLine); // Parse the output // [jenda_] Didn't work on non-english Windows - changed from string recognition to counting lines using (var sr = new StringReader(output)) { var currentLine = ""; string[] currentLineDivided = {}; var dse = new DriverStoreEntry(); byte lineNum = 0; while ((currentLine = sr.ReadLine()) != null) { currentLineDivided = currentLine.Split(':'); if (currentLineDivided.Length == 2) { currentLineDivided[1] = currentLineDivided[1].Trim(); switch (lineNum) { case 0: // [jenda_] Published name : dse.DriverPublishedName = currentLineDivided[1]; break; case 1: //Driver package provider : dse.DriverPkgProvider = currentLine.Split(':')[1].Trim(); break; case 2: // [jenda_] Class : dse.DriverClass = currentLine.Split(':')[1].Trim(); break; case 3: // [jenda_] Driver date and version : var DateAndVersion = currentLine.Split(':')[1].Trim(); dse.DriverDate = DateAndVersion.Split(' ')[0].Trim(); dse.DriverVersion = DateAndVersion.Split(' ')[1].Trim(); break; case 4: // [jenda_] Signer name : dse.DriverSignerName = currentLine.Split(':')[1].Trim(); ldse.Add(dse); dse = new DriverStoreEntry(); break; default: continue; } lineNum++; if (lineNum > 4) { lineNum = 0; } } } } } return(ldse); }
public List<DriverStoreEntry> EnumeratePackages() { var ldse = new List<DriverStoreEntry>(); var output = ""; var result = PnpUtilHelper(PnpUtilOptions.Enumerate, "", ref output); if (result) { // Trace.TraceInformation("O/P of Enumeration : " + Environment.NewLine + output + Environment.NewLine); // Parse the output // [jenda_] Didn't work on non-english Windows - changed from string recognition to counting lines using (var sr = new StringReader(output)) { var currentLine = ""; string[] currentLineDivided = {}; var dse = new DriverStoreEntry(); byte lineNum = 0; while ((currentLine = sr.ReadLine()) != null) { currentLineDivided = currentLine.Split(':'); if (currentLineDivided.Length == 2) { currentLineDivided[1] = currentLineDivided[1].Trim(); switch (lineNum) { case 0: // [jenda_] Published name : dse.DriverPublishedName = currentLineDivided[1]; break; case 1: //Driver package provider : dse.DriverPkgProvider = currentLine.Split(':')[1].Trim(); break; case 2: // [jenda_] Class : dse.DriverClass = currentLine.Split(':')[1].Trim(); break; case 3: // [jenda_] Driver date and version : var DateAndVersion = currentLine.Split(':')[1].Trim(); // date and version may be empty if(DateAndVersion.Length > 0) { dse.DriverDate = DateAndVersion.Split(' ')[0].Trim(); dse.DriverVersion = DateAndVersion.Split(' ')[1].Trim(); } break; case 4: // [jenda_] Signer name : dse.DriverSignerName = currentLine.Split(':')[1].Trim(); ldse.Add(dse); dse = new DriverStoreEntry(); break; default: continue; } lineNum++; if (lineNum > 4) lineNum = 0; } } } } return ldse; }