Changelog Enterprise Data Erasure (xerase.exe) ============================================= Version 4.10.5 (released 8/30/2011) ------------------------------------ 1) Fix for Required-Field elements of a report unselecting all device logs, leaving an empty report. Version 4.10.4 (released 8/30/2011) ------------------------------------ 1) Additional logic to ensure that aborting on a Verify pass doesn't cause an inadvertant miscompare error depending on timing issues. 2) Log files are now sorted on adding to the Report Generation window. By default the sort order is REPORT_SORT_STATUS, REPORT_SORT_START, REPORT_SORT_ERASURE, REPORT_SORT_SN. This means that FAILED drives are always now at the top of the report. Within the FAILED and PASSED sections it is now sorted by start date. Within each start date is sorted by erasure type. Within each erasure type, then alphabetical serial numbers. 3) Fixed a few string handling issues that cropped up in 4.10.3. 4) Rearranged the Report Generator GUI to be easier to understand and use. Added a new combobox at the top right which controls sort order for logs. 5) Fixed a problem if cancelling out of the "save report template" function. 6) Changed the Report Layout and UserField definition window to leave the Delete button always active. 7) Updated the Stats Monitoring window to show Destroyed and Repurposed logs. Added updating feedback. 8) Bug in the devicelog selection code for the report window. Version 4.10.3 (released 8/24/2011) ------------------------------------ 1) Modified logging and error-recovery routines to reduce excessive logging and speed up erasures on drives that have intermittant errors (such as 03/0c/03 RECOMMEND REASSIGNMENT) that are recoverable on a retry. Past 20 commands that have taken errors instead of logging EVERY error and issuing TestUnitReadies with a sizable sleep only the final retry and sleep are performed. Also, on non-excessive errors, the standard sleep is reduced and quicker retries happen. Between all of the changes, this should allow some drives that have been failing due to speed issues to finally finish rather than failing due to poor performance. 2) Modified buffer handling on device arrival messages to eliminate an unlikely multi-use of a global buffer used for drive identification. 3) Added a comment string to xerase.ini so that version numbers can be included for verification of correct installation of configuration files. This can only be edited manually; Version 4.10.2 (released 8/23/2011) ------------------------------------ 1) Added new Archiving modes allowing you to archive All (as previously), All Finalized, Passed, Failed, Destroyed, & Repurposed. 2) Added a new customization flag in Customize-> Interface->Program Settings->Require Archiving at Program Exit. If enabled, the Archive window will be popped up and the logs must be archived prior to the program allowing an exit. This will help enforce a clean logs policy on start. 3) Added seperate default erasure methods for SSD ATA and SCSI drives. Toggling between SSD and Hard Drive settings is done by using the SSD checkbox near the Resume Erasures checkbox. 4) Added the ability to selectively add logs to a the Report Generator window's list of source logs. Multiple directories of logs can be added to a single report, making it easier to create batch reports from multiple archives. Subdirectories can be automatically included if desired. No checking is done to eliminate redundant serial numbers, etc. This is both a feature (can have two logs for a given serial number in the report... one a Failed, one a Destroyed, so long as they came from different directories or the file name was changed for one) and a possible problem if you accidently double-click, etc. The user is responcible for accuracy in creating the lists. 5) New minimum buffer size code to guarentee at least 64k of buffers are allocated, and upped the transfer cap to 256k (can be overridden by adapter properties.) 6) Added a "device present" check at the start of the batch erase code to eliminate a possible crash that could happen if a device gets deallocated prior to the "prime" step added in 4.10.1 part 2. 7) Added additional code to ensure that erasures are not attempted on drives which have been discovered unusable during prep. 8) ATA Optimized Opcodes (aka ATA WriteSame) is not recovering properly from removal/reinsertion like the SCSI methods do. Until this is fixed, ATA WriteSame will be disabled on drives 9) Tweak to some string handling code to accomodate bad data in the model number for an ST9500421AS inquiry. Version 4.10.1 (released 8/16/2011) ------------------------------------ 1) Added "Flash LED" to the drive's context menu in both Physical and List interfaces. This will pause an erasure (if neccessary) and issue 10 seconds of pulsed Reads to the drive. 2) Made the Batch Start code somewhat more resiliant to bad drive/HBA behavior. Drives that go offline will be waited for up to 120 seconds, which should allow plenty of time for drives to come back and resume if they are capable of it. Version 4.10.0 (released 8/12/2011) ------------------------------------ 1) Fixed a buffer filling issue related to repeating random writes/verifies. 2) Added All/Pass/Fail/Destroyed/Repurposed filtering to the device report window. If you select all drives, but choose "Pass Only" then only drives which have passed will be included in the report. 3) Preperatory behind-the-scenes changes for archiving Pass/Fail Only. Version 4.9.6 (released 8/4/2011) ------------------------------------ 1) Fixed a resume issue that was only evident in release mode. Version 4.9.5 (released 8/1/2011) ------------------------------------ 1) Fixed a crash which would occur on trying to create a report on a Forced Result drive with version 4.9.1-4.9.4 due to an invalid Duration field in the forced log file. 2) HA aliases now include a bus number in the List View if the bus is non-zero. 3) HA aliases substitue for Target ID in the Slot Assignment popup for Physical Interface. Version 4.9.4 (released 7/28/2011) ------------------------------------ 1) Added "Automap Drives into Physical" to Customize->Interface->Adapter Properties for individual adapters. Setting this Checkbox will cause new devices to find the first empty slot in the physical interface that is mapped to the adapter and map to it. Note that if you put drives into the machine out of order, or a drive never showed up to be mappable, then the 1:1 correlation between the physical interface and the actual drive enclosure will be broken. Always double-check serial numbers when using this convenience feature. 2) Allowed changing Erasure Methods and Interfaces to again save the state to the xerase.ini file once it was verified that this wouldn't cause INI problems. This also fixes a bug that can occur when switching interfaces before a rescan, causing the interface to believe that it's working in the previous interface resulting in drawing issues. 3) Made the buffer allocation routines somewhat smarter so that less memory is allocated per drive unless explicitely asking for true random data for 1 or more write passes. 4) HP MB2000EAMZF drives (at least firmware HPG1) have reliability problems when dealing with the ATA Write Verify command (aka Seagate Contellation ES, model ST32000644NS). This drive model will not have Write Verify issued to it in the bus probe regardless of the state of the "Allow Write Verify" flag. If flakey bus probe behavior is seen for other devices, you can attempt to disable Write Verify and see if that improves device behavior. If so, please report the drive to us for hard exclusions so that other people don't run into the issue. Version 4.9.3 (released 7/12/2011) ------------------------------------ 1) bootcfg further modified. All PXE images will now include a default bootcfg.ini file to generate the default behavior and can be modified as per the user for custom scenarios. This should allow PXE images to play more nicely with corporate networks and existing infrastructure. 2) Added two flags that work in tandem to xerase. These can not be set in the interface in any way. If BOTH flags are set, then after a rescan (ie. on start) drives will immediately begin erasing with no user intervention. This is dangerous and should only be used in very particular circumstances. SELECT_ON_STARTUP = 1 ERASE_ON_STARTUP = 1 Version 4.9.2 (released 7/8/2011) ------------------------------------ 1) Modified bus scan software to generate a unique false-serial-number in the instance that the drive fails to provide a real serial number. This will allow multiple machines sending logs into a common directory to avoid duplication in this unusual instance. At first use, a random 4 digit prefix is generated to identify this machine/startup. This value is then used as a prefix for all drive serial numbers that don't have a drive-reported serial number. 2) Added a flag to enable/disable printing of the erasure type in the table/list for space reasons. The erasure description can be added as a global value for the report in this case. Erasure duration is added as a new field/flag. 3) New defaults are set for reports and on-screen display in List mode. 4) Eliminated a possible way to fake the serial number being certified on older versions. 5) The bootcfg for PXE has been updated to attempt to avoid a crash that can occur on some embedded systems. This fix has not yet been validated against the systems with the problem. 5b) PXE bootcfg has been updated to allow users to map to non-default override directories located on different servers, using different logins and passwords. The requester will pop up with the default information, but the user can change to the actual values needed. 5c) PXE bootcfg can read the new network defaults out of a configuration file for zero-user-intervention when using the xerase tool in a custom WIM environment. This is an example template for config/bootcfg.ini in which the server name is the only change: [CMDLINE] ARGS = "-launch xerase.exe" [OVERRIDE] SERVER = "HOGAN" DIR = "XERAS_override" LOGIN = "wipe" PASS = "wipepw" 6) Busscan and end-of-erasure routines have been updated to refrain from issuing defect list code to drives marked as dead or removed to avoid a potential bluescreen of the storage driver in some situations. Version 4.9.1 (released 6/28/2011) ------------------------------------ 1) Updated g-list code to support both 10 byte and 12 byte defect data commands, and in a more natural format. 2) Added Glist, WWN, Erasure Duration, and Drive Health information as optional fields for erasure reports. ATA drives will show "N/A" for the GList field as there is no way to determine this value. Drive Health will only be present if "Drive Health Summary" is enabled in Post Erasure. 3) Brought Text, CSV, and XML formats up-to-date with the HTML/PDF reporting format. 4) Added in the ATA Optimized flag to the Customize Interface window. Version 4.9.0 (released 6/23/2011) ------------------------------------ 1) Enabling native Write Same command for ATA drives. Some motherboard drivers do not support native ATA commands well. We will need to watch this carefully. "Interface->Customize->Erasure Settings-> ATA Optimized Commands" is now on by default which will allow disks to use faster native Write Same commands while falling back to the more reliable SCSI IO for reads. ** Menu item not yet implimented to disable this. Can be toggled on and off by editing the xerase.ini file entry for ATA_OPCODE_OPTIMIZED. 2) Changed the preferred opcode logic to choose Write Same over Write Verify since most ATA drives will not support Write Verify, but many WILL support Write Same now. 3) Xerase is now gathering WWN information and adding it to Debug_XERAS.txt and the erasure logs. 4) Physical Block size and offset are now logged in Debug_XERAS.txt in anticipation of changes to better accomodate newer drives, particularly SSDs to ensure proper write alignments which should speed things up dramatically in those cases. 5) Recovered errors are no longer logged to speed up erasure times, particularly on drives that return a 01/18/00 on every single IO. 6) Preferred opcode is scaled down to the smallest opcode size that will work for the drive being tested, since some firmware may not be correct at the 16 byte CDBs due to insufficient testing. As a practical matter this means that SCSI drives with a max lba < 0xFFFFFFFF will use 10 byte CDBs if at all possible rather than defaulting to 16 byte CDBs if supported. 7) The Report Generator has been updated to properly support logs created with XField. 8) Fixed logging for incorrect byte in CDB error message. 9) Upgraded Format Unit command to allow drives to toggle unsupported CDB bits identified in returned sense data. After a Secure Erase or Format, if opcodes are still not available the drive will Fail if further erasure/verification is needed. 10) Drive logs now show start and end glist counts for SCSI drives being erased. 11) Fixed some local adapter settings being erased on restart of the program. Version 4.8.1 (release 6/6/2011) ------------------------------------ 1) Fixed a bug with Design where a "hdd" or "laptop" array, using a quantity lower than the columns, would fail to be created properly. Subsequent deletions would cause the PhysicalArrayCount variable in workspace.ini to go negative as a result. Version 4.8.0 (release 5/30/2011) ------------------------------------ 1) Added new Force Results options of "Destroyed" and "Repurposed" 2) Force Results window now allows the user to fill out drive custom fields for the forced log. 3) Fixed some logic in the Reports window for user information prompting. Version 4.7.6 (release 5/10/2011) ------------------------------------ 1) Modification of the program to support a lighter "XELTwin" executible for very low memory situations, particularly with PXE boot. 2) Override directory log files will now be detected as a previous erasure, and will be able to be resumed. 3) The program will no longer create 0 length log files on detecting a drive if a log didn't previously exist. 4) ReadCapacity has been shown to fail periodically and succeed on a follow-up rescan. Currently implimenting a test fix with a 1s sleep and retry after a failed ReadCapacity16 and ReadCapacity10 command. 5) Modified log-directory modification to better support pointing to XERAS_override\logs from the Master system. Version 4.7.5 (release 5/3/2011) ------------------------------------ 1) Modification of startup procedure so that xerase can begin without a license server. Starting a drive will then need a license. Version 4.7.4 (release 4/26/2011) ------------------------------------ 1) Doing a Manual Assign to slot context menu now works as normally expected for physical templates that don't have subdrives defined. In this case, reassigning without clearing will replace the slotID and mapping. For templates with subdrives defined, performing this action will map additional drives into the subdrive slots. 2) USB serial numbers may now be detected and used. Limited testing has been done at this point, but works on the units tested against. Version 4.7.3 (release 4/14/2011) ------------------------------------ 1) Fixed a crashing problem regaring Stop/Restart Erasures. 2) "Erasure Statistics" under the Help menu has been renamed to "Monitor Erasure Logs" and duplicated under the File menu. This window lets you see the Passed/Failed/Incomplete statistics of all of the logs in realtime. It can help reduce errors such as missing drives that should have been erased (wrong totals) or drives which never finished their erasures properly (incomplete.) 3) The Control menu was moved to a more convenient spot. Version 4.7.2 (released 4/13/2011) ------------------------------------ 1) A bug related to "slot info" could occur when switching between Physical/Design modes and List, since List supports fewer options. a "-1" could appear in the field. This has been remedied. 2) Print Labels on Completion has been changed from an On/Off value to a choice of 3. OFF will not print labels (they may automatically be generated if UseCustomLabels is set), PASS/FAIL will always print labels, and FAIL only will only print the label if it was a failure. 3) Use Custom Label has been changed to a 3 choice selection like 2. If the Print Labels value is set at a different value than Custom Label, Custom Label gets changed since it's impossible to print a Failed label if the label was never generated. 4) Known, but hard to isolate incident... switching between Physical Design, Physical, and back to Physical Design can cause the arrays to draw incorrectly, after deleting an item. The routine will assign the wrong array images. Can not currently fix until it can be made repeatable. 5) Added a new setting under Customize->Interface->Program Settings.... "Stop/Restart Erasures on Rescan." This will cause currently running erasures to Stop prior to issuing a rescan so that the device list can be cleared out. After the rescan, any device with "Aborted" text is restarted. ** This is a new, largely untested feature. Use at your own risk ** Version 4.7.1 (released 4/7/2011) ------------------------------------ 1) Fixed an isolated crash when enumerating Network adapters for system logging by removing this functionality for the time being. It will return at a later point. 2) Item 3 from 4.7.0 broke SlotID scanning and caused a crash when entering data into a blank slot. This has been remedied. Version 4.7.0 (released 4/6/2011) ------------------------------------ 1) Added choice lists to user fields. If the "List of Choices" checkbox is ticked in the user-field editor, then an edit field is added to enter a comma-delimited list of values. These values will be displayed in a combobox list if no selection has yet been made. Once selected, the string is copied to the user field list and displayed as-is. This can then be edited manually. Zeroing out the edit field and hitting return, or hitting the "<<" button will clear the selection and show the combobox list of choices again. 2) Fixed a bug in Report Generation that was requesting data for all drive logs, even if the logs in question weren't selected. 3) Fixed a problem with replacing SlotID with a new slot ID, without clearing the slot(s) first. The drive wasn't being marked as unassigned, leading to a discrepancy between List and Physical interface mode. 4) Fixed a crash that only happened the very first time the program was run. 5) Drives that have Failed during an erasure can be resumed from the Physical Interface and List View context menus (single drive only.) It may fail again quickly, but it gives you a second chance. 6) Added unassigned drive count to Assign Adapter to Array context menu in Physical Interface. 7) Added in maximum data length enforcement for system/bios information to ensure that bogus data will not overflow the structures. 8) Added "Skip Benchmarking" to Customize->Interface-> Erasure Settings. 9) Fixed a redrawing bug that was causing repainting to happen much more frequently than expected, using up CPU time. Version 4.6.3 (released ?) ------------------------------------ 1) Adjusted some bus probe code to allow devices to be rejected ASAP if they match parameters listed in config/devices.ini. This will allow you to discard by VOLNAME to ensure that a given flash disk isn't added to to the device list, for example. Version 4.6.1 (released 3/22/2011) ------------------------------------ 1) Fixed a problem with Kiosk mode starting due to not using the same drive initialization routines as Physical mode. 2) Improvements to SCSI drive health monitoring. Version 4.6.0 (released 3/18/2011) ------------------------------------ 1) Added drive Health evaluation. For ATA drives this is based on SMART threshholds and self test data. For SCSI drives it is based on read and seek errors / bit rate. This information is added into the device logs and set as the % complete for a Passed/Failed drive. Health check is turned on in Customize->Interface->Erasure Settings. NOTE: This is a work in progress. As each manufacturer can choose arbitrary maximums, etc, determining a relative health factor can be problematic and the program is being adjusted regularly to compensate. If you discover unreasonable values, please send us your logs to evaluate. 2) Customize->Interface has been reorganized slightly to segregate pre and post erasure actions from actual erasure properties. In Pre-Erasure, the software can now execute a program/script at the start of any given batch of drives. 3) Enhanced Secure Erase support has been re-enabled with a user configured setting in Customize->Interface->Erasure Settings 4) Fixed "Time Remaining" information for Secure Erase. Version 4.5.1 (released 2/17/2011) ------------------------------------ 1) Updated bus probe code to properly handle 4k block sized drives Version 4.5.0 (released 2/17/2011) ------------------------------------ 1) Fixed a problem in the rescan code that would increment an hba index prior to doing a final values check related to whether to issue a Rescan ioctl. This behavior did lead to a crash on startup for some, and theoretically could have prevented a rescan on the final adapter from occuring for others. This has no bearing on normal plug-and-play operation of new devices coming online, merely user-directed rescans 2) Adapter Properties now allow you to specify a "Query Only" tag. This will prevent the adapter from issuing a rescan ioctl when the Rescan button is pressed. Normal device-insertion mechanics should still work properly. The reason for this is that some setups cause a never-ending cascade of devices going offline and online when attempting to rescan them. Related to issue 1 above. 3) The default Random Pattern in the wipe definitions is now a repeating 1 block random sequence. This will allow faster erasures due to Write Sames being used in place of Writes. Write Sames will not be used if Write and Verify would otherwise be faster. This can be toggled to use the previous Non-Repeating random sequence in Customize->Erasure Settings. 4) Added baseline support for new ATA spec erasure methods Block-Erase and CryptoScramble. Drives supporting these may not exist yet, and the method has NOT yet been tested. Use these methods at your own risk, and please provide feedback if you find these drives. The methods may crash, or may not generate the expected results. Be sure to verify the results in the media viewer. The methods are "hidden" in a subfolder "wipes\experimental" and can be moved to the "wipes" directory for use once you understand the status and the risks involved in these methods. As the methods are fully validated, the wipes will move into the main folder. Version 4.4.2 (released 2/8/2011) ------------------------------------ 1) Fixed a recursive function that could cause UI laggyness and possibly crashes under some conditions. Version 4.4.1 (released 2/7/2011) ------------------------------------ 1) Fix to the Required Fields input prior to generating a report. The same window now also validates Required Drive Fields (userfields) and lets the user enter in data. Data entered updates the log and will be shown in the report. Version 4.4.0 (released 2/3/2011) ------------------------------------ 1) Full List view fixes for UserFields 2) Added black-border selection in Physical interface for devices that are in "STATE_SELECTED" (from List view probably) to give user-feedback on the selection state. 3) Made slot-matching for the Physical Interface case-insensitive so that the program is less reliant on the user knowing how the drives/system shows its data in the barcode. 4) Changed the matching order of operations so that TID and IP aliases are matched prior to slot ID to eliminate a problem caused by non-hotplug-aware drivers. 5) Fixed a drawing issue caused by a removed device shortening the list in List view. There was one additional device displayed that was neither real nor selectable. 6) UserField data entered is now stored in the workspace.ini file and reloaded. if using List view ONLY, there was no mechanism to save UserField data. DiskArrays/listspace.ini now saves this data independantly of the workspace.ini file. Both interfaces should be ok to enter data with, but beware of potential bugs as this is new and convoluted code. Version 4.3.4 (released 2/1/2011) (quick-fix) ---------------------------------------------- 1) Potential fix for adapter ports that use a constant device GUID for the attached drive, even when the connected drive has different serial numbers, etc. 2) Fixed "Include USB Devices" option in Customization->Device List 3) Changed List view to use the more advanced side panel from the Physical/Kiosk views. List view may not modify UserFields correctly at this time. 4) Device insertion now gets the serial number first so that it can determine whether a new device is on a given Path, or it is a previously removed device returning. Version 4.3.3 (released 1/24/2011) ------------------------------------ 1) Fixed a List View drawing refresh problem. 2) Restored partition cleaning prior to erasure that was inadvertantly removed with code reorganization. Version 4.3.0 (released 1/7/2011) ------------------------------------ 1) Changed RescanMutex timout down to 2 minutes from 4 minutes. If a drive became unresponsive during a device-insertion routine it could have caused all other drives to timeout if they were in the process of an erasure after an adapter reset. 4 minutes was previously chosen to decrease the likelyhood of crashing due to concurrent device list access, so we'll have to watch for this. 2) Default timeout value for devices which go offline has been increased from 180 seconds (3 min) to 240 seconds (4 min). This, combined with entry 1, should minimize the likelyhood of many devices being knocked offline at once due to an adapter reset. 3) Slots can be assigned aliases in the Physical Design mode. By default they'll be named numerically, starting at 0. The name of a slot can be changed to match a customer's requirement, such as "Workstation1" which can make barcode entry capable to configuring the physical interface layout. 4) User defined data gathering fields are no longer limited to three elements in the physical interface, can be defined as optional ("O") or required ("R"), and can be filled out by the user in physical interface mode or set via configuration file. All user defined data gathering fields will be output as drive/system data when issuing a report. Two predefined "actions" are available as a User Field also (noted as ">" for type). "Set Drive Serial#" will allow the user to assign a serial number to the physical interface's drive slot as before with the dedicated edit field. "Select Drive Slot" allows the user to move the SlotSelection (blue box) from the current box to another named box. 5) Defining the user fields has been moved from the Customize->Interface window to Customize->Report Fields. System information to be output is still listed in Customize->Interface via the Report structure. 6) Removed several "IDR_GOODSTATE" checks in the Retry code and after the write routine to avoid long hangs when a drive isn't cooperating. One of the GOODSTATE checks in the retry code may have been short-circuiting the retries prematurely. Length of time between TURs in Retry loop is extended by 5s each, resulting in a total of 500s recovery time _outside of the IDR_GOODSTATE loop._ This additional time may make it possible to recover from situtations that previously would fail. Added dual calls during RefreshDriveHandle at the end of the Retry loop for additional recovery potential. 7) Rescans while in Physical Design Mode won't cause the program to transition to Physical Mode. 8) Transitioning to Kiosk/Physical sets the slot info mode to Status. Transitioning to Physical Design sets the slot info mode to Alias. 9) Added "Start", "Abort", and similar functions to the Physical Interface control panel rather than confining it to Kiosk mode. Currently these buttons trigger only Global versions of the functionality. Targetted functions to Selected Arrays and devices may come later. 10) Setting the slot ID to the system serial number, IP address, or a given user field value (set in the preconfig script) can cause multiple devices to be assigned to a single Xerase Physical slot. Tabs will be created next to it to toggle between drives on this slot unit. 11) Printing multiple labels in the context menu from Physical will generate the labels now if possible before sending the print. 12) Erasure results of device can now be forced as passed/failed/ destroyed via a pop up dialog box. -- In progress -- 13) Command timeout increased to 30s in case of resets, etc. 14) IGNORE_SE_STATUS flag was added to xerase.ini in the [DEVICE_DISCOVERY] section. This will cause the program to set the values of SE Enabled, Locked, and Frozen to 0 so that Xerase can attempt to write to the drive anyway. This _should_ result in a failure if the drive is legitimately in the middle of a secure erase or locked, but may allow writing of the drive the drive is reporting incorrect SE status (which should never happed.) 15) ATTO SAS controller drivers should be upgraded immediately to version 1.60. Writing to a SE enabled disk had appeared to be working (no error codes) using driver v1.30. With driver v1.60 this is correctly returning an error code. 16) Increased DrawArrayDevice and DrawArray mutex timeouts slightly. Added better bounds checking to DrawArray. 17) Added additional checking to IsDeviceReady to ensure the device structure is still allocated after the Wait loop. 18) Rewrote Physical Interface and List drawing code so that only one thread (RedrawLoop) will ever be accessing the DCs at any given time. The hope is that it resolves the intermittant GUI redraw lockup problem permanently. A small pause between drawing arrays also gives the OS a chance to do garbage collection without impacting responsiveness greatly. 19) Improved recovery code after "REMOVED" wait state to attempt an adapter's soft-rescan (with or without resets as dictated by the interface customization for adapters) if the device doesn't come come back online on its own. This will be most useful for some EMC JBODS and SCSI enclosures that do not issue LIPs to the OS to indicate device arrivals and a need to search for new devices. 20) List sorting will NOT happen as long as there are any running devices now. This gets rid of a problem where a device index changes in the middle of a REMOVE message. 21) Added an Erasure Status window that keeps track of total number of Failed, Passed, and Partial drive logs vs Expected to reduce errors (missed drives, problems with logs, etc.) 22) Added new licensing model with better pricing for bulk PXE-boot erasures, as long as some loss of capability is acceptable. "XELTwin" is licensed on a per device basis from a licensing server at a discount to the "XERASwin" model. This makes it more desirable for 1 and 2 drive per machine erasures (laptops/desktops.) However, "XELTwin" will not be able to generate reports on that system, can not execute pre and post processing batch files, does not have access to physical interface or kiosk display modes, and may have other limitations. Version 4.2.1 (released 11/11/2010) ------------------------------------ 1) Modified bus probe logic to accomodate ARECA host adapters that put multiple physical devices at the same target ID, but vary the LUN number. These were being incorrectly evaluated as disk partitions rather than physical disks due to some previous shortcuts taken. Parititions will now always have lun numbers larger than 500 to differentiate between real luns and faked luns for purposed of lookup and indexing. Version 4.2.0 (released 11/8/2010) ------------------------------------ 1) Added a test for buffer-alignment sensitivity in HBA drivers (Adaptec) to disallow our standard random buffer scheme on drivers that will reject it. 2) Hardcoded Adp and Adaptec drivers to do the same as #1 3) Added control menu items to select, start, and abort drives. 4) Reports now provide a summary of disks by size including pass/fail statistics. 5) Products make backups of configuration files and restore them on 0 length inputs (previous crash while saving, etc.) Serial Numbers and sizes are now mandatory fields in list mode, so can not be turned off. 6) On insert notification, wait 4 seconds to let windows detect partition and volume information before calling CreateDeviceEntry which will try to record it. 7) Bring online, make read/wraitable, and clean all disks with 512 byte/sector formatting to take care of a problem for disk-insertion discovering drives before Windows can detect partition and volume information. default patition and disk numbers are set to -1 unless better information is discovered. 8) CREATE_PARTITION_DISKS has been added as a flag in the [DEVICE_DISCOVERY] section of the xerase.ini file. The default value is 0. If set to 1, a new Partition "disk" entry is created for each found partition on a given physical disks, which will be locked out by default. Also, the "View->Partition Interface" menu item will be enabled to allow you to toggle between raw disk devices (List) and selectable individual partitions (Partition). This had been the default in earlier versions. This toggle should make the List interface less confusing for the majority of users, who want to clean an entire disk rather than select partitions. 9) During disk initialization, prior to benchmarking/erasure, disks are now always brought online and the read-only flag is cleared, in addition to removing all partitioning and volume information. 10) New minimum Secure Erase times so that old drives that do not properly estimate times have the potential to successfully erase. 11) New file format to FormatTimes.ini and max wait time logic in Secure Erase mode for very old disks which did not properly support estimated erasure times. 12) Reverted back to a better random data algorithm. Version 4.1.1 (released 10/25/10) ------------------------------------ 1) Fixed a serious problem with corrupted wipe structure definitions which could cause a random data pattern to instead be output as a constant pattern. Version 4.1.0 (released 10/22/10) ------------------------------------ 1) Added savept-to-savept speed calculations so that the user can keep track of current disk performance. This value is saved in the logs at each update and selectable as the display text in Kiosk and Physical Interface modes. 2) Adding an automatic failure mechanism to batches of drives that is configurable in Customize->Interface, so that drives that are running inordinantly slow can be culled and not affect the remainder of the erasure process. Ultimately, if drive speed is lower than X MB/s either Abort or Fail the drive. During benchmarking any failure is merely an Abort. The user can Force-Fail the drive at this point. 3) Fixed all known Kiosk/Physical Interface switching issues. Version 4.0.0 (released 10/7/10) ------------------------------------ 1) Updated the erasure engine to allow a "redo" for a pass if a random pattern was requested, but a Format/Secure Erase was required as the initial pass. If a non-random pattern, but the initial pass was unable to write the pattern described the in the wipe file, the logs are updated to reflect the actual pattern, and a subsequent constant pattern pass will be the inverse of what was written instead to fully accomodate the DoD Sanitize and NAVSO specs. 2) Kiosk mode now dynamically creates the appropriate bitmaps to represent the drives still present rather than picking from premade templates that may imperfectly represent the drives present. Kiosk mode is now updated on device insertion/removal. Laptop or Drive icons can be selected in the Customize->Interface window. 3) A scriptable rules-file interface is now available in Customize-> File Parsing. This will allow you to specify erasure actions (which wipe to use, microcode revs to download to, etc) from a text based input file. This is primarily useful for performing large batch jobs without needing to manually configure/start each drive. Version 3.15.0 (released 9/22/10) ------------------------------------ 1) Ensured ability to log into shared XERAS_override directories on servers not named EPSserver (assuming a user named "wipe" with a password of "wipepw".) 2) Adding CLIENT_INTERFACE tag to xerase.ini so that Master/Client can be configured differently. This is configurable in the Networking code. 3) While in Client mode, xerase.ini can not be saved. This will prevent Clients from overriding the settings set by the Master. 4) Master, if an XERAS_override directory exists on the system for export, will now copy the file locally and tell the Client to reload rather than pushing the file to each of the clients (who are all saving the file to the same location.) If the XERAS_override is not present, then the file is pushed to the Client's local directory. The Client always reloads xerase.ini on erasure start. 5) Replaced scalable text buttons with graphical buttons in Kiosk mode. Version 3.14.1 (released 9/16/10) ------------------------------------ 1) Added Rescanning Drives messages to Kiosk mode to make things clearer for the "dumbed down" interface. Version 3.14.0 (released 9/15/10) ------------------------------------ 1) Updated WriteStampOnCompletion routine to log drive serial numbers, log certification hashes, user-defined Pass/Fail text, PhysicalInterface field values (if shown) and a user-specified "stamptag" up to 64 characters long. If no stamptag is specified the space will read "ExtremeProtocol.com" 2) Fixed the Media Viewer to properly display block sizes that were not even multiples of 16 bytes. 3) Updated the Media Viewer to select the first selected device on reuse of the window and fill the data in. 4) Fixed the toggle between Kiosk and Physical Interface mode. You will STILL not want to start in Kiosk mode if you intend to toggle between the two as you can corrupt your workspace file. Always start (and that means exit) in PhysicalInterface or List modes if you expect to perform this behavior. 5) Added the ability to advance down a column in physical interface mode rather than across a row when entering serial numbers. This is specified in the array template files. By default, the value is 0 (horizontal.) Adding the line "ORIENTATION = 1" will cause it to advance vertically instead. In the future this may also change slot numbering, etc. Version 3.13.3 (released 9/14/2010) ------------------------------------ 1) Changed the LBA being accessed to determine Opcode availability due to LBA "bands" which allowed/disallowed writes on some Hitachi models with custom firmware. 2) Lengthed the wait time for DeviceArrival/DeviceRemoval functions so that strings don't get deallocated before they get used. 3) StartStop re-enabled in bus probe code. 4) ATA drives are re-enabled for startstop and testunitready. failure to testunitready now no longer automatically set the drive to dead so that the user can attempt to Secure Erase, etc. 5) Drives that exit device detection in a Secure Locked state will now use the key icon in List mode instead of a disk. 6) Estimated erasure times in the physical interface window now use the appropriate data returned from the drive, read from the file via previous erasure, or a best-guess which is likely pessimistic. The display will read ("X passtime / totaltime") X will be D, P, or E for Drive, Previous, and Est. Version 3.13.2 (released 9/3/2010) ------------------------------------ 1) Restored Design Physical Interface, which broke when Kiosk mode was added. 2) Added in Physical Interface array templates for 0, 1, 2, and 4 drives. These are used automatically by Kiosk mode depending on how many drives were detected in the bus probe. Version 3.13.1 (released 9/2/2010) ------------------------------------ 1) Fixed Show/Hide of User fields in the physical interface for Kiosk mode. Version 3.13.0 (released 9/2/2010) ------------------------------------ 1) Extended wait mutex on device insertion/removals from 2 min to 8 min. 2) Updated Secure Erase logic to better handle drives that were removed then reinserted. Windows/some drivers return a good status even though the subsequent Identify fails. 3) If the standard EPS security unlocking password does not work the bus probe will now prompt for a password to unlock the drive. Hit cancel to not enter the password or hit ok to attempt an unlock. 4) Network Client mode instances of Xerase should now be able to utilize Physical and Kiosk mode interfaces. 5) Drives that were secure-erasing, but have the software crash, or the user "aborts" the erasure, continue to erase "offline." On the next bus scan where that serial number is present, if the log file indicates that the erasure was started and security is no longer enabled, then the drive must have completed and the log is updated to reflect that. 6) Added in a possible coping mechanism for SCSI Hitachi custom-firmware drives. Choose an erasure method that doesn't use a random pattern for the last pass, or don't verify the last pass and be ok with non-random data. Some drives may not support the chosen data patterns in this coping mode. 7) The Windows Powerconfiguration DLL is now loaded dynamically because Windows XP doesn't support powrprof.dll. 8) Ensured that a multipass erasure will end if a FAIL state that isn't related to a bad block occurs, rather than moving on to the next pass. Version 3.12.0 (released 8/30/2010) ------------------------------------ 1) Fixed problem with loading some workspaces. 2) Added "STM" as a valid model for Maxtor drives. 3) Added "Kiosk" mode to the interface choices. This is designed to provide an easy-to-use interface that makes certain assumptions. Like the Physical Interface, it displays a graphical representation of drives. Unlike the physical interface, drives are automatically assigned to slots after a rescan and the slot location bears no relation to how drives are physically connected or located. Normal insertion procedure does not currently assign drives. Drives arrive with the SlotInfo being set to serial numbers, and transition to wipe status While menus present in Physical Interface mode continue to function, a "Start" and "Report" button were added to simplify operation. Start operates on all drives currently in the interface. Report preselects all finished logs in the interface and pops up the report generator window. ** Kiosk mode is a work in progress. Switching between Physical interface and Kiosk mode currently has problems. Use just one or the other. When starting in Kiosk mode it is impossible to switch to Physical. The inverse works properly. 4) The software now attempts to unlock a Security Lock during the bus probe/device insertion by using our own password. Future expansion will allow the user to enter a password to attempt to use if the device was locked by another product. Version 3.11.11 (released 8/25/2010) ------------------------------------ 1) Fixed Device Label sticker copy to an override directory (pdf file was incorrectly named with an html extension.) Version 3.11.10 (released 8/25/2010) ------------------------------------ 1) Emergency fix for a broken Abort/Resume functionality. Version 3.11.9 (released 8/25/2010) ------------------------------------ 1) Updated logname configuration to try different variations if the directory/file is inaccessible and issue a warning. This is primarily to guard against badly configured xerase.ini files that specify non-existant directories through various methods. 2) The default directories in xerase.ini file now will never have a leading path (ie. working dir) in xerase.ini so that the files are transportable from one system to another unless the user specifically creates that situation. Version 3.11.8 (released 8/24/2010) ------------------------------------ 1) Removed ATA loggigng for DCO Restore and Set Max Address. 2) Increased maximum timeout for disks that go offline (180s instead of 90s) and increased the maximum number of insert/removals (to 30 from 20) 3) Added user-feedback for devices that have gone offline so that they know what is going on. "Offline Wait" for when a device goes offline when it's in-use, "Pdead Time" if the device has exceeded the maximum individual offline timeout, and "Pdead Count" if the device hasn't exceeded the offline timeout but has timed out more than the maximum specified insertion/removal count. Barring unusual circumstances, the two Pdead states should be replaced with "Failed" very quickly and the user may never see them. 4) Added Extended Select to the List View for devices that are in states Errorchk, Removed_while_running, Removed, and Dead so that logs can be viewed without needing Windows Explorer. 5) Took care of some state logic that allows drives that went offline during a benchmark and came back, but not in time to rejoin the benchmark, to end as STATE_ABORTED instead of STATE_RUNNING_FAILED which can not be re-selected to start it up again. No logs are generated in this condition. The user can force-fail a device or try it again. Version 3.11.6 (released 8/18/2010) ------------------------------------ 1) Fixed a potential buffer allocation problem that may occur after a Secure Erase. Version 3.11.5 (released 8/17/2010) ------------------------------------ 1) The IsDeviceReady() loop now closes device handles if devices go offline. 2) Additional logging inside Prep function to isolate a problem with bad devices. Version 3.11.4 (released 8/16/2010) ------------------------------------ 1) Modified Xerase to disallow hibernation and sleep modes until exit, and sets the disk idle timeout to 0 ("never") so that problems don't occur with lengthy Secure Erases. Version 3.11.3 (released 8/12/2010) ------------------------------------ 1) Minor change to force arrays to redraw after changing combo boxes and causing all devices in physical interface mode to become unselected before selecting a new device. Version 3.11.2 (released 8/12/2010) ------------------------------------ 1) Added HBA driver information into the bus probe. 2) Changed the order of end-of-wipe operations and ensure that some only happen on pass/fail. Version 3.11.1 (released 8/10/2010) ------------------------------------ 1) Fixed a potential problem with an uninitialized nesting variable which may have caused infinite recursion. 2) Reduced max nesting loop value for data-rewrites and added additional logic such that only SCSI media errors and ATA non-ioctl errors are eligible for nested rewrites. Other errors (ioctls, device missing, not ready, etc) can only be retried via the Retry loop. 3) If a top-level write has failed, the block is always logged as bad, causing the erasure to increment its bad block count and potentially ending the erasure if the count exceeds the threshhold. Version 3.11.0 (released 8/10/2010) ------------------------------------ 1) Certification Hashes are now part of the log files to verify that the essential information has not been modified by hand. If the log file does not match the hash, the wipe results will be changed to "Modified". 2) Workspace changes for the physical interface now save after every SN, User1, User2, and User3 entry. 3) For PE boots (USB, CD, and Network) if an override directory is specified the log file will be copied to the override directory every 1% of erasure. Version 3.10.1 (released 8/2/2010) ------------------------------------ 1) Made changes to cause IP-control (Master/Client arrangement) to be more reliable. 2) Fixed a modification to modifying the Folders path in Customize->Interface to not cut off the first character if the path isn't being truncated. (ie. "logs" -> "ogs") Version 3.10.0 (released 8/2/2010) ------------------------------------ 1) Added customizable complexity to entering in User Field data on the Physical Interface. Each edit field can now be instructed to advance to the next slot, advance a slot and reset to the SN field, or go to SN, User1, User2, or User3 after a return is entered. The default data entry method of starting with a serial number, then advancing down the list is still true. This will allow the user to enter all serial numbers, then all vendor SNs, then all SkUs as an example. This data entering scheme is currently NOT saved. 2) Drive data now populates the edit fields (SN, User1, User2, User3) instead of using space in the text box above it. 3) Added SKIP_DISK_PARTITION_INFO tag to [DEVICE_DISCOVERY] entry in xerase.ini. Changing this value to 1 will instruct the program to not query partition information for a disk and to not attempt to delete partitions when beginning an erasure. This shouldn't need to be used, but apparently some drivers will crash when Windows attempts to access these drives during Diskpart or partition information gathering. 4) Test Unit Ready loop inside of the Prep command has been shortened in duration because of the serial nature of this section of code. Bad drives could cause signifigant holdups. 5) Device removal/insertion tolerances have been reduced during prep for the same reason. One incident allowed, twelve seconds maximum. 6) Added SKIP_BENCHMARKING tag to [INTERFACE] and Customize->Interface menu. If set, Benchmarking will not be run and Prep will be postponed until the multithreaded erasure start so that a single locked up drive can not cause problems for the rest. 7) Prevented Customize->Interface and the Report Generator browse button from including Working Dir or Override inside the ini pathnames. Previously it was possible to end up hardcoding the log directory to C:\XERAS_override\logs for example, whereas on a particular system the override directory (where the USB stick was mounted) was actually G:\XERAS_override causing the pathing to fail. 8) Added network messaging to allow individual drives to be aborted. 9) Added the ability for PE installations to read erasure logs out of the override directory on startup. Version 3.9.4 (released 7/21/2010) ------------------------------------ 1) Minor bus probe change to accomodate removal of Security Freeze Lock for PE boot versions. 2) Adjustment of the Write code to notice retry failures to be write failures so that the device fails earlier 3) Fixed log-loading function to eliminate a crash that can happen with massive log files. 4) Fixed a problem with release code not always loading xerase_local.ini properly, resulting in saving files with no adapter properties set. Version 3.9.3 (released 7/16/2010) ------------------------------------ 1) Security Estimated Time is now set to 3x the drive's reported value instead of 2x. Drives with poor mechanical condition were exceeding the 2x time. 2) Further changes to enable trial demo-mode. Reports indicate the restrictions. Version 3.9.2 (released 7/13/2010) ------------------------------------ 1) The brushes for drawing a REMOVED_WHILE_RUNNING device were not allocated properly. Sometimes this would result in a GUI lockup as the bad handle would be passed to the FillRect function. The REMOVED_WHILE_RUNNING state should now be using the same brushes and colors as REMOVED, which works correctly. 2) When mapping a serial number into the physical interface the software will now ensure that the serial number is not already present, and if it is, will ask the user which it wants to use. Version 3.9.1 (released 7/7/2010) ------------------------------------ 1) Fixed timstamp bug for Secure Erase logging end. 2) Added "Demo" code to allow trial usage without performing a full erasure. Maximum LBA accessed = 0x1000BB and Secure Erase is disabled. Version 3.9.0 (released 7/6/2010) ------------------------------------ 1) Overhaul of device removal code that could have gone into an infinite loop, causing GUI lockups, etc. 90 seconds allowed for offline devices to come back online. DeviceRemoval callback ignores "running" devices and lets the IsDeviceReady loop handle the details so that only one path exists to manage these devices. 20 maximum removals even if they conform to the 90s allowed. 2) Eliminated a "Waiting" slot in the physical interface when a device went temporarily offline. 3) Logging of add/remove messages to the device logs. Version 3.8.18 (released 7/2/2010) ------------------------------------ 1) Fixed sense-data parsing for ATTO ATA commands vs LSI. Specifically, this will accomodate an incorrectly sent NATIVE MAX ADDRESS from ATTO and the program can again process the correct data sent from LSI. Version 3.8.17 (released 7/1/2010) ------------------------------------ 1) Moved DeletePartition() so that it will only get executed if NOT doing a Format or Secure Erase. Questionable drives could lock up at that point, and SE will wipe out the entire disk without regard for partitioning anyway. This can kill the FailOver code however. The improvement in reliability is worth it. 2) Changed the Archive function to use the Default Log Folder designated in the Customize->Interface menu. The user log now actually DEFAULTS to the folder, rather then only working when overridden in the interface to apply the directory change. 3) Not sure how to deal with the ReportSourceLogFolder, as when generating a report it should be used. When loading previous status on bus scan it should not. The same functions are used for both. Investigating. Version 3.8.16 (released 6/28/2010) ------------------------------------ 1) Seperated the Default Log directory from the Report Source Log directory so that using the browse button to create a report no longer causes new logs to change the write locations. 2) Reduced the number of screen blits during benchmarking to reduce the possibility of bad graphic driver hangs. 3) Fixed mixed-mode benchmarking, in which some should have not benchmarked and others should. Started as seperate groups, the behavior was correct. Started as a single batch would cause all drives to do benchmarking. 4) Devices that are reinserted and remapped to an existing device structure now clear the previous errors so that the IsDeviceReady function will consider it ready to go. 5) Found an odd timing issue that would cause Adapter Properties to get written to 0s on startup, removing old saved values. Fixed by making sure that Adapter discovery happens before load/save of INI files. 6) Added tolerance for flakey drive behavior (Insert->Remove->Insert->Remove) ultimately with user control, but for now allowing a 30s delay between removal and insertion up to 20 times before it gets marked as DEAD. Version 3.8.15 (released 6/22/2010) ------------------------------------ 1) Changed DrawArrayDevice mutex down to 125ms to hopefully eliminate a rapid-fire serial-number scanning lockup. 2) Introducing an artificial slowdown in the physical interface edit fields entry mechanism to prevent people from doing things too quickly. Version 3.8.14 (released 6/21/2010) ------------------------------------ 1) The write buffer pointers were not being reset properly at the end of a write pass. This causes no problem for constant patterns, but caused a crash on the subsequent pass if it was a verify of the random data. 2) Aborted erasures during a data compare had a chance to flag the transfer as having a compare error depending onthe timing of the ENDSCR flag. This happened when the read was nearly issued, then cancelled. The data comparison didn't check the ENDSCR flag to make sure the data was actually valid, resulting in a comparison to the last transfer. For constant patterns, this wouldn't matter, but does for random. 3) Fixed a logging program for starting/resuming of passes. Version 3.8.13 (released 6/20/2010) ------------------------------------ 1) TogglePartition call moved to CreateDeviceEntry so that inserted devices come into the interface locked or not based on user's choice of list mode. This will also prevent inserted drives auto-starting an erasure when intending to erase partitions (there is no auto-erase for partitions.) 2) FillBuffer made mutually exclusive. Only one thread may fill a buffer at a time. The number of calls to rand() has been decreased by 1/3. These changes may fix the random-pass startup crash. 3) Mutex on DrawArrayDevice brought up to 180s to allow more time in highly threaded situations. Version 3.8.12 (released 6/18/2010) ------------------------------------ 1) Device logs now updated after a pass not merely at test end and start of the pass to safeguard against crash-restarting issues. 2) Drawing paths consolidated for better control from multiple threads of operation. 3) Reduced the number of screen blit calls in physical interface mode 4) Additional logging for Mutex timeout conditions and failed Blit conditions. 5) Reduced simultaneous calls to rand() in case this is not thread safe (though it should be.) 6) Start-on-Insertion now takes Restart flags into account, and does the proper buffer deletion, etc. Devices which would Secure Erase or which are USB-connected will no longer autostart. Devices which have Passed or Failed an erasure will no longer auto-start unless the "Restart" checkbox is set. Version 3.8.11 (released 6/17/2010) ------------------------------------ 1) Mutex on DrawArrayDevice to 130ms, and logging on timeouts 2) UpdateDeviceList code for Physical Interface will no longer blit each individual drive to the screen on the periodic update, instead drawing to the canvas only, then doing a single blit from the canvas to the screen. This may reduce a GUI lockup seen in some scenarios. 3) Removed a mutex from UpdateDeviceList to use the spinlock code in DrawArraysToCanvas 4) screen redraws during a rescan work properly, they just won't draw devices. This should display an empty list rather than a black canvas when resizing windows, etc. 5) Guarenteed that resumed erasures use the same transfer size instead of relying on same-conditions generating the same xfer size. 6) Counted up total number of full-verify passes correctly Version 3.8.10 (released 6/16/2010) ------------------------------------ 1) Additional network logging for Remote/Master to determine if any hangups occur. 2) Additional busprobe info on inquiry errors to isolate problems with old ATA drives 3) Run Executible on Erasure End now waits for completion before moving on, so that you can use it in conjunction with Shutdown. Version 3.8.9 (limited release) ------------------------------------ 1) Added back repositioning of subcontrols on sizing. 2) Reduced the DrawArrayDevice mutex further, down to 100ms, to reduce the potential for upper-level timeouts. 3) Fixed an IP-drive removal crash. Version 3.8.8 (limited release) ------------------------------------ 1) Shortened mutex on DrawArrayDevice to 200ms so that DrawArray doesn't timeout and lead to multiple simultaneous calls to DrawArraydevice. when one sticks. 2) Added instrumentation to output variables for the ListView DrawDevice function, which under certain circumstances stops drawing text. 3) Changed the mutex on DrawArraysToCanvas into a more clever spinlock. 4) Allowed ucChangeMag to exhibit a "silent" mode to prohibit redrawing to speed things up on switching list/physical modes. 5) Fixed Remote Control functionality, setting erasure standards, etc. Version 3.8.7 (released 6/10/10) ------------------------------------ 1) No longer drawing both List and Physical interfaces each time a screen update happens. This eliminates potential double-locks from mutexes. Still an initial "white background" glitch in the physical control panel, but that goes away with a resize, etc, and it's still a lot better than 3.8.6 Version 3.8.6 (released 6/9/10) ------------------------------------ 1) Investigating a Resume during Verify scenario, where it seemed to believe that it should be on the write pass instead. This can not be replicated, even with the logs in question. It seems to be tied into item 3 with a badly parsed log. 2) IP Master/Client upgraded to set combo-box settings of the master before starting an erasure to guarentee sync. 3) Potential fixes to Parsing existing erasure logs on startup. Could not replicate on development hardware, but identified a couple of potential problems and changed them. Version 3.8.5 (released 6/9/10) ------------------------------------ 1) Modified the startup order to eliminate a drawing issue on the physical interface when started in that mode. Version 3.8.4 (released 6/8/10) ------------------------------------ 1) Modified ucMainSize to eliminate infinite nesting. Not sure if it's happened in any situation, but can not happen now at all. 2) 48 bit ATA Opcodes are only tested if the device indicates 48 bit command support in the Identify Data. This resolves a compatibility problem between the ATTO SAS/SATA controller and old ATA drives. This is an academic change since the actual erasure wipe methods will always use SCSI commands as of version 3.8.0/ 3) Allow down to 16k transfers in the TestForMaxXfers code. 4) Reogranized buffer sizing priorities. (lowest to top) Adapter-reported max MAX_XFER_K in xerase.ini Adapter Properties Size if not "Auto" Auto-USB-connected devices max out at 64k (may vanish on further testing.) 5) Added a new Erasure Setting in Customize->Interface. "Support ATA Resizing (DCO/HPA)" is enabled by default and will attempt to return the drive back to the size as-manufactured before erasure. Some people may want to erase only user-data and keep the same sizing, etc, so this setting will allow you to turn this off. In addition, it's conceivable that some old drives may behave badly to the process even if they claim to support it, so this will allow you to try to erase them in any event. Version 3.8.3 (released 6/7/10) ------------------------------------ 1) Corrupt Format (SCSI/SAS/FC) drives will no longer show up as DEAD so that they can be selected, and thus formatted in the tool. This was an oversight as the code was specifically designed to format the drive to fix this situation. 2) User_fields in the physical interface now work even if entering values after the drive has been assigned to the slot. Reassigning Serial Numbers for an inserted drive now issues a warning asking if this is desired rather than rejecting it. This data-gathering method is useful for capturing Laptop Serial Numbers, Asset Tag data, etc. 3) DeviceInfoField code has been improved to show entered values for User-Fields even when waiting on serial numbers to be seen in the system and assigned, to reduce user confusion. 4) Improved support for recovery from an "emergency" Secure Erase/ Format scenario by turning off command logging like in the bus probe and getting the proper read opcode before hashing begins at the end of the pass. 5) Changed Physical/List interface change to be threaded, and added instrumentation to the program to determine which of the sub-functions never returns. 6) Minor change to method of opening pre-existing erasure logs to keep things more organized. Changed code to use the amount of actual data read from the file rather than how much data SHOULD be in the file according to the Windows file size functions. 7) Known problem: After reformatting a drive, reads result in error codes for Hashing and Verify, but not during Opcode Probe and Max Xfer measurements. Still investigating. Version 3.8.2 (released 6/4/10) ------------------------------------ 1) A new flag was added to xerase.ini, which allows MegaRAID low-level support to be turned on and off by user-discretion. This is on by default to allow MegaRAID and PERC adapters to erase the underlying drives with serial numbers, etc. The API is limited to a maximum of 173 MB/s, regardless of the number of devices being erased. Version 3.8.1 (released 6/3/10) ------------------------------------ 1) Benchmarking now provides better feedback for pending erasures while benchmarking is being done on some drives (Resume/Secure/Format) 2) Global Abort will now stop drives in the Pending states. Version 3.8.0 (released 6/2/10) ------------------------------------ 1) TestForMaxTransfers now measures the amount of time neccessary to do 10 writes in ATA and SCSI mode so that it can pick the fastest interface to use, regardless of which is considered the "native" IO interface. This value is printed to the Debug_XERAS.txt file during device detection and to the log file if a retest is neccessary after deleting partitions. This is primarily to detect PXE and USB boot scenarios wherein one interface (ATA) or the other is clearly inferior due to the drivers being used. As it turns out, SCSI IO appears to be neutral-to-signifigantly faster in all cases, even on properly functioning drivers/hardware. 2) SCSI IO will be the opcode set picked if at all possible for Enterprise Data Erasure. This should have benefits in terms of both speed and driver robustness, though it sacrifices a little in terms of accuracy of error reporting from the drive hardware since the SCSI errors are merely emulated. 3) Optimized Benchmarking to only test up to the largest transfer that any device in the set can accomplish (ie. if max xfer is 64k for all devices in the batch, then no need to test 128k, 256k, and 512k.) Version 3.7.10 (limited release 5/29/10) ------------------------------------ 1) Forced proper buffer alignment for random data. This is neccessary for some drivers, and not others. This has a very large impact on motherboard-connected drives. 2) Updated the ATA-stack to allow the passing of optional buffers to simplify certain code such as the Media Viewer. This should have no effect on the user, but is a fundamental change that touches almost all IO, so it is noted here. 3) Resume-only batches should now start faster with less Debug_XERASE.txt clutter. 4) Added logging for benchmarking timeout removals. 5) Copy failed benchmarks to the override directory for easier support. 6) Retries turned back off, and command-timeouts shortened to 4 seconds during benchmarking (the entire benchmark is only 10 seconds per step!) Version 3.7.9 (limited release 5/28/10) ------------------------------------ 1) Modified the benchmarking "step down" function that attempts to try the different interfaces to write just in case the preferred method isn't working for some reason. In the most complex case it will start with ATA -> SCSI -> FileIO. 2) Limited command retries are allowed in benchmarking now to be a little more forgiving of badly behaving drives which may cause resets, etc. Version 3.7.8 (limited release 5/28/10) ------------------------------------ 1) Fixed a critical bug in that Random data was not being written to disk Version 3.7.7 (released 5/27/10) ------------------------------------ 1) Fixed a PXEbot and USB boot problem in which the remote control interface wasn't enabled. 2) Pre-test of drives so that only drives that support Secure Erase will be able to run the Secure Erase wipe. If Secure Erase isn't supported, the drive will run the SCSI wipe listed instead. 3) Nvidia Ion and Nforce drivers added to the PXEboot and USB boot solutions. Version 3.7.6 () ------------------------------------ 1) Added automatic hashing for the logs on each pass for Block 1 and the last Block of the drive/partition. This can be disabled in the interface customization. 2) Abstracted Inquiry and Capacity functions so that they can be called again when neccessary. 3) Changed the order of DCO Reset and removal of HPAs to ensure that an entire drive is erased, even when hidden well. Version 3.7.5 (released 5/21/10) ------------------------------------ 1) Added the ability for the user to indicate whether to allow the drives to self-verify the data written. The default is to allow it, since this will dramatically lower the erasure times. Most SCSI drives will support this, and very few ATA drives will since it is a new command/mode. 2) Fixed a drawing bug for the physical interface mode that could cause a drive to incorrectly update status for a different slot on device removal. 3) Fixed a drawing bug during benchmarking resulting in "PASSED" being shown for the first device on startup. 4) Added the ability to restrict the maximum tested transfer size for all devices by modifying the MAX_XFER_K entry of config/xerase.ini. To limit the max transfer to 64k, for example the entry would be: MAX_XFER_K = 64 If the Adapter Transfer limit is set to a lower value, this will be used instead. This allows the user to turn down the transfer sizes to accomodate devices that do not handle large transfers well. 5) Added the ability to configure the transfer sizes of USB devices. If the transfer size of the "USB adapter" is 0/Auto, then 64k will be used for backwards compatibility. Version 3.7.4 (released 5/18/10) ------------------------------------ 1) Corrected a bug in which a drive that has a maximum LBA that is an even multiple of the transfer size would attempt to write too many blocks on the final transfer of a pass, causing a failure that would have succeeded. Version 3.7.3 ------------------------------------- 1) Added the ability to erase individual partitions on a drive. After erasure, the partition will be recreated with the same name and size. This is only possible after "Unlock Partition Devices" is set in the interface customization mode. 2) Added a "Partition mode" which is a List mode that unlocks Partitions and locks the base drive. 3) Beefed up logging of the bus probe, and partition deletion code to cause more reliable behavior. 4) Added optional fields to the Report table for additional configuration. Disable fields you don't want to include additional info that you do want. These include "System Mfg", "serial number", etc. Previous -------------------------------------- 1) Detect "Secure Locked" and drives with scsi bad media in the bus probe, so that the approprate actions are taken with them (Secure Erase vs Format) rather than the erasures indicated. 2) Added a "fail over" mode to the software, so that if a device doesn't support Secure Erase, it will attempt the SCSI wipe pattern rather than failing outright. 3) 3.7.0 - Totally disallow deallocation of running drives to eliminate run-time crashes caused by hardware glitches of questionable drives. 4) Added "Execute on Completion" and "Shutdown on Completion" to the customize interface. When no drives are still being run, these routines will be run. Execute first, then Shutdown. This can be configured in Customize -> Interface -> Erasure Settings. 5) Added the ability to write a "Stamp" to Block 0 after erasure to indicate a successful or failed erasure. This can be configured in Customize -> Interface -> Erasure Settings. 6) Added a broadcast mode announcement of remote units rather than a slow scan through IP addresses on a network.