Hi Olivier,
b) Else, you could disable the RDS verification in the superpro libraries. To achieve that call the following SuperPro API sequence:
I hope this helps,
Olivier
I hope you had good holidays, the behavior that you are reporting now, seems more standard to me.
The superpro librarie do have some restriction when authenticating to a 1 user dongle connected to a Windows server.
The superpro librarie do have some restriction when authenticating to a 1 user dongle connected to a Windows server.
This is mainly because of the "Remote Desktop Services" role is usually installed by default on Windows 2012 server.
As a result your direct communication with our Sentinel Drivers is disabled, and you are forced to establish a network communication with our Sentinel Protection Server.
This restricts the usage of 1 instance of your application (for 120 seconds) before your network license handle times-out (you lose connection with the dongle), and you can then open another instance of the application.
Note that this is happening as your application is not maintaining / renewing your network license handle, and it dies out.
The RNBOsproReleaseLicense, returns the network license handle to the "Sentinel Protection Server" before it times out, so that you can run another instance of your application.
Here are some workaround:
a) If you could uninstall the "Remote Desktop Services" role, and you should regain access to direct driver communication.
Here are the steps: https://technet.microsoft.com/en-us/library/cc755232(v=ws.11).aspx
Here are the steps: https://technet.microsoft.com/en-us/library/cc755232(v=ws.11).aspx
b) Else, you could disable the RDS verification in the superpro libraries. To achieve that call the following SuperPro API sequence:
int main()
{
SP_STATUS RNBOStatus;
RB_SPRO_APIPACKET Packet;
// format packet
RNBOStatus = RNBOsproFormatPacket(Packet,sizeof (RB_SPRO_APIPACKET));
RNBOStatus = RNBOsproFormatPacket(Packet,sizeof (RB_SPRO_APIPACKET));
printf("FormatPacket status=%d\n", RNBOStatus);
if (RNBOStatus == SP_SUCCESS)
{
// initialize
RNBOStatus = RNBOsproInitialize(Packet);
printf("Initialize status=%d\n", RNBOStatus);
if (RNBOStatus == SP_SUCCESS)
{
// no server communication
RNBOStatus = RNBOsproSetContactServer(Packet, RNBO_STANDALONE);
printf("ContactServer status=%d\n", RNBOStatus);
if (RNBOStatus == SP_SUCCESS)
{
// no TS check
RNBOStatus = RNBOsproCheckTerminalService(Packet, SP_TERM_SERV_CHECK_OFF);
printf("CheckTerminalService status=%d\n", RNBOStatus);
if (RNBOStatus == SP_SUCCESS)
{
// Find key
RNBOStatus = RNBOsproFindFirstUnit(Packet, DevID);
printf("FindFirstUnit status=%d\n", RNBOStatus);
if (RNBOStatus == SP_SUCCESS)
{
printf("key detected\n");
}
}
}
}
}
}
I hope this helps,
Olivier