========================================================================================================================= XErase Release Report ========================================================================================================================= Version 14.29.0 (released 09/13/2024) ----------------------------------- 1) Added Snapdragon CPU parsing and fixed an efficiency core counting problem. 2) Restored writesame blockcount to a fixed 0x3000 span to increase WS efficiency for certain drive models. 3) Disabling Flush Cache and Trim within the functions regardless of settings until I can look into some things. 4) ID substitution for a faulty system serial number now requires XXXX instead of XX in that partitcular case. 5) LoadLogDev function now keeps track of sysinfo version, product, and dates, so that it can be updated and reused to generate other reports with the data as-initially-set. 6) Battery Health test is no longer skipped so that the health percentage is populated in the structure on reboot. 7) Added Note field to DeviceXML file to document the last Reason note for the drive. This correlates to the Failure Reason tag in the drive log. 8) Added 2 more External Tests for a total of 5. 9) External Test answers pushed to the database will be in the format PASS (detail) if details are provided, PASS if not, or just detail if it was set to Note type instead. 10) The Unknown! scenario (which should never happen) in EndOfErasureState() has been changed to a default Failure in an abundance of caution. 11) Extra handler for STATE_PERMADEAD in devicearrivalthread so that offline excessive state cant be re-enabled, which causes a flow problem. 12) Added some failsafes/sanity checks around device offline activity. Write and verify passes that complete successfully are incremented and compared to the number of passes that should have completed to force a failure. Setting STATE_FAILED now also sets an erasure_failed flag which is independent of the state, which is used for many things and could get lost under very rare circumstances. This flag will be used to restore STATE_FAILED if returning online. 13) Modified a workaround for some odd drive behavior in Custom_ATA_Sanitize which could be problematic in its assumptions. After the wait loop, check status again and see if the drive recovered and is giving us good status data. If erased, good. If not, fail it. 14) Add lower-level tracking for erasure passes/validations that can not be overridden by a badly timed windows device insertion code (device[idx]->erasure_writepass_complete++;) After all passes are complete, numbers are compared to make sure each pass was good and set to FAIL if not. Version 14.28.1 (released 08/07/2023) ----------------------------------- 1) Battery drain test WHILE cpu drains is now an option. Version 14.28.0 (released 08/06/2024) ----------------------------------- 1) Fixed StringTweak storage rounding w/ 2 decimal points option. 2) Third Party validate can now support 4k drives and can retry reading the disk 8 times in case of momentary glitches causing problems which previously would be a failure. 3) Made Flush Cache and Trim disabled by default. Trim seems to take a long time on drives that have been in use and causes problems. Not clear if the Immediate bit would resolve it, or cause other problems. Version 14.27.0 (released 07/31/2024) ----------------------------------- 1) Discovered a reset of errochk variable inside IsDeviceReady which might hide ioclt errors of specific types with certain timing. 2) Added PDF upload for SystemErase. 3) Flush Cache and Trim commands are now available as part of the erasure loop. Some drives seem to have odd behavior when the write buffer is full and doing a secure erase, and these settings may allow us to work around that. Current defaults are both enabled. These settings can be adjusted in the Advanced Configuration->Drive Cache/Reallocation settings. 4) If ErasureStation variable set then restarting will ask if you want to clear userfields even if the prompt is not also in Default Log Path. 5) Rewrote PrevalidateOpcodes to make things more modular and eliminate the multiple calls when early returns caused opcodes to be eliminated. Code is more manageable now. ATA WriteSame currently disabled. Version 14.26.0 (released 07/21/2024) ----------------------------------- 1) Added additional checking in DeviceArrivalThread after RefeshDeviceHandle/FillInquiry in case the structure vanishes/gets deallocated. Version 14.25.6 (released 07/18/2024) ----------------------------------- 1) Fixed a drive grading load bug which was not selecting SSD Life Left if neccessary. Version 14.25.5 (released 07/18/2024) ----------------------------------- 1) Rewrite of Hybrid megaraid matching routine to better handle multiple raid controllers and more explicit handling of one-lun-per-disk request putting appropriate controllers into a psuedo-jbod mode and exposing the disks directly (Avamar Gen5a). Not yet publicly released for USB/PXE prior to more extensive testing on the platforms. 2) Drive Cache / Reallocations options added to Advanced for Customize->Interface. The defaults are still Enabled/Enabled/Enabled but can be configured. 3) Ignore Glist, Ignore Purge Options, Advanced options removed. Version 14.25.4 (released 07/12/2024) ----------------------------------- 1) WriteSame size is reduced from 0x1000 blocks to 0x400 blocks for 512 byte blocks or 0x80 for 4k+ blocks in case this is causing bad interactions with LSI HBA caching. Version 14.25.3 (released 07/11/2024) ----------------------------------- 1) Improved PrevalidateOpcode logic revolving around writesame testing. Version 14.25.2 (released 07/09/2024) ----------------------------------- 1) Removed storlibit.dll usage. Version 14.25.1 (released 07/03/2024) ----------------------------------- 1) Added Testing table possibility for Xcloud database 2) Xerase/LCserver could crash on the Database configuration window if connecting to a database containing a field name or type exceeded 64 characters, even if there was no intention to use that field for Xerase. This really only comes up when a field is defined as an enum with many longish string options. Enums now strip out the options for xerase and the copies are capped regardless. Version 14.25.0 (released 07/01/2024) ----------------------------------- 1) A third Party pass status was preventing post-erasure drive health by putting the drive in a completed state instead of leaving it in a running state. 2) Prototype behavior for sending trigger emails on certain conditions for a specific customer for Octanes, in this case on 3rd party data compare detection. Over time this may become more generalized and available in more use cases for all customers. 3) 3rd party verify status now becomes the Failure Reason if run/failed and so will be shown on line2 oh physical interface slots. If you need to look at Grade in this scenario you will need to swap to Health and Grading option. A new Wipe / 3rd Party Status Combo has also been added to make the text and status more legible and work on 3rd party passed drives. 4) 3rd party verify status now includes better failure reasons in parenthesis. This will be uploaded automatically anywhere 3rd party status was used, so easiest to integrate. 5) Added Stringtweak for drive capacity fractions. Default option is more or less the same as current, but the rounding to whole numbers is in a narrower band. 1 decimal pt is the default outside that band. 2 can be selected. Options 3 and 4 disable all whole number rounding and show appropriate decimal pts at all times. 6) Inclusion of USB devices for PXE is no longer forced on and will respect the profile settings. This may cause some previously detected models to no longer find drives if they were attached to the USB bus! Make sure Use USB is enabled in Advanced if you want them detected. 7) FindDeviceByStrname was doing a strncmp for Scsi rather than scsi (case sensitive) which should have been changed when device strings were forced lower-case. 8) Created an alternative ConvertCase function that accepts maximum lengths and should be more robust. The program will move to that over time. Busscan_common.c has been converted. 9) Added memory formfactor 24 to lookup table (FB-DIMM). Made a fix for a DDR4 memory chip incorrectly reporting itself as RIMM. 10) Added Orientation 6 and 4 to SetArraySlotNumbers() so that enclosures can handle SLOT_H_UR_BL_4 and SLOT_H_BL_UR_6 modes. 11) Added Smart ID 202 for SAMSUNG so that it shows SSD Mode Status instead of the more-common SSD Life Remaining key for Crucial, and some others. This is to eliminate confusion and unnecessary discussion. 12) Added SMART ID of 169 to the 511 SSD Life Left evaluation function. It comes immediately after the vendor-specific IDs so should have high priority. 13) replaced sizeof(NVME_SIG_STR) with NVME_SIG_STR_LEN in eps_nvme.c 14) Testing database post-erasure upload changed updateme[tableidx] to look for not-equal to 1, rather than equal to 0. This eliminates non-initialized data if somehow overflow happens. 15) Database upload for MDM had a mismatch for type name, causing a 0 to be uploaded rather than the actual value. 16) If a user enters a path character as part of a userfield that then gets used for a Report Filename, Windows gets confused and is unable to create the file. Report Names (not the path) are no longer allowed to have slashes, backstashes, periods (except as part of the extention), or wildcards. These will be replaced with an underscore. 17) Logged System Testing parameters block on loading a profile, on loading an existing testing structure, and before testing to ensure that flags are being loaded correctly and not being changed. PrintTestingFlags() 18) Changed system testing order so that Battery Health goes first. 19) Added Marvell vendor ID for NVMe drives (Dell Boss controller) 20) Added ARM64 notations for Debug_XERAS.txt so its clearer the version thats running for support purposes. Version 14.24.3 (released 05/22/2024) ----------------------------------- 1) Fixed a problem with Makor API 1.0 drive xml uploads. Version 14.24.1 (released 05/16/2024) ----------------------------------- 1) Replaced LC_SEND_SYSTEM_INFO etc with LC_LISTVIEW_UPDATE. 2) Updated Xview code to only blit valid client bitmaps, and to continue if invalid bitmaps were present. Updating bitmaps now only happens when screen redraws are not in progress. 3) Reduced Deferred_Processor time between processes to 100ms from 1s as the sheer number of requests can pile up from snapshots and Listview system updates for larger collections. 4) Updated LCserver/ERP Script code to call the correct LCserver function. Added code in ERP_SetDefaultSettings to strip out trailing / which may get in the way of url connections. 5) LCServerRemoteCodemode, which transfers data for a specific list view, is now disabled by default. Using this with large numbers of systems can lock up the LCserver pipeline, si update frequency needs to be tailored to your use case. In Advanced, you can set the update period from 0 to 240 seconds. Version 14.24.0 (released 05/02/2024) ----------------------------------- 1) Disabling Verifications, even when warned, is no longer allowed. 2) Update period for ListView information is now 45 seconds, instead of 15. this should help open up gaps when large numbers of machines are operating simultaneously. 3) Removed the Failure Reason note from reports as this redundant with earlier Reasons and leads to confusing clutter. 4) CPR 3rd party validation logs should now copy to the BackupLogFolder, at least on Xerase standalone. 5) The license selector now properly sets the LCserver index to use, either -1 or 0 as appropriate, when changing licensing sources. 6) Add options under Nist Write Pass Policy to allow Fail/Fail, 1x/Fail, 3x/Fail, Fail/1x and Fail/3x. If a Fail, erasure should fail as write passes are not allowed for this drive. 7) Fail a drive if HPA/DCO/AMA cant be removed Version 14.23.8 (released 04/01/2024) ----------------------------------- 1) Changed to TargetPort B code adjustment. Initial restriction of ATTO internal adapters, but then changed to all ATA drives as ATA drives dont have a second port. 2) Renaming of system userfield data keys inside the block to make it easier to integrate with Razor. As this is a relatively new field it is doubtful this is being relied on at this time. Userfield0 becomes Userfield0_Name. UserfieldValue0 becomes Userfield0. UserfieldType0 becaomes Userfield0_Type. This allows the key UserField0 to be the same for both the processor block and the drive block(s). Script_ReloadUserFieldValues() changed to load from with brackets to eli 3) ATA WriteSame removed as a default as it causes more problems than it solves. It is now integrated with the Opcode Probe option in Advanced Configuration and removed from Erasure Settings. Version 14.23.7 (released 03/22/2024) ----------------------------------- 1) Script API was processing the end-of-drive state as ERP_Stage 1 instead of 4 as intended. This caused this stage to be skipped if Stage 1 was not enabled. 2) Changed the program to not default to user_fields.usr file, so that if not specified in the profile/xerase.ini it doesnt load up user_fields.usr automatically anyway and end up using the one in the WIM which has PROMPT1 defined. Version 14.23.6 (released 03/19/2024) ----------------------------------- 1) Debugging info added for Script API. 2) Better switch support Version 14.23.5 (released 03/15/2024) ----------------------------------- 1) Added Verbose Debugging for switches. 2) Added more switch-centric reporting data for the Drive One-page PDF output. 3) Fixed some crashes on processing certain Switches. Version 14.23.4 (released 03/13/2024) ----------------------------------- 1) Do not recall. Version 14.23.3 (released 03/12/2024) ----------------------------------- 1) Removed a line of code that forced Switch mode to always start in List Interface due to the lack of meaningful physical interface use when initially created. Now you can always start up in the power-module switch interface. 2) Added ErasureResults, ThirdPartyVerify, and Drive Userfields into ERP XML report files. This is a stepping-stone to the fully unified function that works for live, reports, Makor or Razor/EPS. There may be some transitional pain when that happens, likely with switch data. 3) Query for Unit serial number page is now mandatory if the drive serial number is empty at that point so that people can not disable SES mapping on devices. Version 14.23.1 (released 02/27/2024) ----------------------------------- 1) Fixed a crash in parsing some SMART table data from the drive logs in the report window. 2) Device XML reports can now generate Makor format files if the ERP is configured as a Makor type. This is a work in progress and not 100 percent as categories get aligned to the Makor system xml names. 3) Device XML reports generated from the report window have hade MediaType changed to Type to align with the automated xml files generated for ERPs. 4) Disabled testing for ATA WriteSame opcodes entirely for Laptops and Tablets, as iaStorAC or the device attached to it may lock up IO during the bus probe and bluescreen. 5) Added MessageBox Debugging option under Advanced Configuration, which will insert many breaking messageboxes and copy debugs/logs to the override for the section of the code you are concentrating on. 6) Removed the null-cosmetics grade test for skipping output of the cosmetic answers, as some customers are using this window to gather generic data without setting a cosmetic grade in the process. This may be reverted if it causes unexpected issues. 7) Added system condition loading from sysinfo files for eventual reports/database access. 8) Fixed a report output problem for userfield names. 9) Added Keyboard type to system XMLs. 10) Added Broadcom Fingerprint Scanner (PID 0x5801) to the lookup table. 11) Added Bluetooth key to System XML files. 12) drive logs now include localized versions of ha string and other values to provide more data on how the drive is connected without needing the debug log. 13) AutoPilot code now defaults to No instead of unknown if the client registry hive could be loaded. Will change to yes if certain things are seen. 14) LoadUserFields does more logging in case of problems and now uses a standardized folder location function isntead of a custom one. 15) NVME critical flags and Available Spare Threshold are now impacting health scores. This is a work in progress. If you feel penalties are two severe, contact us to discuss. Version 14.23.0 (released 02/09/2024) ----------------------------------- 1) NVME critical flags now added to smart table to look at but not yet factoring into Health Score. 2) Offline wait time increased to 180 seconds from 120. 3) Changed default purge priorities to do NVMe formats over Sanitizes if both are available. Version 14.22.11 (released 02/02/2024) ----------------------------------- 1) Disabled AMA resizing code that might sometimes make the drive tiny? Version 14.22.10 (released 02/02/2024) ----------------------------------- 1) SN Barcode values in horizontal labels are now taller yet as the printed bar was still too small. Version 14.22.9 (released 01/31/2024) ----------------------------------- 1) SN Barcode values in horizontal labels are now taller to make it easier to scan. 2) NVMe size code now defers to SCSI sizing. This may change if we can determine when junk data is being returned from the namespace code. 3) Xerase Remote-Control/Checklist now will only send information to LCserver 12.5.1 and higher which can handle it. Logging around this function has been cleaned up to make things quieter. 4) stornvme Sanitize code specifically disabled and logged in desktop as the command is not supported. Version 14.22.8 (released 01/24/2024) ----------------------------------- 1) HP CISS mode override removed as some HP controllers should NOT be using it. 2) Xerase Remote-Control /Checklist window compatibility rolled back until LCserver version check can be implimented, as this code will lock up the license server if not compatible, and then cause drawing issues as a side effect. Version 14.22.7 (released 01/23/2024) ----------------------------------- 1) WriteSame due to no writecache option now only kicks in if the writesame speed is faster than wrrite speed. This allows the software to proceed with further testing for valid WriteSame selection. 2) Xerase now compatible with LCserver 12.5.1+ Remote-Control /Checklist window. 3) Removed most of the remaining vestiges of the old Burn testing functionality. If using old profiles and upgrading, you need to specifically update your testing settings. Version 14.22.6 (released 01/22/2024) ----------------------------------- 1) In Advanced configuration, there is now a setting to modify Internal Port Optimizations logic. If set to Off, then Octanes, laptops, etc, will attempt to use SCSI WriteSame commands. Normally, WriteSames should be slower than Writes, but for some drives/firmware this is not true. Setting to OFF will allow octane Internal Ports to use WriteSame opcodes. 2) NVMe drives are never considered LUNdrives. 3) Due to some drives providing garbage NVMe namespace data, in the short term NVMe drives will be using only reported SCSI maxlba and block sizes. Version 14.22.5 (released 01/18/2024) ----------------------------------- 1) Using Profile-selector, it should no longer ask if you want to chenge modee if the original and target modes are the same. 2) Fixed a Profile-selector caused title bar bug, implying a license was expired. 3) Fixed a Debug_XERAS.txt logging error for licensing via subscription. Version 14.22.4 (released 01/15/2024) ----------------------------------- 1) Fixed a PDF report crash having to do with the footnotes. 2) Drive WWNs are decremented by 1 if the WWN in question appears to be the PortB WWN so that it matches with the Enclosure Services PortA WWN value for mapping purposes. If this happens, there will be a note in the Debug Log. Version 14.22.3 (released 01/12/2024) ----------------------------------- 1) Enclosure Mapping window now displays the number of slot elements detected on an SES chip explicitly in the combo. If the answer is 0, it will display NO DRIVE MAPPING instead. 2) FTP ERPs will now create device XMLs for upload. 3) Modification to Scripting API code to accommodate a customer ERP system. 4) Fixed a problem that cropped up with stornvme not getting a proper serial number. Version 14.22.2 (released 01/10/2024) ----------------------------------- 1) Added additional tweaks to battery health. If current charge is 0, assume a bad battery. Also, check windows for Critical Status on the battery. 2) Added generic Dynamic string parsing for Userfields so that Resale Pallet can be automatically evaluated as Hewlett-Packard Resale Desktop Pallet and stored in the user field. Version 14.22.1 (released 01/09/2024) ----------------------------------- 1) CPU model string removing the Core i5 tag has caused a problem with SystemProcessor variable, which assumed it was present. The proc_type is now added manually to the model so that the format remains Core i5 14300K @ 3.40GHz Version 14.22.0 (released 01/03/2024) ----------------------------------- 1) Fix for the standard system XML format for hard disks, which were missing a close Health key. 2) CPU and Memory testing have now been split into two separate controls for the System Testing configuration. 3) Sanitize Overwrite no longer uses the Clear setting to determine whether to do 1x or 3x passes as this mode takes a very long time to do anyway, and if it passes was guaranteed to have erased all blocks regardless as all other Purges do, so there is nothing to be gained by spending more time to do it. 4) Clear: Use 3x Overwrite has been removed and replaced with a setting that lets you set the Clear WritePass policy. This is more generic and can now allow 5x and 7x passes if the customer requires it while still using the NIST 800-88 rev1 Clear wipe method. Version 14.21.6 (released 12/26/2023) ----------------------------------- 1) User Guide menu in WinPE can now initiate an EPSIF ripping as a temporary measure. 2) Label code added various system display parameters. 3) Label code modified to use different size constraints for elements (IMAGE_HEADER, SN_BARCODE) depending on Portrait vs Landscape modes. This should keep these elements from dominating the page and leave more usable room. 4) Updated MDM detection code which will hopefully now be able to detect Intune/Autopilot for systems with an intact hard disk. (Beta) 5) The safety fallback loop which issues TURs and looks for sense data has been improved by zeroing out values and changing some logic. This should eliminate an unlimited erasure scenario for anything but maybe a Sanitize Overwrite which has yet to be tested. 6) The ERP Window for Scripting method now adds a Stage Control so that the user can turn on and off different stages (the script will only be called at appropriate points the user designates to make writing the script easier.) Systems tagged as ErasureStation in the Advance Customization can only use stages 2, 3, and 4 which are for Drives. System stages are ignored, no matter what these values are set to. 7) Added ParseScript support for ERP_Stage 2 (per drive settings/methods) so that the Scripting ERP can ask what methods to use. 8) Discovered a situation in polled loop after a Sanitize Blockerase was issued via ahci driver that the test_unit_ready would return before it was actually ready, causing a failure. An additional read to the device (if read opcode is valid) has been added to ensure device access before exiting the polling loop. 9) Replaced the not usefull Rescan Adapter item in the device list context menu with Opcode Probe. This allows you to reaquire opcodes after they may have been discarded, or never aquired. This SHOULD be able to be done without affecting an erasure/validation, but no guarantees if the read fails. 10) Added ParseScript support for ERP_Stage 0 (boot) assuming that ErasureStation variable is not set, and that ERP_DoStage[0] is on (off by default.) This will allow a booted PXE client to configure PXE profiles and other settings via the ERP scripting mechanism. To facilitate this, ERP_LoadDefault() has been moved to very early in the startup process. 11) Reformat SCSI Block Size option now will not reformat 4096 to 512 and vice versa as both are correctly supported by Windows. The option will format from 520 to 512/4096 for example, which is far more common, or from 512/4096 to 520, or 520 to 528. Version 14.21.5 (released 11/27/2023) ----------------------------------- 1) Sanitize operations have been disabled for stornvme connected drives, leaving NVMe Format as the only valid option on PE until we learn otherwise. Version 14.21.4 (released 11/16/2023) ----------------------------------- 1) Fixed an iterative problem with the title bar length when a license is expiring which could cause a crash. Version 14.21.3 (released 11/15/2023) ----------------------------------- 1) Additional retry error logging, and simplified code to reduce possibilities of crashes. Version 14.21.2 (released 11/13/2023) ----------------------------------- 1) ATA SMART scores per attribute have been modified to eliminate the ambiguity as to the highest value, which might cause a given score to look much worse than it might be (basing a max value of 200 rather than 100, for example.) The new code basically will assign a 100 Score to any ID whose current_value is >= 100. Scoring lower than 100 only kicks in past that point. 2) The Log Analysis window Archive button has been fixed to be more efficient/accurate in the selection, it will copy to a folder in Archive then ask if you want to zip it up. This can be useful if you want to pull a subset of logs and put them in their own folder for easier/better analysis (for example, pulling 700 logs for 14TB drives out of a sample of 4000 logs) 3) The Log Analysis window has been made into an Extended Select list box. This means that you can select multiple items by dragging of using Shift-click to select a range. This will make working with large numbers of drives easier. Version 14.21.1 (released 11/11/2023) ----------------------------------- 1) Added a space in the list entry between log number and the date in case looking at more than 999 logs at once. Version 14.21.0 (released 11/09/2023) ----------------------------------- 1) Added the Script ERP option and the Makor.api script. This should be used for Makor uploads in the future. the older Makor ERP option is deprecated and will be removed in a future release entirely. Work with us and Makor to get Makor 2.0 credentials and get your system configured. 2) Added a mutex for Database uploads incase too many drives are wrapping up more or less simultaneously. 3) Fixed a problem with updating an asset ID for a standard-OS install erasure station. Needed for Makor and possibly other scripting. 4) Fixed a string length problem in EPS_OpenURL there the url could be sprinted into a smaller string for logging purposes 5) SlotString information updated to provide actual grades when a Failing Grade reason is detected. This makes multiple fail possibilities useful, such as Drive Size, SelfDiag Fail, and others. The information can be available in other ways, but this adds to convenience. 6) Changed systems running ERP scripts for Makor to be hardcoded to not be ErasureStation, even if Octane/etc processing loose drives. The reason for this is that Makor 2.0 only supports System XML uploads, so drive data has to piggyback off of a system upload. This is in ERP_SetDefaultSettings and should be removed is Makor support allows drive data in the future. 7) Changed OnePage PDF reports to render properly at different Windows Desktop Scaling factors (100/125/150/175). 8) Added Switch and Monitor-specific OnePage reports, which can be tailored to displaying appropriate information in a better fashion. Monitor is mostly complete, but Switches need further work. 9) Added catch-code so that removed database mappings will have a 0 string added to it. Should work with pretty much any database type. 10) Setting Recycler Glist or Power on Hours cut line limits to -1 will cause them to be ignored. 11) Added virtual SMART ID 512 (CAPACITY IN GB) so that grading can implement cut lines. A 1TB drive cut line would be RAW > 999 for a good Grade, for example. 12) Added WorkOrderAuthorization support for one switch erasure customer. 13) Force Window removed the Other list for configuring prompts, etc, as its no longer useful. This allows us to sprink the vertical height to accomodate 800x600 displays. Version 14.20.8 (released 10/04/2023) ----------------------------------- 1) Fix for database uploads from the report window. Version 14.20.7 (released 10/05/2023) ----------------------------------- 1) Makor ERP is now named Makor 1.0 for the older legacy integration. Makor 2.0 support will be provided via ERP Script functionality to be released soon. Version 14.20.6 (released 10/05/2023) ----------------------------------- 1) Defaults for Erasure warning/failures in recycler mode have been bumped up to 1000 Reallocated and 85k PowerOnHours. 2) Some Gen 12/13 I7 CPUs have a package with two different processors on them that are being reported to windows as 2 CPUs. For Laptops and Desktops, the number of CPUs has been hardcoded to 1 until such time as a proper algorithmic fix can be enabled. Version 14.20.5 (released 10/02/2023) ----------------------------------- 1) Updated the Database loading function to identify more Drive Fields to set Drive Table type, which may help a minimalist drive table from being categorized as an OTHER table type 2) PDF reports will now render Report Title, Title2 and Title3 in the DocID region using a smaller font instead of centered on the page. 3) PDF reports will now render at full width and proper scale no matter the Windows Desktop Scaling factor (100/125/150/175). Some variances between them are unavoidable. 4) Autogenerating multiple report types with prompting will now only ask for the information once by moving that into DoEndofErasureBatch() 5) BIOS batteries can cause clocks to be wrong. When this happens, and the system is not connected to an LCserver, the user is asked to update the clock/calendar for recordkeeping purposes. The OK/Cancel requestor has an changed to a YESNOCANCEL one, where NO allows the user to continue without changing the clock. This will likely cause problems with record keeping and is strongly discouraged. Version 14.20.4 (released 09/22/2023) ----------------------------------- 1) Fixed a problem with manually generating one page reports. 2) IEEE erasure methods and associated reporting descriptions are updated and available. 3) EPS Scalable Health scoring is now much more forgiving on Reallocated sectors, especially on larger and older drives. If you want a more stringent hard cap, you should all a reallocated limit to the Grade instead of relying on Health. This is a work-in-progess and the result values may change over time. 4) SATA SMART ID 505 is now based on raw (0 and 1) instead of just 0. Previously it was believed that some vendors were storing junk data in 1, but based on some enterprise drives we have seen lately, not so sure of that. Version 14.20.3 (released 09/13/2023) ----------------------------------- 1) Fixed a crash with 14.20.2 on autogenerating reports. Version 14.20.2 (released 09/12/2023) ----------------------------------- 1) Adjustment to ChooseBootMethod_base to allow the addition of NIST 800-88 rev1 Clear (7x) method without switching to the normal Clear routine (1x and 3x) Version 14.20.1 (released 09/08/2023) ----------------------------------- 1) Preliminary framework being put in place for being able to download drive firmware post-erasure. Not yet functional. 2) NVMe Grading was improperly using the SCSI grading values instead of NVMe values. 3) EPS Power Control Hardware and the physical interface can be used to fully automate many switch erasure processes on supported switches. Switches requiring mode buttons, etc, may not benefit. 4) Added Post-Erasure->Power-Down Switch for turning off power to a switch after erasure/processing when connected to the EPS Power Control Hardware. 5) As of 14.20.1 PXE boot Xerase does all prompting on startup for cleaner operation of SystemErase. This causes issues for customers desiring to PXE boot a system to erase loose drives. A new qualifier to the startup prompting has been added so that ErasureStations will not prompt on startup. For the PXE Profile ensure that Program Settings->Erasure Station is set to ON. Version 14.19.2 (released 10/30/2022) ----------------------------------- 1) Added 4s before sending Label and ERP commands to LCserver, so that file transfers will have completed first. 2) Removed unused xerase.PrintLabelOnCompletion variable. Version 14.19.1 (released 11/01/2022) ----------------------------------- 1) Removed Drive_Count entry from makor XML as they dont have a mechanism to pass this information without a layers of wrappered data. Customer will have to do without 2) Fixed Razor FTP upload and removed FTP_Busy loop. It should not be necessary with improved wait loops in FTP code 3) KINGSTON ssds might report 6464 in their SMART table for some elements. Xerase was interpreting that as a literal value, but it seems to mean uninitialized. For KINGSTON manufacturer, an 0x6464 value will now substitute 0 so as not to fail grading, etc. Version 14.19.0 (released 10/27/2022) ----------------------------------- 1) Removed GetNeweggSpecs() call to eliminate a crash until it can be looked at in more detail. 2) If using the External Test NOTE feature for insertion into a device table, the Detail is now correctly used. 3) Added FallbackChassisType to the makor2 ERP XML format. This is a more generalized Chassis. While a system might have Mini-SFF chassis type, it would have a Desktop fallback chassis. 4) Added FTP type to the ERP selections to upload the makor XML (system/testing) files and device.xml (device/erasure) files. FTP has been updated to attempt TLS authentication if the return code is 421 with an error mentioning TLS. 5) If a .jpg file is present in the Images/SeriaNumber folder (replace with the system number), it will be substituted for the chassis image in a SysVisual report type. 6) Fixed a resource leak associated with the AdvancedQuery popup. 7) When using System Conditions, it is now possible to add up to 6 photos URL links to the reports and ERP XML files. This requestor will happen if BaseURL is set in the system condition startup configuration. The BaseURL can use our Dynamic variables. https://www.yourcompany.com/pictures// is not a bad start, which assumes that all pictures will be located in a system serial number subfolder within pictures. 8) Fixed an edit field population bug in customize_interface for the 3rd edit field. 9) Missing/non-functional batteries will not attempt to run the Battery Drain test. Result will be set to N/A. 10) Missing/non-functional batteries now set the Grade to FAIL for reporting purposes. 11) Added code to remove Missing battery slots if a later slot has data. 12) Autogenerating report types other than the default report type works properly know. 13) System Reports now have small white-space grouping gaps to increase readability and make it easier to find specific data in the list. 14) Removed GetAdapterMaxTransfer call for unclaimed devices to dramatically speed up the bus probe. 15) Replaced a natural spinup wait in FillInquiry with the new function SpinUpandWait, which will issue spinup commands and if the drive reports that it is becoming ready will wait until it is (up to 5 seconds which is the previous time); This should make the bus probe work better with drives in a naturally spun down state, and it happens before any commands are issued. 16) Some drives are returning am inquiry serial number followed by binary data and more ascii. The binary was replaced by underscores, but that was causing the data to be discarded. The FillInquiry function now strips off the binary/underscores if there were 2 or more in succession. 17) Removed STARTSTOP - Power Cnd IDLE + start and STANDY + start spinup commands as they seem to put the drive back INTO 02/04/02 state rather than pull it out. After initial bus probe start-stop, will go into a short wait loop if TUR indicates 02/04/01 state (in the process of being ready) 18) Fixed LocalRptFiles being reset to 0 in CopyLogsAndReportsToOverride(), which caused Debug/Messagebox feedback to look odd. Summary of the file copies are now output to the debug whether or not a messagebox happens 19) Added the ability to extract the friendly product name from SystemSKU field for LENOVO products to replace the model number (which may still be present in SystemVersion.) 20) Remove Missing battery data if a non-missing is found later. 21) System CPU testing has been modified to force all CPUs to begin calculations simultaneously rather than as-threaded, thread priorities are set to HIGHEST to ensure that none get backburnered to deal with system stuff, thread affinity is assured, and additional logging has been added. Extraneous during-testing debug logging was disabled which might cause issues with large core CPUs, and the speed threshold for acceptable performance has been loosened. 22) Added an alternative method to get monitor EDID data to parse for WinPE boots. 23) Removed the condition that a reported serial number should not be the same as a WWN to accommodate Kingston SSDs which are doing exactly that even on Octane hardware. 24) Added Drive_Count tag to Makor_InsertSystemInfo in case its ever needed. 25) Added Display information to InsertSystemInfo, Makor_InsertSystemInfo, and InsertSystemInfo_HTML. DisplaySize variable has been changed from a float to a string. 26) Added Code to InsertSystemInfo for drives. Version 14.18.10 (released 10/03/2022) ----------------------------------- 1) Fixed an ERP Upload crash at Bookkeeping when using ForceDevice function. Version 14.18.9 (released 09/30/2022) ----------------------------------- 1) Bluetooth devices are now enabling the System_Bluetooth flag. 2) Added 8 Intel USB Bluetooth devices to the lookup table. 3) Device List display for SMART values has been replaced with FlexStrings. This will allow us to add additional data that changes based on the type of devices being processed for upcoming functionality. Version 14.18.8 (released 09/26/2022) ----------------------------------- 1) Found a bug in head_error_list parsing (EMC health) which may have been causing a crash. Version 14.18.7 (released 09/21/2022) ----------------------------------- 1) Calls for a specific json HTTP Database upload (google sheets) have been removed. This should be happening inside of the database upload code regardless. 2) Replaced specific database upload complexes in Erase_Device and EndOfErasureBookkeeping with calls to a standardized Upload_To_Database function so that new functionality (SysEraseMode HTTP API) gets used in all locations automatically. JSON database upload I believe happend in EPS_MYSQL_UpdateEntry automatically so not needed externally as Erase_Device was doing. 3) AutoReport_AddDrive moved to BatchSetupLog() inside of BatchSetupDrive() so that it can record userlog paths in anticipation of new functionality. 4) sd#disk string comparison in ModelStockFlags() is truncated to sd# to accomodate a new laptop storage device that has slightly different strname formatting, causing it to be misidentified as an M.2 SSD by virtue of being in a laptop (this is the default.) 5) Xcloud system monitoring/snapshot is now disabled by default on the client and needs to be enabled under Advanced Settings. Version 14.18.6 (released 09/20/2022) ----------------------------------- 1) Some SSDs appear to impliment BlockErase by overwriting every used call rather than a bulk data reset. The result is that the more data is on the drive, the longer it takes to erase. This caused some heavily used drives to time out the ATA BlockErase command when behind a megaraid controller. The timeout value has been increased from 30 minutes to 90 minutes. Version 14.18.5 (released 09/15/2022) ----------------------------------- 1) Fixed The Filter Logs by Criteria option to use GetReportString_New to go along with the newer organizational structure implimented to allow more complex reporting. Filter Logs by Criteria will not allow you to pass in System Serial Numbers, Start/End date ranges, user Field values, etc on an upper level folder and find only the devices/systems that youre interested in. Version 14.18.4 (released 09/14/2022) ----------------------------------- 1) Fixed a typo causing Original_Operating_System tag to not load correctly from the XML file. Version 14.18.3 (released 09/14/2022) ----------------------------------- 1) Beta functionality for using an HTTP API for database injection with SystemErase installations. 2) SystemOS is used for label output if InstalledOS is empty. Version 14.18.2 (released 09/09/2022) ----------------------------------- 1) Apple chassis of SFF is now labeled MacMini. Version 14.18.1 (released 09/09/2022) ----------------------------------- 1) Raw Chassis Type 8 (portable) is now always being considered a Chassis Type of Laptop due to Dell convention on some laptops. Version 14.18.0 (released 09/08/2022) ----------------------------------- 1) ERP system uploads the base makor_ filename rather than renaming it for ERP uploading depending on ERP type, which can cause the file to be uploaded as two different filenames. Razor can process this original filename without an issue. 2) Identified an ATA model of SSD that does not return valid register status information, making us believe that the erasure never started when in fact subsequent commands make clear that a Sanitize is still in Progress. We have added a TUR loop to wait for the Sanitize to complete, and assume that the erasure was successful. Failure will then happen if Seed validation flags unerased data. 3) Battery structures are now specifically zerod out so that non-present batteries will not contain non-sensical data, in case they are being referenced in a report, etc. 4) Only PCI devices can now be matched against the vendor list in OverridePCIid_Lookup. Previously, this would allow HDAUDIO and USB devices to match against the list, and were sometimes incorrectly assigning a video card name/designator to an audio devices due to the vendor and overlapping device IDs of the different categories. 5) Wifi tag added for Broadcom VEN_14E4&DEV_4359. 6) When calling GetNewStats post-erasure, usually the only operation left to perform is verification. Doing any write testing has the potential of causing a verification failure, so Prevalidate opcodes only does Reads. Unfortunately, this disables the write opcodes, so if you wanted to do any further writing, youd need to rescan the bus first. GetNewStats now remembers the previous write opcodes and restores them in this scenario. This should very rarely come into play. 7) Some drives, after a self-erasure operation, take longer than expected to return to full functionality. This can cause the Purge erasure to fail falsely, while the fallback Clear operation is fine. GetNewStats has been upgraded to provide either variable or a larger fixed amount depending on the drive state prior to doing the erasure. The delay has increased from 7.5s to a maximum of 30s (usually in steps of 5s each.) 8) AddSystemInfo deals with a problem caused by a system xml file full of binary zeros. Data will not be present, but will no longer crash. 9) Added Dell Manufacturing Vendor-unique test parameters to healtha nd grading. 10) Battery Pass/fail is no longer precalculated at detection time and is only done when running the Battery Check now. This fixes a problem when using Profiles in which the battery threshhold is different from the threshhold stored in XERAS_override/config/xerase.ini 11) Cleared the testresultstruct specifically on startup so that the initial configurable sysinfo xml file wont crash due to bad data on first startup. 12) GetChassisType now sets fallbackchassistype via a string comparison function which is also used on XML loading for reports. This will allows fallback images to work for reports. 13) Simplified Display testing, which now reports a simplified Pass/Fail for Color and Touch to make it easier to use going forward. 14) Simplified Keyboard/Mouse testing output for XMLs. Rather than a list of all bad keys, Pass/Fail status is now saved and up to 3 keys in a details string. This will make it easier to integrate into ERPs and Databases while the previous method was overkill and unusable. 15) Added second option to Final Copy to Override/Backup Folders setting in Post-Erasure (OverrideCopyPrompt variable.) If set to Warn on Errors Only (2) then the summary popups will not notify you unless the copies had an issue of some sort. 16) Added a Customize->Interface option in Advanced to Disable the Override Folder after the bus probe. This will allow the user to remove a USB stick and the program will not attempt to copy logs, debugs, etc, to the USB stick during erasure or at the end via the Final Copy to Override/Backup Folders function (OverrideCopyPrompt variable.) 17) If a PSID has been assigned, then the drive will attempt to Revert using that PSID, whether or not it is currently locked. 18) Added Marketplace data extraction from XML files for reuse in reports, etc. 19) Added sn_special variable to BadWWNFix to eliminate bogus WWNs associated with Intel iaStorVD drives used for serial number purposes. Version 14.20.0 (released 08/25/2023) ----------------------------------- 1) Timeout issue with Sanitize Overwrite on SATA interface where we cant get percentage completion information. Assumption was 50 MB/s, now halved to double the wait time and hopefully reduce failures caused by timeouts. 2) Changed Fixed Font size templates to allow font shrinking to fit available horizontal spacing without disrupting the vertical spacing. A Vline argument is now available if in Fixed mode. Leaving it at 0 will using the current (confusing) sizing method. Changing to a given number of lines per vertical size will change the font size appropriately. Larger numbers = smaller font. Click in another control to make it take effect after changing the value. 3) Fixed Label Templates to use formatting codes for the right column. Fixed the IMAGE_HEADER tag to properly use the full width for a logo in a multicolumn label. 4) iastor based NVMe drives can now get power on hours and reallocated sectors/glist in Windows (as opposed to WinPE.) 5) stornvme based NVMe drives can now get power on hours and reallocated sectors/glist. They can not (yet) do self-diagnostics. 6) Specific workaround for Dell logs. 7) Log loading for reports had rejected non-charged reports and deallocated the structures. Unfortunately, with the reorganization System structures, this left bad pointers in place. Now the device structure is left allocated, Status is changed to Uncharged, and it kicks out early. 8) Added Reprompt Startup Fields to the Control menu, which clears out system userfields, resaved the makor xml blanked, prompts for the values again, then resaves the makor and sysinfo files with the new data. This can be used to update values that were entered erroneously. 9) Bad guess of 5400 rpm drives as 2.5 inch. Now, capacity of the drive factors into this, which means the code is now called after FillCapacity instead of FillInquiry. 10) Addition of System type fields (PXE) caused issues with device fields for Windows erasure station data collection. 11) ForceResults log charges for BIT type licenses were not working. The older CP_DecrementCharges was being used instead of the newer function that XELT charges were using. 12) Erasure Summary tables were still using old structures for calculating pass/fail rates and as a result were not printing a table. 13) DoEndOfErasureBatch now uploads system tables so that it can capture late testing AND a new Report Filename mapping. 14) Removed Profile/xerase.ini saves after loading a profile. Broke up xerase_local into a second xerase_adapters file. 15) One PXE startup, all system and drive userfield prompts are gathered at once. These values are then copied to subsequent drives on erasure. This reduces human touches on the startup process. Restart should allow you to override the drive userfields as before. 16) Upgrade PromptsToUserFields() to handle SystemUserfield prompting. 17) Beta bug on loading logs for reporting coming up as Modified fixed. 18) SpinupAndWait function has had the second wait loop extended from a maximum of 4 seconds to 8s. If a longer spinup period is needed due to delayed spinup settings/firmware then extra time can be specified in Advanced Settings. 19) Fixed a bug with NVMe SMART ID 511 for health and grading. 20) Fixed problems with XCLOUD license decrementing. 21) CPU/Memory testing stations now pay for each run. ParseTestingXML update addresses this. 22) NeedPrompts function in BSEED now also copies System Userfield values to the Device in case needed. 23) Added support for SYSTEM userfields. By Adding this tag, the data is referenced at the system level instead of the drive/device level. A mapping will query on startup for a SYSTEM userfield and on erasure for DRIVE userfields. 24) Added Support for AMD Opteron and Epyc CPU string parsing. 25) User Configurable CPU testing with duration and CPU stress. Also, memory testing minimum duration setting. 26) Component Type is now available for component tables to provide a text description of the component to make it easier to query and automate. 27) Database uploads for battery fields will now substitute _battery for any battery serial number that is blank so that an entry can be created. Usually this would be for type Missing Battery but might also be for batteries that never recorded a serial number in the first place (some chromebooks.) 28) XML reporting now adds METHOD_KEY, RULE_KEY, and NOTE_x tags for each drive to simplify lookups and provide more thorough data. As a result and global keys that used to be referenced are no longer needed and are being removed. 29) CSV and CSV Database reporting now has Method footnotes which get tacked on in the column after Erasure Results. In default templates, Results is the final column, so notes and methods will be after that. 30) Fixed Reporting method key where the text is not encoded and then expanded on reporting, as it was intended to be used as-is. example: Perform two PowerWash erasures instead of Perform two. 31) SSSTC no longer does the NSS_01ALL exception for nvme format NSID attempts. It should default to NSS_10ALL now. 32) Added more logging to database code to try to figure out a chromebook crash. 33) Changed WMIC timeout from 3s to 10s, as one HP model fails to gather product name on initial boot. 34) Reorganized Report System/Device structures to eliminate some shared globals, keep things tidier, and allow operations on both System and Device information without consideration for the template in use and forcing a reload. Reporting, labels and database uploading code need to be adjusted 35) Fixed responsiveness of physical interface in the beta and divorced the Enclosure Services heartbeat from redrawing. 36) SCSI health and grading now exits the informational excepts parameter parsing (Dell EBO) if the page_Code becomes 0. 37) Xerase can support new API scripting. Available are Startup (before loading profiles and diagnostics), Post-Diagnostic (after bus probe completes) and Pre-Erasure/Post-Erasure for drive API scripts. 38) Added catches in the TestForMaxXferSizes loop in case a drive goes offline while testing IO to prevent crashes. 39) Some drives are leaving random data on the drive after SecureErase/BlockErase, and when triggered to zero afterwards was attempting to use BlockErase to quickly remove the random pattern. With these drives not zeroing, that causes the drives to STILL have random data. Rather than setting up multiple testing tiers, Xerase will now always do a zeroing write pass if random data was discovered to make things predictable. 40) Component table uploads have been filtered to remove what are most likely onboard devices and devices that have specific tables and/or system table information already. This will eliminate a lot of clutter from a table that gets far too much junk. 41) Added Server type fallback chassis. 42) Added an optional secondary ID/serial number term to EPS_MYSQL_FindLatestEntry in order to be able to properly implement ASSET ID database policy. 43) Added DBleft and DBright markers around the EPS_MYSQL_FindLatestEntry search terms for MS SQL. This shouldnt cause problems, and might prevent issues if field names have spaces in them. 44) If a drive needs to be Opal Reverted AND also needs Write Protection removed, due to order of operations this was failing as the Write Protection/format was happening first (and failing.) Write Protection removal is now deferred until after the Revert happens in this scenario. 45) USB testing maximum increased to 16 devices from 8, and the loops now cap properly. If winpe is not seeing the USB stick with mounted partitions, then it wont be testable. linux style partitions, etc, will be a problem. 46) Improvement to the new Database code that should allow all CPU and Memory tables to be Updated for a given asset/parent. Previously it was insert-only and the process was skipped if the field was already present. 47) rcraid AMD drivers now have the Format Support flag turned to not supported as the format will always fail. The SATA drives attached to them are not SCSI disks and can not perform a format. 48) EPS_DB_WriteEntry now uses the per-table defined date, status, etc indexes instead of the globals. This is more flexible and can handle some situations that the other can not. 49) Database load function for mappings now displays the index field (*), the status field if any (s) and the date field if any (d). 50) Database code now has additional data fields for Processed DateTime, Erasure Start DateTime and Erasure End DateTime. This composes a data field with Date first followed by 24 hr military time which can be pushed to either a MySQL DATETIME field or TIMESTAMP field (converts to UTC.) 51) Health score for SSDs was showing a possible adjustment for SSD Life left, but wasnt subtracting the value from overall health. 52) Xerase Database interaction with LCserver has been updated. A single file with all queries for all tables is generated for LCserver in a new format. LCserver needs to be version 12.3.1 or higher to process this new format. If not at that version, it will use the older format. 53) Xerase Database is now utilizing the newer database code in play for the Report window upload. This is much more capable in functionality. Erasure Station systems will only upload Drives. Other systems will upload all defined tables on startup, and update drive data at start/end of processing. LCserver interaction will be defined seperately. This functionality will work only if LCserver version is 12.3.1 and higher to avoid causing incompatibility issues with staggered updating of xerase vs LCserver. 54) Xerase no longer warns of missing database files. It will simply disable the database. 55) Report Query window is now using QueryPopup w/ scaling instead of the Winmaker built-in. 56) Expired/downgraded Legacy Purchase licenses will now disable and switch to Charges if available. 57) NVMe drives are now mapping MediaErrors.Lower to glist. It is not clear if this is fully correct as it may also deal with data integrity issues like signaling problems. 58) Added code to prevent users from assigning a serial number to a slot if the slot was already PCI mapped, etc. On the physical design window this restriction is lifted. 59) If using the Apple SSD driver, the Connect element of the Device Type is now SATA rather than SAS. 60) The Partition Clearing code was working only for 512 byte blocks, ignoring 4k block drives. This has now been corrected. 520, 528 and other enterprise sizes still do not clear partitions as Windows can not interact with those sizes on the filesystem level. 61) The query for disabling a failed Secure Erase/Sanitize operation has been removed from BSEED as it appears to confuse people. They can manually change which methods get run with the Secure Filter window. 62) System Interface now displays the topbar (again?) 63) Method Selection/Restart window (aka Wrench button) now scaled, as well as the non-administrator portion of the Operator Login window and the Prompt popup. 64) Device List mode has been updated to offer a fully scalable interface to handle new high resolution displays. The stock scaling is based on the DPI of the display, and the user can adjust the size in increments of 25% using the Up/Down arrows left of the Operator button. 65) PostProcessReformat is intended for use when NOT imaging a drive. Triggering this can interrupt an imaging operation and should not be used in this case. The software now will only trigger this is ReimageEnabled flag is not set. 66) SSDs will no longer do Seek and Write/Read testing as the timing is so fast based on current methodology it is not useful. May return if we change from a time-per-io measurement to a bandwidth measurement/Number of IOs measurement. 67) SSD Life-Remaining Adjustment for EPS Health Scaling now draws on ID 511 instead of only 231 and 233. 511 tries to smartly determine which IDs are valid for a given vendor. 68) Added support for Intel 13th Gen CPU strings. Some processor-type fields now do not include i5/i7/etc. CPU model_short field now retains i5-xxxx designation. Removed # of cores from CPUstring designation as this is now just getting silly. 69) Changed LABEL_ASSETID and LABEL_SYSTEMNAME to use the System Structure instead of the info stored with the device. 70) The system testing failure messagebox has been replaced with the Re-run system testing list on error. This makes re-testing convenient. 71) Added a few more monitor size nicknames (QHD, Ultrawide QHD, 2K and QXGA) to the program and should automatically replace short/bad/serial numbers. 72) Added proper Mutex support for multi-monitor testing and now log/report CutLine condition failures and display it on-screen for easier processing. 73) Processor string now properly includes the @ symbol, which was being converted to an underscore via CopyLegitString. ALLOW_NORMAL tag now only disallows extended ASCII and codes less than 31 (returns, backspaces, etc) 74) Added Control->Run System Tests which zeros out the completed status of all tests and runs them again, both pre and post erasure tests. This may cause problems with process flow for ERPs, etc. 75) Software Inventory is no longer part of the XML file. If needed by anyone, it will be re-added as an optional choice and off by default. 76) For new installations, Long Serial Numbers are on by default now. 77) Added Control->Rerun System Tests which zeros out the completed status of all tests and runs them again, both pre and post erasure tests. This may cause problems with process flow for ERPs, etc. 78) Fixed a problem with PXE loading profiles? 79) Added Details DB mappings for CPU Test and USB test, as well as Dimensions and Weight for System/Storage devices is using the MarketPricing and the data is available. (work in progress). Removed ATA version and SCSI version mappings as obsolete and less useful than others. 80) Added es_device[esidx]->mapped flag to UpdateArrayWithEnclosureServices() to eliminate doing the mapping over and over again. 81) Removed UpdateTitleBar() and UpdateDeviceList() from the devicelist_AddRemove_thread function, which was triggering drawing resets on its own. 82) and are now included in the XML files independantly of the group. 83) Intel CPU string parsing has been overhauled to deal with model numbers in a more uniform fashion. This update allows processors (Xeon E-2224) to be parsed that slipped through previously. All test other test cases have yielded the same results. 84) Default Offline Timeout changed from 4 minutes (240 seconds) to 2 minutes (120 seconds) to reflect a need for itads get on with things if a drive isnt behaving. Currently no wat to change it, but may revisit that in the future. 85) Context menus for slots in physical interface are updated to change Start/Resume to reflect the current state of the erasure. If Pass/Failed, Start/Resume is changed to Restart from the Beginning and will automatically set the Restart Erasures flag as a time saver. This should also encourage people to get clean runs instead of using Resume from Fail options if they dont understand the Restart Erasures checkbox. 86) Reorganized RetryCommand to bring the Dead code inline with the messages, added more IsDeviceReady tests, and fixed a scenario where a bad state kickout should send the FALSE return code that might not have been happening before. Added more IsDeviceReady w/ goodstate tests to ATA_MTSDIO and MTSDIO. 87) Added an IP address wait loop to ConfigureSysErase in case the wifi adapter has not yet been given an IP address before moving on. 88) Removed Infostruct_sort_collapse() until I can put more time into it to figure out some odd quirks. 89) Updated CPU testing to better support more than 64 logical processing cores by determining the Processor Group that the logical core belongs to and spawning threads appropriately. In addition, support for Efficiency Cores is now available, with a lesser benchmarking requirement for pass status. 90) Removed SaveArrayWorkspace from AssignDeviceToSlot. 91) Removed verification of valid license server information from CP_DecrementUses as it shouldnt be needed by that point, and might be causing issues. 92) Overhaul of post-erasure Database upload from the report window. List selector for tables to access intead of a messagebox. Added support for tables beyond the System and Drive tables and streamlined the code to be easier to use. Component tables generally will not update if a Parent (systemserialnumber) is already present in the table, excepting Batterys. These functions will eventually migrate to the natural upload code as well. 93) Comapny Folder/Database is now saved into Cloud.ini instead of being dynamically looked up (unless empty) to save a little time and remove one extra link in the startup chain that could break. 94) New experimental SMART ID 511 has been added as a general SSD LIFE REMAINING entry that pulls values from various vendor-specific entries. SMART ID 202 has been updated to reflect SSD life. 95) At the end of LoadConfiguration, Grading file defaults are added if the entry is blank. 96) For Recycler mode, added a second fail level which will fail Not Ready status too. 97) For Recycler mode, TUR_FORMAT and TUR_SANITIZE are no longer considered warnings. These statuses will be automatically relaunched on startup to try to catch up to the drive. 98) Finally removed LoadProductINI from the end of ProbeBuses. Not sure why it was there, and can cause a provable problem depending on configuration. 99) For direct system table uploads where idx == -5, the device referenced is no longer ForceDevice, but the first present drive in the system. This could allow device information to be mapped into a system table... only the FIRST one. If none are found, it will use the ForceDevice as before. 100) Xtrack_GetAssetType copied/updated to Xtrack_GetAssetType_new which passes in pointers/indexes and picks appropriate data from different types. Updated: Added Switch/Monitor/NVMe types. BuildUpdateTableEntryQuery now supports the extra Xtrack type and Created fields 101) Database now uses SystemProcessor information that is uploaded to ERPs and used in reports, rather than the number and description. This will make it more standardized. 102) DeviceList now customized further for Monitor Mode 103) Added Cut-line failure for Monitor condition testing, and swapped Flex4 and grade_text variables for data so that R2 condition is always in grade_text for devices (non-disk) no matter what were processing. 104) Updated Database Testing fields to include the new PXE tests, removed Burn-in tests that were never functional, and converted the CPU and Memory mappings to use newer descriptions. 105) Fixed database code for upload from files (GetDataByType_Report) to include the same lookup CPU/Memory index, as well as fixed pricing information for CPU and memory not coming from the files. 106) Fixed database code to properly upload processor and memory itemized details when saving to a system table where the component number was not passed in. The FIRST CPU or MEMORY stick will be used. 107) Put in Fixit code at the end of WriteErasureStamp that can return a drive to Pass/Fail state color in case the drive took an error during the process that would otherwise confuse things. 108) Added Flexstrings to Label interface, currently used for Monitor data. 109) Removed explanatory tags for Labels from most data sets. For example, memory information for a system will no longer be prefaced with Memory: 110) Restored old functionality for looking at log files of removed drives based on the last-present serial number. 111) Added a failsafe check to make sure that a valid pointer was passed into GetHeaderPtr() which might otherwise crash. 112) WriteErasureStamp now saves initial state and restores that state if it had a problem doing the writes so that STATE_RUNNING_FAILED is not the final displayed status. Also, for drives that get removed during this period, present checks are added and any logging happens to the file regardless. 113) Added timestamp to Retry code to get a better sense of concurrent errors and durations of problems in logs. 114) The Clear Array Data (Global/Array/slot) now clears the previous serial number which had been in that slot since it is now displayed when the slot is empty. 115) To eliminate problems caused by user-error, the manual slot mapping menu is no longer available for arrays that are enclosure services mapped, which could prevent those slots from ever working properly again. 116) To make it easier to distinguish empty/removed slots from DEAD/DISCARDED/LOCKED and others that were a black color, the removed color remains black and should display a Dash (-) in yellow as the slot text as opposed to a WWN, while the others have been shifted slightly higher in the grey scale and should have white text. The smaller subtext line should display the last-present serial number for that slot if empty/removed. 117) Fixed Rules/Methods editor to properly save the verify_rules.ini file with the more limited possibilities. 118) Negative percent bars from uninitialized variables now show 0 in the device list. 119) IF Cryptoscramble caused random data to remain on the drive, a flag gets set. This flag was not being cleared if the optional Zeroing pass was triggered, causing different than expected behavior. 120) Added a new Licensing mode, HW + Cloud, which can use licenses on both. Primarily this allows subscription Octane licenses w/ chould charges. 121) LCserver connected systems are now allowed to test TestForInternetConnection(). 122) Moved RecyclerTests to after PSID handling so that Opal locking wont fail if PSID is there. This might cause other issues? 123) Removed display of the last-saved reason sub_text for non-present drives. 124) Brought the CreateErasureDescription2 somewhat more up to date and fixed some hierarchy problems that were showing grades instead of failure reasons as sub_text. 125) RedrawLoop will now call UpdateAllEnclosureServicesDevices() on the canvas redraw code to flag bad devices that were removed/never came into windows in the first place. 126) GetNewStats will now do the max xfer tests even if no write opcodes, so long as there is a read opcode. Initial wait-testing looks for non-data returns now. 127) Automatic write and read reallocation setting is no longer contingent on recycler mode as it only comes into play for Clear, which accepts that non-userspace blocks do not matter. 128) Changes to launching CPU testing threads to start in Suspended mode before changing affinities, and better debugging. If thread affinity can not be set, the thread self-terminates so that core will fail. 129) Verification passes will now display details when doing Full or NIST percentage methods for better feedback. 130) Official support for IEEE P2883-2022 Purge and Clear added as well as an unofficial IEEE P2883-2022 Purge Quick Vfy method which allows the user to pick a faster verification than a full media verify. Configurations tie in exactly with NIST 800-88 rev1 Purge/Clear and use the same fallback and configuration mechanics. 131) Generating ERP XML reports will now include storage devices in the main Devices area of the XML in addition to the list of disk drives specificially. This should allow post-creation of ERP XML reports to be able to be uploaded to Razor and such without breaking anyone relying on the current structure. 132) Adding Monitor processing to Xerase as a device tyope. Switching to Monitor mode beforehand is neccessary, and rescan to detect new monitors. Audit Mode of Audit and Test methods. 133) Added Hynix to the NVMe VID list. 134) grading/poh/glist recycling cluster moved lower in the logic chain so that hardware errors, etc, take priority. 135) Recycler Fail scenario now also considers STATE_DEAD a valid failure mode (as long as the serial number is good) 136) FillInquiry functions where the drives arent getting good data are now setting the SN to NONE all the time and flagging recycler_warning == 1. Also, dives with an invalid serial number of NONE will not attempt to start automatically. 137) If start-on-discovery is enabled, and drives go offline/return then a new erasure thread should not be started if there is a valid threadhandle for the device. 138) FillCapacity function for NVMe is now using an NSID lookup for block sizes/maxlba instead of assuming slot 0. This should allow multiple namespaces to be used. 139) If NVMe Format is being attempted, and 1 is returned from TryNSID, then set the NSID to device[idx]->NameSpace to accommodate multiple namespace devices that windows has mounted. Usually it will still be 1. 140) Report Options for Drive and System labels now let you specify the number of labels you want to print at a time. This option is currently only completely supported with a directly attached label printer, not via PXE/License server. LCserver will print the number of labels in the currently selected profile, whether thats the profile that the PXE client is using or not. 141) Added NVMe_SetEPS_NamespaceID to positively identify the correct namespace-drive created by Windows via comparing capacities/blocksize to the Namespace information. If not namespace 1, _nsX is added to the serial number. this also fixes a bug in which all namespace drives looked like namespace 1 in terms of capacity. 142) Added Apple VID to our NVMe manufacturer lookup table. 143) EPSIF imaging format has been proven to work at imaging non-Windows systems with exotic filesystems. 144) Added EPSIF file options to Post-Erasure->Re-Image. Filenames now have the extension on them because it matters. 145) Added 5s delay during Break_Megaraid after resetting the PERC/Megaraid controller before the wait loop just in case the controller returns but hasnt finished configuration yet. Removed the MessageBox warning as the check for cleared VDs appears unreliable and is warning of problems even when it worked properly. Debug log will still record it. 146) 14.4 GB (15435038720 bytes) allocated for testing 16.0GB DDR3 1333MHz (4 units) About 1.6 GB of memory used is normal. 147) DiskCopy_Write does retries for EPSID formats 148) Modified EPS_MYSQL_SystemUpload to pass 3 parameters to specify whether to deal with system, drive and components (other) tables. EPS_MYSQL_UpdateEntry calls that and will now update/upload drive information when in Update mode for the system, which had only previously happened when creating a new entry. 149) Fixed an Upload To Database overflow crash by increasing the text string size of localnote from 32 to 128. This accomodates longer serial numbers. 150) Put in a catch for bad table indexes for databases. This might happen if you have no DRIVE table defined, but are doing DRIVE uploads, for example. 151) Found a bug in atoxx that has issues with strings that exceed 17 characters of hex data, even if the value does not. Rewrite to start at the end, and stop at the beginning. 152) ConfigureBios needed to be added back to DoEndofErasureBatch(); 153) Changed LSI megaraid code so that if LSI tells us a physical disk is NVMe, but the NVMe Identify function fails, we unset the NVMe flag and continue as SCSI. 154) Removed Special_sn setting for NAA_ which could override better WMIC serials. 155) Updated Computrace detection to also look for particular exes in memory. 156) Makor is sometimes giving customers URL information without being led with http://. This is fine for typing into a browser as the browser will essentially insert it,l however MakorAPIWrapper expects a proper URL. Our MakorConfigureWrapper() now will prepend the http:// if the URL entered/saved does not have it to prevent this scenario. This is the ONLY time that MakorURL variable gets used. 157) Added support for new licensing model for XERASwin subscriptions. 158) Removed the stipulation that LCserver connected systems shouldnt test internet connectivity in TestForInternetConnection due to some customer configurations. Version 14.17.5 (released 07/31/2022) ----------------------------------- 1) Added External Tests and Notes to Startup tests which allow other information to be added to the System Reports. Tests should come first, followed by the Notes. Currently, 3 Tests/Notes are available. Version 14.17.4 (released 07/29/2022) ----------------------------------- 1) On PXE System Condition query w/ R2 grading, 14.17.3 was failing the system with a cut off line of N/A which should not have happened. Version 14.17.3 (released 07/23/2022) ----------------------------------- 1) Fixed SetupCurDynamicReport not respecting the systemidtype variable which was causing sysinfo file updates to potentially use the wrong file name. 2) Restored Optical system tag to the System summary segment of XML files which had vanished. This is independent of the detailed optical segment in Devices. 3) System Condition now allows the user to specify a Cut-line. Any grade worse than that cut line will skip further testing, fail the drives in the unit, and upload to ERP/Database. 4) System Tests can now be run individually either at startup (previous behavior) or Post-Erasure to better integrate into workflow. 5) Added a Price Check test that uses the Market-Scraped price or a statically defined value, then adjusts that price somewhat based on R2 grading schemes to get a final Value. The operator has the option to override that value. A minimum value is configured so that values less than a certain amount will fail the test. 6) Fixed an XML formatting problem with Bluetooth devices. Version 14.17.2 (released 07/21/2022) ----------------------------------- 1) Added a Battery Drain test for Laptops, tablet, convertibles, and detachables. This information is output to XML and report files. 2) SCSI devices which report an estimated 0 second Self-Diagnostic time or have a SCSI version less than 3 are assumed to be an emulated device that probably is not supporting this correctly and will be skipped. Also, iaStor devices in general are marked as not supporting by virtue of the adapter. Version 14.17.1 (released 07/21/2022) ----------------------------------- 1) Fixed a problem with SFF chassis types being interpretted as Laptop devices. Version 14.17.0 (released 07/18/2022) ----------------------------------- 1) Updated MDM and Computrace Testing PDF report fields to be easier to parse. 2) Pulled USB/Keyboard/Display testing into the same table and sizing at the rest of the tests for consistency. 3) Report_Sample_SysVisual template is now being distributed which includes an image of the Chassis Type in the system Report. The tag will use a matching image in the report, or a Model or Manufacturer jpeg if present. 4) Chassis Types are now dramatically expanded to report more granular/accurate description of the hardware. 5) Updated Processor parsing routines for AMD Ryzen 7 PRO processors. 6) Timing issue between copying the makor file and the upload due to how the code is structured. Restructuring this is tricky and may lead to some unforseen issues. Primary system ERP upload has been moved post-override copy of the makor file now in ucViewSystemReport. 7) iastorVD drives are no longer allowed to run Self-Diagnostic as they will lock up. Version 14.16.3 (released 07/13/2022) ----------------------------------- 1) Fixed a database loading bug introduced with an LCserver change. 2) Loading system conditions out of a profile was only valid on the first load, and assumed you had a constant parameters. Now that multiple R2 chassis samples are available tailored to different machine types, that assumption is no longer valid. This has been fixed so that every profile load can change the file name to use. 3) Startup writability testing of backup log/report folders to make sure all mountings worked before beginning the process, allowing the opportunity to try to fix things before kicking off the erasure. Pressing Cancel will continue without usable backup folders. 4) CopyLogsAndReportsToOverride() updated to do all backup log/report folders, do writability testing beforehand, and warn if writability issues and/or copying problems. 5) Removed OverrideCopyPrompt check before call to CopyLogsAndReportsToOverride() so that a final copy will always happen whether the variable is set or not. Version 14.16.2 (released 07/05/2022) ----------------------------------- 1) Fixed a repainting issue on the report window. 2) On a non-pxe/usb system, when a new Notice is found, it will ask if you want to shut down and update the software. 3) If a system has drives with a very long serial number, model, etc, that can cause problems with PDF report formatting. The software will now use smaller fonts when strings get too long and optionally insert a space to allow word-wrapping to occur if the string is longer than 32 characters. 4) Battery tests are now charged for as of version 14.16.0 and will optionally include a drain test in an upcoming version. The software was automatically charging even if not a laptop and had no way to disable it. There is now an On/Off control in Customize->Interface and the whole thing is skipped prior to charging if Chassis Type is not Laptop or Tablet. Version 14.16.1 (released 07/01/2022) ----------------------------------- 1) Chassis Type now has the Raw chassis model value in Parenthesis after our collective string descriptor. This should allow more fine-grained differentiation of product on certain Dell models, and make it easier to gather data for expanding our supported Chassis Type list. 2) Confirm System Info window was not allowing you to delete a string, only replace it (ie. length greater than 0.) This is now remedied. 3) Drive Logs will now set a Reason that is reflected in the reports if a drive is processed that is still Opal Locked/Owned. There are ways to temporarily unlock a drive without removing ownership, and the drive will be relocked on a power cycle. This status will now be obvious and eliminate the possibility of selling worthless drives to a customer. 4) ConnectToLicenseServer now returns LC_ERR_NO_SERVER when passing in a bad hostname to connect to instead of 0. 5) Removed Backup/Upload for startup XML creation which was intended to keep track of progress during testing and protect against xerase crashes, etc. This may have been uploading non Makor2 xml files for the Makor ERP and causing problems. 6) PDF system reports have been updated with a more concise layout for testing and system conditions. This makes the data easier to parse and potentially reduces page count as well as laying the groundwork for Chromebook reporting. 7) InstalledOS variables in the report_system structure and the bios_info structure have been consolidated to the one in bios_info to reduce programming confusion going forward. Version 14.16.0 (released 06/23/2022) ----------------------------------- 1) Failures on the display color testing were leaving values as N/A instead of setting to FAIL as it should have. 2) Might be duplicate testing entries... one set in general InsertSystemInfo, and the other for afterwards. Consolidated into a single function that will always be called after InsertSystemInfo returns, with the exception of HTML/PDF code which has special formatting requirements. 3) Added WriteSame and Write Preferred options to the Prevalidate testing. These are hardcoded against a minimum value of 12 MB/s respectively so that the user doesnt need to know how to adjust the ratio themselves. Legacy mode is still the most flexible. 4) Added On Bit Failure option to the Startup Testing which modifies the behavior of our tests. Continue will ignore errors and move on to uploading to database/erp, doing erasures, imaging, etc. Warn then Continue will bring up a warning messagebox first. New options will be added to halt operations as they are brought online. 5) Internal CPU and Memory test results are copied and logged to the Burn-in-Test structures for now for consistancy with ERP mappings. Customers should migrate to the new values within the next couple of months before theyre removed entirely. 6) Adjusted cisco cesium XML output for machine and username. 7) Fixed Database XML report output for certain reports which included multiple systems, and the final system had no selected drives. 8) Disable the Octane write optimization if the write opcodes dont work (but the writesame opcodes do) 9) Added the FormFactor flag for memory stick" for devices mounted via the sd#disk interface. 10) Removed Filesize check for Get_WMIC and went back to static buffers. On some systems the size is being reported incorrectly causing model numbers to get missed. 11) Drives that can get no intelligible SN or WWN values, but DID get an NAA (wwn number) from Identify Device Page will have the NAA used as a serial number if no real serial number can be found. 12) Added CPU, Memory, USB, and Wifi testing to HTML/PDF output. 13) Completely separated HTML systemInfo output from XML, CSV, etc, to make it easier to maintain as it was starting to get ungainly. 14) Stored results of Memory test, CPU test, USB test, and Wifi tests in the XML file for reload and use. Version 14.15.3 (released 06/05/2022) ----------------------------------- 1) Revamped the Keyboard and Display tests to store the results in a common structure so that it can be used in multiple places (reports, etc) 2) CheckSystemInfoRef no longer reloads manufacturer/product name out of an XML file. This may have been zeroing out the product name on certain models. 3) AssetID saved to a text file in overridefolder/Temp and reloaded on startup for PXE. This will allow reloading of makor xml files if using assetID information. 4) Added WiFi and Bluetooth System Field tags to report table options. 5) Added Sysinfo file loading in the case where the xml filename saved into the drive log was wrong, but the proper filename was the system name (instead of the serial number.) 6) BIT_License_used set when creating a missing drive log so that database/erp uploads will be free. This isnt an issue when previously using a BIT chanrge. Version 14.15.2 (released 05/24/2022) ----------------------------------- 1) Added 3 more Intel WiFi PCIids 2) Added parsing of Optical tag in new systeminfo XML format 3) Fixed a problem with serial number xml references in log files Version 14.15.1 (released 05/20/2022) ----------------------------------- 1) Added the ability to notify of MDM and Computrace functionality on a not-yet-erased PXE system. This is available only when using any Burn-in-test functionality. If not found, or it is unknown, no warning will be triggered. 2) Xerase PXE client now has the ability to ask LCserver to copy backup logs and reports if set and LCserver is verstion 11.9.3 or higher. Backupfolder in the profile should be relative to LCserver. NOTE THAT LCSERVER RUNS AS ADMINISTRATOR. THE ADMINISTRATOR ACCOUNT NEEDS TO BE ABLE TO ACCESS THE PATH. 3) System Condition grades are no longer hardcoded to Grade A, Grade B, etc. Those defaults will be used if SystemCondition/SysCndGrades.ini is not present. Two versions of this file will be distributed as SysCndGrades_R2.ini and SysCndGrades_EPS.ini with appropriate names per standards. Copy one or the other to SysCndGrades.ini to change the default behavior. 4) System Serial number models including XXXX are no longer considered illegal if the first character is anything but an X. 5) Fixed Add-element button for labelgen menu on column 2. Version 14.15.0 (released 05/11/2022) ----------------------------------- 1) Added support for Arista DCS-7048T-A-R to switch erasure. 2) SystemMemory_Details changed to list speed instead of ECC, etc. 3) SYSTEM_MEMORY tag in reports was not working. Changed report generation to use SystemMemory_Details when creating reports as intended. Parsing old system memory from xml logs to create this string if not already present. This parsing/reloading of structures will also allow us better ERP interaction in the future for after-the-fact uploads, etc. 4) Found a bug in which manipulating a Report or Label Template would replace a windows handle to the ReportClient window, making further uses not work properly. 5) Post-rescan serial number detection/fix for enclosure services devices added. Some manufacturers use the same SN for all enclosures, which can cause problems when multiples exist in the same system. This function removes redundant serial numbers to force WWN based mapping instead. 6) Added support for Xeon Broze/Silver/Gold/Platinum designations. Old Core Xeon ERP tags shortened to simply Xeon to be more consistent with the new naming. 7) Xerase software updated to be able to process the final version of the PXE BIOS control when integrated with PXE_override version 2.6.0 and LCserver 11.9.1. Version 14.14.2 (released 05/03/2022) ----------------------------------- 1) Some ST2000NPCLAR2000 drives are being detected as having a serial number of ST2000NP0011____________________________Z1P4DHWD, causing issues for reporting and drive tracking. FillInquiry updated to hopefully deal with the problem at its source, and the same fix put in place for LoadDriveLog to process log files already created and strip out the very long prefix. Version 14.14.1 (released 05/02/2022) ----------------------------------- 1) Forced the code to generate makorapi files without regards for a notestring passed in. This corrects a problem that was sometimes occurring in 14.14.0 Version 14.14.0 (released 04/28/2022) ----------------------------------- 1) Updated Makor2 system xml file with new data fields collected from the system including wifi, memory details (1 entry summary), webcams, fingerprint scanners, etc. Not exhaustive. 2) Label printing now explicitly sets the resolution (medium) and scaling factors (100) to reduce potential issues with default settings. 3) Add System BIOS mod control to Post-Erasure Events. 0 = off, 1 = Configure + Leave Asset Identifier tag and ownership tag alone, 2 = Configure + set asset tag identifier to the system serial number, erase ownership, This currently applies only to HP, not Dell (On/off only) 4) For HP BIOS modification, new system models will pop up the current settings in notepad. Make changes, save the file, then press OK to commit those changes to BIOS. When those models are detected in the future these settings will apply automatically. Cancel MAY modify the file to attempt to downgrade network boot order. Asset Number and ownership info can be erased as options 1 and 2. 5) For Dell BIOS setting modification, copy C:/XERAS_override/WIM/Programs/DELL/cctk_configure_x64_sample.bat as cctk_configure_x64.bat and edit it as needed. The sample resets the boot order. For model specific customization the file would be named cctk_configure_{modelname}.bat, spaces included Version 14.13.12 (released 04/21/2022) ----------------------------------- 1) Fixed a problem with Auto-Generating Drive OnePage reports as it was using FindPriorLog, which changed behavior. FindPriorLog was never needed as we already had the path. 2) Window size for PE now leaves a small gap at the bottom of the screen so that you can accessed minimized applications more easily. 3) Syserase internet download of WIM files is no longer hardcoded and will dynamically determine the file size at imaging time so that the retry loop can confirm proper download success. 4) UpdateElapsedTime and UpdateImagingProgress now passing NULL messages rather than empty strings to eliminate removal of the text for redraw/timer purposes. Version 14.13.11 (released 04/15/2022) ----------------------------------- 1) Added more Intel Video devices to lookup table. 2) Change the label output for Capacity_block to use (512 format) rather than - 512 to make it more clear. 3) SystemProcessor changed for XML output to using elements of our standardized format we export to ERPs. This shortens the string and makes it more consistent from model to model. 4) Add SystemMemory_Details to XML output, so that total memory size can be combined with kind and quantity. (ie. 16.0GB DDR3 Multi-bit ECC (4 units)) Labels and reports will use this value automatically going forward when referencing System Memory. ERP and Database will remain unchanged and will need to specifically select for this value when available. 5) Add WiFi and Bluetooth device detection and system xml / ERP output. Version 14.13.10 (released 04/14/2022) ----------------------------------- 1) Added Optical device output to the system_xml file, which allows the data to be used on labels and reports. 2) Restored automatic label orientation code so that it is possible to print a label in a different orientation than the printer default. This works properly now for both Lanscape and Portrait. Version 14.13.9 (released 04/12/2022) ----------------------------------- 1) Removed LC_DISABLE_PXE message and have temporarily disabled Dell bios configuration. Version 14.13.8 (released 04/11/2022) ----------------------------------- 1) xerase will now call WIM/Programs/cctk_configure.bat if it exists and the system being imaged is a Dell. This batch file can configure various BIOS parameters. cctk_configure_sample.bat should be renamed to cctk_configure.bat and edited to reflect the hardware being used. Version 14.13.7 (released 04/11/2022) ----------------------------------- 1) Test of a 10 minute PXE blockout window post-imaging instead of 5 minutes. 2) Xerase now checks system clocks vs build dates to make sure that the clocks arent obviously set to the wrong time (USB booting servers that had batteries die, etc) so that log files are reporting correct erasure dates. Version 14.13.6 (released 04/08/2022) ----------------------------------- 1) LC_DISABLE_PXE now sending an IP address instead of system name to LCserver. This will help with DHCP lookup in the future. Version 14.13.5 (released 11/30/-0001) ----------------------------------- 1) Help -> Documentation -> User Guide does not work. All the other documents open. 2) PXE Imaging scripting has now removed the script redirection to L: as the windows partition is now mounted as C: always. Similarly, RUN_ONCE script commands access the registry on the C: instead of L: mount. 3) Added functionality to allow XERASE to disable PXE booting temporarily post-imaging for a given mac address to help address systems designed to network boot as the boot priority. The default is 5 minutes but may be more configurable in the future. 4) Badly placed else was causing most comparisons in OverridePCIid to be skipped over, resulting in no device identification. This has been remedied, restoring Video chip identification amongst other things. Version 14.13.4 (released 04/05/2022) ----------------------------------- 1) Added a SYSTEM_OPTICAL tag to labels and reports. 2) Label Data fields will have xxx: stripped out when in Fixed fontsize mode, with the expectation that the opposite column is being used to define tit already and as such is redundant. Version 14.13.3 (released 04/04/2022) ----------------------------------- 1) Fixed a problem with consolidated copy protection code which was failing on older WG-type dongles. 2) Label printer orientation is no longer changed from defaults as there was a bug preventing portrait mode. Orientation switch may happen in the future when properly resolved. Version 14.13.2 (released 04/03/2022) ----------------------------------- 1) Added INSTALLED_OS and HDD_BLANK entries for report tables in the system_device and device sections specifically. The latter may be useful for formatting CSV output to make it more convenient to copy/paste into a specific framework. Version 14.13.1 (released 04/04/2022) ----------------------------------- 1) Loaded system_xml file entries for InstalledOS and Processor into the correct fields for label printing. 2) Fixed a label printing problem for column 2 and images. Version 14.13.0 (released 04/01/2022) ----------------------------------- 1) Fixed some lockups when using the popup query to add/update text fields. 2) Overhaul of the Label Template window to add many more possible elements and a new Fixed font mode that eliminates the item-by-item font scaling that is present on Auto. IMAGE_HEADER is valid in Column1 only, but will span all columns so that subsequent items are aligned. 3) Instructions for rebooting and clearing the raid controller now specifically note that OK will Reboot the unit, and Cancel will continue on. Version 14.12.6 (released 03/30/2022) ----------------------------------- 1) Changed Chassis type Apple X to Macbook, iMac, etc for easier use in Chassis Profiles and descriptive. 2) Added NVMe Octane chassis type for Prevalidate WriteSame exceptions. 3) Added a timer to remind users of pending license expirations. First warning at 60 days, then 45, 30, 21, then 14. With less than 14 days remaining reminders will be daily. For Purchases, nag screen will continue for 30 days past expiration, then give them the chance to indicate they never intend to renew so that the reminder window disappears. Leases only after this happens. Version 14.12.5 (released 03/25/2022) ----------------------------------- 1) Some systems will automatically write some vendor data to block 0 on power cycle. This makes stopping/rebooting/resuming problematic as a verify may fail at the end. A new function ZeroBlockZero will be called on Resumed write passes to rewrite block 0 just in case this has occurred. A rule that skips block 0 will prevent this from happening. Version 14.12.4 (released 03/23/2022) ----------------------------------- 1) Restored a writebuf pointer fix in Issue_IO that was removed in 14.12.0. It should have been doing nothing useful for years, but may have had a beneficial effect on certain megaraid buffers and has been restored to ascertain if certain problems on Megaraid devices vanish. 2) Removed extra Config directory level from FTP uploads in ERP_UploadInterfaceConfigurationXML(). Version 14.12.3 (released 03/24/2022) ----------------------------------- 1) Odd validation results on Hybrid drives w/ a Cisco branded Megaraid controller. Changed Physical-SCSI access to always pass in a buffer to use, and 1 block IO is no longer assumed to use the low level access routines, but only when necessary past the LUN LBA boundary. 2) Xerase with .pxe file in config folder is still updating from override and using that xerase.ini. The .pxe file is not being loaded. This should be corrected now in CheckForConfigurationPrompt(); 3) Updated hash logging function to try to analyze the error data and indicate what remains on the disk and a more concise way of saying that the Read command didnt change the buffer. Version 14.12.2 (released 03/20/2022) ----------------------------------- 1) Method to trigger Third Party Verify by itself, not as a follow-up to an EPS erasure. This allows customers to use CPRtools (or others) on a different system, run by different techs, at a different time if desired. 2) Label Template creator window was not launching from the menu, bringing up the Report Template instead. This have been fixed. 3) Tweaks to TestForMaxXfer to make operation of megaraid controllers better. Applies generally. 4) Replaced certain calls to SaveProductINI with Save_XERAS_LOCAL, as this avoids accessing xerase.ini when not needed and updates xerase_local.ini only. This might help eliminate the occasional lost-setting problem. 5) Modified MTSDIO to use the buffer if available and set the pointer to pass to Megaraid if it isnt. Megaraid function is smart enough to do this on its own, but as a precaution. Version 14.12.1 (released 03/14/2022) ----------------------------------- 1) The registry Cleanup messagebox is now a TOPMOST window so that it cant be hidden behind other windows and hard to find in order to continue. 2) Fixed a bug with the Folder path editor which was causing the window to close when clicking an element. 3) Multiple system structures can now be allocated when doing Device List and the report output adjusts to the appropriate one on a device-by-device basis. Previously the software treated all drives as being attached to a single system in this report mode. Version 14.12.0 (released 03/09/2022) ----------------------------------- 1) Change to Format code when drive format is corrupt. Previously it would reformat to your preferred block size on Format Corrupt or removal of protections. Now it will reformat as the last configured size. The only size change that can happen is if you enable Reformat Block Size to your preferred sizing. 2) Ensured that drives that are Opal Locked will not attempt a Prevalidate nor seeding at all. This avoids a potential problem when a drive is both Opal Locked AND has Write Protection enabled. The Write Protection was blocking the drive from moving forward with the Revert. 3) Fixed a bug where a pre-erasure format was substituting for the real format, but was still doing seeding which caused a failure. SSDs will not substitute, and will seed then format again. HDDs will not do that by default and skip seeding. A flag will be added to NIST Settings to force the HDDs to behave like the SSD for the security conscious. 4) Xerases report generator could crash if run in low memory situations (less than 2 GB). The software will now warn the low memory scenario and direct the user to use rptgen on another system to create the report instead. 5) Save_XERAS_LOCAL() not being called in some circumstances. Settings adjusted to accommodate that. 6) SaveArrayWorkspace call in change_magnification is now postponed until after the bus scan starts. This eliminates the potential problem of saving the file at load time, which may be responsible for occasional lost configurations. Similarly, SaveGroupWorkspace call on exit is now removed as it should be redundant and unneeded. 7) Enhanced License debugging info to include Charges even if a Lease/Purchase is present and to note the expiration date to make things easier for support and the build crew. 8) Some DellEMC OEM drives are retaining/writing data on LBA 0x2 after a SCSI Format, which causes Seed Validation and Spot Verify to fail as LBA 0x2 is the reference block. This data is apparently by design, and may need to remain there to be usable by the system (aka Fingerprint.) Xerase changed to use LBA 0x320 as its reference block instead, which will allow seed validation to function correctly. A full validation will still fail unless a Rule is in place to skip over LBA 0x2, and possibly others. 9) Cleaned up and removed the old_wrtbuffer shuffling that had been present in Issue_IO, though it was doing nothing anymore. 10) OEM_GetValue adjusted to use strchr and a quote instead of FirstChar with a slash-quote to accommodate gcc vs Visual Studio differences. Also adjust the end-header functionality to use strlen instead of searching for Zeros. This should have no effect on Windows installations. 11) AsyncATA and AsyncSCSI function definitions were changed to be wine compatible. RescanAllBusses and XXX similarly changed. Need to test Windows Secure Erase. 12) PXE profile chooser was not saving/using settings. This was due to a change to stabilize and prevent lost xerase.ini files by disallowing saves until after the adapter settings were configured. This change is good for desktop erasure, but bad for PXE. Adjusting the prevention to not apply to PXE. 13) PXE booting network problem not copying the full WIM for imaging we believe. Added source and dest file size logging to determine SIZE DISCREPANCY FOR COPIED FILE. 14) Replaced certain calls to SaveProductINI with Save_XERAS_LOCAL, as this avoids accessing xerase.ini when not needed and updates xerase_local.ini only. This might help eliminate the occasional lost-setting problem. 15) Remove Linux fd closes at end of CreateDeviceEntry. 16) Adjustments to code to accommodate Linux build. Should not impact Windows. 17) Modifying window sizes, etc, will now specifically save xerase_local.ini. Version 14.11.1 (released 02/14/2022) ----------------------------------- 1) Added SSDSC2BA400G3 and SSDSC2BB480G4 to SSDSC2BB480G7 to a list of drives not allowed to do SCSI writesame for compatibility purposes. 2) Removed the ATA Write and Read opcodes from the bus probe to speed things up and be more reliable. The code hasnt been using those in quite some time. 3) Added the ability for the Recover Log Files menu item to search the Override folder path instead. Answer YES when prompted. If found, the file is copied to the local folder and the UserLog is redirected to that one and parsed. 4) Modified NVME_SelfTest to register a failure to start as a -1 (not run) condition so that it doesnt impact grading but is differentiated from a Success. Complete/Abort/Failed are now specifically logged at the lower levels for debugging purposes but may go away in time. Version 14.11.0 (released 02/10/2022) ----------------------------------- 1) Recycler Warning/Failure function has been changed so that grading and failures happen FIRST, before the other warnings. This way, a TUR warning wont prevent grading from happening which might cause a failure. 2) For PXE booted systems with bogus serial numbers, use MAC address as a basis for a consistent system ID so that xerase_local.ini from the override folder can be reused. Version 14.10.7 (released 02/08/2022) ----------------------------------- 1) Replaced FindNestedFiles call in Rediscover Log Files menu option with call to a more reliable Recursive_File_Operation. Also, the top level folder to search is now user-selectable. The default path is one level up from the current log folder. 2) Changed Crucial NVMe erasure to try Namespace 0 first. 3) Added VIDxxx manufacturer for unknown NVMe manufacturers so that we can look it up and add to the program rather than leaving the field blank. 4) Fixed NVMe Sanitize-Blockerase loop on Crucial drives, which took longer and so had to drop into a wait loop. Version 14.10.6 (released 02/02/2022) ----------------------------------- 1) Reporting window could crash if the system being erase contained more than 48 non-disk devices. A cap has been placed on the XML loading function to prevent the data overflow crash. 2) Fixed a problem with generating the Makor file if restarting an erasure (already paid for previously.) This should never come up normally, but might be a problem if someone deleted the Makor file manually and restarts or resumes an erasure. Version 14.10.5 (released 01/28/2022) ----------------------------------- 1) Fixed a context menu crash in physical interface introduced in 14.10.3 when right clicking over an empty slot. 2) Removed redundant Generate Label menu from physical interface context menu. 3) Modified Premium->Change Profile to make it easier to use. It can now be used without a XERASwin/PXE/profiles.ini file. If missing, every .pxe file in the folder will be presented as an option. Create these profiles by pressing the +doc button on the bottom left of the Customize->Interface windows. Changing profiles will display the profile name in the title bar, and this will be the base of the new xerase.ini file until you switch to a different profile. 4) Added GetAdapterCount() on hotplugged NVMe devices and GetAdapterPCIBusNumber() to GetAdapterInformation() to support EPS NVMe erasure unit physical interface. Version 14.10.4 (released 01/26/2022) ----------------------------------- 1) For custom wipe methods that perform a Purge method then follow up with a defined Write pass, the software will no longer use the inverse of the data from the Purge method which was a holdover from old standards. 2) Reinstalled PrevStringStorage() call in BatchSetupLog which was inadvertantly removed. This keeps track of your latest log folders. Version 14.10.3 (released 01/25/2022) ----------------------------------- 1) Label printing from interface menus logic has been changed. Rather than searching for a log file that matches a given drive, it will only enable the menu item if the drive clicked on has a log attached to it (searching/matching happened during the bus probe, etc.) If no log file is attached, then the menu item will be visible but disabled. Version 14.10.2 (released 01/25/2022) ----------------------------------- 1) Fixed a problem with charging licenses for Forced logs, resulting in no logs being created when desired. Similarly, View Media log is fixed. 2) Misc updates to accommodate Wine-Linux build. 3) ParseExistingErasureLog was showing (tamper) after some switch erasures reload, but not on rescan. This implies that the switch erasure is somehow setting the flag incorrectly at runtime. ParseExistingErasureLog now specifically sets the tamper flag to 0 before testing to see if it was tampered to correct this behavior. 4) Updated ReplaceChar call in mysql.c to pass in hex values for the illegal characters instead of escapes as gcc doesnt understand it. lines 4729 and 3980. Version 14.10.1 (released 01/19/2022) ----------------------------------- 1) Fixed some logging issues where the SMART menu option was dumping some of the information into the drive log instead of the temporary file. 2) Added blocksize information to namespaces and are only enumerating namespaces with a valid NSID. FillCapacity will override SCSI capacity if NVMe namespace blocksize is present (as this might change during NVMe Format and the SCSI value is not being updated.) 3) Removed debug logging for SES_SetLEDState. 4) After an NVMe Format, the block size might change but the scsi emulation is not updating it, causing a potential IO problem if downgrading from 4k to 512 bytes, for example. NVME_Format now always uses the same format index (same max lba/block size) when formatting to avoid this problem, rather than always using index 0. 5) Fixed a problem with the Bandwidth-test (non-legacy) of Pre-validate Opcodes which was previously asserting bandwidth of 0 due to the bandwidth units changing from bytes/sec to MB/s. Version 14.10.0 (released 01/13/2022) ----------------------------------- 1) Added detection of Computrace lojack/rootkit to systems booted with an OS installed on them. the key has been added to various XML output and will show Detected if found, No, if not, and unknown if no Windows folder was found/able to look. 2) When a log is found in the override, previously the log would get copied into the ramdisk as the current PROMPT values for folder structure. This is not necessarily correct in certain circumstances. The Software now retains the same pathing found in the override AND now copies up the sysinfo xml file so that system conditions, etc, are retained through reboots. 3) Log output directories (10) are now saved in xerase_local.ini and used specifically to look for logs to load on device detection. This replaces a complex path reconstruction process which was used if the log wasnt in the obvious place. This should be both more reliable and faster. THE TRANSISTION MAY CAUSE SOME DRIVE LOGS TO NOT BE LOADED AUTOMATICALLY IF YOU ARE USING PROMPTS AND HAVE MULTIPLE LOG FOLDERS FOR THE CURRENTLY LOADED DRIVES. Use the File->Rediscover Log Files function to fix this issue. 4) Prompts now increased to 6 officially. Previously stored values (3 versions) of each prompt are also saved for potential uses later. 5) Added Broadcom FaceTime HD Camera and Wireless Netword card entries to the PCI_ID list for Macbook 2014. Also added Intel Crystal Well PCIid. 6) Cleaned up bus scan debug code to make it tidier and ensured power on hours is printing similarly to the side bar. 7) Physical Interface side panel was not always showing the Power on Hours correctly after changing the variable from an int64 to an int. 8) Updated database upload messagebox to be more clear, spelling out YES for System + drives, and NO for drives only. Version 14.9.11 (released 12/21/2021) ----------------------------------- 1) Image ripping now has the proper coloration on query popup window and new message processing code. Version 14.9.10 (released 12/20/2021) ----------------------------------- 1) Updated Enclosure Services mapping window to provide ES numbers to mirror the Locate context menu. Start and End slot combos are now underneath. 2) Fixed a bug whereby drive insertions and removals would turn off failed SES status lights. 3) Modified the PreValidate text to show total MB tested in fractional megabytes so that very small areas can be shown rather than being truncated to 0. 4) Offline/online specific rare timing scenarios can make it possible for a STATE_FAILED to turn back into STATE_RUNNING after the software is backing out of the erasure loop. Adding prevstate to the device structure so that a return to the online state will always restore the saved value to try to circumvent this scenario. 5) If Megaraid is not set initially then the storelib library is not loaded. When switching to a profile that needs it, the program will now load it after the fact. Version 14.9.9 (released 12/10/2021) ----------------------------------- 1) Added a Locate ES Chip function when in the Design Physical Interface mode. This Will flash all of the slots for one ES chip. Select it again to disable the flashing. This should make it easier to do ES mapping without needing to add/remove drives. The Located ES chip will be reflected in the ESMap tool. 2) Fixed the new ATTO GT SES fault lights for Octane units. Version 14.9.8 (released 12/09/2021) ----------------------------------- 1) Fixed a bug with reporting causing some drive notes to not be added to the footnotes in certain circumstances. 2) Added a StringTweak for Simple Model names. With this in place, models that include a - or _ will have the substring after that stripped off. ie. WD20EFZX not WD20EFZX-68AWUN0 3) Added CPRValidate 1.1 to the package for additional error logging. 4) Modified the Overwrite if Random Data after Crypto code to allow for testing after any drive self-erase code. This was done as some drives were accepting a BlockErase command but resulting in random data on the media indicating a Crypto operation. Could still be a problem if choosing to prioritize Crypto but BlockErase behaves this way as the remedy will not change the data and the software has no way to know that ahead of time. 5) Fixed a bug that made it impossible to perform a straight NVMe Format if NVMe Crypto was supported by the drive. Version 14.9.7 (released 12/06/2021) ----------------------------------- 1) Rewrote the licensing output for Debug_XERAS.txt to make it easier for Support and Sales to determine license status at a glance. 2) Removed all references to CHARGE_XELT and use CHARGETYPE_XELT and similar. Functionality verified. 3) Added an Audit Mode wipe to the distribution. When in Audit Mode, all destructive operations will be skipped, no drive health will happen, and no erasure will occur. Logs, auto-generating of reports, database uploads, etc, will occur as normal. The logs will always PASS. This will cost an erasure license or a BIT license depending on availability. Version 14.9.6 (released 12/02/2021) ----------------------------------- 1) Fixed a problem with starting a new monthly tally sheet for 3rd party validation, which caused 3rd party to not trigger at all. 2) ReadErasureStamp function is no longer called if TUR notready flag is indicated previously. Usually this is a non-issue as it will just take an error and move on, but certain NVMe drives may never return and halt the bus probe. Version 14.9.5 (released 11/30/2021) ----------------------------------- 1) Replaced much code in log-loading for reports/labels with a more consistent function. This should make the code more compact and reliable. This function was already in use for reloading drive logs for erasure status, etc. 2) Updated log file output for Erasure Plan to show Device never detected as the explanation rather than a mismatched plan. 3) Updated reports to show Missing as a valid Method in the report key, with Device never detected as the explanation rather than a mismatched plan. 4) Fixed a crash on reloading a log file from the ForceDevice which happens with Missing drives. 5) Updated most calls to HTTP_QUERY_CONTENT_LENGTH to use a new looping query, with a fallback of a default size if it cant be acquired (error code ERROR_HTTP_HEADER_NOT_FOUND).. possibly a proxy issue. This benefits login information. Real file downloads NEED real sizes so this has not been replaced yet. Version 14.9.4 (released 11/22/2021) ----------------------------------- 1) EPS Block0 Fix now asks whether to issue to all Atto-connected drives, or only drives which fail to Read block 0. Writes should now be either the data that was read from block 0, or 0x00 if the read failed, reducing the possibility of spoiling an erasure/verification. 2) Extended the redraw loop for the Imaging window until closed. Version 14.9.3 (released 11/22/2021) ----------------------------------- 1) Fixed a crash which occurred when using ForceErasureResults in conjunction with a userfield mapped to 2) Fixed a power on hours bug for certain NETAPP SAS drives, which could cause Health and Grading issues. Version 14.9.2 (released 11/18/2021) ----------------------------------- 1) Write Stamp log hash was not being replicated in the Write Stamp. 2) Changed code in ValidateEtokenFromLog to skip over the method lookup if the method was set to Missing. 3) View Enclosure Services WWN function has been updated to use the previously found and mapped chips instead of looking them up again. 4) Prevented an enclosure-services chip overflow that could happen if too many enclosures were added/detected. This could cause system stability issues. 5) Added a routine to clear all enclosure services slots on initial startup/detection so that previous states do not confuse operators. Version 14.9.1 (released 11/15/2021) ----------------------------------- 1) Fixed a conversion bug for 3rd party verification to avoid a divide by 0 error. Version 14.9.0 (released 11/12/2021) ----------------------------------- 1) 3rd Party Verify now (14.9.0) allows revalidation without paying for additional licenses, subject to the same log loading conditions that apply to Xerase charges. 2) MS_NVMe_Identify appears to be stripping extra spaces out of drive serial numbers, causing alignment issues of the data compared to the NVMe specification. This can cause data to be factored into the wrong fields. DumpBuffer has been added to the function to get a better handle on this. 3) Moved CPR_License_Busy loop to just prior to the determine3rdparyverify counting function to reduce the possibility of simultaneous read/write accesses. 4) Added additional controls for 3rd Party Verification in Post-Erasure Events to manage Supervisor mode. Options are Log Only, Warn of 3rd Party Errors, Rerun 3rd Party verification, and Discard 3rd Party Errors. 5) Modified 3rd Party verify logic to make it easier to manage and simplify interactions with the Supervisor corrective mode. The Count variable is now being ignored, and the Verify_Attemnpted_Rate is compared directly to the currently set target rate. If the attempted rate is less than the target rate, the drive will trigger 3rd party verification to increase the value. 6) Found a section in PrevalidateOpcode that could return 0 in Erasure_Recycler_Mode for a bad state, rather an a -1 which will keep a more detailed record of the problem. This section has been removed so that Recycler mode behaves the same as non-recycler mode, which has better behavior. Version 14.8.0 (released 11/03/2021) ----------------------------------- 1) Slot location is also now selectable via the Wipe Status combo. The format for List mode will be ArrayAlias (r# c#), where r is the row and c is the column beginning at 1. In physical interface modes, the ArrayAlias is not shown. All arrays should have a unique alias to make this useful. 2) Array Alias and Slot Number is now assignable to a Userfield which is defined as type upon starting an erasure. This userfield information can then be used in any manner that can interface with Userfield data (labels, reports, Database, ERP, etc.) In addition, the Device List can enable that UserField so that you can see which slot a drive is in while using List Mode. 3) Added CKL functionality w/ time validation. Version 14.7.7 (released 10/22/2021) ----------------------------------- 1) Fixed the scenario where a NIST 800-88 rev1 Clear as primary would drop to the Fallback instead of implementing the 1x/3x overwrite. Clears as Primary should never fallback. 2) Added a special exception for certain Samsung Firmware which writes blocks 0x321 to 0x327 (and potentially others) on issuing a Secure Erase. While this is not customer data, this will cause auditing and full verifications to fail. Firmware EXM02B6 and EMT01B6 are no longer going to be allowed to Secure Erase others may be added if identified. Version 14.7.6 (released 10/20/2021) ----------------------------------- 1) Added checks to eliminate the possibility of a user serial number mapping a specific drive into an ES mapped array. While it might fix the immediate problem, that slot will never work properly again so should be avoided. Only enclosures listed as UNMAPPED are targets for this. 2) Added button in Design Physical Interface to Update an array alias after the fact. This can not change the template itself. For that you need to delete, re-add it, and remap to an enclosure services chip(s). Version 14.7.5 (released 10/18/2021) ----------------------------------- 1) Added array alias back to physical interface on a new line, and color code RESCAN and UNMAPPED states to draw attention to it. 2) Added DiskArray templates for HP DL2700 and DL3700 enclosures. 3) Added some sanity checks during erasure method assignments to warn people against configurations of Primary/Fallback methods that could lead to poor behavior. 4) Cleaned up some device list string code to make things more consistent and remove some redundant messages. 5) Devices detecting a hardware error during bus scan are now automatically Force-Failed regardless of Recycler Warning settings. This should encourage the removal of devices that could lead to instability and cause other issues for perfectly good drives. 6) Modified wipegen to reserve IEEE P2883 wipe names for future expansion of special handling along the lines of NIST 800-88 rev1 Purge. Version 14.7.4 (released 10/11/2021) ----------------------------------- 1) Netapp drives indicate SCSI level 3, which was too low (threshhold 5) to query the drive about Sanitize and Format specifications. The code was adjusted to have a minimum level of 3 instead. SCSI Format is now always assumed to be supported regardless. 2) Adjust AMD processor string handling to deal with AMD PRO versions. 3) Opal PSID should now only show onscreen in a non-partial, non-complete state when the method to be run will trigger the Opal Revert code. Version 14.7.3 (released 10/01/2021) ----------------------------------- 1) Self-erasure exception for Prevalidate is now zeroing out all opcodes so that Opal Revert can continue without failing. This might conflict with the Read-only log/compare seed functionality, however. Will need to consider that going forward. 2) Fixit code to allow editing of system condition, etc, after startup. Updating Makor file = DONE. Copying values to working structure = DONE. ERP update = not done. Save/Reload values on startup (PXE) = not tested. 3) Added an Always Eject option for Optical Media, whereas the default would only eject if media was detected. Version 14.7.2 (released 09/23/2021) ----------------------------------- 1) Fixed a bug where Xerase would tell LCserver that it was using a faulty template string, causing LCserver issues. the correct string is now sent. LCserver has also been updated to reject bad string or missing template files. 2) Added Sanitize BlockErase to the no-seed-reerase code, which will get do seeding then erase again to get a good log with best practice verification. If opcodes will still not allow it, a reason of No Seeding/Validation will be added. 3) Fixed a crash that could occur if Hashing Blocks of Existing Data note is present, but there is no hash list in the log and not Passed/Failed. This might happen if Reads failed or a crash occurred before logging happened. 4) If erasing an Opal Drive and data protection access prevents Reads as well as Writes for the Seed pass, rather than failing, the drive will reset to the Running state to attempt the Revert anyway. 5) When restarting an erasure, or the failing Purge scenario is triggered, the copy of the previous/failed log is now copied to the override folder in the logs_previous subfolder to aid in support calls for PXE usage. 6) Fixed drive notes for System reports which were not showing up. 7) The display string in for the drive for Sanitize operations has been lengthened. Overwrite 1x is now Sanitize Overwrite 1x for clarity. This may cause Physical interface text to be smaller. 8) Removed the PE-only report logging, which assumed small numbers of drives, as some systems connect to many enclosures and it clutters up the Debug. Load Log/End Log/selection status display for PE. Version 14.7.1 (released 09/13/2021) ----------------------------------- 1) MsgLen remaining/Write should succeed logging removed from Speak() to speed up transfers. Version 14.7.0 (released 09/10/2021) ----------------------------------- 1) Currently Purge failover only happens if the Purge operation fails, not if the verification fails. Software has been updated so that if the PurgeFail action in the NIST settings is set to 1, Verification failures will also trigger the Fallback method. Setting the value to 2 will use current Purge-pass failures only for Fallback. 2) Moved state failed and device type check for PurgeFailover into some different code to facilitate better variable debug logging. 3) Added additional IsDeviceReady checked in the Erase_Device function post CustomIOPass loop to make sure that removed devices cant crash us. Version 14.6.10 (released 09/10/2021) ----------------------------------- 1) Modification to the licensing code to handle NVMe drives with EMC licensing. 2) Added additional Debug logging for a couple of reasons for Incomplete Prep failures in BatchSetupDrive. 3) Added more rules to skip combinations of block 0, 1, and maxlba. These will need to be armed via the Method/Rule Filter menu. Version 14.6.9 (released 09/08/2021) ----------------------------------- 1) Added StringTweak to toggle adding Serial Number information to Memory Chips. If off, then 4 same-make/model chips will have one entry with quantity of 4. If on, you will have 4 entries, each of quantity 1. 2) Better debug logging for erasure method loading in PE. 3) When Repartition and Format is enabled, the function now gets the current physical disk number prior to operation just in case it has changed since initial detection. 4) Fixed USB-device insertion when EPS-BOOT volume is present. Version 14.6.8 (released 09/01/2021) ----------------------------------- 1) When Verifying, Log-Spread of 1000 LBAs now happens at all times, not merely on Analyze failures. This will provide a summary overview of the data on the entire drive, which would not be present if a data comparison fails quickly. 2) Disallow 3rd party verify for low-level physical drives behind a Raid controller. This includes HP_CISS controllers and Megaraid controllers in storlib mode. Hybrid mode is currently allowed as the LUNs should be verifiable. Version 14.6.7 (released 08/31/2021) ----------------------------------- 1) Fixed licensing issue for Media Log that hasnt already been licensed for verification/erasure. 2) Bulk Force method licensing fix. 3) Microsoft generic Identify no longer copies junk buffers on failure. This shouldnt be a problem either way. 4) Changed The Fail on Slow Reason message to remove the less-than symbol from the string so that it will not break XML output. 5) CopyLegitString modified so that wildcards are no longer allowed for the ALLOW_PATH flag set, as this will interfere with creating a directory. This change could potentially cause other code problems if a * is expected as part of a path, but so far have not detected it in some of the more likely places. Version 14.6.6 (released 08/22/2021) ----------------------------------- 1) Added Keyboard testing results to Database mapping. Version 14.6.5 (released 08/19/2021) ----------------------------------- 1) Changed switch code to deal with different firmware paths found in ROMMON vs IOS modes for backups. Version 14.6.4 (released 08/16/2021) ----------------------------------- 1) Allow Label-print button in PXE/LCserver scenario to be active so that LCserver can be sent the message to print Drive or System labels. 2) Added additional code to track whether a IOS (switch firmware file) has been saved prior to switch format to guarantee that functionality can be restored post-erasure. Version 14.6.3 (released 08/13/2021) ----------------------------------- 1) Clean up of some switch code to avoid breaking out of a wait loop thinking the Format was complete. 2) Set retries allowed to 0 during format so that retries do not get triggered that can cause a premature failure in newer code. We process the expected error messages independantly. 3) Changes to data_seeded flag (-1) to indicate seeded AND verified already, rather than reset to 0 to make certain end-of-erasure logic more reasonable. Version 14.6.2 (released 08/11/2021) ----------------------------------- 1) Removing SetupCurStrings2 from SetupCurStrings (line 5060). These values should not be changing except in VERY specific scenarios... system serial numbers, chassis type, etc. 2) Remove Mfg from Model setting has been added to StringTweaks. If a manufacturers firmware is reduntantly including the company name in the model string, the company name will be removed. Only works if the strings are identical, currently (ie. HP and HP model X, not Hewlet-Packard and HP Z600) 3) SetupCurStrings2 no longer recollects SystemSerial number, which is already available. This should speed up operation slightly. Version 14.6.1 (released 08/06/2021) ----------------------------------- 1) Made a modification to JSON database code which should allow uploads when no drive is present. 2) Added specific Preval patterns (0xFAAF, 0xF22D, 0x F33D) to AnalyzeBlockContent() to aid in support diagnosis. 3) Deleting a PSID from the PSID list interface, now also clears the PSID from the matching device. This also works with the Clear All button. Version 14.6.0 (released 08/05/2021) ----------------------------------- 1) Opal Enterprise Seagate drives (SAS/SATA) and Non-Enterprise SATA drives are now supported w/ PSID via Xerase directly. 2) JSON database access to Google Sheets (best) is now integrated. Ask us for details if you want to use this. 3) Logged Hashes now use AnalyzeBlockContent to present a data summary as well. This makes the logs easier to understand for the less familiar. 4) USB drives are now longer attempting a Self-Diagnostic as they will often lock up or go offline. 5) AnalyzeBlockContent can now support WhiteCanyon Random patterns. 6) Created AnalyzeBlockContent to interpret the value of a single buffer/block. This will allow us to document data contents more fully than the hash alone would. This will now get used by the EraSURE function Analyze Data Pattern. 7) Updated DE_FillBuffer to accept binary sequences instead of just HEX strings. 8) ATA SMART data has been adjusted so that 100 is the best-case value for attribute ID 194 (Temperature in Celcius) and 190 (Airflow temp in celcius.) This means that a Score for this attribute is 100-(Curr or Worst). If attempting to ensure that the drive has never been run at a temp higher than 40 degrees C, use Score > 60. Sample grade A will have a cutoff of 50 degrees going forward, which seems to be the maximum recommended operating temperature. 9) Restore the Pass/Fail functionality in custimzation for labels. 10) Added the ability to automatically Repartition (GPT) and Format (NTFS) a drive after successful erasure. Note that this will cause any third party validation to fail. 11) If drive serial numbers begin with ST or WD, theyre assumed to be OEM model numbers instead and not used. 12) Maximum serial number size in the device list has been bumped up to accommodate long WWN based sn strings. 13) If duplicate serial numbers are detected (OEM drives storing model numbers instead of SN) the software now provides an opportunity to replace the serial number with a unique identifier instead of merely aborting. Version 14.5.3 (released 07/21/2021) ----------------------------------- 1) Post-upload to database from the report window was not properly formatting the date string, leaving the month as 0. For SQL servers, this was causing the string to be rejected. Version 14.5.2 (released 07/14/2021) ----------------------------------- 1) Create WIM Image option in PXE was now failing on updated Win10 installs. Imaging flags have been changed to work around this. Version 14.5.1 (released 07/07/2021) ----------------------------------- 1) Refined the FindPriorLog function to not use a variant filename if the string passed in was empty. This will prevent certain scenarios where a .log file might get created 2) Removed the pass number from reasons for failure (Unwritable block, verification, etc) and other specific errors are in parenthesis. this cleans things up a little and removes a source of support calls. 3) Fix for retries exceeded not always causing a failure. 4) Failed retry errors during pre-erasure Seeding will now cause the erasure to Fail. 5) Physical Interface context menu for printing labels now ONLY works if the slot is assigned. Prior assigned serial numbers are ignored. To print labels for non-present drives, use the Report Window. Version 14.5.0 (released 06/30/2021) ----------------------------------- 1) Reverted a change which resulted in a generic Incomplete Prep log rather than an OpVal W error log when having issues writing to the drive during Prep. Theyre both true, but OpVal is a more useful description and has more data in the log file itself. 2) Removed XVFY license option for EraseSURE Verify Mode. All verifications happen via XELT or XERASE licenses now. 3) Updated HTTP licensing code to be able to use Xcloud flags. 4) Razor not uploading system specs? 5) Force Erasure Results now adjusts DriveType based on whether in switch mode or not. Switch or 3.5 SATA 7200 are the defaults. 6) Certain drives performing a Sanitize Overwrite operation on the AHCI polling interface were timing out after 2.5 hrs, which assumed a self-erasure speed of 100 MB/s. This time has been adjusted to assume better than 50 MB/s and accommodates 3 vs 1 pass time differences. This should allow more than enough time. Crypto and BlockErase have similarly had their times increased substantially to 30 minutes maximum, just to be sure the drives have every chance to comple. 7) Force Erasure Results window while in Switch mode will properly add the device type as Switch for logging and reporting purposes. 8) During rescan in the SystemInterface, the BigHD icon is displayed overtop the Rescanning label to fill up the empty space that would normally be occupied by device and erasure statistics. This is merely a cosmetic improvement. 9) Added code to detect a scenario with PXE/System Interface where the drive rectangle is 0 sized. This should recalculate dimensions so that drawing works properly. 10) Fixed a problem where the Recycler mode controls were reduced to a simple On/Off state rather than the expanded Warn/Fail. 11) LSI LUNs (model Logical_Volume) will no longer claim to support SCSI Format. 12) Logs for Switch Erasure now adds Power Supply information and, when loading for reporting, All switch information is now available in the structures (whether they will be used or not.) 13) Added new ERP XML output format for Reports, and Drive OnePage. This new format is mostly hard-coded like the OnePage reports, so report templates have limited impact on the output which is more verbose than normal output can be. Report Prompts can be added. 14) Removed the BCSet loop in BCD_Set_And_Verify of SysErase code as pointless. If it isnt going to work, its not going to work the 5th time either. Added debug logging for SetFilePointer. 15) Overhauled the Customize Interface code to be easier to code. Removed 2 of the SMART options from the device list. Removed Network Control category entirely. Added controls for Wifi SSID logins. 16) If a database has been defined/assigned with 0 tables, prevent it from crashing the software on startup. Version 14.4.2 (released 06/08/2021) ----------------------------------- 1) Modified Sanitize_OS_Override so that USB-connected drives will not support SCSI Format commands. USB enclosures will not emulate a SCSI format and it will fail erasure if attempted. Setting the format flag to 0 should disallow SCSI Format as an option. 2) Modified the Label Printer code to open/allocate bitmaps/print/close/deallocate for each label. This may resolve an issue with label printers going offline invalidating the handels/DC. Version 14.4.1 (released 06/07/2021) ----------------------------------- 1) Fixed a display update/timeout issue with SATA Self-Diagnostic caused by the recovered error adjustment in 14.3.0. 2) Fixed a problem where CustomizeInterface was not able to save a Default Rule. Version 14.4.0 (released 06/03/2021) ----------------------------------- 1) Finished removing legacy remote-drive code (device[idx]->ip_address, xerase.master_client level, etc) which has not been used in many years, but is complicating the code and leading to unexpected behavior in some instances. Version 14.3.1 (released 06/03/2021) ----------------------------------- 1) 64 bit PDF dlls are now dynamically linked like the 32 bit dlls rather than statically. 2) Cleaned up reporting HTML errors so that PDF conversion works correctly on x64 executables. Version 14.3.0 (released 06/01/2021) ----------------------------------- 1) Added code to Self-Diagnostic to ensure that status information was returned. If not, result will be UNKNOWN instead of PASSED. Unknowns will not cause failures. 2) Reverted a recovered error change in Retry_IssueATACommand() and Issue_SATL_ATACommand() which were implemented in version 14.1.0. SCSI errors are still not assuming recovered errors are good. 3) Added code to autoreport functionality to ensure that a given log can only be loaded one time to avoid redundant entries in a report. 4) When using display scaling mode, it was possible that the Device List bitmap was not allocated large enough to accommodate the full window width. This has been resolved. 5) PDF reports now generate properly when text scaling is enabled. This may have been causing some booted laptops with large displays to render the PDF in a smaller-than-desired area. 6) Reports generated in which all drive logs are WWN_xxxx or SN_xxx, were kicking out rather than generating the report. This has been resolved. 7) Added code to Unlock and Disable the password at the end of a failed Secure Erase command, returning the drive to Security State 1. This should allow overwriting or other attempts to occur. 8) Added libcurl.a to the project. 9) Disallow charges file if not specifically allowed by CompanyCode. Version 14.2.8 (released 05/20/2021) ----------------------------------- 1) Changed Secure Erase unlock code segment to use Security_Unlock function. Also call this function on Primary->Fallback in case Purge was using SecureErase Enhanced as its method, and it failed. 2) Updated Switch detection/erasure routines. 3) Added dump of x64 boottype.txt file to Debug_XERAS.txt to make it easier to determine what files were used to create a given USB stick for support purposes. Version 14.2.7 (released 05/19/2021) ----------------------------------- 1) Fixed a problem with selecting devices in the report structure for auto-generating reports. Version 14.2.6 (released 05/14/2021) ----------------------------------- 1) Disabled PXE copies of Xerase submitting CreatedBy queries to Xcloud until further testing is complete. 2) Fixed a problem with the program generating a report on switching report templates. Version 14.2.5 (released 05/13/2021) ----------------------------------- 1) Redo SetupDeviceFieldOrder to pass in report_device_struct* instead of first_device_idx. This allows us to label the Userfields in the device table appropriately 2) Fixed KM_LogResults crash due to bad prototyping. Version 14.2.4 (released 05/12/2021) ----------------------------------- 1) Processor Speed now also adheres to the Capacity Space StringTweak for whether to display 4.20GHz or 4.20 GHz. 2) Processor parsing support for Ryzen processors added. 3) Context menu for Edit UserFields no longer locks up the program due to stalled message processing loop. 4) Memory now adheres to the Capacity Space StringTweak so that drives/memory follow the same format. 5) Added StringTweak for No Fractional Size to the controls. This is currently in effect for Memory. 6) Some LSI adapters not properly enumerating physical devices. Version 14.2.3 (released 05/06/2021) ----------------------------------- 1) Fixed a bug in loading Device Label templates that could cause the Column1 size to get corrupted (set to 100%). Version 14.2.2 (released 05/06/2021) ----------------------------------- 1) Added Customize->Interface->Advanced->Copy Debug log to Override Always setting. Version 14.2.1 (released 05/05/2021) ----------------------------------- 1) Added some additional error checking/logging into AllocateIOBuffer and functions that call it. 2) Added an additional backup folder option for logs and reports, so that multiple locations can be distributed at once, and not rely on the automatic override behavior of Y which can mess with configuration on USB sticks. 3) Code to clear password files in rommon mode had been commented out for testing purposes. Now restored. 4) Switch OS backup needs to either push the desination file without a subdirectory (if in use on the switch) or create that subdirectory automatically before TFTP downloading happens 5) Some SAMSUNG drives will fail the SetPassword function for Secure Erase, but it appears to have worked anyway. Modified the logic to move forward if SecureEnabled is set, and will note it in the logs. If the drive was previously set password through non-EPS means this might possibly cause issues in thinking a drive is erasing when it is not. Version 14.2.0 (released 04/30/2021) ----------------------------------- 1) Fixed display of reporting template preview. 2) Added a new Interface segment called StringTweaks that can make minor modifications to the way certain information is displayed/stored/used. 3) Report Generator Now has the ability to toggle logs listed between PASS/FAIL and Partial. This will allow generating reports of devices which did not get completely erased. This will allow ReportGen access to some of the Log Analysis functionality for people using EPSboot or LCserver. 4) Fixed bug in reporting for device field lookups to make sure its using the proper system->device structure all the time. Version 14.1.0 (released 04/27/2021) ----------------------------------- 1) Added code to bring drives online and remove read-only attributes prior to departitioning to accommodate certain SAN disks. 2) Added Switch/Backup and Switch/logs subfolders on startup so that TFTP OS backup does not fail. 3) Trying to erase a drive in which the partitions can not be removed no longer merely aborts, but will fail the device with a Partitions could not be removed reason. 4) Operator display for the device list has been shifted to the right to accommodate longer wipe names. 5) Change Retry code to not assume that Recovered Errors were executed fully and properly. Recovered errors on Read/Writes will be treated like any other Check Condition. 6) Fixed an ATA WriteSame downgrade problem with Prevalidate Opcode if ATA WS was supported, but SCSI WS was not. 7) Added Sequences to the Media viewer to make it easier to visually validate the LBA sequences used in the erasure logs. Separate modes are available for Seeds, Scatter (the normal Spot Verify) and Spread (constant increment used in some wipes, and used automatically if running an erasure without a defined verify pass. Press the << and >> buttons to backtrack/advance the LBA to the next sequence value. Version 14.0.3 (released 04/22/2021) ----------------------------------- 1) Firmware based erasure methods selected while no Premium license is available will instead default to NIST 800-88 rev1 Clear using a 3x or 1x overwrite depending on settings and whether its an SSD. 2) Secure Auto wipe method is no longer special-cased. It is treated the same as any other firmware based erasure, and uses the General settings for Secure Filter. 3) Protection_Reserved value of 2 means that we could not determine proteciton information. This value will no longer trigger the recycler message, which probably is preempting a Not Ready message which is the actual problem. 4) Fixed a bug with the media viewer combo selection not matching the drive list. Now the serial number in the combo is used to do the device list lookup to ensure the proper drive is being viewed. 5) Fixed a scenario where a static text file wasnt being loaded for reports depending on pathing to the exe. 6) Fixed OnePage PDF reports to properly account for the new system structures. This shouldnt have been needed if the template name remained Drive OnePage, but differently named OnePage templates would have issues. Version 14.0.2 (released 04/15/2021) ----------------------------------- 1) Removed the shorthand key in the upper right for OnePage PDF reports as its less useful than had initially seemed, and gets in the way of vendor logos. 2) Logo recovery added for reporting. 3) Drive OnePage (PDF) reports now can use the same erasure method description logic as any other report, including a static file for company boilerplate, etc. Drive OnePage template has been updated to include AUTOMETHOD. A second DriveVerify OnePage template has been added that includes verify text. To add your own text, load one, and Save As a new file name, then replace the AUTOMETHOD with your own text. 4) Report generation will now always use images/YourCompanyLogo.jpg in the upper right corner if it exists and you arent specifically overriding it with a different filename in the template itself. 5) Forced Partition Cleaning was causing potential corruption on block 0 when unneeded. Normally not an issue due to overwriting block 0 anyway, but could become a problem if using a Rule to skip over block 0 or tricking the software into thinking that was a first-erasure. Software now determines if Partitions are present at run-time before Clearing. 6) Removed a function in DetermineOpcode that could conceivably reallocate a buffer after it had already been filled for a writesame pass. 7) Added structures to formalize Health grading values. Raw will always be Raw0 and Raw1, while a new value of Raw012 is now defined in case you need access to the full value. This can be risky in some cases as some drive vendors use Raw2 (and sometimes Raw1) for other purposes. This value is not currently usable. NVMe drives will have matching Raw and Raw012 numbers until it becomes evident that some NVMe devices are behaving badly and we need to accomodate that. 8) Fixed the Mismatched Rule messagebox when resuming Entire Drive disks and also restarting Entire Drive disks. 9) Fixed a restart issue in which answering Cancel to indicate that you wanted to abort the restart for Partial drives was restarting the drives from the beginning anyway. Similarly the No option was also restarting instead of resuming. BatchSetupDrive ignores the restart flag as it was dealt with earlier. Version 14.0.1 (released 04/09/2021) ----------------------------------- 1) Potential crash fix caused by bad device structure value of indx, which could conceivably happen due to discarded/removed drives. ReindexDeviceArray will make sure the values correctly reflect the current positioning after a device add/remove event. 2) Added a context menu item to display the Secure flags as found in the Debug log. 3) Modified GenerateOnePageReport for autogeneration to access the Verify folder for logs when in VerifyMode. 4) Modified DetectUnusableCapacity function to work with Verification. 5) When in verification mode, the log pathing for the report window for Default Log Folders and Default Log Path attempt to switch to the appropriate Verification subfolder instead. 6) Intel ATA SSD drives are no longer allowed to issue a self-diagnostic. Normal Self-Diags dont work at all, and extended Self-Diags take the drives offline to do their testing, which isnt helpful for an erasure product. 7) Added BSI-2001-VS, BSI-GS and BSI-GSE methods and erasure descriptions for reporting. 8) Fixed a bug in which certain Report output types would show the string prior to the actual underline if the template was using them. 9) Report Generator will now output a list of erasure methods used, and number of drives doing each when outputting Erasure Statistics from a template. 10) Report Generator now counts up the number of drives performing each method of erasure, sorts them, and uses the most common one for the Erasure Description. If primarily NIST Purge and NIST Clear, then a new NIST Purge/Clear description will be use which describes both. 11) Fixed a strcpy bug in the Userfields creation panel which stripped off the brackets for PROMPT1, etc, causing no prompting. 12) Fixed a bug in EPS Health Scaling algorithm that was only using Raw0 for power-on-hours calculation. This caused drives with more than 64k hours to seem fairly new from a health-score perspective. 13) Recycler auto-Failures were creating logs which were considered tampered because of a lack of Method listed in the header which caused it to use an older method of validating the token which was incorrect for these drives. 14) Selecting the appropriate erasure method is now done without regard for drive type. The Primary method will be used if possible. If the drive can not support it, the Fallback will be used instead. Conditionally, the Fallback may also be used of the Primary method fails as specified in the NIST Settings customization. 15) The Method GUI-feedback is now color coded. A FirmwareSecure method will be indicated in Green. Manual write passes, verifications, and others will be in yellow as before. 16) Rule coloring GUI-feedback now in orange if the rule is anything but Entire Drive to draw attention to it. 17) Arial fixed-font size bumped from 80 to 90 to increase legibility, especially on higher dot pitch monitors. This is possible due to reducing number of displayed methods. 18) Auto-seeding for Purge methods now happens immediately before and after the firmware erasure rather than at the beginning of the erasure and after the first pass. 19) Updated GenErasurePlan to deal with erasure methods that have mixed writes and Purge-opcodes. 20) Rewrote the purge-selection logic to be less hardcoded and more algorithmic so that it can be reused used for non-NIST Purge-like routines, like BIS-GS. 21) Changing to the Slot Information type to Erasure Method in Physical Interface mode would crash unless every slot was filled. This will no longer happen. 22) +Doc button for the Method/Rules/Profile Filter window now opens Wipegen when in Method mode. To select that method in the Filter, after creating it in Wipegen, you may need to restart the program. 23) Removed Serial numbers from memory stick descriptive text to allow them to compact (4 memory sticks of type X, not a list of 4 uniques) 24) Fixed scenario where loading the StorelibIT dll for NVMe drives was causing the StorelibMR controller to not support Hybrid mode. Version 14.0.0 (released 03/18/2021) ----------------------------------- 1) Tweaked the logic in the last LBA read exception handler, which might have been causing other LBAs to not fail out immediately on spot verifies. 2) Report_SelectDevices updated to ensure allocations before accessing them to harden against potential crashes. 3) For XML Drive OnePage reports, a special Dynamic Directory variable (NOEXT) was added to remove the .xml extension from the output file to accommodate certain customers that have non-standard extension requirements. 4) Added XML Database as a valid output type for Drive OnePage report templates. This creates a single XML file per drive with detailed drive data such as would be uploaded to an ERP. 5) Added Dynamic Directory variables USERFIELD1, USERFIELD2, USERFIELD3 to indicate the first drives userfield values in a report. Also added are ESTATUS which is Pass" or "Fail", and ESTATUS_SHORT which is "P" and "F" respectively. These can be used for naming files, most usefully for Drive OnePage reports. 6) NVME_GetLogPage passes in the appropriate NSID for the operation instead of switching internally. This allows more flexibility in future usage. 7) All NVMe NSIDs are gathered and saved during the bus probe for use during erasure. 8) NVMe NSID sequence for retry attempts is now controlled via TryNSID function. Version 12.33.1 (released 03/10/2021) ----------------------------------- 1) Barcode serial numbers now have better sizing gradient in the font sizes that are most likely to matter for labels. This makes it more likely to use all/most of the space and increase scanability. 2) SCSI Target device strings (type 8) for identifiers/NAA are no longer supported. WWNs are only type 3 now. 3) To simplify the code, serial number barcodes for Labels are only rendered if they are defined in Column 1. Allowing in both columns was a legacy feature before all serial numbers were rendered at the bottom of the label (ie. neither column.) 4) Workspaces are now automatically capitalizing ES SN and WWN when loaded from file to make the matching more reliable. 5) Enclosure Services chips now are matching only WWNs, not Serial Numbers as some enclosures had duplicates requiring a WWN test anyway... which was causing issues on the EPS expander. If devices are no longer filling and the enclosure says RESCAN, you should remap. 6) NVMe drives will now also output Reservation and Protection status. Reservation should already be properly emulated. Protection is not yet valid. 7) Moved the SCSI ReleaseReservations code to below the UnitSerial tag, so that NVMe drives will use it. This may eliminate an unexplained writability problem that weve run into. Version 12.33.0 (released 03/04/2021) ----------------------------------- 1) Added Form Factor types for PCIe add in cards and chips soldered to the motherboard in anticipation of being able to extract this information for supporting NVMe drives/adapters. 2) Modified the SCSI WWN routines to get better/more identifiers for enclosure services mappings. 3) IsDeviceOnESChip changed to allow non-50 WWNs to accommodate Broadcom NVMe controller vSES emulation. 4) Fixed Techway licensing for forced erasure results. 5) MS NVME Format now gets switched inside NVME_Format function to simplify logic flow. 6) Added NVMe support for Broadcom tri-mode HBAs. 7) Added iMac Pro 1,1 to the lookup table. 8) Added a warning about CISCO switch erasures and needing Database connectivity. 9) Added memory lookup code for DDR4 types so it will not be listed as Other for ERP system uploads. Version 12.32.7 (released 02/23/2021) ----------------------------------- 1) Addressed 12.32.6 problem which caused the Compare-blocks function to never exit if bad reads occurred. 2) Added support for Rules that only erase the tail end of a drive. Primarily this is useful for testing purposes but could be used for cleanup on an otherwise erased drive without needing to start over from scratch. Afterwards, youd Verify the full drive for a passed log with no caveats. Version 12.32.6 (released 02/18/2021) ----------------------------------- 1) Rewrote Enclosure Services mapping routines to accommodate new ATTO GT adapters, and are including Octane48_GT, Octane24_GT, and Octane16_GT arrays definitions. 2) Added the two BTO variants of MacBook Pro 11,4 to our lookup table, which have upgraded CPUs. These will show as MJLQ2LL/A BTO. 3) To accommodate certain Dell laptops, single block verification of MaxLBA will not fail the erasure if there was a Read failure. Incorrect data on this block will still fail the erasure. 4) PXE/USB now call save for CheckRefSysInfo again, as this can/will reload AssetID if the erasure program shuts down/restarts. Version 12.32.5 (released 02/12/2021) ----------------------------------- 1) PXE/USB boot versions no longer save as part of CheckRefSysInfo as it isnt needed. Standalone erasure station versions will only save the file after BIOS data has been acquired. Version 12.32.4 (released 02/12/2021) ----------------------------------- 1) Updated LoadLogDev to try other system xml filenames if the one mentioned in the log doesnt appear to be present. 2) Divorced SYSID and ASSET_ID from dynamic pathing as it was causing many problems. Fixed some copystring problems with disallowed spaces. 3) ALLOW_AMPERSAND flag for IllegalChar now also applies to @ so that device strings can show quantity properly. Version 12.32.3 (released 02/11/2021) ----------------------------------- 1) Fixed a problem with initial INI file creation caused by the new fallback code in 12.32.0. Version 12.32.2 (released 02/09/2021) ----------------------------------- 1) Added the ability to view selected logs in the report builder, in case you want to review why some failed, etc. Version 12.32.1 (released 02/07/2021) ----------------------------------- 1) The 3rd Party Verify tool has been updated to properly access 520 byte/sector drives. Version 12.32.0 (released 02/08/2021) ----------------------------------- 1) Fixed a bug preventing loading of a fixed Asset ID, Chassis Type, etc. 2) PrevalidateOpcode no longer does a minimum speed test to determine whether a specific chassis type (Laptop, etc) which is not bandwidth limited should ignore WriteSame options entirely. This should result in higher speeds as it as poorly choosing WriteSame in some scenarios because of configuration. 3) SYSID/ASSET_ID and SYSSN will now use the value stored in the drive log if possible/report type makes it available. 4) Filename enhancements for the new tags have been added to the DriveOnePage reporting as well. 5) Added CHASSIS tag for ExpandDynamic pathing, as well as adapted ASSET_ID and SYSID to use the assettag value entered by the customer for purposes of reporting. 6) If groups.ini can not be loaded, the backup file at config_backup/group.ini will be loaded if it exists. Unlike xerase.ini, this file will not be recreated in the proper directory structure and would just keep reloading from the backup until manually restored. 7) Updated IllegalCharacter and CopyLegitString to be more flexible in permissible data which could be needed for new LOCATION1, etc, string substitutions. 8) If xerase.ini is not present or 0 size, the software will load from xerase.ini.backup. If that is not present it will load from config_backup/xerase.ini. This will hopefully alleviate the issue of resetting configurations certain customers have. If all 3 files are missing a new file named NO_INI_FILE_ACCESSIBLE.TXT will be created to document the date/time. 9) Modified the LoadProductINI routine to call a function to process the local variables rather than doing things directly. This allows the new function to be called in other appropriate places. 10) System variables (SYSSN, LOCATION1, etc) for ExpandDynamic pathing will now be interpretted as the first system/drive in a report set for reporting purposes. This only matters when creating reports based on drive logs generated by other systems, such as using ReportGen. 11) Added SYSNAME, LOCATION1, LOCATION2, and a distinct DRIVESN tag to the ExpandDynamic string function for resolving paths/filenames. 12) BlueIQ vOperator is now set to system location 1 value. This can be customized in the menu to note the system/location which processed a given asset. Version 12.31.19 (released 01/25/2021) ----------------------------------- 1) The label template window now has a scaling factor for final output to the printer in case the generated bitmap does not fit the printed region properly. 1.0 is the same as current output. .5 would be half the size, in theory. How a given printer handles this is unknown, but provides an additional tweak to attempt to get the output correct. Version 12.31.18 (released 01/25/2021) ----------------------------------- 1) Selecting a subset of logs for a report could cause a crash. This has been eliminated. Version 12.31.17 (released 01/22/2021) ----------------------------------- 1) GPT partitioning code is now largely working for the Imaging module. On first boot, there may be a Blue-Screen error indicating that the system was not shut down properly. Pressing the Enter key to try again fixes the problem. 2) Modified imaging to allow HTTP wim downloads, like SysErase does, if the unit has a network connection. In theory this would allow a USB bootable to erase a system, then image it, without needing LCserver. 3) Added AutoHscroll tags to the ERP windows edit fields to allow longer command lines. Version 12.31.16 (released 01/18/2021) ----------------------------------- 1) Changed BlueIQ login to production servers, second attempt. Version 12.31.15 (released 01/14/2021) ----------------------------------- 1) Changed BlueIQ login to production servers. 2) Fixed entering Userfield prompt values in the forced erasure results window. Version 12.31.14 (released 01/13/2021) ----------------------------------- 1) Adjustment to the code introduced in 12.31.13 to fix the month being uploaded to a database which was 0 instead of the proper number. Version 12.31.13 (released 01/12/2021) ----------------------------------- 1) Updated Always replace database code to accommodate bad erasure dates (1970). Xerase has been updated to use todays date if an upload is happening where start_date or end_date is not yet filled out. Version 12.31.12 (released 01/09/2021) ----------------------------------- 1) Increased the LCserver/database upload timeout to account for large numbers of drives in a server and removed the MessageBox which could be blocking. Version 12.31.11 (released 01/08/2021) ----------------------------------- 1) Added FormFactor, Interface and Type fields to the system XML files for easier ERP integration. These are the strings of DeviceType broken out individually for ease of use. 2) Added a new setting under Advanced Configuration for Apple systems. This will swap the UUID and Product Name fields, putting A1418, for example, into Product and iMac 16,2 into UUID. 3) Fixed a GUI issue with printing system labels from the Report window and enforces a requirement to have a System Report template selected in order to print a system label or upload system information to a database. WIthout that, all devices will be attributed to a single system. Version 12.31.10 (released 12/29/2020) ----------------------------------- 1) Fixed the PXE config segment dealing with label templates to use. 2) Allow XEBASE subscriptions to generate Forced logs again. 3) Updated label printing code to indicate more clearly the Type of label request that was sent, and to NOT print the label if the template being requested is not of the correct type; 4) Added Premium Subscription tag to the Full License information in the situation that its an older license with XEBASEwin + a subscription license. 5) Catch for LUN drives on raid controllers that have the keyword RAID in the serial number (iaStorAC) much like ARRAY keyword on the VROC driver. Version 12.31.9 (released 12/18/2020) ----------------------------------- 1) SysEraseMode starts without USB device detection in case USB sticks, SD cards, etc are plugged in. If no drives were detected, USB is enabled and the rescan runs again. This secondardary detection is needed for certain Laptops that have their system disk on the USB bus. 2) Removed prompting for publicly available SysErase setup at end of the install. It will immediately reboot and/or start erasure. SysErase setup no longer tries to allow unsigned drivers as this will fail if SafeBoot is enabled in the BIOS. 3) SysEraseMode should not start erasure if no Cloud access. (timing issue?) Version 12.31.8 (released 12/17/2020) ----------------------------------- 1) Reporting tweak to allow reporting of recent logs before updating. 2) SysEraseMode no longer looks for an override folder in xerase once enabled. Version 12.31.7 (released 12/15/2020) ----------------------------------- 1) Further tweak for ARRAY0 drives to nullify the long serial number so that the logic is forced to use the SN_ version created. Version 12.31.6 (released 12/14/2020) ----------------------------------- 1) Restored Recycler Grading for Physical Interface modes by removing sub_text promotion to step_text. This allows predictive erasure methods to be still displayed. Grading will now be smaller. 2) Intel VROC drives in RAID mode will have a drive serial number of ARRAY0, which is non-unique. This is now replaced by our unique WWN based serial number so that drive logs and database entries are not overridden. 3) Active Database reporting fixed when used with database tables that dont have every column mapped. 4) Active Database reporting no longer happens immediately on selecting the combo box. To do the Query and get the drive information fill out the controls first, then press the + Document button next to the combo. New queries can be repeated the same way. Version 12.31.5 (released 12/08/2020) ----------------------------------- 1) Enabled better feedback on messageboxes when end-of-batch copies are being done, and give the option for turning off automated reboots/shutdown if there were issues. 2) Bug fixed in custom requestor with missing title if PROMPT2 and PROMPT3 are used without a PROMPT1 value. Version 12.31.4 (released 12/04/2020) ----------------------------------- 1) Investigation has revealed that the 3rd party verification tool can not work on 520 byte per sector drives using current code. Only 512 and 4096 byte drives will be allowed to be validated this way until code changes can accommodate enterprise sizes. No license will be used and it will not tick the validate counter. 2) Fixed a bug in the reporting logic to allow older logs to be reported. 3) Added debugging messages to indicate retained 3rd-party validation log pathing and success/error codes. Version 12.31.3 (released 11/30/2020) ----------------------------------- 1) The CopyLogsAndReportsToOverride function now utilizes topmost message boxes so that its visible even if a report is being displayed just prior, which would have previously hidden the messagebox until the report window is moved/minimized/closed. 2) Fixed a potential crash with HBA lookups for the device when the index is -1. Version 12.31.2 (released 11/25/2020) ----------------------------------- 1) Temporarily added additional debugging statements into the early segments of CreateDeviceEntry along with the Copy-to-override function to determine where a crash is happening on certain hardware. 2) Added a copy of the Debug_XERAS.txt to the final CopyToUSB function for SysErase or the menu. Version 12.31.1 (released 11/24/2020) ----------------------------------- 1) Added a new option for NVMe format to try -1 as a namespace. 2) Added Messagebox prompts to the user for various failures having to do with breaking the raid. This will instruct them to power cycle the box and clear any LUNs manually. 3) Taskmaster restarts have been changed to explicitly resume-only to take care of some scenarios that were restarting from the beginning. 4) Autogenerate report fixes a problem with Generate and Display option preventing the creation of the report at all, when it was intended to disallow device OnePage through that mechanism. 5) System Erase.. sets Autogenerate report to the main report template, turns on the prompt for override copy explicitly, disables the Override Folder variable after cleaning. 6) When automatic raid breaking is enabled, if Virtual Drives are still detected afterward flag the user to manually break the raid. 7) Idle drives will no longer automatically display Grade as the Wipe Status text as this was overruling the predictive erasure method information which is useful. To see Grades you can change the Wipe Status combo box to Health and Grading instead. In List Mode, you can also enable the Health column to see it all the time. 8) Recycler Mode will no longer do Health and Grading SMART checks after an erasure has been started. This eliminates unwanted clutter in the log file. Version 12.31.0 (released 11/12/2020) ----------------------------------- 1) Program Settings->Restrict Reports until after Database Upload will now disallow creating a report until after the data has been uploaded to the database. This is to encourage operators to follow the process and not take shortcuts that would impact operations. 2) The Report window has been upgraded to allow Database uploads. This functionality has been removed from the Log Analysis window. On upload, a note will be added to the log file to indicate the time and date and will be displayed in the report window as well. Version 12.30.5 (released 11/09/2020) ----------------------------------- 1) UpdateLogDev now uses the GetHeaderPtr function for consistency and simplification of code. 2) Format corrupt drives no longer attempt the use the new Read Seed Hash functionality (which will fail.) Version 12.30.4 (released 11/09/2020) ----------------------------------- 1) Very special case bug fix for customers that have created a custom wipe whose name contains the word Pass. This was preventing pass-data from reloading and resuming to work. Version 12.30.3 (released 11/05/2020) ----------------------------------- 1) Added report generation mutexes to solve a potential problem with multiple one-page reports being generated simultaneously and not being able to access the PDF converter. Version 12.30.2 (released 11/03/2020) ----------------------------------- 1) Fixed a LBA sequence repeatability problem for seeding while using Rules with a very small writable region. 2) Fixed a problem where using an Erasure Rule, then switching back to Entire Drive might not have reset the rule boundaries. 3) The final logged Reason note was being added twice due to the new Failure Reason listed under the Erasure Results. 4) Further embellishment regarding the inconclusive verification of seed hashes. The Reason will only be present if all 1000 of the read pre-erasure hashes were zero, since a zero hash can not fail. If any block in the seeded selection changed then this footnote will not be present. 5) Bad Block logging has been updated to optionally include a better description of where the error occurred, rather than a generic pass 1 description. Some of the keywords have changed. Version 12.30.1 (released 10/30/2020) ----------------------------------- 1) WMIC serial numbers were generally being ignored and a WWN number used in its place. This should no longer happen. 2) Narrowed the Not Properly Validated or Certified due to lack of writes note, which would prevent certification by adding a new seed validation method. If not writable, before/after hashes are compared to ensure that data blocks sampled have changed during the course of the erasure. Passing this is an acceptable substitute for the previous seeding/verification segment to determine that a self-erasure operation did take place, so long as at least one block was non-zero to start. Version 12.30.0 (released 10/23/2020) ----------------------------------- 1) LC Protocol version is now 5.0. LCserver and Xerase both need to be 5.0 for communication to work. This will happen with versions 10.0.0 and 12.30.0 respectively. 2) The last Reason added to a file is now repeated in below Erasure Status in the log file, and will be shown on the screen in DeviceList mode for FAIL states. 3) Drives returning Deferred SCSI errors will now fail immediately. This is most often due to caching, but make it very difficult to fix after the fact as retries to a given LBA are not the LBA that took the error. in the interest of safety and speed, these drives will now fail. Reformatting the drive may eliminate the errors due to bad block collection into the GList. 4) Updated the ParseExistingLog function to better discriminate between header keywords and header data. 5) Rewrote the report generating code to be much more efficient with System Reports in large drive/system quantity. For system reports, sorting is now on a per system basis. 6) HBA_API_GetNVMeDevices moved inside of ProbeBuses so that discard code will work properly. This only really matters for Xerase running on an NVMe system disk. 7) LicXfer updated to include latest code, includes HTTP Only checkbox, and disallows trying to push licenses to the cloud via HTTP connections. 8) Uncharged drive logs will not be reportable after 12/1/2020. 9) Fixed User Fields table in Force Erasure Results window. 10) Updated EndOfErasureState and PrintErasure end functions to utilize the erasure_mathod_string previously generated instead of trying to recreate it. This is simpler and more reliable under some circumstances. 11) Removed legacy Xtrack database hooks to simplify the common database code. 12) Modify Xerase to ask for BIT or XELT licenses to generate forced-logs if not already paid for. 13) Fixed the ability to create new profiles in Xerase (interface and filter windows) which had been locking up the program. 14) Fixed a memory leak associated with closing the report window. Version 12.29.1 (released 10/11/2020) ----------------------------------- 1) Updated SCSI Self-Diagnostic failure reasons to use the better descriptions found in t10 document 99-179r0.pdf 2) Saved Sources in report generation no longer selects the source and autoloads as a result. The user will need to manually select the line theyre interested to start loading logs. This eliminates pointing to a previous LARGE directory and taking a long time to load. A CLEAR LIST button will also be added. 3) Added a finer seed to the random number generator for DocID. This should fix a problem when generating many reports in rapid succession resulted in some not generating due to file name conflicts. Version 12.29.0 (released 10/05/2020) ----------------------------------- 1) Added the ability to set a default Rule that gets applied on startup in Customize-Interface-Erasure Settings-Default Rule. This can be used in tandem with LCserver version 9.2.0. Version 12.28.4 (released 10/05/2020) ----------------------------------- 1) Fixed end-of-erasure logging/hashing to accommodate the Random-clear slight of hand and end with a valid log. 2) Added resume-logic code for drives that are post-crypto and manually zeroing out the hard drive. 3) Added Prevalidate Check before Clear-Random manual overwrite pass to make sure the opcodes are good and get decent speeds after the opcode reset from GetNewStats. Version 12.28.3 (released 10/01/2020) ----------------------------------- 1) Modified the Database window to allow horizontal scrolling in the server edit field, and allowing up to 128 characters for a server name url. Version 12.28.2 (released 10/01/2020) ----------------------------------- 1) Cisco switch compatibility Version 12.28.1 (released 10/01/2020) ----------------------------------- 1) Cisco switch compatibility Version 12.28.0 (released 10/01/2020) ----------------------------------- 1) Additional Cisco switch compatibility. 2) Added new Database updating options, to include a 1 day Update Period as well, as an Always Create New Entry option. Version 12.27.11 (released 09/28/2020) ----------------------------------- 1) Added Cisco switch compatibility. Version 12.27.10 (released 09/25/2020) ----------------------------------- 1) Fix for old method of barcode-scanning serial numbers into the physical interface slots. 2) Fixed some problems with Ingram integration. 3) Enhancements to switch erasure to improve automation from various start states. Version 12.27.9 (released 09/25/2020) ----------------------------------- 1) Fixed some problems with Ingram integration. Version 12.27.8 (released 09/21/2020) ----------------------------------- 1) Fixed a right-click over an empty drive slot crash in Physical interface. 2) Removed database component uploads for SystemErase mode at this time, as it was causing an unexplained crash. It may return in the future. 3) xhash values are always supplied when in syserase mode as xcloud integration is free with syserase. 4) user_fields.usr is now hardcoded when in syserase mode so that Activation Key, JobID and such always get uploaded to xcloud. Version 12.27.6 (released 09/16/2020) ----------------------------------- 1) Added more room to EPS_MYSQL_FindLatestEntry function for error messages to eliminate a crash that could happen when database problems occur. 2) Fixed a Debug logging problem with Battery Health in the System Summary segment. This could conceivably cause a string variable overflow. 3) In some scenarios w/ corrupt file systems, log files can vanish. A fix for this has been in place to recover a usable (if sparse) log for a long time. However, if the folder that the log file was in vanished, the recreated log will not able to be written. StartLog now tests for writeability, and on error, recreates the proper directory structure first. Version 12.27.5 (released 09/11/2020) ----------------------------------- 1) WinPE boots should now always near-maximize the erasure window, leaving the title bar of the boot loader visible for access. 2) Additional Cisco Access Point support added. Version 12.27.4 (released 09/11/2020) ----------------------------------- 1) Drive OnePage reporting HTML cleaned up that may fix some 64 bit HTML conversion. 2) Drive OnePage reporting now does cleanup before allowing other threads/drives to load theirs so there is no possibility of cleanup after log loading. 3) Added a mechanism to allow system tables to receive UserField information for database upload. 4) Consolidated further system-database uploads to call a single function to make it easier to add new functionality. 5) Changed EPS_MYSQL_UpdateEntry to skip system upload if the database template provided doesnt have a System Table. (older XCloud.ini file.) Version 12.27.3 (released 09/09/2020) ----------------------------------- 1) Added Wide_Vert_12x1 disk array template. Version 12.27.2 (released 09/03/2020) ----------------------------------- 1) EPS SMART Scaling health algorithm has been changed to reduce the weight of score-based problems on overall health. This will have the effect of raising the health score of many drives. You may want to revisit your grading scheme to raise health thresholds. 2) Tweaks to support additional Cisco AP devices. 3) Added a check after a Format to make sure the Format actually succeeded (non zero capacity) if Sense Data is not conclusive for some situations. A failed Format will result in a Failed erasure now, instead of potentially getting hung up on other functionality that doesnt realize the problem exists. 4) Added a flag to disable physical interface workspace saves until after the workspace is loaded, to mimic the xerase.ini flag introduced in 12.27.1. This does not appear to have any benefit in operation, but may possibly eliminate a problem that is difficult to observe. Version 12.27.1 (released 08/30/2020) ----------------------------------- 1) Removed redundant loadcustompasses and loadconfiguration calls from the init code since theyre now happening much earlier. 2) When using logins, it was possible for the xerase.ini file to get saved prior to being loaded properly, which could result in empty files. A new flag enables/disables the ability to save the xerase.ini file, so saving is no longer possible until it has been loaded. Version 12.27.7 (released 09/18/2020) ----------------------------------- 1) Drives that could not write seed data and cant have no write opcodes at the end of erasure are marked as a qualified Pass with a footnote. 2) Added an Opcode selection to the SlotString combo box so you can determine if a drive will be supporting WriteSames, etc. 3) Additional support for Cisco switches in ROMmon mode. Version 12.27.0 (released 08/19/2020) ----------------------------------- 1) Added additional PCI IDs to the lookup tables. 2) Xerase 12.27.0 and higher should use LCserver version 9.1.0 and higher to enable proper database updating. 3) New Database logic exists for regulating updates/vs overwrites. Now an Update Period is specified. Any database access to an entry where the date falls within that window will update entry. Runs outside of that window will add a new entry. This functionality requires that your database have a Date field. For System tables, Processing Date. For Erasure/Drive tables you need Erasure Start, Erasure End, or Processing Date. If this field doesnt exist, then the software will always update an entry. Version 12.26.5 (released 08/07/2020) ----------------------------------- 1) Added a quick method to create a report based on the log files of currently detected drives, rather than navigating to a folder. This is not as full featured as other methods, and may never be. Version 12.26.4 (released 08/06/2020) ----------------------------------- 1) Now that User Logins happen before program start, the Database User login updating function is no longer necessary, and was causing heavy database use and drawing problems due to the function it was being done in. Version 12.26.3 (released 08/06/2020) ----------------------------------- 1) User Logins can now have a blank password if you just want the selection without typing/remembering. This is less secure, obviously. 2) Required User Logins now happen before selection of profiles, system condition window, and the main program. 3) Changed the maximization of System Interface methodology to be more in control of sizing/drawing. Version 12.26.2 (released 08/05/2020) ----------------------------------- 1) Set Location1 and Set Location2 context menu items are now threaded so that they will not lock up with the new Popup query code. 2) CPU full string now contains an @ symbol prior to the speed instead of being replaced with an _. This will look better in reporting, databases, etc, but may cause problems if someone is using perl/php/etc to parse CSV and XML files via script and those will need to be adjusted if so. 3) Makor upload of drive data without FormFactor information was junk data from a previous operation. This should now be empty. Version 12.26.1 (released 08/04/2020) ----------------------------------- 1) Iterate Qty field of Processors and Memory in case 2 processors gets collapsed to 1 entry. This would mean only a single processor in the Makor xml upload. Version 12.26.0 (released 07/31/2020) ----------------------------------- 1) Fixed a problem with EMC serial numbers if the WWN of the drive was not available. 2) Detect and display SMR and SMRHOST drives in the Drive String. SMRHOST drives will also trigger a Recycler Warning as these disks should not be sold to consumers even if theyre erasable in the software. (Sequential-only zones.) SMR drives are Device-Managed, so in theory should work for consumers, if slow when changing position on the media. 3) Detect drives (Hitachi enterprise) which can not use Write10/16 commands, Read10/16 commands work, and no known reason for it exists. These will trigger a Recycler Warning of NORMAL WRITES FAIL. As long as WriteSame commands work, the disk is erasable, but should not be sold to consumers as Windows will be able to do nothing with it. 4) PXE Xerase clients will now load the Operator string as set by LCserver on boot. This doesnt change Xerase permissions, etc. This is for reporting and database purposes. 5) Fixed automatic SCSI reformat/block size code when enabled post-busscan. 6) Added a 5 second Test Unit Ready loop prior to testing SCSI Reservations to deal with delayed-spinup drives causing Reservations detection/release to fail. 7) Added LCserver-to-XCloud database transactions. 8) Added Speed string to Memory devices for the newer Makor XML file format. 9) Removed single and double quotes from database values as it can interfere with SQL and MYSQL queries. 10) Added System Location 1 and 2 to the _Reports version of the query building function. 11) Removed NVMe rescan code due to lengthy delays caused by windows enumeration. 12) Enabled XCloud remote mode for standalone Xerase clients. 13) Mapping of System Location 1 and 2 to Drive Location 1 and 2 fields (if otherwise empty) was only happening on Restart, not on initial run. Version 12.25.10 (released 07/22/2020) ----------------------------------- 1) The virtual erasure methods were not mapping properly into the database, resulting in Unknown methods being uploaded. 2) Added System Location 1 and System Location 2 to Database mappings under system fields. Version 12.25.9 (released 07/23/2020) ----------------------------------- 1) Set Location Data window is now threaded so that it behaves properly with new code, and Blank entries are now allowed. 2) Disabled support for Self-Test and some other features when not using the EPS nvme low level driver. Microsofts interface does not support most of these features and will cause issues. 3) Accommodate Not Ready, In the process of becoming ready (02/04/01) for Find Opcodes, which wont allow WriteSame to work previously. Now untested opcodes are flagged, and will automatically retest in Prep to see if the drive is now ready. Version 12.25.8 (released 07/21/2020) ----------------------------------- 1) Added additional Dell ONIE switch support, including better logging/reports description. 2) Added Processing Date to System Fields in the Database configurator. Currently this is todays date, but may change in the future if/when delayed uploads of system information is possible. 3) Added Apple to the PCI strings list. 4) If a system serial number is empty, the software will create a 12 digit random serial number so that LCserver interactions will work properly. 5) Added automatic xhash table mapping to xcloud database to enable the use of this drive/system entry with XCloud service. 6) New code triggered by Write_After_BlockErase_Required seems to initiate an infinite loop if this flag was detected as set by a SCSI drive, resulting in repeated erasures until it crashes. This new code has been removed until it can be tested against actual drives, or more thoroughly simulated with various combinations. Version 12.25.7 (released 07/08/2020) ----------------------------------- 1) If using an Ultraportable, you will need to create c:/XERASwin/config/Detect_CF.txt to enable license detection. Type the word ultraportable into the text file and save it. 2) user_field data with a name that exceeds 24 characters could cause variable corruption, which was manifesting as very strange window sizing and placing problems. 3) Detected LUN erasures using Charges, where the LUN capacity exceeds 12 TB, will now use 1 Charge per 4 TB, rounded up. 4) Intel often takes a shortcut on their drives or HBAs resulting in the same WWN on all detected drives of that type. This can cause issues with Xerase when we want to use WWN as a placeholder for a generated Serial Number. Known bogus WWNs are now zerod out, and the randomization values are now much longer to reduce the likelyhood of mistakenly loading a drive log from a different unit in a PXE environment. Version 12.25.6 (released 07/07/2020) ----------------------------------- 1) Removed some debugging logging messages from Listen() that should have only been present on the Linux build. 2) Health grading Seek Adjustment is now always 0 for SSD and NVMe drives, as the low access times are so small it opens up the very real possibilities of lowering grades for a fraction of a millisecond difference. 3) Changed ExecuteProgram call to pass process info even before a window is created. Version 12.25.5 (released 07/02/2020) ----------------------------------- 1) Made Get_WMIC processing code handle widechar strings better. Version 12.25.4 (released 07/02/2020) ----------------------------------- 1) Fixed special case licensing for certain corporate customers. 2) Added View Log (previous/logs_backup) context menu if an appropriate serial number is found there. A copy will be made there in the case that a Purge fails and it gets re-run as a Clear instead. This lets you look at the Purge erasure. 3) Changed SCSI Sanitize logic so that failed opcode always fails the erasure immediately, rather than potentially looking at the results to determine if it worked or not. 4) Changed maxfonts to MAX_REPORT_FONTS instead of the technically incorrect MAX_SCALED_FONTS value. Should not change anything as the correct font should be found before that value. Version 12.25.3 (released 06/29/2020) ----------------------------------- 1) Extended the lifespan of files in Temp to 2 weeks, up from 1 week. 2) Fixed a Resume problem for NIST 800-88 rev1 Clear (1x) and (3x) 3) Fixed a Resume problem introduced in 12.24.0 4) Some odd sizing things happening on certain user systems when switching to physical interface mode. Removing changing size based on List vs Physical workspace. Version 12.25.2 (released 06/24/2020) ----------------------------------- 1) Fixed a bug with new licensing code on interacting with the old WG type licensing. Version 12.25.1 (released 06/24/2020) ----------------------------------- 1) Fixed method preview in drive status to display even if a Required Userfield (with no value) is present. R) is now used instead of R - to make it easier to differentiate between the method part of the string and the Required flag. 2) Added UI feedback for erasure method chooser in the scenario where Purges are not supported, but the software will FAIL or ABORT the drive instead of dropping to a Clear Version 12.25.0 (released 06/23/2020) ----------------------------------- 1) Added Celeron cpu model parsing. 2) Updated the licensing logic to clean up which licenses are required for specific jobs. Mobile, switches, and NVMe Format specifically need XELTwin licenses for erasure. 3) Cloud_Direct_Database_Disable variable in EPSDB_ValidateCloud is unsetting CloudLicenseAvailable. 4) Added the means to turn on/off gathering ownership information from a PXE booted systems registry. This will default to OFF. 5) Added additional UI feedback for Prep stages 6) The Purge to Clear re-erase action now finalizes the Purge failure and moved the file into C:/XERASwin/logs_backup before restarting with the Clear. This will allow you to look at the Purge process to determine what may have went wrong, and give you the option of substituting the Purge log into a report instead. 7) Now possible to save the Purge: Action if Purge Fails settings under NIST. 8) Fixed a bug whereby usb sticks labeled EPS_BOOT were not being discarded on insertion. 9) Added a 5 second delay to GetNewStats() which is called post format/sanitize/secure erase to allow the drive/windows time to pull themselves together. Not normally needed, but certain drives/hbas might benefit? 10) If you right click on the devicelist border, or whitespace within the list, then a popup menu is available for the Required Userfields Panel. If launched in this mode, the value will always apply to the next inserted drive, as long as the Panel is still open. If you close the Panel this behavior ends. 11) DeviceList can now also use the Required Userfields panel. User feedback on list slots is minimal, but the paenl window tells you which drive SN it will be applying to. 12) Dell Poweredge R740xd is returning a SKU in a strange format that is not parsed properly. Within that string it says NotProvided. For NotProvided SKUs we now empty the string for better usability and compatibility with various other components of the software. 13) Required Userfields Panel will save values to the slot if a drive has not yet been inserted there. On drive detection in that slot, the values will be copied to the drive. 14) New Required Userfields Panel has been added to the physical interface. If triggered, a persistent floating panel is populated with Userfields marked as REQUIRED. Selecting a slot (blue outline) will update the control with that slots value. Enter/Tab will advance to the next value. Enter on the final value will Accept these values, save to the slot/device and advance the selection to the next slot. 15) AdvancedQuery functionality has been rewritten to accommodate up to 6 values (userfields normally) simultaneously. 16) Protection Enabled/Type has been combined into a Type 1/Type 2/Type 3 string for easier reading. 17) Modified PROT_Enabled code to only display bit 1 rather than the whole byte, and PROT_Type should be discarding the upper nibble just in case it ever starts getting used. Version 12.24.0 (released 06/02/2020) ----------------------------------- 1) Exposed a customization that allows you to change the ERP filename and flags used for Makor specifically. Previous modification required editing the ini and pxe files by hand. 2) Post-Format, check the capacity that is returned after GetNewStats(). If 0, then fail the drive, as all subsequent operations are meaningless and might lock up in using the low level interfaces. 3) Similarly to LoadDriveLogs change for user fields, the DeviceList will do the same thing if displaying a User Field. 4) LoadDriveLogs now strips out filename pathing and type when using mapping of a User Field value. This is for report aesthetics. The Name will be the filename only. 5) GenerateOnePageReport now reloads the template specifically so that if LayoutTemplate had landscape mode or a different page size the one page will still render correctly at the full size. 6) Modified OnePage generation code to specifically use AutoReport_Template variable as opposed to LayoutTemplate variable, which is for manually creating reports. Based on the logic, certain settings configurations could have two different report creations happening simultaneously, which may get rid of the html in between file and cause issues. 7) Fixed a fail-safe which prevented people from switching methods mid-stream without using the Restart. Functionality restored, which forces a resume on the same method that was originally started unless the Restart Erasures was checked. 8) Added warnings for PERC/LSI Luns being detected while in Hybrid or Physical modes. This indicates that something went wrong and should be investigated. 9) Cleaned up the Recycler Warning code to make the physical interface look nicer. 10) Added code to flag bad Serial Numbers in the device list even if Recycler mode is disabled. This should help users identify drives that are having issues so that it can be corrected, or the drives removed. 11) No Opcode Recycler Warning now only triggers if the drive has a capacity (ie. not format corrupt.) 12) Opal Locked now explicitly checked in Recycler warnings rather than it being implied. 13) Recycler Warnings for 0 capacity now only apply for ATA drives, on the assumption that SCSI drives can probably reformat to fix this issue. 14) Added DoD 5220.22-M 3X Sanitize, 5X, 7X, and new HMG wipe definitions (SystemErase platform) to Automethod report generating methods. 15) Added Generate-and-Display option to Customize->Reports, which will autogenerate at the end and then display it in a PDF viewer. Normal operation creates it, but does not show it. 16) Moved EndOfErasureState into EndOfErasureRoutines so that the device doesnt get set to STATE_COMPLETE until after a post-erasure Health check completes. This prevents early reporting and popups to copy logs. 17) Made modifications to integrate into the SystemErase cloud framework, including Pre-erasure Burn-in-test and activation key support. 18) Fixed a bug for generating ERP Device XML files when Health was not run, which could crash. 19) Reorganized serial number code so that bogus WMIC serial numbers arent truncated and used, which can cause multiple drives to all have the same fake serial number. Instead, this should be detected and a WWN_ or SN_ serial number will be generated for this device, which should be unique. 20) OFA NVME drives will now do normal SCSI inquiry, etc if the serial number is still blank. 21) MDrv_ logs now set the drive state to STATE_DEAD so that it doesnt seem like a drive is present/Passed. MDrv_ drives also display No Drive message for status to make it more obvious on System Interface displays. 22) NVME Format is no longer considered a Clear method and is reserved for Purge only. 23) Found a bug that was causing constant Debug_XERAS.txt backups after 30 seconds of Xerase running. This manifested as Bootable USB sticks continuously writing while Xerase was running and caused the improper removal messages on reinserting into a host windows system. 24) Added NVMe Format Crypto flags to ChooseErasureMethod_base. Right now, will do Format-Crypto if supported, and Format-BlockErase if not. Not sure if drives can support both at the same time. 25) Added additional Intel PCIIDs to our lookup tables to accommodate newer hardware. 26) For those that do not care whether a drive is erased via Purge or Clear methods, a new NIST configuration has been added. Purge: Action if Purge fails. The default is to rerun the drive using the NIST 800-88 rev1 Clear method. If this isnt desired, switch to Fail. 27) Added a post-erasure Prompt to allow the user to Shutdown or Reboot the system, rather than happening automatically or not at all. 28) Default WriteSame transfer size reduced to 0x1000 blocks from 0x3000 to speed up Prevalidate testing for slow emulation on ATA drives. 29) GetReportString updated to make sure that strings are always passed in correctly before use. 30) Legacy support for IP Master/Client remote control has been removef rom the code. 31) Added support for Switch Purge methods in select models. 32) Fixed an ErasurePlan logging bug when Full Verify flag was enabled. 33) Modified the PSID application code to allow PSID assignment even if the drive isnt currently locked. 34) Numerous small changes in many files to allow Linux compilation. 35) Cleaned up leftover isMacBook special processing and structures. 36) Fixed a problem with Market queries decrementing too many licenses... decrementing AssetRequests for each asset. Example: 4 assets to be queried, 3 of those were successful, total decrement as 12 instead of 3. 37) Fixed a problem with Market queries decrementing an XELTwin license instead of XEBITwin license, and updated logging to accurately reflect actual license types. 38) Fixed a problem with updating license counts in the title bar and the List output found in the Debug log when using cloud licensing with Xerase. Version 12.23.2 (released 03/20/2020) ----------------------------------- 1) Updated CreateDeviceXML() to add enough information to create a reasonable facsimile of a drive one-page report. 2) Fixed Prevalidate to return Good status when using the new read-test-only code. This was working post-sanitize, but not if running Verification/Diagnostic. Version 12.23.1 (released 03/19/2020) ----------------------------------- 1) Strings SN from ATA devices were flipping the byte order as it typical for ATA device strings, but this caused it to have a different serial number than the data returned by SCSI Inquiry and ATA Identify commands. This byte ordering has been removed from the Strings SN code, as this data appears to be strictured linearly. 2) STATE_RUNNING_FAILED now has a distinct color to differentiate it from STATE_FAILED, so that we can more distinguish between the two. The STATE_RUNNING_FAILED color is a light brown color. This will transition to the normal maroon of STATE_FAILED when the logs are written. 3) Have seen scenarios where a failed device can get a removal message before finalizing the logs/ending the erasure, resulting in partial logs. Have changed some of those scenarios to use STATE_RUNNING_FAILED instead of STATE_FAILED so that the program knows the device is not yet done, and it shouldnt be removed from the interface (give the Offline code a chance to wrap things up.) 4) Removed EPS OFA NVME device removal hack as it is no longer neccessary. 5) Removed the Capacity Problem (too low) failure reason from the software to allow erasure of small SD cards. This check was put in place to catch hardware compatibility problems 15 years ago and is probably not needed today. Version 12.23.0 (released 03/16/2020) ----------------------------------- 1) Fixed a problem with IP address detection loop when not actually connected to a network. Previously it would go into an infinite loop. This will no longer happen. 2) Built-in battery test for Debug_XERAS.txt file is now using the BatteryPassThreshhold variable instead of it being hardcoded to 60%. Makor and Reports were already using this value. This will also eliminate a battery failure warning popup. 3) Fixed timeout parameter in custom6_by_handle to correctly by change from milliseconds to seconds. 4) Added SS7000 array template (DataDirect Networks SS7000), which is a 12x5 array of drives with a blank separating it horizontally. 5) Software can now handles arrays to 100 slots, up from 48 maximum. 6) Removed serial number recheck introduced in 12.22.18 refreshdevicehandle function 7) Removed the older NetworkControl functionality which was support for a no longer available remote control client for local networking. 8) New Customize menu to set SystemName, Location1, and Location2. This is used in conjunction with EPScloud access to keep track of different stations. As a result, AssetTag is no longer automatically being used if set, cut can be set up via Customize->Program Settings-> 9) Find non-loopback IP has been reorganized to move the gethostname function to the inside of the while loop. 10) Reports of Micron SSD drives on storahci controller issuing BlockErase, but taking 9 hours to eventually pass. Reorganizing the wait logic for this scenario to merge the previous lsi code with the previous ahci read loop so that the ahci has a timeout, etc. Read commands are now issued to a clone" drive, which will return good when the Sanitize command is over, unlike the shared handle/buffer version which was failing for no discernable reason. Version 12.22.18 (released 03/04/2020) ----------------------------------- 1) Removing new Handle refresh code in prep for now as it seems to be causing issues. May be returned after more testing with more of the obscure scenarios (Hybrid, Ciss, etc) Version 12.22.16 (released 02/26/2020) ----------------------------------- 1) Modified the NIST menu Overwrite if Random Data after Crypto to apply to all Purge/Clear methods that could conceivably perform a Crypto scramble rather than only SANITIZE_CRYPTO. This includes Secure Erase, as some Samsung FDE drives are performing a Crypto scramble as their implementation of SE and it can cause issues for verification. Version 12.22.15 (released 02/26/2020) ----------------------------------- 1) RefreshDeviceHandle calls now pass option 2 rather than option 3 for most scenarios. This shouldnt change most situations, as special override code makes them almost certainly use different options altogether. 2) All calls to RefreshDeviceHandle now also check to make sure that the serial number hasnt changed. If it has, then the erasure is aborted immediately so that no lasting logging problems occur. Exit, rescan everything to see if you can clear the problem. 3) Added call to RefreshDeviceHandle at top of BatchSetup just in case there has been some unknown handle/physical disk adjustments in Windows/HBA driver behind-the-scenes. Version 12.22.14 (released 02/25/2020) ----------------------------------- 1) Updated LicXfer program to allow multiple new-slot transfers to happen in the same boot. Version 12.22.13 (released 02/23/2020) ----------------------------------- 1) Fixed drives failing out of a writing retry loop. Version 12.22.12 (released 02/21/2020) ----------------------------------- 1) Fixed a bug in the report generating function that wasnt allowing non-standard erasure text files to be used. Version 12.22.11 (released 02/19/2020) ----------------------------------- 1) Added code to strip returns and extra spaces from the end of an ERP method request so that ERP mapping works properly. Version 12.22.10 (released 02/19/2020) ----------------------------------- 1) Added an explicit call to load the MethodMap file on program startup to make sure the ERP mappings are available when needed. 2) Changed some FillInquiry logic so that NVMe serial numbers will not be overridden by the inferior WMIC serial number. Version 12.22.9 (released 02/13/2020) ----------------------------------- 1) As with Destroy, software has been updated so that if an erasure method with the words Witnessed Destruction is in the title, the software will fail immediately with the Reason set to Witnessed Destruction" 2) Software has been updated so that if an erasure method with the word Destroy is in the title, the software will fail immediately with the Reason set to Will be Destroyed." No health checks or other operations will happen. See logs for confirmation. Version 12.22.8 (released 02/14/2020) ----------------------------------- 1) LicXfer app now guards against putting too many licenses on a dongle, causing negative values. 2) Fixed some inconsistency with Re-prompting for log paths. 3) Erasure Method/Rule selection window (Wrench) has been rearranged to make it more vertically compact. This should allow the window to remain usable on virtual screen sizes of 640x480. 4) SSD method override to Purge from ERP Get Instructions has been removed to make room for more complex interactions. ERP software is expected to be smarter about what they send now. Version 12.22.7 (released 02/13/2020) ----------------------------------- 1) When Xerase relaunches DiskErase after a crash, it passed a flag to the launching thread to indicate that Prompts should not be queried. 2) Moved the new Original Product Code and related elements inside the System tag for Makor files. Version 12.22.6 (released 02/12/2020) ----------------------------------- 1) Updated Mac lookup tables to provide additional information on specific Mac models, such as Display Size, Chassis Model and Order Number. This will facilitate more accurate Marketplace lookups. 2) Fixed Switch Clear routines for rediscovering Cisco switches post-reboot. 3) HD Sentinel health score calculations have removed Smart ID 7 (Seek Error Rate) as the actual HD Sentinel program doesnt seem to be using it consistently (or at all?) for their scoring. Version 12.22.5 (released 02/11/2020) ----------------------------------- 1) Disabled grade file saves from Grading window callbacks after the Grade-filename-change is triggered. This should eliminate a race condition for filling up controls before the callback for that control triggers a save, and be better behavior regardless. 2) On assigning a grade file as the default, grade files will be reloaded so that shutting down the program and restarting shouldnt be necessary. 3) If no grade file saved in the log, zero out the drive gradefile that gets saved into the structure during the Recycler test so that changes will take effect. 4) Reload grade file to use out of the drive log. 5) Streamlined grade-load logic to make it more consistent and predictable, including zeroing out the gradefile to use on erasure restart so that it can pick up changes. Version 12.22.4 (released 02/06/2020) ----------------------------------- 1) Fixed a RazorERP erasure-status upload problem for PXE clients. The XML was failing a copy to the LCserver override folder, so no file was available to push. Version 12.22.3 (released 02/05/2020) ----------------------------------- 1) Recycler Warning message now changed to Recycler (message) where Message is the reason for the warning. This provides better feedback, especially in List mode where the second line isnt available. 2) Fixed the Force-Fail mechanism not always retaining the Reason, such as Recycler Mode High-Glist. 3) Recycler mode auto-fail was causing PASS status, rather than FAIL as it should have. Version 12.22.2 (released 01/30/2020) ----------------------------------- 1) Added switch erasure support for additional models. 2) Fixed some serial polling routines for Switch Erasure to make them more reliable. 3) Fixed loading the Operator field out of log files for Report and Label purposes. 4) Fixed a health and grading log issue where a non-present SMART ID testing against RAW0 would display as 65535 instead of the more readable -1 in the log. 5) Fixed a crash that could happen when using an erasure method with a Title longer than 31 characters. Either way, if using custom passes the user should try to stay less than 31 as its possible there are other areas of the code that might also have problems with this scenario. 6) Fixed a bug where the default Health Score type was remaining Legacy instead of being set to the new Scalable. 7) Erase-on-startup times increased from 3 seconds to 5 seconds for ON value to allow a little more time for database/erp system processing to finish before starting drives. Each successive increment in that setting adds 5 seconds. (+5s/+10s/+15s) Version 12.22.1 (released 01/21/2020) ----------------------------------- 1) Fixed a bug where read buffer wasnt loaded prior to detecting WC random. this was causing verify failures. 2) Fixed a bug where ERP configuration window could not be opened if ERP Method Mapping was opened first. Version 12.22.0 (released 01/21/2020) ----------------------------------- 1) Added many Intel PCI ID strings to make it easier to locate important missing drivers. 2) Copy Files to USB functionality has been updated to be much more verbose for number of files to copy and what actually happened. 3) Including new grading sample files that make a minimum average drive price part of the grading. 4) Added a new menu under Tools named Recover Logs From Drive Stamp. This allows you to create a set of imperfect logs based on the end-state and whatever information is stored in the stamp for Reporting purposed. It does not have the level of detail that actual drive logs do so should be considered an emergency recovery process rather than an operational mechanic. 5) Tied GUI buttons in Erasure Method Mapping to the code functions. 6) Full verification support for WhiteCanyon(tm) random patterns. Tested in Full Verify, NIST Slice Verify and Spot Verify modes. Spot Verify will show + WC" next to the blocks to indicate the type of validation it was doing. 7) Fixed a Force-Failure problem when referencing a detected/inserted drive that wasnt also in STATE_FAILED causing a Passed drive log. 8) Media Viewer will now display a WhiteCanyon(tm) self-validating Random patterns hash value in light green if the entire block is good, and red if the first 16 bytes are good but theres a problem further into the block. All other scenarios will display as White/Red as normal. 9) Glist display/logging for SATA drives is no longer simply ID 5 (Reallocated Sector Count), but also adds ID 197 (Pending Bad Sector Count). This doesnt change grading, merely display and reporting. 10) Replaced memcmp with Verify_Buffer in Verify_Full_Range. This will allow better accuracy in detailing data compare problems and mimics the new VerifyWhiteCanyon_Buffer function. 11) HP CISS drives are no longer being asked for Informational Exception mode page health information, as this may cause the drive to go offline. 12) Premium Drive Grading now allows the user to select from the 4 available Health algorithms. Options are EPS Legacy, EPS Scalable, HD Sentinel and HD Sentinel Strict. EPS Scalable will be the new default as it handles certain scenarios better then Legacy (drives misreporting Current/Worst values) and also applies some degradation of scores for Power on Hours, etc. 13) For consistency, Uncorrectable Errors in ATA drives have been removed from the Virtual SMART ID 505. Many drives will mirror an Uncorrectable with Pending also, making this field increase faster than it should for a single bad block. 14) Several device[idx]->ENDSCR = 1 commented out as no longer needed or desirable. May be related to a post-erasure healthcheck not running. 15) Identified and fixed an instance where the ENDSCR flag was set, which would cause WriteStamps to fail being written. 16) ATA writesame now aborts PreValidate speed testing early if running slow like we did with SCSI writesame (12.21.3) This will speed up large-batch prevalidates considerably. 17) Modified the SMART ID name lookup function to better deal with overloaded SMART IDs for vendor-specific usage. 18) Added SSD Life Left health score adjustments to all scoring schemes. 19) Added two health-score schemes based on HD Sentinel published algorithm. This is an optional choice that is available in the Grading window which ignores drive Score values for an attribute and instead computes a score based on the Raw0 data of various parameters. 20) Added IDR_NONFAILSTATE check to manual write, full verify as well as IO_to_Points routines used for seeding and spot verify. 21) Reverted IDR_GOODSTATE change implemented in 12.21.2 as it was causing other issues when drives hit the FAILED state but further IO was still needed, such as a Write Stamp for a failed drive. 22) Added Grade and AssetTag information to the drive Erasure Stamp. 23) Changed SCSI SMART function calls to be consistent with ATA and NVME versions of the functions. This should not change functionality at all. Version 12.21.4 (released 12/27/2019) ----------------------------------- 1) Stock ATA and SCSI grading Samples have increase the Power-on-hours failure times for both SSD and HDD, as well as bumping up Grade B reallocated sectors to less than 41. 2) Fixed a problem with grading vs a not-gathered value (power on hours) with a FAIL action result... normally you would want a TRUE result to ignore this, but with the FAIL action you want the opposite so that a not-detected value doesnt cause the failure. 3) Fixed a problem with the Confirm System Info window Version 12.21.3 (released 12/27/2019) ----------------------------------- 1) If set to Wipe Status" and a given drive has no text to display for status (new idle), the expected erasure method/implementation will be displayed for that drive as if you were selecting "Erasure Method". This will provide a preview of what erasure will be implemented based on what the drive supports and the current NIST settings. 2) Added the following keys to sysinfo XML and System Reports... Original_System_OS, Original_ProductID, Original_Product_Key, Original_Organization. Also now filling out Display Resolution and Estimated Display Size. 3) Fixed sysinfo XML parsing so that it will always hit every device entry. This was causing optical disks to be skipped if they came after the Video Adapter in the list, for example. 4) Fixed EPS_NormalizeString to not sprint onto itself in the case where there was no prefix. 5) Fixed the Report Generator window column showing Start Date instead of Duration. 6) Fixed pathing for XERASE report templates in Interface->Report Options->Generate Report in the scenario where XERAS_override exists on the same machine as an XERAS install. 7) WriteSames that are less than 10 MB/s (bad emulation) will now abort early instead of doing the whole span very slowly. For a single drive its not a big deal, but when starting a batch of 400 the additional time adds up. Version 12.21.2 (released 12/18/2019) ----------------------------------- 1) IsDeviceReady IDR_GOODSTATE now always checks for failed state also, without needing the specific IDR_NOTFAILEDSTATE flag added. This should eliminate a problem with a failed state that wont end the erasure. 2) Fix NVMe flag logging bug 3) FindPriorLog has been modified to match long serial number and short serial number names, as well as integrating elogs more gracefully. This will allow matching of drives to logs even if the configuration settings are different. 4) Seed/Spot verify loop modified to wait longer between re-reads of bad data to attempt to fix some odd behavior on certain models of older SAS drives. 5) New combo box status value of Erasure Method... either the current one, or the expected one (based on current NIST values and what the drives allow) Version 12.21.1 (released 12/10/2019) ----------------------------------- 1) DeleteOldFiles for pxe files removed at and of erasure... not exactly sure what it was intended to accomplish as there shouldnt be any pxe files in the directly it was accessing. 2) WriteStamp activity is now logged to both the Debug and drive erasure log, and indicates success/failure as well as the LBA it was issued to. 3) On Imaging without erasure, set drive states to STATE_COMPLETE even though it didnt do anything... this lets the user know that things are happening during a pause while imaging is getting set up. 4) Added GUI feedback when doing system database uploads on start to make it clearer where delays/lockups are happening. Version 12.21.0 (released 12/08/2019) ----------------------------------- 1) Fixed a logic bug in the erasure-method selection code when using the legacy Secure Auto method. Previously ATA drives that were Secure Locked would erroneously attempt to SCSI Format (and fail.) 2) Added more frequent backups of log files to the override folder so that early crashes can not lose charges and Purge erasures get log backups before the erasure is complete. 3) Xerase will timesync with LCserver properly now for setting internal clocks. This will cause timestamps to be consistant. This syncing does not neccessarily mean that network log copies (XERAS_override) will show file creation/access times that are the same due to the way Microsoft deals with UTC, etc. 4) Changed exit-erasure code for write errors to make sure it Fails instead of Aborts. 5) Updated the TimeString function to utilize GetLocalTime (Windows) function instead of the localtime (c) call, which isnt adjusting to changing time zones properly. 6) Added back No ERP mode so that its possible to disable ERP access entirely by making No ERP the default. 7) Added Abort-After-SecureErase mode 3, which will cause the program to abort the interface/waiting process immediately after issuing the command. The intent is to let the drive erase itself with the software doing nothing at all. After a sufficient period of time, the system can be power cycled to reset the storage device to functionality then resumed to finish verification. This does not currently apply to NVME Formats, which treats it like mode 2. 8) Fixed a physical interface menuing crash when interacting with an empty slot. 9) Collect SATA generation data from the drive, which indicates its signaling speed SATA3 = 6.0 Gb/s, SATA2 = 3 Gb/s, SATA is 1.5 Gb/s or indeterminate. This is now part of the DriveType string and the Connection value. 10) NVMe is now only on Connection type, not drive type. NVMe drives will now display as NVMe SSD. Version 12.20.11 (released 11/26/2019) ----------------------------------- 1) Added additional Intel video model numbers to the PCI lookup table as well as fleshed out more of the non-driver PCIIDs to make it easier to look for missing HBAs and Network drivers. 2) Fixed bug in call to IsDevReady from Model_Flag_Override which was causing device[0] to not evaluate set certain flags. 3) Disabled ATA_GetSense logging.. this is for EPS debugging. Version 12.20.10 (released 11/22/2019) ----------------------------------- 1) Changed drive flag printing to look at NVMe flag instead of OFA driver being used. 2) Added logic to specifically enable NVMe flag if not present in Sanitize_OS_Override and also to specifically disable NVME Crypto/Blockerase/Override when not on the OFA driver. Version 12.20.9 (released 11/20/2019) ----------------------------------- 1) Improved code for removing Persistent Reservations on SCSI drives. 2) Added SSD/HDD power on hour failures to ATA/SCSI/NVME grading samples to illustrate how to differentiate grading between SSD and HDD drives. The fail-over points for SSD POH is set to 60k hours and for HDD is set to 20k hours. No one should be using the samples directly... save any changes as a new name! 3) Added SSD DRIVE TYPE to the virtual SMART table (ID 510). For an SSD, NVMe, or Hybrid drive with Treat-as-ssd enabled this SCORE and RAW value will be 100. HDDs will be 0. You can test for SSD buy creating a grade which looks for SCORE > 99, and test for HDD by using SCORE < 100 (or 1.) See ATA_Grade_Sample for creating a pre-fail condition for SSD and HDDs independantly based on Power on Hours. 4) Added Location1 and Location2 fields to the Device XML file for ERPs. Generally not filled out, but if used will have additional data (enclosure asset ID, etc.) 5) Removed an ifdef for XERASE dealing with RazorERP in function ERP_SendDeviceStatus(). Assume that it was intended to be removed when the process was functional and it never happened? This may be necessary for LCserver to use Razor? 6) Custom ERP method can now trigger external programs to upload the DEVICE_XML files. 7) Device XML files used Parent is now properly listing the system Serial number rather than the drive serial number. 8) Added user feedback when entering licensing routine, so that the GUI shows Licensing rather than Prep Setup. This way, a lockup due to no license server, cloud connection issues, etc, will be more obvious. 9) Device XML files used for ERP have added FormFactor and Connection strings which mirror the DeviceType. Also added are Note which contains a single footnote from an EPS report, and ErasurePlan which documents how the erasure method will be implimented. Version 12.20.8 (released 11/14/2019) ----------------------------------- 1) Fixed a bug that could cause Aborted drives to indicate Failure incorrectly. 2) Right click over a non-running drive in the device list to select Remove This Drive from List option. This will discard a drive, and is one way to deal with duplicate serial numbers that cant be handled in a better way. 3) If a duplicate serial number is detected, they will be marked as Duplicate in erasure status before aborting the startup. Version 12.20.7 (released 11/08/2019) ----------------------------------- 1) Report generation always loads sysinfo xml files, regardless of the file name listed in the log files to accommodate previous filename problems. The XML should always be present, even when CSV or others are there as well. 2) sysinfo files referenced in the drive erasure log now ALWAYS refer to the .xml file, even if other files were generated after that in other formats. This is because the report generator can only parse xml files. Version 12.20.6 (released 11/07/2019) ----------------------------------- 1) Fixed a crash is 12.20.5 for Force Device log that wasnt previously noted. This would happen if right-clicking the drive to Force Fail it. 2) Operator is now always added to Force Device logs. 3) Drives will now show RESERVED as a status if Persistent Reservations are present and can not be removed by Xerase. These drives are very likely to fail erasure. 4) Added Reservation Release Preempt functionality that takes scope and type into account. Not clear if this deals with the problem. Version 12.20.5 (released 11/04/2019) ----------------------------------- 1) USB hubs have been removed from system reports. 2) In the PCI list, unknown" has been replaced by a blank. This makes it easier to read and determine what drivers are missing now that driver file and manufacturer columns exist. 3) Added extensive PCIID lookup tables to the software for Nvidia, AMD/ATI and Intel video adapters. This should allow us to identify the underlying video hardware in Windows PE even while using the stock Microsoft driver. Version 12.20.4 (released 10/28/2019) ----------------------------------- 1) Post-imaging shutdown/reboot now functions even if skipping the erasure step. 2) Autogenerate Reports now has its own template that gets used that is independent of the template used for building reports manually. 3) STATE_RUNNING_FAILED set more quickly after Bad state... not retrying! warning, which can happen on device removal. Setting FAILED immediately eliminates a timing issue that can occur if the device comes online before the code can step back up to set the FAILED state. Version 12.20.3 (released 10/14/2019) ----------------------------------- 1) No longer setting partition type via model file, so normal logic applies. 2) NVMe Sanitize and Self-Diagnostic now work if using the EPS version of the NVMe driver. Other NVMe drivers will disable this functionality in Sanitize_OS_override(). 3) Added ASSET_ID and CHASSIS_TYPE to the User Defined fields for reports. 4) System Interface View menu is now disabled unless in Windows PE mode. 5) Clean up bus probe code to reduce number of unneeded calls to adapters. Examples include not testing for ATA compatibility with NVMe drives, not tesing CSMI tunneling on AHCI drivers, etc. Version 12.20.2 (released 10/09/2019) ----------------------------------- 1) SCSI Write protection removal defaults have been disabled. 2) Detect Usable Capacity now allows the user to specify the size of the end-of-media testing region, as well as how much of that region to test before stopping. Most should leave the percentage at 100. The default testing region size is 1000 MB (1 GB.) 3) The GUI for changing the default Imaging parameters no longer include Use Model File for Imaging Scripts. This gui specifies the default. If a Model File exists and overrides the value, it will be used automatically. 4) DetectUsableCapacity Now shows better percent complete bars. 5) DetectUsableCapacity moved from Prep to the erasure thread so that all drives can do the test simultaneously instead of sequentially, which could add significant time to the startup with a lot of drives. Version 12.20.1 (released 10/08/2019) ----------------------------------- 1) EPS_MYSQL_SystemUpload created to allow system table uploads to database directly, rather than needing to pass through LCserver. (USB boot on the network.) 2) EPS_ProcessRemoteQuery moved to database_common.c so it can be used by xerase. 3) Changed DB_DeleteFieldMap to use db_field* instead of a static array to reduce stack requirements. 4) EPS_MYSQL_UpdateEntry updated to make sure that the drive index being passed in is legitimate before processing to avoid a crash. 5) Change made to OEM_GetValue to allow element names to duplicate header names. Version 12.20.0 (released 09/30/2019) ----------------------------------- 1) EPS OFA driver can do Health and Grading. Stornvme can not. 2) EPS OFA driver can now do NVMe format on the desktop install. WinPE based NVMe format may be enabled later. 3) stornvme drive parsing is now using the full NVMe spec to get at more data and be more consistant with the EPS OFA driver. 4) Test form-factor SCSI code on NVMe drive to see if it works? 5) Modified database upload code to allow USB-booted PE installations to upload to a connected database. Previously this was only working via License Server connection. 6) Added flags to allow reformatting with protection data and exposed this on the Resize Device menu. The entire Format function has been rewritten to be more modular and easier to follow, and fixes various flag bugs that were causing some of the early Format attempts to fail with PARAMETER INCORRECT. 7) FillCapacity now will not skip on TUR_NotReady flag being set. The data will be likely bad, but should see the media corrupt flag if applicable. 8) Write protection bands will not be flagged and/or removal attempted for drives marked as not supporting SCSI format. 9) SAS SSDs are now mapping endurance information to SMART ID 231 (SSD Life Left). Current SCSI grading is not yet testing against this value until we can verify it. 10) Xerase can now detect if a default program handler for CSV files has been installed. If so, the files will open using that program via the shell Open command, otherwise the file will be opened in Notepad. 11) ATA sample grade now uses Raw0 for Reallocated sector count grading and adds SSD Life Left (ID 231) for better handling of SSD health. Custom drive grading profiles should probably be modified similarly. 12) Because certain drives are now utilizing raw1 data for unknown purposes in SMART Reallocated Sector Count data, ATA drives now will only use raw0. This puts an upper limit of glist count at 65536, after which it will roll over. This shouldnt cause a practical problem as drives should really never get that high in the first place and still be otherwise functional. Using Raw0 only will allow these drives to not fail grading. 13) ReadErasureStamp now checking for null pointers on cptr2. Shouldnt ever happen though. 14) FillCapacity allocates the spare device rather than using a local device variable which may overflow the stack. 15) SES_CSMI_STP_Passthrough_With_Buffer reduced IOCtl_length variable by 8 due to compiler warning. 16) Reduced buffer sizes in SES_EnclosureStatusPage, UpdateEnclosureServicesDevice, GetEnclosureServicesSN to avoid stack overflows. SES_ConfigurationDiagnosticPage converted to a malloc buffer 17) Reworked the Grading window to accommodate NVME drives. Drive type being accessed is now via a combo box and displays only grading files of the appropriate type to choose from. 18) Fixed a problem with closing handles on deallocate device. 19) Added ASSET_ID and CHASSIS as valid path substitution tags for logging, etc. ASSET_ID is set via the System Info window that can be triggered to pop up on startup event. Chassis type is determined automatically, but can be edited in the System Info window. Version 12.19.6 (released 09/11/2019) ----------------------------------- 1) Operator Login required is now stored exclusively with login file, and not in the xerase.ini/PXE profile. This eliminates a problem that can cause a client to believe that it needs an operator login if a profile is updated from an LCserver that requires a login. Version 12.19.5 (released 09/10/2019) ----------------------------------- 1) Added a check before erasure to warn of drives that are pretty much guaranteed to fail erasure with reasons attached. (Currently, only drives that are Opal Locked.) This provides an opportunity to remove these drives from the batch and not get charged for the erasure attempt. 2) Fix for Razor ERP tftp upload in for better multithreading. 3) NVMe drives using the Microsoft StorNVMe driver that contain a dash will now truncate after a single post-dash numerical digit. This will allow logging and identification of certain Intel PCIe based NVMe drives. 4) Added Battery Grade to the Database upload queries. Previously this mapping was having no effect. 5) Added controls to customization Startup Events to set the Battery Life threshold for a PASS grade. Version 12.19.4 (released 09/03/2019) ----------------------------------- 1) Fixed a display bug making it appear that twice as many hardware-key charges were being used than actual. 2) Imaging to a drive with a size >2TB (for 512 byte blocks) or >16TB (for 4096 byte blocks) is now forcing GPT partitioning. 3) UEFI imaging is now forcing GPT partitioning. 4) Changed calls in report.c from ShellExecuteWrapper to OpenFileViewer. This will have the desirable effect of viewing CSV files in NOTEPAD. WinPE has no CSV extension handlers registered, so can not use ShellExecuteWrapper. This also eliminates launching Excel on desktop systems with it installed, which can take some time. To view in a spreadsheet format, youll need to manually open it in Windows or the program itself. 5) Added vendor identification for PCI vendor VEN_10EC as Realtek. 6) Add bcdboot flags for imaging to enable it to work properly on UEFI systems. 7) Added ability to look up CompanyIDs and folders from the cloud directly via an indexing database to avoid the need to download db_cloud_accounts.txt 8) Added calls to EPSDB_Cloud_Close in several licensing database calls to EPSDB_Cloud_Validate 9) Added detection of Web Gateways which demand authentication to the Cloud Licensing code. Whitelisting our site to bypass the authentication is the cleanest solution to the problem. 10) Updated EPS_OpenURL() to disable HTTPS attempts if HTTPS fails, but HTTP succeeds. This results in faster access and less log clutter. 11) ATA Self-Diagnostic is now considered a valid operation for low-level mega-raid drives. SCSI Self-Diagnostic is still disallowed as the HBA interrupts it. 12) Tweaked multi-line physical interface text to fit within the space better for large fonts. 13) Added Hybrid ATA string to Physical interface Device-Type combo selection to make it clearer what the drives really are. 14) Hybrid raid mode Merg function has fixed the low-level ATA flag. 15) Perc controllers do not seem to support JBOD mode and will not be allowed at this time. 16) Megaraid support now has a JBOD mode. IF IT WORKS on your controller, this is the BEST method of erasing physical disks attached to this controller. It has been tested on model MegaRaid model 9286-8e. Further tests will come. 17) Enabled ATA writesame through STORLIB controllers 18) Added more debugging info for MegaRAID autobreaking. 19) Adjusted Detect Unusable Capacity flags, as applied to NIST and Full Verification to restrict LBA ranges if full xfer Reads will cause a failure. 20) Modified Burn-in-test configuration to not allow Battery tests on anything but Laptop and Tablet chassis types. 21) BreakMegaRAID is being honored again, but the default is now 1, so mimics the current behavior. To ensure that previously written configuration files dont disable it (and thus require manual breaking) the xerase.ini key is renamed from BREAK_MEGA_RAID to BREAK_MEGARAID. This should only be disabled if the adapter reset code causes the controller to lock up! 22) Image extraction changed to specifically make partition 0 (System) the Active partition after all other operations have been accomplished. Some change in Diskpart for Win10 PE may have made this necessary. 23) Premium->Change Profile menu now selects the current profile on popup for better user feedback on the current state. 24) Premium->Change Profile menu now updates the interface display mode and redraws the screen when switching profiles. 25) Getting x64 vs x86 information from SYSTEM registry node now for purposes of imaging. 26) Added /Verify /CheckIntegrity to image capture flags. 27) Deselect items in Shortcuts if the LBA being viewed changes to make it clear that youre no longer looking at MAXLBA. 28) Added MAXLBA_USABLE to the Media Viewer window if applicable. 29) Rewrote Detect Unusable Capacity at End of Disk routines to more exactly mimic what will happen as the erasure routine approaches the end of the disk. This will hopefully catch some scenarios that currently do not trigger the code properly. 30) Added GUI controls for the Advanced customization of Opcode Probe, enabling/disabling specific Write/WriteSame configurations for newly discovered drives rather than trying to determine them itself. 31) Fixed native ATA WriteSame support. Version 12.19.3 (released 07/15/2019) ----------------------------------- 1) Disabled initial LoadConfiguration prior to choosing a profile so that a bad Rules file isnt created. This was solely being loaded so that parameters that control whether to do BIOS queries would be loaded. This is now always enabled instead. 2) SecureErase-Enhanced is now considered a valid Purge method for Hybrid drives which was previously excluded due to being in a grey area of not being a true HDD nor being an SSD. 3) Drives were not properly setting an ata flag during ChooseErasureMethod_base which was causing some of the logic to behave incorrectly. 4) Fixed crash caused by trying to access an adapter handle for a device that was no longer there. Version 12.19.2 (released 07/12/2019) ----------------------------------- 1) Compatibility update for a new Cisco Switch. Version 12.19.1 (released 07/12/2019) ----------------------------------- 1) Added file-download resiliency for HTTP downloads. Segment size is now 16K. Version 12.19.0 (released 07/09/2019) ----------------------------------- 1) Update Manager code changed to specifically download from HTTPS instead of HTTP and now downloads 512k per segment instead of 8k. 2) Changed partitioning for imaging to ensure that the recovery partition holding the WIM image is large enough to hold the image. This will allow Imaging from WIMs larger than 15 GB, or reduce the partition sizes (resulting in more space on the primary partition) if not needed. 3) Fixed some miscellaneous compiler warnings for situations that should never happen. 4) Changed IllegalCharacter() to also allow ! when the ALLOW_PERIODS is set. 5) Modified PXE booted behavior so that if a Rules.ini is present in the override folder it doesnt create one that limits erasure methods to the Defaults. To go along with the, modifying the Methods and Rules on the client will now ask if you want to save it to the Override Folder. 6) Removed a preceding space embedded in the capacity string which was causing a Razor import problem. 7) Fixed a problem with LCserver licensing that could allow licenses to go negative in the cloud. 8) Removed the MessageBox warning for failing to copy the Sysinfo file to the override folder for USB sticks. This prevents an unneccessary warning when people remove the USB stick to early in the erasure process. 9) Updated Get_WMIC_List() to create uniquely named files and leave them in Temp for debugging purposes. 10) Verified that Database uploads for the system happen at the end of the bus probe if no drives are found. 11) Updated initial license pulling from hardware keys to fix a problem introduced with the LC_GetAllUses function. 12) Existence of cloud.ini file no longer prohibits loading LCserver configuration values out of inetcfg.ini. cloud.ini is first read, and the license source (Hardware, cloud, LCserver) used to determine that behavior. 13) Systems booted without hard disks can not run erasures, so database info is never uploaded. This database code is now replicated in SaveForced_MissingDrive. 14) Tweaked CPU processing to process the strings of certain Core(TM) processors better. 15) Switch Erasure mode is added as a premium menu item. In this mode, serial COM ports connected to Cisco switches are queried and personalized data is erased. Logs are created and reports can be generated. Support for other switch models will be added in the future. 16) Write and Read caches are now tested and logged as Reasons so that drives that can not be enabled will have footnotes in the report. In addition, disabled caches will also eliminate applying Prevalidate speeds to the health score. It will NOT stop Grading specifically testing those virtual SMART values (508 and 509.) 17) Fixed long-standing bug with grade output/explanation in the drive log which could add an additional erroneous entry for a given grade description. 18) All code references to http: are replaced with https: to allow it to work better on certain restrictive VPNs. database calls should have neither http or https values. 19) Megaraid mode customization menu has been changed to reflect the preferred settings with Hybrid being the best, then Fast, then Slow for when there are reliability issues. 20) Write and Read speeds are now saved during the Prevalidate stage for further use during Health and Grading. Very bad speeds will degrade the Health Score. The definition of Very Bad may change over time and might vary depending on drive type as this is refined. 21) The Octane/Laptop/Desktop prevalidate override is now only in effect if the Write Speed exceeds 60 MB/s. This change allows us to test WriteSame speeds in a circumstance where the drive model is just really slow at Writes for no apparent reason. 22) Updated cloud logins to accurately report bad username and password entires instead of falling to the HTML code. 23) Text, XML and CSV Database reports are now properly parsing report entries and extracting and similar variables from ExtractDynamicDirectory. 24) Bogus non-WWN values (50xxx) from the enclosure services query will no longer be used as an identifier, as some ES chips are providing duplicates. The original SCSI WWN will be used instead. 25) Dropped current speed in physical interface and logs down to a single decimal place in precision for easier reading. 26) Media Viewer overhaul of the GUI to simplify the interface and make it more compact. The Bad Blocks list is now a list of shortcuts and can include multiple points of interest depending on the drive and process, including STAMP, LBA0, MAXLBA, MAXLBA_LUN, RULE_x_START and RULE_x_END as well as bad blocks. 27) Write pass speed calculation updates are changed from 1200 IOs to 2500 IOs. This larger sample size produces a more consistent speed from one calculation to the next. 28) Break Megaraid is improved to determine if any raid devices are currently configured, if so, break them, then restart the adapter and wait for it to come back online with a polling loop. This should eliminate the need to manually break the Raid set in the HBA bios. 29) Modified Hybrid Drive creation parameters to disable pdcache and turn off readahead caching. Write speeds are faster to he LUN and Full Verify no longer fails after BlockErase or Crypto. 30) Media Viewer adds a MAXLBA_LUN shortcut in the blocks list for Hybrid devices. This takes you to the last LBA that is mapped to the LUN device. The next block is the beginning of the Physical-Only access. 31) Megaraid Hybrid devices have been validated against Sanitize Crypto and Sanitize Blockerase functionality. These Purge functions will be allowed now on Hybrid drives. 32) System Interface now respects the RestartErasures flag in displaying the method that would be used. If not restarting, it will show the method that WAS used on the drive (cyan) and if restarting or not yet run will show the method that WILL be used (light green.) 33) ABORT_AFTER_SECURE_ERASE now has 3 values... 1 = Satadom only, 2 = all drives. This value is applied to all SecureErase/Format/Sanitize functions. It is designed to allow you to power cycle to device to reset it so that validation can happen. 34) Added LSI_ and CISS_ SCSIID types to make it more clear that were dealing with Physical mode devices at a glance. 35) Recompile of DiskErase to take advantage of start logic, drive flags, and update of HP CISS physical codes. 36) Created IsDevReady counterpart to IsDeviceReady which uses a device pointer instead of an index to the pointer array. This will allow us to slowly migrate the code to being less concerned about deallocations/etc which can cause crashes. This is used in limited placed for now until its been fully vetted. 37) Added Samsung NVMe adapter info to OverridePCIid function. 38) CISS adapters have now been tested against the Purge specification, Secure Erase, and Format commands. None of them work via the low level interface so theyve been disabled. NIST 800-88 rev1 Purge and Clear will now drop to doing write pass(es) on the disks. 39) FillCapacity 16 was failing on HP CISS adapters in Physical mode, resulting in UNAVAIL and (fmt) notations. This is fixed. 40) Updated ATA Secure Erase function to be able to interpret 15 bit erasure times when available instead of only 7 bit. 41) Charge status is reloaded from WriteStamps and can be seen in SCSIID field of the device list (if enabled) as a for visual feedback. 42) Added manufacturer information to the PCI device list which is not dependant on drivers being installed. This will make it easier to find missing drivers, etc. Version 12.18.3 (released 05/15/2019) ----------------------------------- 1) Fixed a problem with generating ERP XML files introduced in 12.18.1. 2) EMC SSD model 118032713 added to the model override file as a 3.5 FC SSD. Version 12.18.2 (released 05/15/2019) ----------------------------------- 1) Code for determining field sizes for the device list now only uses values if the Win32 API call was successful, and also applies max and minimum values to keep text drawing in check. Userfields flagged as being used, but not configured are skipped, freeing up additional space. 2) Megaraid Storlib devices and hybrid devices have their flags set so as to not do self-diagnostics which could lock up or cause other issues. Version 12.18.1 (released 05/14/2019) ----------------------------------- 1) Added a flag mechanism for Hybrid drives to ignore non-lun media for speed or if media access is problematic. There is not yet a way for the user to configure this. 2) Including a release sedutil. 3) Fixed a bug where Makor ERP users could not create System reports due to the system XML file being in the wrong XML format. 4) Removed date from CreateErasureDescription2 to make better use of the limited display space available. 5) Instead of simple testing for HBA_SCSI_STORLIB in custom10, etc, the new function MR_physicalcommand is called, which makes the determination whether a given SCSI cdb should be issued via the LUN interface or the low-level interface. 6) Removed byte1 flags from IssueCommand designed to bypass Write-Enabled drives. It appears to be doing more harm than good, in forcing certain opcodes to fail. 7) Updated end-of-rescan device summary to be clearer and provide drive serial numbers HBA type number. 8) Health checks will now key off of the low level drive type (ata vs scsi) in a Hybrid scenario to perform the appropriate SMART testing. 9) Megaraid Hybrid drives are tested at startup to determine if the non-LUN areas are writable. If not, the writable region will exclude the non-LUN area at the end of the disk and a note will be added to the logs/reports to reflect that. 10) Megaraid Hybrid drives are no longer forced to use the physical access modes for single-block IO (see MTSDIO) 11) Added an Erasure_NOVERIFICATION flag which disables seeding, seed verification, and verification passes including first/last hashes. This is considered an emergency measure and should NOT be used as standard operating procedure. Verification of the erasure is for your protection! 12) HP CISS connected SCSI drives now have an assumed type of SAS. 13) SATA drives are now querying the ATA Self-Test Supported bit in the inquiry data. This is logged and will dictate whether self-diagnostic tests are allowed to run. 14) Dell Express Flash NVMe devices were returning a serial number that includes Dell at the end of it. This is now being removed. The Mfg field will also strip out the first part of the serial number which was being tacked in due to our algorithm. 15) Megaraid Hybrid drives are now shown as in the SCSI ID format Hy1_4 (for adapter 1, tid 4) rather than MHybrid_1_4 to reduce the amount of space needed in the device list. Version 12.18.0 (released 05/06/2019) ----------------------------------- 1) GetNewStats now zeross out the current_xfer so that RefreshOpcodeCapacity can get valid buffer sizing. 2) SECURE_ERASE and FORMAT legacy pass types are now synonymous and will perform the appropriate function whether or not run against an ATA or SCSI drive. Previously an incorrect usage would fail. 3) CSV reports are start the device table at column 0 as the erasure_summary results are variable length anyway. 4) CSV, Text, and XML reports now properly output the erasure summary by grade (as the PDF does) rather than lumping all graded drives into other. XML format of the erasure summary has changed significantly to accommodate the new data. 5) Removed legacy variables max_scsi_buffsz and max_ata_buffsz and all references to them. 6) Found a bug with transfer sizing on drives with non-typical physical block sizes which were forcing the drive to do partial transfers during TestForMaxtransfers. (ie 4k transfer sizes on a disk with 1536 bytes/block... new size of increment will be 4608 (3x the physical.) 7) Many functions creating temporary intermediate files have been directed to use the new Temp subfolder instead of XERASwin. 8) Turned on PCI detection on normal windows systems. This may revert if there are issues. 9) Added UserField0, UserField1, entries to the Device XML upload for ERP integration. 10) Generate One Page report option shouldnt crash if triggered via Force-Failure window. This function now uses a device point instead of an index into the array. 11) New Enclosure Services mapping routines are available which allows the user to map multiple Enclosure Services chips to a single Physical Interface array. This is done via a new popup window in Design Physical Interface. Find the appropriate ES chip and specify the ES Slot values that get used in the Physical Interface. Xerase will map them as appropriate. Usually the ES Slot values will be set to 0 to Max for each ES chip added, and will proceed from Physical Slot 0 to Max. 12) DetermineOpcode transfer sizing routine was returning values that might be in excess of the buffer size in some instances. This could cause a crash if a previously-inaccessible drive (skipped TestForMaxTransfers) becomes usable later. The buffer sizes now regulate the size returned, even when the size was determined previously. If the size is greater than the currently allocated buffer, this function will now automatically reallocate the buffer to prevent crashing (but if the buffer does not have expecte 13) Opal Revert now supported on SATA drives. 14) Sanitize Overwrite is now an optional method within the Purge opcode structure, and is NOT used by default as a problem can cause systems to be unresponsive for a long while. To use this feature, you need to enable it in NIST settings. 15) Pop up PSID window if Opal Locked and window not already up for SATA devices only. Opal SATA drives can now be unlocked with a PSID located on the drive label. Enter the drive serial number and PSID. 16) Rule creation window on Custom Range is one larger than intended (ie. size of 1 covers C8 and C9, rather than just C8.) This has been fixed. Version 12.17.1 (released 04/29/2019) ----------------------------------- 1) Reloading logs from disk is now capped at 60 days. Reloading status from disk Write Stamps has no cap. 2) Fixed a filename problem for Razor ERP XML files to be uploaded. 3) XVFYwin licenses wont come up in demo mode, and ErasSURE Verify mode is allowed to use Rules (primarily for Skip Block 0.) 4) New flag added to force the software to bypass the normal check for duplicate serial numbers on erasure start. Customize->Interface->Advanced-> Duplicate SN Check. Version 12.17.0 (released 04/24/2019) ----------------------------------- 1) Resuming a drive that has the TUR_SANITIZE state should skip over issuing the Sanitize opcode, and move into the waiting loop. 2) Added code to log SANITIZE IN PROGRESS SCSI errors and set the TUR_NotReady flag to TUR_SANITIZE; 3) If Customize->Interface->Program Settings->Use Chassis Profile is enabled, then on program start the software will load one of the following out of the PXE subfolder: Profile_Laptop.pxe, Profile_Desktop.pxe, Profile_Table.pxe, Profile_Server.pxe, Profile_Lunch Box.pxe or Profile_All In One.pxe, or Profile_Octane.pxe 4) Removed transition_ProfileEnable flag loading from older xerase.ini files. This is solely handled via profile.ini now. 5) Call to Get_BIOS_Information() now happens prior to loading the profile. 6) Changed EzCreateFont calls for physical interface to not use logical font sizing. This has no effect on normally configured systems. dpi scaling factor may change from 72 to 96 in the future, but this will require adjustments to non-scaling font code program-wide. 7) Added Wide_Horiz_4x2, Wide_Horiz_4x4 and Wide_Vert_24x1 generic large-scale physical interface DAEs in disk_arrays v3.3.0. 8) Reworked all Octane Physical interface files to provide larger drive slots in disk_arrays v3.3.0. Version 12.16.4 (released 04/23/2019) ----------------------------------- 1) Improved WMIC Serial Number validation to ensure that Hex-to-string conversion isnt used on inappropriate values. 2) Font-scaling code for the physical interface is now keyed off a vertical display of 1440p rather than horizontal. This hopefully allows the physical interface to work on widescreen displays for systems without a great deal of video memory by using the smaller and fewer fonts. 3) Format Corrupt and Secure Locked drives will now skip Self-Diangotic routines rather than expecting the function to fail with an error code. Version 12.16.3 (released 04/18/2019) ----------------------------------- 1) Load loading for reporting, etc, now accomodates an odd scenario where a SMART analysis segment can exist past the erasure hash but with no data. This is now ignored. 2) Drive OnePage making more intelligent decisions on printing testing fields like Self-diag, skipping ones that were never run. 3) Recompile and upload as the NetApp Protection workaround wasnt documented. The change should have been functional in 12.16.2. 4) NetApp SATA drives emulating SCSI are returning a Protection information value of 6, causing the software to want to remove this by issuing a format. The SATA drives can support neither protection bands in this way nor do they support Format which causes the erasure to fail. Protection values of 6 are now ignored. Version 12.16.2 (released 04/17/2019) ----------------------------------- 1) Drives that have performed a Crypto (and have random data in the seed blocks) or drives that wrote a TrueRandom pattern in manual overwrites will now automatically substitute Spot Logging (verify mode 5) regardless of wipe pass settings. This mode can not Fail and is strictly for auditing purposes. 150 to 250 points are logged spread evenly over the surface of the disk. Unknown number of points makes it more difficult to game the system. 2) Fixed crashes associated with devices having no Host Adapter Index (Surface 3). 3) SCSI SSD drives that have a Manufacturer of ATA should not be allowed to attempt a SCSI Format command as these will fail. Disable the Format support flag. Version 12.16.1 (released 04/12/2019) ----------------------------------- 1) Fixed a Report Template crash that could occur with certain system tags. Version 12.16.0 (released 04/04/2019) ----------------------------------- 1) Potential fix for negative power on hours. 2) In Customize->Program Settings->Load Previous log on Discovery the settings are now OFF, Log Stamp, Log Only, and Stamp Only. Stamp loading will only happen if Write Stamps are enabled and the Log was not detected. Stamps are only written when a drive achieves a PASS/FAIL state so drives can not be Resumed with this method. 3) In the Media Viewer window, STAMP is now listed as a defined block if Write Stamps are enabled. This will take you to the LBA that the write stamp was written to. 4) Fixed filling out grade combos in Health and Grading portion of Customize->Interface. 5) Write Stamp can be used in place of a drive log that cant be found with regards to showing final status and setting the charged state so that erasing again will not cost an additional fee. Version 12.15.10 (released 04/01/2019) ----------------------------------- 1) Removed enhanced test_unit_ready parsing introduced in 12.15.7 for SATA drives as the SCSI error codes sometimes seem incorrect/nonsensical. SCSI drives will still report the reasons for being not-ready, etc. Version 12.15.9 (released 04/01/2019) ----------------------------------- 1) Modified maximum number of charges allowed per license by eliminating another license field that wasnt being used and using it for license charges instead. This will allow values in excess of 65536 charges. Version 12.15.8 (released 03/29/2019) ----------------------------------- 1) Fixed potential crash in tigger_os_rescan(). Version 12.15.7 (released 03/28/2019) ----------------------------------- 1) When SCSI self-diagnostics is skipped for non-support, it was causing the device to fail grading. This is resolved. 2) On fabricated results of rndwrt testing, explicitely set the result to -1 so that health grading wont subtract 100 percent from the drive health; 3) Removed CD from Makor batch file in ExecuteMakorCommand which was causing Xerase.exe problems with hard drive status uploads. 4) Added Sanitize in Progress, Format in Progress, and speculative support for WriteProtect and Opal Loacked to the Recycler Mode warnings. 5) Added signifigant logging code for various Not-Ready states as a result of test_unit_ready() call. This should allow us to detect Sanitize in progress and other conditions for SCSI drives, log them, and perhaps handle the situation more intelligently. Version 12.15.6 (released 03/26/2019) ----------------------------------- 1) DriveType string in the ERP XML file has been broken down into 3 additional fields names FormFactor, Interface and Type. 2) Erasure Plans code modified to include Purge Overwrite 1x and 3x values. General cleanup and updated integration with Reporting to result in cleaner and accurate Report footnotes. Version 12.15.5 (released 03/25/2019) ----------------------------------- 1) Sanitize-Overwrite will respect the Clear:3x Overwrite logic. Never = Do 1 pass. Always = Do 3 passes. SSD Only = Do 1 pass on HDDs (SSDs should not indicate support of this bit, but would try 3 passes and likely fail.) 2) SCSI Sanitize-Overwrite now working with EPS Octane and EPS Portable hardware. 3) The erasure note reason has been removed from Sanitize erasures as no longer being necessary since the erasure plans are accurately documenting the process. This will make the reports more legible. Version 12.15.4 (released 03/25/2019) ----------------------------------- 1) Certain WinTec SSDs were reporting their serial number beginning with the capacity. The software was using the capacity as the serial number and stripping off the remainder. This odd arrangement is now accomodated by stripping out the sizing information first. 2) WMIC timeout reduced to 8 seconds from 30. 3) All results now can use the new wildcards available in 12.15.3, and files are named according to the Report Filename template directly rather than renaming it after the fact. Version 12.15.3 (released 03/22/2019) ----------------------------------- 1) New wildcards are available for OnePage report naming templates. ERASURE_RESULTS (in brackets) will evaluate as either PASSED or FAILED, and DRIVESN is a synonym for DOCID1. 2) Fixed a bad CDB for SCSI Sanitize Overwrite (3x). 3) Taskmaster Restart now defaults to OFF. This will not change current saved INI settings. 4) Removed code to create new Workspace and Groups.ini files for physical interface if unable to load Groups.ini for any reason. This should eliminate the disappearing Physical Interface configuration issue that sometimes crops up. Initial creation will need to manually create a Workspace now. 5) Removed legacy MakorURL loading in the xerase.ini which was unsetting the value in erp.ini. Version 12.15.2 (released 03/21/2019) ----------------------------------- 1) Duplicate Serial Number check now ignores removed drive serial numbers. Should not have been an issue unless someone removes a drive from one slot and inserts to a different slot on a running system. 2) Final fix for Megaraid low level buffer issue. Fully resolved. Version 12.15.1 (released 03/20/2019) ----------------------------------- 1) Some local buffer changes put into place for 12.14.12 may have broken Megaraid low level IO for Inquiry/Capacity/Supported Opcodes. The buffer is now allocated and in the normal format that the IO functions expect. 2) GetNewStats updated to selectively redo capacity information. Will not retest capacity on Secure Erase or a Sanitize command. Will on a Format or NVMe format. Version 12.15.0 (released 03/20/2019) ----------------------------------- 1) New code on erasure start that attempts to detect drives with matching serial numbers. If the LongSN fix isnt applicable, the erasure is aborted and the user notified. 2) New code on erasure start that attempts to detect drives with matching serial numbers but different LONG serial numbers. If this is detected, the long serial number is used instead. This happens silently, but logged in the Debug. 3) Tweak to the inquiry routine to strip bad characters from a Unit Serial Number (a period at the end of the string for NVMe drives.) Version 12.14.12 (released 03/19/2019) ----------------------------------- 1) To reduce Debug log clutter, many of the enclosure Services slot messages have been removed. 2) Removed deprecated INI loading code from the older [INTERFACE] category. 3) FillInquiry triggered by device removal/arrival sequence is running at the same time as a the erasure thread. Sharing/swapping the buffers between the two threads is possibly triggering a crash. Rewrite FillInquiry to use a local buffer only. Version 12.14.11 (released 03/13/2019) ----------------------------------- 1) EMC and DELL are now treated as two separate companies instead of synonyms. EMC will direct to the older licensing methodology while DELL will direct to the newer Database. 2) CP_NumUses adjusted after decrementing License Server charges so that the title bar displays good values. 3) Added CP_UpdateChargeVariable() to reconcile global charge variables with the currently in-use charge variables. 4) Flaky behavior with getting full-boat charges on license reservation in LC_ProtectHandler(). Removed the charged list and will get it as a separate function to make things cleaner and easier to debug. 5) Moved TestReimageAndBit inside the connected test and only call this function the FIRST time. 6) DB_LogTable now returns if Database Table Count is 0. This was causing a crash. 7) Added automatic XELTwin uses request to initial LCserver connection so that we dont have to follow it up with individual accesses. 8) Added DATAPROTECT error as a reason to fail the erasure rather than lumping it in with Write Errors. Version 12.14.10 (released 03/07/2019) ----------------------------------- 1) Fix to allow PXE/USB devices to start in EraseSURE mode with licensing good-to-go. 2) Refinement of fix introduced in 12.14.9 to allow greater flexibility going forward. Version 12.14.9 (released 03/06/2019) ----------------------------------- 1) Fix for Lease/Purchase licensing check added in BSEED startup at 12.14.7. Charges are unaffected. Version 12.14.8 (released 03/05/2019) ----------------------------------- 1) NVMe drives do not support SCSI Format emulation. Software flags this as the case now, so NIST 800-88 rev1 Clear should choose Overwrite methods. Version 12.14.7 (released 03/05/2019) ----------------------------------- 1) FAILED TEST indicator in health and grading log segment have been changed to NOT TRUE to reduce confusion between an individual element comparison and the drive itself being a FAIL grade. 2) Reorganizing BSEED code so that Logs are created after Charging, so that updating the EToken is no longer necessary. This may eliminate a tamper warning. 3) Fixed problem with sysinfo XML creation when doing a multi-sysinfo scenario. 4) Changed Etoken update function. May be more reliable. Version 12.14.6 (released 03/01/2019) ----------------------------------- 1) SCSI drives that have a corrupted format can not execute a self-diagnostic. This would have caused a grading failure, but now its skipped and not factored into the grade. 2) Removed xerase.ini references to ERP values in case its overriding the erp.ini values configured in a different window. Version 12.14.5 (released 02/28/2019) ----------------------------------- 1) Modified System Interface to size and configure correctly even when no drives are present. 2) Added checks for valid hbaidx values before attempting to push the strings into the drive log files. 3) Added checks to the code to warn that PHY mapping to expanded devices (disk arrays) will not work properly and should only be used for directly connected drives. 4) Sanitize Overwrite warning removed from SCSI implementation. 5) Emulated SCSI drives can lock up when setting mode page info (SD cards, etc). If a drive has WWN_ or SN_ prefixes, we now skip modepg1 acquisition or all calls to SetRecoveryPageInfo. 6) Added code that may allow XERASE to access cloud licensing and such through a network proxy server. This can be aconfigured in setup.exe via the Settings button which edits XERASwinconfiginetcfg.ini 7) Added checks to the code to not allow PHY mapping of arrays that are already Enclosure Services mapped. Version 12.14.4 (released 02/21/2019) ----------------------------------- 1) Fixed a problem introduced that was introduced in 12.14.2 that might cause an etoken mismatch and/or a blank erasure plan for reporting. Version 12.14.3 (released 02/19/2019) ----------------------------------- 1) No longer opening a handle to the RAMDISK (X) to eliminate a rescan lockup. 2) CDrom handles are now closed before discarding the device. This might prevent a rescan lockup on PXE laptops. 3) EraseSURE mode via PXE can now correctly load alternative Validation methods into the Selector window (Wrench button.) Version 12.4.2 (released 02/15/2019) ----------------------------------- 1) Fixed a bug with logging the description of NIST 800-88 rev1 Purge now that Purge is erasure method 0. Version 100..0.0 (released 02/14/2019) ----------------------------------- 1) Add a drive note of Opal Locked? if Opal support is detected and erasure fails. Version 12.14.1 (released 02/14/2019) ----------------------------------- 1) Made sure that firsttime configuration of Groups and Workspaces can not happen for PXEand USB booted systems... only standalone erasure stations. This eliminates an annoying messagebox that serves no purpose in those environments. Version 12.14.0 (released 02/13/2019) ----------------------------------- 1) Seek Testing now only valid on pre-erasure health to mimic RWT random testing. 2) Time remaining format for DeviceList is now selectable. The default is Fractional (ie. 3.2h) but you can put it back in hr:min:sec mode if you prefer. 3) Time remaining moved from SavePointAction to being called as part of Speed calculations for more rapid updates. 4) Recycler mode Grading test is no longer performed unless Health and Grading is enabled in either Pre or Post Erasure events. 5) Note: Remain in the DeviceList is total time remaining, including Verify Passes. The format of the time remaining is now in the easier-to-read fractional mode. To see pass time remaining, change the Wipe Status combo to Time Remaining. The first value will be time remaining in this pass. The second value is total time. 6) Rewrote EstimateErasureTimes() to use instantaneous speeds to do erasure time calculations on the remaining media rather than using a calculated average. The same speed is used for both write and read passes, so may be very off if doing full verifies in an expanded environment. 7) Modified IdentifyBadSystemSerial() to use XXXX rather than XX for a bogus serial number, as apparently XX is a part of valid serial numbers in use by Dell. 8) Fixed a crash in the WriteStamp code if the stamp is happening prior to an erasure being selected for the drive. 9) If a SMART parameter with the word REALLOCATED is part of a health grade, and the RAW value contains a percent mark, then the grade will be based on an integer fraction of the drives total capacity (minimum one percent.) Using this is not advised but was added for one specific customer. 10) Added controls to set startup in EraseSURE verify mode. Part of Program Settings. This supplements the toolbar. 11) Added in controls for Customize->Interface->Post Erasure-Events->Write Stamp to allow the user to determine the block that it is written to, rather than always uzing 0. This is a Hexadecimal value. Entering the string LAST will put it on the final block of the disk. 12) Tweaked certain customer licensing to work properly with the licensing code changes required for XVFYwin licenses. 13) Moved Cloud Usage call so that it only gets adjusted it the Decrement succeeds. 14) Added code to allow Verify method rules to be modified by the user. The interface will filter out all methods that contain a Write Pass and all methods that dont contain at least one Read pass. 15) Fixed a bug in BackupDeviceLog() that would prevent Debug_XERAS.txt files from being copied to the override until drives were added to the software. This made debugging USB/PXE crashes difficult. 16) Third Party Verify status added to DeviceXML file used to upload to ERP. 17) The following functions are disabled when using EraseSURE validation mode via XVFYwin licensing... 1) Health and Grading, 2) ERP uploads, 3) Database access. Version 12.13.23 (released 01/29/2019) ----------------------------------- 1) Added No-battery Detected condition to popup warning for PXE Laptops and Tablets. 2) Went back through and revalidated Netapp MK2 AT Compatibility mode, stripping out some new features that cause problems for these problematic SCSI-emulating chassis. Best results are a steady-state of drives detected in Windows then starting the software. Rescans and such may initiate the offline online cascade. 3) Tweaked ATA Sanitize wait loop to use the Status routine instead of read probing when given an initial fail status IF the status function indicates progress. This provides better onscreen feedback. Version 12.13.22 (released 01/28/2019) ----------------------------------- 1) Fixed connectivity crash for SQL databases. 2) SCSI Sanitize now always enters the erasure loop, regardless of initial command status. The loop will check percents and completed status. 3) SATA Sanitize now checks to see if a device looks like its erasing, even when given a failure code. This resolves a problem with some Intel/Dell drives. 4) Added NOTREADY capacity indicator for drives returning 02/04/03 SK status (Not ready, manual intervention required.) Version 12.13.21 (released 01/28/2019) ----------------------------------- 1) Added a SystemHealth check. Currently very rudimentary, and only flags for missing Laptop/Tablet batteries, or a battery less than 60% health. This is not currently configurable. In time, more fields will be tested and more configurability will be added. 2) Added additional debugging logic to attempt to determine if a failure status for issuing a Sanitize command is in error, and the command is actually working (Intel/Dell SSDs.. SSDSC2BX800G4R) 3) Fixed Read-probing for Sanitize ATA commands to be used for ahci drivers, etc. 4) Re-Prompt query answered NO will retain current log path as well as all current values rather than reevaluating the path. 5) Re-Prompt query will not appear if Retain_Current_Log_Path set (Checkbox in restart Erasure.) 6) Process Prompts not processed if Retain_Current_log_Path set. Version 12.13.20 (released 01/25/2019) ----------------------------------- 1) Fixed a problem with Cloud Database Licensing that could zero out licenses if there was an intermittent connection issue. Version 12.13.19 (released 01/24/2019) ----------------------------------- 1) Enclosure Service device handles are now closed on rescan/shutdown. This may or may not change anything. 2) Added a Retain Log Path checkbox to prevent the software from reevaluating Prompts and such to form a new log path. Primarily useful when using multiple paths on the same equipment simultaneously. 3) New VerifyRules.ini created on first run with 6 verification-only methods. This is disabled in release build as more default information may be added before it becomes enabled. Version 12.13.18 (released 01/22/2019) ----------------------------------- 1) Fixed a Capacity issue in the log file. 2) Modified BatchSetupLog to toggle valid paths depending on whether EraSURE_Verify_mode is enabled (default path logs/Verify/xxxxxx) Version 12.13.17 (released 01/22/2019) ----------------------------------- 1) Reorganization of database configuration file loading to seperate the file parsing from other functionality. This will allow more flexible use in the future. 2) MapDrives_All() now gets called at the end of RescanAllBusses() 3) Removed calls to LoadGroupWorkspace to apply listspace.ini configurations. Userfield values that were not previously saved are now lost. The hope is that this eliminates some other potential problems. 4) Array alias information in Physical Interface is now superceeded by PHY map, TID map, the Enclosure Services SN (ESN)and/or the Enclosure Services WWN if applicable. This will help identify configuration issues and indicate enclosures that should not be Serial-Number mapped. 5) Switching physical interface modes now remaps enclosure services arrays and drives. Version 12.13.16 (released 01/21/2019) ----------------------------------- 1) Problem launching the 3rd party validate program due to Visual Studio removing a necessary space from the command line. This has been remedied. 2) Drives that are format corrupt at the end of a write pass are set to STATE_FAILED as reformatting, etc, did not work and we wont be able to verify it. A Reason of Media Still Corrupt is added to the log. 3) Removed NVMe format from FORMAT pass line processing and also disallowed format_corrupt processing at that point. format_corrupt processing takes place at the top of the function only now. 4) Ensured that Format substitution on first pass can ONLY happen for write passes, so that a format attempt cant substitute for a verify pass (leaving us without verification.) Also, exotic erasures can only happen on write_passes (in general, this should change nothing.) 5) Ensured that Format substitution on first pass can ONLY happen for write passes, so that a format attempt cant substitute for a verify pass (leaving us without verification.) Version 12.13.15 (released 01/18/2019) ----------------------------------- 1) Added functionality to facilitate an upcoming host host-migration. Version 12.13.14 (released 01/18/2019) ----------------------------------- 1) Fixed a path-passing issue when trying to invoke CPRValidate which would break if spaces were found in the path. 2) Change the disk FillCapacity function to not read block size values from SCSI16 opcodes directly into the device structure. This should precent badly behaving ATAPI drivers overriding a previously detected GOOD block size with a 0 size. 0 block is also pushed to 512 default in the very unlikely event that we couldnt read a valid value. Version 12.13.13 (released 01/16/2019) ----------------------------------- 1) Fixed direct-cloud-database licensing to no longer rely on expectations of how the table is laid out, and query each license type directly. This is much more robust and expandable going forward. 2) Added working-directory pathing to the call to start CPRValidate.exe 3) Fixed a typo in the URL that was causing direct database licensing to fail. Version 12.13.12 (released 01/15/2019) ----------------------------------- 1) Converted 3rd party cloud validate from using direct database access only to the wrapper that can accomodate HTML transactions for redundancy. 2) Added a new level to the Remove Write Protection option introduced in 12.13.11. The first is to only remove protections if there is no write access, the new addition and new default is to always remove protections if found. Version 12.13.11 (released 01/14/2019) ----------------------------------- 1) Fixed an Order-of-operations problem that was causing the method Verify Drives Fully to not do a full verify if the changeable setting was NIST verification. 2) Added a flag in Customize->Interface->Advanced to toggle WriteProtection Removal On/Off. Hopefully will not be necessary with the previous fix in place, but may have to remove it if it causes issues and this gives us backup control. 3) Due to the presence of some SAS interposers returning erroneous protection data for SATA drives, the Format Protection removal code added in 12.13.4 will now only trigger if we were unable to write to the disk during the bus probe. We will be monitoring the situation and adjusting accordingly. 4) Modified the maximum SMART value used for health score calculation to 100 from 253. This value can be overridden by subsequent manufacturer values, but may return more reliable data for drives whose manufacturer cant be determined. 5) Fixed a retry bug that was causing post-Format/SecureErase/etc to not properly log the seeds on failures. Version 12.13.10 (released 01/03/2019) ----------------------------------- 1) Integrated CPRValidate tool into WIMs and UPD packages. 2) Added Third-Party Verify status fields to Labels, Reports, and Database Mappings. 3) Fixed label Drive Type printing. 4) Updated onscreen label display code to properly handle labels that are taller than they are wide (portrait mode.) 5) Modified label printing code to send a requested orientation rather than always sending Landscape. This is due to some label printers defining Landscape differently than normal. For printers like this, sending Portrait mode may fix it. Version 12.13.9 (released 12/21/2018) ----------------------------------- 1) Resolved a cloud database DNS bug introduced in 12.13.6, which was causing all accesses to use the slower HTTP interface. Version 12.13.8 (released 12/20/2018) ----------------------------------- 1) Fixed a writing speed bug caused by incorrect logic in the newer Prevalidate bandwidth-test code. If the bandwidth test was set to legacy mode, this wasnt a factor. If bandwidth test was enabled and it chose Write opcodes it was not disabling WriteSame opcodes as it should. As a result, all drives were doing WriteSames, even if the drive does it very poorly despite what the log said. 2) ERP integration is now respecting No Method Checks implimentation. Makor deals with method checks. Other ERP implimentations may not be. Version 12.13.7 (released 12/19/2018) ----------------------------------- 1) Added Form Factor querying to SCSI based devices. Not all devices will support the page which returns this value. Version 12.13.6 (released 12/18/2018) ----------------------------------- 1) Added extra structure protections into deallocate code and additional debug messaging for removal. 2) Opal support for hard disks is now being detected and printed in the bus probe. Support for Opal RevertSP is not yet present. 3) Added serial number adjustments for drive model HUA721010KLA330 to cause the serial number to match the drive label (8 characters only.) To use the full serial number enable the Long Serial Number mode in Advanced Options for Customize->Interface. 4) Added extra debugging statements to the Merge LD/PD code for LSI Hybrid devices to determine why it may fail. 5) Updated Cloud accesses to use extremeprotocol.com rather than a hard-coded IP address. This will allow database movement in the future with no disruption. Version 12.13.5 (released 12/12/2018) ----------------------------------- 1) Fractional capacity display strings are now only valid on single digit numbers. eg. 1.6TB, not 800.1GB. In addition, the bounds are changed to .25 and .75 from .15 and .85. 2) Additional change to capacity display routine to remove special SSD sizing and use the generic display routine to accommodate SSD drives that arent multiples of 2. Version 12.13.4 (released 12/12/2018) ----------------------------------- 1) Changed our new simplified displayed capacity routine to accommodate Dell 1.6TB drives. New routine will now only round remainders greater than .85 and less than .15. Values between those bounds will be shown with a single decimal point. 2) Fixed a drive-height drawing issue in the System Interface where the Operator/Unassigned line was drawing over the bottom of the drive. 3) SCSI_sanitize_supported flag is now set if any of the individual SCSI sanitize opcodes are available. This flag was previously just used for display purposes, but as of 12.13.0 merge of the display/action decision tree can also impact erasure, making SCSI Purges unavailable. 4) Enabled a mode that will reformat SCSI drives as pass 1 if Write Protection is enabled. This is not currently configurable, but may be in the future if it causes unexpected problems. For Purge routines, this happens as a pre-step, not a replacement. Version 12.13.3 (released 12/07/2018) ----------------------------------- 1) Added manufacturer to Log Analysis window. Required reducing some field sizes. 2) Fixed a problem with the new bandwidth limiting adjustment for PreValidate Opcode which ensured that Writes were always used. Version 12.13.2 (released 12/07/2018) ----------------------------------- 1) PE runs of the software are no longer skipping GetSystemDevices() so that it can discard USB bootable drives on systems where USB devices are enabled. Version 12.13.1 (released 12/06/2018) ----------------------------------- 1) Fixed a crash in the new ChooseErasureMethod logic due to an uninitialized variable. 2) Once configured, it was not possible to disable an ERP. A new setting for NO ERP has been added as a selection for the list, and if chosen will disable ERP accesses. 3) Added the ability for Xerase to eject optical media on startup. This is enabled by default. To disable this feature, Customize->Interface->Startup Events->Eject Optical Media should be set to OFF. 4) Added STATE_REMOVED check in RetryDevices() 5) GetSystemDevices() reorganized and device type is now acquired so that we can differentiate fixed disks from CDroms and USB removable drives. 6) Busscan_skip_Volumes check removed from GetSystemDevices() as the EPS_ discard logic requires this array to be filled out. Version 12.13.0 (released 12/04/2018) ----------------------------------- 1) Added a toggle in NIST Settings to control whether SecureErase-Enhanced can be used to implement Purge or not. The default is not to use it so that program behavior doesnt change without the user making that decision consciously. 2) Added retry code to get Volume information for the C: drive letter and all USB devices. This will hopefully make detection of EPS_BOOT volume names more reliable. In addition, non-PE environments will always discard C: no matter what. 3) Added a test to make sure that drives are in a Partial state before TaskMaster Restarted can begin an erasure. This ensures that a crash and relaunch of xerase doesnt begin erasure on drives that were not intended. 4) Removed bandwidth test message when Prevalidate is solely looking at Read opcodes. 5) Prevalidate logic changed so that failure to write during prevalidate doesnt fail automatically IF the drive is going to perform an exotic erasure (BlockErase, Crypto, Secure Erase, Format, etc) as this MIGHT make the drive usable again. 6) Updated the menu of possible Purge commands to include support for SecureErase-Enhanced (Hard Disks only). Also, the descriptive text is updated to reflect this inclusion as well as NVME format. 7) Made modifications to the retry loop that may resolve a weird timing glitch for offline->online recovery that would cause the erasure to end prematurely. Version 12.12.9 (released 11/30/2018) ----------------------------------- 1) Fixed a crash on loading force-failed log files for Reporting due to trying to recreate an erasure plan if it was missing. 2) For reporting, the heading for drive manufacturer has been changed from VENDOR to MFR. 3) Modified licensing logic so that missing CrystalFont access allows the program to revert to USB dongles. Still need to test scenarios for UPDEK units to make sure it works properly in normal operation. Version 12.12.8 (released 11/26/2018) ----------------------------------- 1) When ERP function was set to Razor, not possible to continue an erasure. 2) Xerase will now do a single license server operation to send driver list and recieve instead of a sequence. This should make it more reliable. This MUST be used with LCserver version 8.1.0 and later. This only impacts Imaging driver injection. Version 12.12.7 (released 11/20/2018) ----------------------------------- 1) Fixed a bug in the new round-off display size-code which was causing a near-2TB drive to show as 1TB rather than rounded up to 2TB. Version 12.12.6 (released 11/19/2018) ----------------------------------- 1) In removing DiscoverOctaneEnclosureService in version 12.12.3, another neccessary function was also commented out. This should fix drive insertions in enclosure services mapped arrays. Version 12.12.5 (released 11/16/2018) ----------------------------------- 1) Fixed a problem with creating system xml files for Techway licensing introduced with ERP changes. 2) Fixed an ERP-makor string formatting problem. 3) New opcode speed optimization in PrevalidateOpcode. Turned on by default in PXE and off in Xerase, can be overridden via Customize->Interface->Prevalidate. if it doesnt look like its bandwidth limited, then dont use WriteSame commands. This may speed up erasures depending on the discrepancy between Write and WriteSame speeds. Version 12.12.4 (released 11/15/2018) ----------------------------------- 1) Fixed Recycler-Grading code to bypass everything but SMART values. 2) Added additional Cloud license debugging information. 3) Operating System Devices (mounted volumes) are no longer enumerated in PXE/USB. This should bypass a lockup that can happen when trying to deal with a CDrom. 4) Added charge/tamper flag printouts for ParseExistingDeviceLog() as well as ensured that erasure descriptions including 800-88 dont get mangled due to some earlier code. 5) Modified the print queue code to be more flexible and interface better with LCserver. 6) Fixed PrintDeviceInformation crash when using it to forcefail a drive that hasnt started an erasure yet. 7) Changed a WMIC loop on cdrom types that would proceed infinitely on timeout. 8) Removed many enclosure-services debug messages to clean up the files. 9) Self-Diagnostic no longer allowed for drives attached to an HPCISS or Megaraid controller as these interfaces may not like the drive behavior and cause lockups. Version 12.12.3 (released 11/09/2018) ----------------------------------- 1) Updates to ERP functionality. 2) DiscoverOctaneEnclosureService removed as it isnt neccessary for 12 Gb Enclosure Services anymore and might cause some potential issues. 3) Modified PrintDeviceInformation to accept a device structure pointer rather than an index into the device array so that we can use the same function for ForceDevice and others. This will allow much fuller Forced logs if the device was detected. 4) ParseExistingErasureResults now handles split serial numbers (spaces in the middle) without declaring the log files tampered with. 5) Added Battery Test database mapping field to Xerase. 1) Added to GetDeviceDataByType() for database query. 2) Generated at 60 percent health or higher for PASS, and lower is FAIL. 3) Added to InsertSystemInfo() to output to XML or reports for Battery segment. 4)Added Battery Test to Database GUI. 6) Force-Erasure results to use normal logging headers and copy over ALL drive data if the device is inserted/available. This allows Forced and Recycler fails to also get glist, etc stats. 7) Modified the FillCapacity function to present the disk size without fractional sizes and push the Units (MB< GB, TB) immediately next to the number. Also, the software attempts to normalize the displayed size string such that it aligns with the nearest 10s digit for multidigit HDDs, and as factors of 2 for SSD/Memory types. This should offer greater compatibility with the Marketplace feature as well as better groupings in Erasure Statistics for Reporting. Version 12.12.2 (released 10/30/2018) ----------------------------------- 1) Added the ability to tell Xerase to use the LONGSN value rather than the shortest possible serial number (SN) for logging, reporting, and database use. This is configured in Advanced Settings Version 12.12.1 (released 10/30/2018) ----------------------------------- 1) Fixed a password problem with Cloud Database logins Version 12.12.0 (released 10/25/2018) ----------------------------------- 1) File copying to the override suddenly started displaying a message instructing the user to insert a USB stick. Software has been updated to test the override folder more thoroughly so that the instructions can guide to a solution. In this particular case, somehow the XERAS_override share had gotten changed to Read Only. 2) Fixed a bug in the ESList output of devices connected to an enclosure services chip, which was using a stored drive index that was incorrect. It now looks up the drives for display purposes dynamically. 3) Removed the DB_TableValid wait loop and just look for whether there are tables. No valid tables = disabling database. On database file load, a messagebox will warn if the configured file is not present. 4) Removed fabricated WWN3 values for SATA drives as this was causing drives to be mapped into multiple slots in Octanes (12 Gb only?) However, this was added for a reason and could have repercussions in other enclosure environments. Will have to modify things further as we get a better handle on when this is needed or not. May require the user to manually turn it on or off if it can not be automated. Also, IsDeviceOnESChip() automatically switches between a 3 WWN meatch and 2 WWN match depending on availa 5) Database uploads of system information are no longer contingent on all drive log files being IDLE rather than Partial/Pass/Failed. Database code itself determines whether systems are there based on recid or system serial number so is no longer needed. 6) Modified TestForMaxTransfer size to use increments of about 4k (previously up to 8k for 9k physical block size drives), and reduced the scaling of multiples. 7) Adding Marketplace integration to get current ebay/newegg pricing on items being processed. This is currently Disabled and will be enabled at a later date. 8) Apple Laptop/Apple Desktop has been added to Chassis Type. 9) SQL Database Setup script needs to be added to the XERASwin.upd file in Database folder 10) LBA logging in the RndWrt/Rd test has been removed and max Read IOs is 0xFFFFFFFFFFFFFFFF (max 64 bit value) regardless on length specified on the RndWrt test. This ensures no roll-overs. Since not doing data compares anymore, this may not be neccessary... 11) For very long random read/write health testing, number of bytes read/written can exceed the maximum values that our variables can hold, causing the speed calculations to be inaccurate or even negative. 12) SetDeviceState called at the end of CreateDeviceEntry so that error lights will be enabled on Failed drives after mapped to an Enclosure Service Chip. 13) Labels are printing large black perimeters and/or solid black when printing labels. Fixed in 12.11.4d 14) Bus probe now asks the drive whether it supports the SendDiagnostic command for SCSI drives. If not supported, Self-Diagnostic will be skipped. Unknown status will still perform the command for backwards compatibility. Certain models of drives that are known to lock up will also now skip Self-Diagnostic. 15) Modified the Self Diagnostic logic so that repeated ABORTED status do not cause the drive to be considered to have failed its self-diagnostic. The rationale is that external factors may be causing the aborts and is not an indication of drive health. 16) Fixed an uninitialized variable bug that could cause a crash on a fail status during grading. 17) Fixed a problem in FillCapacity for SCSI based drives that support SCSI10 opcodes, but not SCSI16 opcodes. Faulty logic was causing these drives to appear to need to be formatted. 18) Cloud access to licenses in the latest version will do direct database queries rather than HTTP. This is much faster. 19) Changes made to Label Printing and Database accesses. This should not be noticeable. 20) Put in a catch so that missing drives do not attempt to create OnePage reports (if configured.) This eliminates a crash caused by trying to access data that doesnt exist. 21) Added a Units element to Grading Window to allow the Seek and Rnd Wrt/Read times to be in Minutes and Hours for extended testing. These controls are currently disabled. 22) The hardcoded NIST 800-88 rev1 Clear (3x) has had its patterns changed to include a RANDOM pattern in between an FF and 00, to more closely mimic the data layed down during a DoD Sanitize, but still ending in a 0 for easier verification. 23) Some NVMe drives in Surface tablets were not correctly returning RPM status for drives (1) so Xerase was treating them as a spinning platter HDD. A connect type of NVMe will now set the device rpm to 1. 24) Drives with a serial number of 00000000 were previously converted to WWN_ working serial number. However, the WMIC SN fallback that happens afterwards was undoing it. the WMIC SN is now subject to the same rules and disregarded in this case. 25) Adding a Database Upload Queue. This allows resiliency (retries, etc) without bogging down operations. 26) Found an instance where the label printing queue could exceed the number of slots allowed. 27) Added explicit mutex closings for problems that occur during bus probes and memory deallocations for enclosure services devices discovered. 28) A crash can occur in CSMI_Get_SAS_Address() under some circumstances (devices going offline and returning?) Additional checks have been added, and expanders are being ignored now in CSMI_Get_SAS_PHY_Info() which gets called from that. Phy info is now OFF by default, can be reenabled in Advanced Settings, and will eb turned on automatically if a workspace contains PHY mapping. Version 12.11.3 (released 09/18/2018) ----------------------------------- 1) Verify-only methods will now not be able to do a WriteStamp as the end-result is a drive that isnt modified at all so that it can be validated by hand, rerun, or tested against other software. 2) Verify-only passes were seeding the drive if the mode was set to Always Seed. Now methods with no write passes will skip Seeding. Version 12.11.2 (released 09/12/2018) ----------------------------------- 1) Reverted a Makor file naming convention to ensure compatibility. 2) Modified the logic/sizing code the the Slot Info combo box on List and Topbar interface modes. 3) Reverted the maximized restore logic as it was having unintended consequences worse than the original problem it fixed. Version 12.11.1 (released 08/30/2018) ----------------------------------- 1) Maximized xerase windows will now be set back to normal sizing on switching viewing modes. This will allow window sizing controls to work again. 2) Added System Database Scripting to use a database to configure XERASE. Can be used to set profiles, erasure methods, asset IDs, drive user fields, etc. 3) Tweaked atodd and atoxx functions to handle unterminated strings better as well as capped the maximum values tranlated to __int64. 4) Adding ability to generate Component Labels for breaking apart equipment. The Left column is customizable. The right column will be filled out automatically based on the type of component. This is similar to the Drive OnePage reporting template. 5) Tweaks to the database code. Systems are not updated if the appropriate settings are set in the database configuration. Systems now use recid if available as a field. Battery tables are now offificially set aside. 6) Some database fields are now left blank if the operation was not actually in use, rather than showing the default values if it WAS going to be in use. Image, ImageScript, ATA and SCSI gradefile, erasure duration of 0 length. 7) If FillCapacity is being skipped by virtue of a drive not being ready, UNAVAIL string wlll now show NOTREADY so that we can tell the difference between bad data and not even bothering to ask. 8) Drive supported-flags and attached HBA are now dumped into the drive log as part of the pre-erase process. This function is now called in FillInquiry also to consolidate code. 9) Adapted the List Interface header code to ensure that fonts dont get cut off. 10) Changed the System Interface window to adapt to changing window and screen sizes better. This should allow high-resolution displays to scale up properly and look more or less the same as less capable displays. 11) Added a label structure to DeviceUserFields to get the Name of the field up front instead of needing to process it in multiple places. 12) PXE Clients set to System Interface mode will now maximize on startup. 13) Tweaked the speculative Secure method color on the new System Interface to a more saturated green to make it easier to distinguish on bad screens. A speculative Method color is now in the same green. For erasures that are already running or are finished, the method color is in blue instead of white to make it easier to pick out. Version 12.11.0 (released 08/15/2018) ----------------------------------- 1) Moved Reason before erasure results for DoForcedResults function. This eliminates a tamper result if the log was actually certifiable (usually not.) 2) previous_erasure_type variable is now set to -1 up front to ensure that no matter what happens, if the log isnt loaded the software realizes that the erasure hasnt been run. 3) New System Interface added which uses similar layout technology to Physical Interface, but organizes the drives itself. Mapping is not possible. this mode is designed to provide a large, easily readable display for viewing across the room. 4) Fixed SQL Database issue where query statement handle was being freed before it could be used to get query data. 5) Registry cleanup time is now 2 months rather than 1, in case registry cleanup has something to do with some boot disk issues. The user will be instructed that they should reboot after it is complete. 6) Fixed ATA Sanitize command registers so that they work with ALL drives rather than only some. 7) Confirm System Info on Error will now also pop up if there is missing model or manufacturer information for the system. 8) Gather Protection_Enabled and type flag. If Protection_Enabled (and doing writes) then change the WRTPROTECT bits to instruct the drive to not validate the write data (which would cause a failure.) It it unclear how the RDPROTECT bits for Reads will work in this scenario. Remains for future testing. 9) Moved SCSI flags further down the busscan process so that ReadCapacity can be issued first. This ensures that we can print valid results for End to End Data Protection flags. 10) No longer automatically deleting the prior log if restarting. Assuming that the path is the same, the log will be overwritten, but this means that if you change the path youll have two logs... one from the previous path and the new one. This lets you try different things without losing log files. HOWEVER this also means that you can have multiple logs for a single drive... its up the the user to eliminate unwanted logs when done with them. 11) Added additional logging into ParseBurninTestResults and ensured that the text is null terminated after loading which may resolve a crash that can sometimes happen. 12) Added HUH model to force HITACHI manufacturer string. Version 12.10.9 (released 07/31/2018) ----------------------------------- 1) Modified IdentifyDevice logic so that if NVMe Identify is successful, UnitSN and WMIC arent consulted at all, which might overwrite a good value. 2) Added a recovered errors are ok flag, so that it doesnt trigger warning messages or reissue commands for certain operations (like Sanitize Device). Under normal operation, recovered errors are reissued as of 12.10.X. This flag bypasses that change. 3) FillCapacity now only skips FillInquiry on HDDs, not SSDs, that are not ready. 4) Controls have been added under Erasure Settings->Verification Options to disable Pre-Seeding, EVEN FOR SECURE ERASE/SANTIZE/etc. This is not recommended unless you have a very specific case where youre failing out or taking forever to do the seeding and logging. This setting should be reverted when the problem has been dealt with, as it serves a VERY useful function and provides assurance of the erasure having been done properly. 5) In ExectuteProgram for batch files, found GetSystemDirectory was replaced with GetSystemWow64Directory. This had no effect as the sysdir variable was no longer being used. sysdir has been removed along with this call. Version 12.10.8 (released 07/28/2018) ----------------------------------- 1) Forced MapDrives() to always redraw the slot, whether it found a new one or not. Version 12.10.7 (released 07/27/2018) ----------------------------------- 1) Changed Advanced 1 category in Customize->Interface to read Advanced Configuration 2) Increased the size of the Customize->Interface window to accomodate some newly moved controls which were out of bounds. 3) Operator Privileges classes are now available rather than needing to assign permissions on a user by user basis. 4) Forced redrawing of arrays after mappings are complete to eliminate data from previous drives being shown. 5) Fixed a burnintest configuration loading issue by copying the bit configs into memory at startup so that the FindTemplate function can locate it. 6) At customer request, have removed the messagebox notification for This system seems to be in AHCI mode, but isnt using EPS_AHCI driver. Version 12.10.6 (released 07/25/2018) ----------------------------------- 1) Decrement Charges for values less than 0 are now skipped rather than interacting with the license server. 2) Log Hash for WriteStamp is now written from a saved variable rather than recalculated from the log to make sure the values match.) 3) Reduced the number of checks that could display OFFLINE in the physical interface. Most scenarios should now simply show the mapped ID or an empty black rectangle. Reserve the right to put failed-offline back into the mix if it becomes a problem. 4) Only drives with NVME in their device string will now issue NVME identify functions. This may benefit certain Mac laptops (without NVMe drives.) 5) Serial numbers max underscore count has been reduced from 4 to 2. This should mean that certain models will now be using SN_ and WWN_ serial numbers instead of whatever is being pushed in emulation by the HBA driver. This will cause an alternative SN gathering mechanism to trigger which may be more accurate. Version 12.10.5 (released 07/17/2018) ----------------------------------- 1) Modified physical interface logic for display. Offline is now the primary text when trives get removed. The secondary string is now the SlotID (or SN if the SlotID was 0) Version 12.10.4 (released 07/16/2018) ----------------------------------- 1) Delay after adapter reset is reduced from 1000ms to 800ms. Delay after FIND_NEW_DEVICES reduced from 800ms to 500ms. Delay after all Rescans are complete is increased from 0ms to 3000ms. Hopefully this results in drives being usable after a rescan more reliably without incurring too big a rescan time penalty. 2) NVMe Format will not be used if it is an ATA drive with access to Secure Erase instead. (This may never be possible.) Also, NVMe Format now takes lower priority than Sanitize and Secure Erase commands. 3) NVMe Format can be disabled entirely in NIST Settings->Allow NVMe Format by setting the value to OFF. This will also bypass SCSI Format, resulting in a Clear overwrite pass more than likely. Version 12.10.3 (released 07/13/2018) ----------------------------------- 1) Drives that end CreateDeviceEntry as STATE_DEAD will stay in state dead regardless of what the erasure log says. 2) Fixed device state and buffer allocations for Removed (non-running) drives that are reinserted. 3) Added new group-permission templates to the Operator window to make it easier to set up new users. 4) Fix for device removals not reflecting the removed state in the physical interface.. scenario where enclosure services tells of a device removed before windows removal message processed. 5) Recovered SCSI errors (0x01) and offline->Online recovered drives will now be logged and the IO reissued even if assured by the drive that everything was fine to ensure that the data is written. If the retry results in another 0x01 error, it will move on instead of trying again (and eventually failing.) 6) ATA_FlushCache temporarily removed until it can be further tested/validated under more conditions. Version 12.10.2 (released 07/05/2018) ----------------------------------- 1) Added a hexstring-identifier function to the fallback WMICSN code to differentiate between drives able to use the string as-is (seagate on intelide driver) and drives needing to convert hexadecimal to ASCII (samsung drive on pciide) Still only applies to IDE and SD drives, with the assumption that SCSI drives will always have good values. Version 12.10.1 (released 06/28/2018) ----------------------------------- 1) Added small additional delay on bus scan to hopefully get initial drives recognized on certain Mac notebooks without a rescan. Version 12.10.0 (released 06/28/2018) ----------------------------------- 1) On detecting any non-USB drive with a volume label beginning with EPS or EPS_ the drive is now added to the discard file configdevices.ini so that the drive will be discarded even if getting the volume information has failed. This is a safety feature. 2) Added ability to Skip Erasure in the Post-Erasure->Reimage segment. This allows you to reimage without burning an erasure license. 3) Added controls to XERASE allow LCserver level on control of options from the customize menu. 4) Temporarily disabled Generate System File menus until logic can be worked out. 5) Makor XML and Database uploads are only created/performed if either an erasure license or burn-in-test license have been used. Using the software to upload without performing a licensed action is not supported. 6) All data collection events at startup (keyboard test, display test, system condition, etc) now use a Burn-in-Test license if not previously used. One license will cover any and all of this testing. 7) Resolved an issue where discarded USB devices could stop a bus scan prior to all devices being discovered. 8) Fixed a bug when trying to see if a device has already been allocated in the list, if referencing an entry that hasnt been mallocd. 9) Added a new method (WMIC) to aquire serial numbers if the traditional direct methods do not work. IDE and SD connected devices translate ASCII Hex to ASCII, other devices use the values as-is. 10) PE Profile selection now happens before AHCI warning, Megaraid clearing, etc, so that the Profile can dictate behavior. Previously it would have gotten those settings from the default config/xerase.ini file. Version 12.9.7 (released 06/20/2018) ----------------------------------- 1) Fixed a bug caused by a typo which was causing a premium problem in desktops and causing PE boots to act like desktops. Version 12.9.6 (released 06/19/2018) ----------------------------------- 1) SD card drives without media are now discarded from the drive list. 2) Fixed a problem on erasure startup if drives had gone offline before a startup-fail check. Version 12.9.5 (released 06/15/2018) ----------------------------------- 1) Added OS compatibility flags to the manifest and optimized OS detection on startup to get better information into Debug_XERAS.txt. 2) Some WinPE erased laptops are returning Invalid Parameter duing the Prevalidate Opcode segment. The reason for this is currently unknown. If this happens, The prevalidate will retry with a smaller transfer size, and if it happens again will assume the drive needs to be formatted/secure erased. 3) LSI physical drives now delay bus probe by an additional 2 seconds to get the drives to come online and be fully responsive before talking to them. This seems to eliminate the UNAVAIL capacity issue. 4) SCSI format commands are now allowed to tunnel through LSI megaraid low level interface. This command does not get reset/interrupted like the Secure Erase command does. 5) SCSI format commands are now assumed to work unless the drive specifically tells us otherwise. This means that drives which do not support the opcode-query mechanism can still be formatted. Version 12.9.4 (released 06/11/2018) ----------------------------------- 1) Added if(iblock_ranges) to end of region check for write loop. No known current problems, but more correct. 2) Added Power on hours to Glist Slot-combo information. SMART1 was grouped with SMART2 and so on. All SMART info is now Premium only. 3) Reduced size of Media Viewer window vertically to better fit on some PXE screens. This may require scrolling to see the end of a block, but manual checking of data blocks is best done using reference hashes for efficiency and accuracy anyway. 4) Registry cleanup happens via two different programs. Removing one of them for the time being to see if its the cause of the system disk occasionally becoming non-bootable. 5) Offline drives that return no longer crash the program. 6) CSV report output now replaces any commas in data fields with an underscore so as not to misalign the cells. 7) Updated CopyLegitString scenario for NORMALIZE_STRING flags to work better with a limited string copy destination and to automatically handle carriage returns. 8) The base config/sysinfo file is now written in XML instead of TXT format and is now persistent unless you trigger the Tools->Confirm System Info menu. AssetID is now saved into the file and reloaded so that its always available for logging. Version 12.9.3 (released 06/06/2018) ----------------------------------- 1) System Asset ID is now included automatically on System Reports. It may be blank if the information was not entered. 2) System Processor, System Memory and System AssetID can now be line items on a drive list report. 3) Sorting the device list is now completely restricted to pushing empty device structures to the end of the list. No rearrangement by SCSI ID, Phys, Serial Numbers, etc will happen. This will make it easier to keep track on drives by order of detection. 4) Makor XML files can now be named via Asset ID, rather than always using the asset Serial Number. This may make tying assets together easier. Customize->Interface->Program Settings->Set Makor URL. Check Asset ID and update. 5) Asset ID information is now a part of the System Configuration and will be saved into our XML files, an tacked into drive logs. This will be left blank unless filled in by the user, either by using Tools->Confirm System Information or enabling the window on startup by Customize->Interface->Startup->Confirm System Information (Always) 6) Look for the first, rather than the last, Erasure Results segment in the log to deal with a double-ending scenario that only crops up in very specific circumstances. Version 12.9.2 (released 06/01/2018) ----------------------------------- 1) Modified bad serial number filter to work on systems having O.E.M rather than only O.E.M. (extra period) Version 12.9.1 (released 05/31/2018) ----------------------------------- 1) Fixed Copy Prompt for USB override so that the Cancel button allows you to dismiss the window. 2) Force failing an undetected drive was causing device 0 to be set to state failed. This has been corrected. Version 12.9.0 (released 05/18/2018) ----------------------------------- 1) Replaced the WriteSame Ratio value with a hard minimum speed value (MB/s) to make things easier to understand and tweak. The default is 60 MB/s and probably appropriate for a typical expanded scenario. For high bandwidth scenarios you can set this value much higher to encourage Write usage. For very large numbers of drives on a single connection, reducing this to 10 or less may yield best results. 2) Improved support for gathering information and erasure of NVMe drives on Windows 10 (boot_10_x64.wim) 3) Added support for Core(TM)2 parsing. 4) Octane opcode optimization extended to Laptop and Tablet chassis also. 5) Adjusted the code to fabricate a valid WWN3 based on WWN2 for certain odd SAS/SATA hybrid drives. This allows the Octanes to map these drives into the Physical Interface correctly. 6) Added an optimization to the Prevalidate code to allow internal Octane ports to run at maximum speed by never using WriteSame opcodes on those ports specifically. This is only a good idea when you know the hardware and know that there is no bandwidth trade-off. 7) Removed a check in MapDrives() that would prevent calling AssignDriveToSlot(). Perhaps this eliminates a weird mapping issue (timing?) Version 12.8.1 (released 05/11/2018) ----------------------------------- 1) A modification to our recursive find-files function to improve the Copy-to-USB-Function broke the Ultraportable licensing due to not being able to tell that the unit was an ultraportable with specific licensing methods. This has been fixed. Version 12.8.0 (released 05/10/2018) ----------------------------------- 1) Changed the Reference Hash LBA to 1 instead of 0, to avoid hardware overwriting the boot block on reboot and causing a validation error as a result. 2) As part of an effort in increasing font scaling in the physical interface, some logic changes had the side effect of making label bar codes too small. Label barcodes are now always on the bottom, never in a column, and the font is much larger horizontally. 3) OverrideCopyPrompt now defaults to 1. This means that if the override folder isnt writable then youll be warned and asked to reinsert/reconnect the override folder. This MessageBox now has a Cancel option to skip copying the files. 4) The software now keeps track of the number of log and report files copied at the end of erasure to the override folder. If the OverridePrompt flag is set, or if using a network folder, any errors will generate one or more message boxes detailing the problem. If OverridePrompt is set, then a Copy Complete message will show if no errors occurred. 5) Added a new window that can be used to confirm or override System Information. Customize->Interface->Startup->Confirm System Info can be either Never, Always, or Confirm on Error. The last one will only trigger if an obvious serial number issue exists. This window can also be triggered from Tools->Confirm System Info. Any changes should be performed prior to starting an erasure to ensure proper file linkages. Version 12.7.8 (released 05/04/2018) ----------------------------------- 1) Fixed a problem with acquiring licenses from the License Server due to a change that was partly, but not completely, backed out from 12.7.6. Must be used with License Server 7.1.5. Version 12.7.7 (released 05/04/2018) ----------------------------------- 1) Fixed a problem with Enclosure Services serial numbers being fixed to be unique non-WWN values as introduced in 12.7.6. ES Serial Numbers are expected to be WWN in for Physical Interface purposes. Version 12.7.6 (released 05/03/2018) ----------------------------------- 1) To facilitate the AHCI check, all systems now Enumerate PCI devices and write them into the log file. 2) LoadDriveLogs() now allows Failed_ as legitimate in addition to Failed! so that a rare error that can occur wont cause the logs to be useless. 3) Most CopyLegitString calls are now ALLOW_ALL instead of ALL_NORMAL just in case its the cause of the log Failed_ condition. 4) FOR PXE/USB booted systems, Ignore USB flag is now disregarded as some (apple) devices have hard drives which are connected via USB bus. USB sticks labeled EPS as the first 3 letters of the volume name will still discard those drives for safety. INSERTING OTHER USB STICKS WILL CAUSE THEM TO BE SEEN IN THE DEVICE LIST AND POTENTIALLY BE ERASED. Be aware of this issue! 5) Added an additional SKU checks. 6) Recycler warnings and reasons are now cleared on start of erasure if it wasnt done manually beforehand. This leaves things cleaner in the interface 7) To accomodate a bug with Intel IDE drivers, WWN substitution for serial numbers has changed. We now specifically detect if the SN is the WWN and replace with our own string that should be unique, which was not the case with Intels. The flip side of this is that reloading log files to resume/etc on drives not having real serial numbers is no longer possible as a unique SN string gets created each time the device is rediscovered. 8) PROMPT_IF_NOT_AHCI triggers if it doesnt find any ahci drivers loaded, or didnt find eps_ahci. Messages and proposed remedies change depending on the situation. If enabled, and eps_ahci is found, no warning will be issued. 9) Saved and reloaded flags for OVERRIDE_COPY_PROMPT and PROMPT_IF_NOT_AHCI values. User interface to configure it not yet complete. 10) At end of erasure, if OverrideCopyPrompt is set to 1, the program will warn if your override directory is missing and instruct you to reinsert the USB key (or reconnect the network.) The software then makes a final copy of the logs folder and the report folder. Default is still 0 for now. 11) Customers using elog files no longer get partial unencrypted files written to the USB stick to cut down on user error. 12) Removed ability to view encrypted logs as techs were using that as a save-as for individual files. May corrupt the file, rendering it useless. Version 12.7.5 (released 04/24/2018) ----------------------------------- 1) Makor file now doesnt list undetected keys on the keyboard to remove clutter and have same logic as PDF reports. Version 12.7.4 (released 04/24/2018) ----------------------------------- 1) Added proper CPU parsing support for Pentium class processors. 2) Added Orientation 5 to support Supermicro enclosure services layout in Physical Interface. Version 12.7.3 (released 04/18/2018) ----------------------------------- 1) Finally removing subdevices from physical interface. It was never really used, and could potentially cause issues. 2) Reload of workspace data now ignores slot information for enclosure-services mapped files, in case this is overwriting the slot_number information. 3) Did debug logging for ESS mapping in case its being accidently triggered to change slot_numbers. Version 12.7.2 (released 04/09/2018) ----------------------------------- 1) Fixed a bug causing a false expiration date warning. Version 12.7.1 (released 04/09/2018) ----------------------------------- 1) Fixed a bug related to generating OnePage reports which would cause a crash. Version 12.7.0 (released 04/04/2018) ----------------------------------- 1) Right clicking over a Physical Interface Array with Enclosure Services enabled and mapped, will now let you view a list of the attached WWNs/drives as seen by the enclosure. 2) Software detects if a drive is being instructed to do a Secure Auto, Secure Erase, or NIST 800-88 rev1 Clear and if so, checks the Frozen bit for the drive. If the drive is frozen, a warning pops up and asks if the user wants to abort and change the BIOS. 3) Reporting at end of batch now happens based on a list of all drives started, rather than all devices still in the device list at report time. 4) Made code adjustments to replace the EPS PDF logo if removed to protect branding. Version 12.6.5 (released 03/30/2018) ----------------------------------- 1) Small SATA SSD drives are now assumed to be mSATA type. 2) Drives using the IDE hba drivers which arent responding to SATA commands will now still be identified as SATA drive types (though it will only erase via SCSI opcodes.) In theory they could actually be IDE, but the likelihood of that at this time is slim. 3) SCSI format opcodes are now tested during the bus probe so that the erasure will not attempt to use it if not supported, resulting in a failure. (Samsung NVMe drives) Format is no longer ASSUMED to work. 4) The x64(wim) version of 12.6.5 can now load the eps_ahci64 driver, and unfreeze system disks. Many other AHCI drivers were removed to accomplish this. This shouldnt impact anything, but may need to be adjusted. Version 12.6.4 (released 03/26/2018) ----------------------------------- 1) Reorganized the keyboard test window to bring the Submit button higher in case it may have been off-screen for some reason. Also changed the font text to use the scaling font technology we use for labels/physical interface. 2) Added a CloseHandle call after a launched process completes in ExecuteProgram to mirror a new ShellExecute call for admin level launching. Not clear if this was necessary or not, but may eliminate a resource leak. Version 12.6.3 (released 03/08/2018) ----------------------------------- 1) Added new drive model default assumptions for SATADOM formfactor, and speeds of 2.5 and 3.5 drives if not specifically specified as 5400 and 7200 rpm respectively. 2) Added support for SCSI Sanitize opcodes in Windows 10 on EPS hardware! 3) Cleaned up some health check code to make sure that some logic is working off the drive-specific variable rather than the global. This will allow changing health grading files dynamically without causing issues for drives currently running. Version 12.6.2 (released 03/06/2018) ----------------------------------- 1) Fixed a problem with null seek grades causing 100% health reductions. Version 12.6.1 (released 03/05/2018) ----------------------------------- 1) Makor file output was overriding the model field for Memory with the FormFactor field. Version 12.6.0 (released 03/02/2018) ----------------------------------- 1) Drives connected via Megaraid controllers have been tested and verified to successfully erase with Sanitize Purge Crypto and BlockErase commands. These commands will be issued by Xerase natively instead of being farmed out to DiskErase. 2) NIST: Prioritize Cryptographic Scramble is no longer OFF/ON. Its options are now: Never, Always, and Before Overwrite. Before Overwrite is the new installation default. In this mode the priority for Purge commands is BlockErase->Crypto->Overwrite 3) Drives with substandard seek speeds were getting their health scores dinged up to three times (once for seeks, once for Random Writes and once for Random Reads) for what is essentially the same problem, causing drives with minor speed issues to look unusable. The program now only applies the negative value once, which will be the worst of the three. 4) Some EMC drive models are reporting Curr/Wrst values for Read Error rate as 1 with a threshold of 0. This is an attempt to hide the data, and not an indication of a bad drive. In this scenario the software will now give it a grade for that attribute as 100%. 5) The less than 1.8 drive description has been changed to Small so that the LT sign doesnt cause problems for XML. 6) Xerase/LCserver have optimized LCserver licensing startup, eliminating redundant queries and bypassing a cloud numbers update for LCserver on Xerase startup (test flag). 7) 12.6.0 is capable of connecting to a series of LCserver sockets in sequence until it finds one available. These LCserver sockets are present in LCserver 7.1.0 and up. Version 12.5.5 (released 02/26/2018) ----------------------------------- 1) Added additional IDR checks at the top of the IO issuing functions... shouldnt be needed due to the calling functions checking things, but cant hurt. May result in fewer crashes due to bad drives. 2) Removed some IO duration calculations that arent needed for XErase, and may have been causing drives to fail erasure if the IO in question happened over a Tick-Count rollover (ERROR_ARITHMETIC_OVERFLOW) with the software assuming that calculation error was an IO error. 3) Drives in a laptop (PXE/USB) are always assumed to to be 2.5 if not specified specifically be the hardware. Drives in a tablet as assumed to be M.2, similarly. 4) Drives reporting a 5400 RPM speed now default to a 2.5 form factor if the drive doesnt report otherwise. SSDs and Hybrids are also assumed to be 2.5 form factor. Version 12.5.4 (released 02/22/2018) ----------------------------------- 1) If Self-Diagnostic is enabled in health and grading, and running Pre/Post erasure health checks, the Post was using Extended. This has been fixed. 2) Xerase will now automatically switch to Cloud mode if config/cloud.ini is present in PE mode (USB boot.) 3) Added License Server reconnect code in the case where the server was down or too busy at startup. The Xerase Initialization code in this case will repeatedly attempt to connect and determine license quantity, etc. Drives started while its still in Demo mode will wait until this initial thread gets data instead of noting that you need to RECHARGE and exiting. Version 12.5.3 (released 02/19/2018) ----------------------------------- 1) Fixed a crash that would happen on right clicking over a physical interface drive slot if no drive is currently inserted. This was tied into the new Model Override system. Version 12.5.2 (released 02/19/2018) ----------------------------------- 1) Updated the File/Folder browser to be more consistent and allow quick-navigation to a Client Override folder (an override folder on this system, but that isnt being used directly.) 2) Added the ability to release hardware reservations on enterprise class storage drives during the bus scan. Version 12.5.1 (released 02/16/2018) ----------------------------------- 1) Fixed XML output for DisplayTest flag. Version 12.5.0 (released 02/14/2018) ----------------------------------- 1) Re-organized Wipe Status combo box order to make it easier to use. 2) Added Drive Type to the Database mapping. 3) Added HDD_DEVICE_TYPE tag for reports. The Sample report templates will use this instead of RPM and FORMFACTOR going forward as its cleaner and has more information available. 4) Changed grading file handling for drives in an attempt to make the file loads more reliable. 5) Changed the Cloud login window to hide email/password/companyID fields when using Hardware Key licensing to eliminate some confusion. 6) Added a new button on the Customize->Interface window to save the current configuration as a new profile for convenience. The user will still need to use Customize->Method/Rule/Profile Filter to add it to the list of choose-able Profiles in the menu. Profiles are only available for Premium users, so will be greyed out for XEBASE customers or lapsed legacy/hardware licensing. 7) Added detection capability for ZeroExt drive erasure, RZAT (Return Zero After Trim), and Trim support. These flags may be used in future releases. 8) XErase now displays more information about the drive than before. If data is unknown, assumed defaults are used. (ie. 3.5 drive, SAS for scsi type disks or SATA for ata types, etc.) This will tie into a new menu option that allows you to override incorrect assumptions about the drive and save that corrected data to the model file so that future usage is correct automatically. This data can then be used in reports and database access. 9) Modified serial number detection routines to disallow drives reporting SAS addresses as Serial Numbers. We will do that ourselves with the WWN_ tag prepended if necessary, which makes it clearer what this is. 10) Added preliminary support for Hybrid drive detection hints and processing. In Erasure Settings you can indicate whether Hybrid Drives should be treated the same as SSDs or not. This may allow nonvolatile cache to be erased via Secure Erase, Purges, etc, but with the associated SE tradeoffs in usability. 11) Added code to handle devices which have the SATA PowerDisable bit set as part of the PUIS removal process. This will require a power cycle for the drive. This function is speculative and based on the ATA spec. It has not yet been tested against a drive since we havent found a device supporting this feature. This may explain certain drive behavior such as Hitachi AMS or set-top boxes that were still undetectable after the PUIS removal process. 12) Added periodic ATA disk cache flushes to minimizes chances of buffer overflow/firmware bugs resulting in lost writes. This might help with some LSI megaraid writesame issues? 13) Added code to discard cdrom files early in the bus probe so that WIMs that contain certain cdrom drivers become accessible faster. Version 12.4.1 (released 02/08/2018) ----------------------------------- 1) Added code that will attempt to use some known manufacturers Master Passwords to remove previously installed User Passwords so that a drive can be Secure Erased. This will not necessarily work, and is a last-ditch effort Version 12.4.0 (released 02/06/2018) ----------------------------------- 1) System grading is now available in the System report based on System Condition answers and pass/fail status of other tests. 2) Restructured the System Report for PDFs to add a Testing row, which can include Display Tests, Keyboard Tests, and Burnin Tests. Output is optimized based on tests run. 3) Fixed some log-loading problems associated with Reporting so that more fields are available in the report. Specifically ChassisType information was collected, but could never be output. 4) Added MAC address to the System Information section of the reports for an additional identification option. 5) Removed Missing/Undetected Keys from reports. The user is expected to flag Bad keys manually by clicking on them with the mouse to be listed in the report. Version 12.3.8 (released 02/02/2018) ----------------------------------- 1) Added real SCSI error logging to Sanitize function so that the sense buffer is interpreted for the user. 2) XERASE Database export to EPS Xtrack ERP software now updates CreatedDate and ModifiedDate entries automatically. 3) PXE systems doing tests should no longer redo the tests if you shut down the program and relaunch, even if no .pxe file is present. This is a convenience function and eliminates multiple burn-in-test licenses being used as long as the system isnt rebooted. 4) Display tests for PXE systems will now also do Touchscreen tests if the drivers are installed and Windows can do that operation. Windows 10 can do touchscreen. Presumably 8.1 can as well. 5) Updated Setup.exe (4.3.0) to support better operation with Beta and Customer Keys. This includes a new Official Customer Key mode. 6) Added data parsing for Pentium class processors in system info/database/reports. 7) PDF report output has been adjusted slightly for better margins and to allocate more space for Report Information strings. 8) Dynamic Log path substitution for reporting has been removed from the code since the GUI hasnt supported this operation since version 12.0.0. This shouldnt change behavior at all. 9) PROMPT1, PROMPT2, etc values gathered while generating a report are now copied back to the global variables for re-use, such as in naming a report. 10) More substitutions are available for folder/report strings. Added YEARMON which gives a single string consisting of the Year_Month. YEARMON_PREV gives the same format, but for the previous month. Also added are DOCID which is the full documentid of the report just generated, DOCID1 which is the first segment of DOCID (the system or drive serial number as appropriate), and DOCID2 which is the second segment of the DOCID, effectively a random string to help with filename uniqueness. 11) Added the ability to name the report automatically using the same string substitutions found in folder names. This is blank by default and will continue to use the DocumentID. Version 12.3.7 (released 01/24/2018) ----------------------------------- 1) Secure Auto -> NIST 800-88 rev1 Clear overwrites will now be 1x on hard disks and 3x on SSD drives. 2) Secure Auto -> NIST 800-88 rev1 Clear (1x or 3x) no longer causes etoken warnings which result in no Hash. 3) Some grading templates can cause inconsistencies for logging. This has been resolved so that the local drive health files get used as appropriate. 4) The thread startup code now checks to ensure that new threads arent being created on a drive that is still running somehow. If this scenario is detected over the course of 10s, it gives the user an option to cancel the startup entirely, cancel just those drives, or continue. If continuing, the software attempts to terminate the thread forcefully and close the handles before attempting to restart. 5) The Post-Write pause introduced to allow a drive to spool cached writes to the media was not being skipped on Failure/Abort actions. As a result, it was possible for the user to restart erasures on a given drive before the drive was completely done which could cause various issues. 6) Depending on timing, it is possible for a user to press the Abort button during a Retry loop, and the Retry loop overrides to a Good state while still exiting, causing the program to think that the erasure is over. The software will now not allow the retry to fix the state after a retry if its being aborted. Version 12.3.5 (released 01/11/2018) ----------------------------------- 1) Fixed a bug whereby a failure of the transfer size during busprobe would incorrectly list that transfer speed as usable IF it was the same speed as MaxTransferSize as specified in the INI file. 2) When Using the Premium menu, and an Override folder is detected the program will ask if you want to make this the new default xerase.ini. Also a modification to CheckForConfigurationPrompt() that shouldnt change behavior. 3) Fixed a bug in the Log Monitor and Analysis tool, which was causing the devices to be broken down by GradeFile instead of Grade. 4) LCserver/Xerase now support a special profile called Create New WIM Image. When selected, Xerase will launch in a special WIM-ripping mode to capture a configured WIM and save it to the override folder. 5) Change in Imaging methodology... Imaging settings in the profile are now the defaults and overridden by the model files if they exist and/or have a setting. MBR is the default partitioning scheme as it always works (until you get to drives > 4 TB). Not all systems seem to support GPT partitions. 6) TEST IMAGING - removed /s flag from bcdboot Version 12.3.4 (released 01/02/2018) ----------------------------------- 1) Fixed a bug that was causing all drives which support Secure Erase to issue a Secure Erase when using NIST 800-88 rev1 Clear method, without regard for NIST configuration settings. Version 12.3.2 (released 12/21/2017) ----------------------------------- 1) Megaraid Physical and Hybrid modes updated to use Storlib for FW version 7.x. In theory this may cause problems for firmware 5.x and 6.x, but so far havent seen the any issues in the limited functions we use. This MAY get rid of some stability and speed issues on some LSI/Dell adapters. The newer libraries seem slightly faster on the same hardware. 2) Fix for display updating in Megaraid FAST mode with 12.3.x code. Version 12.3.1 (released 12/20/2017) ----------------------------------- 1) Storelib is always initialized whether or not the program begins with Megaraid support enabled. This allows moving between modes cleanly. Version 12.3.6 (released 01/16/2018) ----------------------------------- 1) Rearranged standalone SCSI Format/Secure Erase wipe pass parsing to happen before Write Pass in the order of operations. 2) Extended the Sleep time after a write pass from 5s to 10s to allow additional time to push the data from cache to the media before verification. 3) system condition grading implemented, allowing different answers to downgrade conditions. A system is the lower of any modifiable value. A pristine screen/system with a grade C keyboard is grade C. Version 12.3.0 (released 04/10/2023) ----------------------------------- 1) LCserver code for EPS_DB_WriteEntry seemed to be hardcoded to not follow the database policies. This special case behavior has been removed and it should now follow the regular database logic. This really only impacts Chromebook as the database logic for PXE is handled by Xerase. 2) Created new Startup Event customize->interface category and several of the Pre-Erasure Events will move into that to properly separate things that happen once, vs things that happen every time a drive starts. Some entries in Pre and Post Events are being removed. 3) Fixed problem creating report columns for SMART IDs. 4) Implimenting a Megaraid Hybrid mode, which allows the bulk of the erasure to be done on the luns. Modifications to IO routines should auto-select the appropriate functions based on the LBA. There may be problems with ATA WriteSame due to the structure. (see ATA_WRITESAME()) May have to explicitly change modes and do a more complicated arrangement if problems arise. Version 12.2.9 (released 12/12/2017) ----------------------------------- 1) SMART mapping into the database now uses -1 instead of a blank if the value is unknown. This allows mapping into database integer fields instead of string fields. 2) Adaptation of code to use new physical_tid variable instead of tid to make the Megaraid code Hybrid-Agnostic... works in either old or new code. 3) Better support for low-level self-erasure commands via MegaRAID physical devices. SCSI Format, SCSI Sanitize, and SATA SAnitize are confirmed to work. SATA Secure Erase gets interrupted. Will disable the ability to do this so that the code falls back to overwrites. 4) Bundled updated LicXfer program into the build. Version 12.2.8 (released 11/27/2017) ----------------------------------- 1) Fixed a bug that was causing some report titles not to render correctly. 2) Added a prototype for FindNextRangeLBA and converted all unsigned __int64 lba variables to signed lba variables for compatibility. The mismatch was causing the software to believe that drives over 2TB were MUCH larger than 2TB when using a rule. Version 12.2.7 (released 11/23/2017) ----------------------------------- 1) Added some crash guards inside the SES light code Version 12.2.6 (released 11/21/2017) ----------------------------------- 1) Fixed Makor XML file reversion to an older problem format. Version 12.2.5 (released 11/21/2017) ----------------------------------- 1) Fixed a bug with report templates introduced by new Xerase Mobile features. Version 12.2.4 (released 11/21/2017) ----------------------------------- 1) Allowed ATA Writesame on megaraid adapters again after fixing the bug that was causing crashes. 2) Removed RecyclerTests causing early busscan termination to determine if these are contributing to instability. Version 12.2.3 (released 11/20/2017) ----------------------------------- 1) Fixed a crash in the makor xml file generation that could occur if devices got removed while the file is being generated. 2) Updated Folder/File browser window to discard empty shortcuts and add the root mount point (example: E:) for each available drive on the system. This includes mounted network subfolders. Version 12.2.2 (released 11/17/2017) ----------------------------------- 1) Patched the software to change SCSI Sanitize support to a value of 2 rather than 1 if running on Windows 8, 8.1 or 10 which will block the SCSI command and cause a failure. Value of 2 will cause that method to not be selected. If/when we have a workaround for various scenarios this can be selectively changed. 2) Fixed a bug with etokens resulting in non-certified logs for drives erased with NIST 800-88 rev1 Clear that ended up using 1x or 3x erasures. 3) Generic USB licensing can not create reports at all, and the log files are encrypted. Use EPSboot to decrypt. This licensing feature is only available to select customers. 4) Force the use of the final grade even if the rules for that grade dont work (user error.) This means that grade-less drives are no longer allowed. Should a grade-less drive somehow happen anyway, the grade will be set to Grading Error. 5) Added code to log whether grading is happening against locally loaded structures or global structures. 6) Random Read testing, intended to gauge access times, doesnt do data compares anymore. This handles the case where drives are caching the writes and were trying to read the data too quickly, causing a failure. This may speed up drives slightly, causing fewer to get flagged as inferior compared to the previous slower baseline. Version 12.2.1 (released 11/08/2017) ----------------------------------- 1) Added Erasure Process PDF to the Help menu that describes the erasure process, and documents fully the Dynamic Erasure methods like NIST 800-88 rev1 Purge and Clear. This is accessible via the Help menu. 2) The final health grade is ALWAYS assigned now if no better grades were available, even if the user-defined grading scheme doesnt work. Falling through without a grade is no longer possible even if desired. 3) Fixed a bug in auto-formatting to fixed corrupted format, which was introduced in 12.2.0. 4) A memory manufacturer was adding many extra spaces to the manufacturer field. This caused crashes in the license server when database insertion was happening. When gathering system info, all fields are now Normalized to strip off extra spaces. 5) Prompting window functionality expanded to allow combo box selections instead of just Edit fields. This gives us greater flexibility in requesting certain types of information. Currently users can not access this mode of operation, but that may change in the future. 6) Makor XML files being generated had the tag shortened to at some point due to shared code, which causes the Makor WebDiagnostics process to be unable to use these files. This tag has been reverted. 7) Preliminary support for certain large customers to use the elog licensing scheme. Not yet released. 8) Added ability to find/reload .elog files for drive status, and prevent reports from being able to access them. 9) Fixed several crashes having to do with Xerase One-Page report generation due to being triggerable from the force failure window and related mechanisms. 10) Fixed a problem with reloading dev->rndrd_kbs from the MEASURED RND READ smart table.. it was actually overwriting dev->rndwrt_kbs. 11) For imaging we now expect windows image files to follow this naming convention to make it easier to lookup drivers, etc. The word Win10 should be there for Windows 10, and either x86 or x64 depending on the bitness. If these settings arent found in the name then the program will assume Win7 x86 as it currently is installing. 12) FindTemplateFilePath now only looks in an override folder for files if the local folder isnt found. This was causing problems in the rare configuration where an OVERRIDE.txt file is in the config directory, telling a system to use another location as override, but that share is disconnected. Version 12.2.0 (released 11/02/2017) ----------------------------------- 1) Added an automatic reformat sizing pre-stage to that ITAD companies can push all 520 byte per sector drives to 512 for consumer sales. 2) Added Recycler Mode parameters to customize->Interface->Recycler Mode. This allows Premium subscribers to auto-fail recycler warnings (except bad SN) and tweak the Glist and POH limits before warnings happen 3) FindTemplateFilePath now uses FileSize to determine whether the file exists at a location instead of Stat(). 4) OnePage reports now treated the same as drive-labels and will be immediately generated at the end of the erasure. These reports do not pop up in a PDF viewer. This impacts both Mobile and Xerase. 5) Recycler Mode Premium now allows adjustable values for Glist and Power on Hours warnings, and can be configured to automatically fail instead of merely warning so that log files are present and save the user a couple of steps. Warning->Failed can not happen for invalid reported serial numbers as the user needs to gather that from the drive label. User fields are not currently gathered in this failure. To enter userfields either Force Fail them again, or use the Cogs button to add userfields to the curren Version 12.1.7 (released 10/27/2017) ----------------------------------- 1) Fixed a problem with Userfields into Database when more than 1 Userfield is defined. 2) Added extra IOCTL debugging info. 3) Added a couple of new format varieties to attempt to handle certain model SCSI drives that werent responding to our previous versions. Version 12.1.6 (released 10/26/2017) ----------------------------------- 1) TestForMaxTransferSizes locked into an infinite loop if device block size exceeded 4096 bytes. The program should now be able to handle any size block going forward. 2) Reduced delay on device insertion from 10s to 3s. The delay was to give windows time to gather device information like partitions, etc. Will adjust further if we seem to be having issues. 3) Preliminary support for ATA Max Accessible LBA settings and resizing. Detection only right now. Resizing/release to come later. Version 12.1.5 (released 10/24/2017) ----------------------------------- 1) Xerase in PXE mode will now prompt for Windows licensing information during startup if the Profile is configured as Image License (value = 2.) This is used later in the process to activate windows after imaging is complete. 2) Userfields can now match by text/name instead of the whole value, which includes , which gives the user the flexibility of switching the Prompts used to gather the data without needing to change the database mapping. 3) Userfields were not mapping into the database. 4) Database fields in queries are now enclosed in appropriate delimiting brackets (`` for MySQL, [] for SQL) to be able to access fields containing spaces. 5) Default block size order has been flipped... 512 is the default and 520 is the alternate. This makes it easier to use the new Resize SCSI block size function in the most likely manner. 6) Fixed a bug in the Database Configuration window that could have been assigning status field to the wrong value (in this case, duration.) 7) Added a new Advanced menu to Customize->Interface which presents certain previously hidden values. Modifying any of these values can have dramatic effect on your ability to detect drives, speeds, etc! Change at your own risk or if instructed to by EPS for a given scenario. 8) Discovered a bug in the CSV SYSTEM report code which could cause a crash or data corruption. This was probably also in XML and Text SYSTEM reports. An unformatted string array was passed for output. This string is now set to System Info. This may not be the same as in previous versions, and cause post-processing scripts to break until adjusted. 9) Added a means to change block sizes for SCSI drives as part of the normal workflow. The format will substitute for the first Write pass or Format pass. If the first pass is a Sanitize command or a verify, this happens before those actions and does not substitute. 10) See if theres any way to get certain SCSI based hard drives to spin up. Added multiple parameter attempts to the spinup commands to see if certain drives respond or not. Version 12.1.4 (released 10/20/2017) ----------------------------------- 1) Restored Mode Page listing functionality that was intended to be released in 12.1.3 but didnt get compiled in. 2) Fixed a problem with populating the Database Configuration window in XErase. Version 12.1.3 (released 10/19/2017) ----------------------------------- 1) PUIS removal support improved. 2) SCSI drives now have a context menu to create a Mode Page file listing all of the drive settings for comparison to the spec and other drives of the same model. 3) Drives that were Secure Enabled before erasure will not have valid opcodes saved in the start of the pass function. After a successful secure erase, the program now finds the new opcodes so that validation can continue without failing. (Drives that were in a normal state initially were processing correctly.) Version 12.1.2 (released 10/18/2017) ----------------------------------- 1) Fixed a flag that was causing inconsistent ATA status coming back to us. This could cause some failures that shouldnt be happening. 2) Bus probe compatibility adjustment for Micron SSD drives to skip attempting ATA WriteSame command as this would cause them to go offline. 3) Added back in the ability to do ATA-opcode-only erasures so that drives that dont support ATAPI can be erased. Version 12.1.1 (released 10/17/2017) ----------------------------------- 1) Secure Erase is no longer displayed as Write 1/1 in the GUI to avoid confusion. 2) Issuing a Sanitize command that isnt actually supported (or fails immediately) no longer goes into an infinite launch loop and will properly fail. Version 12.0.7 (released 10/16/2017) ----------------------------------- 1) Reloading of SMART table values from the log now happen from the most recent SMART table, not the first one. Other logic updated in that area as well. Version 12.0.6 (released 10/13/2017) ----------------------------------- 1) Actually EPS Installer v4.1.1 change. Installer will now install customer keys automatically again after normal installation, but only IF other things were installed, or the file is newer than the old one. Customers can force the Customer Key install by changing the version to Customer Key instead of Official. Error messages may happen with new delete folder method for customer keys, but it actually worked. 2) RebootProof auto-resume is removed for x86 bootables. It is still present in 64 bit due to the uptime issue. 3) Report templates can now add user fields (subtype of DEVICE_FIELD), even if the user field template on the system doesnt have an entry for that. Version 12.0.5 (released 10/12/2017) ----------------------------------- 1) Xerase can now use Premium->Choose Profile menu even for USB/PXE boot if .pxe files are available. Version 12.0.4 (released 10/10/2017) ----------------------------------- 1) ReportGen logic for determining column names for User fields has been updated to use the first drives logfile, rather than using the name in a loaded DeviceUserField. This eliminates a problem that can occur if the user field file isnt available on the system generating the report. 2) Reporting functions determining types of prompts, etc, now using strncmp() instead of strstr() to eliminate problems caused by UserFields which include prompts to fill them. Version 12.0.3 (released 10/09/2017) ----------------------------------- 1) Added messaging at the end of a write loop to indicate lbas, etc in the Debug and drive logs. 2) Pass duration message changed to an Abort message if it is in an aborted state instead of normal running to give better log feedback. 3) Added blanket kick-outs for CheckProcessDriveEXEs() and UpdateProcessDriveStatus() so that they dont do anything if SupportMegaRAID or SupportCISS isnt equal to 2. 4) ProcessRunning now frees up the allocated memory when no processes are found. ProcessKill has a different logging message now to eliminate confusion. Version 12.0.2 (released 10/06/2017) ----------------------------------- 1) Modified View Change Log to read the new filename being used. 2) RecyclerMode warnings should no longer override Passed/Failed status messages from reloaded log files. 3) SES_SetLEDState now returns immediately if EnclosureServices support is disabled. Might eliminate a device-removal crash. 4) In order to avoid running out of memory on very large drive batches, Bseed logic now calculates number of running drives and decreases the max transfer size at various pre-determined thresh-holds to conserve memory. 480 -> 160k max. 640 -> 128k. 800 -> 86k. 1000 -> 64k. 5) If a drive supports blockerase it must be an SSD drive, so manually set the bit even if the drive isnt reporting it accurately. 6) Changed Bus probe logic so that RPM detection is ALWAYS called on SCSI drives. Previous logic contained a scenario where it might get skipped over, causing a problem with designating an appropriate erasure method. Version 12.0.1 (released 09/29/2017) ----------------------------------- 1) Log files are now updated immediately after charges are pulled so that crashes during health, etc, dont cause lost licenses. 2) Length of data segment to prevalidate is now a function of transfer size, as very small transfer sizes are slow and this causes the Prevalidate stage to take more time than needed. 3) Prevalidate read errors will now fail out rather than allowing the erasure to proceed and then failing later. 4) Prevalidate removes some always-on delays that allowed de-spooling of cached writes introduced in 12.0.0, and added in a single retry on reads (after a delay in only this case.) The additional 2-3 seconds per drive on small batches was negligible, but caused a fairly long startup time when doing large numbers of drives in a batch. Version 12.1.0 (released 10/17/2017) ----------------------------------- 1) Modified resizing logic slightly to not issue SET MAX ADDRESS on 48 bit capable drives. 2) If Secure/Sanitize failure, on retry ask if that mode should be disabled so that a different method can be attempted. 3) Finally can detect Sanitize-Frozen mode correctly, rather than assuming non-frozen (even though thats most likely the case.) 4) Organize the erasure methods list so that the preferred Automated methods are at the top of the list. Version 11.3.1 (released 11/30/-0001) ----------------------------------- 1) Adding a User Field Name to PXE Configuration -> User Field Templates causes License Server to crash. The entry was saved when License Server is restarted. Version 12.0.0. (released 06/26/2017) ----------------------------------- 1) Added in appropriate Makor-override methods when PXE booting AND MakorURL is set. (previously only allowed the erasure in xerase.ini/.pxe) Version 12.0.0 (released 09/25/2017) ----------------------------------- 1) Upgraded Serial number filter to allow up to 8192 serial numbers (from 1023) and threaded the search routine as this could take a long time if searching through 100k files. 2) TUR_NotReady flag is now cleared on starting a SCSI format for better user feedback. 3) Software updated to handle MacBook Air laptop memory for upload to Makor/database. This creates bogus memory serial numbers if 0x00000000 is the returned value, and does a more flexible memory manufacturer lookup if the data returned is in different formats. 4) Changed localminspeed to a double in SavePointAction. 5) Lenovo laptops now swap SystemVersion and SystemProductName for consistency with other manufacturers. 6) Xerase PXE client now sends the Database ini file that its using to License Server. If this isnt the file that is currently loaded, LCserver should load up and then connect to the appropriate database. 7) Database checking and database file conversion now happens automatically. Can trigger this or an even lengthier window on the Database Configuration window. 8) Related to the above change, we can no longer use element 0 as the recid field (self incrementing identity integer) as we dont know the name of element 0. From now on, we simply assume a field exists in the table named recid with these properties and will query it appropriately no matter where it is. HOWEVER, this means that if someone has a recid field named differently it will stop working! (ie. recid, not RecID or RecordID) 9) Removed the need to query the database (or the license server, which queried the database) to determine table structure as of 12.0.0c4. However, this means that field TYPE can not be determined on the fly. All fields are assumed character unless specifically specified (either hardcoded in xerase, or perhaps in the database configuration file.) 10) Fixed an intermittent Cloud Licensing problem due to an uninitialized buffer size variable. This code is shared between Xerase, License Server, Mobile, and License Transfer tool. 11) CSV, XML, and text report methods need to be updated to show subcategories/implementation of erasures (ie. clear (1)) 12) Updated GenErasurePlan() to properly handle Clear and Purge routines. Update Purge and Clear wipe methods. 13) Modified Clear and Purge rev1 routines to eliminate the mandatory NIST Slice and use the normal erasure verification options. This means that the process may not be fully NIST compliant until drive verification happens after the fact (preferably by a third party.) 14) Added mfg standardization code for Crucial in StandardizeMfgString() and specifically flagged HGST drives with both HUS and ASS in the model string as SSDs. This include SAS enterprise Ultrastar models such as used in IBM PureApp systems. 15) After Bulk Forcing, youre now given a chance to open the folder where the logs were written by pressing OK. Cancel will shut down the messagebox taking no action. 16) Bulk Forcing now can fill the serial number lists in two ways: All Recycler-flagged devices, or all devices that are in state Selected via List Interface. 17) Drive FormFactor string has dropped the double quote to represent inches, and its merely implied. This allows the field to be used with Database injection. 18) Removed presumably redundant call to IOCTL_STORAGE_FIND_NEW_DEVICES and time delay in GetNTDevices(). Added timestamps. 19) Health and grading now allows compatibility setting overrides so that self-diagnostic and/or other problem routines can be skipped without creating a new grading file. 20) Premium menu adds a Compatibility mode cascade menu, which allows us to quickly change configuration settings to be compatible with problematic hardware. Current options are NetappMK2AT. A revert menu is also available. 21) Found Xtrack_GetAssetType comparing a string to an integer. Updated to loop through a lookup table to consolidate several laptop/desktop types into laptop/desktop. Also, bios_info.Device[c].Type was being output to a string, despire being an integer. Conversion function probably needed... short term just outputting the integer so that it doesnt crash. 22) EPS_SQL_GetDBInfo and EPS_MYSQL_GetDBInfo now pre-determine fields in tables devoted to drive and/or system serial numbers and set the table type (Drive or System) for convenience later. 23) Hard drives now store their own grading profiles rather than using a common one. This will allow grading files to change dynamically in the future without causing issues (per job, etc.) 24) Fixed a problem with reports including/prompting for data associated with PROMPT1/PROMPT2/etc. 25) OPCODE_PROBE value of -3 does the interesting scenario of not testing opcodes, assuming WriteSame works, but SCSI Writes do not. 26) Block sizes of 520, 524 and 528 will no longer attempt to departition to save time. Windows currently doesnt understand those sizes and would be enterprise level drives. 27) Updated the Media Viewer window. More data visible at once (past 512 bytes) and added a Skip Block fields to specify how many blocks to advance/decrease when hitting the >> and << buttons respectively. 28) HBA_SCSI_STORBLEND (Megaraid/windows hybrid) seems to work properly if the user manually breaks the raid prior to booting the unit. 29) Changed logic so that erasure methods are reselected based on Makor overrides. 30) Moved the pass-increment on new erasure start upward in the process so that failures during health check will update the previous entry rather than adding a new one if Overwrite DB Entries is not enabled. (g3) 31) Expanded the Wait for Makor-Method options to include waiting for a user to modify the value in Makor, but then ignoring it and using the locally configured erasure method. This allows you to use Makor as a pause button while still using the enhanced flexibility that the EPS platform allows. (g3) 32) Added logic back into the Database to make it respect the Override Entries checkbox in the database config window. This is not as obvious as it sounds though. On a newly started erasure for a device, unchecked will create a new entry. Subsequent updates will update that one. More problematic are Force Failures and log uploads... new entry or update of an entry? Currently asking on upload, for force, we ask in bulk mode or if drive pass state cant be determined on single mode. 33) We have a small number of laptops where the BIOS does not report a serial number (blank). Is there a way that XErase can prompt the technician to enter a serial number in for those units? That way Makor can grab the specs for the audit. 34) Fixed a couple of bugs in the resume code to make sure that ATA WriteSame doesnt continue prevalidate and has legitimate opcodes/register sizes. 35) Made a change in the Add/Remove code to attempt to better handle large numbers of redundant add/remove messages for the same device in only processing the most recent. Not totally clear that this is always better or that there arent problems in this adjustment yet. 36) The busprobe code will automatically ENABLE SMART operations for any ATA device which has had it disabled. This impacts drive repair companies using Kronos and maybe others. Without SMART, grading and self-diagnostics can not work. 37) Added new xerase.ini flags to allow certain hardware to function properly: IGNORE_GLIST and IGNORE_PURGE_OPS.For Netapp DS14 MK2 AT operation, the following settings should be used:MAX_XFER_K = 40IGNORE_UNITSN_PAGE = 1 IGNORE_GLIST = 1 IGNORE_PURGE_OPS = 1 38) A 1.25s delay is added between writes and verifications in Prevalidate routines, and a 5s delay post-write in the Erasure routine. This delay is designed to give the disk time to spool writes from the disk cache to the media prior to verifying that the writes succeeded. 39) Updated Drive OnePage reports to include FormFactor and MaxLBA entries. 40) Reports, Labels, QR codes, and Database mappings now support Maxlba and drive Form Factor. 41) Added MaxLBA and Form Factor to the report struct. 42) Prevalidate code now updates percentage complete per test. 43) Updated the Prevalidate code to ensure that it stays within any rules boundaries and increments properly. Length of the writing area is again based on acceptable writesame length, rather than a static amount. LSI controllers have smaller writesame legal lengths. Might have also fixed a data compare bug in some circumstances which would cause write-same to not be available. 44) Removed the force-to-Purge code in INI Initialization. While this worked for standalone units (octane/portable) it has been causing issues for PXE and USB booting. Replace with a simple notification for non-PE execution in the future to make them aware of it. 45) Temporarily(?) removed Sanitize BlockErase, Crypto, and Overwrite drive erasure commands from Secure Auto until better controls can be put in to bypass them if needed. 46) UserField and System condition definitions are now restricted to Users that have Customize Interface permissions. 47) Rules are now only usable as a Premium feature. 48) Fixed Rule generation window for skipping blocks at the very end (LAST_BLOCK) of the disk which was off by one block. 49) Physical info sidebar info field updated to better display userfield info. 50) Userfields can be of type Normal, PROMPT1-4, FILE, SYSID, SYSSN, EPS_ENV (environmental variable name), or OPERATOR 51) Default SystemID type is changed from 0 to System Serial number. This can be modified to Windows System Name in Customize->Interface->Program Settings->SystemID type 52) Simplified Userfield value reloading from logs to always simply go in-order rather than trying to match up labels. This means that changing userfields in-use has the potential to cause values to get misapplied. On the upside, more userfield defines can be easily handled. 53) Added detection of 02/04/04 sense data to indicate a forma in progress, and returns good status to the calling routine so that the program can move into the waiting loop. 54) Removed all references to SLOT_IDENTIFIER keywords as the code has not actively used them in several years. 55) Force Erasure Results window wasincorrectly flagging single-device force failure as not having a serial number shown. 56) Recycler mode now influences Format/Secure Erase for SCSI drives, in that previously Reallocated Sectors (Glist) are not pushed back onto the media when enabled. 57) Included a special naming exception for the naming convention of device fields in an XML report to revert back to the previous SERIAL_NUMBER rather than SERIALNUM tag for backward compatibility. 58) Logged and/or enabled additional Sense Data for ATA drives that support the feature. Currently not using it. 59) Added testing for Sense return on ATA drives in bus probe, and made error checking less specific for ATA Passthrough errors on the SATL interface. 60) Updated Intel CPU parsing for Makor to properly handle Core i5 CPU strings. 61) Fixed a problem with ATA Sanitize command sizing. Incorrectly using a 7 byte rather than a 12 byte command (EXT). Some drives worked with the 7, but not all. Hopefully this will allow Intel SSDs to Sanitize properly. 62) Fixed an incorrect Beta Overwrite warning for SCSI drives while doing a Cryptographic Erasure. 63) Crashing when attempting to reload a log file with an entry not properly truncated with a carriage return. Updated via CopyLegitString and the new CR_TERMINATED flag from the report log loading function to be more robust. 64) Post-Rescan Makor file now works even in non-PE mode. 65) CopyLegitString has been updated to streamline it. We believe it is a more robust implementation, but certain functionality was removed and not sure if the program relies on stripping out prepending and characters or not. Thus far I cant find anything that seems to be amiss with it gone. 66) LoadGradeFile and LoadGradeFile_Healthcheck now accept optional parameters so the same functions can load into non-standard structure locations for reporting, etc. 67) Added saving of gradefiles into drive logs so that this same file can be reloaded for doing OnePage reports which have detailed information. 68) On a Failed grading in Drive OnePage, the grading stats will be compared to the previous Grade and items that dont meet that Grade will get flagged in Red. 69) Fixed an infinite loop bug triggered by a drive with Failed grading on a Drive OnePage template. 70) Makor XML file now includes elements for Processors and Memory. If these devices have no SN, or identical SNs then QTY will increase. If actual SN values differ, then there will be multiple entries of 1 QTY each. 71) When doing large numbers of drives from different systems (ie. PXE booting laptops), loading the drive logs could cause an overflow in the Notes array since each new system gets a note. The Notes array size now exceeds the System Array size by a fair margin, AND the overflow scenario has been rectified so that it cant cause problems even if it happens again with the larger values. 72) Recycler Mode toggle has now been moved from Premium menu to Customize->Interface->Program Settings. 73) Force Erasure Results window now has a Bulk Recycler mode for convenience. 74) Release mode crashing in CreateReportNow() should be a thing of the past. 75) Right Clicking over a drive entry that is IDLE or SELECTED will present an additional item in the context menu to Clear Recycler Warning. This will allow you to unflag the drive, and bypass automatic behaviors that will be inserted into the Prep routine soon. 76) Added new functionality to Recycler Mode to flag problem drives with a pre-warning during the bus probe. If these drives are NOT attempted to be erased, system stability is much improved. 77) Modified SMART table parsing when gathering Reallocated Sectors to be able to skip over blank entries (0 for Attribute IDs) and discover the remaining SMART attribute values. 78) Hitting the Abort button on the physical interface will not override the state on all drives (except process drives) 79) Dramatically reduced the timeout values for bus probe Spinups on non-responsive drives. 80) Modify Start/End date parsing code in the database query builder to eliminate(?) crashing for an unknown reason. 81) Fix to sidebar info-window to display data in integer instead of hex format. 82) Change to ATA SMART parsing routines to accommodate odd drive firmware which leave blanks in the SMART table. 83) If an offline device comes back online via DeviceArrivalThread(), but doesnt still have read/write buffers available they are allocated. 84) Upgraded report gen to allow up to 25k drives in a report. 85) Post-Erasure health checks now only happen if the drive successfully completed the Erasure. 86) Added additional logic as a failsafe to make sure failed drives get removed from the start batch. 87) Eliminated a longstanding bug in which using the Build Report window with Saved Sources could result in multiple copies of the same log being added to a report if extra directories were added. 88) Fixed SQL BuildNewTable function to work with report devices for the Log Analysis window. 89) creatediagnostic zip is crashing when launched due to restart. Removed for the time being until recursive issues can be addressed. 90) REGISTRY_CLEANUP_TIME moved to xerase_local.ini so that multiple non-pxe stations can share xerase.ini files and still get notified properly for this station. Examples include using an Override.txt file to redirect Xerase to load configuration settings from a common source. 91) Makor HardDriveInstructions function only applies to HDDs now. All SSD drives will interpret and values but 0 and -1 as requesting a NIST 800-88 rev1 Purge if possible, and the drop-down logic as configured on the system. 92) MakorConnect timeout reduced to 5s from 10s, and returns immediately if MakorURL is not set regardless of UseDatabase being on or not. (UseDatabase needs to be on to upload drive status to Makor.) 93) Bseed startup wait code adjusted to remove messageboxes and attempt to let batches start running after long waits. This will not be ideal behavior, but might stop some problems (and perhaps cause others if multiple batches are in the active-IO stage of prep at the same time.) 94) Database Upload button on Log Anaylsis window now uses a Report structure so that it can properly upload the source computers serial number to the database instead of the uploading systems serial number. 95) New xerase.ini tag. if BUSSCAN_MODE_FEATURES is set to 0, some of the more exotic drive setup commands are skipped during bus probe. If set to 2, it also skips checking for the drive being ready (prior to capacity and opcode testing.) 96) filter selector on the Log Analysis window works again. It was broken adding the Status/Sizes radio box. 97) Updated WWN acquisition and matching to accommodate certain SAS drives, by having 3 possible WWN values. Also, displaying the LONGSN value in the busscan, setting up making it available for labels/reporting. 98) Added a flag for disabling Secure Erase as an option in a NIST 800-88 clear. This flag can be set to 0 (never an option), 1 (option for SSDs only), and 2 (always an option for all drives) 99) Unrealistic Speed comparisons now start after 250 MB/s (prev 170 MB/s) and happen if the Write Speed is greater than 65 MB/s and the WriteSame Speed is more than 3.5 times the Write Speed (previously, 3 times) 100) Unrealistic Speed comparisons now start after 240 MB/s (prev 170 MB/s) and happen if the Write Speed is greater than 65 MB/s and the WriteSame Speed is more thant 3.8 times the Write Speed (previously, 3 times) 101) Added keyboard shortcuts ALT-S and ALT-D to Select All and Deselect All devices in the list. 102) Copy button on the View Media window is available after checking a small box in the lower right corner, and aquiring an Arming Code from EPS. This will help remote debugging without making data theft easier. This functionality shuts itself down after 5 Copies to clipboard. 103) Further refinement of LC server connections (for other purposes) even when using direct cloud licensing. This should almost never be happening anyway. 104) Fixed some remote database (ie PXE) code. 105) Fixed makor xml file generation which had reverted to an older system_xml file format during the beta through a string modification which should have passed the parameter. 106) The function that categorizes the drive state post-erasure was not taking erasure state into account when looking for Media Error messages, etc, erroneously showing Media Error tags even if the drive passed (ie. the retries worked) These sorts of errors will ONLY be cataloged for FAILED drives now to reduce confusion. 107) Setup updates for Xerase will now move user templates of various sorts out of the older config subfolder location to the appropriate newer locations. For example, Report templates are now stored in C:XERASwinReportTemplates 108) Report Window removes XERAS_override combo source and adds Filtered Logs. Filters allow you to specify a top level directory and only load appropriate log files. As a result, date range selections controls have also been removed. Use Filtered instead. 109) Abort will now terminate Self-Diagnostics. CLAR model drives will no longer be allowed to issue an Extended Self Diagnostic as the CX enclosure seems to keep it in diagnostics indefinitely. 110) SATA disks may have incorrect WWN values reported. These were gathered with SCSI Inquiry Page 83, but SATL is making up a WWN (based on Host Adapter 111) Default SSD erasure method is now NIST Purge on a new install. This method isnt allowed to be run for non-Premium so should be changed to Secure Auto. 112) RulesRules.ini is deleted the first time you run version 12 so that youll automatically have access to the new standards and the Diagnostic with Writes Allowed wipes. If youve restricted access to methods youll need to do this again. 113) Once a month, the software will remind you to clean up the Windows registry of leftover drive footprints to keep the system running smoothly. 114) Cloud Configuration and Cloud License Transfer menu options are now under the Help menu. License Transfer is a new ability that allows you to push and pull licenses to/from the cloud onto the Licensing dongle. 115) Trials no longer pop up the old waveguard protection window, but will pop up the Cloud Configuration window instead. Until successfully connected to the cloud (trial account), all controls on the page will be disabled. 116) The new random write tests would fail if stopped and resumed, AND doing grading at beginning and end. The variables were not being reinitialized from the log file, and the Rnd Wrt/Vfy test does not get run again at the end. This left the impression of a very very bad test score which was subtracting 200 from health. Now, the values are being reloaded from disk so grading should behave as expected. 117) Some SATA drives behind interposers are emulating a SCSI self-diagnostic, but instead of succeeding when we ask for a status update the drive responds with a check condition indicating NOT READY , LOGICAL UNIT NOT READY, SELF-TEST IN PROGRESS . The software has been modified to handle this scenario also without excessive logging of errors. 118) Added Rules_filter_file variable and so that in the future profiles can toggle their appropriate rule sets. In addition DefaultRulesFile is now DefaultRule and will set the rule to a specific Rule automatically rather than having a user do it. This will mostly be useful for PXE scenarios. 119) Added Start on Discovery setting to License Server. 120) Xerase, license server, and other tools will check online to see if there are newer versions or themselves and notify you in the title bar. When you see this notification, youll need to exit the program and run setup.exe to perform the upgrade. 121) Configuration files are being reorganized! Many elements that were in [INTERFACE] are now getting moved to appropriate [PRE_ERASURE] and [POST_ERASURE] regions. For compatibility purposes, the program will continue to load out of [INTERFACE] as well, but this will disappear at some point in the future. Please resave xerase.ini and .pxe files in the new format before that happens. 122) Custom Report naming is removed from the interface and configuration files in deference to the new DocID naming system. 123) Discovery Timeouts have been removed. Enclosure Services mappings and other means of populating the physical interface has made the scan-and-wait method unused. 124) Post-Erasure Health Checks can now do Seeks testing and Self-Diagnostics again, but will be downgraded to Extended SelfDiag if set to the Selective ReadScan SelfDiag. Ie. Selective is only valid in Pre-erasure. 125) Added BSEED startup code that checks for redundant serial numbers and asks how the user wants to deal with it. Best Practice would be to Abort and figure out WHY there are redundant serial numbers. Retry will modify a redundant serial number so that logging isnt compromised (but erasures might fail if its the same physical disk seen twice). Ignore continues on and will likely have issues. 126) Netapp X423_TAL drives (Toshiba FCAL) put non-unique serial numbers in the base SCSI serial number location. This number is a piece of the (presumably unique) Unit Serial Number. XErase will only use the unit Serial Number on this model from now on. 127) TestForMaxTransfers no longer tests ATA commands, which could cause problems for some devices (some USB and NetApp ATA MK2?) 128) XML output report option is now referred to as XML Database Export, as it will include every system if running a System Report Template rather than breaking it our into a number of discrete files. This is basically the same as previous behavior. File names of the XML file will have changed to coincide with the new DocID naming scheme, however. 129) Opcodes and MaxTransfers are now tested on USB drives, but restricted to likely successes. 130) Fixed a bigdrive writesame opcode bug if DoOpcode was set to -2. -2 means writesames untested but allowed, but it was always using 0x41 instead of 0x93 for large drive sizes; 131) As part of enabling SMART attribute 507, changes were made to the code to integrate UpdateManufacturingStatistics() again to keep track of this. May possibly cause ATA IO error tracking issues? Need to keep an eye on this. 132) Added virtual SMART attribute 507 to SCSI Health grading. RAW and Raw0 507 is the Soft Error count accrued during an Erasure. This value will be 0 pre-erasure, or if no write passes were run. Also, RAW1 is the Hard Error count (0x3 and 0x4). RAW2 is the total error count. 133) Recycler Mode also enables the Post-Error bit on SCSI drives now. This will result in Recovered (Soft) Errors (0x1) if the drive was able to recover on its own, rather than potentially hiding the results from us. These errors will not fail a drive, but will increment the SoftError count that can now be tested against. 134) LoadReportTemplate no longer takes place when you hit the build report button, so that Prompt answers can remain between reports. If you switch to a different report, or shut down/restart the report window then the LoadReportTemplate takes place and clears previous answers. 135) Glist updates of -1 were showing as 4294967295 (ie FFFFFFF in hex) and refused to update a database. glist is now cast as a signed int from the int64 and should no longer have this problem with databases. 136) Embedded or additional report with log files has been removed. To our knowledge no one ever used this feature. Similarly, Insert_Systeminfo for appendix of systems was also removed in the interest of simplification. 137) PROMPT1/PROMPT2/PROMPT3 in report templates (report level) are no longer processed. Instead they are replaced by USER_FIELD0/USER_FIELD1/USER_FIELD2. The values in the log file of the first erased drive will be used for the report field, much like Erasure Method Description. 138) Added virtual SMART attributes 506 to Health grading. 506 is the difference between the glist value (reallocated sector count) collected at discovery vs the value at the current test. Ie. if a drive initially is discovered with 2 reallocated sectors, and this becomes 5 by the end of the erasure, then the RAW value of 506 will be 3. 139) Added virtual SMART attributes 505 to Health grading. 505 works on ATA devices only, and is the sum of id 5 197 198 to get a grand total of questionable sectors on the drive. 140) System Reports are now individual documents, unless using Database Export output formats. If you select 3 systems and press the Build Report button it will generate 3 unique PDFs, CSVs, etc. rather than having 3 systems all bundled into one file. 141) Some customer scripts that parse CSV or TXT files may need to be adjusted to compensate for two new lines of DocID, Date, and Time of the generated report which have been added as lines 0 and 1. XML files have the additional fields available, but should not cause any problems for any reasonable XML parser. 142) LogParsing for report generation is cleaned up by pushing more of the work into the CopyLegitString wrapper. Should also be minimally faster as illegal characters are no longer tested. 143) Fixed a back-looking folder routine for Report Generation to properly allow monthly decrements instead of using a 30 day adjustment proxy. This eliminates problems with shorter/longer months. 144) Stock Grading Profiles for non-premium have been loosened up slightly on Reallocated/Pending Sector Counts. Grade A/B/C are now <1/<10/<20 respectively. 145) Reports now list drive notes prior to methods and rules for the sake of HTML/PDF formatting. 146) New Erasure Description text method is available. If you add Erasure_descriptions/AUTOSWITCH.txt to your report, then it will select the most appropriate of our default descriptions for use. The one that gets picked is based on the first device in the report you are building that has an Erasure Method other than Unknown. 147) A new default Report Template is included that utilizes Landscape mode and is NIST rev1 reporting-compliant. 148) OnePage templates for Xerase and XMobile now allow you to specify an tag. If you do, that image will get automatically also copied to OnePage_logo.jpg so that template updates wont change behavior. If OnePage_logo.jpg exists and the template doesnt explicitly ask for a different one, then it will be displayed. 149) The automatic Print Report feature for Xerase-PXE is now finished. LCserver >= 6.4.1 is necessary. 150) Added the ability for Physical Interface slots to be numbered backwards, both horizontally and vertically (ORIENTATION = 2 and ORIENTATION = 3 in the template file) Also Enclosure Services mapping now goes to the Slot Number rather than a the slot index. 151) Start-on-Detection drives were not apparently prompting for information and locking up. This seems to be a matter of the window not being popped TOPMOST, so hidden from view. 152) MissingDrive logs (so that equipment without hard drives can be entered into assert trackers and/or generate reports) now are prompted for UserFields prior to creating pathing and the log file. 153) Extended Self-Diagnostics was not properly setting their expected testing times. This was causing failures. 154) Fixed a problem with rendering erasure method names which included an 155) Updated OnePage log generations DocumentID to include the drive serial number. Other internal changes. This resulting DocumentID is also the file name. 156) Removed Reporting from 2 year old SCSI SMART logs. Consolidated SCSI and ATA SMART table parsing for log loading into report structures. 157) Removed Hard/Soft/etc Errors from the Physical Interface sidebar to make room for Glist and Power-on-hours which are more useful. 158) Drive notes are fully implemented in OnePage Reports. A single Reason is displayed, and may match one or more of the entries under the quicksummary column on the right. 159) System Serial number is now being saved into the Write Stamp data to accommodate some companys erasure and auditing policies. 160) In order to accommodate the OnePage report, additional Drive Fields were added to the Report Template. These can be used in normal table reports as well, including software/version, rules, log hashes, etc. 161) WWN parsing on log loading for Reports/Labels has been fixed to remove the NAA WWN prefix. 162) The Drive OnePage report template has been added to XErase. This template is designed for high legibility and use of space, and as a result has been hardcoded and is not customizable. If multiple drives are selected, one Report will be created per drive. Adding OnePage.jpg to the images folder will allow you to add your company logo. Version 11.4.1 (released 02/09/2017) ----------------------------------- 1) Added Logging and visual feedback for the different types od Self-Diagnostics. 2) If a grade name is saved in xerase.ini without a .grd extension, it is now assumed for loading purposes. Version 11.4.0 (released 02/09/2017) ----------------------------------- 1) New checkbox added in grading that causes the software to get SMART data logging info prior to running any tests (Seek, RndWrt/Rd, Self Diag) so that comparisons can be made before and after 2) Selective Self-Diagnostics are now supported, with 25%, 50%, and 100% of the media readscanned as options. 3) Self-Diagnostics, Seek testing, and Random Write/Read are only valid in Pre-Erasure. These will be skipped in Post. Self-Diagnostics/Seek might return in Post if the software allows Pre and Post to use different grading files. 4) Added Enable PUIS as a Premium feature in Post-Erasure events. Version 1.3.1 (released 02/02/2017) ----------------------------------- 1) Fixed a title bar charges display bug that was causing wraparound to negative numbers for very large values. Version 11.3.0g (released 01/31/2017) ----------------------------------- 1) FormFactor added to device list and physical interface RPM display. Version 11.3.0f (released 01/31/2017) ----------------------------------- 1) Grade File auto-conversion from the oldest method is now removed as obsolete. 2) Premium menus now enabled when using Cloud XELT charges. 3) FormFactor for SATA drives now able to be output to Labels, Reports, and Databases. Form Factor is now part of the RPM tag if available so will work automatically. 4) Added FormFactor field to device structure for SATA drives. This will be propogated to labels/reports in the future. (GetFormFactor() in report.c creates the string) 5) Random Write/Verify testing has been added to Grading. Failed commands and data comparison will FAIL a disk. Speeds for write and read/verify are saved and can be used in Grading profiles. 6) Power On Hours in the log/display updated at end of erasure. Version 11.3.0e (released 01/27/2017) ----------------------------------- 1) Log-loading will no longer overwrite power on hours as saved plainly in the logs with interpreted data out of the SMART table. Also, if SMART table interpretation happens, RAW will use the same logic as the testing, ignoring RAW2 since some vendors/models populate that memory with junk data. Version 11.3.0c (released 01/19/2017) ----------------------------------- 1) Battery info for Makor integration broken down into more modular XML. Up to 4 batteries supported and empty/non-functional batteries are reported. Storage information for Makor now comes post-Rescan and uses real drive data instead of WMI. 2) Added Report Times, Date, Product and Version to System Info XML and reports, including Makor Reports. This information was also recommended for NIST reporting compliance. Version 11.3.0b (released 01/17/2017) ----------------------------------- 1) GetFormatTimes could crash if a memory area was allocated without zeros. An explicit NULL termination was added to the function to prevent the crash. Version 11.3.0a (released 01/12/2017) ----------------------------------- 1) Removed ATA and SCSI WriteVerify option as these, even if chosen as best, conflict with ever-more-stringent reporting requirements. It is now impossible for the program to ever get into this state. Version 11.2.0 (released 01/12/2017) ----------------------------------- 1) Renaming Workspace in physical interfact design might crash. 2) Creating a new operator leaves random permissions that needed to be fixed up after the fact. Now a new user gets all permissions. Delete permissions to remove. 3) Abort After Secure Erase policy is no longer always implemented for SATADOM devices. 4) Format and Sanitize for SCSI devices now poll completion percentages instead of guesstimating 5) Use of Abort after Secure Erase will now copy files to override so that they arent lost on reboot. 6) Provisional support added for SCSI Sanitize spec when using SecAuto methods. This will test the following order: BlockErase or Overwrite first, Cryptographic Erase next, and then falling to the current scenario of Secure Erase/Format if the others arent supported. 7) Labels can now update bold/alignment. 8) Version checking now ensures that a recid field is present, and/or tells them about other problem. This can also be triggered from the Database configuration window. Version 11.1.4c (released 12/21/2016) ----------------------------------- 1) Makor PXE operation bug fixed which was keeing the appropriate xml file from being copied to the override folder. 2) MegaRaid connected SSD drives now offer a popup offer to convert the erasure to a 3x NIST Purge w/ Verify. 3) SSD devices which remain Secure Frozen now offer a popup offer to convert the erasure to a 3x NIST Purge w/ Verify. 4) MacBook Air devices now enable USB drives automatically. 5) ALL Clariion drives (MFG contains CLAR) now ignore the unit serial number outright. Version 11.1.4b (released 12/19/2016) ----------------------------------- 1) Preseeding is now automatically applied on the use of a TRUERANDOM pattern in addition to the previous instances of a Secure function 2) If VerifySeedData determines that random data was the result of the previous write, then the comparison checks that the blocks are NOT EPS pattern only. A subsequent verify (ie. to other blocks with unknown initial data) will simply log the blocks for manual verification. This logging will never fail automatically. A footnote will be added to the drive in any report. 3) Seeds are automatically applied when doing TRUERANDOM writes now, in addition to secure functions. The new seed quantity is 1000 up from 500. Version 11.1.4a (released 12/08/2016) ----------------------------------- 1) Fixed a serious bug that was causing relaunches of Process drives (generally LSI Megaraid and HP Perc controllers) 2) DISKERASE can no longer save product ini files. DISKERASE has been recompiled with Visual Studio 2015. 3) VerifySeedData now takes place immediately after the end of the first Write pass, before any hashing would happen. This provides better symmetry for operations, and potentially fail earlier if theres a problem. 4) PXE loading of xerase_local.ini requires systemid/systemsn to already be configured before LoadConfiguration() is called. Get_BIOS_information() and other files moved slightly upwards in the code. Version 11.1.4 (released 12/07/2016) ----------------------------------- 1) If is empty then will be substituted so that a null substring isnt a result from ExpandDynamicDirectory. 2) Various folder strings have been moved out of xerase_struct to eliminate some string copies that could potentially lead to various problems, including Generate-Report-On-Completion creating the report in the wrong location. 3) In PrevalidateOpcodes there was a lookup function defined to determine if writes should be tested. An out of bounds index on a newly started erasure (pass == -1) could crash the program. This has been fixed. Version 11.1.3 (released 12/02/2016) ----------------------------------- 1) Prompts to Userfield copying was only working for Prompt1. This has been fixed. 2) Feature Tests (reimage, burnin) are now integrated into the initial LC licensing connection for a PXE client to cut down on number of connections necessary to start. Also, the initial LC_CheckProtol has been removed. It may be added back later if it can be more easily in-lined also. 3) LC_SyncTime added back to the code to set the clocks on the client systems when using a license server. 4) Removed SkSpec 02 not found error logging. 5) Customize->Interface->List SMART1 option is actually controlling SMART2 display. 6) The CopyLegitString function has made the ALLOW_PRINTABLE_LOWASCII_ONLY option always on, to remove all weird characters that can cause issues. This should fix a bug in XML report output if an open-quote (0x93) shows up, but is generally better all-around. 7) Hitachi model HUA722020ALA33SM has inquiry SN data that is identical on all drives, which is throwing off our SN optimization algorithms. New rule added so that UnitSNs smaller than InquirySNs do not attempt the common substring filter. This seems to satisfy the Seagate drives subject to the previous method also. 8) Fixed a problem with parsing System Condition reports and generating a PDF report with that information. 9) LoadControlFromDirectoryEx now passes in the extension type instead of defaulting to mode 2. This might cause unexpected formatting in some controls. 10) Added a space in between the Burn-in-test results and Devices in the system report. 11) Burn-in-Test code moved to PXE startup, after keyboard test and system condition, rather than being part of an erasure. This allows BIT to be run on systems without hard drives. A missing drive log for PXE systems will be created automatically if no drives are detected, so that reporting works properly. Version 11.1.2 (released 10/25/2016) ----------------------------------- 1) HITACHI DKR2J-K600FC seems to have a problem with start/stop unit command with 0x10 arg and go offline when it is issued. DKR2 drives (first gen Hitachi FC) will ignore that command. Version 11.1.1 (released 10/19/2016) ----------------------------------- 1) Unclaimed device probe no longer halts if an adapter refuses to respond to an inquiry IOCtl. This halting was keeping some Enclosure Services devices from being discovered. 2) Report sorting: Added Status->Date->SN. Removed Date->Status->SN and User1->Status->SN. The removed sorts are redundant with ones using Grades if not Grading, and if you are Grading, you want them sorted that way. Version 11.1.0 (released 10/04/2016) ----------------------------------- 1) Updated the copy protection to provide 60/45/30/15 and 7 day warnings of expiring support when using a direct plug-in license. 2) Restart Erasures is now clearing data_seeded flag so that reruns arent comparing blocks that werent specifically written to at the beginning of the erasure. This doesnt cause problems, its just confusing in the logs. 3) Refreshing device handles, getting opcodes again, and retrying a prevalidate a second time never improved behavior and just slowed things down. This is now removed to simplify and speed up the process when bad drives are involved. 4) Recycler Mode 5: Prevalidate Opcodes doesnt allow retries after failed commands. 5) Added additional logging for UpdateLogDevInfo that only takes place when an erasure thread is launched. Some additional crash-hardening in that function also. 6) Mobile report 1-pager changed width=28\% to width=28%% 7) Recycler Mode 4: Unworking Read Opcodes will also fail the device during Prevalidate. 8) Recycler Mode 3: Does not turn off Automatic Block Reallocation. 9) Recycler Mode 2: Does not attempt to reaquire opcodes not discovered in Busprobe as it just slows down prep. 10) Began the addition of Recycler Mode to Xerase. In this mode, filtering out unusable drives takes precedent over erasing previous data. Unusable drives will be discarded. First rule: Write opcodes should never try WriteSame or WriteVerify during bus probe, and a 0x00 in the Write opcode will fail during Prevalidate. 11) Using the Methods Filter would zero out the list of filtered Rules, requiring the user to manually add the desired Rules afterward. The Rules list is no longer reset, so this isnt necessary. Version 11.0.2 (released 09/26/2016) ----------------------------------- 1) SCSI Health grading inadvertently Version 11.0.1 (released 09/19/2016) ----------------------------------- 1) Passless wipes (eg. Diagnostic and Prep) will no longer fail Prevalidate Opcodes function. 2) Reprompt message should now only appear when restarting (not initial, and not resumes) 3) DiskErase now properly parses and discards entries in config/devices.ini so that certain drives can be excluded, usually by MFG and MODEL. 4) Rules Filter code was not properly selecting the previously choices in the list. Version 11.0.0 (released 09/07/2016) ----------------------------------- 1) DEMO mode was failing verifies as the end_lba variable was not being truncated to 25 percent capacity the same as the writes were. 2) Customize->Interface->erasure Settings->Abort after Secureallows you to indicate that erasures should halt immediately after a secure erase instead of beginning verification. This allows the user to power cycle drives, etc, if necessary.Abort/Rescan/Resume version automates the process, assuming that power cycling isnt necessary (Linux) 3) All 10.7.1xx features are rolled into the official 11.0.0 release. Version 10.7.1ar (released 08/19/2016) ----------------------------------- 1) Force Results process now allows the ForceDevice to specify pass/fail in the structure rather than reading from a control to allow Linux to work properly. 2) Added Power On Hours to the Device List and appropriate Customize->Interface controls. This is the same as SMART ID 9, but less cryptic. 3) SecureErase functions will now check Erasure_Abort_After_SecureErase flag to determine if they should continue as normal. This allows a drive to be power cycled before resuming the erasure/verification, as some drives refuse to allow reads/writes past this point. Version 10.7.1aq (released 08/15/2016) ----------------------------------- 1) RecursiveCopyDirectory() now checks to make sure the source folder exists before creating the destination folder. 2) Removal of PrevalidateOpcode() from the top of Custom_IO_Pass() as it was causing an issue with DiskErase processes. Believe this was added so that opcodes are retested after a format, etc. Do that inside the format/etc instead. Version 10.7.1ap (released 08/05/2016) ----------------------------------- 1) Changed the FillInquiry function so that leading 0s on a UnitSerial arent stripped unless there is more than one of them. (ie 00xxxxxxxx but not 0xxxxxxx) 2) Consistency update between the Force Window created logs and normal logs, in terms of removing the string prior to the dash in erasure name for the results tag. Ie. 1x Wrt - DoD Clear -> DoD Clear This has always been done for normal logging, but now the software can rely on this behavior for other purposes. 3) Short term Linux logging workaround to force compatibility between Linux DiskErase and Xerase reporting.See LoadLogDev for details. In place of fixing Hash2 on Linux, a new HashL algorithm was implemented which is cross-platform compatible. HashL will only be generated on Linux, but Windows can read the files properly. Version 10.7.1ao (released 07/26/2016) ----------------------------------- 1) Fixes a new bug introduced with the 10.7.1an Bugfix related to rules. Now, entire-drive resumes have legal block structures again. Version 10.7.1an (released 07/20/2016) ----------------------------------- 1) Resuming/restarting from last error will now reload an appropriate Rule if initially started with that Rule. This ensures that the Rule remains in effect the entire erasure, even if the software was shut down or a rescan happened in between that would clear the settings. Previously assumed that the user would always be setting the Rule combo box before resuming. 2) Force Erasure window now includes an option to force a Grade. By default, it will select the lowest grade available (usually a Grade F or Grade Fail) if Health and Grading is turned on, otherwise a Blank. 3) Reports can now be sorted by Grade/Health so that all Grade A, Grade B, Grade Fail, etc are grouped together in the report. Worse grades are displayed higher in the report. Grade A drives will be at the bottom. The default report sorting sequence is now Status->Grade->SN, and Grade replaces Erasure in Date->Status->Grade->SN and User1->Status->Grade->SN 4) Various tweaks to the source code to allow compiling of the DiskErase subprogram on Linux. Should have no substantial effect. Version 10.7.1am (released 07/11/2016) ----------------------------------- 1) Custom Colors file is no longer a Premium subscription feature 2) Resumes on INVERTED data patterns (3x NIST Purge) were not reinitializing the pattern properly, leading to erasure failures. Version 10.7.1ak (released 07/05/2016) ----------------------------------- 1) Resize/Format Window when setting a custom capacity interprets the value specified as the maxLBA. Previously this was used as capacity, meaning that the formatted value was 1 less than the user expected. 2) Added in new control to the SCSI Resize/Format Window. Item 0 just formats with current settings. Item 1 is max capacity possible with a given block size. Item 2 is completely custom sizing. Version 10.7.1aj (released 07/01/2016) ----------------------------------- 1) Rules are now respected for spot verifies, including first/last block. This had been working but broke when adding another customer-specific feature. 2) Hide the folder browse button on the resize window, default to no certification for SCSI resizes, and shift the resize checkbox. 3) If attempting to change the geometry of a drive and it fails, do NOT continue on with the format. Drive will fail. Version 10.7.1ai (released 06/30/2016) ----------------------------------- 1) Overhaul of the XML reporting output to more closely conform to standard-practices. Version 10.7.1ah (released 06/29/2016) ----------------------------------- 1) Bulk Serial Numbers text box added to Force Erasure Results window. If the Checkbox is enabled, the program will loop through all drives in the list and create log files for them, ignoring the SN text field. All serial numbers should be separated by a single carriage return or comma (for CSV import convenience.) 2) Updated Force Erasure Results window to more reliably ask for and use Prompt values, by including a Configure button and altering the ProcessPrompts function. 3) SetDriveGeometry() code now includes better debugging capability in case the function fails, which would result in drives not able to change size. Version 10.7.1ag (released 06/24/2016) ----------------------------------- 1) Secure Erase on SATADOM drives from Innovatec are now supported via a two stage Erase/Reboot/Continue-Verify process. 2) On interrupted Secure Erase/Format, the seeding flag was not being reloaded from log file to make sure that the Pre-Seed data blocks were specifically checked. Version 10.7.1af (released 06/21/2016) ----------------------------------- 1) WWN from Inquiry page moved outside of ATA-only segment so that it works with SAS and FC drives properly.Identify SN = line only gets printed for valid ATA drives. 2) Further tweak to make sure that SCSI drives arent used like bad ATA drives Version 10.7.1ae (released 06/17/2016) ----------------------------------- 1) Drives that successfully respond to an ATA Identify device, but do not have an ATA version 4 or greater are assumed to be in error, and ATA support is not valid. These drives will be treated as SCSI drives. 2) Method/Rule Filter window expanded to handle creation/editing of Profile lists that can be quickly toggled via Premium->Change Profile menu item. Profiles allow multiple settings to change at once, and reduces possibility of human error. 3) Drives that get reformatted as stage 1 never have the drive log updated for capacity, causing a reporting problem. 4) Rewrite of the licensing loop (mostly LC_ProtectHandler()) to accommodate XELT per drive licenses to use Duration mode rather than the stock Reserve/Release. Version 10.7.1ad (released 05/26/2016) ----------------------------------- 1) Isilon servers seem to have SES chips that we need to be able to access to make all hard drives available. PXE/USB runs are now allowed to access Enclosure Services. SES is interrogated, but drives still missing. 2) FillCapacity was using words/block instead of bytes/block from Identify Device data, causing all drives using non-standard logical block sizes to seem half as big as they actually are. Version 10.7.1ac (released 05/23/2016) ----------------------------------- 1) Program startup now also copies LabelTemplates, ReportTemplates, etc directories from the dongle, not just the older config directories. 2) EMC Data Domain unit was crashing before the window appears. This seems to be a factor of 48 memory sticks, which is in excess of the 32 maximum that software was set up to handle. 3) The optional check for usable-capacity (DETECT_USABLE_CAPACITY = 1) is now skipped over except for initial startup. Previously, stopping and resuming an erasure would write to the end of the disk an unexpected pattern, which could cause a validation error if no further writes would clear it (such as a stop and resume during the verify pass.) 4) /- buttons added to label and QR template window to allow fields to be repositioned. Version 10.7.1ab (released 05/16/2016) ----------------------------------- 1) res->data check removed that was added recently as possible fix for a temp/force device upload. This appears to cause other issues. Version 10.7.1aa (released 05/12/2016) ----------------------------------- 1) Fixed adding a QRCODE tag to labels. 2) Ability to add a Blank space in the Report Template without Unknown listed. This is useful for creating larger Signature lines. 3) Fixed a crash in the report template maker when total number of columns was one or less. 4) Fail rediscovered offline drive if serial number is empty on re-query. This may eliminate a crash. 5) Changed Unrealistic Speed to a 170 MB/s baseline from 160. ATA WriteSame speeds can be right up there without the extra emulation layers to go through. 6) Added testing to make sure that a serial number is not empty before using it in a comparison. Moved state reassignment to AFTER parse existing erasure log on reallocating a device. Version 10.7.1z (released 05/05/2016) ----------------------------------- 1) Charge-decrement had been enforcing the expire-date rules and not allowing older dongles to use their remaining charges. This isnt EPS policy, so this mechanism was removed. Charges will always work, regardless of the date written on the dongle. Version 10.7.1y (released 05/03/2016) ----------------------------------- 1) CreateErasureDescription2() updated to include the start date if the Status is simply Passed. 2) Restart Erasures was not functional if log files were stopped partway through prep. Now it will just restart without asking. 3) Database reason string upload was uploading a date instead. Version 10.7.1x (released 05/02/2016) ----------------------------------- 1) Unrealistic Speed prevalidate test was modified again. Now, the test only kicks in at all if WriteSame speed > 160 MB/s. If write speed is > 65 MB/s then compare to a 3x. If less, we dont test it as its hard to define what is reasonable when the drive is performing so slowly. This isnt perfect, but hopefully better for most drives. SSD drives never do this testing for speed. Version 10.7.1w (released 04/29/2016) ----------------------------------- 1) Added a way to get the expiration date across a License Server link so that we can implement Premium Features for current subscribers of XERASwin or XELTwin licensing. 2) The Unrealistic Speed tag is now 4 times the Write speed instead of 2 times, though if the WriteSame speed exceeds 250 MB/s, then only a 2x modifier is necessary still. Hopefully these adjustments make it more likely that WriteSame can get used, while keeping non-functioning IO from happening. 3) Fixed a documentation bug in prevalidate opcode which incorrectly was showing the read opcode instead of the write opcode in use for the Write test. Version 10.7.1v (released 04/28/2016) ----------------------------------- 1) Added and tags to the label template tool to allow static text to be included. reads the value out of the file contents. This can be useful for sharing a template between multiple sites, etc. Version 10.7.1.u (released 04/28/2016) ----------------------------------- 1) Drive RPM now available in Labels. Version 10.7.1t (released 04/22/2016) ----------------------------------- 1) Made sure that Enclosure Services mapping can map either WWN or WWN2. This only impacts SAS devices as they are multipath. 2) Fixed a problem with rediscovering/reloading prior log files introduced in an earlier beta version. Version 10.7.1s (released 04/19/2016) ----------------------------------- 1) Non-PXE profile selection mechanism so that behaviors can be changed in bulk depending on the job that is being done. Change profiles in the Premium window. Requires a PXE directory and associated .pxe files profile.ini to indicate options. Contact EPS for details. 2) A way to differentiate non-Grade based failure reasons on-screen without having to refer to the log files. This is done on file load to configure and standardize the second line (sub_text) Version 10.7.1r (released 04/19/2016) ----------------------------------- 1) Fixed a crash where an erasure profile referenced an invalid Wipe (not present or not valid in the Rules.) 2) Fixed License Server issue caused by 10.7.1q Demo License feature. 3) As increasing slice count on NIST verify doesnt seem to impact speed significantly, slice counts have been increased to more reliably catch test data that gets thrown in the mix. // 500GB and lower does 1000// 1TB and lower does 2000// 3TB and lower does 4000 slices// 6TB and lower does 6000 slices // higher does 8000 Version 10.7.1q (released 04/14/2016) ----------------------------------- 1) PE environments will now reboot properly at end of erasure/imaging as intended to minimize user-intervention necessary. 2) Can read customer Demo licenses from certain non-EPS USB sticks if burned for certain portal customers. Version 10.7.1 (released 04/11/2016) ----------------------------------- 1) Backward emulation of measured seek times (SMARTID 501) to SMART ID 8 is now over. ID 8 is now only ID 8. 2) GetSenseData() has been updated to log unusual sense return codes, including Vendor Specific formats and any Descriptor types that arent 02 and 09 (standard SCSI and ATA respectively)This may enable us to support troublesome hardware in the future, like IBM XIV Gen3 servers. 3) During Prevalidate, WriteSame speeds in excess of twice the Write speed are considered unreasonable and probably indicate that the writes arent working as expected. WriteSame will be turned off on the drive. For ATA WriteSame, the speed also must exceed 200 MB/s as a native ATA WriteSame may approach 2x SCSI emulation of Writes and still be usable. 4) Clear Stuck Startup Queue menu under Tools is now Reset Rescan/Startup Flags. In addition to its previous function, it will now also clear the RescanStarted flag which gets set when devices come online or offline and disables new drawing (as it may cause crashes.) This could be used if the flag gets set and not unset through normal means. 5) Force Erasure Status now calls the common end-of-erasure routines (skipping over parts that do not apply.) This will allow them to upload results to the Database, Makor, and Cloud. 6) If a drive can not spin up,it is no longer marked as Corrupt and will not attempt a format (which will fail anyway.) During erasure init, the capacity/opcodes/transfers will be tried again before the Rules loading to see if it can be salvaged. (probably not) 7) Charged erasures with removed dongles will not erroneously warn of DEMO mode on restart/resume. This removes a required user-interaction that could cause problems with a taskmaster restart. 8) Data miscompares on verification are now retried 4 times before failure, with a 1s sleep between. This is an attempt to allow a confused HBA to fix itself before we fail a drive. 9) TargetID now added as a tag for Reports and Labels. Labels will now print SMART 5: rather than a blank line if no smart 5 value is present. 10) Hitachi model 725050KL_CLAR500 will now be skipped if doing self-diagnostics due to poor emulation. Log sense to the self-test page is now reduced to the minimum 494 bytes to enable certain Seagate drives w/ interposers to work properly. 11) Detect Unusable Capacity at end of disk now also does an additional check to see if single block writes will work on the gap between the usable end and the full capacity. If so, the software will do 1 block writes at end of pass and log it as an additional hash for true end of media. 12) SCSI Self-Diagnostic Results Log Page now reduced to the actual number of bytes supported by that page (404) instead of 4096, which is generally interpreted as everything you have. Certain EMC interposers flag a data transfer of that size as having an invalid parameter in the CDB. 13) Read Capacity now prints error codes on failure for better diagnosis of problems on some drives. 14) PreErasure->Detect Unusable Capacity at End of Disk has been added to accommodate drives which report actual capacity, but are connected to hardware (interposers, DAE, Raid controller) which will not actually allow the full drive to be written. When checked, the software will do one block writes and verifies at the end of the disk to determine the last usable block, and then this value is used for the erasure and validation in place of Capacity/MaxLBA. Up to 1200 Blocks are tested. 15) ATA WriteSame is now supported for Premium subscriptions. During Prevalidate both SCSI and ATA will be performed, ensured that they work, and benchmarked against each other. The better performing one will then be compared against the Write speed and Ratio. 16) If a wipe definition is not found in the list of valid loaded logs, then that wipe will be removed from the designated erasure method if currently set. A blank Erasure Method will refuse to start an erasure until this is corrected. 17) Block Erase and Cryptographic Scramble write passes are no longer loaded, and the code to handle them commented out. In theory, Secure Auto can trigger them if necessary. In the future, Crypto may make a return if/when we can prove it working on actual devices. As always, even when done with Secure Auto, Block Erase and Cryptoscramble are considered Beta functions and will be noted as such in the logs and reports. 18) Previously, in the interest of data security, the read buffer was fully filled with a known pattern in Full Verify mode prior to the read to verify that all bytes changed. However, in large installations doing this process appears to slow down the validation significantly as the verify becomes CPU bound. The pre-read buffer seeding now consists of 4 bytes that can be tested to ensure that the read did in fact happen despite what the HBA may claim. 19) Using the Lookup button on the Build Report window was crashing. 20) On the Build Report window, the New button is active along with Lookup, making it impossible to hit the Lookup button. New should only be active in the Saved Sources window. 21) Firmware Download is now available in the Premium Tools menu. Firmware files should be placed in the new Firmware subfolder. 22) MegaRAID Hybrid mode is available if SupportMegaRAID is set to 3. This makes physical serial numbers available to the windows LUN. Hybrid mode will break a raid and reconfigure it every time it starts up. Optionally, a MegaRAID cleanup mode will erase the gap between the end of the LUN and the end of the disk 23) WWN was only being done for SATA drives, not SCSI drives. This could be important for enclosure mapping and also a new Megaraid Hybrid mode under development. Added printout of WWN2 to the busscan. 24) PXE drives that do not yield a valid serial number will now have the format of SN_____ rather than SN__ since a given server should not swap drives at that location, unlike an Octane appliance. This will allow rescan/resume to work properly. 25) LSI megaraid backplanes/etc. should now be properly discarded when not responding properly, rather than being set to STATE_DEAD and remaining in the device list. 26) GetPowerOnHours() ATA version modified to mimic Grading behavior in only using Raw0 and Raw1 values from the SMART table and discarding Raw2. Some vendors have been using Raw2 for other values. Raw0 and Raw1 give a maximum PowerOnHours in excess of any value a hard drive will ever reach. 27) Lists of partitions will no longer be gathered by the software until such time as a customer actually needs it. This may increase reliability and speed during the bus probe as a whole. If it comes back it will be optional. 28) lsi devices (physical disks on a MegaRaid adapter) will no longer be queried for windows partitioning and drive number information. This may speed up bus scans on these devices. 29) Sometimes a Megaraid controller can overwrite block 0, causing issues for validation. The software has been adjusted to block 1 as the lowest block that can be used to eliminate this possibility. 30) Updating to Visual Studio 2015 to take advantage of new version control caused the stat() function to fail in many cases that previously worked. All occurrences have been replaced with either FileSize() or a new emulated Stat() which does not currently fill all fields. This may be a problem for AddToTarFile() and UPD creation/extraction. 31) Revisit allowing SCSI emulation of WriteSames on ATA devices. 32) Added FAILED IO as the speed in a Prevalidate line that does not succeed at all. 33) Added code to fail at the PreValidate level if unable to get positive Writes or Reads done. This doesnt change the quantity of pass vs fails that will happen,but it timeshifts the failure forward so that excessive hours are not wasted doing an erasure thats doomed from the start. (example: unable to verify first and last block after the pass is complete.) Version 10.7.0 (released 01/21/2016) ----------------------------------- 1) Xerase will now allow transfer sizes larger than 256k if manually configured in the xerase.ini field labelled MAX_XFER_K 2) Fixed a scenario which wasnt reprompting (on restart) of log path when not using userfields. 3) Xerase updated to accept a graceful shutdown and persistant reboot order. This will cause the program to abort erasures, return licenses, etc, prior to epsboot causing a reboot. 4) Xerase will auto-start on bootup if it detects the RebootProof file in the override temp folder for this system. This file is created when an erasure is begun. The net effect is that if a system reboots prior to an erasure being completed, when the system comes back online it should continue without human intervention. Version 10.6.11 (released 01/13/2016) ----------------------------------- 1) Seek testing is now time based (seconds) rather than 500 IOs, and is customizable per grading profile. 2) Fixed SCSI seek testing to include transfer length in CDB. 3) Took care of a scenario where a device that is unreadable and unwritable during bus probe is still allocated a 4k buffer. 4) Removed the note substituting Spot Verify when doing a specifically specified Spot Verify (ie. VERIFY COMPARE_SPREAD which is not a substitution) to reduce confusion. Version 10.6.10 (released 01/08/2016) ----------------------------------- 1) Adjusted Order of verify checks so that hardcoded NIST Verify always happens without regards to the verify override values in xerase.ini. 2) Group tag for physical interface mapping is now set to -1 in busscan, which may help some code that did only limited values testing determine if the drive was mapped into the physical interface or not. 3) Load Previous Erasure log now has a numerical argument also, which specifies the maximum number of days which can elapse and still load the log. If Today - Start date is less than the MaxDays, then load will be loaded and display either Partial, Pass or Fail as currently. If the log was begun in excess of MaxDays then the log is not loaded and will behave as if the drive has never been run before, which means that Restart Erasure is not required to re-erase the drive. MaxDays is set to 7 by default. 4) Modification of 1 byte copied in some CopyLegitString operations in ata.c (getting manufacturer, code revs, etc) Version 10.6.9 (released 12/31/2015) ----------------------------------- 1) Added Operator (aka OP:) to erasure methods topbar drawing, and added the hidden combo box to change slot text from Wipe Status to other values 2) Changed hash validation function to ensure that its always using the last (not the first) hash if multiples exist (which should never happen in the first place.) 3) Added Export List button to Log Analysis window so that you can get text file output. Version 10.6.8 (released 12/29/2015) ----------------------------------- 1) Modification of remove code to not trigger physical interface redraws if stored indexing makes no sense. 2) Log loading for log analysis window fixes a problem caused by changing sptr2 in some subset of logs. 3) Database loading/saving now using the common template directory functions. Also, DefaultDatabase variable is only set to the DatabaseConfigFile (in the ini) if empty. This allows the Database configuration window to toggle between different sets without needing to change the saved value. 4) Template_Save (aka Save-as) properly fills out the new entry in the combo box now. 5) LoadReportTemplate() calls removed from LoadProductINI() and added to client init so that templates will not get reloaded as new drives are added (crash potential) 6) Load/Save for all templates and userfields has been consolidated between LCserver and Xerase. Database and Burnintest now use the new FindTemplatePathFile which will allow us to fall back to config directories if not found in the normal one, etc. Potential for better resiliance on PXE with directory mounting, etc. 7) To facilite item 1, TYPE_REPORT_FIELDS is now a value of 3 rather than 1. 8) Discrepancies between expected file locations in LCserver vs PXE client existed for user fields. Xerase has been upgraded to look for all templates in a number of different locations for maximum backward compatibility. Version 10.6.7 (released 12/16/2015) ----------------------------------- 1) Topbar Physical Interface now has a proper scroll bar. This may also fix a rendering problem in that mode caused by an uninitialized variable. 2) Rescan code updated to trigger redraws properly. Now also threaded in the Physical Interface for better user interaction. 3) Change to drawing code, which may eliminate excessive drawing calls. This may be related to resource starvation over time and eliminate need to reformat windows periodically? 4) MapDrives_Clear_Automapped() was not working on haidx == 0 arrays. 5) Physical_Remove_All_Devices() and Physical_Clear_Array_Devices() now also reset the states to NOT_PRESENT, which will allow a Rescan to clean up the physical interface in the instance where the normal add/remove code has made an error. 6) Increases sizes of 2 string variables in CompareBlocks() to void a buffer overflow which could happen on a drive in which the read succeeded but the data didnt change. 7) Trivial change to the window initialization for pre-post scripting (FPARSE.C) to use the same file location logic for database files as the rest of Xerase and LCserver. Should have no noticable effect. 8) Fixed Database Save folder for License Server (v5.3.4.) License Server loads the files from XERAS_overrideDatabase, but had been saving them to LCserverDatabase. Version 10.6.6 (released 12/11/2015) ----------------------------------- 1) Default Logs has been renamed to Default Log Path and Default Archives has been removed as clutter that no one used. Selected SubFolders can accomplish the same thing if needed. 2) Report Gen window Temp Sources has been replaced with Selected SubFolders. Rather than picking a single directory in the folder browser window, select its parent. All subdirectories of that selected folder will be displayed in the Report Source Folder list. Select the one(s) that you want to include in your report. The folder browser window now starts in logs rather than the working directory (usually C:XERASwin) 3) Updated Report Generator window to fix a problem with Default Log Parent (now called Default Log Folders) 4) ThreadLicenseRelease_safety now always called if accessing a license server and non-charges are involved. Previously it would kick out if the program believed that the license had already been released, which eliminates its purpose of fixing a problem that shouldnt be occurring. This function gets called when all drives are done running once, to make sure licenses have been returned to the license server, when using non-charged services. Version 10.6.5 (released 12/09/2015) ----------------------------------- 1) Fix for dongle based non-charge network licensing broken by 10.6.4. Version 10.6.4 (released 12/09/2015) ----------------------------------- 1) 10.6.4b fixes an additional issue with Licenses. 2) Fixed erasure logging sanity check where buffer contents at certain byte offsets are shown prior to the erasure. 3) Fixed a bug with rendering proper grade text coloration (white vs black) in the Physical interface. 4) Right-click UserField edits slots now show all userfields (up to 4) whether initially prompted or not. 5) Failed Seek testing (4 retries, or long time between successful IOs) will now cause the value to be set to 9999ms. The side effect of this is that Health scores will be very low (65 percent lower than otherwise) and should get the worst grade possible. 6) ATA Self-Diagnostics now fail on Aborted scenarios (code 1, 2, and 3) as very bad drives can give these codes. 7) Self Diagnostic failures no longer set state FAIL, which will abort an erasure and cause confusion over whether drives have been erased or not. Instead, Self-Diagnostic failures will trigger the bottom most Grade defined automatically and as a result will perform that action. *** 8) LSI SAS controller driver downgraded to the known working Win7-WIM driver in the 8.1 WIM build. Most recent driver in the 8.1 wim may not support SCSI commands, and ATA commands appeared to work but didnt. This would cause an erasure failure if it happened. Full diagnostic of this issue is still under investigation. 9) Code fix for releasing network License Reservations. 10) Seek 16 commands do not exist, and Seek 10 commands have been deprecated and may not be supported by SCSI drives going forward. The recommendation is to replace with small or zero data length Read commands of the appropriate opcode. Zero length seems to be an issue with SATA drives accepting the SCSI command, and 1 block length transfers work, but are slow (due to the high ATAPI overhead?) SCSI Seeks are now implimented by issuing a 1 block read. 11) There is now an additional drive context menu to view SMART data without running an erasure/diagnostics. Self diagnostics and Seek Testing are skipped. The data goes into SMART.txt, not the drive log file. This Menu is only present for Premium customers. 12) Workspaces no longer store userfield values either. This was legacy code that no longer serves a useful purpose. 13) listspace.ini no longer keeps track of entered UserField values as this becomes confusing with the change in 10.6.3 Version 10.6.3 (released 12/03/2015) ----------------------------------- 1) SCSI self-diagnostics estimating a time of 0 will be treated as not supporting self-diagnostics at all and thus skipped, having no influence on health grading. 2) SCSI health grading code adjusted to deal with drives that return FFFFFFFF as glist/reallocated sectors 3) On Restart of erasures, Ask if you want to reprompt for userfield data. If Yes, userfields are nullified so that the program will ask for the data again. PromptsToUserFields(), BatchCheckRestart(), The net effect is that if the program crashes or similar before the actual erasure process can begin then the data does not have to be entered again on those drives, and the user has the option to retain data through restarts if desired. 4) Only NeedPrompt if on Userfields if a given Userfield is not filled out on one or more drives. This was incorrectly looking at global values before, not the drives. ** database access copying values to the drives?? Version 10.6.2 (released 10/25/2015) ----------------------------------- 1) Added better debug logging for license request errors. 2) EPS_NormalizeString2() changed to ONLY strip spaces... no other characters. Version 10.6.1 (released 10/24/2015) ----------------------------------- 1) SSD Self-Diagnostics now list whether they are executing ATA or SCSI code. This was implied via SCSI or ATA version in the header, but now easier to see. 2) Pliant SSD drives will not attempt to perform a SCSI Self-Diagnostic because they will never finish. 3) Added iaStor and MegaSR drivers added to the win81 WIM.