IsGenuine and IsGenuineEx fails with TA_E_FAIL and deletes the activation on a VMWare PLAYER virtual machine. The machine has been activated yesterday, and today the isgenuine fails. On a physical machine it seems to not happen and we didn't test other form of hypervisors.
We can't reproduce this on our tests. It sounds like the customer might be moving the VM instance to other physical machines.
The problems began three-four days ago. The MOST BAD THING is that the license file in icsxml is being deleted and thus we are not able to read any license information.
We recently improved our detection algorithm for separate computers. This reduces false-positives (seeing different computers as being the same computer). So, like I said, it's probably a case of the customer moving the VM instance to separate underlying machines.
Using IsGenuineEx(0,0,false,true) instead still return TA_E_FAIL but at least doesn't delete the file, the problem is that outside in the world all our customers (that are not few) are using the standard IsGenuine and we relay on being able to keep reading the license information.
If the computer is not genuine (i.e. different than what was activated) then the activation file is deleted.
THE OTHER STRANGE THING that I noticed is that when I perform an IsGenuine the files grows from 1KB to 2KB (I didn't check the right size, but what windows write on the explorer window, I didn't think to check it).
This is by-design. There are technical reasons why this is happening. Nothing to worry about. This isn't related to your problem at all.
Please investigate quickly. The majority of our customers uses VM and CAN'T update for company policies.
Tell them to run the VM instances on the same machine. Or use TurboFloat. TurboFloat was designed to handle (among other things) moving of the VM instances between separate physical computers.
Read more about TurboFloat library and the TurboFloat Server.