IsGenuineEx() returns TA_E_ACTIVATE instead of TA_INET

I have this issue that I'm expecting IsGenuineEX to return TA_INET in order to warn the user and not deactivate the product.I'm calling it like this :

hr = IsGenuineEx(MCLoadString(IDS_TA_GUID), &m_GenuineOptions);

and m_GenuineOptions is :

m_GenuineOptions.nLength = sizeof(GENUINE_OPTIONS);

m_GenuineOptions.nDaysBetweenChecks = 1;

m_GenuineOptions.nGraceDaysOnInetErr = 365;

m_GenuineOptions.flags = TA_SKIP_OFFLINE;

The grace period is so long in case when the user activate but lose internet connection for a long time.The expiration of the product is calculated from a custom field, so this long grace period does not bother me.

What should i do to receive the TA_INET error?

I'm not sure what the question is. If you look up what the error code "TA_E_ACTIVATE" means in TurboActivate.h, the answer to the question becomes pretty clear:

/* MessageId: TA_E_ACTIVATE Message code (in Hex): 0x3 Message code (in Decimal): 3

MessageText:

The product needs to be activated.*/#define TA_E_ACTIVATE ((HRESULT)0x00000003L)

So, one of the following is true:

  1. The customer was never activated.
  2. The customer was activated, but they then deactivated.
  3. You deactivated or revoked the key and your app reverified with the servers, thus deactivating the customer.
  4. The customer moved / copied / etc. the activation data to another computer and/or they modified their existing computer so much that TurboActivate sees it as a different computer.
  5. The customer is running on a VM and the underlying machine has changed (this is a common problem for Amazon instances, or the equivalent for other cloud services -- use TurboFloat to solve this problem.)

Im debugging right in this momment and the trouble is that the product is activated and should return TA_INET, but it does not. Instead the error code says that the product needs to be activated, but it actually is, it's just that there is no internet connection.

If the nDaysBetweenChecks and nGracePeriod have both passed then all TA_E_INET errors will return TA_FAIL. And they'll do that for 5 hours (even if the customer has re-connected to the servers). See the updated example code for how to handle this:

https://wyday.com/forum/t/3013/isgenuineex-returns-an-eror-while-is-isactivated-doesnt/#post-14766

Note: the updated example code will be included with TurboActivate 4.0.

Hello. There must be a serrious issue here. To be clear i will explain the situation in steps.

1. IsGenuineEx() is called.

2. If it fails IsActivated( ) is called. 2.1 if IsActivated() return TA_OK, everything is fine 2.2 If it fails we try to activate via ActivateEx();

3. if ActivateEx() succeeds (it returned TA_OK) everyting is fine.

Every time when IsGenuineEx is called with presented internet connection everytinh is alright, but ass soon as we call it with no internet connection both IsGenuineEx and IsActivated return TA_FAIL.

So severa questions occur:1. Why IsGenunie does not return TA_INET?2. Why IsGenuine fails although it is in it's grace period?3. Why IsAcitaved fails when IsGenuine succeeds every time when internet is presented?

Could the reason be in TurboActivate library or some of the data that you store on the PC is corrupted?We are looking forward to solve this issue, because it is slowing down our release. 🙂

Just to mention that i have read the resources, you've shared.

Don't disable the internet by disabling the network adapter. You an unplug the ethernet cord. Or disconnect from a Wifi hotspot, but if you disable the actual network adapter then that will change what TurboActivate see. https://wyday.com/forum/t/3060/isactivated-fails-when-wi-fi-disabled-otherwise-succeeds/